/* Reset Geral */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Arial', sans-serif;
}

body {
    background-color: #ffffff;
    color: #333333;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Links Superiores */
.top-legal-links {
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    padding: 10px 40px;
    font-size: 11px;
}

.top-legal-links a {
    color: #666666;
    text-decoration: underline;
}

/* Cabeçalho e Logótipo */
.main-header {
    padding: 20px 40px 0 40px;
}

.logo-container {
    display: inline-block;
    margin-bottom: 15px;
}

.brand-logo {
    max-height: 70px;
    width: auto;
    display: block;
}

/* Menu de Navegação */
.main-nav {
    border-top: 1px solid #7029b3;
    border-bottom: 1px solid #c0c0c0;
}

.main-nav ul {
    display: flex;
    list-style: none;
    max-width: 1100px;
    margin: 0 auto;
}

.main-nav li {
    flex: 1;
    text-align: center;
}

.main-nav a {
    display: block;
    padding: 12px 0;
    color: #555555;
    text-decoration: none;
    font-size: 14px;
}

.main-nav a.active {
    background-color: #eae1f0;
    font-weight: bold;
}

/* Área Central Base */
.content-wrapper {
    flex: 1;
    display: flex;
    max-width: 1100px;
    margin: 0 auto;
    width: 100%;
}

/* Estrutura de Página de Texto (Comum às páginas de informação) */
.info-page-layout {
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 30px 40px 60px 40px;
    border-left: 1px dashed #cccccc;
    border-right: 1px dashed #cccccc;
}

.page-title {
    font-size: 32px;
    font-weight: normal;
    color: #000000;
    border-bottom: 2px solid #000000;
    width: 100%;
    padding-bottom: 5px;
    margin-bottom: 35px;
}

/* --- ESTILOS DA PÁGINA INICIAL (index.html) --- */
.home-page {
    justify-content: center;
    align-items: center;
    padding: 60px 20px;
    border-left: 1px dashed #cccccc;
    border-right: 1px dashed #cccccc;
}

.info-card {
    background-color: #2b2e33;
    color: #ffffff;
    border-radius: 4px;
    padding: 35px;
    display: flex;
    width: 100%;
    max-width: 850px;
    gap: 30px;
}

.card-left { flex: 1.5; }
.card-left h2 {
    font-size: 28px;
    font-weight: normal;
    margin-bottom: 25px;
    line-height: 1.2;
}

.phone-box {
    display: flex;
    align-items: center;
    gap: 15px;
    border: 1px solid #55585d;
    padding: 10px;
    border-radius: 4px;
}

.phone-number {
    font-size: 32px;
    font-weight: bold;
    letter-spacing: 1px;
}

.phone-cost {
    font-size: 10px;
    color: #cccccc;
    line-height: 1.3;
}

.card-right {
    flex: 1;
    border-left: 1px solid #55585d;
    padding-left: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.card-right h3 {
    font-size: 24px;
    font-weight: normal;
    text-decoration: underline;
    margin-bottom: 15px;
}

.card-right p {
    font-size: 13px;
    color: #dddddd;
    margin-bottom: 5px;
}

/* --- ESTILOS DA PÁGINA DE SERVIÇOS (servicos.html) --- */
.services-intro-text { max-width: 1000px; margin-bottom: 40px; }
.services-intro-text p { font-size: 14px; line-height: 1.6; color: #333333; margin-bottom: 18px; text-align: justify; }

.pricing-grid { display: flex; width: 100%; gap: 40px; max-width: 900px; margin: 0 auto 30px auto; }
.plan-card { flex: 1; border: 1px solid #000000; background-color: #ffffff; text-align: center; padding: 20px 0; }
.plan-speed { display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 5px; }
.speed-number { font-size: 64px; font-weight: bold; color: #000000; line-height: 1; }

.info-icon {
    display: inline-flex; justify-content: center; align-items: center;
    background-color: #0d2c54; color: #ffffff; border-radius: 50%;
    width: 20px; height: 20px; font-size: 12px; font-family: serif; font-weight: bold;
}

.plan-upload { font-size: 14px; color: #444444; border-bottom: 2px solid #000000; padding-bottom: 15px; width: 85%; margin: 0 auto 15px auto; }
.plan-price { font-size: 32px; color: #000000; }
.details-link-container { width: 100%; text-align: center; margin-bottom: 40px; }
.blue-text-link { color: #ffffff; background-color: #1e5598; padding: 4px 12px; font-size: 14px; text-decoration: none; }
.blue-text-link:hover { text-decoration: underline; }

.services-footer-action { display: flex; justify-content: space-between; align-items: flex-end; width: 100%; max-width: 1000px; margin-top: 20px; gap: 40px; }
.footer-notes { flex: 1; }
.footer-notes p { font-size: 13px; color: #333333; line-height: 1.5; margin-bottom: 10px; }
.cta-button-purple { display: inline-block; background-color: #5e4ebd; color: #ffffff; padding: 12px 30px; font-size: 18px; font-weight: bold; text-decoration: none; border-radius: 4px; }
.cta-button-purple:hover { background-color: #4b3d9e; }

/* --- ESTILOS DE OUTRAS PÁGINAS INFORMATIVAS --- */
.general-text-block { max-width: 950px; width: 100%; }
.general-text-block p { font-size: 14px; line-height: 1.6; color: #333333; margin-bottom: 20px; text-align: justify; }
.general-text-block .highlight-text { font-size: 18px; color: #111111; font-weight: bold; }

/* Listas e Caixas Específicas */
.styled-box { margin-top: 30px; border: 1px solid #e0e0e0; padding: 25px; background-color: #fafafa; border-radius: 4px; width: 100%; }
.styled-box h3 { font-size: 16px; color: #000000; margin-bottom: 12px; border-bottom: 1px solid #c0c0c0; padding-bottom: 8px; }
.content-list { margin: 20px 0 20px 20px; list-style-type: square; }
.content-list li { font-size: 14px; color: #444444; margin-bottom: 8px; }

.alert-box { background-color: #f4f6f9; border-left: 4px solid #5e4ebd; padding: 15px 20px; margin: 30px 0; border-radius: 0 4px 4px 0; width: 100%; }
.alert-box p { margin-bottom: 0 !important; font-weight: bold; }
.alert-box a { color: #5e4ebd; text-decoration: underline; }

/* Menus de Links e Botões Voltar */
.vertical-links { display: flex; flex-direction: column; gap: 40px; margin: 40px 0 60px 0; }
.vertical-links a { font-size: 16px; color: #666666; text-decoration: underline; }
.center-btn-wrapper { width: 100%; display: flex; justify-content: center; }
.btn-back { display: inline-block; background-color: #5352c5; color: #ffffff; padding: 10px 35px; font-size: 16px; font-weight: bold; text-decoration: none; border-radius: 4px; }

/* Tabelas (Anexo I) */
.contract-table { width: 100%; border-collapse: collapse; margin: 20px 0 35px 0; font-size: 14px; }
.contract-table th, .contract-table td { border: 1px solid #dddddd; padding: 12px; text-align: left; }
.contract-table th { background-color: #f2f2f2; font-weight: bold; }

/* --- RODAPÉ --- */
.main-footer { background-color: #999999; padding: 20px; display: flex; justify-content: center; margin-top: auto; }
.complaints-book { display: flex; align-items: center; gap: 10px; color: #ffffff; font-size: 13px; font-weight: bold; }
.circle-icon { width: 35px; height: 35px; background-color: #ffffff; border-radius: 50%; }

/* --- RESPONSIVIDADE MOBILE --- */
@media (max-width: 768px) {
    .main-header, .info-page-layout { padding: 15px; }
    .main-nav ul { flex-direction: column; }
    .info-card { flex-direction: column; padding: 20px; }
    .card-right { border-left: none; border-top: 1px solid #55585d; padding-left: 0; padding-top: 20px; }
    .phone-box { flex-direction: column; text-align: center; }
    .pricing-grid { flex-direction: column; gap: 20px; }
    .services-footer-action { flex-direction: column; align-items: center; gap: 25px; }
    .cta-button-purple { width: 100%; text-align: center; }
}
