/* Prevent horizontal scroll on mobile */
html, body { overflow-x: hidden; max-width: 100%; }

/* Tablet: 768px - 991px */
@media (min-width: 768px) and (max-width: 991px) {
  .header--logo-img { max-width: 120%; margin-left: 20px; }
  .header--box--h2 { padding: 0 15px; }
}

/* Mobile: up to 767px */
@media (max-width: 767px) {
  .container { width: 100%; max-width: 100%; padding-left: 15px; padding-right: 15px; }
  .header--box--h2 { padding: 0 15px; }
  .header--box .row.align-items-center { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; }
  .header--box .row > .col-xl-10 { order: 1; flex: 1 1 auto; min-width: 0; max-width: none; }
  .header--box .row > .col-xl-10 .col-lg-10 { display: none !important; }
  .header--box .row > .col-xl-10 .col-lg-2 { flex: 0 0 auto; max-width: none; }
  .header--box .row > .col-12 { order: 2; flex: 0 0 auto; width: auto !important; max-width: none; }
  .header--box .row > .d-none.d-lg-block { display: none !important; }
  .header--logo { margin-right: 0; }
  .header--logo-img { max-width: 120px !important; margin-left: 0 !important; }
  .hero__padding--h3 { padding: 120px 15px 100px !important; }
  .hero__caption--h3 h1 { font-size: 28px !important; line-height: 1.2; word-wrap: break-word; }
  .hero__caption--h3 h2 { font-size: 14px !important; margin-bottom: 25px !important; line-height: 1.4; }
  .hero__caption--h3 .btn { display: inline-block; margin: 5px !important; }
  .feature__content, .feature__img { text-align: center; }
  .feature__img { margin-top: 20px; }
  .theme__big--title { font-size: 26px !important; line-height: 1.3; }
  .service__block--h3 { margin-bottom: 25px; }
  .work__block { margin-bottom: 25px; }
  .contacts__feature { margin-bottom: 25px; text-align: center; }
  .contacts__form .row [class*="col-"] { margin-bottom: 15px; }
  .footer__widget { margin-bottom: 30px; text-align: center; }
  .footer__menu ul { display: inline-block; text-align: center; }
}

/* Small mobile: up to 480px */
@media (max-width: 480px) {
  .header--logo-img { max-width: 100px !important; }
  .hero__caption--h3 h1 { font-size: 22px !important; }
  .hero__caption--h3 h2 { font-size: 13px !important; }
  .theme__big--title { font-size: 22px !important; }
}

/* Meanmenu: fix mobile menu container, hamburger and panel styling */
@media (max-width: 991px) {
  /* Esconde scroll-top quando o menu está aberto (evita elemento branco por cima) */
  body:has(.mean-container a.meanmenu-reveal.meanclose) .scroll-top {
    visibility: hidden !important; opacity: 0 !important; pointer-events: none !important;
    z-index: 1 !important;
  }
  /* Header row: logo left, hamburger right */
  .header--box .row.align-items-center { flex-wrap: nowrap; }
  .header--box .row > .col-12 { flex: 0 0 auto; width: auto !important; min-width: 44px; display: flex; align-items: center; justify-content: flex-end; }
  .mean-container { width: auto !important; min-width: 44px; }
  .mean-container .mean-bar { width: auto !important; float: none !important; padding: 0 !important; min-height: 44px; display: flex; align-items: center; justify-content: flex-end; background: transparent !important; position: relative; }
  /* Hamburger / close button: minimal */
  .mean-container a.meanmenu-reveal {
    display: block !important; position: relative !important; top: auto !important; right: auto !important; margin: 0 !important; transform: none !important;
    width: 44px; height: 44px; padding: 12px 11px !important; box-sizing: border-box;
    background: transparent !important; border: 1px solid rgba(255,255,255,0.4) !important; border-radius: 8px;
    color: #fff !important; text-decoration: none;
  }
  .mean-container a.meanmenu-reveal:hover { background: rgba(255,255,255,0.08) !important; border-color: rgba(255,255,255,0.6) !important; }
  .mean-container a.meanmenu-reveal span { display: block !important; height: 2px !important; margin-top: 5px !important; background: #fff !important; }
  .mean-container a.meanmenu-reveal span:first-child { margin-top: 0 !important; }
  .header--trans .mean-container a.meanmenu-reveal { color: #fff !important; border-color: rgba(255,255,255,0.5) !important; }
  .header--trans .mean-container a.meanmenu-reveal span { background: #fff !important; }
  /* Painel: escondido quando menu fechado (só aparece com .meanclose no botão) */
  .mean-container .mean-nav {
    float: none !important; position: absolute !important; left: 50% !important; right: auto !important; top: 100% !important;
    width: 100vw !important; max-width: 100vw !important; margin: 0 !important; margin-top: 8px !important;
    transform: translateX(-50%) !important; z-index: 9999;
    background: rgba(12, 25, 35, 0.98) !important; backdrop-filter: blur(8px);
    border-radius: 0 0 12px 12px; box-shadow: 0 12px 40px rgba(0,0,0,0.35);
    padding: 0 !important; margin-top: 0 !important;
    opacity: 0; visibility: hidden; max-height: 0; overflow: hidden; pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease, max-height 0.35s ease, padding 0.25s ease;
  }
  .mean-container a.meanmenu-reveal.meanclose ~ .mean-nav {
    opacity: 1; visibility: visible; max-height: 85vh; padding: 12px 0 24px 0 !important; pointer-events: auto;
  }
  .mean-container .mean-nav ul { padding: 0; margin: 0; list-style: none; }
  .mean-container .mean-nav ul li { border: none; }
  .mean-container .mean-nav ul li a {
    width: 100% !important; padding: 16px 24px !important; box-sizing: border-box;
    border: none !important; border-top: 1px solid rgba(255,255,255,0.08) !important;
    color: rgba(255,255,255,0.95) !important; font-size: 15px !important; font-weight: 500;
    letter-spacing: 0.02em; text-transform: none !important;
    transition: background 0.2s ease, color 0.2s ease;
  }
  .mean-container .mean-nav ul li:first-child a { border-top: none !important; }
  .mean-container .mean-nav ul li a:hover { background: rgba(255,255,255,0.06) !important; color: #fff !important; }
}
