/* ============================================================
   АДАПТИВНОСТЬ — мобильные, планшет, десктоп
   Mobile-first: база под мобильный, @media для планшета и десктопа
   ============================================================ */

/* ---------- БАЗА (мобильный, до 767px) ---------- */
:root {
  --wrap-max: 1120px;
  --wrap-pad: 20px;
  --section-pad: 48px;
}

body { font-size: 16px; }

/* Header */
.site-header { padding: 16px 0; }
.header-inner {
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}
.logo { font-size: 22px; }
.main-nav {
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 15px;
}
.main-nav a {
  padding: 12px 14px;
  min-height: 48px;
  min-width: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  border-radius: 8px;
  transition: background 0.15s ease;
}
.main-nav a:active {
  background: var(--pudra);
}

/* Hero */
.block-hero { padding-top: 24px; padding-bottom: 40px; }
.hero-grid { grid-template-columns: 1fr; gap: 28px; }
.hero-title { font-size: 22px; margin-bottom: 16px; word-break: break-word; }
.hero-subtitle { font-size: 15px; text-align: justify; margin-bottom: 24px; }
.hero-ctas { flex-direction: column; gap: 12px; align-items: center; }
.hero-ctas .btn { width: auto; min-width: 200px; justify-content: center; font-size: 15px; }
.hero-photo { text-align: center; }
.hero-photo img { margin: 0 auto; }

/* Products */
.block-products { padding: var(--section-pad) 0; }
.products-grid { grid-template-columns: 1fr; gap: 20px; }
.product-card { padding: 32px; min-height: auto; }
.product-card.flagship { grid-row: auto; min-height: auto; }
.product-card.full-width { flex-direction: column; align-items: flex-start; }
.product-card h3 { font-size: 20px; }
.flagship h3 { font-size: 22px; }

/* Photo break */
.block-photo-break { padding: 0; }

/* Free materials */
.block-free-materials { padding: var(--section-pad) 0; }

/* About mobile */
.block-about { padding: var(--section-pad) 0; }
.about-inner { padding: 40px 24px; border-radius: 24px; }
.about-grid { grid-template-columns: 1fr; gap: 32px; }
.about-title { font-size: 22px; }
.about-stats { gap: 24px; }
.stat-num { font-size: 28px; }

/* Reviews */
.block-reviews { padding: var(--section-pad) 0; }
.reviews-title { margin-bottom: 32px; }

@media (max-width: 1119px) {
    .review-card { flex: 0 0 calc((100% - 16px) / 2); }
}

@media (max-width: 767px) {
    .review-card { flex: 0 0 100%; }
    .back-to-top {
        width: 44px;
        height: 44px;
        bottom: 30px;
        right: 30px;
    }
    .content-card-number { font-size: 36px; }
    .content-card-check { font-size: 40px; }
}

/* Contact */
.block-contact { padding: 40px 24px; border-radius: 20px; }
.contact-inner { padding: 40px 24px; border-radius: 20px; }
.contact-title { font-size: 24px; }

/* FAQ */
.block-faq { padding: var(--section-pad) 0; }
.faq-title { margin-bottom: 32px; }
.faq-question { font-size: 16px; }

/* Results */
.block-results { padding: var(--section-pad) 0; }
.results-inner { padding: 40px 24px; border-radius: 24px; }
.results-title { font-size: 22px; margin-bottom: 32px; }
.results-grid { gap: 32px; }
.result-number { font-size: 36px; }

@media (min-width: 768px) {
    .results-inner { padding: 48px 40px; }
}

@media (min-width: 1120px) {
    .results-inner { padding: 64px 56px; border-radius: 32px; }
}

/* Pricing */
.block-pricing { padding: var(--section-pad) 0; }
.pricing-head { margin-bottom: 32px; }

@media (max-width: 1119px) {
    .pricing-card { flex: 0 0 calc((100% - 24px) / 2); min-height: 440px; }
}
@media (max-width: 767px) {
    .pricing-card { flex: 0 0 100%; padding: 24px; min-height: auto; }
    .pricing-price { font-size: 24px; }
}

/* Results */
.block-results { padding: var(--section-pad) 0; }
.results-inner { padding: 40px 24px; border-radius: 24px; }
.results-title { font-size: 22px; margin-bottom: 32px; }
.results-grid { gap: 32px; }
.result-number { font-size: 36px; }

@media (min-width: 768px) {
    .results-inner { padding: 48px 40px; }
}
@media (min-width: 1120px) {
    .results-inner { padding: 64px 56px; border-radius: 32px; }
}

/* Content cards */
.block-content-cards { padding: var(--section-pad) 0; }
.content-card { padding: 20px; }
.content-card-number { font-size: 36px; }

/* Product page */
.product-hero { padding: var(--section-pad) 0; }
.product-hero-grid { grid-template-columns: 1fr; gap: 32px; }
.product-hero-title { font-size: 28px; }
.product-price { font-size: 24px; }
.product-cover { padding: 32px 24px; }

/* Footer */
.site-footer { padding: 24px 0; font-size: 12px; }

/* ---------- ОЧЕНЬ УЗКИЕ ТЕЛЕФОНЫ (до 430px) — POCO M7 Pro, старые Android ---------- */
@media (max-width: 430px) {
  .main-nav {
    gap: 6px;
    font-size: 14px;
  }
    .footer-main {
    gap: 28px;
  }
  .footer-col-title {
    font-size: 15px;
  }
  .main-nav a {
    padding: 12px 10px;
    min-height: 48px;
    min-width: 48px;
    font-size: 14px;
  }
  .content-card-number { font-size: 36px; }
  .content-card-check { font-size: 40px; }
}

/* ---------- СУПЕР-УЗКИЕ (до 390px) — POCO с крупным шрифтом, iPhone SE ---------- */
@media (max-width: 390px) {
  :root {
    --wrap-pad: 16px;
  }
  .footer-inner {
    padding: 32px var(--wrap-pad) 28px;
  }
  .logo { font-size: 18px; }
  .main-nav {
    gap: 4px;
    font-size: 13px;
  }
  .main-nav a {
    padding: 10px 8px;
    min-height: 44px;
    min-width: 44px;
    font-size: 13px;
  }
  .hero-title { font-size: 26px; }
  .hero-subtitle { font-size: 14px; }
  .product-card { padding: 20px; }
  .free-card {
    flex: 1 1 100%;
    min-width: auto;
    max-width: 100%;
    padding: 18px;
  }
  .content-card {
    flex: 1 1 100%;
    min-width: auto;
    max-width: 100%;
    padding: 18px;
  }
  .about-inner,
  .contact-inner,
  .results-inner {
    padding: 28px 16px;
    border-radius: 20px;
  }
  .contact-title { font-size: 20px; }
  .about-title { font-size: 20px; }
  .results-title { font-size: 20px; }
  .faq-item { padding: 18px; }
  .product-hero-title { font-size: 24px; }
  .product-cover { padding: 24px 16px; }
}

/* ---------- ПЛАНШЕТ (768–1119px) ---------- */
@media (min-width: 768px) {
  :root {
    --wrap-pad: 24px;
    --section-pad: 56px;
  }

  .header-inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    text-align: left;
  }
  .main-nav { gap: 28px; font-size: 14px; }
  .main-nav a { white-space: nowrap; }

  .hero-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .hero-title { font-size: 36px; }
  .hero-ctas { flex-direction: row; }
  .hero-ctas .btn { width: auto; min-width: 200px; }

  .products-grid { grid-template-columns: 1fr 1fr; }
  .product-card.flagship { grid-column: span 2; grid-row: auto; }

  .about-grid { grid-template-columns: 1fr 1fr; }
  .about-inner { padding: 48px 40px; }

  .review-card { min-width: 300px; }

  .product-hero-grid { grid-template-columns: 1fr 1fr; }
  .product-hero-title { font-size: 36px; }

  .results-inner { padding: 48px 40px; }
}

/* ---------- ДЕСКТОП (1120px+) ---------- */
@media (min-width: 1120px) {
  :root {
    --wrap-pad: 32px;
    --section-pad: 72px;
  }

  .about-inner { padding: 64px 56px; border-radius: 32px; }
  .about-grid { gap: 48px; }
  .about-title { font-size: 26px; }
  .stat-num { font-size: 32px; }
  .logo { font-size: 19px; }
  .main-nav { gap: 32px; }

  .hero-title { font-size: 42px; }

  .products-grid { grid-template-columns: 1.4fr 1fr 1fr; grid-template-rows: auto auto; }
  .product-card.flagship { grid-column: auto; grid-row: span 2; min-height: 420px; }
  .product-card.full-width { flex-direction: column; align-items: center; margin-top: 5%; }

  .about-grid { gap: 48px; }
  .block-about { padding: 64px 56px; border-radius: 32px; }
  .about-title { font-size: 26px; }
  .stat-num { font-size: 32px; }

  .review-card { min-width: 320px; }

  .pricing-grid { grid-template-columns: repeat(3, 1fr); }

  .product-hero-title { font-size: 42px; }
  .product-price { font-size: 32px; }
}

/* Фикс: заголовок Hero на мобильном */
@media (max-width: 640px) {
  .hero-title { font-size: 34px; word-break: break-word; text-align: center; }
  .hero-grid { gap: 20px; }
  .hero-photo { margin-top: 20px; }
}

/* Reviews carousel */
@media (max-width: 1119px) {
    .review-card { flex: 0 0 calc((100% - 16px) / 2); }
}
@media (max-width: 767px) {
  .review-card { flex: 0 0 100%; }
  .footer-main {
    gap: 32px;
    margin-bottom: 32px;
  }
  .footer-col {
    flex: 1 1 100%;
    max-width: 100%;
  }
  .footer-inner {
    padding: 40px var(--wrap-pad) 32px;
  }
}

/* Content cards */
@media (min-width: 768px) and (max-width: 1119px) {
    .content-card { flex: 1 1 calc(50% - 8px); max-width: calc(50% - 8px); }
    .content-card-check { font-size: 48px; }
}
@media (max-width: 767px) {
    .content-card { flex: 1 1 100%; max-width: 100%; }
    .content-card-number { font-size: 36px; }
    .content-card-check { font-size: 28px; }
}

/* Pricing carousel */
@media (max-width: 1119px) {
    .pricing-card { flex: 0 0 calc((100% - 24px) / 2); min-height: 440px; }
}
@media (max-width: 767px) {
    .pricing-card { flex: 0 0 100%; padding: 24px; min-height: auto; }
    .pricing-price { font-size: 24px; }
}
@media (max-width: 344px) {
  .main-nav {
    gap: 1px;
    font-size: 12px;
  }
  .main-nav a {
    padding: 8px 3px;
    min-height: 44px;
    min-width: 44px;
    font-size: 12px;
  }
}