:root {
    --ink:#16201f;
    --paper:#f4f1e8;
    --paper2:#ebe7dc;
    --dark:#071722;
    --dark2:#0b2532;
    --gold:#FEDA9C;
    --line:#c9c4b7;
    --max:1180px;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"DM Sans",sans-serif;
}

a {
    text-decoration:none;
    color:inherit;
}

.wrap {
    width:min(var(--max),calc(100% - 48px));
    margin:auto;
}

.paper {
    background:var(--paper);
}

.dark {
    background:var(--dark);
    color:#f7f4ed;
}

.topbar {
    position:fixed;
    z-index:50;
    top:0;
    left:0;
    right:0;
    background:rgba(7,23,34,.91);
    backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(254,218,156,.16);
}

.nav {
    
    height:80px;
    display:flex;
    align-items:center;
    gap:30px;
}


.logo {
    display:flex;
    align-items:center;
    gap:10px;
    min-width:205px;
}

.logo-g {
    font:600 31px "Playfair Display";
    letter-spacing:-5px;
    color:var(--gold);
    padding-right:7px;
}

.logo span:last-child {
    display:flex;
    flex-direction:column;
}

.logo b {
    font-size:12px;
    letter-spacing:.12em;
}

.logo small {
    font-size:7px;
    color:var(--gold);
    letter-spacing:.2em;
    margin-top:3px;
}

.nav nav {
    display:flex;
    gap:22px;
    margin-left:auto;
}

.nav nav a {
    font-size:12px;
    color:#d9dddc;
}
.nav nav a:hover,.nav nav a.active {
    color:var(--gold);
}
.nav-cta,.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
}

.nav-cta {
    font-size:11px;
    font-weight:600;
    color:#1a241f;
    background:var(--gold);
    padding:11px 15px;
    border-radius:3px;
}

.hamb {
    display:none;
    background:none;
    border:0;
    color:var(--gold);
    font-size:22px;
}

.hero {
    min-height:710px;
    padding-top:72px;
    position:relative;
    overflow:hidden;
    background:radial-gradient(circle at 76% 50%,#12384a 0,transparent 31%),linear-gradient(110deg,#061521,#071d29);
}

.hero:before {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(0,0,0,.12),transparent 55%);
    pointer-events:none;
}

.hero-inner {
    min-height:638px;
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
}

.hero-copy {
    position:relative;
    z-index:5;
    max-width:570px;
}

.kicker {
    font-size:11px;
    letter-spacing:.3em;
    font-weight:600;
    margin:0 0 14px;
    color:#a99d83;
    padding-top: 20px;
}



.dark .kicker {
    color:var(--gold);
}
h1,h2 {
    font-family:"Playfair Display",serif;
    font-weight:500;
    line-height:1.04;
}

h1 {
    font-size:66px;
    margin:0 0 25px;
    letter-spacing:-.035em;
}
h1 em,h2 em {
    font-style:normal;
    color:#d8aa42;
}

.lead {
    max-width:500px;
    color:#bac6c9;
    font-size:14px;
    line-height:1.8;
}

.actions {
    display:flex;
    gap:10px;
    margin:28px 0;
}

.btn {
    border:1px solid transparent;
    padding:12px 19px;
    border-radius:3px;
    font-size:10px;
    font-weight:700;
}

.btn.gold {
    background:var(--gold);
    color:#15222a;
}

.btn.light {
    border-color:rgba(254,218,156,.5);
    color:#fff;
    background:transparent;
}

.hero-note {
    font-size:12px;
    color:#c1ccce;
    word-spacing:2px;
}

.hero-note span {
    color:var(--gold);
    font-size:14px;
}

.justice-stage {
    height:600px;
    position:relative;
    display:grid;
    place-items:center;
}

.justice {
    height:300px;
    max-width:100%;
    object-fit:contain;
    position:relative;
    z-index:3;
    filter:drop-shadow(0 25px 28px rgba(0,0,0,.58));
    animation:float 5.5s ease-in-out infinite;
}

.halo {
    position:absolute;
    width:410px;
    height:410px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(254,218,156,.15),transparent 68%);
    animation:pulse 4s infinite;
}

.ring {
    position:absolute;
    width:370px;
    height:370px;
    border:1px solid rgba(254,218,156,.38);
    border-radius:50%;
    z-index:1;
    animation:spinGlow 9s linear infinite;
}

.ring:after {
    content:"";
    position:absolute;
    inset:17px;
    border:1px dashed rgba(254,218,156,.15);
    border-radius:50%;
}

.spark {
    position:absolute;
    width:4px;
    height:4px;
    background:var(--gold);
    border-radius:50%;
    box-shadow:0 0 12px var(--gold);
    z-index:5;
    animation:spark 3s infinite;
}

.s1 {
    right:15%;
    top:24%;
}

.s2 {
    left:15%;
    top:51%;
    animation-delay:1s;
}

.s3 {
    right:18%;
    bottom:18%;
    animation-delay:2s;
}

.scroll {
    position:absolute;
    bottom:18px;
    left:50%;
    font-size:8px;
    letter-spacing:.2em;
    color:#aeb9bb;
}

.scroll span {
    color:var(--gold);
    font-size:14px;
}

.intro {
    padding:45px 0;
    border-bottom:1px solid var(--line);
}

.intro .wrap {
    display:grid;
    grid-template-columns:75px 1fr;
    gap:25px;
    align-items:center;
}

.intro-icon {
    width:58px;
    height:58px;
    border:1px solid #a48d58;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#94783e;
    font-size:27px;
}

.intro h2 {
    font-size:25px;
    margin:0 0 8px;
}

.intro p:not(.kicker) {
    margin:0;
    max-width:850px;
    color:#676960;
    font-size:14px;
}

.section {
    padding:100px 0;
}

.split {
    display:grid;
    grid-template-columns:.75fr 1.25fr;
    gap:90px;
    align-items:center;
}

.justice-small {
    height:430px;
    display:grid;
    place-items:center;
}

.justice-small img {
    height:430px;
    filter:drop-shadow(0 16px 12px rgba(0,0,0,.15));
    animation:float 6s ease-in-out infinite;
}

.split h2 {
    font-size:43px;
    margin:0 0 20px;
}

.split>div:last-child>p:not(.kicker) {
    color:#686c67;
    font-size:13px;
    max-width:610px;
}

.checks {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin:25px 0;
    color:#4e534f;
    font-size:12px;
}

.checks span:first-letter {
    color:#b18b35;
}

.text-btn {
    display:inline-block;
    border-bottom:1px solid #9e8b60;
    padding-bottom:6px;
    font-size:10px;
    font-weight:700;
}

.center-head {
    text-align:center;
    max-width:760px;
    margin:0 auto 45px;
}

.center-head h2 {
    font-size:38px;
    margin:0 0 10px;
}

.center-head>p:last-child p{
    color:#77786f;
    font-size:11px;
}

.areas {
    padding-top:70px;
}

.service-list {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    border-top:1px solid var(--line);
}

.service {
    display:grid;
    grid-template-columns:48px 1fr 20px;
    grid-template-rows:auto auto;
    column-gap:14px;
    padding:22px 18px;
    border-bottom:1px solid var(--line);
    transition:.25s;
}

.service:nth-child(odd) {
    border-right:1px solid var(--line);
}

.service span {
    grid-row:1/3;
    color:#9d8b62;
    font:600 12px "Playfair Display";
}

.service strong {
    font:600 16px "Playfair Display";
}

.service small {
    font-size:14px;
    color:#777970;
    margin-top:4px;
}

.service b {
    grid-column:3;
    grid-row:1/3;
    align-self:center;
    color:#a98c4d;
}

.service:hover {
    background:#ebe7dc;
}

.service.featured {
    background:#e5c05f;
    color:#17232a;
}

.service.featured small {
    color:#364039;
}

.values {
    padding:95px 0;
    background:linear-gradient(120deg,#071721,#0b2836);
}

.values .center-head>p:last-child {
    color:#aeb9ba;
}

.value-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid rgba(254,218,156,.25);
    border-bottom:1px solid rgba(254,218,156,.25);
}

.value-grid article {
    padding:32px 22px;
    border-right:1px solid rgba(254,218,156,.18);
    text-align:center;
}

.value-grid article:last-child {
    border-right:0;
}

.value-grid span {
    color:var(--gold);
    font:16px "Playfair Display";
}

.value-grid h3 {
    font:16px "Playfair Display";
    margin:15px 0 8px;
}

.value-grid p {
    font-size:13px;
    color:#aeb9ba;
}

.quotes {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}

.quotes article {
    border:1px solid #d4cfc2;
    padding:23px;
    min-height:190px;
    background:#f8f5ed;
}

.stars {
    color:#a9822d;
    letter-spacing:3px;
    font-size:12px;
}

.quotes p {
    font:13px "Playfair Display";
    line-height:1.5;
}

.quotes b {
    display:block;
    font-size:10px;
}

.quotes small {
    font-size:9px;
    color:#85877e;
}

.contact {
    padding:90px 0;
    background:#071721;
}

.contact-grid {
    display:grid;
    grid-template-columns:1fr 1.15fr .72fr;
    gap:0;
    min-height:390px;
}

.office-image {
    background:linear-gradient(145deg,#152a34,#061118);
    display:grid;
    place-items:center;
    border:1px solid rgba(254,218,156,.16);
}

.office-mark {
    text-align:center;
    color:var(--gold);
    font:600 65px "Playfair Display";
    line-height:.75;
    opacity:.75;
}

.office-mark small {
    font:9px "DM Sans";
    letter-spacing:.25em;
}

.form-area {
    padding:38px 35px;
    border-top:1px solid rgba(254,218,156,.16);
    border-bottom:1px solid rgba(254,218,156,.16);
}

.form-area h2 {
    font-size:35px;
    margin:0 0 20px;
}

.form-area form {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
}
.form-area input,.form-area textarea {
    width:100%;
    background:#0a202c;
    border:1px solid rgba(254,218,156,.16);
    color:white;
    padding:12px;
    font:10px "DM Sans";
    outline:none;
}

.form-area textarea {
    grid-column:1/-1;
    resize:vertical;
}
.form-area button,.form-area form>a {
    border-radius:2px;
}

.form-area form p {
    grid-column:1/-1;
    color:var(--gold);
    font-size:9px;
}

.contact-side {
    padding:38px 25px;
    background:#0b2634;
    border:1px solid rgba(254,218,156,.16);
}

.contact-side h3 {
    font:19px "Playfair Display";
    color:var(--gold);
}

.contact-side p {
    font-size:10px;
    color:#b9c4c5;
    line-height:1.7;
}

.contact-side hr {
    border:0;
    border-top:1px solid rgba(254,218,156,.14);
    margin:22px 0;
}

.map-section {
    padding:85px 0;
}

.map-grid {
    display:grid;
    grid-template-columns:.8fr 1.5fr .75fr;
    align-items:stretch;
    min-height:270px;
}

.map-grid>div:first-child {
    padding:35px 35px 35px 0;
}

.map-grid h2 {
    font-size:35px;
    margin:0 0 12px;
}

.map-grid p:not(.kicker) {
    color:#77786f;
    font-size:11px;
}

.map {
    position:relative;
    background:#d7d8d1;
    overflow:hidden;
    display:grid;
    place-items:center;
    color:#626a67;
}

.map:before {
    content:"";
    position:absolute;
    inset:-20%;
    background:repeating-linear-gradient(30deg,transparent 0 38px,rgba(75,88,84,.12) 39px 42px),repeating-linear-gradient(-30deg,transparent 0 55px,rgba(75,88,84,.1) 56px 59px);
}

.map span {
    position:relative;
    font-size:42px;
    color:#9c7c32;
}

.map small {
    position:absolute;
    bottom:12px;
    right:15px;
    font-size:8px;
}

.map-call {
    background:#e7bd51;
    padding:30px;
}

.map-call strong {
    font:21px "Playfair Display";
    line-height:1.15;
}

.map-call p {
    color:#27332e!important;
}

.map-call .btn {
    background:#10212b;
    color:#fff;
    border:0;
}

.footer {
    padding-top:55px;
    background:#06151f;
}

.foot-grid {
    display:grid;
    grid-template-columns:1.5fr 1fr 1.1fr 1fr;
    gap:45px;
    padding-bottom:45px;
}

.foot-grid h4 {
    color:var(--gold);
    font-size:12px;
    margin:0 0 14px;
}

.foot-grid>div:not(:first-child) {
    display:flex;
    flex-direction:column;
    gap:7px;
}
.foot-grid a,.foot-grid p {
    font-size:12px;
    color:#aab6b8;
    margin:0;
}

.foot-grid .logo {
    margin-bottom:18px;
}

.copyright {
    border-top:1px solid rgba(254,218,156,.12);
    padding:18px 0;
    color:#b8c2c5;
    font-size:11px;
    display:flex;
    justify-content:space-between;
}

@keyframes float {
    0%,100% {
        transform:translateY(0);
    }

    50% {
        transform:translateY(-9px);
    }

}

@keyframes pulse {
    0%,100% {
        transform:scale(.94);
        opacity:.6;
    }

    50% {
        transform:scale(1.08);
        opacity:1;
    }
}

@keyframes spinGlow {
    0% {
        transform:rotate(0) scale(.96);
    }

    50% {
        transform:rotate(180deg) scale(1.03);
    }

    100% {
        transform:rotate(360deg) scale(.96);
    }
}

@keyframes spark {
    0%,100% {
        opacity:.15;
        transform:translateY(0);
    }

    50% {
        opacity:1;
        transform:translateY(-18px);
    }
}

@media(max-width:1000px) {
    .nav nav {
        gap:12px;
    }

    .hero-inner {
        grid-template-columns:1fr 1fr;
    }

    .justice {
        height:500px;
    }

    .service-list,.quotes {
        grid-template-columns:1fr 1fr;
    }

    .value-grid {
        grid-template-columns:1fr 1fr;
    }

    .value-grid article:nth-child(2) {
        border-right:0;
    }

    .value-grid article {
        border-bottom:1px solid rgba(254,218,156,.18);
    }

    .contact-grid {
        grid-template-columns:1fr 1fr;
    }

    .contact-side {
        grid-column:1/-1;
    }

    .map-grid {
        grid-template-columns:1fr 1.3fr;
    }

    .map-call {
        grid-column:1/-1;
    }
}

@media(max-width:760px) {
    .wrap {
        width:min(100% - 30px,var(--max));
    }

    .nav {
        height:64px;
    }

    .nav nav {
        display:none;
        position:absolute;
        top:64px;
        left:15px;
        right:15px;
        background:#071b27;
        padding:20px;
        flex-direction:column;
        border:1px solid rgba(254,218,156,.2);
    }

    .nav nav.open {
        display:flex;
    }

    .hamb {
        display:block;
        margin-left:auto;
    }

    .nav-cta {
        display:none;
    }

    .hero {
        min-height:790px;
    }

    .hero-inner {
        grid-template-columns:1fr;
        padding-top:40px;
    }

    .hero-copy {
        order:2;
    }

    .justice-stage {
        order:1;
        height:390px;
    }

    .justice {
        height:410px;
    }

    .ring {
        width:280px;
        height:280px;
    }

    .halo {
        width:300px;
        height:300px;
    }

    h1 {
        font-size:49px;
    }

    .actions {
        flex-direction:column;
    }
    
    .btn {
        width:100%;
    }

    .intro .wrap {
        grid-template-columns:1fr;
    }

    .intro-icon {
        margin-bottom:5px;
    }

    .split {
        grid-template-columns:1fr;
        gap:25px;
    }

    .justice-small {
        height:340px;
    }

    .justice-small img {
        height:340px;
    }

    .split h2,.map-grid h2 {
        font-size:34px;
    }

    .service-list,.quotes,.value-grid {
        grid-template-columns:1fr;
    }

    .service:nth-child(odd) {
        border-right:0;
    }

    .value-grid article {
        border-right:0;
    }

    .contact-grid {
        grid-template-columns:1fr;
    }

    .contact-side {
        grid-column:auto;
    }

    .form-area form {
        grid-template-columns:1fr;
    }
    .form-area textarea,.form-area form p {
        grid-column:auto;
    }

    .map-grid {
        grid-template-columns:1fr;
    }

    .map {
        min-height:270px;
    }

    .map-call {
        grid-column:auto;
    }

    .foot-grid {
        grid-template-columns:1fr 1fr;
    }

    .copyright {
        flex-direction:column;
        gap:8px;
    }

    .scroll {
        display:none;
    }
}

@media(max-width:460px) {
    .foot-grid {
        grid-template-columns:1fr;
    }

    .logo {
        min-width:0;
    }

    .hero-note {
        line-height:2;
    }

    .center-head h2 {
        font-size:31px;
    }
}

/* Logo oficial — apenas ajuste de enquadramento/tamanho, sem alteração da arte */
.logo-image {
    min-width:205px;
    height:58px;
}

.logo-image img {
    display:block;
    width:180px;
    height:90px;
    object-fit:contain;
    object-position:left center;
}

.foot-grid .logo-image {
    height:auto;
    margin-bottom:18px;
}

.foot-grid .logo-image img {
    width:180px;
    height:90px;
}

/* Google Maps integrado no tema editorial aprovado */
.real-map {
    padding:0;
    overflow:hidden;
    background:#d7d8d1;
    min-height:270px;
}

.real-map iframe {
    display:block;
    width:100%;
    height:100%;
    min-height:270px;
    border:0;
}

@media(max-width:760px) {
    .logo-image {
        min-width:160px;
    }

    .logo-image img {
        width:155px;
        height:50px;
    }

    .foot-grid .logo-image img {
        width:170px;
        height:52px;
    }

    .real-map iframe {
        min-height:300px;
    }
}

/* =========================================================
   GOOGLE MAPS — interação corrigida
   O pseudo-elemento decorativo do tema não pode interceptar
   cliques, arraste ou gestos sobre o mapa.
   ========================================================= */
.real-map {
    position: relative;
    z-index: 2;
    isolation: isolate;
    touch-action: auto;
    cursor: default;
}

.real-map::before,
.real-map::after {
    display: none !important;
    pointer-events: none !important;
}

.real-map iframe {
    position: relative;
    z-index: 3;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 270px;
    border: 0;
    pointer-events: auto !important;
    touch-action: auto;
}

/* Parceiros */
.partners-section { padding-top:90px; }
.partners-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }
.partner-card { min-height:385px; border:1px solid var(--line); padding:25px; position:relative; background:#f8f5ed; display:flex; flex-direction:column; border-radius: 10px;}

.partner-card:hover { border-color:#a48d58; transform:translateY(-3px); transition:.25s ease; }
.partner-number { color:#9a7d42; font:600 12px "Playfair Display"; margin-bottom:20px; }
.partner-logo-placeholder { height:82px; border:1px dashed #bdb7a8; display:grid; place-items:center; text-align:center; color:#6e6f68; font:600 16px/1.1 "Playfair Display"; letter-spacing:.06em; }
.partner-logo-placeholder span { font:8px "DM Sans"; letter-spacing:.2em; }
.partner-logo-wrap { height:82px; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid #e0ddd4; padding:10px 15px; border-radius: 5px; }

.partner-logo-wrap img { max-width:100%; max-height:75px; object-fit:contain; }

.partner-type { color:#80652d; font:600 10px "DM Sans"; letter-spacing:.18em; margin:22px 0 8px; }

.partner-card h3 { margin:0 0 10px; font:500 21px "Playfair Display"; }

.partner-card > p:not(.partner-type) { margin:0; color:#73756e; font-size:13px; line-height:1.7; }

.partner-link { margin-top:auto; padding-top:20px; color:#7c612b; font-size:9px; font-weight:700; letter-spacing:.08em; }

.partner-link.muted { color:#999990; }

.partner-future { background:#f0ede5; border-style:dashed; }

.outline-gold { border-color:rgba(254,218,156,.55); color:#fff; background:transparent; }

.home-lawyer-actions { margin-top:25px; }

.home-lawyer-actions .text-btn + .text-btn { margin-left:22px; }

.lawyer-home-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:90px; align-items:center; }

.lawyer-photo-placeholder { display:grid; place-items:center; min-height:460px; }

.lawyer-photo-placeholder .portrait-frame { width:100%; max-width:360px; aspect-ratio:4/5; }

.lawyer-photo-placeholder .photo-frame { overflow:hidden; background:#071721; }

.lawyer-photo-placeholder .photo-frame img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

.lawyer-home h2 { font-size:43px; margin:0 0 12px; }

.lawyer-home h3 em{ font-style: normal; margin:0 0 16px; color:#d8aa42; }

.lawyer-home p:not(.kicker) { color:#686c67; font-size:14px; line-height:1.8; max-width:640px; }

@media(max-width:1000px){
 .partners-grid{grid-template-columns:repeat(2,1fr)}
 .lawyer-home-grid{grid-template-columns:1fr;gap:45px}
}
@media(max-width:620px){
 .partners-grid{grid-template-columns:1fr}
 .home-lawyer-actions .text-btn + .text-btn{margin-left:0;margin-top:14px}
}

/* LOGO GFF — nova identidade visual */
.logo-image img { object-fit: contain; }

/* Todos os itens do menu principal permanecem em 12px. */
.nav nav > a,
.nav-dropdown-toggle {
    font-size: 12px !important;
}

@media(max-width:760px) {
    .nav-dropdown {
        display: block;
        width: 100%;
    }

    .nav-dropdown-toggle {
        width: 100%;
        justify-content: space-between;
        padding: 2px 0;
    }

    .nav-submenu {
        position: static;
        width: 100%;
        transform: none;
        margin-top: 9px;
        padding: 5px 0;
        box-shadow: none;
        border-left: 1px solid rgba(254,218,156,.15);
        border-right: 0;
        border-top: 0;
        border-bottom: 0;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        display: none;
        background: rgba(255,255,255,.025);
    }

    .nav-dropdown.open .nav-submenu {
        display: block;
    }

    .nav-submenu::before {
        display: none;
    }

    .nav-submenu a {
        padding: 8px 14px !important;
    }
}

/* =========================================================
   MENU — ÁREAS DE ATUAÇÃO / SUBMENUS
   ========================================================= */
.nav nav {
    align-items: center;
}

.nav-dropdown {
    position: relative;
    display: flex;
    align-items: center;
    height: 72px;
}

.nav-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    font-size: 12px !important;
    color: #d9dddc;
    cursor: pointer;
}

.nav-dropdown-toggle:hover,
.nav-dropdown-toggle.active {
    color: var(--gold);
}

.nav-dropdown-toggle span {
    font-size: 12px;
    line-height: 1;
    transition: transform .2s ease;
}

.nav-dropdown:hover .nav-dropdown-toggle span,
.nav-dropdown:focus-within .nav-dropdown-toggle span,
.nav-dropdown.open .nav-dropdown-toggle span {
    transform: rotate(180deg);
}

/* Sem espaço morto entre o item e o submenu: o cursor pode atravessar diretamente. */
.nav-submenu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    width: 255px;
    margin: 0;
    padding: 9px 0;
    list-style: none;
    background: rgba(7, 23, 34, .99);
    border: 1px solid rgba(254, 218, 156, .20);
    box-shadow: 0 18px 35px rgba(0,0,0,.35);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    z-index: 1000;
}

/* Área invisível de transição, mantendo o submenu selecionável. */
.nav-submenu::before {
    content: "";
    position: absolute;
    top: -19px;
    left: 0;
    right: 0;
    height: 19px;
    background: transparent;
    border: 0;
    transform: none;
}

.nav-submenu::after {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    width: 10px;
    height: 10px;
    background: #071722;
    border-left: 1px solid rgba(254, 218, 156, .20);
    border-top: 1px solid rgba(254, 218, 156, .20);
    transform: translateX(-50%) rotate(45deg);
}

.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu,
.nav-dropdown.open .nav-submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.nav-submenu li {
    margin: 0;
    padding: 0;
}

.nav-submenu a {
    display: block !important;
    width: 100%;
    padding: 10px 17px;
    color: #cbd2d2 !important;
    font-size: 12px !important;
    line-height: 1.3;
    white-space: nowrap;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, padding-left .2s ease;
}

.nav-submenu a:hover,
.nav-submenu a:focus {
    color: var(--gold) !important;
    background: rgba(254, 218, 156, .07);
    padding-left: 21px;
}

.nav nav > a,
.nav-dropdown-toggle {
    font-size: 12px !important;
}

@media(max-width:760px) {
    .nav-dropdown {
        display: block;
        width: 100%;
        height: auto;
    }

    .nav-dropdown-toggle {
        width: 100%;
        justify-content: space-between;
        padding: 2px 0;
    }

    .nav-submenu {
        position: static;
        width: 100%;
        transform: none !important;
        margin-top: 9px;
        padding: 5px 0;
        box-shadow: none;
        border-left: 1px solid rgba(254,218,156,.15);
        border-right: 0;
        border-top: 0;
        border-bottom: 0;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        display: none;
        background: rgba(255,255,255,.025);
    }

    .nav-submenu::before,
    .nav-submenu::after {
        display: none;
    }

    .nav-dropdown.open .nav-submenu {
        display: block;
    }

    .nav-submenu a {
        padding: 9px 14px !important;
        white-space: normal;
    }
}

/* =========================================================
   CARROSSEL DE PARCEIROS — somente seção de parceiros
   ========================================================= */
.partners-carousel {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
}

.partners-carousel-viewport {
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.partners-carousel .partners-grid {
    display: flex;
    flex-wrap: nowrap;
    gap: 15px;
    width: max-content;
    margin: 0;
    transition: transform .8s ease;
    will-change: transform;
}

.partners-carousel .partner-card {
    flex: 0 0 var(--partner-card-width, 25%);
    width: var(--partner-card-width, 25%);
    min-width: 0;
    box-sizing: border-box;
    transform: none;
}

.partners-carousel .partner-card:hover {
    transform: none;
}

.partners-carousel-btn {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border: 1px solid #b69a60;
    border-radius: 50%;
    background: #f8f5ed;
    color: #7c612b;
    font: 28px/1 "Playfair Display", serif;
    display: grid;
    place-items: center;
    cursor: pointer;
    z-index: 3;
    transition: .2s ease;
    padding: 0 0 4px;
}

.partners-carousel-btn:hover {
    background: #7c612b;
    color: #fff;
    border-color: #7c612b;
}

.partners-carousel-btn:focus-visible {
    outline: 2px solid #7c612b;
    outline-offset: 3px;
}

.partners-carousel.is-paused .partners-grid {
    transition-duration: .8s;
}

@media(max-width:1000px) {
    .partners-carousel .partner-card {
        flex-basis: var(--partner-card-width, 50%);
        width: var(--partner-card-width, 50%);
    }
}

@media(max-width:620px) {
    .partners-carousel {
        gap: 8px;
    }

    .partners-carousel-btn {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
        font-size: 24px;
    }

    .partners-carousel .partner-card {
        flex-basis: var(--partner-card-width, 100%);
        width: var(--partner-card-width, 100%);
    }
}


/* =========================================================
   RESPONSIVIDADE DO MENU — TABLET
   ========================================================= */
@media (max-width: 900px) {
    .nav nav {
        display: none;
        position: absolute;
        top: 64px;
        left: 15px;
        right: 15px;
        max-height: calc(100vh - 82px);
        overflow-y: auto;
        background: #071b27;
        padding: 20px;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        border: 1px solid rgba(254,218,156,.2);
        z-index: 2000;
    }

    .nav nav.open {
        display: flex;
    }

    .hamb {
        display: block;
        margin-left: auto;
    }

    .nav-cta {
        display: none;
    }

    .nav-dropdown {
        display: block;
        width: 100%;
        height: auto;
    }

    .nav-dropdown-toggle {
        width: 100%;
        min-height: 42px;
        justify-content: space-between;
        padding: 8px 0;
    }

    .nav-submenu {
        position: static;
        width: 100%;
        transform: none !important;
        margin-top: 0;
        padding: 5px 0;
        box-shadow: none;
        border-left: 1px solid rgba(254,218,156,.15);
        border-right: 0;
        border-top: 0;
        border-bottom: 0;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        display: none;
        background: rgba(255,255,255,.025);
    }

    .nav-submenu::before,
    .nav-submenu::after {
        display: none;
    }

    .nav-dropdown.open .nav-submenu {
        display: block;
    }

    .nav-submenu a {
        min-height: 40px;
        padding: 9px 14px !important;
        white-space: normal;
    }

    .nav-recovery-submenu a {
        padding-left: 18px !important;
    }
}

@media (max-width: 900px) and (min-width: 761px) {
    .nav {
        height: 64px;
    }

    .wrap {
        width: min(100% - 40px, var(--max));
    }
}
