:root{
    --ink:#14151d;
    --ink-2:#1d2030;
    --gold:#c9a227;
    --gold-deep:#9c7d1c;
    --cream:#f4efe4;
    --cream-2:#eae1cd;
    --text-dark:#26241f;
    --text-soft:#5b574c;
    --on-ink:#f4efe4;
    --on-ink-soft:#b9b6ab;
    --rule:rgba(201,162,39,0.35);
    --rule-dark:rgba(38,36,31,0.14);
    --wa-green:#25D366;
    --wa-green-deep:#1DA851;
  }
  :root:not([data-theme="light"]){ }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --cream:#f4efe4; --cream-2:#eae1cd; --text-dark:#26241f; --text-soft:#5b574c;
    }
  }
  :root[data-theme="dark"]{
    --cream:#f4efe4; --cream-2:#eae1cd; --text-dark:#26241f; --text-soft:#5b574c;
  }

  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    background:var(--cream);
    color:var(--text-dark);
    font-family:'Work Sans', -apple-system, sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 clamp(20px, 5vw, 56px);
  }
  h1,h2,h3{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
    color:inherit;
  }
  :focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,0.96);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--rule);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px clamp(20px, 5vw, 56px);
    max-width:1180px; margin:0 auto;
  }
  .brand{
    display:flex; align-items:center; gap:12px;
  }
  .brand-logo{
    height:42px; width:auto; display:block;
  }
  nav ul{
    display:flex; gap:34px; list-style:none;
  }
  nav ul a{
    color:var(--text-soft); font-size:0.94rem; position:relative; padding-bottom:4px;
    transition:color 0.25s ease;
  }
  nav ul a:hover{ color:var(--gold-deep); }
  nav ul a::after{
    content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
    background:var(--gold); transition:right 0.3s ease;
  }
  nav ul a:hover::after{ right:0; }
  .nav-right{ display:flex; align-items:center; gap:22px; }
  .btn-gold{
    background:var(--gold); color:var(--ink); font-weight:600; font-size:0.9rem;
    padding:11px 22px; border-radius:2px; border:1px solid var(--gold);
    transition:background 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
    display:inline-block; white-space:nowrap;
  }
  .btn-gold:hover{ background:var(--gold-deep); border-color:var(--gold-deep); transform:translateY(-1px); }
  .btn-ghost{
    border:1px solid rgba(244,239,228,0.35); color:var(--on-ink);
    padding:10px 21px; border-radius:2px; font-size:0.9rem; font-weight:500;
    transition:border-color 0.25s ease, background 0.25s ease;
  }
  .btn-ghost:hover{ border-color:var(--gold); background:rgba(201,162,39,0.08); }
  .burger{ display:none; background:none; border:0; cursor:pointer; padding:6px; }
  .burger span{ display:block; width:22px; height:2px; background:var(--ink); margin:5px 0; transition:transform .25s ease, opacity .25s ease; }
  .mobile-menu{
    display:none; flex-direction:column; gap:2px; background:var(--cream);
    border-bottom:1px solid var(--rule);
  }
  .mobile-menu.open{ display:flex; }
  .mobile-menu a{
    color:var(--text-soft); padding:14px clamp(20px,5vw,56px); border-top:1px solid var(--rule-dark);
    font-size:0.95rem;
  }
  .mobile-menu a:hover{ color:var(--gold-deep); }

  /* ---------- Hero ---------- */
  .hero{
    background:var(--ink); color:var(--on-ink);
    position:relative; overflow:hidden;
    padding:96px 0 108px;
  }
  .hero .wrap{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:48px; align-items:center;
  }
  .eyebrow-line{
    display:flex; align-items:center; gap:12px; margin-bottom:26px;
    color:var(--gold); font-size:0.85rem; letter-spacing:0.02em;
  }
  .eyebrow-line span.dash{ width:30px; height:1px; background:var(--gold); display:inline-block; }
  .hero h1{
    font-size:clamp(2.3rem, 4.6vw, 3.6rem); line-height:1.08; color:var(--on-ink);
    max-width:15ch;
  }
  .hero p.lead{
    margin-top:22px; color:var(--on-ink-soft); font-size:1.08rem; max-width:46ch; line-height:1.7;
  }
  .hero-cta{ display:flex; gap:16px; margin-top:36px; flex-wrap:wrap; }
  .hero-figure{ display:flex; flex-direction:column; gap:20px; }
  .figure-frame{ border:1px solid var(--gold); padding:12px; }
  .figure-frame img{
    width:100%; height:auto; display:block; aspect-ratio:2/3; object-fit:cover;
    object-position:top center; filter:saturate(0.96) contrast(1.02);
  }
  .hero-note{
    font-size:0.8rem; color:var(--on-ink-soft);
    border-top:1px solid var(--rule); padding-top:10px; max-width:320px;
  }

  /* fade-in sequence for hero on load */
  .reveal-seq > *{ opacity:0; transform:translateY(14px); animation:seqIn 0.7s ease forwards; }
  .reveal-seq > *:nth-child(1){ animation-delay:0.05s; }
  .reveal-seq > *:nth-child(2){ animation-delay:0.18s; }
  .reveal-seq > *:nth-child(3){ animation-delay:0.31s; }
  .reveal-seq > *:nth-child(4){ animation-delay:0.44s; }
  @keyframes seqIn{ to{ opacity:1; transform:translateY(0); } }

  /* ---------- Sections generic ---------- */
  section{ padding:96px 0; }
  .section-head{
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:40px; align-items:end;
    margin-bottom:56px; padding-bottom:26px; border-bottom:1px solid var(--rule-dark);
  }
  .section-head h2{ font-size:clamp(1.7rem, 3vw, 2.3rem); }
  .section-head .kicker{ color:var(--gold-deep); font-size:0.85rem; margin-bottom:10px; display:block; }
  .section-head p{ color:var(--text-soft); max-width:52ch; }
  .fade-up{ opacity:0; transform:translateY(18px); transition:opacity 0.7s ease, transform 0.7s ease; }
  .fade-up.in{ opacity:1; transform:translateY(0); }

  /* ---------- Sobre ---------- */
  #sobre{ background:var(--cream); }
  .sobre-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:start; }
  .oab-card{
    border:1px solid var(--rule-dark); padding:28px 26px; position:relative; background:var(--cream-2);
  }
  .oab-card .num{ font-family:'Fraunces', serif; font-size:2.4rem; color:var(--gold-deep); line-height:1; }
  .oab-card .lbl{ margin-top:10px; font-size:0.88rem; color:var(--text-soft); }
  .sobre-text p{ margin-bottom:18px; color:var(--text-soft); font-size:1.02rem; max-width:60ch; }
  .sobre-text p:first-child{ color:var(--text-dark); font-size:1.15rem; font-family:'Fraunces', serif; font-weight:500; line-height:1.5; }
  .tag-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
  .tag{
    font-size:0.82rem; border:1px solid var(--rule-dark); padding:7px 14px; color:var(--text-soft);
  }

  /* ---------- Serviços : editorial list, not cards ---------- */
  #servicos{ background:var(--cream-2); }
  .service-list{ }
  .service-row{
    display:grid; grid-template-columns:0.28fr 1fr; gap:32px;
    padding:34px 0; border-top:1px solid var(--rule-dark);
    align-items:start;
  }
  .service-row:last-child{ border-bottom:1px solid var(--rule-dark); }
  .service-row .stitle{ font-family:'Fraunces', serif; font-size:1.3rem; font-weight:600; }
  .service-row .sdesc{ color:var(--text-soft); max-width:58ch; }
  .service-row .sdesc a.inline-link{ color:var(--gold-deep); border-bottom:1px solid var(--gold-deep); }

  /* ---------- Recursos (dark bookend) ---------- */
  #recursos{ background:var(--ink); color:var(--on-ink); }
  #recursos .section-head{ border-bottom-color:var(--rule); }
  #recursos .section-head p{ color:var(--on-ink-soft); }
  #recursos .section-head .kicker{ color:var(--gold); }
  .res-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:rgba(244,239,228,0.1); }
  .res-item{ background:var(--ink); padding:32px 26px; }
  .res-item .ri-title{ font-family:'Fraunces', serif; font-size:1.08rem; margin-bottom:10px; }
  .res-item .ri-desc{ color:var(--on-ink-soft); font-size:0.92rem; }
  .res-item .ri-mark{ color:var(--gold); font-size:0.8rem; margin-bottom:16px; display:block; }

  /* ---------- Contato ---------- */
  #contato{ background:var(--cream); }
  .contato-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
  .contact-card{ border:1px solid var(--rule-dark); padding:34px; background:var(--cream-2); }
  .contact-line{ display:flex; gap:16px; padding:16px 0; border-top:1px solid var(--rule-dark); }
  .contact-line:first-child{ border-top:none; padding-top:0; }
  .contact-line .lbl{ width:110px; flex-shrink:0; color:var(--text-soft); font-size:0.85rem; }
  .contact-line .val{ font-weight:500; }
  .contact-line .val a:hover{ color:var(--gold-deep); }
  .map-frame{ border:1px solid var(--rule-dark); padding:34px; display:flex; flex-direction:column; justify-content:space-between; min-height:100%; }
  .map-frame h3{ font-size:1.2rem; margin-bottom:14px; }
  .map-frame p{ color:var(--text-soft); margin-bottom:26px; }
  .social-row{ display:flex; gap:14px; margin-top:auto; }
  .social-row a{
    border:1px solid var(--rule-dark); padding:9px 18px; font-size:0.85rem; transition:border-color .25s ease, color .25s ease;
  }
  .social-row a:hover{ border-color:var(--gold-deep); color:var(--gold-deep); }

  /* ---------- Footer ---------- */
  footer{ background:var(--ink); color:var(--on-ink-soft); padding:34px 0; border-top:1px solid rgba(201,162,39,0.15); }
  footer .wrap{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-size:0.82rem; }
  footer a:hover{ color:var(--gold); }

  /* ---------- WhatsApp float ---------- */
  .wa-float{
    position:fixed; right:24px; bottom:24px; z-index:60;
    width:54px; height:54px; border-radius:50%;
    background:var(--wa-green); display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 22px rgba(0,0,0,0.28);
    transition:transform .25s ease, background .25s ease;
  }
  .wa-float:hover{ transform:translateY(-3px) scale(1.04); background:var(--wa-green-deep); }
  .wa-float svg{ width:26px; height:26px; }
  .wa-icon-inline{ width:17px; height:17px; flex-shrink:0; vertical-align:-3px; margin-right:6px; }

  /* ---------- Responsive ---------- */
  @media (max-width:860px){
    nav ul{ display:none; }
    .nav-right .btn-gold{ display:none; }
    .burger{ display:block; }
    .hero .wrap{ grid-template-columns:1fr; }
    .hero-figure{ order:-1; max-width:280px; margin:0 auto 8px; }
    .hero-note{ display:none; }
    .section-head{ grid-template-columns:1fr; }
    .sobre-grid{ grid-template-columns:1fr; }
    .service-row{ grid-template-columns:1fr; gap:10px; }
    .res-grid{ grid-template-columns:1fr 1fr; }
    .contato-grid{ grid-template-columns:1fr; }
  }
  @media (max-width:520px){
    .res-grid{ grid-template-columns:1fr; }
    .hero-cta{ flex-direction:column; align-items:flex-start; }
  }
