/* Reset e Variáveis CSS */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        :root {
            --azul-coep: #003366;
            --laranja-coep: #ff6600;
            --cinza-claro: #f8f9fa;
            --cinza-texto: #555555;
            --branco: #ffffff;
            --preto: #333333;
        }
        
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.6;
            color: var(--preto);
            background-color: var(--cinza-claro);
        }
        
        /* Layout Principal */
        .container {
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 15px;
        }
        
        /* Top Bar */
        .top-bar {
            background-color: var(--azul-coep);
            color: var(--branco);
            padding: 10px 0;
            font-size: 14px;
        }
        
        .top-bar-content {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .contact-info {
            display: flex;
            gap: 25px;
        }
        
        .contact-info a {
            color: var(--branco);
            text-decoration: none;
            display: flex;
            align-items: center;
            gap: 8px;
            transition: opacity 0.3s;
        }
        
        .contact-info a:hover {
            opacity: 0.8;
        }
        
        /* Header */
        header {
            padding: 15px 0;
            background-color: var(--branco);
            position: sticky;
            top: 0;
            z-index: 1000;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .header-content {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .logo img {
            height: 65px;
            transition: transform 0.3s;
        }
        
        .logo img:hover {
            transform: scale(1.05);
        }
        
        /* Menu de Navegação */
        nav ul {
            display: flex;
            list-style: none;
        }
        
        nav ul li {
            margin-left: 10px;
        }
        
        nav ul li a {
            display: block;
            padding: 10px 15px;
            color: var(--preto);
            text-decoration: none;
            font-weight: 600;
            border-radius: 4px;
            transition: all 0.3s;
        }
        
        nav ul li a:hover {
            background-color: var(--azul-coep);
            color: var(--branco);
        }
        
        /* Banner Principal */
        .banner {
            background: linear-gradient(rgba(0,51,102,0.85), rgba(0,51,102,0.85)), 
                        url('https://images.unsplash.com/photo-1521791055366-0d553872125f?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80') no-repeat center center/cover;
            color: var(--branco);
            padding: 100px 0;
            text-align: center;
        }
        
        .banner h1 {
            font-size: 2.5rem;
            margin-bottom: 20px;
            font-weight: 700;
        }
        
        .banner p {
            font-size: 1.2rem;
            max-width: 800px;
            margin: 0 auto 30px;
        }
        
        .btn {
            display: inline-block;
            background-color: var(--laranja-coep);
            color: var(--branco);
            padding: 12px 30px;
            border-radius: 4px;
            text-decoration: none;
            font-weight: 600;
            transition: all 0.3s;
            border: 2px solid transparent;
        }
        
        .btn:hover {
            background-color: transparent;
            border-color: var(--branco);
            transform: translateY(-3px);
        }
        
        /* Seção de Ação */
        .action-section {
            padding: 60px 0;
            background-color: var(--cinza-claro);
        }
        
        .section-title {
            text-align: center;
            margin-bottom: 40px;
            color: var(--azul-coep);
        }
        
        .section-title h2 {
            font-size: 2rem;
            margin-bottom: 15px;
        }
        
        .action-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 30px;
        }
        
        .action-card {
            background: var(--branco);
            border-radius: 8px;
            padding: 30px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.05);
            transition: all 0.4s;
        }
        
        .action-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 15px 30px rgba(0,0,0,0.1);
        }
        
        .action-card h2 {
            color: var(--azul-coep);
            font-size: 1.4rem;
            margin-bottom: 15px;
        }
        
        .action-card p {
            color: var(--cinza-texto);
            margin-bottom: 20px;
        }
        
        .action-btn {
            display: inline-block;
            padding: 10px 25px;
            background-color: var(--laranja-coep);
            color: var(--branco);
            text-decoration: none;
            border-radius: 4px;
            font-weight: 600;
            transition: all 0.3s;
        }
        
        .action-btn:hover {
            background-color: var(--azul-coep);
            transform: translateY(-3px);
        }
        
        .social-links {
            margin-top: 20px;
        }
        
        .social-links a {
            display: inline-block;
            width: 40px;
            height: 40px;
            background-color: var(--azul-coep);
            color: var(--branco);
            border-radius: 50%;
            text-align: center;
            line-height: 40px;
            margin-right: 10px;
            transition: all 0.3s;
        }
        
        .social-links a:hover {
            background-color: var(--laranja-coep);
            transform: translateY(-3px);
        }
        
        /* Páginas de Cadastro */
        .cadastro-header {
            background-color: var(--azul-coep);
            color: var(--branco);
            padding: 60px 0;
            text-align: center;
            margin-bottom: 40px;
        }
        
        .cadastro-container {
            display: flex;
            justify-content: center;
            gap: 30px;
            margin-bottom: 60px;
        }
        
        .cadastro-form {
            width: 100%;
            max-width: 800px;
            background: var(--branco);
            padding: 40px;
            border-radius: 8px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.05);
        }
        
        /* Estilos comuns para formulários */
        .form-section {
            margin-bottom: 30px;
        }
        
        .form-section h2 {
            color: var(--azul-coep);
            font-size: 1.5rem;
            margin-bottom: 20px;
            padding-bottom: 10px;
            border-bottom: 2px solid var(--laranja-coep);
        }
        
        .form-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 20px;
        }
        
        .form-group {
            margin-bottom: 15px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 8px;
            font-weight: 600;
            color: var(--azul-coep);
            font-size: 0.95rem;
        }
        
        .form-group input,
        .form-group select,
        .form-group textarea {
            width: 100%;
            padding: 12px 15px;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 1rem;
            transition: all 0.3s;
        }
        
        .form-group input:focus,
        .form-group select:focus,
        .form-group textarea:focus {
            border-color: var(--azul-coep);
            outline: none;
            box-shadow: 0 0 0 3px rgba(0,51,102,0.1);
        }
        
        .file-upload {
            border: 2px dashed #ddd;
            padding: 20px;
            text-align: center;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.3s;
            background-color: rgba(0,51,102,0.03);
        }
        
        .file-upload:hover {
            border-color: var(--azul-coep);
            background-color: rgba(0,51,102,0.05);
        }
        
        .file-upload i {
            font-size: 2rem;
            color: var(--azul-coep);
            margin-bottom: 10px;
        }
        
        .file-upload p {
            color: var(--cinza-texto);
            margin-bottom: 5px;
        }
        
        .file-upload small {
            color: #999;
            font-size: 0.85rem;
        }
        
        .file-upload input[type="file"] {
            display: none;
        }
        
        .interests-container {
            border: 1px solid #ddd;
            border-radius: 6px;
            padding: 10px;
            max-height: 200px;
            overflow-y: auto;
        }
        
        .interests-container select {
            border: none;
            width: 100%;
            height: auto;
        }
        
        .interests-container option {
            padding: 8px 12px;
            border-bottom: 1px solid #eee;
        }
        
        .interests-container option:last-child {
            border-bottom: none;
        }
        
        .terms-group {
            display: flex;
            align-items: center;
            margin-top: 30px;
        }
        
        .terms-group input {
            width: auto;
            margin-right: 10px;
        }
        
        .terms-group label {
            font-weight: normal;
            color: var(--preto);
        }
        
        .terms-group a {
            color: var(--laranja-coep);
            text-decoration: none;
            font-weight: 600;
        }
        
        .terms-group a:hover {
            text-decoration: underline;
        }
        
        .btn-submit {
            width: 100%;
            padding: 14px;
            background-color: var(--laranja-coep);
            color: var(--branco);
            border: none;
            border-radius: 6px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
            margin-top: 20px;
        }
        
        .btn-submit:hover {
            background-color: #e65c00;
        }
        
        /* Página de Login */
        .login-container {
            max-width: 500px;
            margin: 60px auto;
            padding: 40px;
            background: var(--branco);
            border-radius: 8px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.05);
        }
        
        .login-header {
            text-align: center;
            margin-bottom: 30px;
        }
        
        .login-header h1 {
            color: var(--azul-coep);
            margin-bottom: 10px;
        }
        
        .btn-login {
            width: 100%;
            padding: 14px;
            background-color: var(--laranja-coep);
            color: var(--branco);
            border: none;
            border-radius: 4px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
        }
        
        .btn-login:hover {
            background-color: #e65c00;
        }
        
        /* Páginas Institucionais */
        .institucional-content {
            padding: 60px 0;
        }
        
        .institucional-content h1 {
            color: var(--azul-coep);
            margin-bottom: 30px;
            text-align: center;
        }
        
        .institucional-content p {
            margin-bottom: 20px;
            line-height: 1.8;
        }
        
        /* Página de Perfil */
        .perfil-header {
            background-color: var(--azul-coep);
            color: var(--branco);
            padding: 60px 0;
            text-align: center;
            margin-bottom: 40px;
        }
        
        .perfil-container {
            display: flex;
            justify-content: center;
            gap: 30px;
            margin-bottom: 60px;
        }
        
        .perfil-sidebar {
            width: 250px;
            background: var(--branco);
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.05);
        }
        
        .perfil-content {
            flex: 1;
            max-width: 800px;
            background: var(--branco);
            padding: 40px;
            border-radius: 8px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.05);
        }
        
        .perfil-avatar {
            text-align: center;
            margin-bottom: 20px;
        }
        
        .perfil-avatar img {
            width: 120px;
            height: 120px;
            border-radius: 50%;
            object-fit: cover;
            border: 4px solid var(--laranja-coep);
        }
        
        .perfil-menu {
            list-style: none;
        }
        
        .perfil-menu li {
            margin-bottom: 10px;
        }
        
        .perfil-menu a {
            display: block;
            padding: 10px;
            color: var(--preto);
            text-decoration: none;
            border-radius: 4px;
            transition: all 0.3s;
        }
        
        .perfil-menu a:hover,
        .perfil-menu a.active {
            background-color: var(--azul-coep);
            color: var(--branco);
        }
        
        /* Página de Vagas */
        .vaga-card {
            background: white;
            border-radius: 8px;
            padding: 25px;
            margin-bottom: 20px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .vaga-tipo {
            color: white;
            padding: 5px 10px;
            border-radius: 20px;
            font-size: 0.8rem;
        }
        
        /* Modal de Candidatura */
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.5);
            z-index: 1000;
            justify-content: center;
            align-items: center;
        }
        
        .modal-content {
            background: white;
            padding: 30px;
            border-radius: 8px;
            max-width: 600px;
            width: 90%;
            max-height: 90vh;
            overflow-y: auto;
        }
        
        /* Rodapé */
        footer {
            background-color: var(--azul-coep);
            color: var(--branco);
            padding: 60px 0 30px;
            margin-top: 50px;
        }
        
        .footer-content {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 40px;
            margin-bottom: 40px;
        }
        
        .footer-column h3 {
            font-size: 1.2rem;
            margin-bottom: 20px;
            position: relative;
            padding-bottom: 10px;
        }
        
        .footer-column h3::after {
            content: '';
            position: absolute;
            left: 0;
            bottom: 0;
            width: 40px;
            height: 3px;
            background-color: var(--laranja-coep);
        }
        
        .footer-links {
            list-style: none;
        }
        
        .footer-links li {
            margin-bottom: 12px;
        }
        
        .footer-links a {
            color: #cccccc;
            text-decoration: none;
            transition: all 0.3s;
        }
        
        .footer-links a:hover {
            color: var(--laranja-coep);
        }
        
        .footer-contact li {
            margin-bottom: 15px;
            display: flex;
            align-items: flex-start;
            gap: 10px;
        }
        
        .copyright {
            text-align: center;
            padding-top: 30px;
            border-top: 1px solid rgba(255,255,255,0.1);
            color: #aaaaaa;
            font-size: 0.9rem;
        }
        
        /* Estilos específicos para a página de empresas */
        .calculator-result {
            margin-top: 20px;
            padding: 15px;
            background-color: #f8f9fa;
            border-radius: 6px;
            display: none;
        }
        
        .calculator-result h3 {
            color: var(--azul-coep);
            margin-bottom: 10px;
        }
        
        /* Estilos para a mensagem de confirmação de email */
        #mensagem-confirmacao {
            display: none;
            margin-top: 20px;
            padding: 15px;
            background-color: #d4edda;
            color: #155724;
            border-radius: 4px;
            text-align: center;
            border: 1px solid #c3e6cb;
            animation: fadeIn 0.5s ease-in-out;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        /* Responsividade */
        @media (max-width: 1024px) {
            .action-cards, .footer-content {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .perfil-container {
                flex-direction: column;
            }
            
            .perfil-sidebar {
                width: 100%;
            }
        }
        
        @media (max-width: 768px) {
            .header-content {
                flex-direction: column;
                gap: 20px;
            }
            
            nav ul {
                flex-wrap: wrap;
                justify-content: center;
            }
            
            .cadastro-container {
                flex-direction: column;
            }
            
            .form-grid {
                grid-template-columns: 1fr;
            }
        }
        
        @media (max-width: 576px) {
            .top-bar-content {
                flex-direction: column;
                gap: 10px;
                text-align: center;
            }
            
            .contact-info {
                flex-direction: column;
                gap: 10px;
                align-items: center;
            }
            
            .action-cards, .footer-content {
                grid-template-columns: 1fr;
            }
            
            .banner h1 {
                font-size: 2rem;
            }
        }

/* Aperfeiçoamentos da versão moderna */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  --azul-coep: #083b66;
  --laranja-coep: #f47b20;
  --cinza-claro: #f4f7f9;
  --cinza-texto: #52616d;
  --branco: #ffffff;
  --preto: #17242e;
  --azul-profundo: #052d4e;
  --azul-claro: #dff2f7;
  --verde: #1a9275;
  --borda: #dce5ea;
  --sombra: 0 18px 50px rgba(5, 45, 78, .10);
  --page-control-radius: 12px;
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Manrope', sans-serif;
  background: #f7f9fa;
  color: var(--preto);
  letter-spacing: -.01em;
}

.container { max-width: 1240px; padding-inline: 24px; }

.top-bar {
  padding: 9px 0;
  background: var(--azul-profundo);
  font-size: 12px;
  letter-spacing: .02em;
}

.company-name { font-weight: 700; opacity: .75; }
.contact-info { gap: 22px; }
.contact-info i { color: #ff9a4d; }

header {
  top: 0;
  padding: 11px 0;
  border-bottom: 1px solid rgba(8, 59, 102, .08);
  box-shadow: 0 10px 35px rgba(5, 45, 78, .06);
}

.logo img { width: 188px; height: 62px; object-fit: contain; }

nav ul { align-items: center; gap: 2px; }
nav ul li { margin-left: 0; }
nav ul li a {
  padding: 10px 11px;
  border-radius: 999px;
  color: #263946;
  font-size: 13px;
  font-weight: 700;
}
nav ul li a:hover,
nav ul li a:focus-visible {
  background: #e9f3f6;
  color: var(--azul-coep);
  outline: none;
}

nav ul li a.active,
nav ul li a[aria-current="page"] {
  background: #fff0e4;
  color: #d65f08;
}

.banner {
  position: relative;
  overflow: hidden;
  min-height: 610px;
  padding: 132px 0 120px;
  display: grid;
  place-items: center;
  text-align: left;
  background:
    linear-gradient(90deg, rgba(5, 38, 66, .95) 0%, rgba(5, 45, 78, .83) 48%, rgba(5, 45, 78, .27) 100%),
    url('https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1800&q=88') center 40%/cover no-repeat;
}

.banner::before {
  content: 'DESDE 1998 • ESPÍRITO SANTO';
  display: inline-flex;
  position: absolute;
  top: 85px;
  left: max(24px, calc((100vw - 1192px) / 2));
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  color: #d9eef3;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
}

.banner .container { width: 100%; }
.banner h1 {
  max-width: 760px;
  margin: 0 0 24px;
  font-size: clamp(42px, 5vw, 72px);
  line-height: 1.02;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.banner p {
  max-width: 690px;
  margin: 0 0 36px;
  color: #d8e5ec;
  font-size: 18px;
  line-height: 1.7;
}

.btn, .action-btn, .btn-submit, .btn-login {
  border-radius: var(--page-control-radius);
  box-shadow: 0 10px 25px rgba(244, 123, 32, .22);
  font-weight: 800;
}
.btn { padding: 15px 27px; }
.btn::after { content: '  →'; }
.btn:hover { background: #ff8b32; border-color: #ff8b32; transform: translateY(-2px); }

.action-section { padding: 92px 0; }
.section-title { margin-bottom: 48px; }
.section-title h2 {
  margin-bottom: 12px;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.12;
  letter-spacing: -.04em;
}
.section-title p { color: var(--cinza-texto); font-size: 17px; }

.action-cards { gap: 22px; }
.action-card {
  position: relative;
  overflow: hidden;
  min-height: 310px;
  padding: 34px;
  border: 1px solid var(--borda);
  border-radius: 22px;
  box-shadow: 0 8px 25px rgba(5, 45, 78, .05);
}
.action-card::before {
  content: '01';
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 32px;
  border-radius: 14px;
  background: #e6f1f5;
  color: var(--azul-coep);
  font-weight: 800;
}
.action-card:nth-child(2)::before { content: '02'; background: #fff0e4; color: #bd5709; }
.action-card:nth-child(3)::before { content: '03'; background: #e3f4ef; color: #14745e; }
.action-card:hover { transform: translateY(-7px); border-color: transparent; box-shadow: var(--sombra); }
.action-card h2 { font-size: 22px; letter-spacing: -.025em; }
.action-card p { line-height: 1.75; }
.action-btn { padding: 11px 20px; font-size: 13px; }
.action-btn:hover { transform: translateY(-2px); }

#home-page .action-section:nth-of-type(3) { position: relative; }
#home-page .action-section:nth-of-type(3) .container > div:last-child {
  max-width: 920px !important;
  padding: 44px;
  border: 1px solid var(--borda);
  border-radius: 24px;
  background: linear-gradient(135deg, #f8fbfc, #eef6f7);
}

.cadastro-header, .perfil-header {
  position: relative;
  overflow: hidden;
  padding: 78px 0;
  background: linear-gradient(125deg, var(--azul-profundo), #0b5278);
  margin-bottom: 48px;
}
.cadastro-header::after, .perfil-header::after {
  content: '';
  position: absolute;
  width: 320px;
  height: 320px;
  right: -80px;
  top: -170px;
  border: 70px solid rgba(255,255,255,.05);
  border-radius: 50%;
}
.cadastro-header h1, .perfil-header h1 { font-size: clamp(34px, 4vw, 52px); letter-spacing: -.04em; }
.cadastro-header p, .perfil-header p { color: #d8e8ed; margin-top: 10px; }

.cadastro-form, .login-container, .perfil-sidebar, .perfil-content, .vaga-card, .modal-content {
  border: 1px solid var(--borda);
  border-radius: 22px;
  box-shadow: var(--sombra);
}
.cadastro-form, .perfil-content { padding: 44px; }
.form-section h2 { border-bottom: 1px solid var(--borda); font-size: 20px; }
.form-section h2 i { color: var(--laranja-coep); margin-right: 8px; }
.form-group label { color: #344b5b; }
.form-group input, .form-group select, .form-group textarea {
  min-height: 48px;
  border: 1px solid #cfdae0;
  border-radius: 12px;
  background: #fbfcfd;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  background: white;
  border-color: #327a9b;
  box-shadow: 0 0 0 4px rgba(50, 122, 155, .12);
}
.file-upload, .interests-container { border-radius: 14px; }
.btn-submit, .btn-login { min-height: 50px; font-size: 14px; }

.vaga-card { padding: 28px; transition: transform .25s ease, box-shadow .25s ease; }
.vaga-card:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.vaga-tipo { font-weight: 800; letter-spacing: .02em; }

footer {
  margin-top: 80px;
  padding: 70px 0 28px;
  background: #042a49;
}
footer .footer-content {
  display: grid !important;
  grid-template-columns: 1.35fr .65fr !important;
  align-items: start !important;
  gap: 64px;
}
footer .footer-column { max-width: none !important; padding-right: 0 !important; }
footer .footer-contact span { white-space: normal !important; line-height: 1.6; }
footer img { border: 0 !important; min-height: 190px; object-fit: cover; background: #0d3b58; }
.copyright { color: #91a9b8; }

*:focus-visible { outline: 3px solid rgba(244,123,32,.5); outline-offset: 3px; }

@media (max-width: 1024px) {
  .header-content { align-items: flex-start; gap: 10px; }
  nav { width: 100%; overflow-x: auto; padding-bottom: 4px; }
  nav ul { width: max-content; flex-wrap: nowrap; }
  .banner { min-height: 570px; }
}

@media (max-width: 768px) {
  .container { padding-inline: 18px; }
  .top-bar .company-name { display: none; }
  .top-bar-content { justify-content: center; }
  .contact-info { width: 100%; justify-content: space-between; }
  header { position: relative; }
  .header-content { flex-direction: column; align-items: stretch; gap: 8px; }
  .logo { text-align: center; }
  .logo img { width: 165px; height: 55px; }
  nav { margin-inline: -18px; width: calc(100% + 36px); padding-inline: 18px; }
  .banner { min-height: 540px; padding: 110px 0 80px; }
  .banner::before { top: 64px; left: 18px; }
  .banner h1 { font-size: clamp(38px, 11vw, 54px); }
  .banner p { font-size: 16px; }
  .action-section { padding: 66px 0; }
  .action-cards { grid-template-columns: 1fr; }
  .action-card { min-height: 280px; }
  .cadastro-form, .perfil-content { padding: 25px; }
  #home-page .action-section:nth-of-type(3) .container > div:last-child { padding: 27px; }
  footer .footer-content { grid-template-columns: 1fr !important; gap: 36px; }
}

@media (max-width: 520px) {
  .contact-info a:first-child { display: none; }
  .contact-info { justify-content: center; }
  .form-grid { grid-template-columns: 1fr; }
  .form-group[style*='grid-column'] { grid-column: auto !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

.page-loading,
.page-error {
  min-height: 48vh;
  display: grid;
  place-content: center;
  gap: 14px;
  padding: 60px 24px;
  text-align: center;
  color: var(--cinza-texto);
}

.page-loading::before {
  content: '';
  width: 38px;
  height: 38px;
  margin: 0 auto;
  border: 4px solid #dce8ed;
  border-top-color: var(--laranja-coep);
  border-radius: 50%;
  animation: page-spin .75s linear infinite;
}

.page-error h1 { color: var(--azul-coep); }
.page-error .action-btn { border: 0; cursor: pointer; }

@keyframes page-spin { to { transform: rotate(360deg); } }

/* Controles compartilhados: Vagas e Legislação */
#conteudo-principal[data-page="vagas-page"] .filtros-vagas .form-control,
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao .form-control {
  width: 100%;
  min-height: 48px;
  padding: 12px 15px;
  border: 1px solid #cfdae0;
  border-radius: var(--page-control-radius);
  background: #fbfcfd;
  color: var(--preto);
  font: inherit;
  transition: border-color .3s, box-shadow .3s, background-color .3s;
}

#conteudo-principal[data-page="vagas-page"] .filtros-vagas .form-control:focus,
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao .form-control:focus {
  outline: none;
  background: var(--branco);
  border-color: #327a9b;
  box-shadow: 0 0 0 4px rgba(50, 122, 155, .12);
}

#conteudo-principal[data-page="vagas-page"] button,
#conteudo-principal[data-page="vagas-page"] .action-btn,
#conteudo-principal[data-page="vagas-page"] .lista-vagas nav a,
#conteudo-principal[data-page="legislacao-page"] button,
#conteudo-principal[data-page="legislacao-page"] .action-btn {
  appearance: none;
  border: 0;
  border-radius: var(--page-control-radius);
}

#conteudo-principal[data-page="vagas-page"] .filtros-vagas button,
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao button {
  height: 48px;
  min-height: 48px;
}

#conteudo-principal[data-page="legislacao-page"] .legislacao-item .action-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 42px;
  min-height: 42px;
  padding: 0 20px;
  font: 800 13px/1 'Manrope', sans-serif;
  vertical-align: middle;
}

#conteudo-principal[data-page="legislacao-page"] .legislacao-item a.action-btn {
  width: 168px;
}

#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child {
  column-gap: 36px;
  row-gap: 22px;
}

#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child > div:first-child {
  min-width: 0 !important;
}

#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child > div:nth-child(2) {
  display: flex;
  flex: 0 0 auto;
  align-self: center;
  align-items: center;
  gap: 12px;
  margin-top: 0 !important;
}

#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child > div:nth-child(2) .action-btn {
  margin-left: 0 !important;
}

@media (max-width: 768px) {
  #conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child > div:nth-child(2) {
    width: 100%;
    flex-wrap: wrap;
  }
}

/* Mantém as ações dos cards de Escola alinhadas na base */
#conteudo-principal[data-page="escola-page"] .action-card,
#conteudo-principal[data-page="estudante-page"] .action-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
}

#conteudo-principal[data-page="escola-page"] .action-card .action-btn,
#conteudo-principal[data-page="estudante-page"] .action-card .action-btn {
  margin-top: auto;
}

/* Tipografia do campo de mensagem da Empresa */
#conteudo-principal[data-page="empresa-page"] #empresa-mensagem,
#modal-candidatura #mensagem-candidatura {
  font-family: 'Manrope', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
}

#conteudo-principal[data-page="empresa-page"] #empresa-mensagem::placeholder,
#modal-candidatura #mensagem-candidatura::placeholder {
  font-family: 'Manrope', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  opacity: .72;
}

#conteudo-principal[data-page="empresa-page"] .btn-calcular-cota {
  width: auto;
  min-height: 42px;
  height: 42px;
  padding-inline: 28px;
  margin-top: 4px;
}

.viacep-status {
  display: block;
  min-height: 18px;
  margin-top: 6px;
  color: var(--cinza-texto);
  font-size: .8rem;
}

.viacep-status[data-tipo="carregando"] { color: var(--azul-coep); }
.viacep-status[data-tipo="sucesso"] { color: var(--verde); }
.viacep-status[data-tipo="erro"] { color: #b42318; }

@media (max-width: 768px) {
  #conteudo-principal[data-page="empresa-page"] .btn-calcular-cota {
    width: 100%;
  }
}

/* Menu hambúrguer */
.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: #edf4f6;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: var(--azul-coep);
  transition: transform .25s ease, opacity .2s ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 768px) {
  header {
    position: sticky;
    top: 0;
    z-index: 1000;
  }

  header .container { position: relative; }

  header .header-content {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }

  header .logo { margin-right: auto; text-align: left; }
  .menu-toggle { display: flex; flex: 0 0 auto; }

  header nav {
    position: absolute;
    top: calc(100% + 11px);
    left: 18px;
    right: 18px;
    width: auto;
    margin: 0;
    padding: 8px;
    overflow: hidden;
    border: 1px solid var(--borda);
    border-radius: 16px;
    background: var(--branco);
    box-shadow: 0 18px 45px rgba(5, 45, 78, .16);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  }

  header nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  header nav ul,
  header nav .main-menu {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 3px;
  }

  header nav ul li { width: 100%; }

  header nav ul li a {
    width: 100%;
    padding: 13px 15px;
    border-radius: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-toggle span,
  header nav { transition: none; }
}

/* Placeholders do Cadastro de Estudante */
#conteudo-principal[data-page="cadastro-page"] .form-group input::placeholder,
#conteudo-principal[data-page="cadastro-page"] .form-group textarea::placeholder,
#conteudo-principal[data-page="cadastro-page"] .select2-search__field::placeholder {
  font-family: 'Manrope', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  opacity: .72;
}

/* Select2 reutilizável com o visual dos inputs do site */
.select2-container { width: 100% !important; font-family: 'Manrope', sans-serif; }

.select2-container--default .select2-selection--multiple {
  height: 48px;
  min-height: 48px;
  padding: 5px 8px;
  border: 1px solid #cfdae0;
  border-radius: var(--page-control-radius);
  background: #fbfcfd;
  transition: border-color .3s, box-shadow .3s, background-color .3s;
}

.select2-container--default .select2-selection--multiple:has(.select2-selection__choice) {
  height: auto;
}

.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple {
  border-color: #327a9b;
  background: var(--branco);
  box-shadow: 0 0 0 4px rgba(50, 122, 155, .12);
}

.select2-container--default .select2-selection--multiple .select2-selection__rendered {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  padding: 0;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin: 0;
  padding: 4px 10px 4px 28px;
  border: 0;
  border-radius: 8px;
  background: #e6f1f5;
  color: var(--azul-coep);
  font-size: .86rem;
  font-weight: 700;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
  height: 100%;
  padding-inline: 8px;
  border: 0;
  border-right: 1px solid rgba(8, 59, 102, .12);
  color: var(--azul-coep);
}

.select2-container--default .select2-search--inline .select2-search__field {
  height: 32px;
  margin: 0;
  padding: 5px 3px;
  color: var(--preto);
  font-family: 'Manrope', sans-serif;
  font-size: 1rem;
}

.select2-dropdown {
  overflow: hidden;
  margin-top: 6px;
  border: 1px solid var(--borda);
  border-radius: var(--page-control-radius) !important;
  background: var(--branco);
  box-shadow: var(--sombra);
}

.select2-container--default .select2-results__option {
  padding: 11px 14px;
  font-family: 'Manrope', sans-serif;
  font-size: .92rem;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--azul-coep);
}

.select2-container--default .select2-results__option[aria-selected="true"] {
  background: #e6f1f5;
  color: var(--azul-coep);
}

/* Grade dos filtros de Vagas */
#conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: end;
  gap: 15px;
  width: 100%;
}

#conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid .form-group,
#conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid .form-control,
#conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid button {
  width: 100%;
}

@media (max-width: 900px) {
  #conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 576px) {
  #conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid {
    grid-template-columns: 1fr;
  }
}

/* Home — direção visual sofisticada */
#conteudo-principal[data-page="home-page"] {
  overflow: hidden;
  background: #f7f9fa;
}

.home-hero {
  position: relative;
  padding: 72px 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 10% 10%, rgba(27, 126, 157, .26), transparent 30%),
    linear-gradient(135deg, #032844 0%, #073d63 58%, #07516e 100%);
  color: var(--branco);
}

.home-hero::after {
  content: '';
  position: absolute;
  right: -140px;
  bottom: -280px;
  width: 560px;
  height: 560px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.018);
}

.home-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, .8fr);
  align-items: center;
  gap: clamp(46px, 7vw, 96px);
}

.home-hero-content { padding-block: 28px; }

.home-eyebrow,
.home-section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 22px;
  color: #ff9a4d;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.home-hero-content h1 {
  max-width: 720px;
  margin-bottom: 26px;
  font-size: clamp(44px, 5vw, 70px);
  line-height: 1.03;
  letter-spacing: .008em;
  text-wrap: balance;
}

.home-hero-content > p {
  max-width: 700px;
  margin-bottom: 34px;
  color: #d8e7ee;
  font-size: 17px;
  line-height: 1.75;
}

.home-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 22px;
}

.home-hero-actions .btn {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
  padding: 0 25px;
}

.home-hero-note {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #c6dbe4;
  font-size: 13px;
  font-weight: 600;
}

.home-hero-note i { color: #ff9a4d; }

.home-hero-visual {
  position: relative;
  min-height: 520px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 34px 34px 110px 34px;
  background:
    linear-gradient(180deg, transparent 46%, rgba(3, 40, 68, .72) 100%),
    url('https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1100&q=88') center/cover no-repeat;
  box-shadow: 0 36px 80px rgba(0,0,0,.28);
}


.home-hero-badge {
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 17px;
  padding: 18px 20px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 16px;
  background: rgba(4, 35, 58, .72);
  backdrop-filter: blur(12px);
}

.home-hero-badge strong { font-size: 18px; }
.home-hero-badge span { padding-left: 17px; border-left: 1px solid rgba(255,255,255,.22); color: #d4e4eb; font-size: 12px; }
.home-hero-badge-mobile { display: none; }

.home-services { padding: 108px 0; background: #f7f9fa; }

.home-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
  align-items: end;
  gap: 40px;
  margin-bottom: 52px;
}

.home-section-heading .home-section-kicker { margin-bottom: 12px; }
.home-section-heading h2,
.home-about-heading h2 {
  color: var(--azul-profundo);
  font-size: clamp(36px, 4vw, 54px);
  line-height: 1.08;
  letter-spacing: -.045em;
}
.home-section-heading > p { max-width: 400px; color: var(--cinza-texto); font-size: 17px; line-height: 1.7; }

.home-service-grid { gap: 24px; }
.home-service-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 390px;
  padding: 34px;
  border-color: #dfe8ec;
  border-radius: 26px;
  background: rgba(255,255,255,.88);
}
.home-service-card::before { display: none; }
.home-service-card:nth-child(2) { transform: translateY(22px); }
.home-service-card:nth-child(2):hover { transform: translateY(14px); }

.home-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-bottom: 50px;
}
.home-card-number { color: #8aa0ad; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.home-card-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 17px;
  background: #e6f1f5;
  color: var(--azul-coep);
  font-size: 19px;
}
.home-service-card:nth-child(2) .home-card-icon { background: #fff0e4; color: #c85b08; }
.home-service-card:nth-child(3) .home-card-icon { background: #e3f4ef; color: #14745e; }
.home-service-card h2 { margin-bottom: 16px; color: var(--azul-profundo); font-size: 25px; }
.home-service-card p { margin-bottom: 30px; font-size: 15px; }
.home-service-card .action-btn { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; }
.home-service-card .action-btn i { font-size: 11px; transition: transform .2s ease; }
.home-service-card .action-btn:hover i { transform: translateX(4px); }

.home-about {
  position: relative;
  padding: 118px 0;
  background: var(--branco) !important;
}
.home-about-grid {
  display: grid;
  grid-template-columns: minmax(270px, .72fr) minmax(0, 1.28fr);
  gap: clamp(60px, 9vw, 130px);
}
.home-about-heading { position: relative; }
.home-about-heading > p { margin-top: 18px; color: var(--cinza-texto); font-size: 16px; }
.home-about-signature {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 48px;
  padding-top: 26px;
  border-top: 1px solid var(--borda);
}
.home-about-signature span { color: var(--laranja-coep); font-size: 44px; font-weight: 800; letter-spacing: -.05em; }
.home-about-signature small { max-width: 90px; color: var(--cinza-texto); font-size: 12px; font-weight: 700; line-height: 1.4; text-transform: uppercase; }
.home-about-content { padding: 8px 0 0 36px; border-left: 1px solid var(--borda); }
.home-about-content > p { margin-bottom: 34px; color: #435866; font-size: 16px; line-height: 1.95; text-align: left; }
.home-about-link { display: inline-flex; align-items: center; gap: 10px; }

@media (max-width: 1024px) {
  .home-hero-grid { grid-template-columns: 1fr .72fr; gap: 42px; }
  .home-hero-visual { min-height: 450px; }
  .home-service-card { min-height: 410px; }
}

@media (max-width: 820px) {
  .home-hero {
    padding: 60px 0;
    background:
      linear-gradient(180deg, rgba(3,40,68,.8), rgba(3,40,68,.94)),
      url('https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1100&q=88') center 42%/cover no-repeat;
  }
  .home-hero-grid { grid-template-columns: 1fr; }
  .home-hero-content { padding-block: 10px; }
  .home-hero-visual { display: none; }
  .home-hero-badge-mobile {
    position: static;
    display: flex;
    width: 100%;
    margin-top: 24px;
    background: rgba(3,34,56,.72);
    box-shadow: 0 18px 42px rgba(0,0,0,.18);
  }
  .home-services { padding: 80px 0; }
  .home-section-heading { grid-template-columns: 1fr; gap: 14px; }
  .home-service-grid { grid-template-columns: 1fr; }
  .home-service-card, .home-service-card:nth-child(2) { min-height: 320px; transform: none; }
  .home-service-card:nth-child(2):hover { transform: translateY(-7px); }
  .home-card-top { margin-bottom: 34px; }
  .home-about { padding: 84px 0; }
  .home-about-grid { grid-template-columns: 1fr; gap: 46px; }
  .home-about-content { padding: 30px 0 0; border-top: 1px solid var(--borda); border-left: 0; }
}

@media (max-width: 576px) {
  .home-hero { padding: 48px 0 38px; background-position: 58% center; }
  .home-hero-content h1 { font-size: clamp(39px, 12vw, 52px); }
  .home-hero-content > p { font-size: 15px; }
  .home-hero-actions { align-items: flex-start; flex-direction: column; }
  .home-hero-badge-mobile { padding: 18px 20px; }
  .home-section-heading h2, .home-about-heading h2 { font-size: 38px; }
  .home-service-card { min-height: 330px; padding: 28px; }
  .home-about-signature { margin-top: 34px; }
}

/* Home — jornadas, oportunidades e chamadas */
.home-audiences {
  padding: 118px 0 132px;
  background: var(--branco);
}

.home-centered-heading {
  max-width: 720px;
  margin: 0 auto 58px;
  text-align: center;
}

.home-centered-heading .home-section-kicker { margin-bottom: 14px; }
.home-centered-heading h2 {
  margin-bottom: 18px;
  color: var(--azul-profundo);
  font-size: clamp(38px, 4.5vw, 58px);
  line-height: 1.07;
  letter-spacing: -.05em;
}
.home-centered-heading > p { color: var(--cinza-texto); font-size: 16px; line-height: 1.75; }

.home-audience-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.home-audience-card {
  position: relative;
  min-height: 430px;
  padding: 44px;
  overflow: hidden;
  border-radius: 30px;
  transition: transform .3s ease, box-shadow .3s ease;
}
.home-audience-card:hover { transform: translateY(-6px); box-shadow: 0 28px 60px rgba(5,45,78,.14); }
.home-audience-student { background: linear-gradient(145deg, #e9f5f7, #d8edf1); color: var(--azul-profundo); }
.home-audience-company { background: linear-gradient(145deg, #063554, #052945); color: var(--branco); }
.home-audience-card::after {
  content: '';
  position: absolute;
  width: 260px;
  height: 260px;
  right: -100px;
  bottom: -100px;
  border: 48px solid rgba(255,255,255,.25);
  border-radius: 50%;
}
.home-audience-icon {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  margin-bottom: 58px;
  border-radius: 19px;
  background: var(--branco);
  color: var(--azul-coep);
  box-shadow: 0 12px 30px rgba(5,45,78,.1);
  font-size: 23px;
}
.home-audience-company .home-audience-icon { background: rgba(255,255,255,.1); color: #ff9a4d; box-shadow: none; }
.home-audience-card > span { display: block; margin-bottom: 10px; color: #6c8796; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-audience-company > span { color: #95b3c2; }
.home-audience-card h3 { margin-bottom: 16px; font-size: clamp(28px, 3vw, 38px); letter-spacing: -.04em; }
.home-audience-card p { position: relative; z-index: 1; max-width: 490px; margin-bottom: 32px; color: #476271; font-size: 15px; line-height: 1.75; }
.home-audience-company p { color: #c8dbe4; }

.home-text-link {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--azul-coep);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}
.home-audience-company .home-text-link { color: #ff9a4d; }
.home-text-link i { font-size: 11px; transition: transform .2s ease; }
.home-text-link:hover i { transform: translateX(5px); }

.home-opportunities {
  position: relative;
  padding: 110px 0;
  overflow: hidden;
  background: #f47b20;
  color: var(--branco);
}
.home-opportunities::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, rgba(155,62,0,.2), transparent 55%);
}
.home-opportunities-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
  align-items: center;
  gap: clamp(55px, 9vw, 130px);
}
.home-opportunities .home-section-kicker { color: #fff1e6; }
.home-opportunities-content h2 { max-width: 700px; margin-bottom: 22px; font-size: clamp(40px, 5vw, 62px); line-height: 1.04; letter-spacing: -.052em; }
.home-opportunities-content > p { max-width: 650px; margin-bottom: 34px; color: #fff2e8; font-size: 16px; line-height: 1.75; }
.home-opportunities-content .btn { background: var(--azul-profundo); box-shadow: 0 14px 30px rgba(83,31,0,.2); }
.home-opportunities-content .btn:hover { background: #0a466f; }
.home-opportunities-panel { padding: 16px; border: 1px solid rgba(255,255,255,.28); border-radius: 26px; background: rgba(255,255,255,.12); backdrop-filter: blur(10px); }
.home-opportunity-line { display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 14px; padding: 18px; border-radius: 16px; }
.home-opportunity-line + .home-opportunity-line { border-top: 1px solid rgba(255,255,255,.18); }
.home-opportunity-line > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: rgba(255,255,255,.16); }
.home-opportunity-line div { display: flex; flex-direction: column; gap: 3px; }
.home-opportunity-line small { color: #ffe2cd; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.home-opportunity-line strong { font-size: 17px; }
.home-opportunity-line > i { opacity: .72; font-size: 12px; }

.home-support { padding: 110px 0; background: #eef4f6; }
.home-support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.home-support-card {
  display: grid;
  grid-template-columns: 66px 1fr;
  gap: 26px;
  min-height: 330px;
  padding: 42px;
  border: 1px solid #d9e4e9;
  border-radius: 28px;
  background: var(--branco);
  box-shadow: 0 14px 42px rgba(5,45,78,.06);
}
.home-support-contact { background: var(--azul-profundo); border-color: var(--azul-profundo); color: var(--branco); }
.home-support-icon { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 18px; background: #e6f1f5; color: var(--azul-coep); font-size: 21px; }
.home-support-contact .home-support-icon { background: rgba(255,255,255,.1); color: #ff9a4d; }
.home-support-card .home-section-kicker { margin: 7px 0 12px; }
.home-support-card h2 { margin-bottom: 16px; color: var(--azul-profundo); font-size: clamp(27px, 3vw, 37px); line-height: 1.12; letter-spacing: -.04em; }
.home-support-contact h2 { color: var(--branco); }
.home-support-card p { margin-bottom: 28px; color: var(--cinza-texto); font-size: 15px; line-height: 1.75; }
.home-support-contact p { color: #bfd3dd; }
.home-support-contact .home-text-link { color: #ff9a4d; }

@media (max-width: 900px) {
  .home-audience-grid, .home-support-grid { grid-template-columns: 1fr; }
  .home-opportunities-grid { grid-template-columns: 1fr; }
  .home-opportunities-panel { max-width: 620px; }
}

@media (max-width: 576px) {
  .home-audiences { padding: 78px 0 88px; }
  .home-centered-heading { margin-bottom: 38px; text-align: left; }
  .home-centered-heading h2 { font-size: 39px; }
  .home-audience-card { min-height: 400px; padding: 30px; border-radius: 24px; }
  .home-audience-icon { margin-bottom: 46px; }
  .home-opportunities { padding: 82px 0; }
  .home-opportunities-content h2 { font-size: 40px; }
  .home-opportunities-panel { padding: 8px; }
  .home-opportunity-line { padding: 16px 12px; }
  .home-support { padding: 78px 0; }
  .home-support-card { grid-template-columns: 1fr; min-height: 0; padding: 30px; }
}

/* Parallax sutil da Home */
#conteudo-principal[data-page="home-page"] [data-parallax] {
  transform: translate3d(0, var(--parallax-y, 0px), 0);
  will-change: transform;
}

@media (max-width: 768px), (prefers-reduced-motion: reduce) {
  #conteudo-principal[data-page="home-page"] [data-parallax] {
    transform: none;
    will-change: auto;
  }
}

/* Header moderno */
.site-utility-bar {
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: #032844;
}
.site-utility-message { display: flex; align-items: center; gap: 9px; font-size: 10px; letter-spacing: .08em; }
.site-status-dot { width: 7px; height: 7px; border-radius: 50%; background: #42d6a4; box-shadow: 0 0 0 4px rgba(66,214,164,.1); }
.site-utility-bar .contact-info a { font-size: 11px; font-weight: 600; }

.site-header {
  min-height: 96px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(5,45,78,.08);
  background: rgba(255,255,255,.94);
  box-shadow: 0 12px 35px rgba(5,45,78,.06);
  backdrop-filter: blur(16px);
}
.site-header .header-content { min-height: 80px; gap: 18px; }
.site-header .logo {
  display: flex;
  align-self: stretch;
  align-items: center;
  flex: 0 0 auto;
}
.site-header .logo a {
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-header .logo img {
  display: block;
  width: auto;
  height: 52px;
  max-width: 180px;
  object-fit: contain;
}
.site-header nav { margin-left: auto; }
.site-header nav ul { gap: 1px; }
.site-header nav ul li a { position: relative; padding: 11px 10px; color: #334b5a; font-size: 12px; }
.site-header nav ul li a::after {
  content: '';
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: 4px;
  height: 2px;
  border-radius: 2px;
  background: var(--laranja-coep);
  transition: left .22s ease, right .22s ease;
}
.site-header nav ul li a:hover,
.site-header nav ul li a:focus-visible { background: transparent; color: var(--azul-coep); }
.site-header nav ul li a.active,
.site-header nav ul li a[aria-current="page"] { background: transparent; color: var(--azul-coep); }
.site-header nav ul li a:hover::after,
.site-header nav ul li a.active::after,
.site-header nav ul li a[aria-current="page"]::after { left: 18%; right: 18%; }

.site-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 9px;
  min-height: 44px;
  padding: 0 17px;
  border-radius: var(--page-control-radius);
  background: var(--azul-profundo);
  color: var(--branco);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(5,45,78,.16);
  transition: transform .2s ease, background-color .2s ease;
}
.site-header-cta:hover { background: var(--laranja-coep); transform: translateY(-2px); }
.site-header-cta i { font-size: 10px; }

/* Footer moderno */
.site-footer {
  position: relative;
  margin-top: 0;
  padding: 0 0 28px;
  overflow: hidden;
  background: #02243d;
}
.site-footer::before {
  content: '';
  position: absolute;
  width: 520px;
  height: 520px;
  right: -280px;
  bottom: -280px;
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 50%;
  box-shadow: 0 0 0 80px rgba(255,255,255,.018), 0 0 0 160px rgba(255,255,255,.012);
}
.site-footer > .container { position: relative; z-index: 1; }
.site-footer-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 72px;
  padding: 42px 46px;
  border-radius: 0 0 26px 26px;
  background: var(--laranja-coep);
  color: var(--branco);
  box-shadow: 0 20px 48px rgba(0,0,0,.16);
}
.site-footer-cta span { display: block; margin-bottom: 8px; color: #fff0e5; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.site-footer-cta h2 { max-width: 680px; font-size: clamp(25px, 3vw, 38px); line-height: 1.15; letter-spacing: -.04em; }
.site-footer-cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 10px;
  min-height: 50px;
  padding: 0 22px;
  border-radius: var(--page-control-radius);
  background: var(--azul-profundo);
  color: var(--branco);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .2s ease, background-color .2s ease;
}
.site-footer-cta-button:hover { background: #0a466f; transform: translateY(-2px); }

.site-footer-grid {
  display: grid;
  grid-template-columns: minmax(230px, 1.25fr) .6fr 1fr minmax(230px, .95fr);
  gap: clamp(32px, 4vw, 62px);
  padding-bottom: 64px;
}
.site-footer h3 { margin-bottom: 24px; color: var(--branco); font-size: 13px; letter-spacing: .03em; }
.site-footer-brand { position: relative; padding: 0; }
.site-footer-logo {
  display: inline-flex;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--page-control-radius);
  background: #fff;
  box-shadow: 0 15px 34px rgba(0,0,0,.14);
}
.site-footer-logo img {
  display: block;
  width: 200px;
  height: auto;
  min-height: 0;
  border: 0 !important;
  background: transparent;
  object-fit: contain;
}
.site-footer-brand p { max-width: 360px; margin: 20px 0 23px; color: #9fb8c5; font-size: 13px; line-height: 1.75; }
.site-footer-since { color: #ff9a4d; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.site-footer-links { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.site-footer-links a { color: #a9c0cb; font-size: 12px; font-weight: 600; text-decoration: none; transition: color .2s ease, padding-left .2s ease; }
.site-footer-links a:hover { padding-left: 5px; color: #ff9a4d; }
.site-footer-contact { display: flex; flex-direction: column; align-items: flex-start; }
.site-footer-contact > a,
.site-footer-contact > div { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; color: #a9c0cb; font-size: 11px; line-height: 1.65; text-decoration: none; }
.site-footer-contact i { width: 15px; margin-top: 3px; color: #ff9a4d; text-align: center; }
.site-footer-contact a:hover span { color: var(--branco); }
.site-footer-location > a { position: relative; display: block; overflow: hidden; border-radius: 18px; }
.site-footer-location img { display: block; width: 100%; min-height: 178px; object-fit: cover; border: 0 !important; opacity: .78; transition: opacity .2s ease, transform .35s ease; }
.site-footer-location a:hover img { opacity: .95; transform: scale(1.025); }
.site-footer-location a span { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; align-items: center; justify-content: space-between; padding: 11px 12px; border-radius: 10px; background: rgba(2,36,61,.86); color: var(--branco); font-size: 10px; font-weight: 700; backdrop-filter: blur(8px); }

.site-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 26px;
  text-align: left;
}
.site-footer-bottom p { color: #7894a3; font-size: 10px; }
.site-footer-bottom > a { display: inline-flex; align-items: center; gap: 8px; color: #9fb8c5; font-size: 10px; font-weight: 700; text-decoration: none; }
.site-footer-bottom > a:hover { color: #ff9a4d; }

@media (max-width: 1120px) {
  .site-header-cta { display: none; }
  .site-footer-grid { grid-template-columns: 1.2fr .7fr 1fr; }
  .site-footer-location { grid-column: 1 / -1; max-width: 460px; }
}

@media (max-width: 768px) {
  .site-utility-bar { padding: 7px 0; }
  .site-header { min-height: 86px; padding: 5px 0; }
  .site-header .header-content { min-height: 76px; }
  .site-header .logo img { width: auto; height: 52px; max-width: 164px; }
  .site-header nav { margin-left: 0; }
  .site-header nav ul li a { padding: 13px 15px; font-size: 13px; }
  .site-header nav ul li a::after { display: none; }
  .site-header nav ul li a.active,
  .site-header nav ul li a[aria-current="page"] { background: #fff0e4; color: #d65f08; }
  .site-footer-cta { align-items: flex-start; flex-direction: column; margin-bottom: 58px; padding: 32px 26px; }
  .site-footer-grid { grid-template-columns: 1fr 1fr; gap: 44px 30px; }
  .site-footer-brand { grid-column: 1 / -1; }
  .site-footer-location { grid-column: 1 / -1; max-width: none; }
}

@media (max-width: 520px) {
  .site-footer > .container { padding-inline: 14px; }
  .site-footer-cta { margin-inline: -4px; border-radius: 0 0 22px 22px; }
  .site-footer-cta-button { width: 100%; }
  .site-footer-grid { grid-template-columns: 1fr; }
  .site-footer-brand, .site-footer-location { grid-column: auto; }
  .site-footer-bottom { align-items: flex-start; flex-direction: column; }
  .site-footer-logo img { width: 180px; height: auto; }
}

/* Home — movimento e superfícies refinadas */
.home-hero {
  background-size: 140% 140%;
  animation: home-gradient-drift 14s ease-in-out infinite alternate;
}

.home-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .17;
  background-image: radial-gradient(rgba(255,255,255,.48) .7px, transparent .7px);
  background-size: 22px 22px;
  mask-image: linear-gradient(90deg, black, transparent 72%);
}

.home-hero-visual {
  isolation: isolate;
  box-shadow: 0 38px 90px rgba(0,0,0,.31), 0 0 0 1px rgba(255,255,255,.08) inset;
}

.home-hero-visual::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.16) 48%, transparent 64%);
  background-size: 220% 100%;
  animation: home-image-shine 8s ease-in-out infinite;
}

.home-floating-label {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 12px 15px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 14px;
  background: rgba(255,255,255,.9);
  color: var(--azul-profundo);
  box-shadow: 0 16px 36px rgba(2,25,43,.22);
  backdrop-filter: blur(12px);
  font-size: 11px;
  font-weight: 800;
}
.home-floating-label i { color: var(--laranja-coep); }
.home-floating-label-top { top: 86px; right: -24px; animation: home-float 5.5s ease-in-out infinite; }
.home-floating-label-side { left: -34px; bottom: 150px; animation: home-float 6.5s ease-in-out 1s infinite reverse; }

.home-services {
  position: relative;
  background:
    radial-gradient(circle at 8% 18%, rgba(35,133,160,.09), transparent 25%),
    radial-gradient(circle at 92% 86%, rgba(244,123,32,.08), transparent 24%),
    #f7f9fa;
}
.home-services::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .36;
  background-image: linear-gradient(rgba(8,59,102,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(8,59,102,.035) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: linear-gradient(to bottom, transparent, black 22%, black 78%, transparent);
  pointer-events: none;
}
.home-services > .container { position: relative; }
.home-service-card { overflow: hidden; }
.home-service-card::after {
  content: '';
  position: absolute;
  width: 160px;
  height: 160px;
  right: -110px;
  bottom: -110px;
  border-radius: 50%;
  background: rgba(8,59,102,.07);
  transition: width .35s ease, height .35s ease, right .35s ease, bottom .35s ease;
}
.home-service-card:hover::after { width: 220px; height: 220px; right: -125px; bottom: -125px; }

.home-audiences {
  position: relative;
  background:
    radial-gradient(circle at 50% 0%, rgba(223,242,247,.72), transparent 34%),
    var(--branco);
}
.home-audiences::before {
  content: '';
  position: absolute;
  top: 54px;
  left: 5%;
  width: 150px;
  height: 150px;
  opacity: .28;
  background-image: radial-gradient(var(--azul-coep) 1.2px, transparent 1.2px);
  background-size: 14px 14px;
  mask-image: radial-gradient(circle, black, transparent 70%);
}
.home-audiences > .container { position: relative; }
.home-audience-card { box-shadow: 0 18px 48px rgba(5,45,78,.08); }
.home-audience-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 32%, rgba(255,255,255,.18) 50%, transparent 68%);
  background-position: 160% 0;
  background-size: 220% 100%;
  transition: background-position .7s ease;
}
.home-audience-card:hover::before { background-position: -70% 0; }

.home-opportunities::after {
  content: '';
  position: absolute;
  top: -40%;
  left: -15%;
  width: 46%;
  height: 180%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.1), transparent);
  transform: rotate(14deg);
  animation: home-orange-light 10s ease-in-out infinite;
  pointer-events: none;
}

.home-about {
  background:
    radial-gradient(circle at 92% 20%, rgba(223,242,247,.62), transparent 25%),
    linear-gradient(180deg, #fff, #fbfcfd) !important;
}
.home-about-content { position: relative; }
.home-about-content::before {
  content: '“';
  position: absolute;
  top: -52px;
  left: 20px;
  color: rgba(244,123,32,.13);
  font-family: Georgia, serif;
  font-size: 130px;
  line-height: 1;
  pointer-events: none;
}
.home-about-content > * { position: relative; }

.home-support {
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.9), transparent 24%),
    linear-gradient(135deg, #edf4f6, #e5eff2);
}
.home-support-card { transition: translate .3s ease, box-shadow .3s ease, border-color .3s ease; }
.home-support-card:hover { translate: 0 -6px; border-color: rgba(8,59,102,.18); box-shadow: 0 26px 58px rgba(5,45,78,.12); }

.home-motion-ready .home-reveal {
  opacity: 0;
  translate: 0 28px;
  scale: .985;
  transition:
    opacity .72s cubic-bezier(.2,.75,.25,1) var(--reveal-delay, 0ms),
    translate .72s cubic-bezier(.2,.75,.25,1) var(--reveal-delay, 0ms),
    scale .72s cubic-bezier(.2,.75,.25,1) var(--reveal-delay, 0ms),
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
}
.home-motion-ready .home-reveal.is-visible { opacity: 1; translate: 0 0; scale: 1; }

@keyframes home-gradient-drift {
  from { background-position: 0% 40%; }
  to { background-position: 100% 60%; }
}
@keyframes home-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -10px; }
}
@keyframes home-image-shine {
  0%, 32% { background-position: 160% 0; }
  62%, 100% { background-position: -80% 0; }
}
@keyframes home-orange-light {
  0%, 25% { translate: -40% 0; opacity: 0; }
  45% { opacity: 1; }
  70%, 100% { translate: 280% 0; opacity: 0; }
}

@media (max-width: 768px) {
  .home-floating-label { display: none; }
  .home-services::before, .home-audiences::before { opacity: .18; }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero,
  .home-hero-visual::after,
  .home-floating-label,
  .home-opportunities::after { animation: none !important; }
  .home-motion-ready .home-reveal { opacity: 1; translate: none; scale: 1; transition: none; }
}

/* Arredondamento único para todos os botões do sistema */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.btn,
.action-btn,
.btn-submit,
.btn-login,
.menu-toggle,
.lista-vagas nav a {
  border-radius: var(--page-control-radius) !important;
}

/* Demais páginas — linguagem visual compartilhada */
#conteudo-principal.modern-page {
  position: relative;
  overflow: hidden;
  padding-bottom: 96px;
  background:
    radial-gradient(circle at 6% 18%, rgba(34,132,159,.08), transparent 24%),
    radial-gradient(circle at 94% 72%, rgba(244,123,32,.07), transparent 22%),
    #f5f8f9;
}
#conteudo-principal.company-presentation-page { padding-bottom: 0 !important; }

#conteudo-principal.modern-page::before {
  content: '';
  position: absolute;
  inset: 320px 0 auto;
  height: 520px;
  opacity: .34;
  pointer-events: none;
  background-image: linear-gradient(rgba(8,59,102,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(8,59,102,.035) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, transparent, black 18%, black 82%, transparent);
}

.modern-page .cadastro-header,
.modern-page .perfil-header {
  isolation: isolate;
  margin-bottom: 56px;
  padding: 92px 0 88px;
  background:
    radial-gradient(circle at 12% 20%, rgba(48,151,177,.28), transparent 28%),
    linear-gradient(128deg, #032844 0%, #083f65 62%, #07516e 100%);
}
.modern-page .cadastro-header::before,
.modern-page .perfil-header::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .18;
  background-image: radial-gradient(rgba(255,255,255,.55) .7px, transparent .7px);
  background-size: 22px 22px;
  mask-image: linear-gradient(90deg, black, transparent 72%);
}
.modern-page .cadastro-header .container,
.modern-page .perfil-header .container {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  flex-direction: column;
  text-align: center;
}
.modern-page .cadastro-header h1,
.modern-page .perfil-header h1 { max-width: 760px; margin: 0 auto; color: #fff; font-size: clamp(42px, 5vw, 66px); line-height: 1.04; }
.modern-page .cadastro-header p,
.modern-page .perfil-header p { max-width: 680px; margin: 18px auto 0; color: #cfe1e9; font-size: 17px; line-height: 1.7; }
.page-hero-kicker,
.content-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 15px;
  color: #ff9a4d;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.page-content-container { position: relative; z-index: 1; }
.modern-surface,
.modern-page .cadastro-form,
.modern-page .login-container,
.modern-page .perfil-sidebar,
.modern-page .perfil-content,
.modern-page .filtros-vagas,
.modern-page .filtros-legislacao,
.modern-page .vaga-card,
.modern-page .legislacao-item {
  border: 1px solid rgba(8,59,102,.1) !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 18px 52px rgba(5,45,78,.08) !important;
}

/* Institucional, estudante e escola */
.institutional-modern-grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 24px; }
.institutional-story { position: relative; overflow: hidden; padding: 46px; }
.institutional-story::after { content: ''; position: absolute; right: -90px; bottom: -90px; width: 210px; height: 210px; border-radius: 50%; background: rgba(244,123,32,.09); }
.institutional-story h2,
.institutional-value-card h2,
.section-intro-modern h2 { color: var(--azul-profundo); letter-spacing: -.04em; }
.institutional-story h2 { margin-bottom: 22px; font-size: 38px; }
.institutional-story > p,
.institutional-value-card p { color: #465d6b; line-height: 1.85; }
.institutional-year { display: flex; align-items: center; gap: 20px; margin-top: 56px; padding-top: 26px; border-top: 1px solid var(--borda); }
.institutional-year strong { color: var(--laranja-coep); font-size: 42px; letter-spacing: -.05em; }
.institutional-year span { max-width: 220px; color: #536b79; font-size: 12px; font-weight: 700; line-height: 1.5; }
.institutional-values-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.institutional-value-card { padding: 34px; transition: translate .3s ease, box-shadow .3s ease; }
.institutional-value-card:hover { translate: 0 -6px; box-shadow: 0 28px 60px rgba(5,45,78,.12) !important; }
.institutional-value-card h2 { margin: 22px 0 14px; font-size: 25px; }
.institutional-icon,
.card-feature-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 17px; background: #e6f2f5; color: var(--azul-coep); font-size: 19px; }
.institutional-values { grid-column: 1 / -1; }
.institutional-values ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px 24px; margin: 0; padding: 0; list-style: none; }
.institutional-values li { position: relative; padding-left: 20px; color: #465d6b; }
.institutional-values li::before { content: ''; position: absolute; top: .55em; left: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--laranja-coep); }
.section-intro-modern { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.section-intro-modern h2 { margin-bottom: 17px; font-size: clamp(36px,4.4vw,54px); line-height: 1.08; }
.section-intro-modern p { color: #536976; font-size: 16px; line-height: 1.75; }
.audience-action-cards { align-items: stretch; }
.audience-action-cards .action-card { min-height: 390px; border-radius: 26px; background: rgba(255,255,255,.94); }
.audience-action-cards .action-card::before { position: absolute; top: 36px; right: 36px; margin: 0; background: transparent; color: rgba(8,59,102,.22); font-size: 14px; }
.audience-action-cards .card-feature-icon { margin-bottom: 58px; }
.audience-action-cards .action-card:nth-child(2) .card-feature-icon { background: #fff0e4; color: #c65a08; }
.audience-action-cards .action-card:nth-child(3) .card-feature-icon { background: #e4f4ef; color: #14745e; }
.audience-action-cards .action-card .action-btn { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; }
.audience-action-cards .action-btn i { font-size: 10px; transition: translate .2s ease; }
.audience-action-cards .action-btn:hover i { translate: 4px 0; }

/* Formulários e autenticação */
.modern-page .cadastro-container { position: relative; z-index: 1; max-width: 1120px; margin: 0 auto; }
.modern-page .cadastro-form { padding: clamp(28px,4vw,52px); }
.modern-page .form-section { position: relative; margin-bottom: 42px; padding: 0 0 38px; border-bottom: 1px solid #e2e9ed; }
.modern-page .form-section:last-of-type { border-bottom: 0; }
.modern-page .form-section h2 { margin-bottom: 28px; padding-bottom: 17px; color: var(--azul-profundo); font-size: 21px; letter-spacing: -.025em; }
.modern-page .form-section h2 i { display: inline-grid; place-items: center; width: 35px; height: 35px; margin-right: 10px; border-radius: 11px; background: #fff0e4; }
.modern-page .form-group input,
.modern-page .form-group select,
.modern-page .form-group textarea,
.modern-page .form-control { background-color: #f9fbfc; transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.modern-page .form-group input:hover,
.modern-page .form-group select:hover,
.modern-page .form-group textarea:hover,
.modern-page .form-control:hover { border-color: #9fb6c2; }
.modern-page .file-upload { border: 1px dashed #9db6c2; background: linear-gradient(135deg,#f8fbfc,#edf5f7); transition: border-color .25s ease, transform .25s ease; }
.modern-page .file-upload:hover { border-color: var(--laranja-coep); transform: translateY(-2px); }
.modern-page .terms-group { padding: 20px; border-radius: 15px; background: #f3f7f8; }
.modern-page .btn-submit,
.modern-page .btn-login { transition: translate .2s ease, box-shadow .2s ease, background-color .2s ease; }
.modern-page .btn-submit:hover,
.modern-page .btn-login:hover { translate: 0 -2px; box-shadow: 0 16px 32px rgba(244,123,32,.26); }
#conteudo-principal[data-page="login-page"],
#conteudo-principal[data-page="recuperar-senha-page"] { min-height: 720px; padding: 86px 0 110px; background: radial-gradient(circle at 15% 15%,rgba(35,133,160,.16),transparent 30%), linear-gradient(135deg,#edf5f7,#f8fafb); }
.modern-page .login-container { position: relative; overflow: hidden; max-width: 540px; padding: 48px; }
.modern-page .login-container::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg,var(--laranja-coep),#ffab68,var(--azul-coep)); }
.modern-page .login-header { margin-bottom: 34px; text-align: left; }
.modern-page .login-header::before { content: '\f2f6'; display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 25px; border-radius: 18px; background: #e7f2f5; color: var(--azul-coep); font: 900 20px/1 'Font Awesome 6 Free'; }
.modern-page .login-header h1 { color: var(--azul-profundo); font-size: 38px; letter-spacing: -.04em; }

/* Vagas e legislação */
.modern-page .vagas-container,
.modern-page .institucional-content { position: relative; z-index: 1; margin-top: 0 !important; }
.modern-page .filtros-vagas,
.modern-page .filtros-legislacao { margin-bottom: 38px !important; padding: 30px !important; }
.modern-page .filtros-vagas h2,
.modern-page .filtros-legislacao h3 { color: var(--azul-profundo) !important; font-size: 23px; letter-spacing: -.025em; }
.modern-page .lista-vagas > h2 { margin: 50px 0 24px !important; color: var(--azul-profundo) !important; font-size: 30px; }
.modern-page .vaga-card { position: relative; overflow: hidden; margin-bottom: 22px; padding: 32px !important; }
.modern-page .vaga-card::before { content: ''; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background: linear-gradient(var(--laranja-coep),#ffad70); }
.modern-page .vaga-card h3 { letter-spacing: -.02em; }
.modern-page .vaga-card p { color: #4c616e; line-height: 1.7; }
.modern-page .vaga-tipo,
.modern-page .legislacao-tag { border-radius: 999px !important; padding: 6px 11px !important; font-size: 11px !important; }
.modern-page .institucional-content > div[style] { padding: 0 !important; background: transparent !important; box-shadow: none !important; }
.modern-page .section-title { max-width: 720px; margin-bottom: 38px !important; }
.modern-page .section-title h2 { color: var(--azul-profundo) !important; }
.modern-page .legislacao-item { position: relative; overflow: hidden; margin-bottom: 22px !important; padding: 30px !important; border-left-width: 5px !important; }
.modern-page .legislacao-item > div:first-child { align-items: center !important; gap: 24px; }
.modern-page .legislacao-item h3 { font-size: 20px; letter-spacing: -.02em; }
.modern-page .legislacao-item p { color: #4c616e; line-height: 1.7; }
.modern-page .legislacao-item > div[id] { border: 1px solid var(--borda); border-radius: 14px !important; background: #f8fbfc !important; }
.modern-page .lista-vagas nav a { display: inline-flex; min-height: 40px; align-items: center; padding: 8px 14px !important; background: #fff !important; border: 1px solid var(--borda); color: var(--azul-coep); font-weight: 800; text-decoration: none; }

/* Perfil */
.modern-page .perfil-container { position: relative; z-index: 1; align-items: start; gap: 28px; }
.modern-page .perfil-sidebar { position: sticky; top: 118px; overflow: hidden; padding: 28px; }
.modern-page .perfil-avatar img { padding: 5px; border: 4px solid #e6f1f5; box-shadow: 0 12px 28px rgba(5,45,78,.13); }
.modern-page .perfil-menu a { border-radius: 12px; transition: background-color .2s ease, color .2s ease, translate .2s ease; }
.modern-page .perfil-menu a:hover { translate: 3px 0; }
.modern-page .perfil-menu a.active { background: #e9f3f6; color: var(--azul-coep); }
.modern-page .perfil-content { padding: clamp(28px,4vw,48px); }

/* Revelação suave compartilhada */
.page-motion-ready .page-reveal { opacity: 0; translate: 0 24px; scale: .99; transition: opacity .7s cubic-bezier(.2,.75,.25,1) var(--page-reveal-delay,0ms), translate .7s cubic-bezier(.2,.75,.25,1) var(--page-reveal-delay,0ms), scale .7s cubic-bezier(.2,.75,.25,1) var(--page-reveal-delay,0ms); }
.page-motion-ready .page-reveal.is-visible { opacity: 1; translate: 0 0; scale: 1; }

@media (max-width: 900px) {
  .institutional-modern-grid { grid-template-columns: 1fr; }
  .modern-page .perfil-sidebar { position: static; }
}
@media (max-width: 768px) {
  #conteudo-principal.modern-page { padding-bottom: 70px; }
  .modern-page .cadastro-header, .modern-page .perfil-header { margin-bottom: 38px; padding: 62px 0 58px; }
  .modern-page .cadastro-header h1, .modern-page .perfil-header h1 { font-size: 42px; }
  .modern-page .cadastro-header p, .modern-page .perfil-header p { font-size: 15px; }
  .institutional-values-grid { grid-template-columns: 1fr; }
  .institutional-values { grid-column: auto; }
  .audience-action-cards .action-card { min-height: 330px; }
  .modern-page .legislacao-item > div:first-child { align-items: flex-start !important; }
}
@media (max-width: 520px) {
  .modern-page .cadastro-header, .modern-page .perfil-header { padding: 50px 0 48px; }
  .modern-page .cadastro-header h1, .modern-page .perfil-header h1 { font-size: 37px; }
  .institutional-story, .institutional-value-card { padding: 28px; }
  .institutional-year { align-items: flex-start; flex-direction: column; gap: 7px; }
  .institutional-values ul { grid-template-columns: 1fr; }
  .section-intro-modern { margin-bottom: 34px; text-align: left; }
  .section-intro-modern h2 { font-size: 37px; }
  .modern-page .login-container { padding: 34px 24px; }
  .modern-page .login-header h1 { font-size: 32px; }
  .modern-page .filtros-vagas, .modern-page .filtros-legislacao, .modern-page .vaga-card, .modern-page .legislacao-item { padding: 22px !important; border-radius: 19px !important; }
  .modern-page .legislacao-item .action-btn { margin: 8px 6px 0 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  .page-motion-ready .page-reveal { opacity: 1; translate: none; scale: 1; transition: none; }
}

/* Área do Estudante — jornada moderna */
#conteudo-principal[data-page="estudante-page"] {
  background:
    radial-gradient(circle at 8% 26%, rgba(38,139,164,.11), transparent 23%),
    radial-gradient(circle at 93% 68%, rgba(244,123,32,.09), transparent 22%),
    #f5f8f9;
}
#conteudo-principal[data-page="estudante-page"] .page-hero-estudante { padding-block: 84px; }
#conteudo-principal[data-page="estudante-page"] .student-hero-grid {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(480px,1.1fr);
  align-items: center;
  gap: clamp(44px,7vw,96px);
  text-align: left;
}
.student-hero-copy { display: flex; align-items: flex-start; flex-direction: column; }
#conteudo-principal[data-page="estudante-page"] .student-hero-copy h1,
#conteudo-principal[data-page="estudante-page"] .student-hero-copy p { margin-inline: 0; }
.student-hero-path {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 13px;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 25px;
  background: rgba(255,255,255,.09);
  box-shadow: 0 24px 54px rgba(0,0,0,.14);
  backdrop-filter: blur(12px);
}
.student-hero-path > div { min-width: 0; text-align: center; }
.student-hero-path > div > span { display: grid; place-items: center; width: 40px; height: 40px; margin: 0 auto 12px; border-radius: 13px; background: rgba(255,255,255,.12); color: #ff9a4d; font-size: 11px; font-weight: 900; }
.student-hero-path p { margin: 0 !important; color: #fff !important; font-size: 12px !important; line-height: 1.35 !important; }
.student-hero-path strong, .student-hero-path small { display: block; }
.student-hero-path strong { white-space: nowrap; font-size: 12px; }
.student-hero-path small { margin-top: 5px; color: #bcd2dc; font-size: 10px; }
.student-hero-path > i { color: rgba(255,255,255,.35); font-size: 11px; }
.student-page-content { padding-top: 18px; }
.student-action-cards { gap: 26px; }
.student-action-cards .action-card {
  isolation: isolate;
  overflow: hidden;
  min-height: 410px;
  padding: 36px;
  border-color: rgba(8,59,102,.1);
  background: linear-gradient(155deg,rgba(255,255,255,.98),rgba(247,251,252,.96));
  box-shadow: 0 18px 52px rgba(5,45,78,.08);
}
.student-action-cards .action-card::after { content: ''; position: absolute; z-index: -1; right: -75px; bottom: -80px; width: 180px; height: 180px; border-radius: 50%; background: rgba(35,133,160,.06); transition: scale .4s ease; }
.student-action-cards .action-card:hover::after { scale: 1.35; }
.student-action-cards .student-card-featured { transform: translateY(-12px); border-color: rgba(244,123,32,.25); box-shadow: 0 25px 62px rgba(5,45,78,.12); }
.student-action-cards .student-card-featured:hover { transform: translateY(-19px); }
.student-action-cards .student-card-featured::after { background: rgba(244,123,32,.07); }
.student-card-top { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 62px; }
.student-action-cards .card-feature-icon { flex: 0 0 auto; margin: 0; }
.student-card-label { color: #718895; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.student-action-cards .action-card h2 { margin-bottom: 17px; color: var(--azul-profundo); font-size: 25px; }
.student-action-cards .action-card p { margin-bottom: 34px; color: #506773; font-size: 15px; line-height: 1.75; }
.student-action-cards .action-btn { position: relative; z-index: 2; }
.student-access-banner {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 28px;
  margin-top: 72px;
  padding: 34px 38px;
  background: linear-gradient(125deg,#062f4d,#084c6e) !important;
  color: #fff;
}
.student-access-icon { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 21px; background: rgba(255,255,255,.1); color: #ff9a4d; font-size: 23px; }
.student-access-banner .content-kicker { margin-bottom: 7px; }
.student-access-banner h2 { margin-bottom: 7px; color: #fff; font-size: 27px; letter-spacing: -.035em; }
.student-access-banner p { margin: 0; color: #bfd3dd; font-size: 13px; line-height: 1.65; }
.student-login-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap; }

@media (max-width: 1050px) {
  #conteudo-principal[data-page="estudante-page"] .student-hero-grid { grid-template-columns: 1fr; text-align: center; }
  .student-hero-copy { align-items: center; }
  #conteudo-principal[data-page="estudante-page"] .student-hero-copy h1,
  #conteudo-principal[data-page="estudante-page"] .student-hero-copy p { margin-inline: auto; }
  .student-hero-path { width: 100%; max-width: 720px; margin-inline: auto; }
}
@media (max-width: 820px) {
  .student-action-cards .student-card-featured,
  .student-action-cards .student-card-featured:hover { transform: none; }
  .student-access-banner { grid-template-columns: auto 1fr; }
  .student-login-btn { grid-column: 1 / -1; width: 100%; }
}
@media (max-width: 576px) {
  #conteudo-principal[data-page="estudante-page"] .page-hero-estudante { padding-block: 52px; }
  .student-hero-path {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 10px;
    border-color: rgba(255,255,255,.13);
    border-radius: 22px;
    background: rgba(2,31,52,.3);
    box-shadow: 0 20px 44px rgba(0,0,0,.12);
  }
  .student-hero-path > div {
    display: grid;
    grid-template-columns: 48px minmax(0,1fr);
    align-items: center;
    gap: 15px;
    min-height: 80px;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.08);
    text-align: left;
    box-shadow: 0 9px 22px rgba(0,0,0,.08);
  }
  .student-hero-path > div > span {
    width: 48px;
    height: 48px;
    margin: 0;
    border-color: rgba(255,255,255,.14);
    border-radius: 15px;
    background: rgba(255,255,255,.11);
    font-size: 11px;
  }
  .student-hero-path > i {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    margin: -3px auto;
    rotate: 0deg;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    background: #0b496a;
    color: #ff9a4d;
    font-size: 0;
  }
  .student-hero-path > i::before { content: '\f063'; font-size: 10px; line-height: 1; }
  .student-hero-path p { text-align: left; }
  .student-hero-path strong { white-space: normal; font-size: 13px; line-height: 1.3; }
  .student-hero-path small { margin-top: 5px; font-size: 10px; }
  .student-action-cards .action-card { min-height: 350px; padding: 28px; }
  .student-card-top { margin-bottom: 44px; }
  .student-access-banner { grid-template-columns: 1fr; margin-top: 48px; padding: 28px; }
  .student-access-icon { width: 58px; height: 58px; }
  .student-login-btn { grid-column: auto; }
}

/* Cadastro do Estudante — experiência guiada */
#conteudo-principal[data-page="cadastro-page"] {
  overflow: visible;
  background:
    radial-gradient(circle at 4% 30%, rgba(38,139,164,.1), transparent 24%),
    radial-gradient(circle at 96% 68%, rgba(244,123,32,.08), transparent 20%),
    #f4f8f9;
}
#conteudo-principal[data-page="cadastro-page"] .student-registration-hero {
  margin-bottom: 0;
  padding-bottom: 88px;
}
.student-registration-layout {
  align-items: flex-start;
  max-width: 1240px !important;
  margin-top: 52px !important;
  gap: 28px !important;
}
.registration-guide {
  position: sticky;
  top: 116px;
  align-self: flex-start;
  flex: 0 0 320px;
  overflow: hidden;
  padding: 36px 30px;
  background: linear-gradient(155deg,#073957,#052b47) !important;
  color: #fff;
}
.registration-guide::after { content: ''; position: absolute; right: -90px; bottom: -100px; width: 220px; height: 220px; border: 45px solid rgba(255,255,255,.035); border-radius: 50%; }
.registration-guide h2 { margin-bottom: 16px; color: #fff; font-size: 29px; line-height: 1.12; letter-spacing: -.04em; }
.registration-guide > p { margin-bottom: 32px; color: #bfd2dc; font-size: 13px; line-height: 1.7; }
.registration-steps { position: relative; margin: 0; padding: 0; list-style: none; }
.registration-steps::before { content: ''; position: absolute; top: 22px; bottom: 22px; left: 19px; width: 1px; background: rgba(255,255,255,.16); }
.registration-steps li { position: relative; display: grid; grid-template-columns: 40px 1fr; align-items: center; gap: 14px; margin-bottom: 22px; }
.registration-steps li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.18); border-radius: 13px; background: #0b4767; color: #ff9a4d; font-size: 10px; font-weight: 900; }
.registration-steps strong, .registration-steps small { display: block; }
.registration-steps strong { color: #fff; font-size: 13px; }
.registration-steps small { margin-top: 3px; color: #9fb9c6; font-size: 10px; }
.registration-security { position: relative; z-index: 1; display: grid; grid-template-columns: auto 1fr; gap: 12px; margin-top: 34px; padding: 18px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: rgba(255,255,255,.06); }
.registration-security > i { margin-top: 2px; color: #4ad6a7; }
.registration-security strong, .registration-security small { display: block; }
.registration-security strong { margin-bottom: 4px; font-size: 11px; }
.registration-security small { color: #a9c0cb; font-size: 9px; line-height: 1.55; }
#conteudo-principal[data-page="cadastro-page"] .cadastro-form { max-width: none; padding: 0; overflow: hidden; }
#conteudo-principal[data-page="cadastro-page"] .form-section { margin: 0; padding: 42px 46px; border-bottom: 1px solid #e4ebee; }
#conteudo-principal[data-page="cadastro-page"] .form-section:nth-child(even) { background: #fbfcfd; }
#conteudo-principal[data-page="cadastro-page"] .form-section h2 { display: flex; align-items: center; margin-bottom: 30px; padding: 0; border: 0; font-size: 22px; }
#conteudo-principal[data-page="cadastro-page"] .form-section h2::after { content: ''; flex: 1; height: 1px; margin-left: 18px; background: linear-gradient(90deg,#dce6ea,transparent); }
#conteudo-principal[data-page="cadastro-page"] .form-section h2 i { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 14px; }
#conteudo-principal[data-page="cadastro-page"] .form-group { margin-bottom: 20px; }
#conteudo-principal[data-page="cadastro-page"] .form-group label { margin-bottom: 9px; color: #2f4858; font-size: 12px; font-weight: 800; }
#conteudo-principal[data-page="cadastro-page"] .form-group small { display: block; margin-top: 8px; color: #718691; font-size: 10px; }
#conteudo-principal[data-page="cadastro-page"] .form-group input,
#conteudo-principal[data-page="cadastro-page"] .form-group select,
#conteudo-principal[data-page="cadastro-page"] .form-group textarea { border-color: #d3dfe4; background: #f8fafb; }
#conteudo-principal[data-page="cadastro-page"] .file-upload { padding: 32px 24px; border-width: 1px; background: linear-gradient(135deg,#f5fafb,#edf5f7); }
#conteudo-principal[data-page="cadastro-page"] .file-upload i { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 17px; background: #e2f0f4; color: var(--azul-coep); font-size: 21px; }
#conteudo-principal[data-page="cadastro-page"] .terms-group { margin: 34px 46px 0; border: 1px solid #dce6ea; background: #f7fafb; }
#conteudo-principal[data-page="cadastro-page"] .btn-submit { width: calc(100% - 92px); margin: 24px 46px 0; }
#conteudo-principal[data-page="cadastro-page"] .login-link { margin: 22px 46px 38px !important; padding-top: 22px; border-top: 1px solid #e3eaed; color: #5d727e; font-size: 13px; }
#conteudo-principal[data-page="cadastro-page"] .login-link a { color: var(--azul-coep); font-weight: 800; }

@media (max-width: 980px) {
  .student-registration-layout { flex-direction: column; }
  .registration-guide { position: relative; top: auto; width: 100%; flex-basis: auto; }
  .registration-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
  .registration-steps::before { display: none; }
  .registration-steps li { grid-template-columns: 1fr; margin: 0; text-align: center; }
  .registration-steps li > span { margin-inline: auto; }
  .registration-security { max-width: 520px; }
}
@media (max-width: 640px) {
  #conteudo-principal[data-page="cadastro-page"] .student-registration-hero { padding-bottom: 52px; }
  .student-registration-layout { margin-top: 34px !important; }
  .registration-guide { padding: 28px 24px; }
  .registration-guide h2 { font-size: 25px; }
  .registration-steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 12px; }
  #conteudo-principal[data-page="cadastro-page"] .form-section { padding: 32px 24px; }
  #conteudo-principal[data-page="cadastro-page"] .form-section h2 { align-items: flex-start; font-size: 19px; }
  #conteudo-principal[data-page="cadastro-page"] .form-section h2::after { display: none; }
  #conteudo-principal[data-page="cadastro-page"] .terms-group { margin: 28px 24px 0; }
  #conteudo-principal[data-page="cadastro-page"] .btn-submit { width: calc(100% - 48px); margin-inline: 24px; }
  #conteudo-principal[data-page="cadastro-page"] .login-link { margin-inline: 24px !important; }
}

/* Cadastro de Empresa — experiência guiada */
#conteudo-principal[data-page="empresa-page"] {
  overflow: visible;
  background:
    radial-gradient(circle at 5% 28%, rgba(38,139,164,.1), transparent 24%),
    radial-gradient(circle at 94% 74%, rgba(244,123,32,.08), transparent 21%),
    #f4f8f9;
}
#conteudo-principal[data-page="empresa-page"] .company-registration-hero { margin-bottom: 0; padding-bottom: 88px; }
.company-registration-layout { align-items: flex-start; max-width: 1240px !important; margin-top: 52px !important; gap: 28px !important; }
.company-registration-guide { background: linear-gradient(155deg,#063b58,#062d48) !important; }
#conteudo-principal[data-page="empresa-page"] .cadastro-form { max-width: none; padding: 0; overflow: hidden; }
#conteudo-principal[data-page="empresa-page"] .form-section { margin: 0; padding: 42px 46px; border-bottom: 1px solid #e4ebee; }
#conteudo-principal[data-page="empresa-page"] .form-section:nth-child(even) { background: #fbfcfd; }
#conteudo-principal[data-page="empresa-page"] .form-section h2 { display: flex; align-items: center; margin-bottom: 30px; padding: 0; border: 0; font-size: 22px; }
#conteudo-principal[data-page="empresa-page"] .form-section h2::after { content: ''; flex: 1; height: 1px; margin-left: 18px; background: linear-gradient(90deg,#dce6ea,transparent); }
#conteudo-principal[data-page="empresa-page"] .form-section h2 i { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 14px; }
#conteudo-principal[data-page="empresa-page"] .form-group { margin-bottom: 20px; }
#conteudo-principal[data-page="empresa-page"] .form-group label { margin-bottom: 9px; color: #2f4858; font-size: 12px; font-weight: 800; }
#conteudo-principal[data-page="empresa-page"] .form-group small { display: block; margin-top: 8px; color: #718691; font-size: 10px; }
#conteudo-principal[data-page="empresa-page"] .form-group input,
#conteudo-principal[data-page="empresa-page"] .form-group select,
#conteudo-principal[data-page="empresa-page"] .form-group textarea { border-color: #d3dfe4; background: #f8fafb; }
#conteudo-principal[data-page="empresa-page"] .calculator-result { margin-top: 20px; padding: 24px; border: 1px solid #cde4da; border-radius: 17px; background: linear-gradient(135deg,#eff9f5,#f8fcfa); }
#conteudo-principal[data-page="empresa-page"] .calculator-result h3 { color: #12634f; }
#conteudo-principal[data-page="empresa-page"] .terms-group { margin: 34px 46px 0; border: 1px solid #dce6ea; background: #f7fafb; }
#conteudo-principal[data-page="empresa-page"] .cadastro-form > .btn-submit { width: calc(100% - 92px); margin: 24px 46px 42px; }

@media (max-width: 980px) {
  .company-registration-layout { flex-direction: column; }
  .company-registration-guide { position: relative; top: auto; width: 100%; flex-basis: auto; }
}
@media (max-width: 640px) {
  #conteudo-principal[data-page="empresa-page"] .company-registration-hero { padding-bottom: 52px; }
  .company-registration-layout { margin-top: 34px !important; }
  #conteudo-principal[data-page="empresa-page"] .form-section { padding: 32px 24px; }
  #conteudo-principal[data-page="empresa-page"] .form-section h2 { align-items: flex-start; font-size: 19px; }
  #conteudo-principal[data-page="empresa-page"] .form-section h2::after { display: none; }
  #conteudo-principal[data-page="empresa-page"] .terms-group { margin: 28px 24px 0; }
  #conteudo-principal[data-page="empresa-page"] .cadastro-form > .btn-submit { width: calc(100% - 48px); margin: 24px 24px 34px; }
}

/* Área da Empresa — apresentação antes do cadastro */
.company-area-hero { position: relative; isolation: isolate; overflow: hidden; padding: 92px 0 104px; background: radial-gradient(circle at 12% 12%,rgba(41,145,170,.28),transparent 28%), linear-gradient(128deg,#032844,#084867 72%,#07566d); color: #fff; }
.company-area-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: .18; background-image: radial-gradient(rgba(255,255,255,.52) .7px,transparent .7px); background-size: 22px 22px; mask-image: linear-gradient(90deg,black,transparent 70%); }
.company-area-hero::after { content: ''; position: absolute; z-index: -1; right: -170px; bottom: -300px; width: 570px; height: 570px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018); }
.company-area-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(390px,.8fr); align-items: center; gap: clamp(48px,7vw,96px); }
.company-area-hero-copy h1 { max-width: 760px; margin-bottom: 25px; color: #fff; font-size: clamp(46px,5.5vw,72px); line-height: 1.02; letter-spacing: -.055em; }
.company-area-hero-copy > p { max-width: 670px; margin-bottom: 34px; color: #d1e2e9; font-size: 17px; line-height: 1.75; }
.company-area-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.company-area-text-link { display: inline-flex; align-items: center; gap: 9px; color: #fff; font-size: 12px; font-weight: 800; text-decoration: none; }
.company-area-text-link i { color: #ff9a4d; }
.company-area-trust { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 30px; color: #afc8d3; font-size: 11px; font-weight: 700; }
.company-area-trust span { display: inline-flex; align-items: center; gap: 7px; }
.company-area-trust i { color: #4ad6a7; }
.company-area-hero-panel { padding: 18px; border: 1px solid rgba(255,255,255,.2); border-radius: 29px; background: rgba(255,255,255,.09); box-shadow: 0 30px 70px rgba(0,0,0,.18); backdrop-filter: blur(14px); }
.company-panel-label { display: inline-flex; margin: 4px 4px 16px; padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.1); color: #ffad70; font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.company-panel-main { display: grid; grid-template-columns: auto 1fr; gap: 18px; padding: 26px; border-radius: 20px; background: rgba(2,34,56,.55); }
.company-panel-main > i { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: rgba(255,255,255,.1); color: #ff9a4d; font-size: 22px; }
.company-panel-main strong { display: block; margin: 4px 0 8px; font-size: 18px; line-height: 1.3; }
.company-panel-main p { color: #bcd1da; font-size: 11px; line-height: 1.65; }
.company-panel-stats { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin-top: 10px; }
.company-panel-stats > div { padding: 20px; border-radius: 17px; background: rgba(255,255,255,.075); }
.company-panel-stats strong,.company-panel-stats span { display: block; }
.company-panel-stats strong { margin-bottom: 5px; color: #fff; font-size: 13px; }
.company-panel-stats span { color: #aac3ce; font-size: 9px; line-height: 1.45; }
.company-benefits { position: relative; padding: 112px 0 124px; }
.company-benefit-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.company-benefit-card { position: relative; isolation: isolate; overflow: hidden; min-height: 390px; padding: 36px; transition: translate .3s ease,box-shadow .3s ease; }
.company-benefit-card::after { content: ''; position: absolute; z-index: -1; right: -75px; bottom: -80px; width: 180px; height: 180px; border-radius: 50%; background: rgba(35,133,160,.06); transition: scale .4s ease; }
.company-benefit-card:hover::after { scale: 1.35; }
.company-benefit-card:hover { translate: 0 -7px; box-shadow: 0 28px 60px rgba(5,45,78,.13) !important; }
.company-benefit-top { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; margin-bottom: 62px; }
.company-benefit-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 18px; background: #e5f2f5; color: var(--azul-coep); font-size: 20px; }
.company-benefit-card:nth-child(2) .company-benefit-icon { background: #fff0e4; color: #c75b08; }
.company-benefit-card:nth-child(3) .company-benefit-icon { background: #e3f4ef; color: #14745e; }
.company-benefit-label { color: #718895; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.company-benefit-top small { color: #b2c2c9; font-size: 11px; font-weight: 900; }
.company-benefit-card h3 { margin-bottom: 17px; color: var(--azul-profundo); font-size: 25px; letter-spacing: -.035em; }
.company-benefit-card p { color: #526875; font-size: 15px; line-height: 1.75; }
.company-benefit-featured { translate: 0 -12px; border-color: rgba(244,123,32,.24) !important; box-shadow: 0 25px 62px rgba(5,45,78,.12) !important; }
.company-benefit-featured:hover { translate: 0 -19px; }
.company-benefit-featured::after { background: rgba(244,123,32,.07); }
.company-process { padding: 112px 0; background: linear-gradient(145deg,#edf5f7,#f8fafb); }
.company-process-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(440px,1fr); gap: clamp(54px,8vw,110px); }
.company-process-heading { align-self: center; }
.company-process-heading h2 { margin-bottom: 20px; color: var(--azul-profundo); font-size: clamp(38px,4.4vw,56px); line-height: 1.08; letter-spacing: -.05em; }
.company-process-heading > p { margin-bottom: 30px; color: #526976; line-height: 1.8; }
.company-process-heading .action-btn { display: inline-flex; align-items: center; gap: 9px; }
.company-process-list { margin: 0; padding: 0; list-style: none; }
.company-process-list li { display: grid; grid-template-columns: 58px 1fr; gap: 20px; margin-bottom: 13px; padding: 24px; border: 1px solid rgba(8,59,102,.09); border-radius: 19px; background: rgba(255,255,255,.78); box-shadow: 0 12px 30px rgba(5,45,78,.05); }
.company-process-list li > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: var(--azul-profundo); color: #ff9a4d; font-size: 10px; font-weight: 900; }
.company-process-list h3 { margin: 2px 0 6px; color: var(--azul-profundo); font-size: 18px; }
.company-process-list p { color: #5c717c; font-size: 12px; line-height: 1.55; }
.company-legal-callout { padding: 90px 0; }
.company-legal-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 28px; padding: 38px 42px; }
.company-legal-icon { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 21px; background: #fff0e4; color: var(--laranja-coep); font-size: 24px; }
.company-legal-card .content-kicker { margin-bottom: 7px; }
.company-legal-card h2 { margin-bottom: 8px; color: var(--azul-profundo); font-size: 28px; letter-spacing: -.04em; }
.company-legal-card p { color: #5a707c; font-size: 13px; line-height: 1.6; }
.company-legal-card .action-btn { display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; }
.company-final-cta { padding: 105px 0; background: var(--laranja-coep); color: #fff; text-align: center; }
.company-final-cta .container { max-width: 850px; }
.company-final-cta .content-kicker { color: #fff3e9; }
.company-final-cta h2 { margin-bottom: 19px; color: #fff; font-size: clamp(39px,5vw,58px); line-height: 1.06; letter-spacing: -.05em; }
.company-final-cta p { margin: 0 auto 30px; color: #fff1e6; font-size: 16px; line-height: 1.7; }
.company-final-cta .btn { background: var(--azul-profundo); border-color: var(--azul-profundo); }
@media (max-width: 950px) {
  .company-area-hero-grid,.company-process-grid { grid-template-columns: 1fr; }
  .company-area-hero-panel { max-width: 650px; }
  .company-benefit-grid { grid-template-columns: 1fr; }
  .company-benefit-card { min-height: 270px; }
  .company-benefit-featured,.company-benefit-featured:hover { translate: 0; }
  .company-legal-card { grid-template-columns: auto 1fr; }
  .company-legal-card .action-btn { grid-column: 1/-1; width: 100%; justify-content: center; }
}
@media (max-width: 576px) {
  .company-area-hero { padding: 60px 0 72px; }
  .company-area-hero-copy h1 { font-size: 43px; }
  .company-area-actions { align-items: stretch; flex-direction: column; }
  .company-area-actions .btn { width: 100%; text-align: center; }
  .company-area-text-link { justify-content: center; }
  .company-area-hero-panel { padding: 10px; border-radius: 22px; }
  .company-panel-main { grid-template-columns: 1fr; padding: 22px; }
  .company-panel-stats { grid-template-columns: 1fr; }
  .company-benefits,.company-process { padding: 78px 0; }
  .company-benefit-card { min-height: 290px; padding: 28px; }
  .company-process-list li { grid-template-columns: 48px 1fr; padding: 19px 16px; }
  .company-legal-callout { padding: 66px 0; }
  .company-legal-card { grid-template-columns: 1fr; padding: 28px; }
  .company-final-cta { padding: 78px 0; }
  .company-final-cta h2 { font-size: 40px; }
}

/* Área para Escolas — jornada de parceria */
#conteudo-principal[data-page="escola-page"] {
  background:
    radial-gradient(circle at 7% 28%,rgba(39,143,166,.11),transparent 24%),
    radial-gradient(circle at 94% 70%,rgba(244,123,32,.08),transparent 21%),
    #f5f8f9;
}
#conteudo-principal[data-page="escola-page"] .school-modern-hero { padding-block: 84px; }
#conteudo-principal[data-page="escola-page"] .school-hero-grid {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(480px,1.1fr);
  align-items: center;
  gap: clamp(44px,7vw,96px);
  text-align: left;
}
#conteudo-principal[data-page="escola-page"] .school-hero-copy h1,
#conteudo-principal[data-page="escola-page"] .school-hero-copy p { margin-inline: 0; }
.school-page-content { padding-top: 18px; }
.school-action-cards .action-card { background: linear-gradient(155deg,rgba(255,255,255,.98),rgba(247,251,252,.96)); }
.school-action-cards .action-card:first-child .card-feature-icon { background: #e5f2f5; color: var(--azul-coep); }
.school-action-cards .school-card-featured .card-feature-icon { background: #fff0e4; color: #c65a08; }
.school-action-cards .action-card:nth-child(3) .card-feature-icon { background: #e3f4ef; color: #14745e; }
.school-contact-banner { background: linear-gradient(125deg,#073a58,#075268) !important; }

@media (max-width: 1050px) {
  #conteudo-principal[data-page="escola-page"] .school-hero-grid { grid-template-columns: 1fr; text-align: center; }
  #conteudo-principal[data-page="escola-page"] .school-hero-copy { align-items: center; }
  #conteudo-principal[data-page="escola-page"] .school-hero-copy h1,
  #conteudo-principal[data-page="escola-page"] .school-hero-copy p { margin-inline: auto; }
  .school-hero-path { width: 100%; max-width: 720px; margin-inline: auto; }
}
@media (max-width: 576px) {
  #conteudo-principal[data-page="escola-page"] .school-modern-hero { padding-block: 52px; }
  .school-action-cards .action-card { min-height: 350px; }
}

/* Vagas — filtros laterais e resultados modernos */
#conteudo-principal[data-page="vagas-page"] {
  overflow: visible;
  background:
    radial-gradient(circle at 4% 27%,rgba(37,137,163,.1),transparent 23%),
    radial-gradient(circle at 96% 74%,rgba(244,123,32,.07),transparent 20%),
    #f4f8f9;
}
.vacancies-modern-layout {
  display: grid;
  grid-template-columns: 310px minmax(0,1fr);
  align-items: start;
  gap: 30px;
  margin: 0 0 30px !important;
}
#conteudo-principal[data-page="vagas-page"] .filtros-vagas {
  position: sticky;
  top: 116px;
  align-self: start;
  overflow: hidden;
  margin: 0 !important;
  padding: 34px 28px !important;
  border-color: rgba(255,255,255,.08) !important;
  background: linear-gradient(155deg,#073a58,#052c47) !important;
  color: #fff;
  box-shadow: 0 24px 58px rgba(5,45,78,.16) !important;
}
#conteudo-principal[data-page="vagas-page"] .filtros-vagas::after { content: ''; position: absolute; right: -90px; bottom: -110px; width: 220px; height: 220px; border: 45px solid rgba(255,255,255,.035); border-radius: 50%; pointer-events: none; }
.vacancies-filter-kicker { display: block; margin-bottom: 9px; color: #ff9a4d; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas h2 { margin-bottom: 12px !important; color: #fff !important; font-size: 28px; }
.vacancies-filter-copy { margin-bottom: 27px; color: #b7cdd7; font-size: 11px; line-height: 1.65; }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 17px; }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid .form-group { width: 100%; margin: 0; }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas .form-group label { margin-bottom: 8px; color: #d8e6ec; font-size: 10px; font-weight: 800; }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas .form-control { width: 100%; min-height: 48px; border-color: rgba(255,255,255,.16); background-color: rgba(255,255,255,.09); color: #fff; }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas .form-control:focus { border-color: #ff9a4d; background-color: rgba(255,255,255,.13); box-shadow: 0 0 0 4px rgba(244,123,32,.14); }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas .form-control option { color: #142b39; background: #fff; }
#conteudo-principal[data-page="vagas-page"] .filtros-vagas button { width: 100% !important; min-height: 48px; margin-top: 3px; }
.vacancies-results-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.modern-page .lista-vagas .vacancies-results-heading h2 { margin: 0 !important; color: var(--azul-profundo) !important; font-size: 34px; letter-spacing: -.04em; }
.vacancies-results-heading .content-kicker { margin-bottom: 9px; }
.vacancies-count { flex: 0 0 auto; margin-bottom: 5px; padding: 8px 13px; border: 1px solid #d7e2e7; border-radius: 999px; background: #fff; color: #58707c; font-size: 10px; font-weight: 800; }
#conteudo-principal[data-page="vagas-page"] .vaga-card {
  isolation: isolate;
  margin-bottom: 24px;
  padding: 34px 36px !important;
  border-left: 0 !important;
  transition: translate .3s ease,box-shadow .3s ease,border-color .3s ease;
}
#conteudo-principal[data-page="vagas-page"] .vaga-card::before { width: 5px; background: linear-gradient(180deg,var(--laranja-coep),#ffad70); }
#conteudo-principal[data-page="vagas-page"] .vaga-card::after { content: ''; position: absolute; z-index: -1; right: -85px; bottom: -95px; width: 190px; height: 190px; border-radius: 50%; background: rgba(35,133,160,.045); transition: scale .35s ease; }
#conteudo-principal[data-page="vagas-page"] .vaga-card:hover { translate: 0 -5px; transform: none; border-color: rgba(8,59,102,.16) !important; box-shadow: 0 28px 60px rgba(5,45,78,.12) !important; }
#conteudo-principal[data-page="vagas-page"] .vaga-card:hover::after { scale: 1.3; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:first-child { align-items: center; margin-bottom: 20px !important; gap: 15px; }
#conteudo-principal[data-page="vagas-page"] .vaga-card h3 { color: var(--azul-profundo) !important; font-size: 24px !important; letter-spacing: -.035em; }
#conteudo-principal[data-page="vagas-page"] .vaga-tipo { padding: 7px 12px !important; box-shadow: 0 8px 18px rgba(5,45,78,.1); color: #fff; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(2) { gap: 10px !important; margin-bottom: 22px !important; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(2) > div { gap: 8px !important; padding: 9px 12px; border-radius: 10px; background: #f1f6f7; color: #536b77; font-size: 11px; font-weight: 700; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(2) i { color: var(--azul-coep) !important; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(3) { margin-bottom: 24px !important; padding: 21px 22px; border: 1px solid #e2e9ed; border-radius: 15px; background: #fafcfc; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(3) p { margin-bottom: 9px; font-size: 13px; line-height: 1.7; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(3) p:last-child { margin-bottom: 0; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(4) { align-items: center; padding-top: 4px; }
#conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(4) span { color: #7a8e98 !important; font-size: 10px !important; font-weight: 700; }
#conteudo-principal[data-page="vagas-page"] .btn-candidatar { min-width: 176px; }

@media (max-width: 980px) {
  .vacancies-modern-layout { grid-template-columns: 1fr; }
  #conteudo-principal[data-page="vagas-page"] .filtros-vagas { position: relative; top: auto; }
  #conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 576px) {
  #conteudo-principal[data-page="vagas-page"] .filtros-vagas { padding: 26px 22px !important; }
  #conteudo-principal[data-page="vagas-page"] .filtros-vagas-grid { grid-template-columns: 1fr; }
  .vacancies-results-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .modern-page .lista-vagas .vacancies-results-heading h2 { font-size: 30px; }
  #conteudo-principal[data-page="vagas-page"] .vaga-card { padding: 27px 24px !important; }
  #conteudo-principal[data-page="vagas-page"] .vaga-card > div:first-child { align-items: flex-start; flex-direction: column-reverse; }
  #conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(2) { align-items: stretch; flex-direction: column; }
  #conteudo-principal[data-page="vagas-page"] .vaga-card > div:nth-child(4) { align-items: stretch; flex-direction: column; }
  #conteudo-principal[data-page="vagas-page"] .btn-candidatar { width: 100%; }
}

/* Legislação — filtro lateral e biblioteca de documentos */
#conteudo-principal[data-page="legislacao-page"] {
  overflow: visible;
  background:
    radial-gradient(circle at 5% 28%,rgba(37,137,163,.1),transparent 23%),
    radial-gradient(circle at 95% 74%,rgba(244,123,32,.07),transparent 20%),
    #f4f8f9;
}
.legislation-modern-layout { display: grid; grid-template-columns: 310px minmax(0,1fr); align-items: start; gap: 0 30px; }
.legislation-modern-layout > .section-title { grid-column: 1/-1; width: 100%; max-width: 790px; margin: 0 auto 44px !important; text-align: center; }
.legislation-modern-layout > .section-title h2 { font-size: clamp(36px,4vw,52px); }
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao {
  position: sticky;
  top: 116px;
  align-self: start;
  overflow: hidden;
  margin: 0 !important;
  padding: 34px 28px !important;
  border-color: rgba(255,255,255,.08) !important;
  background: linear-gradient(155deg,#073a58,#052c47) !important;
  color: #fff;
  box-shadow: 0 24px 58px rgba(5,45,78,.16) !important;
}
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao::after { content: ''; position: absolute; right: -90px; bottom: -110px; width: 220px; height: 220px; border: 45px solid rgba(255,255,255,.035); border-radius: 50%; pointer-events: none; }
.legislation-filter-kicker { position: relative; z-index: 1; display: block; margin-bottom: 9px; color: #ff9a4d; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao h3 { position: relative; z-index: 1; margin-bottom: 12px !important; color: #fff !important; font-size: 27px; }
.legislation-filter-copy { position: relative; z-index: 1; margin-bottom: 27px; color: #b7cdd7; font-size: 11px; line-height: 1.65; }
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao > div { position: relative; z-index: 1; display: grid !important; grid-template-columns: 1fr; gap: 17px !important; }
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao .form-control { width: 100%; min-width: 0 !important; min-height: 48px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--page-control-radius); background-color: rgba(255,255,255,.09); color: #fff; }
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao .form-control:focus { border-color: #ff9a4d; background-color: rgba(255,255,255,.13); box-shadow: 0 0 0 4px rgba(244,123,32,.14); }
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao .form-control option { color: #142b39; background: #fff; }
#conteudo-principal[data-page="legislacao-page"] .filtros-legislacao .action-btn { width: 100%; min-width: 0 !important; min-height: 48px; }
.legislation-results-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.legislation-results-heading .content-kicker { margin-bottom: 9px; }
.legislation-results-heading h2 { margin: 0; color: var(--azul-profundo); font-size: 34px; letter-spacing: -.04em; }
.legislation-count { flex: 0 0 auto; margin-bottom: 5px; padding: 8px 13px; border: 1px solid #d7e2e7; border-radius: 999px; background: #fff; color: #58707c; font-size: 10px; font-weight: 800; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item { isolation: isolate; overflow: hidden; margin-bottom: 24px !important; padding: 32px 34px !important; transition: translate .3s ease,box-shadow .3s ease,border-color .3s ease; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item::after { content: ''; position: absolute; z-index: -1; right: -85px; bottom: -95px; width: 190px; height: 190px; border-radius: 50%; background: rgba(35,133,160,.045); transition: scale .35s ease; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item:hover { translate: 0 -5px; border-color: rgba(8,59,102,.16) !important; box-shadow: 0 28px 60px rgba(5,45,78,.12) !important; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item:hover::after { scale: 1.3; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child { align-items: center !important; gap: 26px; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item h3 { margin-bottom: 13px !important; font-size: 22px; line-height: 1.35; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item p { margin-bottom: 16px !important; font-size: 13px; line-height: 1.7; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-tag { box-shadow: 0 7px 15px rgba(5,45,78,.09); }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child > div:last-child { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 10px; margin-top: 0 !important; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item .action-btn { display: inline-flex !important; align-items: center; justify-content: center; width: 168px; min-height: 44px; margin: 0 !important; white-space: nowrap; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div[id] { margin-top: 24px !important; padding: 22px !important; background: #f6fafb !important; }
#conteudo-principal[data-page="legislacao-page"] .legislacao-item > div[id] li { margin-bottom: 7px; line-height: 1.55; }
.legislation-modern-layout > .legislacao-lista { grid-column: 2; }

@media (max-width: 1050px) {
  .legislation-modern-layout { grid-template-columns: 1fr; }
  .legislation-modern-layout > .section-title,.legislation-modern-layout > .legislacao-lista { grid-column: auto; }
  #conteudo-principal[data-page="legislacao-page"] .filtros-legislacao { position: relative; top: auto; margin-bottom: 32px !important; }
  #conteudo-principal[data-page="legislacao-page"] .filtros-legislacao > div { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  #conteudo-principal[data-page="legislacao-page"] .filtros-legislacao > div { grid-template-columns: 1fr; }
  .legislation-results-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .legislation-results-heading h2 { font-size: 30px; }
  #conteudo-principal[data-page="legislacao-page"] .legislacao-item { padding: 27px 24px !important; }
  #conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child { align-items: stretch !important; flex-direction: column; }
  #conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child > div { min-width: 0 !important; width: 100%; }
  #conteudo-principal[data-page="legislacao-page"] .legislacao-item > div:first-child > div:last-child { grid-template-columns: 1fr; }
  #conteudo-principal[data-page="legislacao-page"] .legislacao-item .action-btn { width: 100%; }
}

/* Contato — canais e formulário */
#conteudo-principal[data-page="contato-page"] {
  background:
    radial-gradient(circle at 5% 25%,rgba(37,137,163,.11),transparent 24%),
    radial-gradient(circle at 95% 76%,rgba(244,123,32,.07),transparent 21%),
    #f4f8f9;
}
.contact-modern-layout { display: grid; grid-template-columns: 370px minmax(0,1fr); align-items: start; max-width: 1180px !important; gap: 28px !important; }
.contact-info-panel { position: relative; overflow: hidden; padding: 38px 32px; background: linear-gradient(155deg,#073a58,#052c47) !important; color: #fff; }
.contact-info-panel::after { content: ''; position: absolute; right: -105px; bottom: -115px; width: 240px; height: 240px; border: 48px solid rgba(255,255,255,.035); border-radius: 50%; pointer-events: none; }
.contact-info-panel h2 { margin-bottom: 16px; color: #fff; font-size: 31px; line-height: 1.12; letter-spacing: -.04em; }
.contact-info-panel > p { margin-bottom: 30px; color: #b8ced8; font-size: 13px; line-height: 1.7; }
.contact-channel-list { position: relative; z-index: 1; display: grid; gap: 11px; }
.contact-channel { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 13px; min-height: 78px; padding: 14px; border: 1px solid rgba(255,255,255,.1); border-radius: 16px; background: rgba(255,255,255,.06); color: #fff; text-decoration: none; transition: background-color .25s ease,translate .25s ease,border-color .25s ease; }
.contact-channel:hover { translate: 4px 0; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.1); }
.contact-channel > span { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 13px; background: rgba(255,255,255,.09); color: #ff9a4d; }
.contact-channel > i { color: #6f98aa; font-size: 10px; }
.contact-channel small,.contact-channel strong,.contact-channel em { display: block; min-width: 0; }
.contact-channel small { margin-bottom: 4px; color: #8fb0bf; font-size: 8px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.contact-channel strong { overflow-wrap: anywhere; color: #fff; font-size: 11px; line-height: 1.4; }
.contact-channel em { margin-top: 3px; color: #abc4cf; font-size: 9px; font-style: normal; }
.contact-panel-note { position: relative; z-index: 1; display: grid; grid-template-columns: auto 1fr; gap: 12px; margin-top: 28px; padding: 17px; border-radius: 15px; background: rgba(74,214,167,.08); }
.contact-panel-note > i { margin-top: 2px; color: #4ad6a7; }
.contact-panel-note strong,.contact-panel-note small { display: block; }
.contact-panel-note strong { margin-bottom: 4px; font-size: 11px; }
.contact-panel-note small { color: #a9c2cd; font-size: 9px; line-height: 1.55; }
#conteudo-principal[data-page="contato-page"] .cadastro-form { max-width: none; padding: 46px; }
#conteudo-principal[data-page="contato-page"] .form-section { margin: 0; padding: 0; border: 0; }
.contact-form-kicker { display: block; margin-bottom: 10px; color: var(--laranja-coep); font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
#conteudo-principal[data-page="contato-page"] .form-section h2 { display: flex; align-items: center; margin-bottom: 12px; padding: 0; border: 0; color: var(--azul-profundo); font-size: 28px; }
#conteudo-principal[data-page="contato-page"] .form-section h2 i { width: 42px; height: 42px; border-radius: 14px; }
.contact-form-intro { margin-bottom: 32px; padding-bottom: 25px; border-bottom: 1px solid #e2eaed; color: #627782; font-size: 13px; line-height: 1.65; }
#conteudo-principal[data-page="contato-page"] .form-group { margin-bottom: 21px; }
#conteudo-principal[data-page="contato-page"] .form-group label { margin-bottom: 9px; color: #304958; font-size: 12px; font-weight: 800; }
#conteudo-principal[data-page="contato-page"] .form-group input,
#conteudo-principal[data-page="contato-page"] .form-group select,
#conteudo-principal[data-page="contato-page"] .form-group textarea { border-color: #d3dfe4; background: #f8fafb; }
#conteudo-principal[data-page="contato-page"] #btn-enviar-mensagem { margin-top: 10px; }
#conteudo-principal[data-page="contato-page"] #mensagem-confirmacao { border: 1px solid #bfe1d1; border-radius: 14px !important; background: #edf9f3 !important; }

@media (max-width: 950px) {
  .contact-modern-layout { grid-template-columns: 1fr; }
  .contact-channel-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .contact-channel { grid-template-columns: auto 1fr; }
  .contact-channel > i { display: none; }
}
@media (max-width: 700px) {
  .contact-channel-list { grid-template-columns: 1fr; }
  .contact-channel { grid-template-columns: auto 1fr auto; }
  .contact-channel > i { display: block; }
  #conteudo-principal[data-page="contato-page"] .cadastro-form { padding: 30px 24px; }
  #conteudo-principal[data-page="contato-page"] .form-section h2 { font-size: 24px; }
}

/* Aproveitamento horizontal da tela de Legislação no mobile */
@media (max-width: 768px) {
  #conteudo-principal[data-page="legislacao-page"] > .container {
    padding-inline: 10px;
  }

  #conteudo-principal[data-page="legislacao-page"] .institucional-content {
    padding-block: 32px;
  }

  #conteudo-principal[data-page="legislacao-page"] .institucional-content > div {
    padding: 28px 12px !important;
  }

  #conteudo-principal[data-page="legislacao-page"] .filtros-legislacao {
    padding: 16px !important;
  }

  #conteudo-principal[data-page="legislacao-page"] .legislacao-item {
    padding: 18px 14px !important;
  }
}
