/* =================================================================
   ICERTIS MASTER LP — RESPONSIVE STYLESHEET v3 Clean Build
   Breakpoints: 1199 / 991 / 767 / 480
   No clip-path. No gradients. No old brand shapes.
   ================================================================= */

@media (max-width: 1199px) {
  .up .container { padding: 0 28px; }
  .up h1, .up h1 div { font-size: 38px; }
  .up h2, .up h2 div { font-size: 30px; }
  .up .banner-4 .form-cont { width: 380px; }
  .up .sec11 .wrap { padding: 60px 5% 60px 5%; }
  .up .sec10 .item { padding: 0 36px 0 0; }
  .up .sec10 .item:not(:first-child) { padding: 0 0 0 36px; }
  .up .sec22 .img-cont { width: 46%; }
  .up .sec25 .form-cont { width: 380px; }
  .up .sec27 .form-cont { width: 360px; }
}

@media (max-width: 991px) {
  /* Typography scale */
  .up h1, .up h1 div { font-size: 32px; line-height: 1.25; }
  .up h2, .up h2 div { font-size: 26px; line-height: 1.3; }
  .up h3, .up h3 div { font-size: 22px; }
  .up h5 { font-size: 12px; }
  .up .big_p, .up .big_p li { font-size: 17px; }
  .up br { display: none; }

  /* Header */
  .up header .logo-cont { max-width: 160px; }

  /* Banner 1 */
  .up .banner-1 { padding: 60px 0; }

  /* Banner 2 — text panel goes full width on mobile */
  .up .banner-2 { padding: 0; background-image: none !important; }
  .up .banner-2 .wrap { max-width: 100%; padding: 48px 28px; }
  .up .banner-2 .mobile-img { display: block; }
  .up .banner-2 .mobile-img.set_bg { padding-bottom: 52%; background-position: center; }

  /* Banner 3 — stack vertically */
  .up .banner-3 { padding: 0; }
  .up .banner-3 .container .dis-flex { flex-direction: column-reverse; }
  .up .banner-3 .wrap { max-width: 100%; margin-right: 0; padding: 48px 28px; }
  .up .banner-3 .form-cont { width: 100%; margin-bottom: 0; }

  /* Banner 4 — stack vertically */
  .up .banner-4 .container .dis-flex { flex-direction: column; }
  .up .banner-4 .wrap { margin-right: 0; }
  .up .banner-4 .form-cont { width: 100%; }

  /* Sec 5 */
  .up .sec5 { padding: 60px 0; }
  .up .sec5 .txt-cont { max-width: 100%; }

  /* Sec 6 speakers
     FIX: Previously all column variants collapsed to flex-basis:100% at 991px,
     so two_col and three_col both went single-column immediately at tablet width.
     Updated behaviour:
     - three_col: 2 per row at tablet (wraps naturally), full-width at 767px
     - two_col:   stays side by side through tablet, full-width at 767px
     - one_col:   already full-width, no change needed */
  .up .sec6 { padding: 60px 0; }
  .up .speaker-cont.three_col .item { flex-basis: calc(50% - 20px); }
  .up .speaker-cont.two_col .item   { flex-basis: calc(50% - 20px); }
  .up .speaker-cont .item .item-img img { width: 100px; height: 100px; }

  /* Sec 7 logo bar */
  .up .sec7 .dis-flex { justify-content: center; }
  .up .sec7 .title { width: 100%; text-align: center; }
  .up .sec7 .logo-cont { justify-content: center; gap: 28px; }
  .up .sec7 .logo-cont .item img { max-height: 32px; }

  /* Sec 10 — stack columns */
  .up .sec10 { padding: 60px 0; }
  .up .sec10 .card-cont { flex-direction: column; gap: 40px; }
  .up .sec10 .item { padding: 0 0 40px !important; border-right: none !important; border-bottom: 1px solid #D2CDC4; }
  .up .sec10 .item:last-child { padding-bottom: 0 !important; border-bottom: none; }

  /* Sec 11 — stack vertically, dark panel on top */
  .up .sec11 > .container { max-width: 100%; padding: 0; }
  .up .sec11 .dis-flex { flex-direction: column; }
  .up .sec11 .wrap { width: 100%; padding: 60px 28px; }
  .up .sec11 .img-cont { width: 100%; min-height: 280px; }

  /* Sec 12 / 13 */
  .up .sec12, .up .sec13 { padding: 60px 0; }
  .up .sec12 .item, .up .sec13 .item { flex-basis: calc(50% - 16px); }

  /* Sec 14 icon grid */
  .up .sec14 { padding: 60px 0; }
  .up .sec14 .item { flex-basis: calc(50% - 16px); }

  /* Sec 15 */
  .up .sec15 { padding: 60px 0; }

  /* Sec 16 cards */
  .up .sec16 { padding: 60px 0; }
  .up .sec16.three-col .item,
  .up .sec16.two-col .item { flex-basis: calc(50% - 14px); }

  /* Sec 17 dual video — stack */
  .up .sec17 { padding: 60px 0; }
  .up .sec17 .flx { flex-direction: column; }
  .up .sec17 .col-sm-6 { min-width: 100%; }

  /* Sec 19 — stack vertically */
  .up .sec19 { padding: 60px 0; }
  .up .sec19 .card-cont.dis-flex { flex-wrap: wrap; flex-direction: column-reverse; gap: 40px; }

  /* Sec 20 */
  .up .sec20 { padding: 48px 0; }

  /* Sec 21 */
  .up .sec21 { padding: 60px 0; }
  .up .sec21 .wrap { padding: 0 20px; }
  .up .sec21 .p_text { font-size: 17px; }

  /* Sec 22 — stack */
  .up .sec22 { padding: 60px 0; }
  .up .sec22 .dis-flex { flex-direction: column; gap: 32px; }
  .up .sec22 .img-cont { width: 100%; }

  /* Sec 25 — stack */
  .up .sec25 { padding: 60px 0; }
  .up .sec25 .dis-flex { flex-direction: column; gap: 40px; }
  .up .sec25 .form-cont { width: 100%; }

  /* Sec 26 */
  .up .sec26 { padding: 32px 0; }
  .up .sec26 .txt-cont ul { gap: 10px 28px; }

  /* Sec 27 — stack */
  .up .sec27 { padding: 60px 0; }
  .up .sec27 .dis-flex.vtop { flex-direction: column; gap: 40px; }
  .up .sec27 .form-cont { width: 100%; }
  .up .sec27 .spkrs.speaker-cont { flex-basis: calc(50% - 16px); }

  /* Footer */
  .up footer .footer-cont { flex-direction: column; text-align: center; }
  .up footer .right { justify-content: center; width: 100%; }
}

@media (max-width: 767px) {
  .up .container { padding: 0 20px; }
  .up h1, .up h1 div { font-size: 28px; }
  .up h2, .up h2 div { font-size: 24px; }
  .up .big_p, .up .big_p li { font-size: 16px; }
  .up div.p_text, .up div.p_text div, .up li { font-size: 15px; }

  .up .banner-1 { padding: 48px 0; }
  .up .sec5 { padding: 48px 0; }
  .up .sec6 { padding: 48px 0; }

  /* Sec 6 speakers — all variants go full-width on mobile */
  .up .speaker-cont.three_col .item,
  .up .speaker-cont.two_col .item { flex-basis: 100%; }
  .up .speaker-cont .item .item-img img { width: 88px; height: 88px; }

  .up .sec7 { padding: 24px 0; }
  .up .sec10 { padding: 48px 0; }
  .up .sec11 .wrap { padding: 48px 20px; }
  .up .sec12, .up .sec13 { padding: 48px 0; }
  .up .sec12 .item, .up .sec13 .item { flex-basis: 100%; }
  .up .sec14 { padding: 48px 0; }
  .up .sec14 .item { flex-basis: 100%; }
  .up .sec15 { padding: 48px 0; }
  .up .sec16 { padding: 48px 0; }
  .up .sec16.three-col .item,
  .up .sec16.two-col .item { flex-basis: 100%; }
  .up .sec17 { padding: 48px 0; }
  .up .sec19 { padding: 48px 0; }
  .up .sec21 .wrap { padding: 0; }
  .up .sec22 { padding: 48px 0; }
  .up .sec25 { padding: 48px 0; }
  .up .sec25 .form-cont { padding: 28px 20px; }
  .up .sec27 { padding: 48px 0; }
  .up .sec27 .form-cont { padding: 28px 20px; }
  .up .sec27 .spkrs.speaker-cont { flex-basis: 100%; }
  .up .btn-cont { text-align: center; }
  .up .green-cta a, .up .white-cta a { min-width: 160px; font-size: 14px; padding: 12px 24px; }

  /* Forms */
  .up .mktoForm input[type="url"],
  .up .mktoForm input[type="text"],
  .up .mktoForm input[type="email"],
  .up .mktoForm input[type="tel"],
  .up .mktoForm select.mktoField { font-size: 16px; }
}

@media (max-width: 480px) {
  .up h1, .up h1 div { font-size: 24px; }
  .up h2, .up h2 div { font-size: 22px; }
  .up h3, .up h3 div { font-size: 20px; }
  .up header { padding: 16px 0; }
  .up header .logo-cont { max-width: 120px; }
  .up .banner-4 .form-cont { padding: 24px 16px; }
  .up .sec11 .wrap { padding: 40px 20px; }
  .up .sec11 .img-cont { min-height: 200px; }
  .up .sec21 .p_text { font-size: 16px; }
  .up .sec25 .form-cont,
  .up .sec27 .form-cont { padding: 24px 16px; }
  .up .sec27 .spkrs.speaker-cont {
    flex-direction: row; align-items: center;
    text-align: left; gap: 20px;
  }
  .up .sec27 .image-tag { margin: 0; flex-shrink: 0; }
  .up footer.footer-1 .footer-cont { gap: 12px; }
  .up .copyright3 h6 { font-size: 16px; }
}
