/*
  responsive-borba.css
  Ajustes de responsividade personalizados para a Clínica Borba.
  Complementa o style.css do template com correções específicas da landing page.

  Breakpoints:
    xs  : < 576px
    sm  : 576px - 767px
    md  : 768px - 991px
    lg  : 992px - 1199px
    xl  : >= 1200px
*/

/* ============================================================
   SEÇÃO PROTOCOLOS – CARROSSEL COM LIGHTBOX
   ============================================================ */

/* Fundo levemente escuro para destacar as imagens */
.protocolos-section {
  background-color: #0e0e0e;
}

.protocolos-section .section-title .title,
.protocolos-section .section-title .sub-title {
  color: #fff;
}

.protocolos-section .section-title .section-description {
  color: rgba(255,255,255,0.65);
}

/* Card de protocolo */
.protocolo-card {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  cursor: pointer;
  text-decoration: none !important;
}

/* Proporção de retrato (A4-like) */
.protocolo-img-wrap {
  position: relative;
  width: 100%;
  padding-top: 141%; /* proporção ~A4 retrato */
  overflow: hidden;
  border-radius: 6px;
}

.protocolo-img-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform 0.5s ease;
}

/* Overlay com ícone de zoom ao hover */
.protocolo-overlay {
  position: absolute;
  inset: 0;
  background: rgba(156, 102, 68, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.35s ease;
  border-radius: 6px;
}

.protocolo-overlay i {
  color: #fff;
  font-size: 32px;
  transform: scale(0.7);
  transition: transform 0.35s ease;
}

.protocolo-card:hover .protocolo-overlay {
  opacity: 1;
}

.protocolo-card:hover .protocolo-overlay i {
  transform: scale(1);
}

.protocolo-card:hover .protocolo-img-wrap img {
  transform: scale(1.04);
}

/* Setas do Owl Carousel na seção de protocolos */
.protocolos-section .owl-nav .owl-prev,
.protocolos-section .owl-nav .owl-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(156,102,68,0.85) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  border: none;
  transition: background 0.3s;
  z-index: 10;
}

.protocolos-section .owl-nav .owl-prev:hover,
.protocolos-section .owl-nav .owl-next:hover {
  background: #9c6644 !important;
}

.protocolos-section .owl-nav .owl-prev {
  left: 10px;
}

.protocolos-section .owl-nav .owl-next {
  right: 10px;
}

/* Padding lateral do carrossel para as setas não sobreporem */
.protocolos-section .container-fluid {
  position: relative;
  padding-left: 50px;
  padding-right: 50px;
}

/* Lightbox Magnific Popup – animação fade */
.mfp-fade.mfp-bg {
  opacity: 0;
  transition: all 0.3s ease-out;
}
.mfp-fade.mfp-bg.mfp-ready { opacity: 0.92; }
.mfp-fade.mfp-bg.mfp-removing { opacity: 0; }

.mfp-fade.mfp-wrap .mfp-content {
  opacity: 0;
  transition: all 0.3s ease-out;
}
.mfp-fade.mfp-wrap.mfp-ready .mfp-content { opacity: 1; }
.mfp-fade.mfp-wrap.mfp-removing .mfp-content { opacity: 0; }

/* Imagem no popup: altura máxima para não extrapolar a tela */
.mfp-img { max-height: 92vh !important; }

/* Botão fechar popup */
.mfp-close {
  color: #fff !important;
  font-size: 32px !important;
}

/* Setas de galeria no popup */
.mfp-arrow { opacity: 0.85; }
.mfp-arrow:hover { opacity: 1; }

@media (max-width: 576px) {
  .protocolos-section .container-fluid {
    padding-left: 36px;
    padding-right: 36px;
  }

  .protocolos-section .owl-nav .owl-prev { left: 2px; }
  .protocolos-section .owl-nav .owl-next { right: 2px; }
}

/* ============================================================
   GLOBAL – evita scroll horizontal em qualquer viewport
   ============================================================ */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

*, *::before, *::after {
  box-sizing: border-box;
}

/* ============================================================
   HEADER / NAVEGAÇÃO
   ============================================================ */

/* Desktop: espaçamento do CTA no canto direito */
.header .add-listing .btn {
  white-space: nowrap;
}

/* Tablet (≤ 991px): ajustes do header no modo colapsado */
@media (max-width: 991px) {
  /* CTA "Entre em contato" – reposiciona para não colidir com toggler */
  .header .add-listing {
    padding-right: 55px;
  }

  /* Esconde CTA em mobile para não sobrepor ao botão de menu */
  .header .add-listing .btn.btn-primary {
    display: none;
  }

  /* Garante que o logo-center (logo do meio do nav) suma no mobile */
  .header .navbar .navbar-nav > li.logo-center {
    display: none !important;
  }

  /* Garante que o logo-left fique visível */
  .header .main-header .logo-left {
    display: block !important;
  }

  /* Menu colapsado: padding lateral no mobile */
  .header .navbar-collapse {
    padding: 0 15px;
  }

  /* Remove margem de separação entre links no menu mobile */
  .header .navbar-nav > li {
    border-bottom: 1px solid #f0e8e4;
  }
}

/* Celular pequeno (≤ 576px) */
@media (max-width: 576px) {
  .header .main-header {
    padding: 0 12px;
  }

  /* Reduz logo no mobile */
  .navbar-brand img {
    height: 30px;
  }
}


/* ============================================================
   BANNER / HERO
   ============================================================ */

/* Mantém o parágrafo visível em mobile (o template escondia em ≤767px) */
@media (max-width: 767px) {
  .banner-02 p,
  .banner-02 .details-text {
    display: block !important;
    font-size: 14px;
    line-height: 22px;
    margin-top: 12px;
  }

  .banner-02 .swiper-slide {
    padding: 130px 0 60px;
    min-height: 480px;
  }

  .banner-02 h1 {
    font-size: 28px;
    line-height: 36px;
  }

  .banner-02 .slider-1 {
    padding-left: 15px;
    padding-right: 15px;
  }

  .banner-02 .btn {
    margin-top: 16px;
    font-size: 13px;
    padding: 10px 16px;
  }
}

/* Celular muito pequeno (≤ 480px) */
@media (max-width: 480px) {
  .banner-02 .swiper-slide {
    padding: 100px 0 50px;
    min-height: 420px;
  }

  .banner-02 h1 {
    font-size: 24px;
    line-height: 32px;
  }

  .banner-02 .sub-title-text {
    font-size: 12px;
  }
}


/* ============================================================
   SEÇÃO SOBRE (ABOUT)
   ============================================================ */

@media (max-width: 991px) {
  /* Imagens da seção about empilham com espaço adequado */
  .about-02 .about-img {
    margin-bottom: 40px;
  }

  .about-02 .about-img .img-01 img {
    width: 100%;
    height: auto;
  }

  .about-02 .about-img .img-03 {
    width: 38%;
    right: 5%;
  }
}

@media (max-width: 767px) {
  /* Call box com telefone: empilha verticalmente */
  .call-box {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .call-box .call-box-icon {
    margin-bottom: 4px;
  }

  /* Imagem secundária da seção about */
  .about-02 .about-img .img-03 {
    width: 42%;
    bottom: -10px;
    right: 0;
  }

  /* Lista de diferenciais: empilha em coluna única */
  .about-02 .row .col-sm-6 {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .about-02 .about-img .img-03 {
    width: 48%;
  }

  .about-02 .section-title .title {
    font-size: 26px;
    line-height: 34px;
  }
}


/* ============================================================
   SEÇÃO "NOSSA ATUAÇÃO" (3 cards de especialidade)
   ============================================================ */

@media (max-width: 767px) {
  /* Cards das especialidades (Cirurgia, Dermatologia, Ginecologia) */
  .blog-style-01 .blog-img img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 4px;
  }

  /* Texto do card */
  .blog-style-01 .blog-info h3 {
    font-size: 20px;
  }

  .blog-style-01 .blog-content {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  /* Cabeçalho da seção com o botão CTA */
  .bg-overlay-secondary .col-xl-2 {
    text-align: left !important;
    margin-top: 20px;
  }

  .bg-overlay-secondary .btn-primary-white {
    width: 100%;
    text-align: center;
  }
}


/* ============================================================
   SEÇÃO PROCEDIMENTOS (abas / tabs)
   ============================================================ */

/* Tabs: permite quebra de linha e scroll horizontal em telas pequenas */
.nav-tabs-02 .nav.nav-tabs {
  flex-wrap: wrap;
  gap: 6px;
}

@media (max-width: 991px) {
  /* Wrapper relativo para o fade de indicação de scroll */
  .nav-tabs-02 {
    position: relative;
  }

  /* Fade na direita indicando que há mais tabs à direita */
  .nav-tabs-02::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 48px;
    height: calc(100% - 8px);
    background: linear-gradient(to right, transparent, rgba(19,19,16,0.98));
    pointer-events: none;
    z-index: 2;
    border-radius: 0 4px 4px 0;
  }

  .nav-tabs-02 .nav.nav-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    justify-content: flex-start !important;
    padding-bottom: 8px;
    /* Oculta scrollbar visualmente mas mantém funcional */
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

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

  .nav-tabs-02 .nav-item {
    flex-shrink: 0;
  }

  .nav-tabs-02 .nav-link {
    white-space: nowrap;
    font-size: 13px;
    padding: 8px 14px;
  }
}

@media (max-width: 767px) {
  /* Menu list de procedimentos: empilha ícone e texto */
  .menu-list.menu-list-default {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
  }

  .menu-list.menu-list-default .menu-icon img {
    width: 48px;
    height: 48px;
    object-fit: contain;
  }

  .menu-list.menu-list-default .menu-details .menu-title a {
    font-size: 16px;
  }

  .menu-list.menu-list-default .menu-details .menu-title p {
    font-size: 13px;
    line-height: 20px;
  }
}

@media (max-width: 480px) {
  .menu-list.menu-list-default .menu-icon img {
    width: 40px;
    height: 40px;
  }
}


/* ============================================================
   SEÇÃO GALERIA
   ============================================================ */

/* Link wrapper da galeria: sem decoração */
a.gallery-lightbox {
  text-decoration: none;
}

/* Garante que o ícone de zoom fique contido na imagem */
.gallery-img {
  position: relative;
}

/* Ícone de zoom sobre a imagem */
.gallery-img .gallery-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(156, 102, 68, 0.50);
  opacity: 0;
  transition: opacity 0.35s ease;
  border-radius: inherit;
}

.gallery-img .gallery-icon i {
  color: #fff;
  font-size: 28px;
  transform: scale(0.7);
  transition: transform 0.35s ease;
}

a.gallery-lightbox:hover .gallery-icon {
  opacity: 1;
}

a.gallery-lightbox:hover .gallery-icon i {
  transform: scale(1);
}

a.gallery-lightbox:hover .gallery-img {
  filter: brightness(0.92);
  transition: filter 0.35s ease;
}

@media (max-width: 767px) {
  /* Galeria: força uma coluna única em mobile */
  .gallery .gallery-img {
    height: 220px !important;
  }

  .gallery .gallery-img.gallery-lg {
    height: 220px !important;
  }

  /* Galeria 2ª linha: força largura total nos itens abaixo de sm */
  #galeria .row.g-3 > [class*="col-sm-6"] {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .gallery .gallery-img,
  .gallery .gallery-img.gallery-lg {
    height: 180px !important;
  }
}


/* ============================================================
   SEÇÃO EQUIPE (corpo clínico – owl carousel)
   ============================================================ */

@media (max-width: 991px) {
  /* Seção do corpo clínico: título e descrição empilham */
  .category-section .col-xl-4 {
    text-align: center;
  }

  .category-section .section-title {
    margin-bottom: 24px;
  }

  .category-section .btn.btn-primary {
    margin-bottom: 32px;
  }
}

@media (max-width: 767px) {
  /* Cards de médicos no carousel */
  .category-box .category-img img {
    width: 100%;
    max-width: 180px;
    margin: 0 auto;
    display: block;
    border-radius: 8px;
  }

  .category-box .category-title h4 a {
    font-size: 16px !important;
  }
}

@media (max-width: 480px) {
  .category-box .category-img img {
    max-width: 140px;
  }
}


/* ============================================================
   FOOTER
   ============================================================ */

@media (max-width: 767px) {
  .footer .min-footer {
    padding: 40px 0 20px;
  }

  /* Info de contato no footer: espaçamento entre itens */
  .footer-contact-info ul li {
    margin-bottom: 10px;
    display: flex;
    align-items: flex-start;
    gap: 8px;
  }

  .footer-contact-info ul li span {
    line-height: 22px;
  }

  /* Ícones de redes sociais */
  .footer .social-icon ul {
    display: flex;
    gap: 12px;
    padding: 0;
    list-style: none;
  }

  /* Footer bottom: centraliza o copyright */
  .footer-bottom .copyright {
    text-align: center;
  }
}

@media (max-width: 480px) {
  .footer h5 {
    font-size: 18px;
    margin-bottom: 16px;
  }

  .footer-bottom p {
    font-size: 13px;
  }
}


/* ============================================================
   BOTÃO VOLTAR AO TOPO
   ============================================================ */

@media (max-width: 480px) {
  #back-to-top {
    bottom: 15px;
    right: 15px;
  }
}


/* ============================================================
   UTILITÁRIOS GERAIS DE RESPONSIVIDADE
   ============================================================ */

/* Imagens sempre responsivas */
img {
  max-width: 100%;
  height: auto;
}

/* Evita que textos longos estourem o container em mobile */
@media (max-width: 767px) {
  .section-title .title {
    word-break: break-word;
  }

  .section-title .sub-title {
    font-size: 13px;
    letter-spacing: 1px;
  }

  /* Botões: ocupam largura total em telas muito pequenas */
  .btn {
    max-width: 100%;
  }
}

/* Resolve problemas de overflow em containers fluid */
@media (max-width: 991px) {
  .container-fluid {
    padding-left: 15px;
    padding-right: 15px;
  }

  /* Protege o padding do carrossel de protocolos para as setas não sobreporem os cards */
  .protocolos-section .container-fluid {
    padding-left: 50px !important;
    padding-right: 50px !important;
  }
}

@media (max-width: 576px) {
  .protocolos-section .container-fluid {
    padding-left: 38px !important;
    padding-right: 38px !important;
  }
}


/* ============================================================
   HERO – telas muito pequenas (≤ 360px)
   ============================================================ */

@media (max-width: 360px) {
  .banner-02 h1 {
    font-size: 20px !important;
    line-height: 28px !important;
  }

  .banner-02 p,
  .banner-02 .details-text {
    font-size: 12px !important;
    line-height: 20px !important;
  }

  .banner-02 .swiper-slide {
    padding: 90px 0 40px !important;
    min-height: 380px !important;
  }

  .banner-02 .slider-1 {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}


/* ============================================================
   TECH MODAL – mobile (≤ 576px)
   ============================================================ */

@media (max-width: 576px) {
  .tech-modal-content {
    flex-direction: column !important;
    max-height: 92vh;
    overflow-y: auto;
    border-radius: 8px;
    width: 94vw !important;
  }

  .tech-modal-image {
    width: 100% !important;
    min-height: 200px !important;
    max-height: 240px !important;
    flex-shrink: 0;
  }

  .tech-modal-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .tech-modal-body {
    padding: 20px 18px !important;
    width: 100% !important;
  }

  .tech-modal-body h3 {
    font-size: 1.3rem !important;
  }

  .tech-modal-close {
    top: 10px !important;
    right: 12px !important;
    font-size: 20px !important;
  }

  .tech-modal-overlay {
    padding: 0 !important;
    align-items: flex-end !important;
  }
}


/* ============================================================
   NOSSA ATUAÇÃO – header (md: 768px – 991px)
   ============================================================ */

@media (min-width: 768px) and (max-width: 991px) {
  /* Cabeçalho com título + CTA: alinha lado a lado com espaço adequado */
  .bg-overlay-secondary .container > .row {
    align-items: center;
  }

  .bg-overlay-secondary .col-xl-10 {
    width: 75%;
  }

  .bg-overlay-secondary .col-xl-2 {
    width: 25%;
    text-align: right !important;
  }

  .bg-overlay-secondary .btn-primary-white {
    white-space: nowrap;
  }
}

@media (max-width: 767px) {
  /* Garante que o botão do cabeçalho ocupe a largura total e se separe do texto */
  .bg-overlay-secondary .col-xl-2 {
    width: 100% !important;
    text-align: center !important;
    margin-top: 16px;
  }

  .bg-overlay-secondary .btn-primary-white {
    width: auto;
    display: inline-block;
  }
}
