/* ═══════════════════════════════════════════════════════════════
   AstroKamya™ · Mobile Responsive V2
   Comprehensive polish for all sections — tablet + mobile
   Breakpoints: 1024 / 768 / 480 / 380
   ═══════════════════════════════════════════════════════════════ */

/* ── GLOBAL RESET ── */
*, *::before, *::after { box-sizing: border-box; }
body { overflow-x: hidden !important; -webkit-tap-highlight-color: transparent; }
img, svg, canvas { max-width: 100%; }

/* ── ≤1024px TABLET ── */
@media (max-width: 1024px) {

  /* HERO — tablet: content-driven height, no forced min-height */
  #hero {
    padding: 0px 0 0px !important;
    min-height: 0 !important;
    height: auto !important;
    position: relative !important;
    overflow: hidden !important;
  }
  .hero-wrap {
    position: relative !important;
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
  }
  .hero-content {
    max-width: 52% !important;
    width: 52% !important;
    z-index: 3 !important;
    position: relative !important;
    text-shadow: 0 2px 12px rgba(0,0,0,0.75) !important;
  }
  .hero-headline {
    font-size: clamp(36px, 5vw, 54px) !important;
    text-shadow: 0 2px 16px rgba(0,0,0,0.85) !important;
  }
  .hero-actions { flex-direction: row !important; flex-wrap: wrap !important; gap: 12px !important; }

  /* DEMO — split to column */
  .demo-split { flex-direction: column !important; gap: 40px !important; }
  .demo-left, .demo-right { width: 100% !important; }
  .demo-chart-wrap { max-width: 360px !important; margin: 0 auto !important; }

  /* PRICING — 2 col */
  .price-row { grid-template-columns: repeat(2, 1fr) !important; }
  .pc-pop { transform: none !important; }

  /* FEAT BENTO */
  .feat-bento { grid-template-columns: repeat(2, 1fr) !important; }

  /* TESTIMONIALS */
  .test-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── ≤768px MOBILE ── */
@media (max-width: 768px) {

  /* SECTIONS — consistent padding */
  section { padding: 72px 0 !important; }
  .wrap { padding: 0 20px !important; }

  /* TYPOGRAPHY */
  h2 { font-size: clamp(26px, 7.5vw, 36px) !important; line-height: 1.15 !important; }
  h3 { font-size: clamp(18px, 5vw, 22px) !important; }
  .sec-label { font-size: 10px !important; letter-spacing: 0.12em !important; }

  /* ── HERO — content-driven height, no forced min-height ── */
  #hero {
    padding: 0px 0 0px !important;
    min-height: 0 !important;
    height: auto !important;
    position: relative !important;
    overflow: hidden !important;
  }
  .hero-wrap {
    display: block !important;
    position: relative !important;
    min-height: 0 !important;
    height: auto !important;
  }
  /* Dark veil: sits between animation (z:1) and text (z:3)
     Protects left-side text readability against the vivid nebula */
  .hero-wrap::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 72% !important; height: 100% !important;
    background: linear-gradient(
      to right,
      rgba(6,2,20,0.62) 0%,
      rgba(6,2,20,0.42) 55%,
      transparent 100%
    ) !important;
    z-index: 2 !important;
    pointer-events: none !important;
  }
  .hero-content {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 3 !important;
  }
  /* Text shadows for crisp readability against nebula glow */
  .hero-headline {
    font-size: clamp(32px, 9vw, 48px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.02em !important;
    margin-bottom: 20px !important;
    text-shadow: 0 2px 18px rgba(0,0,0,0.88), 0 1px 4px rgba(0,0,0,0.95) !important;
  }
  .hero-pill {
    font-size: 11px !important;
    padding: 6px 14px !important;
    margin-bottom: 18px !important;
  }
  .hh-line-1 { font-size: 0.78em !important; }
  .hero-personal {
    font-size: 12px !important;
    padding: 9px 16px !important;
    border-radius: 12px !important;
    margin-bottom: 16px !important;
  }
  .hero-desc {
    font-size: 14px !important;
    line-height: 1.62 !important;
    margin-bottom: 24px !important;
    text-shadow: 0 1px 10px rgba(0,0,0,0.80) !important;
  }
  .hero-actions {
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    align-items: stretch !important;
  }
  .hero-actions .btn-primary-gold,
  .hero-actions .btn-ghost-hero,
  .hero-actions .btn-glow {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    padding: 15px 24px !important;
    font-size: 15px !important;
    border-radius: 14px !important;
    text-align: center !important;
  }
  .hero-trust-bar {
    flex-wrap: wrap !important;
    gap: 8px 16px !important;
    justify-content: flex-start !important;
    margin-top: 24px !important;
  }
  .htb-item { font-size: 11px !important; }

  /* ── URGENCY BANNER ── */
  #urgency-banner .ub-inner {
    font-size: 11px !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    justify-content: center !important;
    padding: 0 16px !important;
  }

  /* ── TRUST / LOGOS ── */
  .trust-section { padding: 48px 0 !important; }
  .trust-inner { flex-direction: column !important; gap: 28px !important; }
  .trust-logos { flex-wrap: wrap !important; gap: 16px 24px !important; justify-content: center !important; }
  .trust-logo { opacity: 0.55 !important; }

  /* ── CONCERN PANELS ── */
  .cp-panels {
    flex-direction: column !important;
    height: auto !important;
    border-radius: 20px !important;
    gap: 3px !important;
    overflow: hidden !important;
  }
  .cp-panel {
    flex: none !important;
    width: 100% !important;
    height: 68px !important;
    transition: height 0.5s cubic-bezier(0.4,0,0.15,1) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }
  .cp-panel.open {
    height: 260px !important;
    flex: none !important;
  }
  .cp-panel:first-child { border-radius: 20px 20px 0 0 !important; }
  .cp-panel:last-child  { border-radius: 0 0 20px 20px !important; }
  .cp-vlabel {
    writing-mode: horizontal-tb !important;
    transform: none !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    width: auto !important;
    height: 68px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
  }
  .cp-expanded {
    padding: 12px 20px 20px !important;
    opacity: 0 !important;
    transition: opacity 0.3s 0.2s !important;
  }
  .cp-panel.open .cp-expanded { opacity: 1 !important; }
  .cp-oracle {
    margin-top: 16px !important;
    border-radius: 16px !important;
    padding: 20px !important;
  }
  #cp-cbtn {
    display: inline-flex !important;
    width: auto !important;
    padding: 14px 36px !important;
  }
  .center #cp-cbtn { margin: 0 auto !important; }

  /* ── BIRTH INPUT ── */
  #birth-input { padding: 72px 0 !important; }
  .input-split {
    flex-direction: column !important;
    gap: 32px !important;
  }
  .infographic-panel {
    display: none !important; /* hide on mobile — too complex */
  }
  .birth-form-panel {
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Date/time inputs */
  .birth-form-panel input,
  .birth-form-panel select,
  #bi-date, #bi-time, #bi-place {
    width: 100% !important;
    font-size: 16px !important; /* Prevent iOS zoom */
  }

  /* ── DEMO ── */
  #demo { padding: 72px 0 !important; }
  .demo-header-row {
    flex-direction: column !important;
    gap: 16px !important;
    text-align: center !important;
  }
  .demo-split {
    flex-direction: column !important;
    gap: 32px !important;
  }
  .demo-chart-wrap {
    max-width: 300px !important;
    width: 100% !important;
    margin: 0 auto !important;
  }
  .demo-left { width: 100% !important; }

  /* ── FEATURES BENTO ── */
  .feat-bento {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }
  .fb-card {
    padding: 20px 16px !important;
    border-radius: 16px !important;
  }
  .fb-card h3 { font-size: 16px !important; }
  .fb-card p { font-size: 13px !important; }

  /* ── TESTIMONIALS ── */
  .test-grid {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 12px !important;
    /* Hide scrollbar */
    scrollbar-width: none !important;
  }
  .test-grid::-webkit-scrollbar { display: none !important; }
  .t-card {
    flex: 0 0 82vw !important;
    max-width: 320px !important;
    scroll-snap-align: start !important;
    border-radius: 18px !important;
  }

  /* ── PRICING ── */
  #pricing { padding: 72px 0 !important; }
  .price-header-row {
    flex-direction: column !important;
    gap: 16px !important;
    align-items: flex-start !important;
  }
  .price-row {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding-top: 20px !important;
  }
  .pc {
    padding: 24px 20px !important;
    border-radius: 20px !important;
  }
  .pc-pop { transform: none !important; }
  .pc-price { font-size: 32px !important; }
  .lifetime-wrap { margin-top: 20px !important; }
  .lifetime-card { border-radius: 20px !important; padding: 28px 20px !important; }

  /* ── CTA FINAL ── */
  #cta-final { padding: 72px 0 !important; }
  .big-cta { font-size: clamp(28px, 8vw, 40px) !important; }
  .btn-glow.btn-xl:not(.full) {
    padding: 15px 36px !important;
    font-size: 15px !important;
  }
  .cta-trust-row {
    flex-wrap: wrap !important;
    gap: 8px 16px !important;
    justify-content: center !important;
    font-size: 11px !important;
  }

  /* ── FAQ ── */
  .faq2-section { padding: 0 !important; }
  .faq2-item {
    padding: 16px 18px !important;
    border-radius: 12px !important;
  }
  .faq2-q {
    font-size: 14px !important;
    min-height: 44px !important; /* touch target */
    display: flex !important;
    align-items: center !important;
  }
  .faq2-a { font-size: 13px !important; line-height: 1.65 !important; }

  /* ── FOOTER ── */
  footer { padding: 56px 0 32px !important; }
  .foot-grid {
    flex-direction: column !important;
    gap: 40px !important;
  }
  .foot-cols {
    grid-template-columns: 1fr 1fr !important;
    gap: 20px 32px !important;
  }
  .foot-trust {
    flex-wrap: wrap !important;
    gap: 12px !important;
    justify-content: flex-start !important;
  }
  .foot-logo { margin-bottom: 16px !important; }
  .foot-tagline { font-size: 13px !important; max-width: 280px !important; }
  .foot-copy { font-size: 11px !important; }

  /* ── GLOBAL TOUCH INTERACTIONS ── */
  .pc:active, .t-card:active, .faq2-item:active, .intent-card:active {
    transform: scale(0.98) !important;
    transition: transform 0.15s ease !important;
  }
  .btn-primary-gold:active, .btn-glow:active, .btn-outline:active {
    transform: scale(0.97) !important;
  }

  /* ── SCROLL PROGRESS ── */
  .scroll-progress { height: 2px !important; }

  /* ── HIDE DIVIDERS ── */
  .htb-divider { display: none !important; }
}

/* ── ≤480px SMALL PHONE ── */
@media (max-width: 480px) {

  section { padding: 56px 0 !important; }
  .wrap { padding: 0 16px !important; }

  /* HERO */
  #hero { padding: 0px 0 0px !important; min-height: 0 !important; }
  .hero-headline { font-size: clamp(28px, 9.5vw, 40px) !important; }
  .hero-desc { font-size: 13.5px !important; }
  .hero-pill { font-size: 10.5px !important; padding: 5px 12px !important; }
  .hero-personal { font-size: 11.5px !important; padding: 8px 14px !important; }
  .hero-actions .btn-primary-gold,
  .hero-actions .btn-ghost-hero {
    padding: 14px 20px !important;
    font-size: 14px !important;
  }
  .hero-trust-bar { gap: 6px 12px !important; }
  .htb-item { font-size: 10px !important; }

  /* CONCERN PANELS */
  .cp-panel { height: 60px !important; }
  .cp-panel.open { height: 240px !important; }
  .cp-vlabel { font-size: 12px !important; height: 60px !important; }

  /* FEATURES */
  .feat-bento { grid-template-columns: 1fr !important; }
  .fb-card { padding: 18px 14px !important; }

  /* TESTIMONIALS */
  .t-card { flex: 0 0 88vw !important; }

  /* PRICING */
  .pc { padding: 20px 16px !important; }
  .pc-price { font-size: 28px !important; }
  .pc ul li { font-size: 12.5px !important; }
  .price-subtitle { font-size: 12px !important; }
  .lifetime-card { padding: 24px 16px !important; }

  /* CTA */
  .big-cta { font-size: clamp(24px, 8.5vw, 34px) !important; }
  .cta-sub { font-size: 13px !important; }

  /* FAQ */
  .faq2-q { font-size: 13.5px !important; }

  /* FOOTER */
  .foot-cols { grid-template-columns: 1fr !important; gap: 16px !important; }
  footer { padding: 48px 0 24px !important; }
}

/* ── ≤380px XS PHONE ── */
@media (max-width: 380px) {

  .wrap { padding: 0 14px !important; }

  /* HERO */
  #hero { padding: 0px 0 0px !important; min-height: 0 !important; }
  .hero-headline { font-size: clamp(26px, 9.5vw, 36px) !important; }
  .hero-pill { font-size: 10px !important; }
  .hero-personal { display: none !important; } /* Too cluttered on xs */
  .hero-actions .btn-primary-gold,
  .hero-actions .btn-ghost-hero {
    padding: 13px 18px !important;
    font-size: 13.5px !important;
  }

  /* Vedic Nebula panel on XS — keep full panel, no override needed */
}

/* ── UTILITY: CONSISTENT INTERACTIVE STATES ── */
@media (hover: none) {
  /* Remove hover states on touch devices — use active instead */
  .pc:hover { transform: none !important; box-shadow: none !important; }
  .t-card:hover { transform: none !important; }
  .btn-primary-gold:hover { transform: none !important; }
  .btn-glow:hover { transform: none !important; }
  .fb-card:hover { transform: none !important; }
  .intent-card:hover { transform: none !important; }
}
