:root{
    /* === Paleta · João Barroso Advocacia · v3 nov.2026 ===
       Base: azul-noite da logo. Os NOMES das variáveis seguem o padrão do guia;
       o comentário de cada uma diz o papel e a cor atual. */
    --terra:#101326;              /* azul-noite (logo) — fundos escuros: cabeçalho, hero, Como funciona, rodapé, cookies */
    --terracota:#C9A45C;          /* ouro champanhe — fundo dos botões de ação (CTA) */
    --cta-texto:#101326;          /* texto dos botões sobre o ouro (7,8:1) */
    --cta-hover:#D7B775;          /* ouro mais claro — hover dos botões */
    --terracota-escura:#17636B;   /* verde-petróleo — links e textos pequenos de ação (6,3:1 sobre a névoa) */
    --marfim:#F3F5F9;             /* névoa — fundo claro de toda a página */
    --dourado:#C9A45C;            /* ouro — filetes e ornamentos sobre fundo escuro */
    --dourado-escuro:#7E6024;     /* ouro escuro — rótulos pequenos sobre fundo claro (4,9:1) */
    --agua:#5FB3B3;               /* verde-água — detalhes sobre azul-noite (reservada) */
    --oliva:#1A1F3A;              /* azul-noite claro — reservada */
    --grafite:#101326;            /* texto de leitura (azul-noite) */
    --grafite-soft:#4A5370;       /* azul-ardósia — texto secundário (7,0:1) */
    --marfim-soft:#C9D3EA;        /* azul-gelo — texto sobre fundo escuro (12,2:1) */
    --wa-green:#25D366;           /* verde oficial do WhatsApp — fora da paleta da marca */
    --wa-green-deep:#1DA851;
    --rule:rgba(201,164,92,0.45);          /* filete dourado — fundos claros */
    --rule-dark:rgba(16,19,38,0.14);       /* filete azul-noite sutil — fundos claros */
    --rule-on-terra:rgba(201,211,234,0.18);/* filete azul-gelo sutil — fundos escuros */

    --fs-body:16px;   /* mín. 15px no celular (media query abaixo) */
    --fs-kicker:13px; /* rótulos em caixa-alta espaçada, ecoando o "ADVOCACIA" da logo */

    /* apelidos usados no restante da folha */
    --ink:var(--terra);
    --ink-2:var(--oliva);
    --gold:var(--dourado);
    --gold-deep:var(--terracota-escura);
    --cream:var(--marfim);
    --cream-2:#E8ECF3;            /* névoa escura — Serviços e cartões */
    --text-dark:var(--grafite);
    --text-soft:var(--grafite-soft);
    --on-ink:#FFFFFF;
    --on-ink-soft:var(--marfim-soft);
  }

  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; overflow-x:hidden; }
  body{
    background:var(--cream);
    color:var(--text-dark);
    font-family:'Public Sans', -apple-system, sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  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:'Newsreader', 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:var(--terra);
    border-bottom:1px solid var(--rule-on-terra);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:10px clamp(20px, 5vw, 56px);
    max-width:1180px; margin:0 auto;
  }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand-logo{ height:64px; width:auto; display:block; } /* logo empilhada: precisa de mais altura que o padrão de 42px */
  nav ul{ display:flex; gap:34px; list-style:none; }
  nav ul a{
    color:var(--on-ink-soft); font-size:0.94rem; position:relative; padding-bottom:4px;
    transition:color 0.25s ease;
  }
  nav ul a:hover{ color:var(--on-ink); }
  nav ul a::after{
    content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
    background:var(--terracota); 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(--terracota); color:var(--cta-texto); font-weight:600; font-size:0.9rem;
    padding:11px 22px; border-radius:2px; border:1px solid var(--terracota);
    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(--cta-hover); border-color:var(--cta-hover); transform:translateY(-1px); }
  .btn-ghost{
    border:1px solid rgba(246,243,236,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,164,92,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; }
  .burger span{ background:var(--on-ink); }
  .mobile-menu{
    display:none; flex-direction:column; gap:2px; background:var(--terra);
    border-bottom:1px solid var(--rule-on-terra);
  }
  .mobile-menu.open{ display:flex; }
  .mobile-menu a{
    color:var(--on-ink-soft); padding:14px clamp(20px,5vw,56px); border-top:1px solid var(--rule-on-terra);
    font-size:0.95rem;
  }
  .mobile-menu a:hover{ color:var(--on-ink); }

  /* ---------- Hero ---------- */
  /* Hero com a foto em tela cheia: a foto fica à direita e um degradê azul-noite
     cobre a esquerda, onde está o texto. No celular, a foto vai para o topo. */
  .hero{
    background:var(--ink); color:var(--on-ink);
    position:relative; overflow:hidden;
    min-height:min(calc(100svh - 84px), 860px);
    display:flex; align-items:center;
    padding:96px 0;
  }
  .hero .wrap{ position:relative; z-index:2; width:100%; }
  .hero-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; background:var(--ink); }
  .hero-bg img{
    position:absolute; top:0; right:0; width:80%; height:100%; max-width:none;
    object-fit:cover; object-position:40% 30%;
  }
  .hero-bg::after{
    content:""; position:absolute; inset:0;
    background:
      linear-gradient(90deg, #101326 0%, #101326 26%, rgba(16,19,38,.86) 44%, rgba(16,19,38,.32) 66%, rgba(16,19,38,0) 86%),
      linear-gradient(0deg, rgba(16,19,38,.55), rgba(16,19,38,0) 30%);
  }
  .eyebrow-line{
    display:flex; align-items:center; gap:12px; margin-bottom:26px;
    color:var(--on-ink-soft); font-size:var(--fs-kicker); letter-spacing:0.14em;
    text-transform:uppercase; font-weight:600;
  }
  .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:16ch;
  }
  .hero p.lead{
    margin-top:22px; color:var(--on-ink-soft); font-size:1.08rem; max-width:44ch; line-height:1.7;
  }
  .hero-cta{ display:flex; gap:16px; margin-top:36px; flex-wrap:wrap; }
  .hero-oab{ margin-top:22px; font-size:14px; line-height:1.5; color:var(--on-ink-soft); letter-spacing:0.02em; }

  .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; }
  .reveal-seq > *:nth-child(5){ animation-delay:0.57s; }
  @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(--dourado-escuro); font-size:var(--fs-kicker); margin-bottom:10px; display:block; text-transform:uppercase; letter-spacing:0.14em; font-weight:600; }
  .section-head p{ color:var(--text-soft); max-width:52ch; font-size:var(--fs-body); line-height:1.6; }
  .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:center; }
  .sobre-left-head{ padding-bottom:26px; margin-bottom:26px; border-bottom:1px solid var(--rule-dark); }
  .sobre-left-head .kicker{ color:var(--dourado-escuro); font-size:var(--fs-kicker); margin-bottom:10px; display:block; text-transform:uppercase; letter-spacing:0.14em; font-weight:600; }
  .sobre-left-head h2{ font-size:clamp(1.7rem, 3vw, 2.3rem); }
  .oab-card{
    border:1px solid var(--rule-dark); padding:28px 26px; position:relative; background:var(--cream-2);
  }
  .oab-card .num{ font-family:'Newsreader', serif; font-weight:600; font-size:clamp(1.3rem,2.4vw,1.6rem); color:var(--terra); line-height:1.3; }
  .oab-card .num-sub{ margin-top:10px; font-size:var(--fs-body); line-height:1.5; color:var(--text-soft); } /* linha de apoio do quadro */
  .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:'Newsreader', serif; font-weight:500; line-height:1.5; }
  .sobre-text h3{ font-size:1.3rem; line-height:1.3; color:var(--text-dark); margin:4px 0 14px; }

  /* ---------- Serviços : grade de cartões ----------
     8 cartões: no desktop a grade tem 6 trilhas e cada cartão ocupa 2 (3 por linha);
     os cartões 7 e 8 começam na trilha 2 para a última linha ficar centralizada. */
  #servicos{ background:var(--cream-2); }
  .service-grid{
    display:grid; grid-template-columns:repeat(6, 1fr); gap:28px;
  }
  .service-card{
    position:relative; grid-column:span 2;
    display:flex; flex-direction:column; gap:14px;
    border:1px solid var(--rule-dark); background:var(--cream);
    padding:30px 26px;
  }
  /* 9 cartões: 3 por linha no desktop; no tablet (2 colunas) o 9º, sozinho na última linha, fica centralizado */
  .service-card .sc-title{ font-family:'Newsreader', serif; font-size:1.2rem; font-weight:600; }
  .service-card .sc-desc{ color:var(--text-soft); font-size:var(--fs-body); line-height:1.6; max-width:42ch; flex:1; }
  .service-card .sc-wa{
    display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
    color:var(--terracota-escura); font-weight:600; font-size:0.9rem;
    border-bottom:1px solid transparent; padding-bottom:1px;
    transition:border-color 0.2s ease;
  }
  .service-card .sc-wa:hover{ border-color:var(--terracota-escura); }
  .service-card .sc-wa svg{ width:16px; height:16px; flex-shrink:0; }
  .service-card.highlight{ border-color:var(--terracota); box-shadow:0 0 0 1px var(--terracota); }
  .service-card .sc-badge{
    position:absolute; top:-12px; left:26px;
    background:var(--terracota); color:var(--cta-texto);
    font-size:0.72rem; font-weight:600; letter-spacing:0.03em; text-transform:uppercase;
    padding:5px 12px; border-radius:2px;
  }

  /* ---------- Como funciona (fundo escuro) ---------- */
  #como-funciona{ background:var(--ink); color:var(--on-ink); }
  #como-funciona .section-head{ grid-template-columns:1fr; border-bottom:none; margin-bottom:40px; padding-bottom:0; }
  .steps{ list-style:none; display:grid; grid-template-columns:repeat(4, 1fr); margin:0 0 44px; padding:0; }
  .step{ position:relative; text-align:center; padding:0 18px; }
  .step-dot{
    position:relative; z-index:1; display:flex; align-items:center; justify-content:center;
    width:54px; height:54px; margin:0 auto 22px; border-radius:50%;
    border:2px solid var(--dourado); background:var(--ink); color:var(--on-ink); font-weight:600; font-size:1.05rem;
  }
  .step-final .step-dot{ background:var(--dourado); color:var(--ink); }
  .step:not(:last-child)::after{
    content:""; position:absolute; top:26px; left:calc(50% + 27px); width:calc(100% - 54px); height:2px; background:var(--dourado);
  }
  .step-title{ font-family:'Public Sans', sans-serif; font-weight:600; font-size:1.15rem; line-height:1.3; margin-bottom:10px; color:var(--on-ink); }
  .step-desc{ color:var(--on-ink-soft); font-size:var(--fs-body); line-height:1.6; }

  .complex-highlight{
    border:1px solid var(--dourado); background:rgba(255,255,255,0.04); border-radius:8px;
    padding:26px 32px; display:flex; align-items:center; justify-content:space-between; gap:28px;
  }
  .complex-highlight h3{ font-family:'Public Sans', sans-serif; font-weight:600; font-size:1.2rem; color:var(--on-ink); margin-bottom:6px; }
  .complex-highlight p{ color:var(--on-ink-soft); font-size:var(--fs-body); line-height:1.6; max-width:52ch; }
  .complex-highlight .btn-gold{ flex-shrink:0; border-radius:6px; }

  /* ---------- FAQ (acordeão acessível) ---------- */
  #faq{ background:var(--cream); }
  .faq-list{ border-top:1px solid var(--rule-dark); }
  .faq-item{ border-bottom:1px solid var(--rule-dark); }
  .faq-question{ margin:0; font-weight:inherit; }
  .faq-trigger{
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
    background:none; border:0; text-align:left; cursor:pointer;
    padding:18px 2px; min-height:48px;
    font-family:'Newsreader', serif; font-weight:600; color:var(--text-dark);
    font-size:clamp(1.05rem, 1.6vw, 1.2rem); line-height:1.4;
  }
  .faq-chevron{ width:20px; height:20px; flex-shrink:0; color:var(--dourado-escuro); transition:transform .3s ease; }
  .faq-item.open .faq-chevron{ transform:rotate(180deg); }
  .faq-panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s ease; }
  .faq-item.open .faq-panel{ grid-template-rows:1fr; }
  .faq-panel-inner{ overflow:hidden; }
  .faq-panel p{ font-size:var(--fs-body); line-height:1.65; color:var(--text-soft); max-width:none; padding-bottom:20px; } /* resposta em toda a largura da pergunta */
  .faq-panel p:first-child{ padding-top:2px; }
  .faq-cta a{ color:var(--terracota-escura); text-decoration:none; border-bottom:1px solid transparent; }
  .faq-cta a:hover{ text-decoration:none; border-color:var(--terracota-escura); }
  @media (prefers-reduced-motion: reduce){
    .faq-panel{ transition:none; }
    .faq-chevron{ transition:none; }
  }

  .faq-cta-box{
    margin-top:48px; padding:38px 32px; text-align:center;
    border:1px solid var(--rule-dark); background:var(--cream-2);
    display:flex; flex-direction:column; align-items:center; gap:14px;
  }
  .faq-cta-box h3{ font-size:1.3rem; }
  .faq-cta-box p{ color:var(--text-soft); max-width:52ch; font-size:var(--fs-body); line-height:1.6; }

  /* ---------- Contato ---------- */
  #contato{ background:var(--cream); }
  .contato-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:stretch; }
  .contact-card{
    border:1px solid var(--rule-dark); padding:34px; background:var(--cream-2);
    display:flex; flex-direction:column; justify-content:center;
  }
  .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; min-width:0; overflow-wrap:break-word; word-break:break-word; }
  .contact-line .val a:hover{ color:var(--gold-deep); }
  .contact-whatsapp-highlight{ margin-top:22px; padding-top:22px; border-top:1px solid var(--rule-dark); }
  .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:0; font-size:var(--fs-body); line-height:1.6; }
  .map-embed{
    position:relative; width:100%; aspect-ratio:16/9;
    margin:22px 0 26px; border-radius:4px; overflow:hidden; border:1px solid var(--rule-dark);
    background:var(--cream);
  }
  .map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .social-row{ display:flex; gap:14px; margin-top:auto; flex-wrap:wrap; }
  .social-row a{
    display:inline-flex; align-items:center; gap:8px;
    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); }
  .social-row svg{ width:16px; height:16px; flex-shrink:0; }

  /* ---------- Footer ---------- */
  footer{ background:var(--ink); color:var(--on-ink-soft); padding:34px 0; border-top:1px solid var(--rule-on-terra); }
  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(--marfim); }

  /* ---------- 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, bottom .3s 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; }
  body.cookie-bar-visible .wa-float{ bottom:104px; }

  /* ---------- Aviso de cookies ---------- */
  .cookie-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:70;
    background:var(--terra); color:var(--on-ink);
    padding:18px clamp(16px,4vw,32px);
    box-shadow:0 -8px 24px rgba(0,0,0,0.18);
  }
  .cookie-bar[hidden]{ display:none; }
  .cookie-bar-inner{
    max-width:1180px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  }
  .cookie-bar p{ font-size:0.9rem; line-height:1.55; color:var(--on-ink-soft); max-width:62ch; margin:0; }
  .cookie-bar a{ color:var(--on-ink); text-decoration:underline; }
  .cookie-actions{ display:flex; gap:12px; flex-shrink:0; }
  .cookie-actions button{ font-family:inherit; cursor:pointer; }
  .cookie-btn-decline{
    background:none; border:1px solid rgba(201,211,234,0.4); color:var(--on-ink);
    padding:10px 20px; border-radius:2px; font-size:0.88rem; font-weight:500;
    transition:border-color .25s ease, background .25s ease;
  }
  .cookie-btn-decline:hover{ border-color:var(--on-ink); background:rgba(255,255,255,0.08); }
  .cookie-actions .btn-gold{ border:1px solid var(--terracota); }

  /* ---------- Responsive ---------- */
  @media (max-width:1024px){
    .service-grid{ grid-template-columns:repeat(2, 1fr); }
    .service-card{ grid-column:auto; }
    .service-card:nth-child(9){ grid-column:1 / -1; justify-self:center; max-width:calc(50% - 14px); }
  }
  @media (max-width:860px){
    nav ul{ display:none; }
    .nav-right .btn-gold{ display:none; }
    .burger{ display:block; }
    .brand-logo{ height:52px; }
    .hero{ display:block; min-height:0; padding:0 0 56px; }
    .hero-bg{ position:relative; height:430px; }
    .hero-bg img{ left:0; right:auto; width:100%; object-position:56% 18%; }
    .hero-bg::after{ background:linear-gradient(180deg, rgba(16,19,38,0) 40%, #101326 98%); }
    .hero .wrap{ margin-top:-70px; }
    .section-head{ grid-template-columns:1fr; }
    .sobre-grid{ grid-template-columns:1fr; }
    .contato-grid{ grid-template-columns:1fr; }
    .reviews-cta{ flex-direction:column; align-items:center; }
    .cookie-bar-inner{ flex-direction:column; align-items:stretch; }
    .cookie-actions{ justify-content:stretch; }
    .cookie-actions button{ flex:1; text-align:center; }
    body.cookie-bar-visible .wa-float{ bottom:168px; }
  }
  @media (max-width:700px){
    .service-grid{ grid-template-columns:1fr; }
    .service-card:nth-child(9){ max-width:none; }
    .steps{ grid-template-columns:1fr; margin-bottom:32px; }
    .step{ text-align:left; padding:0 0 30px 76px; }
    .step:last-child{ padding-bottom:0; }
    .step-dot{ position:absolute; left:0; top:0; margin:0; }
    .step:not(:last-child)::after{ top:54px; left:26px; width:2px; height:calc(100% - 54px); }
    .step-title{ padding-top:13px; }
    .complex-highlight{ flex-direction:column; align-items:flex-start; padding:24px 22px; }
  }
  @media (max-width:600px){
    .cookie-bar{ left:10px; right:10px; bottom:10px; border-radius:10px; padding:16px; }
  }
  @media (max-width:520px){
    :root{ --fs-body:15px; }
    .hero-cta{ flex-direction:column; align-items:flex-start; }
  }

/* ===================================================================
   AVALIAÇÕES — carrossel de avaliações do Google
   =================================================================== */
#avaliacoes{ background:var(--cream); }

.reviews-carousel{ position:relative; }
.reviews-carousel[hidden]{ display:none; }
.reviews-viewport{ overflow:hidden; }
.reviews-track{
  display:flex;
  transition:transform .45s cubic-bezier(.25,.1,.25,1);
  will-change:transform;
}
.review-slide{
  flex:0 0 calc((100% - 2*28px)/3);
  margin-right:28px;
  display:flex;
  flex-direction:column;
}
.review-id{ display:flex; align-items:center; gap:12px; padding-left:22px; }
.review-avatar{
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:'Public Sans',sans-serif; font-weight:600; font-size:0.95rem;
  flex-shrink:0;
}
.review-who .review-name{ font-weight:600; font-size:0.95rem; color:var(--text-dark); }
.review-card{
  position:relative;
  background:#ffffff;
  border-radius:16px;
  box-shadow:0 10px 28px rgba(16,19,38,0.08), 0 2px 8px rgba(16,19,38,0.04);
  padding:26px 24px 20px;
  margin-top:14px;
  flex:1;
  display:flex;
  flex-direction:column;
}
.review-card::before{
  content:"";
  position:absolute;
  top:-9px; left:28px;
  width:0; height:0;
  border-left:9px solid transparent;
  border-right:9px solid transparent;
  border-bottom:9px solid #ffffff;
  filter:drop-shadow(0 -2px 3px rgba(16,19,38,0.05));
}
.review-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.review-stars{ display:flex; align-items:center; gap:4px; }
.review-stars svg{ width:16px; height:16px; }
.review-verified{ width:15px; height:15px; margin-left:2px; }
.google-g{ width:20px; height:20px; }
.review-text{
  font-size:1rem; line-height:1.65; color:var(--text-dark); white-space:pre-line;
  font-family:'Public Sans', -apple-system, sans-serif;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
.review-text.expanded{ -webkit-line-clamp:unset; display:block; overflow:visible; }
.review-more{
  background:none; border:0; padding:0; margin-top:8px; cursor:pointer;
  font-family:'Public Sans',sans-serif; font-size:0.85rem; color:var(--text-soft);
  text-decoration:underline; align-self:flex-start; display:none;
}
.review-more.visible{ display:inline-block; }
.carousel-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  background:#fff; border:1px solid var(--rule-dark);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 6px 16px rgba(16,19,38,0.1);
  transition:background .2s ease, border-color .2s ease;
  z-index:5;
}
.carousel-arrow:hover{ border-color:var(--dourado); background:var(--marfim); }
.carousel-arrow.prev{ left:-22px; }
.carousel-arrow.next{ right:-22px; }
.carousel-arrow svg{ width:18px; height:18px; }
.carousel-arrow[hidden]{ display:none; }
.reviews-cta{ margin-top:48px; display:flex; justify-content:center; align-items:center; gap:16px; flex-wrap:wrap; }
.btn-maps{
  display:inline-flex; align-items:center; gap:10px;
  border:1px solid var(--rule-dark); background:#fff; color:var(--text-dark);
  padding:13px 24px; border-radius:999px; font-weight:600; font-size:0.92rem;
  transition:border-color .2s ease, transform .2s ease;
}
.btn-maps:hover{ border-color:var(--dourado); transform:translateY(-1px); }
.btn-maps svg{ width:18px; height:18px; }

@media (max-width:1024px){
  .review-slide{ flex:0 0 calc((100% - 28px)/2); }
}
@media (max-width:700px){
  .review-slide{ flex:0 0 100%; margin-right:20px; }
  .carousel-arrow{ display:none; }
}

.rating-summary{ display:flex; align-items:center; gap:20px; margin-top:26px; }
.rating-num{ font-family:'Newsreader', serif; font-size:clamp(2.6rem,6vw,3.4rem); line-height:1; color:var(--terra); }
.rating-stars{ color:var(--dourado-escuro); font-size:1.2rem; letter-spacing:3px; line-height:1; margin-bottom:6px; }
.rating-meta p{ color:var(--text-soft); font-size:var(--fs-body); }
#avaliacoes .section-head{ grid-template-columns:1fr; }
@media (min-width:700px){
  #avaliacoes .section-head h2, #como-funciona .section-head h2{ white-space:nowrap; }
}
