/* =========================================================================
   PARTE 1: RESET GLOBAL, TIPOGRAFIA E CABEÇALHO
   ========================================================================= */

* {
    box-sizing: border-box;
}

body {
    width: 100%;
    height: 100vh;
    margin: 0;
    padding: 0;
    background: #006e6e;
    color: white;
}

h1, h2, h3, h4 {
    position: relative;
}

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

form {
    width: 60%;
    margin: 0 auto;
    position: relative;
    padding: 0 0 80px 0;
}

input, textarea, select {
    display: block;
    padding: 15px;
    border-radius: 8px;
    margin: 5px 0;
}

.ini {
    display: inline-block;
    padding: 5px;
    background: white;
    color: black;
    border-radius: 20px;
    border: 2px solid burlywood;
}

.menu_ent li span {
    display: inline-block;
}

input, textarea {
    width: 100%;
}

input[type=submit] {
    position: absolute;
    right: 30px;
    width: auto;
    border-radius: 20px;
}

.cabeca {
	position: relative;
    border-bottom: 1px solid black;
    height: 120px;
    padding: 40px 30px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #000000;
    background: linear-gradient(179deg, rgba(0, 0, 0, 1) 0%, rgba(82, 82, 82, 1) 50%, rgba(0, 0, 0, 1) 100%);
    color: White;
}
.cor_marcado{
    background: black!important;
    color: tomato;
}
.cabeca a {
    color: white;
    text-decoration: none;
}
.anuncio{
    position: relative;
    padding: 10px;
    text-align: center;
    background: lightgoldenrodyellow;
    color: black;
    font-weight: bold;
}
.anuncio a{
    color: black;
}
.logo img {
    width: 70px;   
}

.logo {
    width: 15%;
    position: relative;
    top: -5px;
}

.menu {
    width: 60%;
    font-size: 1.5em;
    position: relative;
}
.menu ul ul{
    display: none;
    margin: 0;
    padding: 0;
    background: linear-gradient(179deg, rgba(0, 0, 0, 1) 0%, rgba(82, 82, 82, 1) 50%, rgba(0, 0, 0, 1) 100%);;
    color: white;
    z-index: 9999;
}
.menu li:hover > ul{
    display: block;
    position: absolute;
    margin-left: 0;
    margin-top: 0px;
    width: auto;
}
.menu li li{
    display: block;
    margin: 7px 0;
    padding: 15px 10px;
}
.menu_ent {
    width: 25%;
    position: relative;
    z-index: 99999;
    top: -3px;
}

a {
    color: burlywood;
    text-decoration: none;
    transition: all 2s;
}

a:hover {
    color: bisque;
}

.limpar {
    clear: both;
}

.menu ul {
    display: block;
}

.menu li {
    float: left;
    padding: 15px;
}

.menu_ent li {
    width: 140px;
    padding: 16px;
    background: #006e6e;
    position: relative;
    border-radius: 10px;
    text-align: center;
}

.menu_ent li:hover > ul {
    display: block !important;
}

.menu_ent ul ul {
    display: none;
    margin: 0;
    padding: 0;
    position: absolute;
    left: 0;
    top: 55px;
    text-align: center;
}

.menu_ent li li {
    border-radius: 0 !important;
}

/* =========================================================================
   PARTE 2: GRELHAS DE SERVIÇOS, ALINHAMENTO DO SLIDE E ANIMAÇÕES
   ========================================================================= */

.servicos ul {
    width: 90%;
    margin: 0 auto;
}

.servicos li {
    width: 32%;
    margin: 5px;
    padding: 20px;
    text-align: center;
    height: 380px;
    float: left;
    background: #fefefe;
    color: black;
    border-radius: 8px;
}

.servicos li a {
    color: black;
    text-decoration: none;
}

.sobre, .servicos {
    padding: 0 30px;
    position: relative;
    z-index: 99;
    overflow-x: auto;
}

/* Estrutura do Slide Principal */
.apresentacao {
    position: relative;
    width: 100%;
    height: 550px;
    margin-bottom: 20px;
    background-size: 100%;
    background-position: bottom;
    background-attachment: fixed;
    font-size: 1.5em;
}

.embrulhofoto {
    width: 100%;
    display: block;
    text-align: center;
    margin: 0 auto;
    padding: 10px 0;
    transition: all 2s;
    position: absolute;
    left: 0;
    top: 0;
}

.embrulhofoto span {
    display: inline-block;
    width: 15px;
    height: 15px;
    transform: rotate(-45deg);
    background: burlywood;
}

.embrulhofoto h1 {
    color: rgb(133, 204, 204);
    text-shadow: 1px 1px 1px black, 1px 1px 1px black;
    font-size: 0.7em;
}

.embrulhofoto ul {
    width: 670px;
    margin: 0 auto;
    font-size: 0.7em;
    list-style: none !important;
    list-style-type: none !important;
}

.embrulhofoto li {
    float: left;
    list-style-type: none !important;
}

.embrulhofoto a {
    display: block;
    width: 285px !important;
    margin: 40px 15px;
    padding: 15px;
    border-radius: 8px;
    font-size: 0.7em !important;
    color: white;
    background: rgb(80 143 142);
}

.embrulhofoto a:hover {
    position: relative;
    top: -3px;
    font-size: 0.7em !important;
    color: purple;
    background: white;
}

.aprese::before {
    content: "";
    display: none;
}

.embrulho h1 {
    text-align: center;
}

.sobre p {
    display: inline-flex;
}

.menu_ent_movel, .menu_movel {
    display: none;
}

h1::before {
    content: "";
    position: relative;
    display: inline-block;
    width: 70px;
    height: 70px;
    top: 20px;
    margin-right: 10px;
    background-image: url(../img/logo.png);
    background-repeat: no-repeat;
    background-color: white;
    border-radius: 50px;
    background-size: 45px;
    background-position: center center;
    z-index: 99;
    line-height: 6;
}

.slides {
    width: 100%;
    height: 500px;
    cursor: pointer;
}

.texto {
    display: block;
    font-size: 3em;
    text-align: center;
    padding: 170px 0 0 0;
}

@keyframes aparecer {
    0% { opacity: 0; color: black; }
    100% { opacity: 1; color: goldenrod; }
}
@keyframes rodar {
    0% { opacity: 0; transform: rotate(0deg); color: black; }
    100% { opacity: 1; transform: rotate(350deg); color: goldenrod; }
}
@keyframes deslizar {
    0% { opacity: 0; position: absolute; left: 0; color: black; }
    100% { opacity: 1; position: absolute; left: 80%; color: goldenrod; }
}
@keyframes esqdrt {
    0% { opacity: 0; position: absolute; right: 0; color: black; }
    100% { opacity: 1; position: absolute; right: 70%; text-align: right; color: goldenrod; }
}

/* =========================================================================
   PARTE 3: SERVIÇOS, CARROSSÉIS, GESTÃO DE HORÁRIOS E PAGINAÇÃO
   ========================================================================= */

#google_translate_element {
    position: absolute;
    right: 10px;
    top: -55px;
    z-index: 999999 !important;
    display: block !important;
    height: auto !important;
    width: auto !important;
}
.tradutor{
	position: relative;
}
#google_translate_element select {
    background: black !important;
    color: white !important;
    padding: 4px 8px !important;
    font-size: 13px !important;
    border-radius: 4px !important;
    height: 26px !important;
    width: 170px !important;
    display: inline-block !important;
    margin: 0 !important;
    border: 1px solid #555 !important;
    line-height: 1.2 !important;
}

.goog-te-gadget {
    font-size: 11px !important;
    color: #777777 !important;
    line-height: 1.4 !important;
    text-align: center !important;
    width: 170px !important;
}

.goog-te-gadget span, .goog-te-gadget a {
    display: inline !important;
    color: #777777 !important;
}

/* Lista de Serviços Individuais */
.servico li {
    display: block;
    position: relative;
    width: 70%;
    margin: 30px auto;
    background: #fefefe;
    color: black;
    border-radius: 8px;
    padding: 30px 20px;
}

.servico h2 {
    text-align: center;
    width: 100%;
}

.servico img {
    width: 175px;
    margin: 0 auto;
    display: flex;
}

.servico p {
    width: 100%;
    text-align: justify;
}

/* Alinhamento dos Cartões da Equipa Médica */
.tdsalignharcentro {
    display: flex;
    justify-content: center;
    margin: 50px 0;
    position: relative;
}

.tdsalignharcentro p {
    width: 45%;
}

.estrelas {
    display: flex;
    justify-content: center;
}

.cartao {
    width: 80%;
    margin: 10px auto;
    background: white;
    border-radius: 5px;
}

.cartao .imagem {
    width: 20%;
    padding: 10px;
    position: relative;
}

.imagem img {
    width: 160px;
    height: 300px;
}

.cartao .texto_qf {
    width: 65%;
    color: black;
    position: relative;
}

.absolute {
    position: absolute;
    margin-left: 0;
    margin-top: 30px;
    padding: 15px;
}

.absolute p {
    display: block;
    width: 100%;
}

/* Estrutura do Carrossel de Opiniões Splide */
.splide {
    width: 100%;
}

.splide__list {
    width: 98%;
}

li.splide__slide {
    margin: 0 5px;
    padding: 20px;
    border: 5px solid white;
    border-radius: 8px;
    background: whitesmoke;
    color: black;
}

li.splide__slide p {
    width: 100%;
}

li.splide__slide img {
    width: 90px;
    margin-left: 33%;
}

section.splide {
    margin: 0 auto;
    width: 100%;
    padding: 50px 0px;
}

p.estrelas img {
    width: 40px;
    margin: 0 5px;
}

/* Área de Utente e Gestão de Horários/Marcações */
.marcacao_tds {
    width: 60%;
    margin: 0 auto;
    background: white;
    color: black;
    padding: 40px;
}

.marcacao_tds li {
    font-size: 1.5em;
}

.horarios {
    margin: 15px 0;
}

span.hora {
    margin: 5px;
    padding: 5px;
    background: antiquewhite;
    border-radius: 8px;
}

.flex {
    display: flex;
    justify-content: center;
}

.uti {
    width: 70%;
    padding: 20px;
}

.uti li {
    padding: 15px 10px;
    margin: 5px 0;
    display: block;
    width: 100%;
}

.uti .ini {
    font-size: 1.5em;
}

.marcacoes {
    width: 30%;
    padding: 20px;
}

.btn_apresentacao {
    padding: 15px 10px;
    border-radius: 8px;
    margin: 5px 0;
}

.btn {
    padding: 15px 10px;
    border-radius: 8px;
    width: auto;
    background: burlywood;
    color: black;
    margin: 5px 0;
}
.btn_perfil {
    padding: 15px 10px;
    border-radius: 8px;
    display: block;
    width: 150px;
    background: burlywood;
    color: black;
    margin: 10px 0;
    text-align: center;
    cursor: pointer;
}
.mesmalinha {
    display: inline-block;
    width: auto !important;
}

.h2marcacoes {
    display: flex;
    justify-content: center;
    margin: 65px 0;
    line-height: 2.3;
}

.dentista {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.escolher {
    width: 100%;
    display: flex;
    justify-content: center;
}

.marcarmais {
    position: fixed;
    left: 0;
    top: 0;
    margin: 15% 30%;
    background: white;
    border: 1px solid black;
    padding: 20px;
    text-align: center;
    color: black;
}

.marca {
    background: rgb(255, 255, 255);
    color: black;
}

.sem {
    background: rgb(0, 0, 0);
    color: rgb(255, 255, 255);
}

.meses .mes {
    position: relative;
    float: left;
    margin: 5px;
    background: white;
    color: black;
    padding: 20px;
    width: 32%;
    font-size: 1em;
    min-height: 2065px;
}

.meses .mes .horasvalidas {
    margin: 10px 2px;
    font-size: 1em;
    padding: 4px;
    display: inline-block;
    width: 25px;
    height: 25px;
    border-radius: 20px;
}

.nao_marcar {
    display: none;
}

/* HISTÓRICO CLÍNICO E PAGINAÇÃO */
.dados_hist {
    padding: 50px 0 0 0;
    font-size: 1.5em;
}

.dados_hist li {
    display: block;
    width: 50%;
    margin: 0 auto;
}

.paginas {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100px;
}

.pag {
    float: left;
    margin: 0 7px;
    border-radius: 8px;
}

.pag a {
    padding: 8px;
    background: white;
    color: black;
}

.pag a:hover {
    background: black;
    color: white;
}

/* =========================================================================
   PARTE 4: CONSENTIMENTOS, CONTACTOS, RODAPÉ E PAINEL ADMIN
   ========================================================================= */

/* Painel de Consentimentos */
.utentes {
    display: flex;
    justify-content: center;
    min-height: 200px;
    align-items: center;
}
.utentes li {
    margin: 10px 0;
}
.consen {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 60%;
    margin: 20px auto;
    min-height: 500px;
    background: white;
    color: black;
    flex-wrap: wrap;
}
.consen h2 {
    width: 60%;
    margin: 0;
    padding-top: 50px;
    text-align: center;
}
.consen p {
    width: 100%;
    text-align: justify;
    padding: 15px 15%;
}
.ass {
    position: relative;
    width: 100%!important;
    text-align: right!important;
}
.ass::after {
   content: "";
   width: 100px;
   height: 2px;
   position: absolute;
   bottom: 5px;
   right: 140px;
   background: black;
}

.ass img {
    width: 100px;
}

/* Área de Contacto Base e Rodapé em Degradê */
.contacto h2 {
    text-align: center;
    font-size: 1em;
}

.contacto {
    display: block;
    width: 100%;
    min-height: 300px;
    padding: 50px 30px;
    font-size: 2em;
    text-align: center;
}

.contacto a {
    color: burlywood;
    text-decoration: none;
    transition: all 2s;
}
.linhacont{
    width: 60%;
    margin: 0 auto;
    height: 3px;
    background: black;
    border-radius: 15px 35px 80px 15px;
}
.contacto a:hover {
    color: white;
}
.contacto_tds{
    display: flex;
    justify-content: center;
    align-items: self-start;
    padding-top: 30px;
    height: 350px;
    width: 70%;
    margin: 0 auto;
}
.email_tds, .telefones_tds, .chat_tds{
    width: 33%;
    text-align: center;
}
.emailcon::before {
    content: "";
    position: relative;
    display: inline-block;
    width: 30px;
    height: 30px;
    background: url("../img/email.png") no-repeat;
    background-size: 30px;
    top: 10px;
    padding-right: 10px;
}

.emailcon {
    margin: 10px 0;
}

.telefone::before {
    content: "";
    position: relative;
    display: inline-block;
    width: 35px;
    height: 35px;
    background: url("../img/whats.png") no-repeat;
    background-size: 30px;
    top: 15px;
}
.mapacont iframe {
    width: 100%;
    height: 400px;
}

.pe {
    width: 100%;
    min-height: 500px;
    background: #a3a3a3;
    background: linear-gradient(179deg, rgba(163, 163, 163, 1) 0%, rgba(82, 82, 82, 1) 50%, rgba(51, 51, 51, 1) 100%);
    color: whitesmoke;
    padding: 30px 20px 0 20px;
}

.pe ul {
    width: 100%;
    position: relative;
}

.pe li {
    float: left;
    width: 25%;
    border-right: 1px solid black;
    padding: 15px 10px;
}

.pe li li {
    display: block;
    width: 100%;
    border: none !important;
    margin: 5px 0;
}

.redes img {
    width: 50px;
}

.redes li:hover img {
    position: relative;
    top: 3px;
}

.redes li {
    display: inline-block !important;
    margin: 0 5px !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 5px;
}

.pe .mapa {
    border-right: none;
    width: 50%;
}

.mapa {
    width: 45%;
}

.mapa iframe {
    width: 100%;
    height: 260px;
}

.creditos {
    padding: 15px;
    text-align: right;
    position: relative;
    right: 20px;
}

.creditos p::after {
    content: "";
    width: 185px;
    height: 2px;
    background: white;
    display: block;
    position: absolute;
    right: 125px;
    top: 59px;
}

.menu_admin {
    float: left;
    width: 30%;
    padding: 50px 15px;
    height: 100vh;
    background: #004d4d;
    border-right: 2px solid #002626;
}

.menu_admin li {
    float: left;
    width: 30%;
    height: 100px;
    background: #2c3539;
    border: 2px solid #002626;
    margin: 5px;
    border-radius: 8px;
    text-align: center;
    font-size: 1em;
    display: flex;
    justify-content: center;
    align-items: center;
    word-break: break-word;
    font-weight: bold;
}

.menu_admin li a {
    color: #ffffff !important;
}

.menu_admin li:hover {
    background: #3a444a;
}

.admin_mostrar {
    float: left;
    width: 70%;
    padding: 50px 30px;
    background: whitesmoke;
    color: black;
}

.btn_admin {
    padding: 10px;
    color: black;
}

.btn_admin:hover {
    color: tomato;
}

.recuperar {
    padding: 15px;
    display: flex;
    justify-content: center;
}

.recuperar a {
    width: auto;
    background: #006e6e;
    padding: 15px;
    border-radius: 8px;
}
.recuperar a:hover {
    background: #003333;
}
.avisos {
    display: none;
    padding: 10px 15px;
    font-size: 1.5em;
    background: tomato;
    text-align: center;
}
.recuperar_passe li {
    display: none;
    transition: all 2s;
}

.parceiros ul {
    display: flex;
    width: 70%;
    overflow-x: auto;
    scrollbar-width: none;
}

.parceiros li {
    float: left;
    min-width: 115px;
    height: 75px;
    background: white;
    color: black;
    border: 3px solid black;
    border-radius: 8px;
    margin: 0 5px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.parceiros ::-webkit-scrollbar {
    display: none;
}

/* =========================================================================
   PARTE 5: REGRAS RESPONSIVAS
   ========================================================================= */

.limpar {
    clear: both;
}

.embrulho_flex {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    padding: 50px 0;
}
/*
@media only screen and (max-width: 1200px) {
    .cabeca {
        min-height: 120px !important;
        height: auto !important;
        padding: 20px 30px !important;
        flex-wrap: wrap !important;
    }
    .logo {
        width: auto !important;
    }
    .menu {
        width: auto !important;
        font-size: 1.3em !important;
    }
    .menu ul {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 10px !important;
    }
    .menu li {
        float: none !important;
        padding: 10px 15px !important;
    }
    .menu_ent {
        width: auto !important;
        top: 0 !important;
    }
}
*/

@media only screen and (max-width: 740px) {
	#google_translate_element{
		display: none;
	}
	.google_translate_element_on{
		display: block;
	}
	.menu_admin {
    height: 940px;
}
    .menu, .menu_ent {
        display: none;
    }
    .menu_ent_movel {
        display: block;
        z-index: 99999999999;
    }
    .menu_movel {
        display: block;
        position: relative;
        position: fixed;
        padding: 100px 15px;
        background: goldenrod;
        width: 50%;
        height: 100vh;
        display: none;
        right: 0;
        top: 0;
        z-index: 999999;
    }
    .menu_movel li {
        margin: 10px 0;
        width: 100%;
        display: block;
    }
    .menu_movel ul ul{
        display: none;
    }
    .menu_movel li:hover > ul{
        display: block;
    }
    .menu_movel li:active > ul{
        display: block;
    }
    .calendario {
        display: flex;
        margin: 0 auto;
        font-size: 1.5em;
        width: 100%;
        justify-content: start;
        padding: 50px 0;
    }
    .meses_li {
        min-width: 200px;
        display: inline-block;
        height: 200px;
        background: white;
        color: black;
        margin: -5px 5px;
        text-align: center;
        overflow: hidden;
        z-index: 9999;
        position: relative;
    }
    .dias_li {
        float: left;
        position: relative;
        left: -200px;
        width: 100%;
        color: black;
        font-size: 0.5em;
        z-index: 9999;
    }
    .texto {
        padding: 0;
    }
    .pe li {
        display: block;
        width: 100%;
        border-right: none;
        border-bottom: 1px solid white;
    }
    .servicos ul {
        display: flex;
        width: 100%;
    }
    .servicos li {
        float: left;
        min-width: 300px;
        height: 350px;
        margin: 5px;
        overflow: hidden;
    }
    .sobre ul {
        display: flex;
        width: 100%;
    }
    .cartao {
        float: left;
        min-width: 163px;
        height: 250px;
        margin: 5px;
        position: relative;
        overflow: hidden;
    }
    .cartao .imagem {
        width: 100%;
        padding: 2px;
        position: relative;
    }
    .cartao img {
        height: 245px;
        width: 159px;
    }
    .imagem:hover ~ .texto_qf {
        display: block;
        position: absolute;
        background: grey;
        width: 300px;
        height: 250px;
    }
    .imagem:active ~ .texto_qf {
        display: block;
        position: absolute;
        width: 100%;
    }
    .texto_qf {
        width: 100%;
        text-align: center;
        padding: 10px;
        display: none;
    }
    .absolute {
        margin: 0px;
        padding: 0px;
        left: 0;
        top: 0;
        width: 100%;
        background: grey;
        overflow-y: auto;
    }
    .logo {
        width: 70%;
    }
    .menu_ent_movel {
        width: 30%;
        position: relative;
        display: flex;
        right: 10px;
        font-size: 2em;
        justify-content: flex-end;
    }
    .embrulho {
        padding: 0 5px;
    }
    form {
        width: 90%;
    }
    .pe .mapa {
        width: 100%;
    }
    .redes {
        min-height: 140px;
        display: flex !important;
        align-items: center;
        flex-wrap: wrap;
        padding-bottom: 40px !important;
    }
    .hora {
        display: inline-block;
        margin: 5px;
        width: 65px;
    }
    .marcacao_tds {
        width: 90%;
    }
    .meses .mes {
        width: 90%;
    }
    .meses .mes .horasvalidas {
        font-size: 0.67em;
    }
    .h2marcacoes {
        flex-wrap: wrap;
    }
    .menu_admin li {
        display: block !important;
        width: 100%;
    }
    .sobre, .servicos {
        padding: 30px 0;
    }
    .parceiros ul {
        width: 100%;
    }
    .creditos p::after {
        width: 155px;
        right: 80px;
        top: 80px;
    }
    .slides {
        height: 250px;
    }
    .embrulhofoto h1 {
        font-size: 0.5em !important;
    }
    .embrulhofoto ul {
        width: 100%;
    }
    .embrulhofoto {
        position: relative;
    }
    .embrulhofoto a {
        margin: 0 15px;
        width: 130px !important;
        font-size: 0.5em !important;
    }
    .embrulhofoto li {
        display: block;
        position: relative;
    }
    .apresentacao {
        height: 295px;
    }
    .splide__list {
        width: 96%;
    }
    
    .dados_hist li {
        width: 90%;
    }
    .utilizadore{
        display: block;
        width: 100%;
    }
    .marcacoes{
        display: block;
        width: 100%;
    }
    .flex{
        display: block;
    }
}

/* =========================================================================
   FUSÃO EXTRA
   ========================================================================= */

/* 1. Página "Sobre Nós" */
.quem-somos-container {
    color: #212529;
    line-height: 1.8;
    padding: 40px 20px;
    max-width: 1100px;
    margin: 0 auto;
}
.hero-sobre {
    text-align: center;
    padding: 50px 20px;
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    border-radius: 16px;
    margin-bottom: 40px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.hero-sobre h1 {
    font-size: 2.8rem;
    color: #212529;
    margin: 0;
    font-weight: 700;
    letter-spacing: -1px;
}
.hero-sobre h1 span { color: #0d6efd; }
.texto-historia {
    background: #ffffff;
    padding: 40px;
    border-radius: 12px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.02);
    margin-bottom: 50px;
    border-left: 5px solid #0d6efd;
}
.texto-historia p { font-size: 1.1rem; color: #4a5568; margin-bottom: 20px; }
.identidade-section {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 30px;
}
.card-identidade {
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 12px;
    padding: 40px 30px;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 10px 30px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}
.card-identidade:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(13, 110, 253, 0.15);
}
.card-identidade::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: #0d6efd;
}
.card-identidade.visao::before { background: #d4af37; }
.card-identidade.valores::before { background: #198754; }
.icone-identidade { font-size: 3rem; margin-bottom: 20px; display: inline-block; }
.card-identidade h2 { font-size: 1.6rem; margin-bottom: 15px; font-weight: 600; }
.lista-valores { list-style: none; padding: 0; text-align: left; display: inline-block; }
.lista-valores li { margin-bottom: 10px; position: relative; padding-left: 25px; }
.lista-valores li::before { content: '✓'; position: absolute; left: 0; color: #198754; font-weight: bold; }

/* 2. Páginas de Acesso (Login e Registo Modernos em Cartão) */
.entrar, .registar {
    max-width: 450px;
    margin: 60px auto;
    background: #ffffff;
    padding: 40px 30px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    color: #333333;
}
.entrar form, .registar form { width: 100% !important; padding: 0 !important; margin: 0 !important; }
.entrar input[type="email"], .entrar input[type="password"],
.registar input[type="text"], .registar input[type="email"],
.registar input[type="password"], .registar input[type="number"] {
    width: 100%; padding: 12px 15px; border: 1px solid #ced4da; border-radius: 6px; margin-bottom: 15px; color: #333333; background-color: #ffffff;
}
.entrar input:focus, .registar input:focus { border-color: #006e6e; outline: none; }
.entrar input[type="submit"], .registar input[type="submit"] {
    width: 100% !important; background-color: #006e6e; color: white !important; border: none; padding: 14px; font-size: 1.1rem; font-weight: 600; border-radius: 6px; cursor: pointer; margin: 10px 0 0 0 !important; transition: background 0.2s ease; position: static !important;
}
.entrar input[type="submit"]:hover, .registar input[type="submit"]:hover { background-color: #003333; }
.entrar .recuperar { text-align: center; margin-top: 20px; padding-top: 15px; border-top: 1px solid #eee; }
.entrar .recuperar a { color: #ffffff !important; font-weight: 500; font-size: 0.95rem; }

/* 3. Página de Recuperação de Palavra-passe */
.recuperar_passe {
    max-width: 450px; margin: 60px auto; background: #ffffff; padding: 40px 30px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); color: #333333; list-style: none !important;
}
.recuperar_passe form { width: 100% !important; padding: 0 !important; margin: 0 !important; }
.recuperar_passe input[type="email"], .recuperar_passe input[type="password"] {
    width: 100%; padding: 12px 15px; border: 1px solid #ced4da; border-radius: 6px; margin-bottom: 15px; color: #333333; background-color: #ffffff; display: block;
}
.recuperar_passe input:focus { border-color: #0d6efd; outline: none; }
.recuperar_passe input[type="submit"] {
    width: 100% !important; background-color: #0d6efd; color: white !important; border: none; padding: 14px; font-size: 1.1rem; font-weight: 600; border-radius: 6px; cursor: pointer; margin: 10px 0 0 0 !important; transition: background 0.2s ease; position: static !important;
}
.recuperar_passe input[type="submit"]:hover { background-color: #0b5ed7; }

/* 4. Caixas de Alerta Universais (Mensagens PHP e JavaScript) */
.alerta-erro {
    background-color: #f8d7da; color: #842029; padding: 12px; margin-bottom: 15px; border: 1px solid #f5c2c7; border-radius: 6px; font-size: 0.95rem; text-align: center; font-family: sans-serif;
}
.alerta-sucesso {
    background-color: #d1e7dd; color: #0f5132; padding: 12px; margin-bottom: 15px; border: 1px solid #badbcc; border-radius: 6px; font-size: 0.95rem; text-align: center; font-family: sans-serif;
}
