/*!
 * Start Bootstrap - Resume v4.0.0-beta.2 adapted for Azores Elite Property Care
 */
body{
    font-family:'Open Sans',serif;
    padding-top:70px;
    color:#495057;
    background-color:#fafafa
}
@media (min-width:992px){
    body{
        padding-top:70px;
        padding-left:17rem
    }
}
h1,h2,h3,h4,h5,h6{
    font-family:'Saira Extra Condensed',serif;
    font-weight:700;
    text-transform:uppercase;
    color:#212529
}
h1{
    font-size:5.5rem;
    line-height:5rem
}
h2{
    font-size:3.2rem;
    border-bottom: 2px solid #0c4e54;
    padding-bottom: 0.5rem;
    display: inline-block;
    margin-bottom: 2.5rem !important;
}
.subheading{
    text-transform:uppercase;
    font-weight:600;
    font-family:'Saira Extra Condensed',serif;
    font-size:1.4rem;
    letter-spacing: 1px;
}
.list-icons{
    font-size:3rem
}
#sideNav .navbar-nav .nav-item .nav-link{
    font-weight:600;
    text-transform:uppercase;
    letter-spacing: 0.5px;
}
@media (min-width:992px){
    #sideNav{
        text-align:center;
        position:fixed;
        top:0;
        left:0;
        display:flex;
        flex-direction:column;
        width:17rem;
        height:100vh
    }
    #sideNav .navbar-brand{
        display:flex;
        margin:auto auto 0;
        padding:.5rem
    }
    #sideNav .navbar-brand .img-profile{
        max-width:10rem;
        max-height:10rem;
        border:.5rem solid rgba(255,255,255,.15)
    }
    #sideNav .navbar-collapse{
        display:flex;
        align-items:flex-start;
        flex-grow:0;
        width:100%;
        margin-bottom:auto
    }
    #sideNav .navbar-collapse .navbar-nav{
        flex-direction:column;
        width:100%
    }
    #sideNav .navbar-collapse .navbar-nav .nav-item{
        display:block
    }
    #sideNav .navbar-collapse .navbar-nav .nav-item .nav-link{
        display:block;
        padding: .6rem 0;
    }
}
section.resume-section {
    border-bottom: 1px solid #dee2e6;
    padding-top: 5rem !important;    /* Reduzido de 5rem para 3rem */
    padding-bottom: 3rem !important; /* Reduzido de 5rem para 3rem */
    background-color: #ffffff;
}

/* Remove a obrigação de cada secção ocupar o ecrã inteiro */
@media (min-width: 768px) {
    section.resume-section {
        min-height: auto !important; /* Alterado de 100vh para auto */
    }
}

@media (min-width: 992px) {
    section.resume-section {
        padding-top: 4rem !important;    /* Ajuste para ecrãs grandes */
        padding-bottom: 4rem !important; /* Ajuste para ecrãs grandes */
    }
}

/* Identidade de Cores - Apresentação PPT */
.bg-primary{
    background-color:#0c4e54!important /* Azul Petróleo Escuro Principal */
}
.text-primary{
    color:#0c4e54!important
}
.text1-primary{
    color:#01696f!important /* Verde Azulado Secundário */
}
a{
    color:#01696f;
    text-decoration: none;
    transition: color 0.2s ease-in-out;
}
a:active,a:focus,a:hover{
    color:#0c4e54;
    text-decoration: underline;
}

/* Customização de Tabelas de Honorários */
.table {
    margin-top: 1.5rem;
    background-color: #fff;
}
.table thead th {
    font-family: 'Saira Extra Condensed', sans-serif;
    font-size: 1.25rem;
    letter-spacing: 0.5px;
    border-bottom: none;
}
.table-bordered td, .table-bordered th {
    border: 1px solid #e9ecef;
}

/* Alinhamento de Destaques */
.blockquote {
    font-size: 1.25rem;
    font-style: italic;
    border-left: 4px solid #01696f;
}
/* Configuração de tamanho fixo para as caixas */
.problem-card {
    width: 100%;
    max-width: 240px;  /* Largura fixa máxima para cada caixa */
    height: 280px;     /* Altura fixa vertical para todas ficarem iguais */
    margin: 0 auto;    /* Garante que ficam centradas dentro da coluna */
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centra o conteúdo verticalmente dentro da caixa */
}

/* Efeito ao passar o rato (hover) */
.problem-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.15) !important;
}

/* Cores de fundo (as mesmas da sua palete) */
.card-accent-1 { background-color: #0c4e54 !important; }
.card-accent-2 { background-color: #01696f !important; }
.card-accent-3 { background-color: #2c3e4c !important; }
.card-accent-4 { background-color: #3d4a54 !important; }

/* Ajuste do texto interno */
.text-white-50 {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 0.9rem;
    line-height: 1.5;
}

/* Melhorias visuais */
#about{
    background:linear-gradient(135deg,#ffffff 0%,#f4f8f8 100%);
}

h1{
    letter-spacing:-2px;
}

#sideNav{
    box-shadow:5px 0 25px rgba(0,0,0,.15);
}

#sideNav .nav-link{
    transition:all .25s ease;
}

#sideNav .nav-link:hover{
    color:#ffffff!important;
    transform:translateX(5px);
}

#services .card{
    transition:all .3s ease;
}

#services .card:hover{
    transform:translateY(-10px);
    box-shadow:0 15px 35px rgba(0,0,0,.15)!important;
}

.resume-section:nth-child(even){
    background-color:#f8fbfb;
}

#contacto{
    background:#0c4e54;
    color:white;
}

#contacto h2,
#contacto h3,
#contacto a{
    color:white!important;
}

.gallery-grid{
    display:grid !important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:15px;
}

.gallery-grid img{
    width:100%;
    height:250px;
    object-fit:cover;
    border-radius:8px;
    cursor:pointer;
}

.hidden{
    display:none !important;
}

.gallery-filter-btn{
    background:#0c4e54;
    color:#fff;
    border:none;
    padding:10px 20px;
    border-radius:5px;
    margin:5px;
}

.gallery-filter-btn:hover{
    background:#01696f;
}

/* Cor do botão de filtro quando está selecionado */
.gallery-filter-btn.active {
    background-color: #01696f !important;
    font-weight: bold;
    box-shadow: inset 0 3px 5px rgba(0,0,0,0.2);
}

#galleryModal .modal-dialog{
    max-width:900px;
}

#galleryModal img{
    max-height:80vh;
    width:auto;
    max-width:100%;
}

.gallery-close{
    position:absolute;
    top:10px;
    right:15px;
    font-size:40px;
    color:#fff;
    z-index:9999;
    opacity:1;
}

.gallery-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:50px;
    height:50px;
    border:none;
    border-radius:50%;
    background:#0c4e54;
    color:#fff;
    font-size:28px;
    z-index:9999;
}

.gallery-prev{
    left:10px;
}

.gallery-next{
    right:10px;
}

.gallery-nav:hover{
    background:#01696f;
}

/* Remove o contorno e a sombra de foco dos botões do modal */
.gallery-nav:focus,
.gallery-close:focus,
.gallery-filter-btn:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Garante que o efeito também desaparece se o botão for clicado ativamente */
.gallery-nav:active,
.gallery-close:active {
    outline: none !important;
    box-shadow: none !important;
}
@media(max-width:768px){

    .gallery-grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:576px){

    .gallery-grid{
        grid-template-columns:1fr;
    }

}
.image-modal {
    display: none;              /* escondido por defeito */
    position: fixed;
    inset: 0;                   /* top:0; right:0; bottom:0; left:0 */
    z-index: 9999;
    background: rgba(0,0,0,0.9);

    justify-content: center;    /* centra horizontalmente */
    align-items: center;        /* centra verticalmente */
}

.image-modal img {
    display: block;
    max-width: 90vw;
    max-height: 90vh;
    width: auto;
    height: auto;
    border-radius: 10px;
}

.modal-content{
    max-width:90vw;
    max-height:90vh;
    width:auto;
    height:auto;
    margin:auto;
    background:transparent;
    border:none;
}

.close {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #fff;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
}
@media (max-width:991.98px){

    .mobile-profile{
        text-align:center;
        padding:15px 0 5px;
    }

    .mobile-profile .img-profile{
        width:40px;
        height:40px;
        object-fit:cover;
        border:4px solid rgba(255,255,255,.2);
    }

}
@media (max-width:991.98px){

    body{
        padding-top:110px;   /* antes estava 180px */
    }

    #sideNav{
        min-height:auto;
        padding:0;
    }

    .mobile-profile{
        padding:8px 0 2px;
    }

    .mobile-profile .img-profile{
        width:70px;
        height:70px;
        margin-bottom:4px;
    }

    #sideNav .navbar-brand{
        padding:4px 1rem;
        font-size:.80rem;
        margin:0;
    }

    #sideNav .navbar-toggler{
        padding:.20rem .45rem;
        margin-right:1rem;
    }

    #sideNav .navbar-collapse{
        margin-top:5px;
    }

}