/* Fontes hospedadas no próprio site (licença OFL, ver assets/fonts/) */
@font-face { font-family:"Newsreader"; src:url("../fonts/newsreader-latin-wght-normal.woff2") format("woff2"); font-weight:200 800; font-style:normal; font-display:swap; }
@font-face { font-family:"Inter"; src:url("../fonts/inter-latin-wght-normal.woff2") format("woff2"); font-weight:100 900; font-style:normal; font-display:swap; }


:root {
    --ink: #0b1118;
    --ink-2: #121a23;
    --ink-3: #1a2531;
    --paper: #f7f4ee;
    --paper-2: #fffdf9;
    --line: #ddd6ca;
    --muted: #6e6a63;
    --accent: #9a6d2d;
    --accent-2: #c89a55;
    --accent-soft: #f1e6d5;
    --white: #ffffff;
    --success: #16874b;
    --shadow: 0 18px 50px rgba(7, 12, 18, .12);
    --radius: 18px;
    --container: 1280px;
    --font-display: "Newsreader", Georgia, "Times New Roman", serif;
    --font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 106.25%; }
body {
    margin: 0;
    background: var(--paper-2);
    color: var(--ink);
    font-family: var(--font-body);
    line-height: 1.65;
    text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1,h2,h3,h4 { font-family: var(--font-display); font-weight: 500; line-height: 1.08; letter-spacing: -.015em; margin: 0 0 .8rem; text-wrap: balance; }
p { text-wrap: pretty; }
h1 { font-size: clamp(2.6rem, 6vw, 5.5rem); }
h2 { font-size: clamp(2rem, 3.5vw, 3.4rem); }
h3 { font-size: 1.4rem; }
p { margin: 0 0 1rem; }
.container { width: min(var(--container), calc(100% - 40px)); margin: 0 auto; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 9999; background: #fff; color: #000; padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { top: 16px; }
.eyebrow { display: inline-block; color: var(--accent); font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; margin-bottom: .8rem; }
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 46px;
    padding: .78rem 1.15rem;
    border: 1px solid var(--accent);
    background: var(--accent);
    color: #fff;
    border-radius: 8px;
    font-weight: 800;
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-1px); background: #815b24; border-color: #815b24; }
.btn-ghost { background: transparent; color: inherit; border-color: currentColor; }
.btn-ghost:hover { background: rgba(255,255,255,.08); }
.btn-header { font-size: .95rem; min-height: 44px; padding: .6rem 1.1rem; }
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(11,17,24,.96);
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(16px);
}
.header-inner {
    min-height: 112px;
    display: grid;
    grid-template-columns: 190px 1fr auto;
    transition: min-height .3s ease;
    align-items: center;
    gap: 28px;
}
.brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 104px;
}
.brand img {
    width: auto;
    height: 100px;
    max-width: 180px;
    object-fit: contain;
    object-position: center;
}
.main-nav { display: flex; align-items: center; justify-content: center; gap: 34px; color: #f7f4ee; }
.main-nav a { position: relative; font-size: 1rem; font-weight: 500; letter-spacing: .005em; }
.main-nav a:hover::after { width: 100%; }
.main-nav a::after { content:""; position:absolute; left:0; bottom:-9px; width:0; height:1px; background:var(--accent-2); transition:width .2s ease; }
.menu-toggle { display:none; width:44px; height:44px; border:0; background:transparent; padding:8px; }
.menu-toggle span { display:block; height:2px; background:#fff; margin:6px 0; }

.hero {
    position: relative;
    overflow: hidden;
    min-height: 650px;
    color: #fff;
    background:
        radial-gradient(circle at 75% 35%, rgba(154,109,45,.25), transparent 28%),
        linear-gradient(90deg, rgba(8,13,19,.99) 0%, rgba(8,13,19,.96) 46%, rgba(8,13,19,.7) 70%, rgba(8,13,19,.9) 100%),
        url("../img/escritorio.webp") center/cover no-repeat;
}
.hero-inner { display:grid; grid-template-columns: 1.15fr .85fr; align-items:end; min-height:600px; gap:40px; }
.hero-copy { padding: 70px 0 72px; max-width: 760px; position: relative; z-index: 2; }
.hero-copy h1 { max-width: 15em; font-size: clamp(2.7rem, 4.4vw, 4.4rem); line-height: 1.04; margin-bottom: 1.3rem; }
.hero-copy p { max-width: 35em; color: #e9e4da; font-size: 1.2rem; line-height: 1.65; }
.hero-copy .eyebrow { font-size: .85rem; margin-bottom: 1.1rem; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:32px; }
.hero-actions .btn { min-height:52px; padding:.85rem 1.5rem; font-size:1rem; }
.hero-person { align-self:end; display:flex; justify-content:center; align-items:flex-end; height:100%; }
.hero-person img { width:min(430px, 100%); max-height:540px; object-fit:contain; object-position:bottom center; filter:drop-shadow(0 20px 30px rgba(0,0,0,.25)); }

.trust-strip { background:var(--ink); color:#fff; border-top:1px solid rgba(255,255,255,.08); }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-item { padding:32px 30px; border-right:1px solid rgba(255,255,255,.1); }
.trust-item:last-child { border-right:0; }
.trust-item strong { display:block; font-family:var(--font-display); font-weight:600; font-size:1.3rem; line-height:1.2; margin-bottom:8px; }
.trust-item span { color:#c4ccd4; font-size:1rem; line-height:1.55; }

.section { padding: 82px 0; }
.section.alt { background: var(--paper); }
.section-head { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-bottom:32px; }
.section-head p { max-width:600px; color:var(--muted); font-size:1.05rem; }
.practice-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:14px; }
.practice-card {
    position:relative;
    min-height:230px;
    padding:28px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--paper-2);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.practice-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); border-color:#c7b08b; }
.practice-icon { display:grid; place-items:center; width:44px; height:44px; color:var(--accent); margin-bottom:25px; }
.practice-icon svg { width:38px; height:38px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.practice-card h3 { font-size:1.45rem; }
.practice-card p { color:var(--muted); font-size:1rem; line-height:1.55; }
.card-arrow { position:absolute; right:22px; bottom:20px; color:var(--accent); font-weight:900; }

.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.step { padding:30px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.step-number { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--accent); color:#fff; font-weight:900; margin-bottom:18px; }

.cta-band {
    overflow:hidden;
    background:
      linear-gradient(90deg, rgba(11,17,24,.99), rgba(11,17,24,.83)),
      url("../img/escritorio-interno.webp") center/cover no-repeat;
    color:#fff;
}
.cta-band .container { min-height:280px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.cta-band p { color:#d4dae0; max-width:680px; }

.page-hero {
    min-height:330px;
    display:flex;
    align-items:center;
    color:#fff;
    background:
      linear-gradient(90deg, rgba(11,17,24,.98), rgba(11,17,24,.78)),
      url("../img/escritorio.webp") center/cover no-repeat;
}
.page-hero .container { padding:70px 0; }
.page-hero h1 { font-size:clamp(2.8rem,5vw,4.8rem); max-width:920px; }
.page-hero p { max-width:760px; color:#dde2e7; font-size:1.2rem; }

.breadcrumb { display:flex; gap:8px; align-items:center; flex-wrap:wrap; font-size:.95rem; color:var(--muted); margin:24px 0; }
.breadcrumb a:hover { color:var(--accent); }
.bc-home { display:none; }

.content { padding:60px 0 90px; }
.two-col { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:50px; align-items:start; }
.prose { max-width:820px; }
.prose p { margin-bottom:1.3rem; font-size:1.08rem; line-height:1.78; }
.prose li { font-size:1.08rem; line-height:1.7; }
.prose h2 { margin-top:2.2rem; font-size:2rem; }
.prose h3 { margin-top:1.8rem; }
.lead { font-size:1.3rem; line-height:1.65; color:#343a40; }
.side-card { position:sticky; top:110px; padding:28px; background:var(--ink); color:#fff; border-radius:14px; }
.side-card p { color:#c8d0d7; }
.check-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.check-list li { position:relative; padding-left:28px; }
.check-list li::before { content:"✓"; position:absolute; left:0; color:var(--accent-2); font-weight:900; }
.related { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:40px; }
.related a { border:1px solid var(--line); border-radius:12px; padding:20px; background:#fff; }
.related a:hover { border-color:#c7b08b; box-shadow:var(--shadow); }

.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.blog-card { background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; min-height:280px; }
.blog-card .blog-card-body { padding:24px; }
.blog-card p { color:var(--muted); }
.blog-card:hover { box-shadow:var(--shadow); transform:translateY(-2px); transition:.2s ease; }

.office-profile { display:grid; grid-template-columns:420px 1fr; gap:54px; align-items:start; }
.office-photo { border-radius:18px; overflow:hidden; background:var(--ink); }
.office-photo img { width:100%; }
.profile-note { font-family:var(--font-display); font-size:1.9rem; line-height:1.3; border-left:3px solid var(--accent); padding:18px 0 18px 22px; margin:30px 0; }

.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:50px; }
.contact-list { display:grid; gap:16px; }
.contact-item { padding:20px; border:1px solid var(--line); border-radius:12px; }
.contact-form { padding:30px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.field { display:grid; gap:7px; margin-bottom:16px; }
.field label { font-weight:700; font-size:1rem; }
.field input, .field select, .field textarea { width:100%; border:1px solid #cfc8bc; border-radius:8px; padding:12px 13px; background:#fff; color:#111; }
.field input:focus, .field select:focus, .field textarea:focus { outline:3px solid rgba(154,109,45,.18); border-color:var(--accent); }
.field-error { color:#a22020; font-size:.82rem; min-height:1.2em; }
.hp-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.map-box { margin-top:24px; border-radius:14px; min-height:260px; padding:34px; display:flex; align-items:flex-end; background:
    linear-gradient(135deg,rgba(247,244,238,.8),rgba(255,255,255,.95)),
    repeating-linear-gradient(45deg,#e4e0d9 0 2px,transparent 2px 26px);
    border:1px solid var(--line);
}

.article-meta { display:flex; gap:16px; flex-wrap:wrap; color:var(--muted); font-size:.95rem; margin:16px 0 28px; }
.article-note { padding:20px; background:var(--accent-soft); border-left:4px solid var(--accent); border-radius:8px; margin:28px 0; }
.article-hero-image { margin:24px 0 34px; border-radius:16px; overflow:hidden; max-height:420px; }
.article-hero-image img { width:100%; height:420px; object-fit:cover; }

.site-footer { background:var(--ink); color:#fff; padding:40px 0 16px; }
.footer-grid { display:grid; grid-template-columns:1.35fr .8fr 1fr 1fr; gap:36px; }
.footer-brand img { width:150px; margin-bottom:12px; }
.footer-brand p, .site-footer p { color:#aeb8c2; }
.site-footer > .container a, .footer-grid > div > a { display:block; color:#d9dfe4; font-size:1rem; margin:7px 0; }
.footer-title { font-family:var(--font-body); font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.12em; color:#fff; margin-bottom:14px; }
.footer-social { display:flex; gap:12px; margin-top:16px; }
.footer-social a { display:inline-flex !important; align-items:center; justify-content:center; width:44px; height:44px; padding:0; margin:0 !important; border:1px solid rgba(255,255,255,.22); border-radius:50%; color:#e9d3a6; transition:background .25s ease, color .25s ease, border-color .25s ease; }
.footer-social a:hover { background:var(--accent); border-color:var(--accent); color:#fff; }
.footer-social .ic { width:20px; height:20px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:36px; padding-top:20px; display:flex; justify-content:space-between; gap:20px; font-size:.92rem; color:#9ea8b2; }
.footer-bottom div { display:flex; gap:18px; }

.whatsapp-float {
    position:fixed; right:22px; bottom:22px; z-index:900; display:grid; place-items:center;
    width:58px; height:58px; border-radius:50%; background:#14a859; color:#fff;
    box-shadow:0 12px 34px rgba(0,0,0,.25); font-size:1.7rem; border:3px solid #fff;
}
.cookie-banner {
    position:fixed; left:20px; bottom:20px; z-index:1200;
    width:min(430px,calc(100% - 40px)); padding:18px; border:1px solid #cbc3b6; border-radius:14px;
    background:#fff; color:#111; box-shadow:0 20px 60px rgba(0,0,0,.25); display:flex; flex-direction:column; gap:14px;
}
.cookie-banner[hidden] { display:none; }
.cookie-banner p { margin:5px 0 0; color:#5c5a57; font-size:.86rem; line-height:1.5; }
.cookie-banner p a { color:var(--accent); text-decoration:underline; }
.cookie-prefs { display:grid; gap:8px; margin-top:12px; font-size:.88rem; }
.cookie-prefs[hidden] { display:none; }
.cookie-prefs label { display:flex; gap:8px; align-items:center; }
.cookie-actions { display:flex; gap:8px; flex-wrap:wrap; }
.cookie-actions .btn { flex:1 1 auto; min-height:40px; padding:.5rem .8rem; font-size:.88rem; color:#111; border-color:#b7aa96; background:#fff; }
.cookie-actions .btn[hidden] { display:none; }
.cookie-actions .btn:hover { background:#f3ede3; }
.cookie-actions .btn[data-cookie-accept] { background:var(--accent); color:#fff; border-color:var(--accent); }
.cookie-actions .btn[data-cookie-accept]:hover { background:#815b24; }

.not-found { min-height:68vh; display:grid; place-items:center; text-align:center; padding:60px 20px; }
.not-found .code { font-size:clamp(5rem,16vw,11rem); line-height:1; font-family:var(--font-display); color:var(--accent); }

@media (max-width: 980px) {
    .header-inner { grid-template-columns:1fr auto; }
    .btn-header { display:none; }
    .menu-toggle { display:block; }
    .main-nav {
        position:absolute; top:76px; left:0; right:0; padding:20px;
        background:var(--ink); display:none; flex-direction:column; align-items:flex-start;
        border-top:1px solid rgba(255,255,255,.08);
    }
    .main-nav.is-open { display:flex; }
    .hero { min-height:auto; }
    .hero-inner { grid-template-columns:1fr; min-height:auto; }
    .hero-copy { padding:70px 0 20px; }
    .hero-person { max-height:500px; }
    .hero-person img { max-height:500px; }
    .trust-grid { grid-template-columns:1fr 1fr; }
    .trust-item:nth-child(2) { border-right:0; }
    .practice-grid { grid-template-columns:1fr 1fr; }
    .two-col { grid-template-columns:1fr; }
    .side-card { position:static; }
    .office-profile { grid-template-columns:1fr; }
    .office-photo { max-width:520px; }
    .contact-grid { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr 1fr; }
    .blog-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
    .container { width:min(100% - 28px, var(--container)); }
    .site-header .brand img { width:180px; }
    .hero {
        background:
            linear-gradient(180deg, rgba(8,13,19,.98) 0%, rgba(8,13,19,.90) 55%, rgba(8,13,19,.62) 100%),
            url("../img/escritorio.webp") center/cover no-repeat;
    }
    .hero-copy { padding:54px 0 10px; }
    .hero-copy h1 { font-size:clamp(2.65rem,12vw,4.2rem); }
    .hero-person { margin-top:-20px; max-height:430px; }
    .hero-person img { max-height:430px; width:100%; }
    .trust-grid { grid-template-columns:1fr; }
    .trust-item { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
    .practice-grid, .steps, .related, .blog-grid, .footer-grid { grid-template-columns:1fr; }
    .section { padding:58px 0; }
    .section-head { display:block; }
    .section-head p { margin-top:18px; }
    .cta-band .container { min-height:330px; align-items:flex-start; justify-content:center; flex-direction:column; }
    .page-hero { min-height:280px; }
    .page-hero .container { padding:55px 0; }
    .office-photo { max-width:none; }
    .footer-bottom { flex-direction:column; }
    .cookie-banner { left:10px; bottom:10px; width:calc(100% - 20px); max-height:70vh; overflow:auto; }
    .cookie-actions .btn { flex:1; }
    .article-hero-image img { height:260px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}


/* V16.1 — identidade e integração do hero */
.hero-person { position:relative; isolation:isolate; min-height:100%; overflow:visible; }
.hero-person::before { content:""; position:absolute; inset:15% -8% 0 -15%; z-index:-1; background:radial-gradient(circle at 55% 42%,rgba(197,151,83,.20),transparent 42%),radial-gradient(circle at 55% 90%,rgba(11,17,24,.90),transparent 56%); filter:blur(10px); }
.hero-person::after { content:""; position:absolute; left:-30%; right:-30%; bottom:-2px; height:34%; background:radial-gradient(ellipse 60% 100% at 50% 100%,rgba(11,17,24,.92) 0%,rgba(11,17,24,.6) 45%,rgba(11,17,24,0) 100%); pointer-events:none; }
.hero-person img { transform:translateY(8px) scale(1.055); transform-origin:center bottom; -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%); }
.site-credit { margin-left:auto; color:#9ea8b2; }
.site-credit strong { color:#d8b474; letter-spacing:.06em; }
@media (max-width:980px){ .header-inner{min-height:92px;grid-template-columns:1fr auto}.brand{height:84px}.brand img{height:80px;max-width:150px}.main-nav{top:92px} }
@media (max-width:640px){ .site-header .brand img{width:auto;height:72px;max-width:140px}.hero-person{margin-top:-34px}.hero-person img{transform:translateY(12px) scale(1.09)}.footer-bottom{gap:10px}.site-credit{margin-left:0} }

/* Utilitários (substituem estilos embutidos, exigência da CSP) */
.pt-20 { padding-top:20px !important; }
.pt-28 { padding-top:28px !important; }
.pt-30 { padding-top:30px !important; }
.pt-45 { padding-top:45px !important; }
.mt-24 { margin-top:24px !important; }
.fs-2 { font-size:2rem !important; }
.fs-2-2 { font-size:2.2rem !important; }
.fs-2-6 { font-size:2.6rem !important; }
.text-accent-strong { color:var(--accent) !important; font-weight:800 !important; }
.text-ink { color:var(--ink) !important; }
.grid-2 { grid-template-columns:repeat(2,1fr) !important; }

/* Páginas de destino para anúncios */
.lp-header .header-inner { grid-template-columns:auto 1fr auto; }
.lp-oab { color:#c9d1d8; font-size:.85rem; justify-self:end; padding-right:14px; }
.lp-hero-actions { display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-top:22px; }
.lp-list { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.lp-list li { padding:16px 18px 16px 48px; background:#fff; border:1px solid var(--line); border-radius:12px; position:relative; }
.lp-list li::before { content:"✓"; position:absolute; left:18px; top:15px; color:var(--accent); font-weight:900; }
.lp-notice { margin-top:34px; padding:18px 20px; border-left:4px solid var(--accent); background:var(--accent-soft); border-radius:8px; font-size:.9rem; color:#4a4339; }
.lp-notice p:last-child { margin:0; }
.lp-footer { background:var(--ink); color:#b9c2cb; padding:34px 0; font-size:.85rem; }
.lp-footer .container { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.lp-footer a { color:#e0c79a; text-decoration:underline; }
@media (max-width: 700px) { .lp-oab { display:none; } .lp-header .header-inner { grid-template-columns:auto auto; justify-content:space-between; } }

@media (max-width: 640px) { html { font-size: 100%; } .hero-copy { padding: 54px 0 14px; } .hero-copy p { font-size: 1.1rem; } }

/* =====================================================================
   MOVIMENTO — sóbrio, em CSS + JS puro (assets/js/animations.js)
   Sem JavaScript, ou com "reduzir movimento" ativo, tudo aparece parado.
   ===================================================================== */

/* Cabeçalho: compacta ao rolar e volta ao subir */
.site-header { transition: background .3s ease, box-shadow .3s ease; }
.site-header.is-scrolled { background: rgba(11,17,24,.985); box-shadow: 0 10px 30px rgba(0,0,0,.28); }
.site-header.is-scrolled .header-inner { min-height: 82px; }
.brand img { transition: height .3s ease; }
.site-header.is-scrolled .brand img { height: 68px; }
.site-header.is-scrolled .brand { height: 74px; }

/* Cartões de áreas: linha dourada + seta deslizando (no lugar do "sobe 4px" genérico) */
.practice-card { overflow: hidden; }
.practice-card::before { content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg,var(--accent),var(--accent-2)); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.practice-card:hover, .practice-card:focus-visible { transform:none; box-shadow:0 22px 50px -24px rgba(11,17,24,.35); border-color:#c7b08b; }
.practice-card:hover::before, .practice-card:focus-visible::before { transform:scaleX(1); }
.practice-icon { transition: transform .35s ease; }
.practice-card:hover .practice-icon { transform: translateX(4px); }
.card-arrow { transition: transform .3s ease; }
.practice-card:hover .card-arrow { transform: translateX(6px); }
.blog-card { transition: box-shadow .3s ease, border-color .3s ease; }
.blog-card:hover { transform:none; border-color:#c7b08b; }
.btn { transition: transform .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.btn:hover { box-shadow: 0 10px 24px -12px rgba(154,109,45,.7); }
.main-nav a::after { transition: width .3s cubic-bezier(.2,.7,.2,1); }

/* Linha dourada sob os títulos de seção */
.section-head h2::after { content:""; display:block; width:64px; height:2px; margin-top:18px; background:var(--accent-2); transform-origin:left; transition:transform .8s cubic-bezier(.2,.7,.2,1) .15s; }

@media (prefers-reduced-motion: no-preference) {
    /* Hero: entrada sutil (a mesma da V16 FINAL ajustada). O conteúdo já nasce visível. */
    @keyframes heroRise { from { transform: translateY(10px); opacity: .88; } to { transform: translateY(0); opacity: 1; } }
    @keyframes portraitIn { from { transform: translateX(14px) scale(.985); opacity: .93; } to { transform: translateX(0); opacity: 1; } }
    .hero-copy .eyebrow { animation: heroRise .46s ease-out both; }
    .hero-copy h1       { animation: heroRise .62s .06s ease-out both; }
    .hero-copy p        { animation: heroRise .62s .13s ease-out both; }
    .hero-actions       { animation: heroRise .62s .20s ease-out both; }
    .hero-person        { animation: portraitIn .72s .08s cubic-bezier(.2,.7,.2,1) both; }

    /* Revelação ao rolar (classes aplicadas por animations.js somente a itens abaixo da dobra) */
    .js-motion .reveal { opacity:0; transform:translate3d(0,22px,0); transition: opacity .7s ease, transform .8s cubic-bezier(.2,.7,.2,1); transition-delay: var(--d, 0ms); }
    .js-motion .reveal.is-in { opacity:1; transform:none; transition: opacity .7s ease, transform .8s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease; transition-delay: var(--d, 0ms), var(--d, 0ms), 0ms, 0ms; }
    .js-motion .step .step-number { transform:scale(.6); opacity:0; transition: transform .6s cubic-bezier(.3,1.5,.5,1), opacity .4s ease; transition-delay: calc(var(--d, 0ms) + 120ms); }
    .js-motion .step.is-in .step-number { transform:none; opacity:1; }
    .js-motion .section-head h2::after { transform:scaleX(0); }
    .js-motion .section-head.is-in h2::after { transform:scaleX(1); }

}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { animation: none !important; transition-duration: .01ms !important; }
}
.trust-item:first-child { padding-left:0; }

/* Páginas legais (Cookies e Privacidade): texto mais compacto e fácil de consultar */
.legal { max-width: 900px; }
.legal h2 { font-size: 1.45rem; margin: 2.2rem 0 .7rem; }
.legal p, .legal li { font-size: .95rem; line-height: 1.7; color: #3b4148; margin-bottom: 1rem; }
.legal a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.legal .btn { color: #fff; text-decoration: none; font-size: .95rem; }
.legal code { font-size: .85em; background: var(--accent-soft); padding: 1px 6px; border-radius: 4px; }
.legal-meta { font-size: .85rem !important; color: var(--muted) !important; margin-bottom: 1.2rem !important; }
.legal-note { font-size: .85rem !important; color: var(--muted) !important; }
.legal-index { display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 0 0 1.4rem; }
.legal-index a { font-size: .85rem; text-decoration: none; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; color: #3b4148; }
.legal-index a:hover { border-color: var(--accent); color: var(--accent); }
.legal-table { overflow-x: auto; margin: 1rem 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.legal-table table { width: 100%; border-collapse: collapse; min-width: 640px; }
.legal-table th, .legal-table td { text-align: left; vertical-align: top; padding: 12px 14px; font-size: .88rem; line-height: 1.55; border-bottom: 1px solid var(--line); }
.legal-table th { background: var(--accent-soft); font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; }
.legal-table tr:last-child td { border-bottom: 0; }


/* Áreas de atuação: 6 cartões em 2 linhas de 12 colunas, com hierarquia e tudo alinhado */
.practice-grid { grid-template-columns: repeat(12, 1fr); }
.practice-card { grid-column: span 3; }
.practice-card:nth-child(1),
.practice-card:nth-child(5) {
    grid-column: span 6;
    background: linear-gradient(135deg, rgba(154,109,45,.08), transparent 65%), var(--paper-2);
}
.practice-card:nth-child(1) h3, .practice-card:nth-child(5) h3 { font-size: 1.7rem; }
@media (max-width: 980px) {
    .practice-card, .practice-card:nth-child(1), .practice-card:nth-child(5) { grid-column: span 6; }
    .practice-card:nth-child(1), .practice-card:nth-child(5) { grid-column: span 12; }
}
@media (max-width: 640px) {
    .practice-card, .practice-card:nth-child(1), .practice-card:nth-child(5) { grid-column: span 12; min-height: 0; }
}

/* Rodapé: lista de áreas de atuação é apenas informativa (sem link) */
.footer-area { display:block; margin:7px 0; color:#d9dfe4; font-size:1rem; cursor:default; }


/* Página Áreas de Atuação: um bloco de texto por área */
.area-list { max-width: 920px; }
.area-block { padding: 34px 0; border-top: 1px solid var(--line); scroll-margin-top: 130px; }
.area-block h2 { font-size: clamp(1.7rem, 2.6vw, 2.2rem); margin-bottom: 1rem; }
.area-block p { font-size: 1.05rem; line-height: 1.78; color: #3f444e; margin-bottom: 1.1rem; }
.area-block .area-links { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 1.2rem 0 0; }
.area-block .area-links a { font-size: .95rem; font-weight: 700; color: var(--accent); }
.area-block .area-links a:hover { text-decoration: underline; text-underline-offset: 3px; }


/* Página Áreas de Atuação (9 cartões): 6+3+3 · 3+6+3 · 4+4+4 */
@media (min-width: 981px) {
    .practice-card:nth-child(7),
    .practice-card:nth-child(8),
    .practice-card:nth-child(9) { grid-column: span 4; }
}

/* Texto de abertura das páginas de área, separado do conteúdo original */
.area-sep { border: 0; border-top: 1px solid var(--line); margin: 2rem 0 1.8rem; }


/* Menu: página atual em destaque (também "Áreas de Atuação" dentro de cada área) */
.main-nav a[aria-current="page"] { color: var(--accent-2); font-weight: 700; }
.main-nav a[aria-current="page"]::after { width: 100%; }

/* Botão flutuante do WhatsApp com o ícone oficial */
.whatsapp-float .wa-icon { width: 30px; height: 30px; fill: #fff; display: block; }

/* Rodapé mais compacto */
.footer-bottom { margin-top: 24px; padding-top: 16px; }
.footer-grid { gap: 28px; }


/* Rodapé enxuto: logo + redes, Páginas, Áreas (recolhida) e Contato (link) */
@media (min-width: 981px) { .footer-grid { grid-template-columns: 1.2fr .8fr 1fr .6fr; } }
.footer-social .ic-fill { fill: currentColor; stroke: none; width: 20px; height: 20px; }
.footer-acc summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; }
.footer-acc summary::-webkit-details-marker { display: none; }
.footer-acc summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .25s ease; }
.footer-acc[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.footer-acc summary:hover { color: var(--accent-2); }
.footer-grid .footer-title-link { display: inline-block; font-family: var(--font-body); font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; color: #fff; margin: 0 0 14px; }
.footer-grid .footer-title-link:hover { color: var(--accent-2); }

/* Rodapé inferior: cada bloco numa linha só (quebra por bloco, nunca no meio da frase) */
.footer-bottom { flex-wrap: wrap; align-items: center; row-gap: 8px; }
.footer-bottom > span { white-space: nowrap; }
@media (max-width: 700px) { .footer-bottom > span { white-space: normal; } }

/* Botão flutuante do WhatsApp: some quando o rodapé aparece, para não cobrir informações */
.whatsapp-float { transition: opacity .25s ease, transform .25s ease; }
.whatsapp-float.is-hidden { opacity: 0; transform: scale(.8); pointer-events: none; }
