/* =============================================================
   REPLICA LANDING PAGE STYLES — SWISS EDITORIAL & SPOTLIGHT GLOW
   ============================================================= */

/* Glassmorphism Pill Navigation */
.glass-pill {
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.75);
  box-shadow: 0 2px 24px -4px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0,0,0,0.04);
}

/* Frosted Glass Container Panels (How It Works cards & Modals) */
.glass-panel {
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.80);
  box-shadow: 0 8px 32px -6px rgba(0, 0, 0, 0.06), 0 2px 8px -2px rgba(0,0,0,0.03), inset 0 1px 0 rgba(255,255,255,0.9);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
              background-color 0.3s ease;
  will-change: transform;
}

/* Card Containers (Bone Tinted - Services Cards) */
.bone-card {
  background-color: #EDECEA;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 2px 12px -3px rgba(0,0,0,0.04);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
              background-color 0.3s ease;
  will-change: transform;
}

/* Dark Glass Container for CTA */
.glass-card-dark {
  background: linear-gradient(135deg, rgba(14, 14, 16, 0.98) 0%, rgba(20, 22, 20, 0.97) 100%);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: 0 24px 60px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255,255,255,0.04) inset;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

/* Subtle Gradient Mesh Background */
.bg-gradient-mesh {
  background-color: #F6F6F7;
  background-image: 
    radial-gradient(ellipse at 0% 0%, rgba(219, 234, 254, 0.25) 0px, transparent 55%),
    radial-gradient(ellipse at 100% 0%, rgba(209, 250, 229, 0.18) 0px, transparent 50%),
    radial-gradient(ellipse at 50% 100%, rgba(237, 233, 254, 0.2) 0px, transparent 55%),
    radial-gradient(at 100% 100%, rgba(243, 244, 246, 0.6) 0px, transparent 50%);
}

/* =============================================================
   FAQ ACCORDION (CSS Grid Butter-Smooth Animation System)
   ============================================================= */
.accordion-item {
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
              background-color 0.3s ease;
  will-change: transform;
}

.accordion-wrapper {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.accordion-open .accordion-wrapper {
  grid-template-rows: 1fr;
}

.accordion-inner {
  overflow: hidden;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.accordion-open .accordion-inner {
  opacity: 1;
  transform: translateY(0);
}

.accordion-icon {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.accordion-open .accordion-icon {
  transform: rotate(180deg);
}

/* Modal Overlay Animation */
.modal-overlay {
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modal-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.modal-hidden .modal-content {
  transform: scale(0.95) translateY(10px);
}

.modal-content {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* =============================================================
   SCROLL REVEAL ANIMATION SYSTEM
   ============================================================= */

[data-sr] {
  opacity: 0;
  will-change: opacity, transform;
}

[data-sr="fade-up"] {
  transform: translateY(28px);
  transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-sr="fade"] {
  transition: opacity 0.5s ease;
}

[data-sr="fade-left"] {
  transform: translateX(24px);
  transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-sr="fade-right"] {
  transform: translateX(-24px);
  transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-sr="scale-up"] {
  transform: scale(0.88) translateY(12px);
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-sr].sr-visible {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1);
}

[data-sr-delay="0"]  { transition-delay: 0ms; }
[data-sr-delay="1"]  { transition-delay: 80ms; }
[data-sr-delay="2"]  { transition-delay: 160ms; }
[data-sr-delay="3"]  { transition-delay: 240ms; }
[data-sr-delay="4"]  { transition-delay: 320ms; }
[data-sr-delay="5"]  { transition-delay: 400ms; }
[data-sr-delay="6"]  { transition-delay: 480ms; }
[data-sr-delay="7"]  { transition-delay: 560ms; }

[data-sr].sr-visible {
  transition-delay: inherit;
}

@media (prefers-reduced-motion: reduce) {
  [data-sr] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =============================================================
   INTERACTIVE HOVER FLOAT ANIMATIONS (Higher Specificity to Override ScrollReveal)
   ============================================================= */

/* 1. Services Cards (/01 - /04) */
.bone-card:hover,
[data-sr].sr-visible.bone-card:hover {
  background-color: #E5E4E0;
  transform: translateY(-8px) scale(1.018) !important;
  box-shadow: 0 28px 56px -12px rgba(0, 0, 0, 0.14), 0 8px 24px -6px rgba(0, 0, 0, 0.07);
}

/* 2. How It Works Cards (/01 - /03) */
#how-it-works .glass-panel:hover,
[data-sr].sr-visible.glass-panel:hover {
  transform: translateY(-7px) scale(1.016) !important;
  box-shadow: 0 28px 56px -12px rgba(0, 0, 0, 0.12), 0 8px 24px -6px rgba(0, 0, 0, 0.06), inset 0 1px 0 rgba(255,255,255,1);
  background: rgba(255, 255, 255, 0.95);
}

/* Modal internal content override */
.modal-content.glass-panel:hover {
  transform: none !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* 3. FAQ Accordion Cards */
.accordion-item:hover,
[data-sr].sr-visible.accordion-item:hover {
  transform: translateY(-5px) scale(1.014) !important;
  box-shadow: 0 18px 40px -8px rgba(0, 0, 0, 0.1);
}

/* 4. Bottom CTA Card */
.glass-card-dark:hover,
[data-sr].sr-visible.glass-card-dark:hover {
  transform: translateY(-6px) scale(1.013) !important;
  box-shadow: 0 36px 72px -12px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255,255,255,0.06) inset;
}

/* 5. Hero CTA Buttons */
button[data-open-booking],
button[data-open-payment] {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
              background-color 0.25s ease;
  will-change: transform;
}

button[data-open-booking]:hover,
button[data-open-payment]:hover,
[data-sr].sr-visible button[data-open-booking]:hover,
[data-sr].sr-visible button[data-open-payment]:hover {
  transform: translateY(-4px) scale(1.03) !important;
  box-shadow: 0 16px 32px -6px rgba(0, 0, 0, 0.14), 0 4px 12px -2px rgba(0, 0, 0, 0.06);
}

button[data-open-booking]:active,
button[data-open-payment]:active {
  transform: translateY(-1px) scale(0.99) !important;
}

/* =============================================================
   PREMIUM DESIGN UTILITIES
   ============================================================= */

/* Hero H1 gradient accent on second line */
.hero-gradient-text {
  background: linear-gradient(135deg, #9CA3AF 0%, #D1D5DB 50%, #9CA3AF 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Service card icon badges - colored per theme */
.icon-badge-blue   { background: linear-gradient(135deg, #EFF6FF, #DBEAFE); border: 1px solid rgba(59,130,246,0.15); }
.icon-badge-emerald{ background: linear-gradient(135deg, #F0FDF4, #D1FAE5); border: 1px solid rgba(16,185,129,0.15); }
.icon-badge-amber  { background: linear-gradient(135deg, #FFFBEB, #FDE68A); border: 1px solid rgba(245,158,11,0.15); }
.icon-badge-purple { background: linear-gradient(135deg, #F5F3FF, #EDE9FE); border: 1px solid rgba(139,92,246,0.15); }
.icon-badge-blue   i { color: #2563EB !important; }
.icon-badge-emerald i { color: #059669 !important; }
.icon-badge-amber  i { color: #D97706 !important; }
.icon-badge-purple i { color: #7C3AED !important; }

/* Stats strip separator */
.stat-divider {
  border-left: 1px solid rgba(0,0,0,0.08);
}

/* Ambient floating glow behind CTA */
.cta-blob-1 {
  background: radial-gradient(circle, rgba(16,185,129,0.22) 0%, transparent 70%);
  animation: blobDrift 8s ease-in-out infinite alternate;
}
.cta-blob-2 {
  background: radial-gradient(circle, rgba(139,92,246,0.14) 0%, transparent 70%);
  animation: blobDrift 11s ease-in-out infinite alternate-reverse;
}
@keyframes blobDrift {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-30px, 20px) scale(1.15); }
}

/* =============================================================
   CUSTOM SCROLLBAR
   ============================================================= */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #F7F7F8;
}

::-webkit-scrollbar-thumb {
  background: #D1D5DB;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #9CA3AF;
}

/* =============================================================
   PER-CARD SPOTLIGHT GLOW EFFECT (Mouse-Tracking Radial Glow Cards)
   ============================================================= */
[data-glow] {
  --base: 220;
  --spread: 200;
  --border-size: 2px;
  --spotlight-size: 340px;
  --hue: calc(var(--base) + (var(--xp, 0.5) * var(--spread)));

  position: relative;
  overflow: hidden;
}

[data-glow-color="blue"]    { --base: 210; --spread: 180; }
[data-glow-color="emerald"] { --base: 150; --spread: 180; }
[data-glow-color="purple"]  { --base: 270; --spread: 200; }
[data-glow-color="amber"]   { --base: 35;  --spread: 180; }

[data-glow]::before {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: radial-gradient(
    var(--spotlight-size) var(--spotlight-size) at
    calc(var(--x, 0) * 1px)
    calc(var(--y, 0) * 1px),
    hsl(var(--hue, 210) 100% 65% / 0.18),
    transparent 100%
  );
  opacity: var(--glow-opacity, 0);
  z-index: 1;
}

[data-glow]::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: var(--border-size);
  background: radial-gradient(
    calc(var(--spotlight-size) * 0.85) calc(var(--spotlight-size) * 0.85) at
    calc(var(--x, 0) * 1px)
    calc(var(--y, 0) * 1px),
    hsl(var(--hue, 210) 100% 60% / 0.95),
    transparent 100%
  );
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: var(--glow-opacity, 0);
  z-index: 2;
}

/* =============================================================
   MOBILE RESPONSIVE — Full coverage ≤ 640px
   ============================================================= */
@media (max-width: 640px) {

  /* Nav pill — компактнее */
  #navbar-pill {
    padding: 10px 16px;
  }

  /* Hero — меньше отступы, крупный заголовок читается */
  main {
    padding-top: 90px;
    padding-bottom: 60px;
    gap: 56px;
  }

  main > * + * {
    margin-top: 56px;
  }

  /* Hero H1 — не режем на 2 строки слишком мелко */
  h1.font-heading {
    font-size: clamp(2rem, 9vw, 2.75rem);
    line-height: 1.1;
  }

  /* Hero subtext — чуть меньше */
  .hero-sub-text {
    font-size: 0.9rem;
  }

  /* Hero CTA кнопки — полная ширина, крупнее тап-зона */
  button[data-open-booking],
  button[data-open-payment] {
    width: 100%;
    padding: 16px 20px;
    font-size: 0.9rem;
    border-radius: 16px;
  }

  /* Stats strip — 2×2 на мобиле, убираем разделители справа у крайних */
  .stats-strip {
    grid-template-columns: 1fr 1fr;
    border-radius: 16px;
  }

  .stats-strip > *:nth-child(2n) {
    border-right: none !important;
  }

  .stats-strip > *:nth-child(n+3) {
    border-top: 1px solid rgba(0,0,0,0.07);
  }

  /* Карточки сервисов — меньше паддинг на мобиле */
  .bone-card {
    padding: 24px 22px;
    border-radius: 20px;
  }

  .bone-card:hover,
  [data-sr].sr-visible.bone-card:hover {
    transform: none !important;
    box-shadow: none !important;
  }

  /* Process steps — меньше паддинг */
  .glass-panel {
    padding: 24px 22px;
    border-radius: 20px;
  }

  #how-it-works .glass-panel:hover,
  [data-sr].sr-visible.glass-panel:hover {
    transform: none !important;
    box-shadow: none !important;
  }

  /* FAQ — меньше паддинг */
  .accordion-item {
    padding: 18px 20px;
    border-radius: 16px;
  }

  .accordion-item:hover,
  [data-sr].sr-visible.accordion-item:hover {
    transform: none !important;
    box-shadow: none !important;
  }

  /* CTA block */
  .glass-card-dark {
    padding: 32px 22px;
    border-radius: 20px;
    text-align: center;
  }

  .glass-card-dark:hover,
  [data-sr].sr-visible.glass-card-dark:hover {
    transform: none !important;
  }

  /* Модалки — на весь экран снизу (sheet-style) */
  .modal-overlay {
    align-items: flex-end;
    padding: 0;
  }

  .modal-content {
    border-radius: 24px 24px 0 0 !important;
    max-height: 92vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .modal-hidden .modal-content {
    transform: translateY(40px) !important;
  }

  /* Секции — меньше боковые отступы */
  section {
    padding-left: 16px;
    padding-right: 16px;
  }

  /* Section headers */
  h2.font-heading {
    font-size: clamp(1.65rem, 7vw, 2rem);
  }
}

/* Промежуточные планшеты ≤ 768px */
@media (max-width: 768px) {
  /* Убираем hover-флоат на тач (нет hover-состояния) */
  @media (hover: none) {
    .bone-card:hover,
    [data-sr].sr-visible.bone-card:hover,
    #how-it-works .glass-panel:hover,
    [data-sr].sr-visible.glass-panel:hover,
    .accordion-item:hover,
    [data-sr].sr-visible.accordion-item:hover,
    .glass-card-dark:hover,
    [data-sr].sr-visible.glass-card-dark:hover {
      transform: none !important;
      box-shadow: inherit !important;
    }
  }

  /* Spotlight glow — отключаем на тач */
  @media (hover: none) {
    [data-glow]::before,
    [data-glow]::after {
      display: none;
    }
  }
}

