@font-face{
    font-family:'Segoe';
    src:url('fonts/segoe.otf') format('opentype');
    font-weight:100 900;
    font-style:normal;
    font-display:swap;
  }
  @font-face{
    font-family:'Sora';
    src:url('fonts/sora.ttf') format('truetype');
    font-weight:100 900;
    font-style:normal;
    font-display:swap;
  }
  :root{
    /* Identidade visual oficial — Cronemberger Rufino Advocacia */
    --bg:#ffffff;
    --surface:#EDEDED;      /* Cinza claro (oficial) */
    --surface-2:#E3E3E3;    /* Cinza claro, um tom abaixo, para sobreposição de cartões */
    --text:#393B3A;         /* Cinza escuro (oficial) — cor do corpo de texto */
    --text-muted:#6B6D6C;   /* derivado do cinza escuro, mais claro */
    --label:#8B8D8C;        /* derivado do cinza escuro, mais claro ainda */
    --navy:#293547;         /* Azul marinho (oficial) — textos de destaque, links, CTAs */
    --slate:#587393;        /* Azul ardósia (oficial) — cor de apoio, usada nos ícones */
    --navy-soft:#EBEEF2;    /* washing claro do Azul ardósia, para fundos em hover */
    --border:#DADADA;       /* derivado do Cinza claro, para hairlines */
    --avatar-bg:#9BABBE;    /* derivado do Azul ardósia */
    --on-navy:#ffffff;
    --shadow:0 1px 2px rgba(41,53,71,.05), 0 8px 24px -12px rgba(41,53,71,.12);
    --font-display:'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-text:'Segoe', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#1c1f22;
      --surface:#242729;
      --surface-2:#2b2f32;
      --text:#EDEDED;
      --text-muted:#b7b9b8;
      --label:#9a9c9b;
      --navy:#92a4b9;
      --slate:#7c9cbe;
      --navy-soft:#26313d;
      --border:#35393c;
      --avatar-bg:#4c5b6b;
      --on-navy:#1c1f22;
      --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
      color-scheme: dark;
    }
  }
  :root[data-theme="dark"]{
    --bg:#1c1f22;
    --surface:#242729;
    --surface-2:#2b2f32;
    --text:#EDEDED;
    --text-muted:#b7b9b8;
    --label:#9a9c9b;
    --navy:#92a4b9;
    --slate:#7c9cbe;
    --navy-soft:#26313d;
    --border:#35393c;
    --avatar-bg:#4c5b6b;
    --on-navy:#1c1f22;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
    color-scheme: dark;
  }
  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:var(--font-text);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    padding-block:env(safe-area-inset-top,0px) env(safe-area-inset-bottom,0px);
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  [hidden]{display:none!important;}
  .wrap{
    width:100%;
    max-width:1120px;
    margin-inline:auto;
    padding-inline:24px;
  }
  h1,h2,h3{
    font-family:var(--font-display);
    font-weight:600;
    line-height:1.18;
    margin:0;
    text-wrap:balance;
    color:var(--text);
  }
  p{margin:0;}
  .eyebrow{
    font-family:var(--font-text);
    font-size:12.5px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--label);
    margin:0 0 12px;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:var(--font-text);
    font-weight:600;
    font-size:15px;
    padding:13px 24px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    text-decoration:none;
    transition:background-color .15s ease, color .15s ease, border-color .15s ease;
  }
  .btn-primary{ background:var(--navy); color:var(--on-navy); }
  .btn-primary:hover{ opacity:.88; }
  .btn-hero-primary{ background:var(--on-navy); color:var(--navy); }
  .btn-hero-primary:hover{ opacity:.88; }
  .btn-ghost{ background:transparent; color:var(--on-navy); border-color:rgba(255,255,255,.45); }
  .btn-ghost:hover{ background:rgba(255,255,255,.1); }
  .btn-outline{ background:transparent; color:var(--navy); border-color:var(--navy); }
  .btn-outline:hover{ background:var(--navy-soft); }

  /* Header */
  header{
    position:sticky; top:env(safe-area-inset-top,0px);
    z-index:40;
    background:var(--bg);
    border-bottom:1px solid var(--border);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding-block:14px;
    gap:16px;
    max-width:1240px;
  }
  .logo-plate{
    display:inline-flex; align-items:center;
    background:#ffffff;
    padding:6px 10px;
    border-radius:3px;
  }
  .logo-plate img{ height:72px; width:auto; }
  nav.links{ display:flex; align-items:center; gap:22px; }
  nav.links a{
    font-size:14.5px; font-weight:500; text-decoration:none; color:var(--text);
    padding-block:4px; border-bottom:2px solid transparent;
    text-align:center; line-height:1.3; white-space:nowrap;
  }
  nav.links a:hover{ color:var(--navy); border-color:var(--navy); }
  nav.links a.current, .mobile-panel a.current{ color:var(--navy); border-color:var(--navy); }
  .nav-cta{ display:flex; align-items:center; gap:18px; }
  .nav-cta .btn-outline{ white-space:nowrap; }
  .menu-btn{
    display:none; background:none; border:1px solid var(--border); border-radius:3px;
    width:40px; height:40px; align-items:center; justify-content:center; cursor:pointer;
    color:var(--text);
  }
  .mobile-panel{
    display:none;
    flex-direction:column;
    padding:8px 24px 20px;
    border-top:1px solid var(--border);
    background:var(--bg);
  }
  .mobile-panel a{
    padding:12px 0; font-size:15.5px; font-weight:500; text-decoration:none; color:var(--text);
    border-bottom:1px solid var(--border);
  }
  .mobile-panel.open{ display:flex; }

  /* A logo maior precisa de mais espaço ao lado do menu completo; abaixo
     de 1180px alternamos para o menu compacto (hambúrguer) em vez de
     espremer os links de navegação contra a logo. */
  @media (max-width: 1180px){
    nav.links, .nav-cta .btn-outline{ display:none; }
    .menu-btn{ display:inline-flex; }
    /* Com os links de navegação ocultos, centraliza a logo na barra em vez
       de deixá-la presa à esquerda com um vão vazio ao lado. */
    .nav{ display:grid; grid-template-columns:1fr auto 1fr; }
    .logo-plate{ grid-column:2; justify-self:center; }
    .nav-cta{ grid-column:3; justify-self:end; }
  }

  /* Linha de botões de ação (usada na Apresentação) */
  .cta-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:20px; }

  /* Diferenciais do escritório */
  .diffs-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--border); border:1px solid var(--border); border-radius:4px; overflow:hidden; margin-top:8px;
  }
  .diff-item{
    background:var(--bg); padding:32px 26px; display:flex; flex-direction:column; gap:14px; position:relative;
    transition:background .3s ease, transform .3s ease;
  }
  .diff-item:hover{ background:var(--navy); transform:translateY(-4px); }
  .diff-item .icon-wrap{
    width:48px; height:48px; border-radius:50%; background:var(--navy-soft);
    display:flex; align-items:center; justify-content:center; color:var(--slate);
    transition:background .3s ease, color .3s ease;
  }
  .diff-item .icon-wrap .icon{ width:24px; height:24px; }
  .diff-item:hover .icon-wrap{ background:rgba(255,255,255,.16); color:#fff; }
  .diff-item h3{ font-size:16px; line-height:1.4; transition:color .3s ease; }
  .diff-item:hover h3{ color:#fff; }
  @media (max-width:860px){ .diffs-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .diffs-grid{ grid-template-columns:1fr; } }

  /* Sections */
  section{ padding-block:112px; }
  section.diffs-strip{ padding-block:88px; }
  section.alt{ background:var(--surface); }
  .section-head{ max-width:640px; margin-bottom:56px; }
  .section-head h2{ font-size:clamp(26px,3vw,34px); }
  .section-head p{ margin-top:14px; color:var(--text-muted); font-size:16px; }
  .section-head-center{ margin-inline:auto; text-align:center; }

  /* Animação sutil de entrada ao rolar a página */
  .reveal{
    opacity:0; transform:translateY(18px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }
  .articles-grid .article-card.reveal:nth-child(2){ transition-delay:.08s; }
  .articles-grid .article-card.reveal:nth-child(3){ transition-delay:.16s; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ transition:none; opacity:1; transform:none; }
  }

  /* Apresentação (Sobre) — imagem de fundo com texto sobreposto */
  .presentation{
    position:relative; overflow:hidden; padding-block:0;
    min-height:560px; display:flex; align-items:flex-end;
  }
  .presentation-bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
  }
  .presentation-overlay{
    position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(41,53,71,.82) 0%, rgba(41,53,71,.38) 45%, rgba(41,53,71,.05) 75%);
  }
  .presentation-content{ position:relative; z-index:2; max-width:620px; padding-block:0 56px; text-align:left; }
  .presentation-content h2{ color:#ffffff; font-size:clamp(26px,3.4vw,38px); }
  .presentation-content p.lead{ margin-top:16px; color:rgba(255,255,255,.92); font-size:16.5px; line-height:1.7; }
  @media (max-width: 720px){
    .presentation{ min-height:420px; }
    .presentation-content{ padding-block:0 40px; }
  }

  /* Placeholder note */
  .ph-note{
    display:inline-flex; align-items:center; gap:8px;
    font-size:12.5px; color:var(--label); background:var(--surface-2);
    border:1px dashed var(--border); border-radius:3px; padding:6px 10px; margin-top:18px;
  }

  /* Socio */
  .socio-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
  .avatar{
    width:100%; aspect-ratio:4/5; border-radius:6px;
    background:var(--avatar-bg);
    object-fit:cover;
  }
  .socio-name{ font-size:clamp(19px,1.7vw,26px); white-space:nowrap; }
  .socio-title{ color:var(--navy); font-weight:600; font-size:15px; margin-top:8px; }
  .socio-bio{ margin-top:20px; color:var(--text-muted); font-size:16px; }
  .socio-bio p{ text-align:justify; text-justify:inter-word; }
  .socio-bio p + p{ margin-top:14px; }
  @media (max-width: 860px){ .socio-name{ white-space:normal; } }
  @media (max-width: 720px){ .socio-grid{ grid-template-columns:1fr; } .avatar{ aspect-ratio:5/4; max-width:360px; } }

  /* Sócio — quadro resumo (formação, idiomas, filiações) */
  .socio-summary-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--border); border:1px solid var(--border); border-radius:4px; overflow:hidden;
    max-width:620px; margin-inline:auto;
  }
  .socio-summary-item{ background:var(--surface-2); padding:16px 18px; display:flex; flex-direction:column; gap:10px; }
  .socio-summary-item .k{ font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--label); font-weight:600; }
  .socio-summary-item .v-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
  .socio-summary-item .v-list li{ display:flex; align-items:baseline; gap:8px; font-size:14.5px; color:var(--text); line-height:1.4; }
  .socio-summary-item .v-list .year{ font-family:var(--font-display); font-weight:600; color:var(--navy); font-size:13.5px; flex:0 0 auto; }
  .socio-summary-item .v-list .txt{ color:var(--text); }
  @media (max-width: 640px){ .socio-summary-grid{ grid-template-columns:1fr; } }

  /* Serviços — carrossel deslizante */
  .services-carousel-wrap{ margin-top:8px; }
  .services-carousel{
    display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory;
    padding-block:4px 8px; scrollbar-width:none; -ms-overflow-style:none;
  }
  .services-carousel::-webkit-scrollbar{ display:none; }
  .service-card{
    flex:0 0 320px; scroll-snap-align:start;
    background:var(--surface); border:1px solid var(--border); border-radius:4px;
    padding:30px 26px; display:grid; gap:12px; align-content:start;
  }
  .service-card-pending{ border-style:dashed; }
  .service-card .icon{ width:32px; height:32px; color:var(--slate); }
  .service-tag{ font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--navy); }
  .service-card h3{ font-size:19px; }
  .service-card p{ font-size:14.5px; color:var(--text-muted); line-height:1.65; }
  .carousel-controls{ display:flex; gap:12px; justify-content:flex-end; margin-top:20px; }
  .carousel-btn{
    width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
    background:var(--bg); display:flex; align-items:center; justify-content:center;
    cursor:pointer; color:var(--slate); transition:background-color .15s ease;
  }
  .carousel-btn:hover{ background:var(--navy-soft); }
  .carousel-btn:disabled{ opacity:.35; cursor:default; background:var(--bg); }
  @media (max-width: 720px){
    .service-card{ flex-basis:80vw; }
  }

  /* Serviços — prévia (página inicial) */
  .services-preview-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
  .service-preview-card{
    text-align:center; padding:26px 12px; background:var(--surface); border:1px solid var(--border);
    border-radius:4px; text-decoration:none; color:var(--text); transition:border-color .15s ease, background-color .15s ease;
  }
  .service-preview-card:hover{ border-color:var(--navy); background:var(--navy-soft); }
  .service-preview-card .icon{ width:26px; height:26px; color:var(--slate); margin-inline:auto; }
  .service-preview-card h3{ font-size:14px; margin-top:12px; line-height:1.3; }
  @media (max-width: 860px){ .services-preview-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width: 560px){ .services-preview-grid{ grid-template-columns:repeat(2,1fr); } }

  /* Serviços — página de detalhe */
  .service-detail-list{ display:grid; gap:0; }
  .service-detail{ display:grid; grid-template-columns:56px 1fr; gap:22px; padding-block:34px; border-bottom:1px solid var(--border); }
  .service-detail:first-child{ padding-top:0; }
  .service-detail:last-child{ border-bottom:none; }
  .service-detail .icon-wrap{
    width:56px; height:56px; border-radius:50%; background:var(--surface);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .service-detail .icon-wrap .icon{ width:24px; height:24px; }
  .service-detail h3{ font-size:20px; margin-top:6px; }
  .service-detail p{ margin-top:10px; font-size:15.5px; color:var(--text-muted); line-height:1.7; max-width:70ch; }
  @media (max-width: 560px){ .service-detail{ grid-template-columns:1fr; } }

  /* Sócio — prévia (página inicial) */
  .socio-preview{ display:grid; grid-template-columns:200px 1fr; gap:36px; align-items:center; }
  .socio-preview .avatar{ aspect-ratio:4/5; }
  @media (max-width: 640px){
    .socio-preview{ grid-template-columns:1fr; }
    .socio-preview .avatar{ max-width:220px; }
  }

  /* Valores (Sobre) */
  .values-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
  .value-card{ padding:30px; border:1px solid var(--border); border-radius:4px; }
  .value-card .icon{ width:24px; height:24px; color:var(--slate); margin-bottom:14px; }
  .value-card h3{ font-size:18px; }
  .value-card p{ margin-top:10px; font-size:14.5px; color:var(--text-muted); line-height:1.65; }
  @media (max-width: 720px){ .values-grid{ grid-template-columns:1fr; } }

  /* Contato — faixa de prévia (página inicial) */
  .contact-teaser{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
    background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:40px;
  }

  /* Publicações acadêmicas */
  .pub-list{ display:grid; gap:0; border-top:1px solid var(--border); }
  .pub-item{ display:grid; grid-template-columns:60px 100px 1fr; gap:22px; align-items:center; padding-block:24px; border-bottom:1px solid var(--border); }
  .pub-thumb{ width:60px; aspect-ratio:3/4; object-fit:cover; border-radius:2px; background:var(--surface-2); }
  .pub-thumb-empty{ width:60px; aspect-ratio:3/4; border-radius:2px; background:var(--surface-2); border:1px dashed var(--border); }
  .pub-year{ font-family:var(--font-display); font-size:16px; font-weight:600; color:var(--navy); }
  .pub-info{ display:grid; gap:6px; }
  .pub-type{ font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--label); }
  .pub-title{ font-size:17px; font-weight:600; color:var(--text); line-height:1.4; }
  .pub-venue{ font-size:14px; color:var(--text-muted); }
  @media (max-width: 640px){ .pub-item{ grid-template-columns:48px 1fr; gap:14px; } .pub-item .pub-year{ grid-column:2; grid-row:1; } .pub-item .pub-info{ grid-column:2; grid-row:2; } }

  /* Publicações acadêmicas — capa em carrossel (tela cheia, como a Apresentação) */
  .pub-hero{ position:relative; overflow:hidden; padding-block:0; }
  .pub-hero-carousel{
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
    scrollbar-width:none; -ms-overflow-style:none;
  }
  .pub-hero-carousel::-webkit-scrollbar{ display:none; }
  .pub-hero-slide{
    position:relative; flex:0 0 100%; scroll-snap-align:start;
    min-height:640px; display:flex; align-items:center; justify-content:center;
    background:#1c1210; overflow:hidden;
  }
  .pub-hero-bg{
    position:absolute; inset:0; background-size:cover; background-position:center;
    filter:blur(44px) brightness(.5); transform:scale(1.2);
  }
  .pub-hero-cover{
    position:relative; z-index:2; max-height:66vh; height:520px; width:auto; max-width:78%;
    object-fit:contain; border-radius:3px; box-shadow:0 30px 70px -18px rgba(0,0,0,.6);
  }
  .pub-hero-caption{
    position:absolute; z-index:3; left:0; right:0; bottom:0;
    padding:28px 24px 40px; text-align:center;
    background:linear-gradient(0deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,0) 100%);
  }
  .pub-hero-caption .pub-hero-type{ font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.78); }
  .pub-hero-caption h3{ margin-top:8px; color:#fff; font-size:clamp(18px,2.2vw,24px); max-width:640px; margin-inline:auto; }
  .pub-hero-controls{ position:absolute; z-index:4; bottom:28px; right:28px; display:flex; gap:10px; }
  .carousel-btn-light{
    width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.45);
    background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center;
    cursor:pointer; color:#fff; transition:background-color .15s ease;
  }
  .carousel-btn-light:hover{ background:rgba(255,255,255,.24); }
  .carousel-btn-light:disabled{ opacity:.35; cursor:default; background:rgba(255,255,255,.12); }
  @media (max-width: 720px){
    .pub-hero-slide{ min-height:460px; }
    .pub-hero-cover{ height:360px; max-width:86%; }
  }

  /* Artigos */
  .articles-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
  .article-card{
    border:1px solid var(--border); border-radius:4px; padding:26px; background:var(--bg);
    display:flex; flex-direction:column; gap:12px;
  }
  .article-card .area-tag{ font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--navy); }
  .article-card h3{ font-size:18.5px; line-height:1.32; }
  .article-card .date{ font-size:13px; color:var(--label); }
  .article-card p.excerpt{ font-size:14.5px; color:var(--text-muted); flex-grow:1; }
  .article-card .read{ font-size:14px; font-weight:600; color:var(--navy); text-decoration:none; display:inline-flex; align-items:center; gap:6px; margin-top:4px; }
  .article-card .read:hover{ text-decoration:underline; }
  @media (max-width: 860px){ .articles-grid{ grid-template-columns:1fr; } }
  .articles-note{ margin-top:30px; font-size:13.5px; color:var(--label); }

  /* Contato */
  .contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; }
  .contact-list{ display:grid; gap:22px; }
  .contact-item{ display:grid; grid-template-columns:22px 1fr; gap:14px; }
  .contact-item .icon{ width:20px; height:20px; color:var(--slate); margin-top:2px; }
  .contact-item .k{ font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--label); }
  .contact-item .v{ font-size:15.5px; margin-top:2px; }
  .social-row{ display:flex; gap:12px; margin-top:8px; }
  .social-row a{
    width:38px; height:38px; border:1px solid var(--border); border-radius:50%;
    display:flex; align-items:center; justify-content:center; text-decoration:none; color:var(--slate);
  }
  .social-row a:hover{ background:var(--navy-soft); }
  form.contact-form{ display:grid; gap:16px; }
  .field{ display:grid; gap:6px; }
  .field label{ font-size:13px; font-weight:600; color:var(--label); letter-spacing:.02em; }
  .field input, .field select, .field textarea{
    font-family:var(--font-text); font-size:15px; padding:12px 14px;
    border:1px solid var(--border); border-radius:3px; background:var(--bg); color:var(--text);
    width:100%;
  }
  .field textarea{ resize:vertical; min-height:120px; }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--navy); outline-offset:1px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width: 720px){ .contact-grid{ grid-template-columns:1fr; } .form-row{ grid-template-columns:1fr; } }
  .form-note{ font-size:12.5px; color:var(--label); }

  /* Footer */
  footer{ border-top:2px solid var(--navy); padding-block:44px; background:var(--bg); }
  .footer-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:32px; align-items:start; }
  .footer-contact{ display:flex; flex-direction:column; gap:10px; align-items:flex-end; text-align:right; }
  .footer-contact-item{ display:flex; align-items:flex-start; gap:8px; font-size:16.5px; color:var(--label); line-height:1.5; flex-direction:row-reverse; }
  .footer-contact-item .icon{ width:15px; height:15px; flex:0 0 auto; margin-top:3px; color:var(--slate); }
  .footer-social-row{ display:flex; gap:8px; margin-top:2px; justify-content:flex-end; }
  .footer-social-row a{
    width:26px; height:26px; border:1px solid var(--border); border-radius:50%;
    display:flex; align-items:center; justify-content:center; text-decoration:none; color:var(--slate);
  }
  .footer-social-row a:hover{ background:var(--navy-soft); }
  .footer-links{ display:flex; flex-direction:column; gap:12px; }
  .footer-links a{ font-size:17.5px; color:var(--label); text-decoration:none; }
  .footer-links a:hover{ color:var(--navy); }
  .footer-bottom{ margin-top:28px; padding-top:20px; border-top:1px solid var(--border); font-size:15px; color:var(--label); display:flex; justify-content:center; text-align:center; flex-wrap:wrap; gap:10px; }
  @media (max-width: 900px){
    .footer-grid{ grid-template-columns:1fr; }
    .footer-contact{ align-items:flex-start; text-align:left; }
    .footer-contact-item{ flex-direction:row; }
    .footer-social-row{ justify-content:flex-start; }
  }

/* Estado de carregamento / vazio da lista de artigos */
.articles-loading, .articles-empty, .articles-error{
  color:var(--text-muted); font-size:14.5px; padding:8px 2px;
}

/* Página "Artigos e notícias" — estado "em breve", enquanto o conteúdo
   real ainda não foi publicado pelo escritório. */
.coming-soon{
  max-width:520px; margin:0 auto; text-align:center; padding:70px 20px 90px;
}
.coming-soon-icon{
  width:84px; height:84px; border-radius:50%; background:var(--navy-soft);
  display:flex; align-items:center; justify-content:center; margin:0 auto 26px;
}
.coming-soon-icon svg{ width:38px; height:38px; color:var(--slate); }
.coming-soon h2{ font-size:clamp(26px,3vw,34px); margin:0 0 14px; }
.coming-soon p{ color:var(--text-muted); font-size:16px; line-height:1.65; }

/* Sobre — banner de topo com foto do livro do sócio na estante, com um leve
   véu na cor do escritório (navy) sobre a foto. */
.about-hero-banner{
  position:relative; min-height:480px;
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end; overflow:hidden;
}
.about-hero-banner::before{
  content:""; position:absolute; inset:0;
  background:rgba(41,53,71,.22);
}
.about-hero-banner-shape{
  position:relative; z-index:1; max-width:78%;
  background:var(--navy);
  clip-path:polygon(0 0, 100% 0, calc(100% - 56px) 100%, 0 100%);
  padding:26px 88px 26px 40px;
}
.about-hero-banner-shape h1{ color:#fff; margin:0; font-size:clamp(24px,3.2vw,34px); }
@media (max-width: 720px){
  .about-hero-banner{ min-height:300px; }
  .about-hero-banner-shape{ max-width:92%; padding:18px 44px 18px 22px; clip-path:polygon(0 0, 100% 0, calc(100% - 28px) 100%, 0 100%); }
  .about-hero-banner-shape h1{ font-size:21px; }
}

/* Sobre — blocos institucionais (declaração + missão/visão/valores); seções
   mais compactas para dar mais destaque à foto do banner acima */
section.about-compact{ padding-block:64px; }
.about-statement-wrap{ max-width:560px; }
.about-statement-wrap.align-left{ margin-inline:0 auto; text-align:left; }
.about-statement-wrap.align-right{ margin-inline:auto 0; text-align:right; }
.about-statement-wrap p{
  font-family:var(--font-display); font-size:clamp(16px,1.7vw,19px); line-height:1.6; color:var(--text);
}
.about-statement-wrap p strong{ color:var(--navy); }
section.about-navy{ background:var(--navy); }
section.about-navy .about-statement-wrap p{ color:#fff; }
section.about-mission{ background:var(--surface-2); }
.mission-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:8px; }
.mission-card{ background:var(--bg); border:1px solid var(--border); border-radius:4px; padding:34px 28px; }
.mission-card .icon-wrap{
  width:72px; height:72px; border-radius:50%; background:var(--navy-soft);
  display:flex; align-items:center; justify-content:center; margin:0 auto 22px;
}
.mission-card .icon-wrap .icon{ width:34px; height:34px; color:var(--slate); }
.mission-card h3{ font-size:21px; }
.mission-card p{ margin-top:10px; font-size:16px; color:var(--text-muted); line-height:1.65; }
.mission-card ul{ margin:10px 0 0; padding-left:18px; font-size:16px; color:var(--text-muted); line-height:1.7; }
.mission-card ul li + li{ margin-top:6px; }
@media (max-width: 860px){ .mission-grid{ grid-template-columns:1fr; } }
@media (max-width: 720px){
  .about-statement-wrap.align-left,
  .about-statement-wrap.align-right{ margin-inline:auto; text-align:left; max-width:100%; }
}

/* Título de destaque no topo das páginas internas (Quem somos, Serviços,
   Publicações e notícias) — mesma formatação em todas */
.page-title{ font-weight:700; font-size:clamp(28px,3.6vw,42px); }

/* Sócio — banner de topo com foto de fundo (estante de livros), com um leve
   véu na cor do escritório (navy) sobre a foto. */
.socio-hero-banner{
  position:relative; min-height:320px;
  background-size:cover; background-position:center;
  overflow:hidden;
}
.socio-hero-banner::before{
  content:""; position:absolute; inset:0;
  background:rgba(41,53,71,.22);
}
@media (max-width: 720px){
  .socio-hero-banner{ min-height:200px; }
}

/* Página de artigo individual */
.article-hero{ padding-block:64px 44px; border-bottom:1px solid var(--border); }
.article-hero .back{ font-size:13.5px; font-weight:600; color:var(--navy); text-decoration:none; display:inline-flex; align-items:center; gap:6px; margin-bottom:22px; }
.article-hero .back:hover{ text-decoration:underline; }
.article-hero .area-tag{ font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--navy); }
.article-hero h1{ margin-top:14px; font-size:clamp(26px,3.6vw,40px); }
.article-hero .date{ margin-top:14px; display:block; font-size:14px; color:var(--label); }
.article-body{ padding-block:48px 88px; max-width:72ch; }
.article-body p{ color:var(--text); font-size:16.5px; line-height:1.75; margin-bottom:18px; }
.article-body h2{ font-size:22px; margin-top:36px; margin-bottom:14px; }
.article-body h3{ font-size:18px; margin-top:28px; margin-bottom:10px; }
.article-body ul, .article-body ol{ color:var(--text); font-size:16.5px; line-height:1.75; margin:0 0 18px; padding-left:22px; }
.article-body a{ color:var(--navy); }
.article-body blockquote{ border-left:3px solid var(--navy); margin:0 0 18px; padding-left:18px; color:var(--text-muted); font-style:italic; }


/* Página de Serviços — quadrados clicáveis (foto + nome na frente, descrição no verso) */
.services-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:26px; }
@media (max-width: 900px){ .services-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 560px){ .services-grid{ grid-template-columns:1fr; } }

.service-square{ aspect-ratio:1/1; perspective:1400px; }
.service-square-inner{
  position:relative; width:100%; height:100%; padding:0; margin:0; border:0; background:none; font:inherit; text-align:left;
  cursor:pointer; border-radius:8px; transform-style:preserve-3d; transition:transform .6s cubic-bezier(.4,.2,.2,1);
}
.service-square-inner:focus-visible{ outline:2px solid var(--navy); outline-offset:3px; }
.service-square.is-open .service-square-inner{ transform:rotateY(180deg); }

.service-square-front, .service-square-back{
  position:absolute; inset:0; backface-visibility:hidden; border-radius:8px; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.service-square-front{ background:var(--surface-2); border:1px solid var(--border); }
.service-square-front .icon-wrap{ width:52px; height:52px; display:flex; align-items:center; justify-content:center; color:var(--slate); }
.service-square-front .icon-wrap .icon{ width:36px; height:36px; }
.service-square-front .label-overlay{
  position:absolute; left:0; right:0; bottom:0; padding:16px 18px; text-align:left;
  font-weight:600; font-size:15.5px; color:var(--text);
  background:linear-gradient(0deg, var(--surface-2) 55%, transparent 100%);
}

/* Quadros de serviço com foto de fundo (já filtrada na paleta do site) */
.service-square-front.has-photo{
  background-size:cover; background-position:center; border:none;
}
.service-square-front.has-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(41,53,71,.22) 0%, rgba(41,53,71,.85) 100%);
}
.service-square-front.has-photo .icon-wrap,
.service-square-front.has-photo .label-overlay{ position:relative; z-index:1; }
.service-square-front.has-photo .icon-wrap{
  width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.18); color:#fff;
}
.service-square-front.has-photo .icon-wrap .icon{ width:30px; height:30px; }
.service-square-front.has-photo .label-overlay{
  background:none; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.35);
}

.service-square-back{
  transform:rotateY(180deg); background:var(--navy); color:#fff; padding:24px; text-align:left; align-items:flex-start; justify-content:center; gap:2px;
}
.service-square-back h3{ color:#fff; font-size:17px; }
.service-square-back p{
  color:rgba(255,255,255,.88); font-size:13.5px; line-height:1.6; margin-top:8px;
  text-align:justify; text-justify:inter-word;
}
.service-square-back .ph-note{ background:rgba(255,255,255,.14); color:rgba(255,255,255,.9); border-color:rgba(255,255,255,.3); }
