/* =================== RESET =================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    width: 100%;
    min-height: 100%;
    font-family: Arial, Helvetica, sans-serif;
    background: url("../im/bg.jpg") no-repeat center center fixed;
    background-size: cover;
    color: #222;
    overflow-y: auto; /* Scroll vertical para todo o layout */
}

/* =================== TABELA LOGO =================== */
.tbl-topo {
    width: 100%;
    height: auto; /* altura ajusta-se à imagem */
    margin: 0;
    padding: 0;
    border-radius: 0; /* sem borda arredondada */
}

.tbl-topo td {
    text-align: center;
    vertical-align: top; /* logo encostada no topo */
    padding: 0;
}

.logo-topo {
    width: 100%;  /* ocupa toda a largura da tela */
    height: auto; /* mantém proporção */
    max-height: 100vh; /* não ultrapassa altura da tela inicial */
    display: block;
    margin: 0; /* sem margens */
}

/* =================== BOTÃO MODO CLARO/ESCURO =================== */
.theme-switch {
    text-align: right;
    padding: 10px;
}

.theme-btn {
    background: #222;
    color: #fff;
    border: none;
    padding: 10px 15px;
    font-size: 22px;
    border-radius: 8px;
    cursor: pointer;
    transition: 0.3s;
}

.theme-btn:hover {
    background: #555;
}

/* =================== MENU =================== */
.tbl-menu {
    width: 100%;
    background: #111;
    border-radius: 15px;
    margin-bottom: 10px;
}

.tbl-menu td {
    text-align: center;
    vertical-align: middle;
}

.menu {
    list-style: none;
    margin: 0;
    padding: 15px 0;
}

.menu li {
    display: inline-block;
    margin: 0 20px;
}

.menu a {
    color: #fff;
    text-decoration: none;
    font-size: clamp(16px, 1.8vw, 22px);
    font-weight: bold;
    transition: 0.3s;
}

.menu a:hover {
    color: #ffcc00;
}

/* Mobile */
.menu-mobile-btn {
    display: none;
    position: absolute;
    left: 10px;
    top: 8px;
    font-size: 26px;
    background: transparent;
    border: none;
    color: white;
    cursor: pointer;
}

@media (max-width: 750px) {
    .menu li {
        display: block;
        margin: 10px 0;
    }
    .menu {
        display: none;
        background: #111;
        padding: 20px 0;
    }
    .menu.show {
        display: block;
    }
    .menu-mobile-btn {
        display: block;
    }
}

/* =================== HERO =================== */
.hero {
    padding: clamp(20px, 4vw, 60px);
    background: #ffffffcc;
    text-align: center;
    border-radius: 15px;
    margin-bottom: 10px;
}

.hero h1 {
    font-size: clamp(24px, 5vw, 48px);
    margin-bottom: 5px;
}

.hero h2 {
    font-size: clamp(16px, 3vw, 24px);
    color: #444;
}

.hero p {
    font-size: clamp(14px, 2vw, 20px);
}

/* =================== PLAYER =================== */
.tbl-player {
    width: 100%;
    background: #eeeeeecc;
    padding: 20px;
    border-radius: 15px;
    margin-bottom: 10px;
}

.radio-player {
    width: 100%;
    height: 90px;
}

/* =================== PRAYER =================== */
.tbl-prayer {
    width: 100%;
    background: #ffffffdd;
    padding: 30px;
    border-radius: 15px;
    margin-bottom: 10px;
}

.section-title {
    text-align: center;
    font-size: clamp(20px, 2.5vw, 28px);
    margin: 20px 0;
}

.tbl-prayer p {
    font-size: clamp(14px, 2vw, 20px);
    line-height: 1.4;
    margin: 5px 0;
    text-align: left;
}

/* =================== CATEGORIAS =================== */
.categorias-section {
    padding: clamp(20px, 3vw, 40px);
    background: #fafafaee;
    border-radius: 15px;
    margin-bottom: 10px;
}

.categorias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 20px;
}

.categoria {
    background: #222;
    color: white;
    padding: 20px;
    text-align: center;
    border-radius: 8px;
    font-size: clamp(16px, 2vw, 20px);
    transition: transform 0.3s, background 0.3s;
    cursor: pointer;
}

.categoria:hover {
    transform: scale(1.05);
    background: #333;
}

/* =================== CONTATO =================== */
.contato {
    padding: clamp(20px, 3vw, 40px);
    background: #ffffffdd;
    text-align: center;
    border-radius: 15px;
    margin-bottom: 10px;
}

.email a {
    font-size: clamp(16px, 2vw, 22px);
    color: #fff;
    background: #0d47a1;
    padding: 12px 25px;
    border-radius: 8px;
    font-weight: bold;
    text-decoration: none;
    display: inline-block;
    transition: 0.3s;
}

.email a:hover {
    background: #1565c0;
    transform: scale(1.05);
}

/* =================== RODAPÉ =================== */
.footer {
    background: #111;
    color: white;
    padding: 20px;
    text-align: center;
    border-radius: 15px;
    margin-bottom: 10px;
}

/* =================== MODO ESCURO =================== */
body.dark {
    background: #000 !important;
    color: #e6e6e6;
}

body.dark .tbl-prayer,
body.dark .categorias-section,
body.dark .contato,
body.dark .tbl-player,
body.dark .hero,
body.dark .tbl-menu {
    background: #222 !important;
}

body.dark .categoria {
    background: #333;
    color: #fff;
}

body.dark .categoria:hover {
    background: #444;
}

body.dark .footer {
    background: #000;
    color: #e6e6e6;
}

body.dark .menu a {
    color: #ddd;
}

body.dark .menu a:hover {
    color: #ffcc00;
}

body.dark .email a {
    background: #1565c0;
}

body.dark .email a:hover {
    background: #0d47a1;
}
