/* =====================================================================
   Rodrigo Selistre Advocacia – folha de estilo única (site estático)
   Estrutura herdada do padrão Madruga Advocacia (componentes md-*),
   com identidade verde jurídico + dourado + Merriweather.
   ===================================================================== */

/* ---------- Fonte: Merriweather hospedada no próprio site (SIL OFL 1.1) ---------- */
/* As faces "Fallback" ajustam Georgia/Times às medidas da Merriweather (reduz CLS). */
@font-face {
    font-family: "Merriweather";
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url("../fonts/merriweather-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Merriweather Fallback";
    src: local("Georgia");
    size-adjust: 101.52%; ascent-override: 96.53%; descent-override: 26.6%; line-gap-override: 0%;
}
@font-face {
    font-family: "Merriweather Fallback Times";
    src: local("Times New Roman"), local("Liberation Serif"), local("Tinos");
    size-adjust: 116.39%; ascent-override: 84.2%; descent-override: 23.2%; line-gap-override: 0%;
}

/* ---------- Ícones: subconjunto do Font Awesome Free 6.5.0 (fontes via cdnjs) ---------- */
@font-face { font-family: "Font Awesome 6 Free"; font-style: normal; font-weight: 900; font-display: swap; src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/webfonts/fa-solid-900.woff2") format("woff2"); }
@font-face { font-family: "Font Awesome 6 Brands"; font-style: normal; font-weight: 400; font-display: swap; src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/webfonts/fa-brands-400.woff2") format("woff2"); }
.fa-solid, .fa-brands { -webkit-font-smoothing: antialiased; display: inline-block; font-style: normal; line-height: 1; }
.fa-solid { font-family: "Font Awesome 6 Free"; font-weight: 900; }
.fa-brands { font-family: "Font Awesome 6 Brands"; font-weight: 400; }
.fa-arrow-up:before{content:"\f062"}
.fa-bars:before{content:"\f0c9"}
.fa-times:before{content:"\f00d"}
.fa-envelope:before{content:"\f0e0"}
.fa-instagram:before{content:"\f16d"}
.fa-linkedin-in:before{content:"\f0e1"}
.fa-facebook-f:before{content:"\f39e"}
.fa-whatsapp:before{content:"\f232"}
.fa-location-dot:before{content:"\f3c5"}
.fa-laptop:before{content:"\f109"}
.fa-scale-balanced:before{content:"\f24e"}
.fa-gavel:before{content:"\f0e3"}
.fa-people-roof:before{content:"\e537"}
.fa-cart-shopping:before{content:"\f07a"}
.fa-briefcase:before{content:"\f0b1"}
.fa-person-cane:before{content:"\e53c"}
.fa-building:before{content:"\f1ad"}
.fa-file-signature:before{content:"\f573"}
.fa-handshake:before{content:"\f2b5"}
.fa-phone:before{content:"\f095"}

/* ---------- Tokens ---------- */
:root {
    /* identidade: verde jurídico + marrom claro (caramelo) */
    --brand-green:        #0d3024;
    --brand-green-deep:   #061b13;
    --brand-green-card:   #15392d;
    --brand-accent:        #c2a07c; /* caramelo: detalhes e texto sobre verde (5,9:1) */
    --brand-accent-strong: #a07d58; /* ícones sobre branco (3,8:1) */
    --brand-accent-texto:  #6b4c2f; /* texto sobre branco (7,8:1) */
    --brand-accent-rgb:    194, 160, 124;

    /* fundos verdes: gradiente diagonal bem sutil (variação de ~4% de luminosidade) */
    --grad-verde:      linear-gradient(160deg, #113729 0%, #0d3024 50%, #0a291e 100%);
    --grad-verde-card: linear-gradient(160deg, #193f32 0%, #15392d 55%, #12342a 100%);
    --grad-verde-deep: linear-gradient(160deg, #08221a 0%, #061b13 100%);
    --brand-bg:           #eef1ee;
    --brand-wa-from:      #14a047;
    --brand-wa-to:        #075E54;
    --color-light-text:   #eef1ee;
    --text-p:             #1f2937;

    --fonte-principal: 'Merriweather', 'Merriweather Fallback', 'Merriweather Fallback Times', serif;

    --fs-xs:   .875rem;
    --fs-sm:   1rem;
    --fs-base: 1.075rem;
    --fs-lg:   1.25rem;
    --fs-xl:   1.6rem;
    --fs-2xl:  clamp(1.9rem, 1.5rem + 1.2vw, 2.4rem);
    --fs-3xl:  clamp(2rem, 1.3rem + 2.6vw, 3.2rem);

    --radius-card: 24px;
    --shadow-card: 0 8px 24px rgba(10, 39, 29, .16);
    --shadow-img:  0 28px 56px -14px rgba(4, 20, 14, .6), 0 10px 22px rgba(4, 20, 14, .28);
    --ease-suave:  cubic-bezier(.22, .61, .36, 1);
    --nav-h: 84px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + 12px); -webkit-text-size-adjust: 100%; }
body {
    margin: 0; min-height: 100vh; display: flex; flex-direction: column;
    background: var(--brand-bg); color: var(--text-p);
    font-family: var(--fonte-principal); font-weight: 300; line-height: 1.5;
}
main { flex: 1; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
ul { list-style: none; padding: 0; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; }
strong, b { font-weight: 700; }
:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }

.container { width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular-conteudo { position: absolute; left: -9999px; top: 0; z-index: 100; background: #fff; padding: .75rem 1rem; color: var(--brand-green); font-weight: 700; }
.pular-conteudo:focus { left: 1rem; top: 1rem; }

/* Rolagem suave (Lenis) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* ---------- Header / navegação ---------- */
.nav-container {
    position: sticky; top: 0; z-index: 50;
    background: var(--grad-verde-deep);
    box-shadow: 0 2px 10px rgba(0,0,0,.18);
}
.menu-area { display: flex; justify-content: space-between; align-items: center; min-height: var(--nav-h); gap: 1rem; }
.logo { display: flex; align-items: center; gap: .75rem; color: #fff; }
.logo img { width: 58px; height: 58px; }
.logo__texto { display: flex; flex-direction: column; line-height: 1.15; }
.logo__nome { font-weight: 700; font-size: 1.3rem; letter-spacing: .02em; }
.logo__sub { font-size: .78rem; letter-spacing: .28em; text-transform: uppercase; color: var(--brand-accent); }
.nav-area { display: none; gap: 1.5rem; align-items: center; }
.nav-area a {
    color: var(--brand-accent); text-transform: uppercase; letter-spacing: .05em; font-weight: 700; font-size: 1rem;
    transition: color .2s ease;
}
.nav-area a:hover, .nav-area a[aria-current="page"] { color: #fff; }
.hamburger { background: none; border: 0; color: var(--brand-accent); font-size: 1.5rem; padding: .5rem; cursor: pointer; }

#sidebar {
    position: fixed; top: 0; left: 0; height: 100%; width: 17rem; z-index: 60;
    background: rgba(10, 39, 29, .82); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
    border-right: 1px solid rgba(var(--brand-accent-rgb), .3); box-shadow: 4px 0 24px rgba(0,0,0,.35); transform: translateX(-100%); transition: transform .3s ease;
    padding: 1.75rem 1.5rem; display: flex; flex-direction: column; gap: 1.35rem;
}
#sidebar.aberto { transform: translateX(0); }
#sidebar a { color: var(--brand-accent); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .04em; padding: .35rem 0; transition: color .2s ease; }
#sidebar a:hover, #sidebar a[aria-current="page"] { color: #fff; }
.sidebar-fundo { position: fixed; inset: 0; background: rgba(4, 20, 14, .45); z-index: 55; display: none; }
.sidebar-fundo.aberto { display: block; }

@media (min-width: 1100px) {
    .nav-area { display: flex; }
    .hamburger { display: none; }
}

/* ---------- Títulos / seções ---------- */
.md-eyebrow { display: inline-block; font-size: var(--fs-xs); letter-spacing: .12em; text-transform: uppercase; color: var(--brand-accent-texto); font-weight: 700; }
.md-section { padding: 3.5rem 0; }
.md-section--verde { background: var(--grad-verde); }
.md-section--verde-card { background: var(--grad-verde-card); }
.md-section--verde, .md-section--verde p, .md-section--verde li, .md-section--verde h2, .md-section--verde h3,
.md-section--verde-card, .md-section--verde-card p, .md-section--verde-card li, .md-section--verde-card h2, .md-section--verde-card h3 { color: var(--color-light-text); }
.md-section--white { background: #fff; }

.md-titulo { font-size: var(--fs-2xl); color: var(--brand-green); font-weight: 700; line-height: 1.25; }
.md-section--verde .md-titulo, .md-section--verde-card .md-titulo { color: #fff; }
.mb-8 { margin-bottom: 2rem; }
.md-titulo + .md-cards { margin-top: 2rem; }
.text-center { text-align: center; }

/* ---------- Botões ---------- */
.md-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    padding: .85rem 1.4rem; border-radius: 10px; font-weight: 700; font-size: var(--fs-base);
    line-height: 1.2; text-align: center; cursor: pointer; border: 0;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.md-btn--whats { color: #fff; background: linear-gradient(135deg, var(--brand-wa-from), var(--brand-wa-to)); box-shadow: 0 2px 10px rgba(37, 211, 102, .35); }
.md-btn--whats:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(37, 211, 102, .4); }
.md-btn--ghost { color: var(--brand-green); border: 2px solid var(--brand-green); background: transparent; }
.md-btn--ghost:hover { background: var(--brand-green); color: #fff; }
.md-section--verde .md-btn--ghost { color: #fff; border-color: rgba(255,255,255,.6); }
.md-respira { animation: respira 2.8s ease-in-out infinite; }
@keyframes respira { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } }

/* ---------- Hero ---------- */
.md-hero { padding: 2.5rem 0 3rem; }
.md-hero__grid { display: grid; gap: 2.5rem; align-items: center; }
.titulo-principal { font-size: var(--fs-3xl); line-height: 1.2; color: var(--brand-green); font-weight: 400; }
.titulo-principal strong { font-weight: 700; }
.subtitulo-principal { font-size: var(--fs-lg); line-height: 1.6; color: #2b3a33; margin-top: 1rem; }
.md-hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.md-hero__foto { position: relative; justify-self: center; max-width: 380px; width: 100%; }
.md-hero__foto .foto-moldura { border-radius: var(--radius-card); aspect-ratio: 4 / 5; }
.md-hero__selo {
    z-index: 2; position: absolute; left: -1rem; bottom: 1.25rem; background: var(--brand-green-card); border-radius: 14px; padding: .75rem 1rem;
    box-shadow: var(--shadow-card); border-left: 4px solid var(--brand-accent);
}
.md-hero__selo p { font-size: var(--fs-sm); color: #fff; }
.md-breadcrumb { font-size: var(--fs-xs); color: #4b5563; }
.md-breadcrumb a { text-decoration: underline; }

/* Fotos: moldura com sombra forte e zoom lento no hover (entrada pelo AOS) */
.foto-moldura { position: relative; overflow: hidden; box-shadow: var(--shadow-img); isolation: isolate; }
.foto-moldura picture { display: block; width: 100%; height: 100%; }
.foto-moldura img {
    width: 100%; height: 100%; object-fit: cover;
    transform: scale(1.001); transition: transform 1.6s var(--ease-suave), filter 1.6s var(--ease-suave);
}
.foto-moldura::after { /* véu leve que some no hover */
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, transparent 55%, rgba(6, 27, 19, .28)); transition: opacity 1.2s var(--ease-suave);
}
.foto-moldura:hover img { transform: scale(1.06); filter: saturate(1.08); }
.foto-moldura:hover::after { opacity: .4; }
html.js .foto-moldura--hero img { animation: foto-entra 2.4s var(--ease-suave) backwards; }
@keyframes foto-entra { from { transform: scale(1.08); } to { transform: scale(1.001); } }

/* Banner de fundo do topo da home: mármore claro com veios dourados (Unsplash, licença gratuita).
   A foto fica numa camada própria (::before) com opacidade baixa e dourado dessaturado,
   para virar só uma textura quase imperceptível sobre o verde-claro. Ajuste fino: --banner-opacidade. */
.md-hero--banner {
    --banner-opacidade: .06;
    position: relative; isolation: isolate;
    background: linear-gradient(100deg, #e2ece5 0%, #dfeae2 60%, #dce8df 100%);
    border-bottom: 1px solid rgba(var(--brand-accent-rgb), .25);
}
.md-hero--banner::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: url("https://images.unsplash.com/photo-1690049098415-29f96fca22c0?auto=format&fit=crop&w=1920&q=55") center / cover no-repeat;
    opacity: var(--banner-opacidade);
    filter: saturate(.3) brightness(1.15) contrast(.7);
}
@media (max-width: 899px) {
    .md-hero--banner { --banner-opacidade: .05; }
    .md-hero--banner::before { background-image: url("https://images.unsplash.com/photo-1690049098415-29f96fca22c0?auto=format&fit=crop&w=900&q=50"); }
}

/* Linha de confiança (autoria + OAB) */
.md-confianca { display: flex; align-items: center; gap: .75rem; margin-top: 1.5rem; }
.md-confianca img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 2px solid var(--brand-accent); }
.md-confianca p { font-size: var(--fs-sm); line-height: 1.4; color: #2b3a33; }
.md-confianca strong { color: var(--brand-green); }
.md-confianca a { text-decoration: underline; }

/* ---------- Cards de áreas ---------- */
.md-cards { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.md-card {
    display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto 1fr auto; column-gap: .85rem; row-gap: .75rem; align-items: center;
    padding: 1.75rem; background: #fff;
    border-radius: var(--radius-card); box-shadow: var(--shadow-card); border: 3px solid var(--brand-accent);
    transition: transform .25s ease, box-shadow .25s ease;
}
a.md-card:hover, a.md-card[data-aos].aos-animate:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(10, 39, 29, .25); }
.md-card i { font-size: 1.75rem; color: var(--brand-accent-strong); width: 2rem; text-align: center; }
.md-card h3 { font-size: 1.3rem; font-weight: 700; color: var(--brand-green); line-height: 1.3; }
.md-card p { grid-column: 1 / -1; align-self: start; font-size: 1.05rem; line-height: 1.65; color: #374151; }
.md-card__link { font-weight: 700; color: var(--brand-accent-texto); font-size: var(--fs-base); }
a.md-card:hover .md-card__link { text-decoration: underline; }
@media (min-width: 1024px) { .md-cards--6 { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Chamadas para agendar (fim de seção e dentro de artigo) ---------- */
.md-cta-secao { margin-top: 2.75rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.md-cta-secao p { font-size: var(--fs-lg); line-height: 1.6; max-width: 620px; }
.md-card .md-card__link { grid-column: 1 / -1; justify-self: start; }
.md-card a.md-card__link:hover { text-decoration: underline; }
.md-cta-artigo {
    margin: 2rem 0 1.5rem; padding: 1.5rem 1.75rem; border-radius: 18px; background: #fff;
    border-left: 5px solid var(--brand-accent); box-shadow: 0 6px 20px rgba(10, 39, 29, .1);
    display: flex; flex-direction: column; gap: 1rem; align-items: flex-start;
}
.md-prose .md-cta-artigo p { margin: 0; }
.md-prose .md-cta-artigo a.md-btn { color: #fff; text-decoration: none; }

/* ---------- Bloco "sobre" (imagem + texto) ---------- */
.md-bloco { display: grid; gap: 2.5rem; align-items: center; }
.md-bloco__img .foto-moldura { border-radius: 18px; aspect-ratio: 580 / 400; }
.md-bloco__img { position: relative; }
.md-etiqueta {
    position: absolute; left: -1rem; bottom: 1.5rem; z-index: 2; margin: 0;
    display: flex; flex-direction: column; gap: .15rem;
    background: var(--grad-verde-card); color: #fff; padding: .85rem 1.15rem; border-radius: 14px;
    border-left: 4px solid var(--brand-accent); box-shadow: var(--shadow-img);
}
.md-etiqueta strong { font-size: 1.05rem; }
.md-etiqueta span { font-size: var(--fs-xs); color: var(--brand-accent); letter-spacing: .04em; }
@media (max-width: 899px) { .md-etiqueta { left: .75rem; bottom: .75rem; } }
.md-bloco__texto p { font-size: 1.15rem; line-height: 1.8; margin-top: 1rem; }
@media (min-width: 1441px) { .md-bloco__texto p { font-size: 1.3rem; } }
.md-bloco__texto .md-btn { margin-top: 1.5rem; }
@media (min-width: 900px) { .md-bloco { grid-template-columns: 1fr 1fr; } }

/* ---------- FAQ (details/summary nativo) ---------- */
.md-faq { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: .75rem; }
.md-faq details { border-radius: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.15); }
.md-faq details[open] { background: rgba(255,255,255,.1); }
.md-faq summary {
    cursor: pointer; list-style: none; padding: 1.2rem 1.4rem; font-weight: 700; color: #fff; font-size: 1.1rem;
    display: flex; justify-content: space-between; gap: 1rem; align-items: center;
}
.md-faq summary::-webkit-details-marker { display: none; }
.md-faq summary::after { content: "+"; font-size: 1.4rem; color: var(--brand-accent); line-height: 1; }
.md-faq details[open] summary::after { content: "–"; }
.md-faq__resposta { padding: 0 1.25rem 1.2rem; }
.md-faq__resposta p { font-size: 1.075rem; line-height: 1.7; color: #e2e8e4; }

/* ---------- Páginas de área (pilar) ---------- */
.md-servico-hero { padding: 2rem 0 2.5rem; background: #fff; border-bottom: 1px solid #e5e7eb; }
.md-servico-hero h1 { font-size: var(--fs-3xl); line-height: 1.2; color: var(--brand-green); font-weight: 700; margin: .5rem 0 1rem; }
.md-lead { font-size: var(--fs-lg); line-height: 1.6; color: #2b3a33; }
.md-resposta { margin-top: 1.5rem; padding: 1.25rem 1.5rem; background: #f3f6f2; border-left: 5px solid var(--brand-accent); border-radius: 0 14px 14px 0; }
.md-resposta__rotulo { display: block; font-size: var(--fs-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--brand-accent-texto); margin-bottom: .35rem; font-weight: 700; }
.md-resposta p { line-height: 1.7; color: #1f2937; }
.md-acoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }

.md-layout { display: grid; gap: 2.5rem; padding: 2.5rem 0; }
.md-sumario { background: #fff; border-radius: 16px; padding: 1.25rem; box-shadow: 0 4px 14px rgba(10,39,29,.08); align-self: start; }
.md-sumario p { font-weight: 700; color: var(--brand-green); margin-bottom: .5rem; }
.md-sumario ol { padding-left: 1.2rem; display: flex; flex-direction: column; gap: .35rem; }
.md-sumario a { font-size: var(--fs-sm); color: #1f2937; }
.md-sumario a:hover { color: var(--brand-accent-texto); text-decoration: underline; }

.md-prose { max-width: 800px; }
.md-prose h2 { font-size: var(--fs-xl); color: var(--brand-green); font-weight: 700; margin: 2.25rem 0 .75rem; scroll-margin-top: calc(var(--nav-h) + 16px); }
.md-prose h2:first-child { margin-top: 0; }
.md-prose h3 { font-size: var(--fs-lg); color: var(--brand-green); font-weight: 700; margin: 1.5rem 0 .5rem; }
.md-prose p, .md-prose li { font-size: 1.1rem; line-height: 1.8; color: #1f2937; }
.md-prose p { margin-bottom: 1rem; }
.md-prose ul { list-style: disc; padding-left: 1.4rem; margin-bottom: 1rem; }
.md-prose ol { list-style: decimal; padding-left: 1.4rem; margin-bottom: 1rem; }
.md-prose a { color: var(--brand-green); text-decoration: underline; }
.md-prose .foto-moldura { border-radius: 18px; margin: 1.75rem 0 2rem; aspect-ratio: 2 / 1; }
.md-prose .md-aviso { font-size: var(--fs-sm); color: #4b5563; font-style: italic; }

.md-base-legal { background: var(--grad-verde-card); border-radius: var(--radius-card); padding: 1.5rem 1.75rem; margin: 2rem 0; }
.md-base-legal__titulo { color: var(--brand-accent) !important; font-weight: 700; margin-bottom: .75rem !important; font-size: var(--fs-lg) !important; }
.md-prose .md-base-legal ul { list-style: none; padding-left: 0; margin: 0; }
.md-prose .md-base-legal li { color: var(--color-light-text); font-size: var(--fs-sm); line-height: 1.6; margin-bottom: .6rem; }
.md-prose .md-base-legal a { color: #fff; }

.md-cta-final { text-align: center; }
.md-cta-final p { max-width: 640px; margin: .75rem auto 1.5rem; font-size: var(--fs-lg); line-height: 1.6; }
.md-cta-final .md-cta-final__oab { font-size: var(--fs-xs); margin-top: 1rem; }

@media (min-width: 900px) {
    .md-hero__grid { grid-template-columns: 1.25fr .75fr; }
    .md-layout { grid-template-columns: minmax(0, 1fr) 260px; }
    .md-sumario { position: sticky; top: calc(var(--nav-h) + 24px); order: 2; }
    .md-section { padding: 4.5rem 0; }
}
@media (max-width: 899px) {
    .md-hero .titulo-principal, .md-hero .subtitulo-principal { text-align: center; }
    .md-hero__ctas { justify-content: center; }
    .md-hero__ctas .md-btn { width: 100%; }
    .md-hero__foto { display: none; }
    .md-hero--perfil .md-hero__foto { display: block; max-width: 300px; }
    .md-hero--perfil .md-hero__selo { left: .5rem; }
}

/* ---------- Formulário de contato (ao lado do título, no topo da home) ---------- */
.md-hero__form { width: 100%; max-width: 500px; justify-self: end; scroll-margin-top: calc(var(--nav-h) + 16px); }
.formulario-contato {
    width: 100%; background: var(--grad-verde-card); padding: 1.5rem; border-radius: 20px;
    box-shadow: var(--shadow-img); display: flex; flex-direction: column; gap: 1rem;
}
.formulario-contato h2 { color: #fff; font-size: var(--fs-xl); font-weight: 700; line-height: 1.25; }
.formulario-contato label { display: block; color: #e2e8e4; font-weight: 400; font-size: 1rem; margin-bottom: .35rem; }
.formulario-contato input, .formulario-contato select, .formulario-contato textarea {
    width: 100%; padding: .7rem .95rem; background: #fff; border: 1px solid #d1d5db; border-radius: 12px; color: #111827;
}
.formulario-contato input:focus, .formulario-contato select:focus, .formulario-contato textarea:focus { outline: 3px solid var(--brand-accent); outline-offset: 1px; }
.formulario-contato textarea { resize: vertical; min-height: 5rem; }
.formulario-contato .md-btn { width: 100%; }
/* Mobile: formulário mais compacto (menos alto) */
@media (max-width: 639px) {
    .formulario-contato { padding: 1.25rem 1.1rem; gap: .7rem; }
    .formulario-contato h2 { font-size: var(--fs-lg, 1.25rem); }
    /* Rótulo some visualmente, mas continua para leitores de tela */
    .formulario-contato label {
        position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
        overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
    }
    .formulario-contato input, .formulario-contato select, .formulario-contato textarea { padding: .55rem .85rem; }
    .formulario-contato textarea { min-height: 3.5rem; }
    .form-linha { gap: .7rem; }
    .form-aviso { margin-top: .5rem; line-height: 1.45; }
}
.form-linha { display: grid; gap: 1rem; }
@media (min-width: 640px) { .form-linha { grid-template-columns: 1fr 1fr; } .formulario-contato { padding: 1.75rem 2rem 2rem; } }
.form-aviso { font-size: var(--fs-xs); color: #d4ddd8; line-height: 1.6; margin-top: .75rem; }
.form-aviso a { text-decoration: underline; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (min-width: 900px) { .md-hero__grid--form { grid-template-columns: 1.1fr .9fr; gap: 3.5rem; } }
@media (max-width: 899px) { .md-hero__form { justify-self: center; margin-top: .5rem; } }

/* ---------- Rodapé ---------- */
.rodape { background: var(--grad-verde-deep); color: var(--color-light-text); padding: 1.75rem 0; text-align: center; border-top: 1px solid rgba(var(--brand-accent-rgb), .3); }
.rodape .container { display: flex; flex-direction: column; gap: .8rem; align-items: center; }
.rodape__id { color: var(--brand-accent); font-weight: 700; display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem 1.5rem; }
.rodape nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem 1rem; font-size: var(--fs-sm); }
.rodape nav a:hover, .rodape nav button:hover { text-decoration: underline; }
.rodape nav button { background: none; border: 0; color: inherit; cursor: pointer; padding: 0; font-size: var(--fs-sm); }
.rodape__aviso { font-size: var(--fs-xs); max-width: 720px; line-height: 1.6; color: #b9c6bf; }
.rodape__copy { font-size: var(--fs-xs); }

/* ---------- Botões flutuantes ---------- */
.flutuantes { position: fixed; right: 1.25rem; bottom: 5rem; display: flex; flex-direction: column; gap: .65rem; z-index: 40; }
.flutuantes a {
    --cor: #22c55e;
    position: relative; width: 3.25rem; height: 3.25rem; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 1.45rem; background: var(--cor);
    box-shadow: 0 4px 12px rgba(0,0,0,.25); transition: transform .3s var(--ease-suave), filter .3s ease;
}
.flutuantes a:hover, .flutuantes a:focus-visible { transform: scale(1.07); filter: brightness(1.08); }
.flutuantes .f-whats    { --cor: #22a35a; }
.flutuantes .f-insta    { --cor: #d6249f; background: linear-gradient(45deg, #f59e0b, #ef4444 45%, #d6249f); }
.flutuantes .f-facebook { --cor: #1877f2; }
.flutuantes .f-linkedin { --cor: #0a66c2; }
.flutuantes .f-email    { --cor: var(--brand-green); background: var(--brand-green); color: var(--brand-accent); border: 2px solid var(--brand-accent); font-size: 1.2rem; }

/* Balão com a descrição (aparece ao passar o mouse ou focar pelo teclado), como no Madruga */
.f-balao {
    position: absolute; right: calc(100% + 14px); top: 50%;
    transform: translate(8px, -50%); opacity: 0; visibility: hidden; pointer-events: none;
    background: var(--cor); color: #fff; font-family: var(--fonte-principal); font-size: .9rem; font-weight: 700;
    white-space: nowrap; padding: .45rem .8rem; border-radius: 8px; box-shadow: 0 6px 16px rgba(0,0,0,.22);
    transition: opacity .3s var(--ease-suave), transform .3s var(--ease-suave), visibility .3s;
}
.f-balao::after { /* setinha apontando para o botão */
    content: ""; position: absolute; right: -5px; top: 50%; width: 10px; height: 10px;
    background: var(--cor); transform: translateY(-50%) rotate(45deg);
}
.flutuantes a:hover .f-balao, .flutuantes a:focus-visible .f-balao { opacity: 1; visibility: visible; transform: translate(0, -50%); }
@media (hover: none) { .f-balao { display: none; } }
@media (max-width: 640px) {
    .flutuantes { right: .85rem; gap: .5rem; }
    .flutuantes a { width: 2.85rem; height: 2.85rem; font-size: 1.25rem; }
}
#btnTopo {
    position: fixed; right: 1.5rem; bottom: 1.25rem; z-index: 40; display: none;
    width: 2.75rem; height: 2.75rem; border-radius: 50%; cursor: pointer; font-size: 1rem;
    color: var(--brand-accent); background: var(--brand-green); border: 2px solid var(--brand-accent);
    box-shadow: 0 4px 12px rgba(0,0,0,.25); transition: background .2s ease, color .2s ease;
}
#btnTopo:hover { background: var(--brand-accent); color: var(--brand-green-deep); }
#btnTopo.visivel { display: flex; align-items: center; justify-content: center; }

/* ---------- Banner de cookies (LGPD) ---------- */
#cookie-consent { position: fixed; inset: auto 0 0 0; z-index: 10000; padding: 1rem; }
#cookie-consent[hidden] { display: none; }
.cookie-caixa { max-width: 56rem; margin: 0 auto; background: #fff; color: #1f2937; border-radius: 16px; border: 1px solid #e5e7eb; box-shadow: 0 20px 40px rgba(0,0,0,.25); padding: 1.25rem 1.5rem; }
.cookie-caixa p { line-height: 1.55; margin-bottom: .75rem; }
.cookie-caixa a { color: var(--brand-green); text-decoration: underline; font-weight: 600; }
#cookie-consent-titulo { font-weight: 700; font-size: 1.1rem; color: var(--brand-green); }
#cookie-consent-opcoes { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1rem; font-size: var(--fs-sm); }
#cookie-consent-opcoes[hidden] { display: none; }
#cookie-consent-opcoes label { display: flex; gap: .6rem; align-items: flex-start; }
#cookie-consent-opcoes input { accent-color: var(--brand-green); width: 1.1rem; height: 1.1rem; margin-top: .2rem; }
.cookie-botoes { display: flex; flex-direction: column; gap: .5rem; }
.cookie-botoes button { padding: .6rem 1rem; border-radius: 10px; border: 1px solid #9ca3af; background: #fff; font-weight: 700; cursor: pointer; color: #1f2937; }
.cookie-botoes button[hidden] { display: none; }
.cookie-botoes #cookie-aceitar { background: var(--brand-green); border-color: var(--brand-green); color: #fff; }
@media (min-width: 640px) { .cookie-botoes { flex-direction: row; justify-content: flex-end; } }

/* ---------- Página 404 ---------- */
.erro-404 { text-align: center; padding: 5rem 0; }
.erro-404 .numero { font-size: 5rem; font-weight: 700; color: var(--brand-accent-strong); line-height: 1; }

@media (prefers-reduced-motion: reduce) {
    .md-respira { animation: none; }
}
