/* ==========================================================================
   THEME: REST CUBE ULTIMATE - PREMIUM DYNAMIC
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap');

:root {
  /* --- PALETTE: LUMINOUS & DEEP --- */
  --bg-app: #f8fafc;
  --bg-glass: rgba(255, 255, 255, 0.65);
  --bg-glass-strong: rgba(255, 255, 255, 0.85);

  --primary: #2563EB;
  /* Vibrant Blue */
  --primary-glow: rgba(37, 99, 235, 0.3);
  --secondary: #10B981;
  /* Success Green */

  --text-main: #0F172A;
  --text-muted: #64748B;

  /* --- ANIMATION TOKENS --- */
  --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
}

/* 1. GLOBAL & RESET */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'Outfit', sans-serif;
  /* More modern/cool than Inter */
  color: var(--text-main);
  background-color: var(--bg-app);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  width: 100%;
  max-width: 100vw;
}

/* =========================================
   CRITICAL: APPLE 2026 TYPOGRAPHY (Top Loaded)
   ========================================= */
@keyframes cinematicFocusTop {
  0% {
    filter: blur(20px);
    opacity: 0;
    transform: scale(1.05);
  }

  100% {
    filter: blur(0);
    opacity: 1;
    transform: scale(1);
  }
}

.hero-pre-title {
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  background: linear-gradient(90deg, #2F6FF6, #60A5FA) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  margin-bottom: 20px !important;
  display: inline-block !important;
}

.hero-title {
  font-size: 4.5rem !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  margin: 0 auto 30px !important;
  max-width: 1000px !important;
  color: #1d1d1f !important;
  background: linear-gradient(135deg, #1a1a1a 30%, #434343 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  animation: cinematicFocusTop 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  opacity: 1 !important;
  /* Force reflow */
}

.hero-subtitle {
  font-size: 1.35rem !important;
  color: #86868b !important;
  font-weight: 400 !important;
  max-width: 700px !important;
  margin: 0 auto 40px !important;
  line-height: 1.6 !important;
}

@media (max-width: 900px) {
  .hero-title {
    font-size: 3rem !important;
  }
}

/* DEFENSIVE OVERFLOW PROTECTION */
body,
html {
  position: relative;
  overflow-x: hidden !important;
}

main,
section,
header,
footer,
.glass-header {
  max-width: 100vw !important;
  box-sizing: border-box !important;
}

/* Forced override for conflicting grid/scrollers */
.rc-restos,
.rc-restos__viewport,
.clients-scroller {
  width: 100% !important;
  max-width: 100vw !important;
  overflow-x: hidden !important;
  /* The viewport shouldn't scroll the page */
}

.clients-scroller .rc-restos__viewport {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto !important;
  /* Allow internal horizontal scroll */
  -webkit-overflow-scrolling: touch;
  padding-bottom: 20px;
}

h1,
h2,
h3,
.heading {
  font-family: 'Outfit', sans-serif;
  letter-spacing: -0.03em;
  font-weight: 700;
}

p,
li,
.body-text {
  font-family: 'Inter', sans-serif;
  line-height: 1.6;
  color: var(--text-muted);
}

section {
  position: relative;
  padding: 100px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

/* 2. DYNAMIC BACKGROUND */
.animated-bg {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 15% 50%, rgba(37, 99, 235, 0.08), transparent 25%),
    radial-gradient(circle at 85% 30%, rgba(16, 185, 129, 0.08), transparent 25%);
  pointer-events: none;
  animation: bgPulse 10s ease-in-out infinite alternate;
}

@keyframes bgPulse {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.1);
  }
}

/* 3. PARALLAX FOOD/ITEMS */
.parallax-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.floating-item {
  position: absolute;
  font-size: 4rem;
  opacity: 0.15;
  filter: blur(2px);
  animation: floatUp 8s ease-in-out infinite;
  will-change: transform;
}

.item-1 {
  top: 15%;
  left: 10%;
  animation-delay: 0s;
  font-size: 5rem;
}

/* Pizza */
.item-2 {
  top: 25%;
  right: 15%;
  animation-delay: 1.5s;
  font-size: 4rem;
}

/* Burger */
.item-3 {
  top: 60%;
  left: 20%;
  animation-delay: 3s;
  font-size: 3rem;
}

/* Drink */
.item-4 {
  top: 70%;
  right: 10%;
  animation-delay: 2s;
  font-size: 6rem;
  opacity: 0.1;
}

/* Receipt */

@keyframes floatUp {

  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }

  50% {
    transform: translateY(-20px) rotate(5deg);
  }
}

/* 4. CARDS & GLASSMORPHISM */
.rc-card,
.problem-card,
.pricing-card {
  background: var(--bg-glass-strong);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 24px;
  padding: 32px;
  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.02),
    0 20px 40px -8px rgba(0, 0, 0, 0.04);
  transition: transform 0.4s var(--ease-out-back), box-shadow 0.4s ease;
}

.rc-card:hover,
.problem-card:hover,
.pricing-card:hover {
  transform: translateY(-8px) scale(1.01);
  box-shadow:
    0 20px 25px -5px rgba(0, 0, 0, 0.05),
    0 40px 60px -10px rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.2);
}

/* 5. TYPOGRAPHY & GRADIENTS */
.hero-title {
  font-size: clamp(3rem, 6vw, 4.5rem);
  line-height: 1.1;
  background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 24px;
}

.text-gradient {
  background: linear-gradient(135deg, var(--primary) 0%, #60A5FA 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero-subtitle {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  color: var(--text-muted);
  max-width: 600px;
  margin: 0 auto 40px;
  font-weight: 400;
}

/* 6. BUTTONS: NEUMORPHIC / GLOW */
.btn-primary {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 40px;
  font-size: 1.1rem;
  font-weight: 600;
  color: white;
  background: var(--text-main);
  border-radius: 99px;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.2);
}

.btn-primary::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: 0.5s;
}

.btn-primary:hover::before {
  left: 100%;
}

.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 30px -10px rgba(0, 0, 0, 0.3);
  background: black;
}

/* 7. HERO LAYOUT */
.hero-section {
  min-height: 90vh;
  /* Full viewport almost */
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  padding-top: 120px;
  position: relative;
  overflow: hidden;
  /* For parallax clipping */
}

/* Phone Mockup with 3D feel */
.phone-mockup-wrapper {
  margin-top: 60px;
  perspective: 1000px;
  z-index: 10;
  position: relative;
}

.phone-mockup {
  width: 300px;
  margin: 0 auto;
  border-radius: 40px;
  box-shadow: 0 50px 100px -20px rgba(0, 0, 0, 0.3);
  transform: rotateX(10deg) rotateY(0deg);
  transition: transform 0.1s;
  /* JS will update this */
  background: black;
  padding: 10px;
}

.phone-mockup video {
  border-radius: 30px;
  width: 100%;
  display: block;
}

/* 8. GRID LAYOUTS */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 30px;
  margin-top: 60px;
}

.problem-icon {
  width: 60px;
  height: 60px;
  background: #EFF6FF;
  color: var(--primary);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin-bottom: 24px;
}

/* 9. PRICING HIGHLIGHT */
.pricing-card.highlight {
  border: 2px solid var(--primary);
  position: relative;
  background: white;
  transform: scale(1.05);
  z-index: 5;
}

.tag-popular {
  position: absolute;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--primary);
  color: white;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3);
}

/* 10. CLIENTS SCROLL (Refined) */
/* 10. CLIENTS SCROLL (Refined Parallax) */
.rc-clients-section {
  padding: 60px 0;
  overflow: hidden;
  position: relative;
  background: linear-gradient(to bottom, #f8fafc 0%, rgba(37, 99, 235, 0.03) 50%, #f8fafc 100%);
}

.rc-marquee-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 40px;
  transform: rotate(-2deg);
  /* Stylish slight tilt */
  width: 110%;
  margin-left: -5%;
  /* Compensate for tilt */
}

.rc-marquee {
  display: flex;
  overflow: hidden;
  user-select: none;
  mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}

.rc-marquee-inner {
  display: flex;
  gap: 20px;
  animation: marquee 40s linear infinite;
  flex-shrink: 0;
}

.rc-marquee.reverse .rc-marquee-inner {
  animation-direction: reverse;
}

.track-1 .rc-marquee-inner {
  animation-duration: 45s;
}

.track-2 .rc-marquee-inner {
  animation-duration: 35s;
}

.track-3 .rc-marquee-inner {
  animation-duration: 50s;
}

/* Glass Card Style */
.rc-glass-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 24px;
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 99px;
  text-decoration: none;
  color: var(--text-main);
  font-weight: 600;
  font-size: 0.95rem;
  white-space: nowrap;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rc-glass-card i {
  font-size: 1.2rem;
}

.rc-glass-card:hover {
  transform: translateY(-5px) scale(1.05);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.2);
  border-color: rgba(37, 99, 235, 0.3);
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }

  /* Assumes duplication of content */
}

/* 18. MATCH SECTION (Replaces Security Gate) */
.rc-match-section {
  padding: 100px 20px;
  background: linear-gradient(to bottom, #fff 0%, #f8fafc 100%);
  position: relative;
  overflow: hidden;
}

.rc-match-container {
  max-width: 1000px;
  margin: 0 auto;
}

.rc-cards-wrapper {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 40px;
  perspective: 1000px;
  margin-bottom: 60px;
}

.rc-match-card {
  flex: 1;
  background: #fff;
  padding: 40px;
  border-radius: 30px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.05);
  text-align: center;
  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
  position: relative;
  overflow: hidden;
  cursor: default;
}

.rc-card-icon {
  font-size: 3rem;
  margin-bottom: 20px;
  color: #cbd5e1;
  transition: transform 0.4s ease;
}

.rc-match-card h3 {
  font-size: 1.5rem;
  margin-bottom: 15px;
  color: #334155;
}

.rc-match-card p {
  color: #64748b;
  line-height: 1.6;
  margin-bottom: 30px;
}

.rc-card-status {
  padding: 8px 16px;
  background: #f1f5f9;
  color: #94a3b8;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 600;
  display: inline-block;
}

/* VS Badge */
.rc-match-vs {
  align-self: center;
  background: #eff6ff;
  color: #3b82f6;
  font-weight: 900;
  padding: 15px;
  border-radius: 50%;
  font-size: 1.2rem;
  z-index: 2;
  box-shadow: 0 0 0 10px #fff;
}

/* PRO CARD STYLES */
.card-pro {
  border-color: #3b82f6;
  background: linear-gradient(145deg, #fff 0%, #eff6ff 100%);
}

.card-pro .rc-card-icon {
  color: #3b82f6;
}

.status-match {
  background: #dbeafe;
  color: #2563eb;
}

/* HOVER EFFECTS */
.rc-cards-wrapper:hover .card-basic {
  transform: scale(0.95);
  opacity: 0.5;
  filter: grayscale(1);
}

.rc-cards-wrapper:hover .card-pro {
  transform: scale(1.05);
  box-shadow: 0 40px 80px -20px rgba(37, 99, 235, 0.3);
  z-index: 10;
}

/* Specific Card Hovers (override wrapper effect if hovering basic) */
.card-basic:hover {
  transform: scale(1.02) !important;
  opacity: 1 !important;
  filter: none !important;
  z-index: 10;
}

.rc-cards-wrapper:has(.card-basic:hover) .card-pro {
  transform: scale(0.95);
  opacity: 0.8;
  box-shadow: none;
}

/* PREMIUM BUTTON */
.rc-premium-btn {
  position: relative;
  display: inline-block;
  padding: 20px 50px;
  background: linear-gradient(90deg, #2563eb, #3b82f6);
  color: white;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 99px;
  text-decoration: none;
  overflow: hidden;
  box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.4);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.rc-premium-btn:hover {
  transform: translateY(-5px);
  box-shadow: 0 30px 60px -15px rgba(37, 99, 235, 0.6);
}

.btn-shine {
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.4), transparent);
  transform: skewX(-20deg);
  animation: btnShine 3s infinite;
}

@keyframes btnShine {
  0% {
    left: -100%;
  }

  20% {
    left: 200%;
  }

  100% {
    left: 200%;
  }
}

@media (max-width: 768px) {
  .rc-cards-wrapper {
    flex-direction: column;
    gap: 30px;
  }

  .rc-match-vs {
    transform: rotate(90deg);
  }

  .rc-cards-wrapper:hover .card-basic {
    transform: none;
    opacity: 1;
    filter: none;
  }

  .rc-cards-wrapper:hover .card-pro {
    transform: none;
  }
}

.rc-parallax-section {
  position: relative;
  padding: 100px 20px;
  overflow: hidden;
  display: flex;
  justify-content: center;
  perspective: 1000px;
}

.rc-parallax-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  z-index: 0;
  opacity: 0.6;
  animation: orbFloat 10s ease-in-out infinite alternate;
}

.orb-1 {
  width: 300px;
  height: 300px;
  background: #3b82f6;
  top: -50px;
  left: -100px;
}

.orb-2 {
  width: 250px;
  height: 250px;
  background: #8b5cf6;
  bottom: -50px;
  right: -50px;
  animation-delay: -5s;
}

@keyframes orbFloat {
  from {
    transform: translate(0, 0);
  }

  to {
    transform: translate(30px, 50px);
  }
}

.rc-glass-panel {
  position: relative;
  width: 100%;
  max-width: 900px;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 40px;
  padding: 60px 40px;
  box-shadow:
    0 30px 60px -15px rgba(0, 0, 0, 0.1),
    inset 0 0 0 1px rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  z-index: 10;
  transform-style: preserve-3d;
  transition: transform 0.3s ease;
}

@media (min-width: 769px) {
  .rc-glass-panel:hover {
    transform: rotateY(2deg) rotateX(-2deg) translateY(-5px);
    box-shadow: 0 40px 80px -20px rgba(0, 0, 0, 0.15);
  }
}

.rc-panel-content {
  flex: 1;
  z-index: 2;
}

.rc-label {
  display: inline-block;
  padding: 6px 12px;
  background: #eff6ff;
  color: #2563eb;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 15px;
}

.rc-gradient-title {
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  line-height: 1.1;
  background: linear-gradient(135deg, #2563EB 0%, #60A5FA 100%);
  /* Brighter Blue Gradient */
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 20px;
}

.rc-separator-line {
  width: 60px;
  height: 4px;
  background: #3b82f6;
  border-radius: 2px;
  margin-bottom: 20px;
}

.rc-panel-text {
  font-size: 1.25rem;
  color: #334155;
  line-height: 1.6;
  margin-bottom: 15px;
}

.text-highlight {
  color: #2563eb;
  font-weight: 700;
  position: relative;
  z-index: 1;
}

.text-highlight::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 0;
  width: 100%;
  height: 8px;
  background: rgba(59, 130, 246, 0.2);
  z-index: -1;
  transform: skewX(-10deg);
}

.rc-panel-subtext {
  font-size: 1rem;
  color: #64748b;
  font-weight: 500;
}

/* AXO ANIMATION */
.rc-axo-floating-container {
  position: relative;
  width: 250px;
  height: 250px;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  perspective: 800px;
}

.rc-axo-circle {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  overflow: hidden;
  border: 6px solid #fff;
  box-shadow: 0 20px 40px rgba(37, 99, 235, 0.25);
  animation: axoFloat 6s ease-in-out infinite;
  position: relative;
  z-index: 2;
  background: #fff;
}

.rc-axo-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
  /* Slight zoom usually looks better */
}

.rc-axo-speech {
  position: absolute;
  top: 0px;
  right: -20px;
  background: #fff;
  padding: 12px 20px;
  border-radius: 20px 20px 20px 4px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  z-index: 10;
  opacity: 0;
  animation: speechPop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
  animation-delay: 1s;
}

.rc-axo-speech span {
  font-size: 0.9rem;
  color: #1e293b;
  font-weight: 700;
  line-height: 1.3;
  display: block;
}

@keyframes axoFloat {

  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }

  50% {
    transform: translateY(-15px) rotate(2deg);
  }
}

@keyframes speechPop {
  from {
    opacity: 0;
    transform: scale(0.5) translate(-20px, 20px);
  }

  to {
    opacity: 1;
    transform: scale(1) translate(0, 0);
  }
}

@media (max-width: 768px) {
  .rc-glass-panel {
    flex-direction: column-reverse;
    text-align: center;
    padding: 40px 20px;
  }

  .rc-glass-panel:hover {
    transform: none;
    /* Disable 3D tilt on mobile */
  }

  .rc-panel-content {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .rc-axo-floating-container {
    width: 180px;
    height: 180px;
  }

  .rc-axo-circle {
    width: 150px;
    height: 150px;
  }
}

/* 11. HEADER GLASS (Apple 2025 Refined) */
.glass-header {
  position: fixed;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  min-width: 320px;
  max-width: 90%;
  height: 54px;
  /* More compact */

  /* Apple Glass Effect */
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(25px) saturate(180%);
  -webkit-backdrop-filter: blur(25px) saturate(180%);

  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  /* Pill shape */

  box-shadow:
    0 4px 6px -1px rgba(0, 0, 0, 0.02),
    0 10px 15px -3px rgba(0, 0, 0, 0.04),
    inset 0 0 0 1px rgba(255, 255, 255, 0.1);

  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 6px 4px 20px;
  /* Asymmetric padding for button */

  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-header.scrolled {
  top: 12px;
  background: rgba(255, 255, 255, 0.85);
  box-shadow:
    0 10px 25px -5px rgba(0, 0, 0, 0.05),
    0 8px 10px -6px rgba(0, 0, 0, 0.01);
  border-color: rgba(0, 0, 0, 0.05);
}

.header-logo {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--text-main);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  letter-spacing: -0.02em;
}

.logo-dot {
  width: 8px;
  height: 8px;
  background: var(--text-main);
  /* Monochrome for cleaner look */
  border-radius: 50%;
  display: block;
}

.header-nav {
  display: flex;
  gap: 28px;
  margin: 0 32px;
}

.nav-link {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--text-muted);
  text-decoration: none;
  transition: color 0.2s ease;
  position: relative;
}

.nav-link:hover {
  color: var(--text-main);
}

.header-cta {
  background: #000000;
  /* Pure black */
  color: white;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  padding: 10px 20px;
  border-radius: 999px;
  transition: transform 0.2s ease, background 0.2s ease;
}

.header-cta:hover {
  transform: scale(1.03);
  background: #333;
}

/* Mobile Toggle */
.mobile-toggle {
  display: none;
  background: none;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
}

.mobile-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  background: var(--text-main);
  border-radius: 2px;
}

@media(max-width: 768px) {
  .header-nav {
    display: none;
  }

  .mobile-toggle {
    display: flex;
  }

  .header-cta {
    display: none;
  }

  /* Hide CTA on mobile header to save space, or keep it if fits */
  .glass-header {
    padding-right: 8px;
    min-width: 0;
    /* Allow shrinking below 320px */
  }
}


/* 12. UTILS */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s var(--ease-out-back);
}

.reveal.active {
  opacity: 1;
  transform: translateY(0);
}

.stagger-1 {
  transition-delay: 0.1s;
}

.stagger-2 {
  transition-delay: 0.2s;
}

.stagger-3 {
  transition-delay: 0.3s;
}

/* 15. PRO CLIENTS TITLE */
.pro-float-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 30px;
  position: relative;
  z-index: 2;
}

.pro-float-badge {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.6);
  padding: 12px 32px;
  border-radius: 99px;
  box-shadow:
    0 10px 30px -5px rgba(37, 99, 235, 0.15),
    0 4px 6px -2px rgba(0, 0, 0, 0.02),
    inset 0 0 0 1px rgba(255, 255, 255, 0.5);
  animation: floatBadge 4s ease-in-out infinite;
  text-align: center;
}

.pro-float-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: 0.02em;
  background: linear-gradient(135deg, #0F172A 0%, #334155 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0;
  text-transform: uppercase;
  line-height: 1.2;
}

.pro-float-sub {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-top: 4px;
  font-weight: 500;
}

@keyframes floatBadge {

  0%,
  100% {
    transform: translateY(0);
    box-shadow: 0 10px 30px -5px rgba(37, 99, 235, 0.15);
  }

  50% {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px -5px rgba(37, 99, 235, 0.25);
  }
}

/* 16. NEW 3D SCENE & ORBIT */
.rc-3d-scene {
  position: relative;
  width: 300px;
  height: 600px;
  margin: 40px auto;
  perspective: 1200px;
  /* Strong 3D depth */
  transform-style: preserve-3d;
  z-index: 10;
}

/* The Phone Device */
.rc-phone-frame {
  width: 100%;
  height: 100%;
  background: #000;
  border-radius: 44px;
  box-shadow:
    0 50px 100px -20px rgba(0, 0, 0, 0.4),
    inset 0 0 0 4px #333,
    inset 0 0 0 6px #111;
  position: relative;
  transform-style: preserve-3d;
  transform: rotateY(-10deg) rotateX(10deg);
  transition: transform 0.5s ease-out;
  animation: phoneFloat 6s ease-in-out infinite;
  /* Glass reflection */
  overflow: hidden;
}

/* Hover Effect on Desktop */
@media (hover: hover) {
  .rc-3d-scene:hover .rc-phone-frame {
    transform: rotateY(-5deg) rotateX(5deg) scale(1.02);
  }
}

.rc-screen {
  position: absolute;
  inset: 12px;
  background: #000;
  border-radius: 32px;
  overflow: hidden;
  /* Contains the video */
}

.rc-screen video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 32px;
}

/* The Dynamic Notch */
.rc-notch {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 90px;
  height: 24px;
  background: #000;
  border-radius: 20px;
  z-index: 20;
}

/* 3D Gloss */
.rc-gloss {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, transparent 40%);
  pointer-events: none;
  z-index: 30;
  border-radius: 44px;
}

/* Orbiting Food Items */
.rc-orbit-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%) translateZ(60px);
  /* Push forward */
  pointer-events: none;
  transform-style: preserve-3d;
}

.rc-float-item {
  position: absolute;
  font-size: 3rem;
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.2));
  animation: floatOrbit 8s ease-in-out infinite;
}

/* Positioning Items */
.i-1 {
  top: 10%;
  left: -20%;
  animation-delay: 0s;
}

.i-2 {
  top: 20%;
  right: -25%;
  animation-delay: 1.5s;
  font-size: 3.5rem;
}

.i-3 {
  bottom: 15%;
  left: -25%;
  animation-delay: 3s;
  font-size: 2.8rem;
}

.i-4 {
  bottom: 30%;
  right: -20%;
  animation-delay: 4.5s;
}

.i-5 {
  top: -5%;
  left: 50%;
  animation-delay: 2s;
  font-size: 2.5rem;
  opacity: 0.8;
}

/* Animations */
@keyframes phoneFloat {

  0%,
  100% {
    transform: rotateY(-10deg) rotateX(10deg) translateY(0px);
  }

  50% {
    transform: rotateY(-8deg) rotateX(8deg) translateY(-15px);
  }
}

@keyframes floatOrbit {

  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  50% {
    transform: translate3d(0, -20px, 30px);
  }
}

/* =========================================
   RESPONSIVE (The users complaint fix)
   ========================================= */
@media (max-width: 768px) {

  /* 1. Scale down the whole scene safely */
  .rc-3d-scene {
    width: 240px !important;
    height: 480px !important;
    margin: 20px auto !important;
    perspective: 800px;
    /* Reduces extreme angles */
  }

  /* 2. Tame the 3D effect to prevent overflow */
  .rc-phone-frame {
    transform: rotateY(-5deg) rotateX(5deg) !important;
    /* Subtler angle */
    animation: phoneFloatMobile 4s ease-in-out infinite !important;
    box-shadow: 0 20px 60px -15px rgba(0, 0, 0, 0.5);
  }

  @keyframes phoneFloatMobile {

    0%,
    100% {
      transform: rotateY(-5deg) rotateX(5deg) translateY(0);
    }

    50% {
      transform: rotateY(-3deg) rotateX(3deg) translateY(-8px);
    }
  }

  /* 3. Pull orbit items closer so they don't screen-overflow */
  .i-1 {
    left: -10%;
    font-size: 2.5rem;
  }

  .i-2 {
    right: -10%;
    font-size: 2.8rem;
  }

  .i-3 {
    left: -10%;
    font-size: 2.2rem;
  }

  .i-4 {
    right: -10%;
    font-size: 2.5rem;
  }

  .i-5 {
    display: none;
  }

  /* Hide the top one if needed */
}

/* 16. FOOD FUNNEL EFFECT ("Suck In") */



/* From Top Center */
.f-3 {
  animation-delay: 2.3s;
  --start-x: -20px;
  --start-y: -450px;
  font-size: 2.2rem;
}

/* From Mid Left */
.f-4 {
  animation-delay: 0.7s;
  --start-x: -220px;
  --start-y: -200px;
  font-size: 3.2rem;
}

/* From Mid Right */
.f-5 {
  animation-delay: 1.8s;
  --start-x: 240px;
  --start-y: -250px;
  font-size: 2.5rem;
}

/* From High Right */
.f-6 {
  animation-delay: 2.9s;
  --start-x: 100px;
  --start-y: -500px;
  font-size: 4rem;
  margin-top: -100px;
}

/* Receipt bigger */
/* From High Left */
.f-7 {
  animation-delay: 1.5s;
  --start-x: -100px;
  --start-y: -420px;
  font-size: 2.6rem;
}

/* From Low random */
.f-8 {
  animation-delay: 0.4s;
  --start-x: 80px;
  --start-y: -380px;
  font-size: 2.4rem;
}

@keyframes suckIn {
  0% {
    opacity: 0;
    transform: translate(var(--start-x), var(--start-y)) scale(1) rotate(0deg);
  }

  10% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translate(0, 0) scale(0.1) rotate(360deg);
    /* Ends at center */
  }
}

/* 17. COMPATIBILITY PUZZLE (WOW EFFECT) */
.puzzle-section {
  padding: 60px 0 100px;
  perspective: 1000px;
  overflow: hidden;
  text-align: center;
}

.puzzle-container {
  display: flex;
  justify-content: center;
  gap: 20px;
  max-width: 800px;
  margin: 0 auto;
  flex-wrap: wrap;
  /* Ensure it has a revealing class */
}

/* We use the reveal mechanism on the container itself */
.puzzle-container {
  opacity: 1 !important;
  /* Override reveal opacity if needed, or handle via children */
  transform: none !important;
}

.puzzle-piece {
  width: 120px;
  height: 120px;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.5rem;
  color: var(--text-main);
  box-shadow:
    0 20px 40px -10px rgba(0, 0, 0, 0.1),
    inset 0 0 0 1px rgba(255, 255, 255, 0.5);

  /* Initial Scattered State defined by specific classes below */
  opacity: 0;
  transform: scale(0.5);
  transition: all 1.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  will-change: transform, opacity;
}

/* Specific Brands Colors on Hover (Subtle) */
.puzzle-piece:hover {
  transform: translateY(-10px) scale(1.05) !important;
  z-index: 10;
}

.puzzle-piece.android:hover {
  color: #3DDC84;
  box-shadow: 0 20px 40px -10px rgba(61, 220, 132, 0.3);
}

.puzzle-piece.apple:hover {
  color: #000000;
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.2);
}

.puzzle-piece.windows:hover {
  color: #0078D6;
  box-shadow: 0 20px 40px -10px rgba(0, 120, 214, 0.3);
}

.puzzle-piece.linux:hover {
  color: #E3E3E3;
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.2);
}

/* SCATTERED POSITIONS (Before Reveal/Active) */
/* Targeted when .puzzle-container does NOT have .active */
.puzzle-container:not(.active) .p-android {
  transform: translate(-200px, -150px) rotate(-45deg) scale(0.5);
  opacity: 0;
}

.puzzle-container:not(.active) .p-apple {
  transform: translate(200px, -150px) rotate(45deg) scale(0.5);
  opacity: 0;
}

.puzzle-container:not(.active) .p-windows {
  transform: translate(-200px, 150px) rotate(45deg) scale(0.5);
  opacity: 0;
}

.puzzle-container:not(.active) .p-linux {
  transform: translate(200px, 150px) rotate(-45deg) scale(0.5);
  opacity: 0;
}

/* ASSEMBLED STATE (Active) */
.puzzle-container.active .p-android,
.puzzle-container.active .p-apple,
.puzzle-container.active .p-windows,
.puzzle-container.active .p-linux {
  transform: translate(0, 0) rotate(0deg) scale(1);
  opacity: 1;
}

/* Delays for "Click-Click-Click" effect */
.puzzle-container.active .p-android {
  transition-delay: 0.1s;
}

.puzzle-container.active .p-apple {
  transition-delay: 0.2s;
}

.puzzle-container.active .p-windows {
  transition-delay: 0.3s;
}

.puzzle-container.active .p-linux {
  transition-delay: 0.4s;
}

.puzzle-text {
  margin-top: 40px;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--text-muted);
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.8s ease 0.6s;
}

.puzzle-container.active .puzzle-text {
  opacity: 1;
  transform: translateY(0);
}

/* 18. CHAOS TO ORDER (Receipt Printer Effect) */
.receipt-card {
  position: relative;
  background: white;
  color: var(--text-main);
  padding: 32px;
  /* Jagged bottom edge using mask */
  --mask: radial-gradient(circle at 10px bottom, transparent 10px, black 10.5px) bottom left / 20px 20px repeat-x,
    linear-gradient(black, black);
  -webkit-mask: var(--mask);
  mask: var(--mask);
  -webkit-mask-composite: source-over, xor;
  mask-composite: exclude;

  /* Fallback border radius if mask not supported perfectly */
  border-radius: 16px 16px 0 0;
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.1);

  /* Initial Crumpled State (Overridden by JS/Animation) */
  transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  overflow: hidden;
}

/* Decoration line to look like thermal print */
.receipt-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--primary);
  opacity: 0.5;
}

/* The Crumple Animation Classes */
.receipt-card.reveal-crumple {
  transform: scale(0.4) rotate(15deg);
  border-radius: 40% 60% 30% 70% / 60% 30% 70% 40%;
  /* Irregular blob */
  opacity: 0;
  box-shadow: inset -10px -10px 20px rgba(0, 0, 0, 0.1);
  /* Paper depth */
  filter: grayscale(100%) blur(2px);
  /* Blurred when crumpled */
}

/* When revealed */
.receipt-card.reveal-crumple.active {
  animation: uncrumplePaper 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes uncrumplePaper {
  0% {
    transform: scale(0.2) rotate(var(--r, 10deg));
    border-radius: 50% 30% 70% 40%;
    opacity: 0;
    filter: grayscale(100%) blur(5px);
  }

  40% {
    opacity: 1;
    transform: scale(0.8) rotate(var(--r2, -5deg));
    border-radius: 10% 20% 10% 20%;
    filter: grayscale(0%) blur(0px);
  }

  100% {
    transform: scale(1) rotate(0deg);
    border-radius: 16px 16px 0 0;
    /* Final shape */
    opacity: 1;
    filter: none;
  }
}

/* Printer Head Effect (Green scanning line) */
.printer-scan-line {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  /* Thicker */
  background: #10B981;
  /* Bright Green */
  box-shadow: 0 0 20px #10B981, 0 0 40px #10B981;
  /* Strong Glow */
  z-index: 10;
  opacity: 0;
}

.receipt-card.active .printer-scan-line {
  animation: scanDown 1.5s ease-in-out forwards;
  animation-delay: 0.8s;
  /* Wait for uncrumple to mostly finish */
}

@keyframes scanDown {
  0% {
    top: 0;
    opacity: 1;
    width: 0%;
    left: 50%;
  }

  /* Starts as dot */
  10% {
    width: 100%;
    left: 0;
    top: 0;
  }

  /* Expands to line */
  90% {
    opacity: 1;
  }

  100% {
    top: 100%;
    opacity: 0;
    width: 100%;
    left: 0;
  }
}

/* Parallax Paper Rain in Background */
.paper-rain-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.paper-scrap {
  position: absolute;
  background: white;
  width: 40px;
  height: 40px;
  border-radius: 50% 40% 60% 30%;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
  opacity: 0.6;
  /* More visible */
  animation: floatDown 8s linear infinite;
}

@keyframes floatDown {
  0% {
    transform: translateY(-100px) rotate(0deg);
  }

  100% {
    transform: translateY(800px) rotate(360deg);
  }
}

/* 19. KDS PRICING SYSTEM (Technological Order Screen) */
.kds-section {
  background: #111827;
  /* Dark Screen Background */
  border-radius: 20px;
  padding: 40px;
  border: 4px solid #374151;
  /* Monitor Bezel */
  box-shadow: 0 0 0 2px #000, 0 20px 50px rgba(0, 0, 0, 0.5);
  margin-top: 60px;
  position: relative;
  overflow: hidden;
}

/* Screen Glare */
.kds-section::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.03));
  pointer-events: none;
}

.kds-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  position: relative;
  z-index: 2;
}

.kds-ticket {
  background: #F9FAFB;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
  transform-origin: top center;
  /* animation: popInTicket 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) backwards; Note: triggers via reveal */
  opacity: 1;
  /* handled by reveal */
}

.kds-header {
  padding: 12px 16px;
  color: white;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
}

.kds-header.standard {
  background: #64748B;
}

.kds-header.pro {
  background: #EAB308;
  color: black;
}

/* Yellow/Orange */
.kds-header.premium {
  background: #2563EB;
}

/* Blue */

.kds-timer {
  font-family: 'Courier New', monospace;
  background: rgba(0, 0, 0, 0.2);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.9rem;
}

.kds-body {
  padding: 16px;
  flex-grow: 1;
  background: #fff;
}

.kds-item-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: #1F2937;
}

.kds-item {
  display: flex;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px dashed #E5E7EB;
}

.kds-item:last-child {
  border-bottom: none;
}

.kds-qty {
  font-weight: 700;
  color: var(--primary);
  min-width: 24px;
}

.kds-footer {
  padding: 16px;
  background: #F3F4F6;
  border-top: 1px solid #E5E7EB;
  text-align: center;
}

.kds-price {
  font-size: 1.8rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 10px;
  display: block;
}

.kds-btn {
  display: block;
  width: 100%;
  padding: 12px;
  background: #10B981;
  /* KDS "Done" Green */
  color: white;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.2s;
  cursor: pointer;
}

.kds-btn:hover {
  background: #059669;
  transform: scale(1.02);
}

/* Animation trigger */
/* Animation trigger removed to avoid conflict */

/* Dynamic KDS Order Entrance */
@keyframes popInTicket {
  0% {
    transform: scale(0.5) translateY(50px);
    opacity: 0;
    filter: blur(10px);
  }

  60% {
    transform: scale(1.05) translateY(-10px);
    opacity: 1;
    filter: blur(0);
    box-shadow: 0 0 50px rgba(255, 255, 255, 0.8);
    /* Flash effect */
  }

  80% {
    transform: scale(0.98);
  }

  100% {
    transform: scale(1);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
  }
}

/* Staggered Order Arrival */
/* Staggered Order Arrival */
.kds-section:not(.active) .kds-ticket {
  opacity: 0;
  transform: translateY(20px);
}

.kds-ticket.active,
.kds-section.active .kds-ticket {
  opacity: 1;
  animation: popInTicket 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* Sound/Attention Pulse for "Timers" (Headers) */
@keyframes urgentPulse {
  0% {
    background-color: rgba(37, 99, 235, 0.1);
    box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.4);
  }

  50% {
    background-color: rgba(37, 99, 235, 0.2);
    box-shadow: 0 0 0 10px rgba(37, 99, 235, 0);
  }

  100% {
    background-color: rgba(37, 99, 235, 0.1);
    box-shadow: 0 0 0 0 rgba(37, 99, 235, 0);
  }
}

/* Specific delays for "Real Time" feel */
.kds-ticket:nth-child(1) {
  animation-delay: 0.1s;
}

.kds-ticket:nth-child(2) {
  animation-delay: 0.4s;
}

/* Slight pause implies processing */
.kds-ticket:nth-child(3) {
  animation-delay: 0.8s;
}

/* Interactive Hover - "Selecting" the order */
.kds-ticket:hover {
  transform: translateY(-8px) scale(1.02) !important;
  /* Override animation final state */
  border-color: var(--primary);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
  z-index: 10;
}

.kds-ticket:hover .kds-header {
  background: var(--primary);
  color: white;
}

.kds-ticket:hover .kds-btn {
  transform: scale(1.05);
  box-shadow: 0 5px 15px rgba(37, 99, 235, 0.4);
}

/* New Order Notification Badge (CSS only) */
.kds-ticket::after {
  content: 'NEW';
  position: absolute;
  top: -10px;
  right: -10px;
  background: #ef4444;
  color: white;
  font-size: 0.7rem;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(239, 68, 68, 0.4);
  opacity: 0;
  transform: scale(0);
  animation: badgePop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

.kds-ticket:nth-child(1)::after {
  animation-delay: 0.7s;
}

.kds-ticket:nth-child(2)::after {
  animation-delay: 1.0s;
  content: 'POPULAR';
  background: #EAB308;
}

.kds-ticket:nth-child(3)::after {
  animation-delay: 1.4s;
  content: 'PRO';
  background: #2563EB;
}

@keyframes badgePop {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* --- RESPONSIVE ADJUSTMENTS --- */

/* 20. MOBILE MENU (Apple Style Slide) */
.mobile-menu-overlay {
  position: fixed;
  top: 70px;
  /* Below the floating header */
  left: 50%;
  transform: translateX(-50%) translateY(-20px);
  width: 90%;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 24px;
  padding: 24px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  gap: 16px;
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.mobile-menu-overlay.active {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: all;
}

.mobile-nav-link {
  font-family: 'Outfit', sans-serif;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--text-main);
  text-decoration: none;
  padding: 12px;
  border-radius: 12px;
  transition: background 0.2s;
  text-align: center;
}

.mobile-nav-link:active {
  background: rgba(0, 0, 0, 0.05);
}

/* Tablet & Mobile Grid Adjustments */
@media (max-width: 1024px) {

  .solutions-grid,
  .kds-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .hero-section {
    flex-direction: column;
    text-align: center;
    padding-top: 100px;
    padding-bottom: 60px;
    min-height: auto;
  }

  section {
    padding: 60px 15px;
  }

  .hero-title {
    font-size: 3.5rem;
  }

  .phone-mockup-wrapper {
    margin-top: 60px;
    transform: scale(0.9);
  }
}

@media (max-width: 768px) {

  /* Stack Grids to 1 Column */
  .solutions-grid,
  .kds-grid,
  .steps-row,
  .puzzle-container {
    grid-template-columns: 1fr !important;
    display: flex;
    flex-direction: column;
  }

  /* Hero Adjustments */
  .hero-title {
    font-size: 2.5rem;
    /* Smaller for mobile */
    padding: 0 16px;
  }

  .hero-subtitle {
    font-size: 1.1rem;
    padding: 0 24px;
  }

  /* Phone Interaction disabled on mobile to prevent scroll lock issues, just static look */
  .phone-mockup-wrapper {
    width: 100%;
    max-width: 300px;
    height: auto;
    aspect-ratio: 300/550;
    margin: 40px auto;
  }

  .phone-mockup {
    width: 100%;
    height: 100%;
  }

  /* KDS Grid Spacing */
  .kds-section {
    padding: 15px;
  }

  .kds-ticket {
    margin-bottom: 24px;
  }

  /* Puzzle Pieces */
  .puzzle-container {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
  }

  .puzzle-piece {
    width: calc(50% - 10px);
    max-width: 140px;
    height: auto;
    aspect-ratio: 1/1;
  }

  /* Paper Rain less intense */
  .paper-scrap {
    width: 20px;
    height: 20px;
  }
}

/* Small Landscape adjustment */
@media (max-height: 500px) and (orientation: landscape) {
  .hero-section {
    padding-top: 80px;
    min-height: auto;
  }

  .phone-mockup-wrapper {
    display: none;
    /* Hide phone on short landscapes to read text */
  }
}

/* 21. AXO SMART ASSISTANT (Interactive) */
.axo-widget {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  text-decoration: none;
  cursor: pointer;
}

.axo-avatar {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 4px solid white;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  position: relative;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  background: white;
  /* Fallback */
}

.axo-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Adjust crop if needed */
  transform: scale(1.1);
}

/* Status Dot */
.axo-status-dot {
  position: absolute;
  bottom: 5px;
  right: 5px;
  width: 14px;
  height: 14px;
  background: #10B981;
  border: 2px solid white;
  border-radius: 50%;
  box-shadow: 0 0 10px #10B981;
  animation: axoPulse 2s infinite;
}

/* Speech Bubble */
.axo-bubble {
  background: white;
  color: var(--text-main);
  padding: 10px 16px;
  border-radius: 12px 12px 0 12px;
  /* Point to avatar */
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 0.9rem;
  max-width: 200px;
  text-align: right;
  opacity: 1;
  transform: translateY(0);
  transition: all 0.3s ease;
  pointer-events: none;
  /* Let clicks pass to widget */

  /* Glass effect */
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

/* Hover Interactions */
.axo-widget:hover .axo-avatar {
  transform: scale(1.1) rotate(-5deg);
}

.axo-widget:hover .axo-bubble {
  transform: translateY(-5px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}

/* Animations */
@keyframes axoPulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }

  70% {
    transform: scale(1.1);
    box-shadow: 0 0 0 10px rgba(16, 185, 129, 0);
  }

  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}

@media (max-width: 768px) {
  .axo-widget {
    bottom: 20px;
    right: 20px;
  }

  .axo-avatar {
    width: 60px;
    height: 60px;
  }

  .axo-bubble {
    font-size: 0.8rem;
    padding: 8px 12px;
  }

  /* Fix for "Qué es Rest Cube" and "Filtro" on Mobile */
  #solucion .rc-card,
  #booking .rc-card {
    padding: 24px;
    /* Less padding than desktop */
    margin: 0 16px;
    /* Side margins */
    width: auto;
    /* Auto width instead of max-width forcing */
  }

  #solucion h2,
  #booking h3 {
    font-size: 1.6rem !important;
    /* Force smaller size */
    word-wrap: break-word;
    /* Prevent overflow */
  }

  #solucion p,
  #booking p {
    font-size: 1rem !important;
    line-height: 1.5;
  }

  /* Final CTA Mobile */
  .btn-primary {
    width: 100%;
    box-sizing: border-box;
    padding: 16px !important;
    font-size: 1.1rem !important;
    display: block;
    /* Full width button */
    margin: 0 auto;
    max-width: 90%;
  }

  #booking h2 {
    font-size: 1.6rem !important;
    padding: 0 10px;
  }

  .pro-float-badge {
    padding: 10px 15px;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}

/* 19. NEW STEPS SECTION (Replaces Pipeline) */
.rc-steps-section {
  padding: 80px 20px;
  position: relative;
  overflow: hidden;
}

.rc-steps-header {
  margin-bottom: 60px;
}

.rc-steps-container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
}

/* The Progress Line */
.rc-steps-line {
  position: absolute;
  top: 60px;
  /* Align with icons */
  left: 0;
  width: 100%;
  height: 4px;
  background: #e2e8f0;
  z-index: 0;
  border-radius: 4px;
}

.rc-steps-progress {
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, #2563eb, #10b981);
  border-radius: 4px;
  opacity: 0;
  /* Scoped: Hidden until active */
}

.rc-steps-section.active .rc-steps-progress {
  opacity: 1;
  animation: stepsFill 4s cubic-bezier(0.25, 1, 0.5, 1) infinite;
}

@keyframes stepsFill {
  0% {
    width: 0%;
    opacity: 0;
  }

  10% {
    width: 0%;
    opacity: 1;
  }

  80% {
    width: 100%;
    opacity: 1;
  }

  100% {
    width: 100%;
    opacity: 0;
  }
}

/* Step Cards */
.rc-step-card {
  position: relative;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid #fff;
  border-radius: 20px;
  padding: 80px 20px 30px 20px;
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
  z-index: 1;
  transition: transform 0.3s ease;
  text-align: center;
  opacity: 0;
  /* Scoped: Hidden until active */
  transform: translateY(40px);
}

.rc-steps-section.active .rc-step-card {
  animation-fill-mode: both;
}

.rc-step-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.15);
  background: #fff;
}

/* Floating Number */
.rc-step-number {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 3rem;
  font-weight: 900;
  color: rgba(37, 99, 235, 0.05);
  line-height: 1;
}

/* Icons */
.rc-step-icon {
  width: 60px;
  height: 60px;
  background: #fff;
  border: 2px solid #e2e8f0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  color: #2563eb;
  margin: 0 auto 20px auto;
  position: absolute;
  top: 30px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  transition: all 0.3s ease;
}

.rc-step-card:hover .rc-step-icon {
  background: #2563eb;
  color: #fff;
  border-color: #2563eb;
  box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.2);
}

.rc-step-content h3 {
  font-size: 1.2rem;
  margin-bottom: 10px;
  color: #1e293b;
}

.rc-step-content p {
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.5;
}

/* Stagger Animations - Scope to Active */
.rc-steps-section.active .step-1 {
  animation: slideUpFade 0.6s ease 0.1s forwards;
}

.rc-steps-section.active .step-2 {
  animation: slideUpFade 0.6s ease 0.3s forwards;
}

.rc-steps-section.active .step-3 {
  animation: slideUpFade 0.6s ease 0.5s forwards;
}

.rc-steps-section.active .step-4 {
  animation: slideUpFade 0.6s ease 0.7s forwards;
}

@keyframes slideUpFade {
  from {
    opacity: 0;
    transform: translateY(40px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* MOBILE RESPONSIVENESS */
@media (max-width: 900px) {
  .rc-steps-container {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-left: 20px;
    /* Space for timeline */
  }

  .rc-steps-line {
    width: 4px;
    height: 100%;
    top: 0;
    left: 30px;
    /* Align with left icons (calculated) */
    transform: none;
  }

  .rc-steps-progress {
    width: 100%;
    height: 0%;
    animation: none;
    /* Reset desktop animation */
  }

  .rc-steps-section.active .rc-steps-progress {
    animation: stepsFillVertical 4s ease-out infinite;
  }

  @keyframes stepsFillVertical {
    0% {
      height: 0%;
      opacity: 0;
    }

    10% {
      height: 0%;
      opacity: 1;
    }

    80% {
      height: 100%;
      opacity: 1;
    }

    100% {
      height: 100%;
      opacity: 0;
    }
  }

  .rc-step-card {
    padding: 20px 20px 20px 90px;
    text-align: left;
    display: flex;
    align-items: center;
    min-height: 120px;
    transform: translateY(0);
    /* Mobile reveal might handle transform diff */
  }

  .rc-step-number {
    top: 50%;
    transform: translateY(-50%);
    right: 20px;
  }

  .rc-step-icon {
    top: 50%;
    left: -20px;
    /* Hang off the card to hit line */
    transform: translateY(-50%);
    margin: 0;
  }

  /* Align icon to line */
  .rc-steps-line {
    left: 10px;
  }
}

/* 23. DEEP GLASS MONOLITH (Solution Section) */
#solucion {
  text-align: center;
  perspective: 1000px;
  padding: 40px 20px;
}

/* 20. GLASS TERMINAL FORM (Demo Request) */
#demo.rc-demo-section {
  padding: 100px 20px 140px;
  background-color: #0f172a !important;
  /* Force Dark Background */
  background-image: radial-gradient(at top right, #1e293b 0%, #0f172a 70%);
  color: white;
  position: relative;
  z-index: 10;
  overflow: hidden;
}

/* Local Override for Dark Background */
.rc-demo-section .rc-gradient-title {
  background: linear-gradient(135deg, #ffffff 0%, #60a5fa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 5px 15px rgba(59, 130, 246, 0.3);
  /* Glow */
}

.rc-demo-container {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.rc-demo-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 60px;
  align-items: center;
}

/* Left Info */
.rc-demo-subtitle {
  font-size: 1.2rem;
  color: #e2e8f0;
  /* Brighter */
  margin-bottom: 30px;
  font-weight: 400;
  /* Thicker */
}

.rc-demo-benefits {
  list-style: none;
  padding: 0;
  margin-bottom: 40px;
}

.rc-demo-benefits li {
  font-size: 1.1rem;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #e2e8f0;
}

.rc-demo-benefits i {
  color: #10b981;
}

/* Axo Helper Small */
.rc-axo-helper {
  display: flex;
  align-items: center;
  gap: 15px;
  background: rgba(255, 255, 255, 0.05);
  padding: 15px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.axo-avatar-small {
  width: 50px;
  height: 50px;
  background: url('../../assets/img/axo_mascot.jpg') no-repeat center/cover;
  border-radius: 50%;
  border: 2px solid white;
}

.axo-bubble-small {
  font-size: 0.9rem;
  color: #fff;
  font-style: italic;
}

/* Right Form Card (The Terminal) */
.rc-form-card {
  background: rgba(30, 41, 59, 0.7);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 30px 60px -10px rgba(0, 0, 0, 0.5);
  transition: transform 0.3s;
}

.rc-terminal-header {
  background: rgba(0, 0, 0, 0.3);
  padding: 15px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.terminal-dots {
  display: flex;
  gap: 6px;
}

.terminal-dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #475569;
}

.terminal-dots span:nth-child(1) {
  background: #ef4444;
}

.terminal-dots span:nth-child(2) {
  background: #eab308;
}

.terminal-dots span:nth-child(3) {
  background: #22c55e;
}

.terminal-title {
  font-family: 'Courier New', monospace;
  font-size: 0.8rem;
  color: #cbd5e1;
  /* Brighter */
  letter-spacing: 2px;
  font-weight: 700;
}

.rc-glass-form {
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* Inputs */
.rc-input-group {
  position: relative;
}

.input-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #cbd5e1;
  /* Brighter icon */
  font-size: 1rem;
  transition: color 0.3s;
}

.rc-input-group input {
  width: 100%;
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: white;
  padding: 14px 14px 14px 45px;
  /* Space for icon */
  border-radius: 12px;
  font-size: 1rem;
  outline: none;
  transition: all 0.3s;
}

.rc-input-group input::placeholder {
  color: #94a3b8;
  opacity: 1;
}

.rc-input-group input:focus {
  background: rgba(15, 23, 42, 0.9);
  border-color: #3b82f6;
  box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
}

.rc-input-group input:focus~.input-icon {
  color: #3b82f6;
}

/* Invalid state (from js) */
.rc-input-group input[aria-invalid="true"] {
  border-color: #ef4444;
}

/* Upload */
.rc-upload-group {
  position: relative;
}

.rc-upload-group input[type="file"] {
  display: none;
}

.upload-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px dashed rgba(255, 255, 255, 0.2);
  padding: 15px;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s;
  color: #cbd5e1;
}

.upload-label:hover {
  border-color: #3b82f6;
  background: rgba(59, 130, 246, 0.1);
  color: white;
}

/* Terms */
.rc-terms-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.9rem;
  color: #cbd5e1;
  /* Brighter terms */
}

.rc-terms-check input {
  width: 18px;
  height: 18px;
  accent-color: #3b82f6;
}

/* Submit Button */
.rc-submit-btn {
  background: linear-gradient(90deg, #2563eb, #3b82f6);
  color: white;
  border: none;
  padding: 16px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 1.1rem;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
  position: relative;
  overflow: hidden;
}

.rc-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 30px -5px rgba(37, 99, 235, 0.5);
}

.rc-submit-btn:disabled {
  background: #475569;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
  opacity: 0.7;
}

.btn-loader {
  display: none;
}

.rc-submit-btn.is-loading .btn-text {
  display: none;
}

.rc-submit-btn.is-loading .btn-loader {
  display: inline-block;
}

/* Success Modal Overlay */
.rc-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.9);
  backdrop-filter: blur(8px);
  z-index: 10000;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: all 0.4s ease;
}

.rc-modal-overlay.is-on {
  opacity: 1;
  pointer-events: all;
}

.rc-modal-card {
  background: #fff;
  padding: 50px;
  border-radius: 30px;
  text-align: center;
  max-width: 500px;
  width: 90%;
  transform: scale(0.9);
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

.rc-modal-overlay.is-on .rc-modal-card {
  transform: scale(1);
}

.rc-modal-icon {
  font-size: 5rem;
  color: #10b981;
  margin-bottom: 20px;
  animation: successPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes successPop {
  0% {
    transform: scale(0);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.rc-modal-card h4 {
  font-size: 2rem;
  color: #1e293b;
  margin-bottom: 10px;
}

.rc-modal-email {
  font-size: 1.2rem;
  font-weight: 700;
  color: #2563eb;
  margin-bottom: 5px;
}

.rc-modal-note {
  color: #64748b;
  margin-bottom: 30px;
}

.rc-modal-close-btn {
  background: #1e293b;
  color: white;
  border: none;
  padding: 15px 40px;
  border-radius: 12px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.2s;
}

.rc-modal-close-btn:hover {
  transform: translateY(-2px);
  background: #0f172a;
}

/* Responsive Demo */
@media (max-width: 900px) {
  .rc-demo-grid {
    grid-template-columns: 1fr;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .rc-demo-section {
    padding-top: 60px;
  }
}

.monolith-card {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  background: radial-gradient(circle at center, #1e293b 0%, #0f172a 100%);
  border-radius: 24px;
  padding: 60px 40px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5),
    inset 0 0 0 1px rgba(255, 255, 255, 0.1);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.monolith-card:hover {
  transform: translateY(-8px) scale(1.01);
  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.6),
    inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

/* Glowing Orb Background */
.orb-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.15) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  animation: orbPulse 6s infinite ease-in-out;
}

@keyframes orbPulse {

  0%,
  100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.5;
  }

  50% {
    transform: translate(-50%, -50%) scale(1.2);
    opacity: 0.8;
  }
}

.monolith-title {
  font-size: 2.2rem;
  color: white;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
  position: relative;
  z-index: 2;
}

.monolith-separator {
  width: 50px;
  height: 4px;
  background: var(--primary);
  margin: 0 auto 30px auto;
  border-radius: 2px;
  box-shadow: 0 0 15px var(--primary);
}

.monolith-text {
  font-size: 1.5rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.6;
  max-width: 700px;
  margin: 0 auto 20px auto;
  position: relative;
  z-index: 2;
}

.text-white-glow {
  color: white;
  font-weight: 700;
  text-shadow: 0 0 20px rgba(255, 255, 255, 0.6);
}

.monolith-subtext {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.05em;
  position: relative;
  z-index: 2;
}


/* 24. SECURITY GATE (Filter Section) */
.security-section {
  text-align: center;
  padding-bottom: 120px;
}

.security-card {
  max-width: 800px;
  margin: 0 auto;
  background: #0f172a;
  /* Dark Slate */
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(15, 23, 42, 0.4);
  text-align: left;
  position: relative;
  color: white;
}

.security-header {
  background: #1e293b;
  padding: 20px;
  text-align: center;
  border-bottom: 1px solid #334155;
}

.warning-stripe {
  font-family: 'Courier New', monospace;
  color: #EAB308;
  font-weight: 700;
  letter-spacing: 0.2em;
  font-size: 0.8rem;
  margin-bottom: 8px;
  opacity: 0.8;
}

.security-header h3 {
  margin: 0;
  font-size: 1.5rem;
  color: white;
  letter-spacing: 0.05em;
}

.access-grid {
  display: flex;
  position: relative;
}

.access-zone {
  flex: 1;
  padding: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  transition: all 0.3s;
  position: relative;
}

.zone-divider {
  width: 1px;
  background: #334155;
}

/* Access Denied Zone */
.access-zone.denied {
  background: linear-gradient(to bottom, #1e293b, #0f172a);
  opacity: 0.6;
}

.access-zone.denied:hover {
  opacity: 1;
  background: linear-gradient(to bottom, #450a0a, #1e293b);
  /* Reddish tint */
}

.access-zone.denied .zone-icon {
  font-size: 2.5rem;
  color: #ef4444;
  margin-bottom: 16px;
}

.stamp-denied {
  border: 2px solid #ef4444;
  color: #ef4444;
  font-weight: 900;
  padding: 8px 16px;
  font-size: 0.9rem;
  transform: rotate(-10deg);
  margin-top: 20px;
  opacity: 0.5;
  transition: opacity 0.3s;
}

.access-zone.denied:hover .stamp-denied {
  opacity: 1;
  box-shadow: 0 0 20px rgba(239, 68, 68, 0.2);
}

/* Access Granted Zone */
.access-zone.granted {
  background: linear-gradient(to bottom, #1e293b, #0f172a);
}

.access-zone.granted:hover {
  background: linear-gradient(to bottom, #064e3b, #0f172a);
  /* Greenish tint */
}

.access-zone.granted .zone-icon {
  font-size: 2.5rem;
  color: #10B981;
  margin-bottom: 16px;
}

.stamp-granted {
  border: 2px solid #10B981;
  color: #10B981;
  font-weight: 900;
  padding: 8px 16px;
  font-size: 0.9rem;
  transform: rotate(-5deg);
  margin-top: 20px;
  box-shadow: 0 0 15px rgba(16, 185, 129, 0.2);
}

/* Security Mobile */
@media (max-width: 768px) {
  .holo-text-main {
    font-size: 1.4rem;
  }

  .holo-card {
    padding: 30px 20px;
  }

  .access-grid {
    flex-direction: column;
  }

  .zone-divider {
    height: 1px;
    width: 100%;
  }

  .access-zone {
    padding: 30px 20px;
  }
}

/* 21. PRIVACY FOOTER & MODAL */
.rc-main-footer {
  background: #0f172a;
  /* Match demo section */
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding: 20px 0;
  text-align: center;
  font-size: 0.9rem;
  color: #64748b;
  position: relative;
  z-index: 20;
}

.footer-content {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
}

.footer-link {
  background: none;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  font-size: 0.9rem;
  transition: color 0.3s;
  text-decoration: underline;
  text-decoration-color: rgba(148, 163, 184, 0.3);
}

.footer-link:hover {
  color: #3b82f6;
  text-decoration-color: #3b82f6;
}

/* Privacy Modal */
.rc-legal-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.8);
  backdrop-filter: blur(5px);
  z-index: 20000;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}

.rc-legal-modal-overlay.is-open {
  opacity: 1;
  pointer-events: all;
}

.rc-legal-card {
  background: white;
  width: 90%;
  max-width: 700px;
  max-height: 80vh;
  border-radius: 20px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(20px);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.rc-legal-modal-overlay.is-open .rc-legal-card {
  transform: translateY(0);
}

.rc-legal-header {
  padding: 20px 30px;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f8fafc;
}

.rc-legal-header h3 {
  margin: 0;
  font-size: 1.2rem;
  color: #1e293b;
}

.rc-close-icon {
  background: none;
  border: none;
  font-size: 1.2rem;
  color: #64748b;
  cursor: pointer;
  transition: color 0.2s;
}

.rc-close-icon:hover {
  color: #ef4444;
}

.rc-legal-body {
  padding: 30px;
  overflow-y: auto;
  color: #334155;
  line-height: 1.6;
  font-size: 0.95rem;
  text-align: left;
}

.rc-legal-body h4 {
  color: #1e293b;
  margin-top: 20px;
  margin-bottom: 10px;
}

.rc-legal-body ul {
  padding-left: 20px;
  margin-bottom: 15px;
}

@media (max-width: 600px) {
  .footer-content {
    flex-direction: column;
    gap: 10px;
  }
}

/* =========================================
   24. CRITICAL FIXES & FAQ ADDITION
   ========================================= */

/* 1. Mobile Toggle Visibility Fix */
.mobile-toggle {
  display: none;
  /* Hidden on desktop */
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 10001;
  /* Above overlay */
  padding: 10px;
}

.mobile-toggle span {
  width: 28px;
  height: 3px;
  background: #0f172a;
  /* Dark text color */
  border-radius: 3px;
  transition: all 0.3s ease;
}

@media (max-width: 900px) {
  .mobile-toggle {
    display: flex;
    /* Visible on mobile */
  }

  /* Hide desktop nav elements when mobile */
  .glass-header .header-nav,
  .glass-header .header-cta {
    display: none;
  }
}

/* 2. Responsive Cards Fix (Formas de Implementacion) */
.kds-ticket {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden;
  /* Prevent spill */
}

.kds-body {
  width: 100%;
  box-sizing: border-box;
}

/* Ensure inner list items handle small screens */
.kds-item {
  white-space: normal !important;
  flex-wrap: wrap;
  /* Allow wrapping */
}

/* 3. FAQ Section Styles */
.rc-faq-section {
  padding: 100px 20px;
  background: #f8fafc;
  position: relative;
  overflow: hidden;
}

.rc-faq-container {
  max-width: 800px;
  margin: 0 auto;
}

.rc-faq-item {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 16px;
  margin-bottom: 16px;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
}

.rc-faq-item[open] {
  background: #fff;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
  border-color: rgba(37, 99, 235, 0.2);
}

.rc-faq-summary {
  padding: 24px;
  cursor: pointer;
  position: relative;
  list-style: none;
  /* Hide default triangle */
  font-weight: 600;
  font-size: 1.1rem;
  color: #1e293b;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.rc-faq-summary::-webkit-details-marker {
  display: none;
}

.rc-faq-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #eff6ff;
  color: #2563eb;
  display: grid;
  place-items: center;
  font-size: 0.8rem;
  transition: transform 0.3s ease;
}

.rc-faq-item[open] .rc-faq-icon {
  transform: rotate(180deg);
  background: #2563eb;
  color: #fff;
}

.rc-faq-content {
  padding: 0 24px 24px 24px;
  color: #64748b;
  line-height: 1.6;
  animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =========================================
   25. FINAL POLISH & BUG FIXES
   ========================================= */

/* 1. Subtitle Highlight (Stand out) */
.rc-subtitle-highlight {
  font-size: 1.25rem;
  max-width: 700px;
  margin: 16px auto 0;
  font-weight: 500;
  color: #475569;
  /* Slightly darker than muted */
  line-height: 1.6;
}

/* 2. Glass Header Fix (Mobile Nav Block) */
.glass-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  /* Explicit height */
  z-index: 9999;
  /* Higher than overlay */
  background: rgba(255, 255, 255, 0.85);
  /* Fallback */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  transition: all 0.3s ease;
}

/* Make sure the toggle is actually clickable */
.mobile-toggle {
  pointer-events: auto;
  position: relative;
  /* Context */
}

/* 3. Formas de Implementacion Responsive Title */
/* Force .text-gradient to be responsive if used elsewhere OR override specific instance */
.text-gradient {
  font-size: clamp(2rem, 5vw, 3rem) !important;
  /* Force responsive sizing */
  line-height: 1.1;
}

/* Fix Hero Padding on Mobile to not get covered by header */
@media (max-width: 768px) {
  .hero-section {
    padding-top: 100px;
    /* Ensure content starts below fixed header */
    margin-top: 0;
  }
}

/* =========================================
   26. RC PREMIUM HEADER (NEW)
   ========================================= */

.rc-premium-header {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 1100px;
  height: 70px;
  z-index: 10000;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.rc-premium-header.scrolled {
  top: 10px;
  width: 95%;
  background: rgba(255, 255, 255, 0.85);
  /* 85% Opacity */
  backdrop-filter: blur(24px) saturate(120%);
  /* Stronger blur, rich color */
  -webkit-backdrop-filter: blur(24px) saturate(120%);
  border-radius: 16px;
  /* Slightly rounder */
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.3);
  /* Distinct but subtle border */
}

.rc-header-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  padding: 0 20px;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 50px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.rc-premium-header.scrolled .rc-header-container {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 10px;
}

/* Logo */
.rc-logo-link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: #0f172a;
  font-weight: 800;
  font-size: 1.2rem;
  letter-spacing: -0.02em;
}

.rc-logo-img {
  height: 48px;
  width: auto;
  border-radius: 8px;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.rc-logo-link:hover .rc-logo-img {
  transform: scale(1.05) rotate(-2deg);
}

/* Desktop Nav */
.rc-desktop-nav {
  display: flex;
  gap: 30px;
}

.rc-nav-item {
  text-decoration: none;
  color: #475569;
  font-weight: 500;
  font-size: 0.95rem;
  position: relative;
  transition: color 0.3s;
}

.rc-nav-item:hover {
  color: #2563eb;
}

.rc-nav-item::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0%;
  height: 2px;
  background: #2563eb;
  transition: width 0.3s;
  border-radius: 2px;
}

.rc-nav-item:hover::after {
  width: 100%;
}

/* Actions */
.rc-header-actions {
  display: flex;
  align-items: center;
  gap: 15px;
}

.rc-btn-glass {
  padding: 10px 20px;
  background: #0f172a;
  color: white;
  text-decoration: none;
  border-radius: 30px;
  font-size: 0.9rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
}

.rc-btn-glass:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.3);
}

/* Burger Button (Modern) */
.rc-burger-btn {
  display: none;
  /* Desktop hidden */
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  cursor: pointer;
  position: relative;
  z-index: 10002;
}

.rc-burger-box {
  width: 24px;
  height: 24px;
  position: relative;
  display: inline-block;
}

.rc-burger-inner {
  top: 50%;
  margin-top: -2px;
  display: block;
  width: 24px;
  height: 2px;
  background-color: #0f172a;
  border-radius: 2px;
  position: absolute;
  transition: transform 0.15s ease;
}

.rc-burger-inner::before,
.rc-burger-inner::after {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  background-color: #0f172a;
  border-radius: 2px;
  position: absolute;
  transition: transform 0.15s ease;
}

.rc-burger-inner::before {
  top: -8px;
}

.rc-burger-inner::after {
  bottom: -8px;
}

/* Burger Active State */
.rc-burger-btn.active .rc-burger-inner {
  transform: rotate(45deg);
  transition-delay: 0.12s;
  background-color: #0f172a;
}

.rc-burger-btn.active .rc-burger-inner::before {
  top: 0;
  opacity: 0;
  transition: top 0.1s ease, opacity 0.1s ease 0.12s;
}

.rc-burger-btn.active .rc-burger-inner::after {
  bottom: 0;
  transform: rotate(-90deg);
  transition: bottom 0.1s ease, transform 0.1s ease 0.12s;
}

/* =========================================
   27. MOBILE MENU OVERLAY
   ========================================= */
.rc-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 10001;
  /* Between header and bg */
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s;
}

.rc-mobile-menu.active {
  pointer-events: auto;
  opacity: 1;
}

.rc-mobile-bg {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  clip-path: circle(0% at 90% 50px);
  /* Start from top right */
  transition: clip-path 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.rc-mobile-menu.active .rc-mobile-bg {
  clip-path: circle(150% at 90% 50px);
}

.rc-mobile-content {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 40px;
  padding: 20px;
}

.rc-mobile-nav {
  display: flex;
  flex-direction: column;
  gap: 20px;
  text-align: center;
}

.rc-mobile-link {
  font-size: 2.5rem;
  font-weight: 800;
  color: #1e293b;
  text-decoration: none;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.4s ease;
}

.rc-mobile-menu.active .rc-mobile-link {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(0.1s * var(--i));
}

.rc-mobile-link:hover {
  color: #2563eb;
  transform: translateX(10px);
}

.rc-mobile-link.highlight {
  color: #2563eb;
  -webkit-text-stroke: 1px #2563eb;
}

.rc-mobile-footer {
  text-align: center;
  opacity: 0;
  transition: 0.4s;
}

.rc-mobile-menu.active .rc-mobile-footer {
  opacity: 1;
  transition-delay: 0.6s;
}

.rc-whatsapp-btn {
  margin-top: 10px;
  display: inline-block;
  padding: 12px 24px;
  background: #25D366;
  color: white;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 700;
  font-size: 1.1rem;
  box-shadow: 0 4px 15px rgba(37, 211, 102, 0.3);
}

/* RESPONSIVE */
@media (max-width: 900px) {
  .rc-premium-header {
    top: 0;
    width: 100%;
    max-width: 100%;
    border-radius: 0;
  }

  .rc-header-container {
    border-radius: 0;
    border: none;
    background: rgba(255, 255, 255, 0.85);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  }

  .rc-desktop-nav,
  .rc-btn-glass {
    display: none;
    /* Hide desktop elements */
  }

  .rc-burger-btn {
    display: block;
    /* Show burger */
  }
}

/* =========================================
   28. DYNAMIC INTERACTIVE ORBIT (3D)
   ========================================= */

/* --- 3D SCENE CONTAINER --- */
.rc-3d-scene {
  position: relative;
  width: 300px;
  /* Base width */
  height: 600px;
  /* Base height */
  margin: 50px auto 0;
  transform-style: preserve-3d;
  perspective: 1200px;
  /* Stronger perspective */
  z-index: 10;
}

/* --- FOOD RAIN BACKGROUND --- */
.rc-food-rain {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  /* Behind the phone */
  overflow: hidden;
  pointer-events: none;
}

.rain-item {
  position: absolute;
  top: -50px;
  /* Start above view */
  font-size: 2.5rem;
  opacity: 0.6;
  filter: blur(1px);
  animation: fallingFood 4s linear infinite;
  will-change: transform;
}

@keyframes fallingFood {
  0% {
    transform: translateY(-100px) rotate(0deg);
    opacity: 0;
  }

  10% {
    opacity: 0.8;
  }

  90% {
    opacity: 0.8;
  }

  100% {
    transform: translateY(600px) rotate(360deg);
    opacity: 0;
  }
}

/* Randomize Rain Items */
/* Left positions spread 0-100% */
.rain-item:nth-child(1) {
  left: 5%;
  animation-duration: 5s;
  animation-delay: 0s;
  font-size: 3rem;
}

.rain-item:nth-child(2) {
  left: 15%;
  animation-duration: 7s;
  animation-delay: 1s;
  font-size: 2rem;
}

.rain-item:nth-child(3) {
  left: 25%;
  animation-duration: 4s;
  animation-delay: 2.5s;
}

.rain-item:nth-child(4) {
  left: 35%;
  animation-duration: 6s;
  animation-delay: 0.5s;
  font-size: 3.5rem;
}

.rain-item:nth-child(5) {
  left: 45%;
  animation-duration: 8s;
  animation-delay: 3s;
  filter: blur(2px);
}

.rain-item:nth-child(6) {
  left: 55%;
  animation-duration: 5s;
  animation-delay: 1.5s;
}

.rain-item:nth-child(7) {
  left: 65%;
  animation-duration: 7s;
  animation-delay: 4s;
  font-size: 2.8rem;
}

.rain-item:nth-child(8) {
  left: 75%;
  animation-duration: 6s;
  animation-delay: 2s;
}

.rain-item:nth-child(9) {
  left: 85%;
  animation-duration: 9s;
  animation-delay: 0.8s;
  filter: blur(3px);
  opacity: 0.4;
}

.rain-item:nth-child(10) {
  left: 95%;
  animation-duration: 5s;
  animation-delay: 5s;
}

.rain-item:nth-child(11) {
  left: 10%;
  animation-duration: 6.5s;
  animation-delay: 3.5s;
  font-size: 1.5rem;
  opacity: 0.5;
}

.rain-item:nth-child(12) {
  left: 80%;
  animation-duration: 7.5s;
  animation-delay: 1.2s;
}

/* --- MOBILE RESPONSIVE --- */
@media (max-width: 900px) {
  .rc-3d-scene {
    margin-top: 50px;
    transform: scale(0.65);
    /* Keep scene scaling */
  }

  /* Make rain slightly subtler on mobile */
  .rain-item {
    font-size: 2rem;
    opacity: 0.4;
  }

  /* Ensure container doesn't overflow horizontally */
  .rc-food-rain {
    width: 120%;
    /* Wider to cover paralax moves */
    left: -10%;
  }
}

@media (max-width: 400px) {
  .rc-3d-scene {
    transform: scale(0.55);
  }
}


/* =========================================
   29. APPLE 2025 BENTO GRID (PROBLEMA REAL)
   ========================================= */

.rc-apple-section {
  position: relative;
  padding: 100px 20px;
  z-index: 2;
  overflow: hidden;
}

/* Typography */
.rc-apple-title {
  font-size: 3.5rem;
  font-weight: 700;
  color: #1d1d1f;
  /* Apple Deep Black */
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}

.rc-apple-subtitle {
  font-size: 1.5rem;
  color: #86868b;
  /* Apple Grey */
  font-weight: 400;
  max-width: 600px;
  margin: 0 auto 60px;
}

/* Bento Grid */
.rc-bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Glass Card */
.rc-apple-card {
  position: relative;
  background: rgba(255, 255, 255, 0.65);
  /* Light premium glass */
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 24px;
  padding: 40px 30px;
  text-align: left;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}

.rc-apple-card:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

/* Spotlight Glow */
.rc-card-glow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(600px circle at var(--x, 50%) var(--y, 50%), rgba(47, 111, 246, 0.08), transparent 40%);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}

.rc-apple-card:hover .rc-card-glow {
  opacity: 1;
}

/* Content */
.rc-icon-box {
  font-size: 2rem;
  color: #2F6FF6;
  /* Brand Primary */
  margin-bottom: 20px;
  background: rgba(47, 111, 246, 0.1);
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
}

.rc-apple-card h3 {
  font-size: 1.5rem;
  font-weight: 600;
  color: #1d1d1f;
  margin-bottom: 12px;
}

.rc-apple-card p {
  font-size: 1.05rem;
  color: #6e6e73;
  line-height: 1.5;
}

/* Ambient Backdrops (Parallax) */
.rc-ambient-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  z-index: -1;
  opacity: 0.6;
}

.orb-a {
  width: 400px;
  height: 400px;
  background: #e0f2ff;
  /* Soft Blue */
  top: -100px;
  left: -100px;
}

.orb-b {
  width: 500px;
  height: 500px;
  background: #f0f0f5;
  /* Soft Grey */
  bottom: -100px;
  right: -100px;
}

/* Responsive */
@media (max-width: 900px) {
  .rc-bento-grid {
    grid-template-columns: 1fr;
    /* Stack on mobile */
  }

  .rc-apple-title {
    font-size: 2.5rem;
  }
}

/* =========================================
   30. HOLOGRAPHIC SOCIAL DOCK (APPLE 2025)
   ========================================= */

.rc-social-section {
  padding: 80px 20px 100px;
  position: relative;
  z-index: 10;
  text-align: center;
}

.rc-dock-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}

.rc-dock-glass {
  display: flex;
  gap: 20px;
  padding: 15px 30px;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
  will-change: transform;
}

/* Icons */
.rc-dock-icon {
  position: relative;
  font-size: 2rem;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  color: white;
  background: #1d1d1f;
  /* Default dark */
  transition: all 0.3s cubic-bezier(0.25, 1.5, 0.5, 1);
  /* Bouncy */
  text-decoration: none;
  overflow: hidden;
}

/* Hover - Scale handled by JS (Magnetic), Color here */
.rc-dock-icon:hover {
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

/* Platform Colors */
.rc-dock-icon.tiktok {
  background: #000;
}

.rc-dock-icon.tiktok:hover {
  background: linear-gradient(45deg, #000, #25F4EE, #FE2C55);
  background-size: 200%;
  animation: gradientShift 2s infinite;
}

.rc-dock-icon.facebook {
  background: #1877F2;
}

.rc-dock-icon.facebook:hover {
  box-shadow: 0 0 20px rgba(24, 119, 242, 0.5);
}

.rc-dock-icon.instagram {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}

.rc-dock-icon.instagram:hover {
  filter: brightness(1.2);
}

/* Reflection Shine */
.dock-reflection {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 50%;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), transparent);
  pointer-events: none;
}

@keyframes gradientShift {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

.rc-social-cta {
  font-size: 1.1rem;
  color: #6e6e73;
  font-weight: 500;
}

/* =========================================
   31. PREMIUM HOLOGRAPHIC LOADER
   ========================================= */

.rc-loader-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  /* Clean white start */
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.6s ease-out, visibility 0.6s;
}

.rc-loader-overlay.fade-out {
  opacity: 0;
  visibility: hidden;
}

/* 3D Cube */
.rc-cube-spinner {
  width: 60px;
  height: 60px;
  position: relative;
  transform-style: preserve-3d;
  animation: spinCube 2.5s infinite linear;
}

.rc-cube-spinner .face {
  position: absolute;
  width: 60px;
  height: 60px;
  background: rgba(47, 111, 246, 0.1);
  border: 2px solid #2F6FF6;
  box-shadow: 0 0 15px rgba(47, 111, 246, 0.4);
}

.face.front {
  transform: translateZ(30px);
}

.face.back {
  transform: rotateY(180deg) translateZ(30px);
}

.face.right {
  transform: rotateY(90deg) translateZ(30px);
}

.face.left {
  transform: rotateY(-90deg) translateZ(30px);
}

.face.top {
  transform: rotateX(90deg) translateZ(30px);
}

.face.bottom {
  transform: rotateX(-90deg) translateZ(30px);
}

@keyframes spinCube {
  0% {
    transform: rotateX(0deg) rotateY(0deg);
  }

  100% {
    transform: rotateX(360deg) rotateY(360deg);
  }
}

/* Fluidity Optimizations */
.rc-marquee-inner {
  will-change: transform;
}

.rc-float-item {
  will-change: transform;
}

.rc-apple-card {
  will-change: transform;
}

/* =========================================
   32. APPLE 2026 TYPOGRAPHY UPGRADE
   ========================================= */

/* Cinematic Entrance Animation */
@keyframes cinematicFocus {
  0% {
    filter: blur(20px);
    opacity: 0;
    transform: scale(1.05);
  }

  100% {
    filter: blur(0);
    opacity: 1;
    transform: scale(1);
  }
}

.hero-pre-title {
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  background: linear-gradient(90deg, #2F6FF6, #60A5FA);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 20px;
  display: inline-block;
}

.hero-title {
  font-size: 4.5rem;
  /* Massive Impact */
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.04em;
  /* Tight Apple Tracking */
  margin: 0 auto 30px;
  max-width: 1000px;

  /* Titanium Gradient */
  color: #1d1d1f;
  /* Fallback */
  background: linear-gradient(135deg, #1a1a1a 30%, #434343 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;

  animation: cinematicFocus 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.hero-subtitle {
  font-size: 1.35rem;
  color: #86868b;
  /* Apple Iconic Grey */
  font-weight: 400;
  max-width: 700px;
  margin: 0 auto 40px;
  line-height: 1.6;
  letter-spacing: -0.01em;
}

/* Responsive Type */
@media (max-width: 900px) {
  .hero-title {
    font-size: 3rem;
  }
}

/* =========================================
   33. FINAL POLISH: TEXTURE & PHYSICS
   ========================================= */

/* Film Grain Overlay */
.rc-noise-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9000;
  /* Below loader, above content */
  opacity: 0.035;
  /* Subtle texture */
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
  animation: grainAnimation 8s steps(10) infinite;
}

@keyframes grainAnimation {

  0%,
  100% {
    transform: translate(0, 0);
  }

  10% {
    transform: translate(-5%, -5%);
  }

  20% {
    transform: translate(-10%, 5%);
  }

  30% {
    transform: translate(5%, -10%);
  }

  40% {
    transform: translate(-5%, 15%);
  }

  50% {
    transform: translate(-10%, 5%);
  }

  60% {
    transform: translate(15%, 0);
  }

  70% {
    transform: translate(0, 10%);
  }

  80% {
    transform: translate(-15%, 0);
  }

  90% {
    transform: translate(10%, 5%);
  }
}

/* Magnetic Button Utility */
.rc-magnetic {
  transition: transform 0.2s cubic-bezier(0.25, 1.5, 0.5, 1);
  will-change: transform;
}/* 15. FAQ SECTION (PREMIUM REDESIGN) */
.rc-faq-section {
    padding: 120px 20px;
    background: relative;
    overflow: hidden;
}

.rc-faq-container {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* FAQ Item Details */
.rc-faq-details {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 20px;
    margin-bottom: 20px;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
}

.rc-faq-details:hover {
    background: rgba(255, 255, 255, 0.9);
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    border-color: rgba(37, 99, 235, 0.2);
}

.rc-faq-details[open] {
    background: #fff;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.1);
    border-color: rgba(37, 99, 235, 0.4);
}

/* Summary Header */
.rc-faq-summary {
    list-style: none;
    /* Hide default marker */
    padding: 25px 30px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--text-main);
    transition: color 0.3s ease;
}

.rc-faq-summary::-webkit-details-marker {
    display: none;
}

.rc-faq-summary:hover {
    color: var(--primary);
}

.rc-faq-title {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rc-faq-icon-box {
    width: 40px;
    height: 40px;
    background: #EFF6FF;
    color: var(--primary);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    transition: all 0.3s ease;
}

.rc-faq-details[open] .rc-faq-icon-box {
    background: var(--primary);
    color: white;
    transform: rotate(360deg);
}

/* Chevron */
.rc-faq-chevron {
    color: #94a3b8;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rc-faq-details[open] .rc-faq-chevron {
    transform: rotate(180deg);
    color: var(--primary);
}

/* Content Animation */
.rc-faq-content {
    padding: 0 30px 25px 85px;
    /* Align with text, skipping icon */
    color: #64748b;
    line-height: 1.6;
    font-size: 1rem;
    border-top: 1px solid transparent;
    transition: all 0.3s ease;
}

.rc-faq-details[open] .rc-faq-content {
    border-top-color: #f1f5f9;
    padding-top: 20px;
    animation: slideDown 0.4s ease-out forwards;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 768px) {
    .rc-faq-content {
        padding: 0 20px 20px 20px;
        padding-left: 20px !important;
    }

    .rc-faq-summary {
        padding: 20px;
    }
}
