/* Final responsive and touch layer. Keep after immersive.css. */
html { -webkit-text-size-adjust: 100%; }
img, svg { max-width: 100%; }
img { object-fit: contain; }
button, a, input, select, textarea { touch-action: manipulation; }
button, input, select, textarea { font: inherit; }
main, .container, .hero-content, .form-group, .footer-container > * { min-width: 0; }
.faq-item.open .faq-answer { max-height: none; }
.mobile-drawer { visibility: hidden; pointer-events: none; height: 100dvh; overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(32px, env(safe-area-inset-bottom)); }
.mobile-drawer.open { visibility: visible; pointer-events: auto; }
.hamburger-btn { position: relative; z-index: 1001; width: 44px; height: 44px; flex-shrink: 0; }
.mobile-nav-link { display: flex; align-items: center; min-height: 44px; }
.modal-close-btn { width: 44px; height: 44px; }
.modal-backdrop { height: 100dvh; overscroll-behavior: contain; }
.modal-card { max-height: calc(100dvh - 32px); overscroll-behavior: contain; }
.footer-links a, .footer-modal-btn { display: inline-flex; align-items: center; min-height: 44px; }
.toast { max-width: calc(100vw - 32px); bottom: max(24px, env(safe-area-inset-bottom)); }
.mobile-menu-open .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; }
@media (max-width: 1100px) {
  .header-container { gap: 12px; }
  .brand-link { min-width: 0; }
  .header-actions { gap: 12px; }
}
@media (max-width: 767px) {
  body::before { display: none; }
  .site-header, .site-header.scrolled { padding: 10px 0; }
  .brand-link { gap: 10px; }
  .brand-logo-img { width: 38px; height: 38px; flex-shrink: 0; }
  .header-actions > .btn-primary { display: none; }
  .container { padding-inline: 20px; }
  .hero-section { padding-top: 108px; }
  .hero-headline { font-size: clamp(2.35rem, 8.5vw, 3.8rem); overflow-wrap: normal; }
  .hero-superbadge { max-width: 100%; }
  .hero-superbadge span { line-height: 1.7; }
  .hero-trust-bar { gap: 10px 16px; }
  .trust-item { font-size: .75rem; }
  .hero-content, .hero-3d-interactive-anchor { width: 100%; }
  .celestial-note { max-width: 34%; }
  .page-banner-section { min-height: auto; padding: 115px 0 40px; }
  .page-banner-title { font-size: clamp(2rem, 8vw, 3rem); overflow-wrap: normal; }
  .section-title { font-size: clamp(1.8rem, 7vw, 2.7rem); }
  .pricing-grid, .plans-grid, .disciplines-grid, .wisdom-grid, .experts-grid,
  .team-grid, .why-grid, .topics-grid, .service-features-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .form-row { grid-template-columns: minmax(0, 1fr); }
  .form-group input, .form-group select, .form-group textarea, .matrix-input { font-size: 16px; width: 100%; min-width: 0; min-height: 48px; }
  .form-group input[type="checkbox"] { width: 18px; min-height: 18px; }
  .modal-card { padding: 58px 20px 24px; }
  .modal-title { font-size: 1.6rem; }
  .modal-close-btn { top: 10px; right: 10px; }
  .modal-backdrop { padding: 12px; }
  .numerology-calculator-card { padding: 28px 20px; }
  .celestial-pill { max-width: 100%; min-height: 44px; white-space: normal; font-size: .85rem; }
  .floating-pills-field { gap: 12px; }
  .faq-question { padding: 20px; font-size: .95rem; }
  .faq-answer { padding-inline: 20px; }
  .tarot-deck-fanned { gap: 26px; }
  .tarot-card-3d-wrapper { max-width: 100%; }
  .wisdom-filters { gap: 10px; }
  .filter-btn { min-height: 44px; font-size: .8rem; }
  .wisdom-cta-banner { flex-direction: column; padding: 28px 22px; text-align: center; gap: 20px; }
  .footer-container { gap: 28px; }
  .bottom-bar-inner { flex-direction: column; text-align: center; gap: 12px; }
  .footer-brand-desc, .copyright-text { overflow-wrap: anywhere; }
  .floating-whatsapp-btn { width: 48px; height: 48px; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); }
  .site-footer { padding-bottom: 80px; }
  .tilt-card, .plan-card, .pricing-card, .expert-card, .service-detail-card, .wisdom-card { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .scene-reveal { opacity: 1; transform: none; transition: none; }
  .journey-caption { font-size: .65rem; }
  .journey-stage { padding-top: 100px; }
}
@media (hover: none) {
  .tilt-card:hover, .plan-card:hover, .pricing-card:hover, .expert-card:hover,
  .topic-tile:hover, .btn-primary:hover, .btn-secondary:hover { transform: none; }
  .whatsapp-tooltip { display: none; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .journey-copy h2 { font-size: 2rem; }
  .journey-stage { padding-top: 80px; padding-bottom: 16px; }
  .journey-copy p { display: none; }
  .mobile-drawer { padding-top: 70px; }
  .mobile-nav-list { gap: 4px; }
}
