:root {
    --primary-background: #ffffff;
    --primary-text: #1a1a1a;
    --secondary-background: #f8fafc;
    --secondary-text: #4b5563;
    --accent-background: #004a99;
    --accent-text: #ffffff;
    --success-color: #16a34a;
    --warning-color: #ca8a04;
    --footer-background: #111827;
    --footer-text: #f9fafb;
    --main-font: 'Inter', sans-serif;
    --heading-font: 'Lexend', sans-serif;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--main-font);
    color: var(--primary-text);
    background-color: var(--primary-background);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--heading-font);
    font-weight: 700;
    margin-bottom: 1rem;
}

a,
a:hover,
a:focus {
    text-decoration: none;
    transition: color 0.3s ease, opacity 0.3s ease;
}

button {
    cursor: pointer;
    border: none;
    transition: transform 0.2s ease, filter 0.2s ease;
}

button:active {
    transform: scale(0.98);
}

img {
    max-width: 100%;
    display: block;
    height: auto;
}

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

@media (max-width: 768px) {
    h1 {
        font-size: clamp(1.875rem, 8vw, 2.25rem);
    }

    h2 {
        font-size: clamp(1.5rem, 6vw, 1.875rem);
    }

    h3 {
        font-size: clamp(1.25rem, 5vw, 1.5rem);
    }

    .mobile-break {
        word-break: break-all;
    }
}

.focus-visible:focus {
    outline: 2px solid var(--accent-background);
    outline-offset: 2px;
}

/* ===== header_main ===== */
.hyphens-auto {
    hyphens: auto
}

.js-nav-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: 40
}

#site-header {
    border-bottom: 1px solid #f1f5f9;
    overflow: visible !important
}

.container {
    max-width: 1200px;
    margin: 0 auto
}

.js-nav-menu.max-h-\[500px\] {
    max-height: 500px
}

/* ===== hero_section ===== */
#hero {
    overflow: hidden;
}

#hero h1,
#hero p {
    hyphens: auto;
    word-wrap: break-word;
}

#hero .js-smooth-scroll {
    cursor: pointer;
    text-decoration: none;
}

@media (max-width: 767px) {
    #hero h1 {
        line-height: 1.2;
    }
}

/* ===== concepts_section ===== */
#o-que-e-licenciamento {
    scroll-margin-top: 80px;
}

.hyphens-auto {
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
    word-break: break-word;
}

/* ===== process_timeline ===== */
.js-timeline-item {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease;
}

.js-timeline-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

h2,
h3 {
    hyphens: auto;
}

/* ===== es_details ===== */
#especificos-es table tbody tr:hover {
    background-color: rgba(0, 74, 153, 0.05);
}

#especificos-es .ph-device-mobile,
#especificos-es .ph-printer {
    vertical-align: middle;
}

/* ===== portal_content ===== */
.js-card:hover {
    transform: translateY(-5px);
}

.js-modal-content {
    scrollbar-width: thin;
    scrollbar-color: var(--accent-background) transparent;
}

/* ===== task_checklist ===== */
#checklist-licenciamento .js-checklist-item i.ph-check-circle.text-\[\#16a34a\] {
    color: #16a34a !important;
}

#checklist-licenciamento .js-checklist-item {
    cursor: default
}

#checklist-licenciamento .hyphens-auto {
    hyphens: auto;
}

.container {
    position: relative;
    z-index: 2;
}

/* ===== faq_accordion ===== */
.js-accordion-item:hover {
    border-color: var(--accent-background);
}

.js-accordion-content p {
    line-height: 1.6;
}

/* ===== common_mistakes ===== */
#erros-comuns h2,
#erros-comuns h3,
#erros-comuns p {
    hyphens: auto;
    word-wrap: break-word
}

#erros-comuns .shadow-md {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)
}

/* ===== article_grid ===== */
#recursos-educativos {
    hyphens: auto;
}

.js-article-card {
    transition: transform 0.3s ease;
}

.js-article-card:hover {
    transform: translateY(-5px);
}

#article-modal {
    backdrop-filter: blur(4px);
}

/* ===== mandatory_notice ===== */
#aviso-independencia {
    overflow: hidden;
}

#aviso-independencia h2 {
    color: var(--primary-text);
}

#aviso-independencia p {
    color: var(--secondary-text);
}

#aviso-independencia .ph-info {
    color: var(--accent-text);
}

#aviso-independencia .bg-\[var\(--secondary-background\)\] {
    background-color: var(--secondary-background);
}

#aviso-independencia .border-\[var\(--accent-background\)\] {
    border-color: var(--accent-background);
}

/* ===== final_summary ===== */
#resumo-final {
    overflow: hidden;
}

#resumo-final h2,
#resumo-final h3 {
    color: var(--primary-text);
}

#resumo-final p {
    color: var(--secondary-text);
}

#resumo-final i {
    color: var(--accent-background);
}

/* ===== footer ===== */
.footer-section {
    background-color: var(--footer-background);
    color: var(--footer-text);
}

.footer-section a {
    text-decoration: none;
}

.footer-section .container {
    max-width: 1200px;
}
