/* ============================================================
   Tema De Martini — valores medidos no site original (Elementor)
   ============================================================ */
:root {
    --navy: #092E4E;
    --navy-dark: #061f36;
    --gold: #D9BC5A;
    --gold-dark: #c4a640;
    --ink: #1C1D1E;
    --text: #5c5c5c;
    --beige: #FAF6E8;
    --band: rgba(43, 63, 87, .06);
    --slate: #69727D;
    --slate-ink: #2B3F57;
    --white: #fff;
    --line: #e4e4e4;
    --font: 'Heebo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --wrap: 1300px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0; font-family: var(--font); font-size: 18px; line-height: 28px; font-weight: 400;
    color: var(--text); background: var(--white);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-decoration: none; }
a:hover { color: var(--gold-dark); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font); font-weight: 500; color: var(--ink); margin: 0; }
h1 { font-size: 45px; line-height: 50px; }
h2 { font-size: 32px; line-height: 42px; }
h3 { font-size: 22px; line-height: 30px; }
h4 { font-size: 20px; line-height: 30px; }
p { margin: 0 0 20px; }
p:last-child { margin-bottom: 0; }
ul { padding: 0; margin: 0; list-style: none; }
.ico { display: inline-block; vertical-align: -.125em; }
.center { text-align: center; }
[hidden] { display: none !important; }

.skip-link { position: absolute; left: -999px; top: 0; background: var(--gold); color: var(--ink); padding: 10px 16px; z-index: 1000; }
.skip-link:focus { left: 8px; top: 8px; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

.container { width: 100%; max-width: var(--wrap); margin-inline: auto; }
.container--prose { max-width: 900px; padding-inline: 20px; }
.container--800 { max-width: 800px; }
.container--1300 { max-width: 1300px; padding: 10px; }
.container--1100 { max-width: 1100px; padding: 10px; }

/* ---------- Botões ---------- */
.btn, form .button, form button[type="submit"], form input[type="submit"] {
    display: inline-block; font: 500 16px/28px var(--font); padding: 10px 32px; border: 3px solid transparent; border-radius: 0;
    cursor: pointer; text-align: center; transition: background .3s, color .3s, border-color .3s;
}
.btn-gold { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.btn-gold:hover { background: var(--gold-dark); border-color: var(--gold-dark); color: var(--ink); }
.btn-navy, form .button, form button[type="submit"], form input[type="submit"] { background: var(--navy); color: var(--white); border-color: var(--navy); }
.btn-navy:hover, form .button:hover, form button[type="submit"]:hover { background: var(--navy-dark); border-color: var(--navy-dark); color: var(--gold); }
.btn-outline { background: transparent; color: var(--white); border-color: var(--gold); }
.btn-outline:hover { background: var(--gold); color: var(--ink); }
.btn-outline--white { background: transparent; color: var(--white); border-color: var(--white); }
.btn-outline--white:hover { background: var(--white); color: var(--navy); }

/* ---------- Cabeçalho ---------- */
.site-header { position: sticky; top: 0; z-index: 100; background: var(--navy); height: 120px; }
.site-header__inner {
    max-width: var(--wrap); margin-inline: auto; height: 120px; padding-top: 20px;
    display: grid; grid-template-columns: 23.615% 57.385% 18.4%; align-items: start;
}
.site-header__logo { display: block; padding: 20px; }
.site-header__logo img { width: 267px; height: 40px; max-width: none; }
.site-menu { display: contents; }
.site-nav { padding: 15px 40px 0 38px; }
.site-nav ul { display: flex; gap: 38px; }
.site-nav ul a { display: block; white-space: nowrap; color: var(--white); font: 500 16px/25px var(--font); padding: 6px 1px; position: relative; }
.site-nav li.is-active > a, .site-nav ul a:hover { color: var(--gold); }
.site-nav ul a::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: var(--gold); opacity: 0; transition: opacity .3s; }
.site-nav li.is-active > a::after, .site-nav ul a:hover::after { opacity: 1; }
.site-header__cta { justify-self: start; margin-top: 13px; white-space: nowrap; }

.nav-toggle { display: none; background: none; border: 0; width: 44px; height: 44px; padding: 10px; cursor: pointer; }
.nav-toggle span { display: block; height: 2px; background: var(--white); margin: 6px 0; transition: transform .25s, opacity .2s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ---------- Estrutura de seções ---------- */
.page-band { background: var(--band); padding: 50px 0 42px; }
.page-band h1 { text-align: center; color: #000; }
.section { padding: 100px 0; }
.section--90 { padding: 90px 0; }
.section--top0 { padding-top: 0; }
.section--tight { padding: 40px 0 60px; }
.section--beige { background: var(--beige); }
.section--navy { background: var(--navy); color: var(--white); }
.section__title { text-align: center; margin-bottom: 40px; }
.section__cta { text-align: center; margin: 20px 0 0; padding-top: 30px; }

.split { display: grid; grid-template-columns: 46.08% 53.92%; align-items: center; }
.split__media img { width: 100%; height: 600px; object-fit: cover; }
.split__text { padding-left: 50px; }
.split__text h2 { height: 35px; margin-bottom: 20px; }
.split--half { grid-template-columns: 50% 50%; }
.split--half .split__media { padding-right: 20px; }
.split--half .split__media img { height: 600px; }
.split--half .split__text { padding-left: 20px; }
.split--half .split__text h2 { height: auto; }
.split--reverse { grid-template-columns: 50% 50%; }
.split--reverse .split__media { order: 2; padding-right: 20px; }
.split--reverse .split__media img { height: 500px; }
.split--reverse .split__text { padding: 0 50px 0 0; }
.split--reverse .split__text h2 { height: auto; }

.prose { color: var(--text); }
.prose p { margin: 0 0 14.4px; }
.prose p:last-child { margin-bottom: 0; }
.prose h2, .prose h3, .prose h4 { margin: 30px 0 12px; }
.prose ul { list-style: disc; padding-left: 1.4em; margin: 0 0 20px; }
.prose ol { padding-left: 1.4em; margin: 0 0 20px; }
.prose li { margin-bottom: 6px; }
.prose a { text-decoration: underline; }
.prose strong { color: inherit; font-weight: 700; }
.prose--post { display: flow-root; }
.prose--post p, .prose--post p:last-child { margin: 0 0 14.4px; }
.prose--post h2, .prose--post h3, .prose--post h4 { margin: 8px 0 16px; }
.prose--post h2 { font-size: 32px; line-height: 42px; }
.prose--post h3 { font-size: 28px; line-height: 36px; }
.prose--post h4 { font-size: 24px; line-height: 30px; }
.prose--post ul, .prose--post ol { padding-left: 40px; margin: 0; }
.prose--post li { margin: 0; }
.prose--post strong { font-weight: 700; }
.prose--center { text-align: center; margin-bottom: 40px; }
.prose--lead { text-align: center; }

/* ---------- Texto livre (HTML do editor do WordPress) ---------- */
.ql { display: flow-root; }
.ql h2, .ql h3, .ql h4 { margin: 8px 0 16px; }
.ql h2 { font-size: 32px; line-height: 42px; }
.ql h3 { font-size: 28px; line-height: 36px; }
.ql h4 { font-size: 24px; line-height: 30px; }
.ql strong, .ql b { font-weight: 700; color: inherit; }
.ql ul, .ql ol { padding-left: 40px; margin: 0; }
.ql ul { list-style: disc; } .ql ol { list-style: decimal; }
.ql a { color: #CC3366; }

/* ---------- Grid de cards ---------- */
.grid { display: grid; gap: 35px 30px; }
.grid--3 { grid-template-columns: repeat(3, 1fr); }

.card { position: relative; background: var(--white); box-shadow: 0 0 10px rgba(0, 0, 0, .15); border-radius: 3px; overflow: hidden; display: flex; flex-direction: column; }
.card.is-hidden { display: none; }
.card__media { display: block; background: #e9ecef; aspect-ratio: 5 / 4; overflow: hidden; margin-bottom: 20px; }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__placeholder { display: block; width: 100%; height: 100%; }
.card__badge { position: absolute; top: 20px; right: 20px; background: var(--slate); color: var(--white); font: 400 12px/12px var(--font); text-transform: uppercase; padding: 7.2px 14.4px; }
.card__body { padding: 20px 30px 20px; display: flex; flex-direction: column; flex: 1; }
.card__title { font-size: 21px; line-height: 29.4px; margin: 0 0 10px; }
.card__title a { color: var(--navy); }
.card__title a:hover { color: var(--gold-dark); }
.card__date { font-size: 14px; line-height: 20px; margin-bottom: 10px; display: block; }
.card__excerpt { font-size: 16px; line-height: 24px; margin-bottom: 10px; }
.card__more-wrap { margin-bottom: 20px; font: 400 18px/28px var(--font); }
.card__more { color: var(--gold); font: 700 12px/28px var(--font); text-transform: uppercase; }

.pager { display: flex; justify-content: center; flex-wrap: wrap; gap: 14.5px; margin: 15px 0 20px; font-size: 18px; line-height: 28px; }
.pager__link { color: var(--slate-ink); }
.pager__link:hover { color: var(--gold-dark); }
.pager__link.is-current { color: var(--gold); }
.filter-note { text-align: center; margin-bottom: 30px; }


/* ---------- Card clássico de publicações (blog / relacionados) ---------- */
.post-card__thumb { display: block; aspect-ratio: 100 / 66; overflow: hidden; margin-bottom: 20px; background: #e9ecef; }
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card__title { font: 500 18px/36px var(--font); margin: 0; }
.post-card__title a { color: var(--navy); }
.post-card__title a:hover { color: var(--gold-dark); }
.post-card__meta { font: 400 12px/15.6px var(--font); color: #ADADAD; margin-bottom: 13px; }
.post-card__excerpt { margin-bottom: 10px; }
.post-card__excerpt p { font: 400 14px/21px var(--font); color: #777; margin: 0; }
.post-card .card__more-wrap { height: 29px; margin-bottom: 0; }
.post-card .card__more { text-transform: none; }
.pager--blog { margin-top: 40px; margin-bottom: 0; }
.pager--blog .pager__link { color: var(--navy); }
.pager--blog .pager__link.is-current { color: var(--gold); }
.pager--blog .pager__link:hover { color: var(--gold-dark); }
.pager__link--off { color: var(--navy); }

/* ---------- Pilares (missão/visão/valores) ---------- */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); }
.pillars .pillar { margin: 0 10px; }
.pillars .pillar:first-child { margin: 0 20px 0 0; }
.pillars--2 { grid-template-columns: 15% 35% 35% 15%; }
.pillars--2 .pillar:first-child { grid-column: 2; margin: 0 20px 0 0; }
.pillars--2 .pillar:nth-child(2) { grid-column: 3; margin: 0 10px; }
.pillar { padding: 30px; background: var(--white); box-shadow: 0 0 5px rgba(0, 0, 0, .18); }
.pillar__icon { height: 60px; width: auto; max-width: none; margin-bottom: 20px; }
.pillar h3 { font-size: 20px; line-height: 30px; color: var(--navy); margin-bottom: 20px; }
.pillar:first-child h3 { color: var(--slate-ink); }
.pillar p { font-size: 18px; line-height: 28px; margin: 0; }

/* ---------- Serviços ---------- */
.service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.service-grid--3 { grid-template-columns: repeat(3, 1fr); }
.service-grid--list { gap: 40px; padding-top: 20px; margin-top: 30px; }
.service { background: var(--beige); padding: 45px 40px; }
.service--white { background: var(--white); box-shadow: 0 0 10px rgba(0, 0, 0, .06); padding: 40px 24px 36px; }
.service h3 { font-size: 20px; line-height: 25px; color: var(--ink); margin: 8px 0 16px; }
.service p { margin: 0; }

/* ---------- Faixa de fotos / logos ---------- */
.photo-strip { display: grid; grid-template-columns: 40% 30% 30%; }
.photo-strip > div { padding: 5px; }
.photo-strip img { width: 100%; height: 380px; object-fit: cover; }
.logo-grid { display: grid; grid-template-columns: repeat(6, 1fr); row-gap: 30px; }
.logo-grid li { display: flex; align-items: center; justify-content: center; padding: 10px; }
.logo-grid img { width: auto; height: auto; max-width: var(--w, 100%); margin-bottom: var(--mb, 0); }
.logo-grid--compact { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 24px; padding-bottom: 0; }
.logo-grid--compact li { border: 1px solid var(--line); background: var(--white); min-height: 110px; padding: 20px; }
.logo-grid--compact img { max-height: 80px; object-fit: contain; }

/* ---------- Projeto ---------- */
.project { display: grid; grid-template-columns: 1fr 1fr; }
.project__img { background: #e9ecef center / cover no-repeat; min-height: 300px; }
.project__info { padding: 70px 0 70px 40px; }
.project__title { font-size: 40px; line-height: 48px; margin-bottom: 20px; }
.gallery { display: flex; flex-wrap: wrap; width: calc(100% + 16px); margin: 90px 0 -16px; }
.gallery li { width: 25%; padding: 0 16px 16px 0; }
.gallery img { width: 100%; height: 200px; object-fit: cover; }
.gallery a { display: block; }
.gallery a:hover img { opacity: .85; }

.lightbox { position: fixed; inset: 0; z-index: 300; background: rgba(0, 0, 0, .92); display: flex; align-items: center; justify-content: center; padding: 40px 70px; }
.lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.lightbox button { position: absolute; background: none; border: 0; color: var(--white); cursor: pointer; font-size: 30px; width: 56px; height: 56px; border-radius: 50%; }
.lightbox button:hover { background: rgba(255, 255, 255, .15); }
.lightbox__close { top: 12px; right: 12px; }
.lightbox__prev { left: 8px; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 8px; top: 50%; transform: translateY(-50%); }
.lightbox__caption { position: absolute; bottom: 40px; left: 0; right: 0; text-align: center; color: rgba(237, 237, 237, .9); font-size: 16px; padding: 0 80px; }
.lightbox__count { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; color: #ccc; font-size: 14px; }

/* ---------- Post ---------- */
.post__title { font-size: 40px; line-height: 50px; margin-bottom: 20px; }
.post__meta { display: flex; justify-content: space-between; align-items: center; height: 42px; margin-bottom: 20px; }
.post__date { display: inline-flex; align-items: center; }
.post__date .ico { width: 14px; height: 14px; color: var(--gold); margin-right: 5px; }
.share { display: flex; gap: 5px; margin-right: 5px; }
.share a { display: flex; align-items: center; justify-content: center; width: 38px; height: 42px; color: var(--white); font-size: 18px; }
.share a:hover { opacity: .85; color: var(--white); }
.share__wa { display: none; }
.share--whatsapp { background: rgb(29, 158, 17); }
.share--facebook { background: rgb(8, 102, 255); } .share--x { background: rgb(15, 20, 25); } .share--linkedin { background: rgb(0, 123, 182); }
.post__image { width: auto; max-width: 100%; height: auto; margin-bottom: 20px; }
.post__content { margin-bottom: 20px; padding-top: 40px; }
.post__related-title { font-size: 28px; line-height: 36px; margin-bottom: 20px; }

/* ---------- Paginação ---------- */
.pagination { margin-top: 50px; }
.pagination ul { display: flex; justify-content: center; gap: 8px; }
.pagination a, .pagination span { display: flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--line); color: var(--navy); }
.pagination a:hover { background: var(--navy); color: var(--white); border-color: var(--navy); }
.pagination .is-current span { background: var(--navy); color: var(--white); border-color: var(--navy); }
.pagination .is-disabled span, .pagination .is-gap span { color: #bbb; border-color: transparent; }

/* ---------- Trabalhe conosco ---------- */
.tw-intro { padding-top: 90px; }
.tw-intro .container { padding: 10px; }
.tw-intro__grid { display: grid; grid-template-columns: 15% 69.3% 15%; }
.tw-intro__text { grid-column: 2; }
.tw-jobs { background: var(--band); padding: 90px 0; }
.tw-jobs h2 { text-align: center; margin-bottom: 20px; }
.tw-jobs__text { text-align: center; height: 10px; margin: 0; }
.tw-joblist { padding: 40px 0 0; }
.tw-talent { padding: 100px 0; }
.tw-talent .container { display: grid; grid-template-columns: 25% 49.3% 25%; }
.tw-talent__col { grid-column: 2; padding-bottom: 19.3px; }
.tw-talent h2 { text-align: center; margin-bottom: 20px; }
.tw-talent__text { text-align: center; height: 79.4px; margin-bottom: 20px; }

/* ---------- Contato / formulários (aparência do Contact Form 7 original) ---------- */
.contact { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
.contact h2 { margin-bottom: 20px; }
.contact__text { margin-bottom: 20px; }
.contact__formbox { padding-top: 40px; }
.contact__formbox form { width: 615px; max-width: 100%; }
.contact__map iframe { display: block; width: 100%; height: 750px; border: 0; }
.tpl-formulario form .form-field { margin-bottom: 30px; }
.tpl-formulario form input[type="text"], .tpl-formulario form input[type="email"], .tpl-formulario form textarea { background: #fff; border-bottom-width: 1px; }
.tpl-formulario form ::placeholder { color: var(--ink); }
.tpl-formulario form .form-field:has(textarea) { margin-bottom: 30px; }
.tpl-formulario form .form-data label.inline { top: 0; color: #000; }
.tpl-trabalhe form .form-data label.inline { top: .4px; }
.tpl-formulario form .form-field:has(input[type="checkbox"]) { padding-left: 0; margin-bottom: 30px; }

form .form-field { margin-bottom: 34.4px; }
form .form-label { margin: 0; }
form .form-label label { display: block; font: 400 18px/18px var(--font); color: var(--text); padding: 0 10px; margin: 0; }
form .required { display: none; }
form input[type="text"], form input[type="email"], form input[type="tel"], form textarea {
    display: block; width: 100%; font: 400 18px/28px var(--font); color: var(--ink);
    background: rgba(237, 236, 232, 0); border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; padding: 15px 10px; margin: 0;
}
form textarea { min-height: 0; height: auto; resize: vertical; }
form .form-field:has(textarea) { margin-bottom: 38px; }
form ::placeholder { color: #757575; opacity: 1; }
form input:focus, form textarea:focus { outline: 0; box-shadow: none; background: #f3f3f3; }
form select { display: block; width: 100%; margin: 15px 0 0; font: 400 16px/normal var(--font); color: #000; background: #fff; border: 1px solid #666; border-radius: 3px; padding: 8px 16px; }
form input[type="file"] { display: block; width: 100%; height: 64px; font: 400 18px/28px var(--font); color: var(--ink); background: #fff; border: 0; padding: 15px 10px; }
form input[type="checkbox"] { width: 13px; height: 13px; margin: 0; accent-color: var(--navy); vertical-align: middle; }
form .form-input-wrapper { position: relative; }
form .form-data label.inline { display: inline; position: relative; top: 4.4px; padding: 0; font: 400 18px/18px var(--font); color: var(--text); }
form .form-data label.inline a { color: var(--slate-ink); }
form .form-field:has(input[type="checkbox"]) { margin-bottom: 14.4px; padding-left: 18px; }
form .buttons { margin: 0; }
.form-errors, .notices.red, .notices.alert { background: #fdecea; color: #7f1d1d; padding: 14px 18px; margin-bottom: 22px; }
.notices.green, .notices.success { background: #e8f5e9; color: #1b5e20; padding: 14px 18px; margin-bottom: 22px; }
.notice--warn { background: #fff4d6; color: #7a5b00; padding: 12px 16px; }
.hidden, .form-field.honeypot, [name*="honeypot"] { position: absolute; left: -9999px; }

/* ---------- Vagas (calendário de eventos do site original) ---------- */
.ev { color: #626262; }
.ev__wrap { max-width: 1196px; margin: 0 auto; padding: 0 15px; }
.ev h1 { font-size: 40px; line-height: 50px; margin: 8px 0 16px; }
.ev-box { background: #FAFAFA; border: 1px solid #EFEFEF; border-radius: 12px; padding: 20px 5px 45px; margin-bottom: 20px; }
.ev-box__row { display: flex; flex-wrap: wrap; }
.ev-col { padding: 0 15px; }
.ev-col--3 { width: 25%; } .ev-col--4 { width: 33.3333%; } .ev-col--5 { width: 41.6667%; }
.ev-field { display: flex; padding: 0 10px; }
.ev-ico { flex: none; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid #EFEFEF; border-radius: 3px 0 0 3px; color: var(--slate-ink); font-size: 15px; }
.ev-sel, .ev-input { height: 36px; background: #fff; border: 1px solid #EFEFEF; margin-left: -1px; font: 400 13px var(--font); color: #777; padding: 0 5px; border-radius: 0; }
.ev-sel--month { width: 132.5px; } .ev-sel--year { width: 70px; border-radius: 0 3px 3px 0; }
.ev-input { flex: 1; font-size: 18px; border-radius: 0 3px 3px 0; }
.ev-views { padding: 0 10px; }
.ev-views span { display: inline-block; height: 36px; margin-left: -1px; padding: 0 12px; background: #fff; border: 1px solid #EFEFEF; font: 400 11px/34px var(--font); text-transform: uppercase; color: #777; vertical-align: top; }
.ev-views span:first-child { border-radius: 3px 0 0 3px; margin-left: 0; }
.ev-views span.is-on { background: var(--slate-ink); border-color: var(--slate-ink); color: #fff; border-radius: 0 3px 3px 0; }
.ev-list { min-height: 28px; }
.job-list { margin: 0; border-top: 1px solid var(--line); }
.job-list li { border-bottom: 1px solid var(--line); }
.job-list a { display: flex; justify-content: space-between; gap: 20px; padding: 18px 8px; }
.job-list span { color: var(--text); font-size: 15px; }
.job-list .is-expired a { opacity: .55; }
.job-meta { margin: 24px 0 36px; display: grid; gap: 6px; }
.job-meta strong { color: var(--ink); }
.tw-joblist { padding: 40px 0 0; }
/* ---------- Vaga (evento) ---------- */
.mec { color: #626262; }
.mec__wrap { max-width: 1196px; margin: 0 auto; padding-bottom: 71px; }
.mec__content { padding: 90px 205px; }
.mec__title { font: 700 33px/50px var(--font); color: var(--ink); margin: 0 0 30px; }
.mec__desc { margin-bottom: 30px; }
.mec__desc > p { font: 500 14px/25.2px var(--font); color: #616161; margin: 0 0 20px; }
.mec__desc > p strong { font-weight: 700; color: inherit; }
.mec__apply h2 { margin: 8px 0 0; height: 44px; }
.mec__apply-text { font-size: 18px; line-height: 23.4px; color: #626262; margin: 27px 0 40px; }
.mec form .form-label label, .mec form .form-data label.inline { color: #626262; }
.mec form .form-field { margin-bottom: 40px; }
.mec form .form-field:has(textarea) { margin-bottom: 44px; }
.mec form .form-field:has(input[type="checkbox"]) { margin-bottom: 20px; }
.mec form select { height: 44px; }
.mec form .form-data label.inline { top: 0; }
.mec__apply { padding-bottom: 20px; }

/* ---------- Obrigado (página avulsa) ---------- */
.ty-hero { background: var(--navy); padding: 90px 0; }
.ty-logo { width: 400px; max-width: 100%; height: auto; margin: 0 auto 20px; }
.ty-text { display: flow-root; margin-bottom: 20px; text-align: center; color: var(--beige); }
.ty-text h3 { font: 700 28px/36px var(--font); color: var(--white); margin: 8px 0 16px; }
.ty-text h5 { font: 700 20px/25px var(--font); color: var(--white); margin: 8px 0 16px; }
.ty-text div { font-size: 18px; line-height: 28px; }
.ty-hero .ty-text:last-child { margin-bottom: 0; color: var(--white); }
.ty-divider { height: 10.4px; margin-bottom: 20px; text-align: center; }
.ty-divider span { display: inline-block; width: 24px; height: 6.4px; margin-top: 2px; background: var(--gold); vertical-align: top; }
.ty-more { padding: 90px 0; }
.ty-h3 { font: 700 28px/36px var(--font); color: var(--ink); text-align: center; margin: 0 0 30px; }
.ty-h3--navy { color: var(--navy); margin-bottom: 10px; }
.ty-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ty-buttons a { display: block; background: var(--gold); color: #181818; font: 500 16px/28px var(--font); text-align: center; padding: 10px 0; margin: 0 10px; }
.ty-buttons a:first-child { margin: 0 10px 0 0; } .ty-buttons a:last-child { margin: 0 0 0 10px; }
.ty-buttons a:hover { background: var(--gold-dark); color: #181818; }
.ty-cols { display: grid; grid-template-columns: 1fr 1fr; margin-top: 90px; text-align: center; }
.ty-p { margin: 0 0 10px; }
.ty-icons { display: flex; justify-content: center; padding-top: 30px; }
.ty-icons li { margin: 0 12.5px; }
.ty-icon { display: flex; align-items: center; justify-content: center; }
.ty-icon--big { width: 67.5px; height: 50px; justify-content: flex-start; color: var(--navy); font-size: 50px; }
.ty-icon--round { position: relative; width: 57.5px; height: 52.5px; justify-content: flex-start; color: var(--white); font-size: 26px; }
.ty-icon--round::before { content: ""; position: absolute; left: 0; top: 0; width: 52.5px; height: 52.5px; border-radius: 50%; background: var(--navy); }
.ty-icon--round svg { position: relative; margin-left: 13.25px; }
.ty-icon:hover { opacity: .8; }

/* ---------- Links (bio) ---------- */
.tpl-links { background: var(--navy); }
.links { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.links__inner { width: 500px; max-width: 100%; padding: 10px; }
.links__logo { display: block; height: 105.2px; margin-bottom: 20px; }
.links__logo img { width: 347px; height: auto; margin: 0 auto; }
.links__list li { margin-bottom: 20px; }
.links__list li:last-child { margin-bottom: 0; }
.links__btn { display: block; background: var(--gold); color: var(--white); font: 500 16px/28px var(--font); text-align: center; padding: 10px 32px; border: 3px solid var(--navy); }
.links__btn:hover { background: var(--gold-dark); color: var(--white); }

/* ---------- Home ---------- */
:root { --home-bg: #EDECE8; }
.home-hero { position: relative; background: var(--ink) center / cover no-repeat; padding: 195px 0 140px; color: var(--white); }
.home-hero__overlay { position: absolute; inset: 0; background: var(--ink); opacity: .65; }
.home-hero .container { display: flex; align-items: center; min-height: 50vh; }
.home-hero__col { position: relative; width: 650px; max-width: 100%; }
.home-hero__title { color: var(--white); font-size: 45px; line-height: 55px; margin-bottom: 20px; }
.home-hero__text { font-size: 18px; line-height: 32px; color: var(--beige); margin-bottom: 20px; }
.home-band { position: relative; z-index: 5; margin-top: -130px; background: linear-gradient(to bottom, transparent 0, transparent 50%, var(--home-bg) 50%, var(--home-bg) 100%); }
.home-band__inner { background: var(--navy); padding: 30px; display: grid; grid-template-columns: 413px 517px 1fr; align-items: center; color: var(--white); }
.home-band__inner > div { padding: 20px; }
.home-band__title { font: 500 25px/25px var(--font); color: var(--white); margin: 0; width: calc(100% - 60px); }
.home-band__text { color: var(--white); margin: 0; }
.home-band__cta { text-align: right; }
.home-about { background: var(--home-bg); padding: 90px 0 100px; }
.home-about .split__media { padding-right: 0; }
.home-about .split__media img { height: 500px; }
.home-about .split__text { padding-left: 60px; }
.home-about .split__text .prose { width: calc(100% - 60px); }
.home-about .split__text .prose + p { margin-top: 20px; }
.home-portfolio { background: var(--home-bg); padding: 0 0 90px; }
.home-services { position: relative; background: var(--beige); padding: 90px 0; overflow: hidden; }
.home-services::before { content: ''; position: absolute; inset: 0; background: url('../images/elemento-cinza.png') no-repeat 100% 100%; background-size: 40% auto; opacity: .09; pointer-events: none; }
.home-services .container { position: relative; }
.home-services .split__media { padding-right: 0; }
.home-services__grid { display: grid; grid-auto-flow: column; grid-template-columns: 305px 305px; grid-template-rows: 320px 320px; gap: 20px 40px; }
.home-services .split__media .home-services__grid img { width: 100%; height: 100%; object-fit: cover; display: block; }
.home-services .split__text { padding-left: 60px; }
.home-services .split__text .prose + p { margin-top: 20px; }
.home-services__mobile-img { display: none; }
.home-about__mobile-img { display: none; }

/* ---------- Rodapé ---------- */
.site-footer { background: var(--navy); color: var(--white); }
.site-footer__grid { max-width: var(--wrap); margin-inline: auto; padding: 100px 0 70px; display: grid; grid-template-columns: 46.08% 53.92%; align-items: start; }
.site-footer__brand { padding: 20px; }
.site-footer__brand img { width: 300px; height: 182px; max-width: none; margin: 0 0 20px 43px; }
.site-footer__brand .social-list { margin-left: 95px; }
.site-footer__cols { padding: 20px; display: grid; grid-template-columns: 57.5% 42.5%; align-items: start; }
.site-footer h2 { font-size: 20px; line-height: 42px; color: var(--white); margin-bottom: 13px; }
.site-footer a { color: var(--white); }
.site-footer a:hover { color: var(--gold); }
.site-footer ul li { padding-bottom: 5px; margin-bottom: 5px; }
.social-list li, .site-footer .social-list li { padding: 0; margin: 0; }
.site-footer ul li:last-child { padding-bottom: 0; margin-bottom: 0; }
.site-footer__contact { align-self: start; }
.site-footer__contact li { display: flex; gap: 8px; align-items: flex-start; }
.site-footer__contact .ico { flex: none; width: 18px; height: 14px; margin-top: 7px; }
.social-list { display: flex; gap: 19.5px; }
.social-list a { display: flex; align-items: center; justify-content: center; width: 47px; height: 47px; border-radius: 50%; border: 1px solid var(--beige); color: var(--white); font-size: 18px; }
.social-list a:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.social-list--dark a { color: var(--navy); border-color: var(--navy); }
.site-footer__credits .container { padding: 0 20px; }
.site-footer__credits .container > div { border-top: 1px solid var(--white); padding: 20px 20px; text-align: center; }
.site-footer__credits a { display: block; height: 28px; }
.site-footer__credits img { display: inline-block; width: 33px; height: 20px; margin-top: 6px; }

/* ---------- Cookie + WhatsApp ---------- */
.cookie-notice { position: fixed; z-index: 100000; left: 100px; right: 100px; bottom: 20px; background: #000; color: var(--white); padding: 22px; display: block; text-align: center; font: 400 13px/20px -apple-system, BlinkMacSystemFont, Arial, Roboto, "Helvetica Neue", sans-serif; }
.cookie-notice p { margin: 0 0 6px; } .cookie-notice a { color: var(--gold); text-decoration: none; }
.cookie-notice .btn { display: inline-block; margin: 0 0 0 10px; padding: 8.5px 10px; border: 0; border-radius: 32px; background: var(--gold); color: var(--white); letter-spacing: .25px; font: 400 13px/13px -apple-system, BlinkMacSystemFont, Arial, Roboto, "Helvetica Neue", sans-serif; cursor: pointer; }
.cookie-notice::after { content: ""; position: absolute; top: 50px; right: -85px; width: 70px; height: 26px; box-sizing: border-box; background: var(--navy); border: 3px solid var(--navy); border-radius: 35px; opacity: .5; pointer-events: none; }
.whatsapp-float { position: fixed; z-index: 997; right: 29px; bottom: 25px; width: 54px; height: 54px; display: block; }
.whatsapp-float svg { width: 54px; height: 54px; display: block; }

/* ============================================================
   Responsivo (pontos de quebra do Elementor: tablet ≤1024, celular ≤767)
   ============================================================ */
@media (max-width: 1340px) {
    .container, .site-footer__grid { padding-inline: 20px; }
    .site-header__inner { padding-left: 0; padding-right: 0; }
}
@media (max-width: 1024px) {
    /* home */
    .home-hero { padding: 70px 20px 120px; }
    .home-hero .container { min-height: 0; }
    .home-hero__col { width: 100%; }
    .home-band { margin-top: -70px; }
    .home-band .container { padding-inline: 20px; }
    .home-band__inner { padding: 40px 20px; grid-template-columns: 1fr; text-align: center; }
    .home-band__inner > div { padding: 0; }
    .home-band__title { width: 100%; font-size: 24px; line-height: 30px; }
    .home-band__text { text-align: center; }
    .home-band__inner > .home-band__cta { text-align: center; padding-top: 10px; }
    .home-about { padding: 50px 20px; }
    .home-about .split--half { grid-template-columns: 50% 50%; }
    .home-about .split--half .split__media { order: 2; padding: 0; }
    .home-about .split--half .split__media img { height: 275px; }
    .home-about .split--half .split__text { order: 1; padding-left: 0; }
    .home-portfolio { padding: 0 20px 50px; }
    .home-services { padding: 50px 20px; }
    .home-services .split--half { grid-template-columns: 50% 50%; }
    .home-services .split--half .split__media { padding: 0; }
    .home-services__grid { grid-template-columns: 1fr 1fr; grid-template-rows: 170px 170px; }
    .home-services .split--half .split__text { padding-left: 20px; }
    .site-header, .site-header__inner { height: 68.8px; min-height: 0; }
    .site-header__inner { display: flex; justify-content: space-between; align-items: flex-start; padding: 20px; }
    .site-header__logo { padding: 0; }
    .site-header__logo img { width: 234.5px; height: 28.8px; }
    .nav-toggle { display: block; width: 33px; height: 33px; padding: 6px 5px; margin-top: 2.3px; }
    .nav-toggle span { height: 3px; margin: 4px 0; }
    .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .site-menu {
        display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--white);
        flex-direction: column; padding: 0; border-bottom: 3px solid var(--beige); margin-top: 4.5px;
    }
    .site-menu.is-open { display: flex; }
    .site-nav { padding: 0; }
    .site-nav ul { flex-direction: column; gap: 0; }
    .site-nav ul a { color: var(--navy); font: 500 14px/25px var(--font); padding: 9px 20px; }
    .site-nav ul a::after { display: none; }
    .site-nav li.is-active > a { background: var(--gold); color: var(--ink); }
    .site-nav ul a:hover { color: var(--gold-dark); }
    .site-nav li.nav-desktop-only { display: none; }
    .site-header__cta { margin: 0; padding: 9px 20px; background: transparent; border: 0; color: var(--navy); font: 500 14px/25px var(--font); text-align: left; }
    .site-header__cta:hover { background: transparent; color: var(--gold-dark); }
    .grid--3, .service-grid--3 { grid-template-columns: repeat(2, 1fr); }
    .contact { grid-template-columns: 1fr; }
    /* tablet: medidas do Elementor */
    .container { padding-inline: 0; }
    .container--1300, .container--1100 { padding: 10px; }
    .section, .section--90 { padding: 50px 20px; }
    .section--top0 { padding-top: 0; }
    .split, .split--half, .split--reverse { grid-template-columns: 50% 50%; }
    .split__media img, .split--half .split__media img, .split--reverse .split__media img { height: 500px; }
    .split__text, .split--half .split__text { padding-left: 20px; }
    .split--reverse .split__media, .split--half .split__media { order: -1; padding: 0; }
    .split--reverse .split__text { padding: 0 0 0 20px; }
    .split--half .split__media { padding: 0 20px 0 0; }
    .split--half .split__media img { height: 550px; }
    .photo-strip { grid-template-columns: repeat(3, 1fr); }
    .photo-strip > div { padding: 0; }
    .section--beige + .photo-strip { margin-top: 40px; }
    .pillars, .pillars--2 { grid-template-columns: 1fr; }
    .pillars .pillar, .pillars .pillar:first-child, .pillars--2 .pillar:first-child, .pillars--2 .pillar:nth-child(2) { grid-column: auto; margin: 0 0 30px; padding: 30px 20px; }
    .pillars:not(.pillars--2) .pillar:last-child { margin-bottom: 0; }
    .section__cta { padding-top: 5px; }
    .mec__wrap { padding: 0 10px 21px; }
    .mec__content { padding: 40px 10px; }
    .mec form .buttons { padding-bottom: 20px; }
    .contact-section { padding: 0; }
    .contact { display: block; }
    .contact__form { padding: 50px 20px 50px; }
    .contact__formbox form { width: calc(100% - 35px); }
    .contact__map iframe { height: 500px; }
    .share__wa { display: block; }
    .section.blog-section, .section.post-section, .section.politica-section { padding: 90px 0; }
    .pillars--2 .pillar:first-child { margin-bottom: 20px; }
    .pillars--2 .pillar:nth-child(2) { margin-bottom: 0; }
    .tw-pillars { padding: 0 20px 50px; }
    .tw-intro { padding: 50px 20px; }
    .tw-intro__text { margin-bottom: 0; padding-top: 1px; }
    .tw-intro .container, .tw-talent .container { padding: 0; display: block; }
    .tw-intro__grid { display: block; }
    .tw-jobs { padding: 50px 20px; }
    .tw-jobs p.tw-jobs__text { height: auto; margin-bottom: -18px; }
    .tw-talent { padding: 50px 20px 40px; }
    .tw-talent__col { padding-top: 1px; }
    .logo-grid { grid-template-columns: repeat(2, 1fr); column-gap: 20px; row-gap: 20px; align-items: center; }
    .logo-grid li { padding: 0; }
    .logo-grid img { max-width: var(--wt, var(--w, 100%)); }
    .site-footer__grid { display: block; padding: 50px 20px 30px; }
    .site-footer__brand { padding: 0; margin-bottom: 40px; text-align: center; }
    .site-footer__brand img { width: 300px; height: 182.4px; margin: 0 0 20px calc((100% - 300px) / 2 + 21.5px); }
    .site-footer__brand .social-list { margin-left: 0; justify-content: center; gap: 20px; }
    .site-footer__brand .social-list a { width: 46.8px; height: 46.8px; }
    .site-footer__cols { display: block; padding: 0; }
    .site-footer__cols h2 { margin-bottom: 13px; }
    .site-footer__sitemap { margin-bottom: 30px; }
    .site-footer__contact { margin-bottom: 10px; }
    .site-footer__credits .container { padding: 0; }
    .site-footer__credits .container > div { border-top: 0; }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .site-header, .site-header__inner { height: 85.6px; }
    .site-header__logo img { width: 305px; height: 45.7px; }
    .nav-toggle { margin-top: 10.3px; }
    .site-menu { margin-top: 7.6px; }
    /* obrigado */
    .ty-logo { width: 50%; }
    .ty-buttons a, .ty-buttons a:first-child, .ty-buttons a:last-child { padding: 10px 90px; align-self: start; justify-self: start; width: fit-content; }
}
@media (max-width: 991px) {
    /* editais (calendário MEC) */
    .ev__wrap { padding: 0 10px; }
    .ev-box { padding: 10px 10px 0; }
    .ev-col, .ev-col--3, .ev-col--4, .ev-col--5 { width: 100%; padding: 0; }
    .ev-col--5 { margin-top: 10px; }
    .ev-sel--month, .ev-sel--year { width: calc((100% - 36px) / 2); }
    .ev-input { margin-bottom: 10px; }
    .ev-views { padding: 0 15px 0 10px; height: 46px; }
    .ev-views span, .ev-views span:first-child { float: left; display: block; width: 20%; height: 36px; box-sizing: border-box; margin: 0 -1px 10px; padding: 0 7px; font-size: 8px; line-height: 34px; text-align: center; overflow: hidden; white-space: nowrap; }
}
@media (max-width: 767px) {
    h1, .page-band h1 { font-size: 30px; line-height: 50px; }
    .section, .section--90, .section--top0 { padding-left: 20px; padding-right: 20px; }
    .section { padding-top: 50px; padding-bottom: 50px; }
    .section--90 { padding-top: 50px; padding-bottom: 50px; }
    .section--top0 { padding-top: 0; }
    .container, .container--800 { padding-inline: 0; }
    .container--1100, .container--1300 { padding: 0; }
    .grid--3, .service-grid, .service-grid--3 { grid-template-columns: 1fr; }
    .grid { gap: 35px; }
    .card__media, .post-card__thumb { aspect-ratio: 2 / 1; }
    .section__cta { padding-top: 0; }

    .section.blog-section, .section.post-section { padding: 50px 20px; }
    /* seções com imagem: título → imagem → texto */
    .split, .split--half, .split--reverse { display: flex; flex-direction: column; align-items: stretch; }
    .split__text, .split--reverse .split__text, .split--half .split__text { display: contents; }
    .split__text h2 { height: 35px; }
    .section--beige + .photo-strip { margin-top: 0; }
    .split__text > h2 { order: 1; margin-bottom: 20px; }
    .split__media, .split--reverse .split__media, .split--half .split__media { order: 2; padding: 0; margin-bottom: 20px; }
    .split__media img, .split--reverse .split__media img, .split--half .split__media img { height: 350px; }
    .split__text > .prose { order: 3; margin-bottom: -20px; }
    .split--half .split__text > .prose { margin-bottom: 0; }
    .split__text > p { order: 4; }
    .split--reverse .split__text > h2 { height: auto; }

    .photo-strip { grid-template-columns: repeat(3, 1fr); }
    .photo-strip > div { padding: 0; }
    .photo-strip img { height: 120px; }

    .pillars, .pillars--2 { grid-template-columns: 1fr; padding: 0; }
    .pillars .pillar, .pillars .pillar:first-child, .pillars--2 .pillar:first-child, .pillars--2 .pillar:nth-child(2) { grid-column: auto; margin: 0 0 30px; min-height: 0; padding: 30px 20px; }
    .pillars .pillar:first-child { padding: 30px; }
    .pillars .pillar:last-child { margin-bottom: 0; }
    .pillars:not(.pillars--2) .pillar__icon { margin-bottom: 10px; }
    .pillars:not(.pillars--2) .pillar h3 { margin-bottom: 10px; }
    .pillars:not(.pillars--2) .pillar p { margin-bottom: -20px; }
    .pillars--2 .pillar, .pillars--2 .pillar:first-child { padding: 30px 20px; margin: 0 0 20px; }
    .pillars--2 .pillar:last-child { margin-bottom: 0; }
    .pillars--2 .pillar:first-child p { margin-bottom: -17px; }
    .pillars--2 .pillar:nth-child(2) p { margin-bottom: -19px; }
    .tw-pillars { padding: 0 20px 50px; }

    .service-grid--list { gap: 40px; }
    .service { padding: 45px 40px; }
    .logo-grid { grid-template-columns: repeat(2, 1fr); column-gap: 20px; row-gap: 20px; align-items: center; }
    .logo-grid li { padding: 0; }
    .logo-grid img { max-width: var(--wm, 50%); }
    .service { padding: 25px; }
    .service-grid--list { gap: 20px; padding-top: 0; }
    /* obrigado */
    .ty-hero { padding: 50px 20px; }
    .ty-logo { width: 268px; }
    .ty-more { padding: 50px 20px; }
    .ty-buttons { grid-template-columns: 1fr; }
    .ty-buttons a, .ty-buttons a:first-child, .ty-buttons a:last-child { margin: 0; padding: 10px 90px; }
    .ty-buttons a:nth-child(2) { margin: 10px 0; }
    .ty-cols { grid-template-columns: 1fr; margin-top: 40px; }
    .ty-cols > div:nth-child(2) { padding-top: 50px; }
    /* home */
    .home-hero { padding: 50px 20px 100px; }
    .home-hero .container { min-height: 0; display: block; }
    .home-hero__col { width: 100%; }
    .home-hero__title { font-size: 30px; line-height: 1.3em; }
    .home-hero__text { font-size: 13px; line-height: 1.7em; margin-bottom: 10px; }
    .home-band { margin-top: -50px; }
    .home-band .container { padding-inline: 20px; }
    .home-band__inner { padding: 50px 20px; grid-template-columns: 1fr; text-align: center; }
    .home-band__inner > div { padding: 0; }
    .home-band__title { width: 100%; font-size: 24px; line-height: 30px; }
    .home-band__text { font-size: 15px; line-height: 1.4em; }
    /* ">div { padding:0 }" above has higher specificity than a plain
       .home-band__cta rule and was silently zeroing this padding-top back
       out; match its specificity so the gap actually applies. */
    .home-band__inner > .home-band__cta { text-align: center; padding-top: 24px; }
    .home-band .btn { padding: 5px 15px; }
    .home-about { padding: 50px 20px; }
    .home-about .split__media { display: none; }
    .home-about__mobile-img { display: block; order: 2; width: 100%; height: 258px; object-fit: cover; margin-bottom: 20px; }
    .home-about .split__text { padding-left: 0; }
    /* margin-bottom here is negative on purpose (trims the prose block's own
       bottom spacing), but it collapses with the CTA <p>'s margin-top below
       and cancels it out to ~0, gluing the button to the text. Zero the
       prose's own negative margin and give the CTA real, non-collapsing
       space via padding-top instead. */
    .home-about .split__text .prose { width: 100%; margin-bottom: 0; }
    .home-about .split__text .prose + p { margin-top: 0; padding-top: 20px; }
    .home-portfolio { padding: 0 20px 50px; }
    .home-services { padding: 50px 20px; }
    .home-services .split__media { display: none; }
    .home-services__mobile-img { display: block; order: 2; width: 100%; height: 311px; object-fit: cover; margin-bottom: 20px; }
    .home-services .split__text { padding-left: 0; }
    .home-services h2 { font-size: 30px; }
    .home-services .split__text .prose { margin-bottom: 0; }
    .home-services .split__text .prose + p { margin-top: 0; padding-top: 20px; }
    /* solicite um orçamento */
    .contact-section { padding: 0; }
    .contact { display: block; }
    .contact__form { padding: 45px 20px 50px; }
    .contact__formbox { padding-top: 0; }
    .contact__formbox form { width: 100%; }
    .contact__formbox .buttons { text-align: center; }
    .contact__map iframe { height: 350px; }
    /* projeto */
    .project { display: flex; flex-direction: column; }
    .project__info { display: contents; }
    .project__title { order: 1; }
    .project__img { order: 2; min-height: 0; height: 160.5px; margin-bottom: 20px; }
    .project__info > .prose { order: 3; }
    .gallery li { width: 100%; }
    .gallery img { height: auto; aspect-ratio: 335 / 279; }
    /* editais (calendário MEC) */
    .ev__wrap { padding: 0 10px; }
    .ev-box { padding: 10px; }
    .ev-col--5 { margin-top: 0; }
    .ev-col, .ev-col--3, .ev-col--4, .ev-col--5 { width: 100%; padding: 0; }
    .ev-sel--month, .ev-sel--year { width: 138.5px; }
    .ev-input { margin-bottom: 10px; }
    .ev-views { padding: 0 15px 0 10px; height: 46px; }
    .ev-views span, .ev-views span:first-child { float: left; display: block; width: 20%; box-sizing: border-box; margin: 10px -1px 0; padding: 0 7px; font-size: 9px; overflow: hidden; white-space: nowrap; }
    /* links */
    .links__inner { padding: 10px 30px; }
    .links__logo { height: 72.8px; }
    .links__logo img { width: 315px; }
    /* política */
    .section.politica-section { padding: 100px 0 101px; }
    .politica-section .container { padding-inline: 10px; }
    /* vaga */
    /* trabalhe conosco */
    .tw-intro { padding: 50px 20px; }
    .tw-intro__text { margin-bottom: -22px; padding-top: 1px; }
    .tw-intro .container, .tw-talent .container { padding: 0; display: block; }
    .tw-intro__grid { display: block; }
    .tw-jobs { padding: 50px 20px; }
    .tw-jobs p.tw-jobs__text { height: auto; margin-bottom: -18px; }
    .tw-talent { padding: 50px 20px 40px; }
    .tw-talent__text { height: auto; margin-bottom: 20px; }
    .tw-talent__col { padding-top: 1px; }
    .tw-talent h2, .tw-talent__text { text-align: left; }
    .tw-jobs h2 { font-size: 30px; line-height: 42px; }

    .site-footer__grid { padding: 50px 20px 30px; display: block; }
    .site-footer__brand { padding: 0; margin-bottom: 30px; text-align: center; }
    .site-footer__brand img { width: 292.2px; height: 177.7px; margin: 0 0 20px 43px; }
    .site-footer__brand .social-list { margin-left: 0; justify-content: center; gap: 20px; }
    .site-footer__brand .social-list a { width: 39.6px; height: 39.6px; }
    .site-footer__cols { display: block; padding: 0; }
    .site-footer__cols h2 { margin-bottom: 13px; }
    .site-footer__sitemap { margin-bottom: 25px; }
    .site-footer__contact { margin-bottom: 10px; }
    .site-footer__sitemap a { font-size: 15px; }
    .site-footer__contact li { font-size: 16px; gap: 5px; }
    .site-footer__credits .container { padding: 0; }
    .site-footer__credits .container > div { border-top: 0; }
    .post__meta { flex-direction: column; align-items: stretch; height: auto; }
    .post__date { height: 28px; }
    .share { justify-content: flex-end; height: 42px; }
    .share__wa { display: block; }
    .hero { min-height: 520px; } .hero__title { font-size: 34px; } .hero__text { font-size: 18px; }
    .cookie-notice { left: 20px; right: 20px; }
    .cookie-notice::after { top: 110px; right: -5px; }
    .lightbox { padding: 60px 12px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* Grav's file field renders a real <input type=file> inside .dropzone as a
   no-JS fallback, but Dropzone.js creates its own separate hidden input and
   never touches this one. Left visible, users click the wrong input: the
   native picker opens normally but the selection never reaches Dropzone, so
   the field stays empty server-side ("field is required" on submit). Hide
   it once Dropzone has actually initialized (dz-clickable is added by JS). */
.dropzone.dz-clickable > input[type="file"] { display: none !important; }
