/* ============================================
   RESPONSIVE GLOBAL - ACGEST Landing Page
   ============================================ */

/* --- Base Responsive Utilities --- */
img {
  max-width: 100%;
  height: auto;
}

.table-responsive {
  -webkit-overflow-scrolling: touch;
}

/* --- Viewport fix for mobile browsers --- */
@supports (-webkit-touch-callout: none) {
  body {
    min-height: -webkit-fill-available;
  }
}

/* ============================================
   NAVBAR RESPONSIVE
   ============================================ */
@media (max-width: 991.98px) {
  .layout-navbar .navbar {
    flex-wrap: wrap;
  }

  .layout-navbar .navbar .navbar-nav.ms-auto {
    flex-direction: row;
    gap: 0.25rem;
  }

  .layout-navbar .navbar .navbar-nav.ms-auto .btn {
    padding: 0.35rem 0.6rem;
    font-size: 0.8rem;
    border-radius: 8px;
  }

  .layout-navbar .navbar .navbar-nav.ms-auto .btn .tf-icons {
    margin-right: 0 !important;
  }

  /* Menu mobile fullscreen */
  .layout-navbar .navbar.landing-navbar .landing-nav-menu,
  nav .navbar.landing-navbar .landing-nav-menu {
    max-width: 100% !important;
    width: 100% !important;
    inset-inline-start: -100% !important;
    padding: 1.5rem;
    padding-top: 3.5rem;
    background-color: #fff !important;
    box-shadow: none !important;
  }

  .layout-navbar .navbar.landing-navbar .landing-nav-menu.show,
  nav .navbar.landing-navbar .landing-nav-menu.show {
    inset-inline-start: 0 !important;
  }

  .navbar.landing-navbar .landing-nav-menu .navbar-nav {
    padding-top: 0.5rem;
  }

  .navbar.landing-navbar .landing-nav-menu .nav-item {
    border-bottom: 1px solid #f0f0f0;
  }

  .navbar.landing-navbar .landing-nav-menu .nav-link {
    padding: 1rem 0.5rem;
    font-size: 1.1rem;
  }

  /* Close button positioning */
  .navbar.landing-navbar .landing-nav-menu .navbar-toggler {
    top: 1rem;
    right: 1rem;
    padding: 0.5rem;
    z-index: 10;
  }

  /* Overlay fullscreen */
  .navbar.landing-navbar .landing-menu-overlay {
    z-index: 9998;
  }
}

@media (max-width: 575.98px) {
  .layout-navbar .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .layout-navbar .navbar .app-brand-link img {
    width: 36px;
    height: 36px;
  }

  .layout-navbar .navbar .app-brand-text {
    font-size: 1.1rem;
  }

  .layout-navbar .navbar .navbar-nav.ms-auto .btn {
    padding: 0.3rem 0.5rem;
    font-size: 0.75rem;
  }
}

/* ============================================
   HERO SECTION RESPONSIVE
   ============================================ */
@media (max-width: 991.98px) {
  .landing-hero {
    padding-top: 7rem;
    border-radius: 0 0 2rem 2rem;
  }

  .landing-hero .hero-title {
    font-size: 1.75rem !important;
    line-height: 1.3;
  }

  .landing-hero .hero-sub-title {
    font-size: 0.95rem;
  }
}

@media (max-width: 575.98px) {
  .landing-hero {
    padding-top: 5.5rem;
    border-radius: 0 0 1.5rem 1.5rem;
  }

  .landing-hero .hero-title {
    font-size: 1.35rem !important;
    line-height: 1.35;
  }

  .landing-hero .hero-sub-title {
    font-size: 0.85rem;
    line-height: 1.5;
  }

  .landing-hero .hero-animation-img .hero-dashboard-img {
    width: 95%;
  }

  .landing-hero .btn-xl {
    padding: 0.6rem 1.5rem;
    font-size: 0.9rem;
  }
}

/* ============================================
   SECTION RECURSOS (SERVICOS) RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .section-recursos .recursos-grid .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .recurso-card {
    padding: 1.5rem !important;
  }

  .recurso-icon i {
    font-size: 45px;
  }

  .recurso-titulo {
    font-size: 1.1rem;
  }

  .recurso-descricao {
    font-size: 0.88rem;
  }
}

@media (max-width: 575.98px) {
  .section-recursos header h3 {
    font-size: 1.2rem;
  }

  .separador {
    width: 60px;
    height: 3px;
    margin-bottom: 1.5rem;
  }
}

/* ============================================
   PRICING / PACOTES RESPONSIVE
   ============================================ */
@media (max-width: 991.98px) {
  .landing-pricing .row.gy-4 .col-md-3 {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

@media (max-width: 767.98px) {
  .landing-pricing .row.gy-4 .col-md-3 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .landing-pricing .pricing-card .card-body {
    padding: 1.5rem;
  }

  .landing-pricing .display-6 {
    font-size: 1.75rem;
  }

  .pricing-toggle-container {
    margin-bottom: 1rem;
  }

  .pricing-label {
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
  }
}

/* Tabela de Comparacao Responsiva */
@media (max-width: 767.98px) {
  .comparison-table-container {
    margin-top: 1rem;
  }

  .comparison-table {
    font-size: 0.8rem;
  }

  .comparison-table th,
  .comparison-table td {
    padding: 0.6rem 0.4rem;
    white-space: nowrap;
  }

  .comparison-table .feature-name {
    padding-left: 0.75rem;
    white-space: normal;
    min-width: 120px;
  }

  .comparison-table .category-header h5 {
    font-size: 0.95rem;
    margin: 0.3rem 0;
  }
}

@media (max-width: 575.98px) {
  .comparison-table {
    font-size: 0.75rem;
  }

  .comparison-table th {
    font-size: 0.7rem;
    padding: 0.5rem 0.3rem;
  }

  .comparison-table .feature-name {
    min-width: 100px;
    font-size: 0.72rem;
  }
}

/* ============================================
   TUTORIAL VIDEO RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .section-py.p-lg-0 h3 {
    font-size: 1.25rem;
  }

  .section-py.p-lg-0 p.fs-5 {
    font-size: 0.95rem !important;
  }
}

/* ============================================
   FAQ RESPONSIVE
   ============================================ */
@media (max-width: 991.98px) {
  .landing-faq .faq-image {
    max-width: 15rem;
  }
}

@media (max-width: 767.98px) {
  .landing-faq {
    border-radius: 2rem 2rem 0 0;
  }

  .landing-faq .row.gy-5 > .col-lg-5 {
    display: none;
  }

  .landing-faq .row.gy-5 > .col-lg-7 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .accordion-button {
    font-size: 0.9rem;
    padding: 0.85rem 1rem;
  }

  .accordion-body {
    font-size: 0.88rem;
    padding: 0.75rem 1rem;
  }
}

/* ============================================
   CTA SECTION RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  #landingCTA .h2 {
    font-size: 1.35rem;
  }

  #landingCTA p {
    font-size: 0.9rem;
  }

  #landingCTA .img-fluid {
    max-width: 80%;
    margin: 0 auto;
  }
}

/* ============================================
   CONTACT SECTION RESPONSIVE
   ============================================ */
@media (max-width: 991.98px) {
  .landing-contact .contact-img-box {
    border-radius: 1rem !important;
  }

  .landing-contact .contact-img-box .contact-img {
    border-radius: 1rem !important;
    height: auto !important;
  }

  .landing-contact .contact-img-box::before {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .landing-contact .contact-img-box {
    margin-bottom: 1rem;
  }

  .landing-contact .contact-img-box .pt-3.px-4 .row .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .landing-contact h4 {
    font-size: 1.15rem;
  }

  .landing-contact .card-body {
    padding: 1.25rem;
  }

  .landing-contact textarea.form-control {
    rows: 5;
  }
}

@media (max-width: 575.98px) {
  .landing-contact .contact-img-box {
    padding: 0.75rem !important;
  }

  .landing-contact .contact-img-box .contact-img {
    height: 200px !important;
    object-fit: cover;
  }
}

/* ============================================
   FOOTER RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .landing-footer .footer-top .container .row > div {
    text-align: center;
  }

  .landing-footer .footer-top .app-brand-link {
    justify-content: center;
  }

  .landing-footer .footer-top .list-unstyled {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
  }

  .landing-footer .footer-top .list-unstyled li {
    margin-bottom: 0 !important;
  }

  .landing-footer .footer-bottom {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }

  .landing-footer .footer-bottom > div:last-child {
    justify-content: center;
  }
}

@media (max-width: 575.98px) {
  .landing-footer .footer-top {
    padding: 2rem 0;
  }

  .landing-footer .footer-logo-description {
    font-size: 0.85rem;
    padding: 0 1rem;
  }

  .landing-footer .footer-bottom p {
    font-size: 0.8rem;
  }
}

/* ============================================
   REGISTRAR COMPRA (STEPPER) RESPONSIVE
   ============================================ */
@media (max-width: 991.98px) {
  .bs-stepper.vertical {
    flex-direction: column;
  }

  .bs-stepper.vertical .bs-stepper-header {
    flex-direction: row;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0;
    border-right: none;
    border-bottom: 1px solid #e9ecef;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }

  .bs-stepper.vertical .bs-stepper-header .step {
    min-width: auto;
    flex-shrink: 0;
  }

  .bs-stepper.vertical .bs-stepper-header .step .bs-stepper-label {
    display: none;
  }

  .bs-stepper.vertical .bs-stepper-header .step .bs-stepper-circle {
    margin: 0;
  }

  .bs-stepper.vertical .bs-stepper-header .line {
    min-width: 1rem;
    min-height: 0;
    border-top: 1px solid #e9ecef;
    border-left: none;
    flex: 1;
    align-self: center;
  }

  .bs-stepper.vertical .bs-stepper-header .step.p-3 {
    display: none;
  }

  .bs-stepper.vertical .bs-stepper-content {
    padding: 0;
  }
}

@media (max-width: 767.98px) {
  .bs-stepper .content .row .col-sm-4 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .bs-stepper .content .row .col-sm-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .bs-stepper .col-12.d-flex.justify-content-between {
    flex-direction: row;
    gap: 0.5rem;
  }

  .bs-stepper .btn-prev,
  .bs-stepper .btn-next {
    flex: 1;
    text-align: center;
  }
}

/* ============================================
   ESTABELECIMENTOS / PEDIDOS TABLES RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .section-py.bg-body .container .card {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
    border-radius: 0.75rem;
  }

  .section-py.bg-body .container .card .card-body {
    padding: 1rem;
  }

  .section-py.bg-body .container .card h4 {
    font-size: 1.15rem;
    margin-bottom: 1.5rem !important;
  }

  .tabela_estabelecimento .table,
  .tabela_pedido .table {
    font-size: 0.8rem;
  }

  .tabela_estabelecimento .table th,
  .tabela_estabelecimento .table td,
  .tabela_pedido .table th,
  .tabela_pedido .table td {
    padding: 0.5rem 0.4rem;
    white-space: nowrap;
  }

  .tabela_estabelecimento .table .btn,
  .tabela_pedido .table .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}

/* ============================================
   REGISTRAR CONTA (AUTH CARD) RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .auth-wrapper {
    padding: 10px;
    align-items: flex-start;
    padding-top: 2rem;
  }

  .auth-card {
    max-width: 100%;
    border-radius: 12px;
  }

  .auth-card .container {
    padding: 1.25rem !important;
  }

  .progress-indicator {
    margin-bottom: 1.5rem;
  }

  .step-icon {
    width: 32px;
    height: 32px;
    font-size: 0.85rem;
  }

  .step-label {
    font-size: 0.7rem;
  }

  .logo-container img {
    height: 60px;
  }

  .logo-title {
    font-size: 1.2rem;
  }
}

@media (max-width: 575.98px) {
  .auth-wrapper {
    padding: 0.5rem;
    padding-top: 1rem;
  }

  .auth-card .container {
    padding: 1rem !important;
  }

  .step-label {
    font-size: 0.6rem;
  }

  .step-icon {
    width: 28px;
    height: 28px;
  }

  .form-control-lg {
    padding: 0.6rem 0.75rem;
    font-size: 0.9rem;
  }

  .btn-lg {
    padding: 0.65rem 1rem;
    font-size: 0.9rem;
  }

  .code-digit {
    width: 40px;
    height: 40px;
    font-size: 1.2rem;
  }

  .code-input {
    gap: 6px;
  }
}

/* ============================================
   CONFIRMAR CONTA RESPONSIVE
   ============================================ */
@media (max-width: 575.98px) {
  .confirmation-container {
    margin: 0.5rem;
    border-radius: 14px;
  }

  .success-header,
  .error-header,
  .expired-header {
    padding: 1.75rem 1.25rem;
  }

  .success-icon-wrapper,
  .error-icon-wrapper,
  .expired-icon-wrapper {
    width: 64px;
    height: 64px;
  }

  .success-header h1,
  .error-header h1,
  .expired-header h1 {
    font-size: 1.2rem;
  }

  .success-body,
  .error-body,
  .expired-body {
    padding: 1.25rem;
  }

  .user-info-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }

  .user-info-icon {
    margin-right: 0;
    margin-bottom: 0.25rem;
  }

  .next-steps li {
    font-size: 0.82rem;
  }

  .btn-login-now {
    padding: 0.85rem;
    font-size: 0.9rem;
  }
}

/* ============================================
   MODAL RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .modal-dialog {
    margin: 0.5rem;
    max-width: calc(100% - 1rem);
  }

  .modal-body {
    padding: 1rem;
  }

  .modal-header {
    padding: 0.75rem 1rem;
  }

  .modal-title {
    font-size: 1rem;
  }
}

/* ============================================
   PAYMENT OPTIONS RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .payment-option {
    width: 110px;
    height: 110px;
  }
}

@media (max-width: 575.98px) {
  .payment-option {
    width: 90px;
    height: 90px;
    border-radius: 8px;
  }
}

/* ============================================
   PACOTES CARDS ON REGISTRAR COMPRA RESPONSIVE
   ============================================ */
@media (max-width: 991.98px) {
  .custom-option.custom-option-basic {
    margin-bottom: 0.5rem;
  }

  .custom-option-content {
    padding: 0.75rem !important;
  }

  .form-check-input-payment .custom-option-body {
    font-size: 0.85rem;
  }
}

@media (max-width: 767.98px) {
  .row.py-4 .col-xl {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .row.py-4 .col-lg-4 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 1rem;
  }
}

/* ============================================
   LOADER RESPONSIVE
   ============================================ */
@media (max-width: 575.98px) {
  .loading-area .loading-box img {
    width: 50px;
    height: 50px;
  }

  .loading-text {
    font-size: 14px !important;
  }
}

/* ============================================
   GENERAL FORM RESPONSIVE FIXES
   ============================================ */
@media (max-width: 767.98px) {
  .form-control,
  .form-select {
    font-size: 0.9rem;
  }

  label.form-label {
    font-size: 0.85rem;
  }

  .select2-container .select2-selection--single {
    height: 38px;
  }
}

/* ============================================
   BTN VOLTAR RESPONSIVE
   ============================================ */
@media (max-width: 575.98px) {
  .btn-voltar {
    top: 0.75rem;
    left: 0.75rem;
    font-size: 0.85rem;
  }
}

/* ============================================
   SECTION SPACING RESPONSIVE
   ============================================ */
@media (max-width: 767.98px) {
  .section-py {
    padding: 2.5rem 0;
  }

  .first-section-pt {
    padding-top: 5rem;
  }

  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (max-width: 575.98px) {
  .section-py {
    padding: 2rem 0;
  }

  .first-section-pt {
    padding-top: 4.5rem;
  }
}

/* ============================================
   TOUCH DEVICE ENHANCEMENTS
   ============================================ */
@media (hover: none) and (pointer: coarse) {
  .btn,
  .form-control,
  .form-select,
  .accordion-button {
    min-height: 44px;
  }

  .recurso-card:hover {
    transform: none;
  }

  .pricing-card:hover {
    transform: none;
  }
}

/* ============================================
   PRINT STYLES
   ============================================ */
@media print {
  .layout-navbar,
  .landing-footer,
  .btn-voltar,
  .loading-area {
    display: none !important;
  }

  .section-py {
    padding: 1rem 0;
  }

  body {
    background: white !important;
  }
}
