/* ============================================================
   RESPONSIVE.CSS — Vonulo Shared Breakpoints
   Consolidated responsive rules for shared components:
   nav, footer, forms, grids, typography.
   ============================================================ */


/* ================================================================
   TABLET — max-width: 1024px
   ================================================================ */
@media (max-width: 1024px) {

  /* Container padding reduction */
  .container {
    padding: 0 var(--space-lg);
  }

  /* Footer grid: 2-column */
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
  }

  /* Section padding reduction */
  .section-title {
    font-size: clamp(26px, 4vw, 38px);
  }
}


/* ================================================================
   MOBILE — max-width: 768px
   ================================================================ */
@media (max-width: 768px) {

  /* ── PREVENT iOS ZOOM ON INPUT FOCUS ── */
  input, select, textarea { font-size: 16px !important; }

  /* ── NAV COLLAPSE ── */
  .nav {
    padding: 0 var(--space-md);
    height: 56px;
  }

  .nav-toggle {
    display: flex;
  }

  .nav-links {
    display: none;
    position: absolute;
    top: 56px;
    left: 0;
    right: 0;
    background: rgba(247, 242, 234, 0.98);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--sand);
    flex-direction: column;
    padding: var(--space-md);
    gap: var(--space-xs);
    box-shadow: 0 8px 32px rgba(26, 22, 18, 0.08);
  }

  .nav-links.open,
  nav.nav-open .nav-links {
    display: flex;
  }

  .nav-link {
    padding: 12px var(--space-md);
    font-size: 14px;
    border-radius: var(--radius-md);
    width: 100%;
    text-align: left;
  }

  .nav-link.cta {
    text-align: center;
    margin-top: var(--space-sm);
  }

  .nav-right {
    gap: var(--space-sm);
  }

  .nav-back {
    padding: 7px 10px;
    font-size: 12px;
  }

  /* ── TYPOGRAPHY ── */
  h1 {
    font-size: clamp(26px, 7vw, 36px);
  }

  h2 {
    font-size: clamp(22px, 5vw, 30px);
  }

  .section-title {
    font-size: clamp(22px, 6vw, 30px);
  }

  .section-sub {
    font-size: 14px;
  }

  /* ── CONTAINER ── */
  .container {
    padding: 0 var(--space-md);
  }

  /* ── FORMS ── */
  .form-grid {
    grid-template-columns: 1fr;
  }

  .form-input,
  .form-select,
  .form-textarea {
    font-size: 16px; /* Prevents iOS zoom */
  }

  /* ── MODALS ── */
  .modal-content {
    padding: var(--space-lg) 18px;
    margin: 12px;
    border-radius: 18px;
    max-height: 92vh;
  }

  .modal-title {
    font-size: var(--text-xl);
  }

  /* ── CARDS ── */
  .card {
    padding: var(--space-md);
  }

  /* ── EMPTY STATES ── */
  .empty-state {
    padding: var(--space-xl) var(--space-md);
  }

  /* ── FOOTER ── */
  footer .footer-inner {
    padding: 40px var(--space-md) 32px;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-lg);
  }

  .footer-top > div:first-child {
    grid-column: span 2;
  }

  .footer-newsletter {
    grid-column: span 2;
  }

  .footer-newsletter-form {
    flex-direction: column;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--space-md);
  }

  /* ── TABS ── */
  .tabs {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 2px;
    padding: 3px;
  }

  .tabs::-webkit-scrollbar {
    display: none;
  }

  .tab-btn {
    padding: 10px 14px;
    font-size: 12px;
    white-space: nowrap;
    flex-shrink: 0;
    min-height: 44px;
  }

  /* ── PILLS ── */
  .pill {
    padding: 8px 14px;
    font-size: 12px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  /* ── TOAST ── */
  .toast {
    left: var(--space-md);
    right: var(--space-md);
    bottom: var(--space-md);
    max-width: none;
  }

  /* ── LOADING ── */
  .loading-screen .loading-logo {
    font-size: 26px;
  }

  /* ── SECTION SPACING ── */
  .eyebrow {
    font-size: 10px;
    margin-bottom: 8px;
  }
}


/* ================================================================
   SMALL MOBILE — max-width: 480px
   ================================================================ */
@media (max-width: 480px) {

  /* ── NAV ── */
  .nav {
    height: 52px;
  }

  .nav-logo {
    font-size: 20px;
  }

  /* ── TYPOGRAPHY ── */
  h1 {
    font-size: 22px;
  }

  h2 {
    font-size: 20px;
  }

  .section-title {
    font-size: 20px;
  }

  /* ── MODALS ── */
  .modal-content {
    border-radius: 16px 16px 0 0;
    margin: 0;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    max-height: 95vh;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  }

  /* ── FORMS ── */
  .form-input,
  .form-select,
  .form-textarea {
    padding: 12px 14px;
  }

  /* ── CARDS ── */
  .card {
    padding: 14px;
    border-radius: var(--radius-lg);
  }

  /* ── FOOTER ── */
  .footer-top {
    grid-template-columns: 1fr;
  }

  .footer-top > div:first-child {
    grid-column: span 1;
  }

  .footer-newsletter {
    grid-column: span 1;
  }

  .footer-legal {
    flex-direction: column;
    gap: var(--space-sm);
    align-items: center;
  }

  /* ── BUTTONS ── */
  .btn {
    padding: 12px 20px;
    font-size: 14px;
  }

  .btn-lg {
    padding: 14px 24px;
    font-size: 15px;
  }

  .btn--full {
    padding-left: 0;
    padding-right: 0;
  }

  /* ── STATUS PILLS ── */
  .status-pill {
    font-size: 11px;
    padding: 3px 10px;
  }

  /* ── DIVIDER ── */
  .divider {
    margin: var(--space-md) 0;
  }
}
