/*
Theme Name: Harlei Nobre
Theme URI: https://drharleinobre.adv.br
Author: Equipe Dr. Harlei Nobre
Description: Tema institucional para o escritório de advocacia criminal do Dr. Harlei Nobre — OAB/RO 1642. Desenvolvido sob medida, sem uso de temas de terceiros.
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: harlei-nobre
*/

/* ==========================================================================
   DESIGN TOKENS — revisão 1.2 (identidade escura: plenário + champagne)
   A escala clara de pedra da 1.1 foi retirada. O site inteiro passa a viver
   sobre grafite quase preto, com dourado/champagne como única cor de acento.
   ========================================================================== */
:root{
  --ink-950:#0a0806;   /* fundo base */
  --ink-900:#0e0b08;
  --ink-850:#14100c;
  --ink-800:#1b1611;
  --hair:rgba(199,160,92,.16);   /* filete dourado estrutural */
  --hair-strong:rgba(199,160,92,.45);

  --gold-100:#fdf1d6;
  --gold-200:#f0d69f;
  --gold-300:#d9b877;  /* títulos e rótulos dourados */
  --gold-400:#c99a52;  /* acento principal */
  --gold-700:#9a6c2c;
  --wa:#25D366;

  --white:#fdfbf7;
  --text:#d8d0c3;
  --text-soft:#a9a096;
  --text-dim:#8a8177;

  --font-display:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body:'Jost', Helvetica, Arial, sans-serif;

  --container:1536px;
  --gutter:clamp(24px,3.9vw,60px);
  --radius:4px;
}

/* ==========================================================================
   RESET / BASE
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-weight:300;
  color:var(--text);
  background:var(--ink-950);
  line-height:1.7;
  font-size:16px;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
a:hover{color:var(--gold-300);}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.08;margin:0 0 .5em;color:var(--white);}
p{margin:0 0 1.3em;text-wrap:pretty;}
strong{color:var(--white);font-weight:400;}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);}
:focus-visible{outline:2px solid var(--gold-400);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

/* Rótulo em caixa alta espaçada — substitui o "eyebrow" com filete da 1.1 */
.eyebrow{
  display:block;
  font-size:clamp(12px,1.08vw,16.5px);
  font-weight:300;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--gold-400);
  margin-bottom:14px;
}

/* Filete com losango ao centro */
.rule-diamond{display:flex;align-items:center;margin:28px 0 30px;max-width:400px;}
.rule-diamond::before,.rule-diamond::after{content:"";height:1px;flex:1;}
.rule-diamond::before{background:linear-gradient(90deg,rgba(199,160,92,.72),rgba(199,160,92,.34));}
.rule-diamond::after{background:linear-gradient(90deg,rgba(199,160,92,.34),rgba(199,160,92,0));}
.rule-diamond i{width:7px;height:7px;background:var(--gold-400);transform:rotate(45deg);flex-shrink:0;margin:0 10px;}

.btn{
  display:inline-flex;align-items:center;gap:14px;
  padding:18px 30px;
  font-family:var(--font-body);font-weight:400;font-size:15px;
  letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--hair-strong);border-radius:var(--radius);
  color:#f4ecdd;background:rgba(10,8,6,.42);
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.btn:hover{border-color:var(--gold-400);background:rgba(199,160,92,.1);color:#f7ecd7;}
.btn .arrow{color:var(--gold-400);font-size:19px;transition:transform .2s ease;}
.btn:hover .arrow{transform:translateX(4px);}
.btn-gold{background:var(--gold-400);border-color:var(--gold-400);color:#0a0806;}
.btn-gold:hover{background:var(--gold-300);border-color:var(--gold-300);color:#0a0806;}
.btn-gold .arrow{color:#0a0806;}

/* Botão-caixa do WhatsApp: círculo verde + duas linhas de texto */
.btn-wa{
  display:inline-flex;align-items:center;gap:20px;
  border:1px solid var(--hair-strong);border-radius:var(--radius);
  padding:20px 24px;background:rgba(10,8,6,.42);
  color:#f4ecdd;max-width:390px;
  transition:background .2s ease, border-color .2s ease;
}
.btn-wa:hover{border-color:var(--gold-400);background:rgba(199,160,92,.1);color:#f4ecdd;}
.wa-badge{
  width:46px;height:46px;border-radius:50%;background:var(--wa);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.wa-badge svg{width:28px;height:28px;fill:#fff;}
.btn-wa .wa-text{display:flex;flex-direction:column;gap:7px;flex:1;}
.btn-wa .wa-title{font-size:15px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-300);}
.btn-wa .wa-sub{font-size:14.5px;font-weight:300;line-height:1.45;color:#cfc7ba;}
.btn-wa .arrow{color:var(--gold-400);font-size:19px;flex-shrink:0;}

.section{padding:clamp(64px,7vw,104px) 0;}
.cta-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.section-hair{border-top:1px solid var(--hair);}

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--ink-950);
  border-bottom:1px solid rgba(199,160,92,.14);
}
.site-header .container{
  display:flex;flex-wrap:wrap;align-items:center;
  gap:14px clamp(14px,1.8vw,34px);
  padding-top:14px;padding-bottom:14px;min-height:96px;
}
.site-branding{display:flex;align-items:center;flex-shrink:0;}
.site-branding img,.custom-logo{width:66px;height:53px;object-fit:contain;}
.site-branding .brand-fallback{
  font-family:var(--font-display);font-size:30px;font-weight:600;line-height:1;
  background-image:linear-gradient(178deg,#fdf1d6 6%,#c79a4e 52%,#9a6c2c 70%,#fbeccc 100%);
  background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}

.primary-nav{margin:0 auto;}
.primary-nav ul{
  display:flex;flex-wrap:wrap;align-items:center;
  gap:10px clamp(14px,2.1vw,38px);
  font-size:clamp(11px,.88vw,13.5px);letter-spacing:.11em;text-transform:uppercase;font-weight:400;
}
.primary-nav a{
  display:inline-block;color:#cfc7ba;
  padding-bottom:7px;border-bottom:1px solid transparent;
  transition:color .15s, border-color .15s;
}
.primary-nav a:hover{color:var(--gold-300);border-bottom-color:var(--hair-strong);}
.primary-nav .current-menu-item > a,
.primary-nav .current_page_item > a{color:var(--gold-300);border-bottom-color:var(--gold-400);}

.primary-nav .menu-item-has-children{position:relative;}
.primary-nav .menu-item-has-children > a::after{
  content:"▾";display:inline-block;margin-left:7px;font-size:9px;color:var(--gold-400);
  transition:transform .2s ease;
}
.primary-nav .menu-item-has-children:hover > a::after{transform:rotate(180deg);}
.primary-nav .sub-menu{
  position:absolute;top:100%;left:0;z-index:50;
  display:block;min-width:290px;
  background:var(--ink-850);border:1px solid var(--hair);
  box-shadow:0 22px 44px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.primary-nav .menu-item-has-children:hover > .sub-menu,
.primary-nav .menu-item-has-children.sub-menu-open > .sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
.primary-nav .sub-menu li + li{border-top:1px solid rgba(199,160,92,.1);}
.primary-nav .sub-menu a{
  display:block;padding:14px 20px;font-size:12px;letter-spacing:.09em;
  border-bottom:none;white-space:nowrap;
}
.primary-nav .sub-menu a:hover{background:rgba(199,160,92,.07);color:var(--gold-300);}

/* Pílula do telefone com o selo verde do WhatsApp */
.header-phone{
  display:inline-flex;align-items:center;gap:14px;flex-shrink:0;
  border:1px solid rgba(199,160,92,.5);border-radius:9px;
  padding:11px 22px 11px 14px;
  font-size:clamp(14px,1.1vw,17px);font-weight:400;letter-spacing:.02em;
  color:#f4ecdd;white-space:nowrap;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.header-phone:hover{border-color:var(--gold-400);background:rgba(199,160,92,.08);color:#f7ecd7;}
.header-phone .wa-badge{width:34px;height:34px;}
.header-phone .wa-badge svg{width:21px;height:21px;fill:#0a0806;}

.menu-toggle{
  display:none;background:none;border:1px solid var(--hair);
  color:var(--text);padding:9px 14px;border-radius:var(--radius);
  font-family:var(--font-body);font-size:12px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;
}
@media (max-width:1080px){
  .primary-nav{
    display:none;order:4;width:100%;margin:0;
    border-top:1px solid var(--hair);
  }
  .primary-nav.is-open{display:block;}
  .primary-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:6px 0 10px;}
  .primary-nav a{display:block;padding:14px 0;border-bottom:1px solid rgba(199,160,92,.08);}
  .menu-toggle{display:inline-block;margin-left:auto;}
  .primary-nav .sub-menu{
    position:static;opacity:1;visibility:visible;transform:none;display:none;
    border:none;box-shadow:none;background:rgba(199,160,92,.05);min-width:0;
  }
  .primary-nav .menu-item-has-children.sub-menu-open > .sub-menu{display:block;}
  .primary-nav .sub-menu a{padding-left:18px;white-space:normal;}
}

/* ==========================================================================
   HERO — plenário do Tribunal do Júri
   ========================================================================== */
.hero{position:relative;overflow:hidden;background:var(--ink-950);}
.hero-scene{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 30%;
  /* recua a cena: menos brilho e um grau menos de contraste */
  filter:brightness(.82) contrast(.96);
  animation:hnCena 2.6s cubic-bezier(.22,.7,.24,1) both;
}
/* véu lateral: escurece a esquerda, onde entra o texto, e libera a cena */
.hero::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,8,6,.96) 0%,rgba(10,8,6,.91) 26%,rgba(10,8,6,.66) 42%,rgba(10,8,6,.3) 56%,rgba(10,8,6,.14) 72%,rgba(10,8,6,.1) 100%);
}
/* véu vertical: assenta o topo sob o header e a base no rodapé da seção */
.hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,8,6,.55) 0%,rgba(10,8,6,0) 18%,rgba(10,8,6,0) 62%,rgba(10,8,6,.55) 100%);
}
/* cortina que abre por cima de tudo no primeiro instante */
.hero-veil{
  position:absolute;inset:0;z-index:3;background:var(--ink-950);pointer-events:none;
  animation:hnVeu 2.2s cubic-bezier(.4,0,.2,1) both;
}
.hero .container{position:relative;z-index:4;padding-top:clamp(48px,6.2vw,92px);}
.hero-copy{padding-left:clamp(0px,1.6vw,25px);max-width:min(760px,100%);}

/* Nome em champagne metálico */
.hero-name{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(34px,4.35vw,67px);line-height:1.02;letter-spacing:.012em;
  margin:0;text-wrap:balance;
  background-image:linear-gradient(178deg,#fdf1d6 4%,#f0d69f 22%,#c79a4e 48%,#9a6c2c 66%,#e6c58c 84%,#fbeccc 100%);
  background-clip:text;-webkit-background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  animation:hnNome 1.7s cubic-bezier(.16,.8,.3,1) .95s both;
}
/* ADVOCACIA CRIMINAL entre dois filetes */
.hero-tagline{display:flex;align-items:center;gap:18px;margin:12px 0 0;max-width:672px;}
.hero-tagline span{
  font-size:clamp(11px,1.01vw,15.5px);letter-spacing:.36em;text-transform:uppercase;
  color:#e6ded1;font-weight:300;white-space:nowrap;
}
.hero-tagline i{height:1px;flex:1;display:block;}
.hero-tagline i:first-child{background:linear-gradient(90deg,rgba(199,160,92,.15),rgba(199,160,92,.78));}
.hero-tagline i:last-child{background:linear-gradient(90deg,rgba(199,160,92,.78),rgba(199,160,92,.15));}

.hero .eyebrow{margin:44px 0 8px;}
.hero-title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(48px,7.3vw,112px);line-height:.98;letter-spacing:.012em;
  text-transform:uppercase;color:var(--white);margin:0;max-width:10ch;
  text-shadow:0 0 30px rgba(255,255,255,.22),0 0 80px rgba(199,160,92,.18);
  animation:hnTitulo 1.6s cubic-bezier(.16,.8,.3,1) 2.15s both;
}
.hero-lede{
  font-size:clamp(15px,1.15vw,17.5px);font-weight:300;line-height:1.9;
  color:var(--text);margin:0 0 34px;max-width:44ch;
}
.hero-lede em{font-style:normal;color:var(--gold-400);}

/* ── ABERTURA ────────────────────────────────────────────────────────────
   Uma passagem só, sem laço. Cada keyframe termina no valor que o elemento
   tem parado, então o quadro final é exatamente o layout aprovado. */
@keyframes hnCena{
  0%{opacity:0;transform:scale(1.04)}
  38%{opacity:.7}
  100%{opacity:1;transform:scale(1)}
}
@keyframes hnVeu{0%{opacity:1}70%{opacity:.2}100%{opacity:0}}
@keyframes hnEntra{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes hnFilete{from{opacity:0;transform:scaleX(.35)}to{opacity:1;transform:scaleX(1)}}
@keyframes hnNome{
  0%{opacity:0;transform:translateY(18px);filter:drop-shadow(0 0 0 rgba(199,160,92,0))}
  55%{opacity:1}
  100%{opacity:1;transform:translateY(0);filter:drop-shadow(0 0 22px rgba(199,160,92,.42)) drop-shadow(0 0 60px rgba(199,160,92,.22))}
}
@keyframes hnTitulo{
  0%{opacity:0;transform:translateY(18px);text-shadow:0 0 0 rgba(255,255,255,0),0 0 0 rgba(199,160,92,0)}
  100%{opacity:1;transform:translateY(0);text-shadow:0 0 30px rgba(255,255,255,.22),0 0 80px rgba(199,160,92,.18)}
}

.hn-in{animation:hnEntra 1.1s cubic-bezier(.16,.8,.3,1) both;}
.hn-line{animation:hnFilete 1.3s cubic-bezier(.16,.8,.3,1) both;}
.site-header.hn-in{animation-delay:.35s;}
.hero-tagline i:first-child{animation-delay:1.5s;}
.hero-tagline span{animation-delay:1.55s;}
.hero-tagline i:last-child{animation-delay:1.6s;}
.hero .eyebrow{animation-delay:1.95s;}
.hero .rule-diamond::before,.hero .rule-diamond::after{animation:hnFilete 1.3s cubic-bezier(.16,.8,.3,1) 2.7s both;}
.hero .rule-diamond i{animation-delay:2.78s;}
.hero-lede{animation-delay:2.9s;}
.hero .cta-row{animation-delay:3.2s;}
.hero-features > *:nth-child(1){animation-delay:3.55s;}
.hero-features > *:nth-child(2){animation-delay:3.67s;}
.hero-features > *:nth-child(3){animation-delay:3.79s;}
.hero-features > *:nth-child(4){animation-delay:3.91s;}

@media (prefers-reduced-motion: reduce){
  .hero-veil{display:none;}
  .hero-scene,.hn-in,.hn-line,.hero-name,.hero-title{animation:none !important;}
}

/* ==========================================================================
   BARRA DE DIFERENCIAIS (sob o hero)
   ========================================================================== */
.hero-features{
  position:relative;z-index:4;
  margin-top:clamp(44px,4.6vw,70px);
  border:1px solid rgba(199,160,92,.18);
  background:linear-gradient(180deg,rgba(14,11,8,.78),rgba(10,8,6,.9));
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
}
.hero-feature{display:flex;align-items:flex-start;gap:20px;padding:38px 34px 40px;}
.hero-feature + .hero-feature{box-shadow:inset 1px 0 0 rgba(199,160,92,.14);}
.hero-feature svg{width:32px;height:32px;flex-shrink:0;margin-top:2px;fill:none;stroke:var(--gold-400);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;}
.hero-feature .ft-text{display:flex;flex-direction:column;gap:16px;}
.hero-feature .ft-title{font-size:14.5px;letter-spacing:.09em;line-height:1.5;text-transform:uppercase;color:var(--gold-300);}
.hero-feature .ft-desc{font-size:14px;font-weight:300;line-height:1.65;color:var(--text-soft);}
.hero-spacer{height:clamp(28px,3vw,44px);}
@media (max-width:1100px){
  .hero-scene{object-position:64% 34%;}
  .hero-features{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hero-feature:nth-child(odd){box-shadow:none;}
  .hero-feature:nth-child(n+3){box-shadow:inset 0 1px 0 rgba(199,160,92,.14);}
  .hero-feature:nth-child(4){box-shadow:inset 1px 0 0 rgba(199,160,92,.14),inset 0 1px 0 rgba(199,160,92,.14);}
}
@media (max-width:620px){
  .hero-features{grid-template-columns:minmax(0,1fr);}
  .hero-feature{box-shadow:inset 0 1px 0 rgba(199,160,92,.14) !important;}
  .hero-feature:first-child{box-shadow:none !important;}
}

/* ==========================================================================
   INTRO DE SEÇÃO
   ========================================================================== */
.section-intro{max-width:760px;margin-bottom:clamp(40px,4vw,60px);}
.section-intro h2{
  font-size:clamp(34px,3.6vw,54px);line-height:1.06;letter-spacing:.01em;
  text-transform:uppercase;margin:0 0 20px;text-wrap:balance;
}
.section-intro p{font-size:16.5px;line-height:1.85;color:var(--text-soft);margin:0;max-width:52ch;}

/* ==========================================================================
   ÁREAS DE ATUAÇÃO — placas escuras com filete dourado
   ========================================================================== */
.areas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.area-card{
  display:flex;flex-direction:column;min-height:240px;
  padding:40px 38px 36px;
  background:linear-gradient(168deg,rgba(23,18,13,.9),rgba(12,9,7,.94));
  border:1px solid rgba(199,160,92,.2);border-radius:var(--radius);
  color:var(--text);
  transition:transform .22s cubic-bezier(.16,.8,.3,1), border-color .22s ease, box-shadow .22s ease;
}
.area-card:hover{
  transform:translateY(-4px);
  border-color:var(--hair-strong);
  box-shadow:0 24px 48px -18px rgba(0,0,0,.8),0 0 0 1px rgba(199,160,92,.1) inset;
  color:var(--text);
}
.area-card .area-index{
  font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-400);margin-bottom:18px;
}
.area-card h3{
  font-size:29px;line-height:1.12;letter-spacing:.01em;
  text-transform:uppercase;color:var(--white);margin:0 0 14px;
}
.area-card p{font-size:15px;line-height:1.75;color:var(--text-soft);margin:0 0 26px;}
.area-card .area-link{
  margin-top:auto;align-self:flex-start;
  font-size:12px;letter-spacing:.19em;text-transform:uppercase;color:var(--gold-300);
  border-bottom:1px solid var(--hair-strong);padding-bottom:5px;
}
.area-card .area-link .arrow{display:inline-block;margin-left:8px;transition:transform .2s ease;}
.area-card:hover .area-link .arrow{transform:translateX(5px);}
@media (max-width:760px){.areas-grid{grid-template-columns:1fr;}}

/* ==========================================================================
   O QUE ESPERAR — lista numerada
   ========================================================================== */
.expect-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:clamp(40px,5vw,80px);align-items:start;}
.expect-layout h2{font-size:clamp(30px,3vw,44px);line-height:1.08;text-transform:uppercase;margin:0 0 18px;}
.expect-layout > div:first-child p{font-size:15.5px;line-height:1.85;color:var(--text-soft);margin:0;}
.expect-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 52px;}
.expect-item .num{
  display:block;font-family:var(--font-display);font-size:22px;line-height:1;
  color:var(--gold-400);margin-bottom:14px;
}
.expect-item h3{font-size:21px;line-height:1.25;margin:0 0 10px;color:var(--white);}
.expect-item p{font-size:14.5px;line-height:1.75;color:var(--text-soft);margin:0;}
@media (max-width:960px){
  .expect-layout{grid-template-columns:1fr;gap:36px;}
  .expect-grid{grid-template-columns:1fr;gap:32px;}
}

/* ==========================================================================
   SOBRE — cena de fundo com degradê
   ========================================================================== */
.about-scene{position:relative;overflow:hidden;background:var(--ink-950);padding:clamp(72px,7.5vw,112px) 0;}
.about-scene-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%;
  filter:contrast(1.06) brightness(.72);
}
.about-scene::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,8,6,.97) 0%,rgba(10,8,6,.9) 40%,rgba(10,8,6,.6) 70%,rgba(10,8,6,.45) 100%);
}
.about-scene::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,8,6,1) 0%,rgba(10,8,6,.15) 20%,rgba(10,8,6,.3) 72%,rgba(10,8,6,1) 100%);
}
.about-scene .container{position:relative;z-index:2;}
.about-copy{max-width:62ch;}
.about-copy h2{font-size:clamp(32px,3.4vw,50px);line-height:1.08;text-transform:uppercase;margin:0 0 24px;max-width:22ch;text-wrap:balance;}
.about-copy p{font-size:17px;line-height:1.95;color:var(--text);margin:0 0 20px;max-width:58ch;}
.about-facts{
  display:flex;flex-wrap:wrap;gap:clamp(28px,3.4vw,52px);
  padding:26px 0;margin:34px 0 36px;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.about-facts .label{
  display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-400);margin-bottom:8px;
}
.about-facts .value{font-size:15.5px;color:var(--white);white-space:nowrap;}

/* ==========================================================================
   CONTATO
   ========================================================================== */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,5vw,80px);align-items:start;}
.contact-grid h2{font-size:clamp(32px,3.4vw,50px);line-height:1.08;text-transform:uppercase;margin:0 0 20px;}
.contact-grid .lede{font-size:17px;line-height:1.9;color:var(--text);margin:0 0 34px;max-width:46ch;}
.contact-list{display:grid;margin-bottom:34px;}
.contact-row{display:flex;flex-wrap:wrap;gap:8px 24px;padding:18px 0;border-top:1px solid var(--hair);}
.contact-row:last-child{border-bottom:1px solid var(--hair);}
.contact-row .label{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-400);min-width:110px;padding-top:4px;
}
.contact-row .value,.contact-row span:not(.label){font-size:15.5px;color:#e8e4dd;}
.contact-map{border:1px solid var(--hair);min-height:440px;}
.contact-map iframe{width:100%;height:100%;min-height:440px;border:0;filter:grayscale(1) brightness(.72) contrast(1.15) sepia(.22);}
@media (max-width:960px){
  .contact-grid{grid-template-columns:1fr;}
  .contact-map,.contact-map iframe{min-height:320px;}
}

/* ==========================================================================
   PÁGINAS INTERNAS
   ========================================================================== */
.page-header{
  position:relative;overflow:hidden;
  background:var(--ink-950);
  padding:clamp(56px,6vw,88px) 0 clamp(44px,4.4vw,64px);
  border-bottom:1px solid var(--hair);
}
.page-header::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 150% at 88% 10%,rgba(199,160,92,.14) 0%,rgba(199,160,92,0) 58%);
}
.page-header .container{position:relative;}
.page-header h1{
  font-size:clamp(34px,4vw,60px);line-height:1.04;letter-spacing:.012em;
  text-transform:uppercase;color:var(--white);max-width:22ch;margin:0;
  text-shadow:0 0 30px rgba(255,255,255,.14),0 0 80px rgba(199,160,92,.14);
}
.breadcrumb{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-dim);margin-bottom:20px;
}
.breadcrumb a{border-bottom:1px solid transparent;}
.breadcrumb a:hover{color:var(--gold-300);border-color:var(--hair-strong);}

.prose{max-width:74ch;font-size:17px;line-height:1.95;color:var(--text);}
.prose h2{
  font-size:clamp(26px,2.4vw,34px);line-height:1.15;text-transform:uppercase;
  color:var(--white);margin:2em 0 .7em;
}
.prose h3{font-size:21px;color:var(--white);margin:1.6em 0 .5em;}
.prose ul{list-style:none;padding:0;margin:0 0 1.6em;}
.prose li{position:relative;padding-left:26px;margin-bottom:.7em;}
.prose li::before{
  content:"";position:absolute;left:0;top:.72em;
  width:6px;height:6px;background:var(--gold-400);transform:rotate(45deg);
}
.prose .btn,.prose .btn-wa{margin-top:12px;}

.faq-item{border-top:1px solid var(--hair);padding:26px 0;}
.faq-item:last-of-type{border-bottom:1px solid var(--hair);}
.faq-item h3{font-size:20px;margin:0 0 10px;}
.faq-item p{color:var(--text-soft);font-size:15.5px;line-height:1.8;margin:0;}

.compliance-note{
  border:1px solid var(--hair);border-left:2px solid var(--gold-400);
  background:rgba(199,160,92,.05);
  padding:20px 24px;font-size:14px;line-height:1.8;color:var(--text-soft);margin:36px 0;
}

/* Painel de sub-especialidades */
.subtopics-panel{
  border:1px solid rgba(199,160,92,.18);
  background:linear-gradient(180deg,rgba(14,11,8,.78),rgba(10,8,6,.9));
  margin:40px 0;
}
.subtopics-title{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-300);
  padding:22px 26px 6px;
}
.subtopics-grid{display:grid;grid-template-columns:1fr 1fr;}
.subtopic-item{display:flex;align-items:center;gap:14px;padding:16px 26px;border-top:1px solid rgba(199,160,92,.1);}
.subtopic-item:nth-child(-n+2){border-top:none;}
.subtopic-dot{width:7px;height:7px;flex-shrink:0;background:var(--gold-400);transform:rotate(45deg);}
.subtopic-item .label{font-size:14.5px;color:#f0e9dd;}
@media (max-width:640px){
  .subtopics-grid{grid-template-columns:1fr;}
  .subtopic-item:nth-child(2){border-top:1px solid rgba(199,160,92,.1);}
}

/* Split (páginas internas com retrato) */
.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,5vw,72px);align-items:start;}
.split-media{
  position:relative;aspect-ratio:4/5;
  background:var(--ink-800);border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;
  padding:24px;text-align:center;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);
}
.split-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.split-media::before{content:"";position:absolute;top:-9px;left:-9px;width:52px;height:52px;border-top:1px solid var(--gold-400);border-left:1px solid var(--gold-400);}
.split-media::after{content:"";position:absolute;bottom:-9px;right:-9px;width:52px;height:52px;border-bottom:1px solid var(--gold-400);border-right:1px solid var(--gold-400);}
@media (max-width:960px){.split{grid-template-columns:1fr;}}

/* ==========================================================================
   RODAPÉ
   ========================================================================== */
.site-footer{background:var(--ink-900);color:var(--text-soft);padding:clamp(56px,5.4vw,80px) 0 30px;border-top:1px solid var(--hair);}
.footer-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:clamp(36px,4vw,64px);
  padding-bottom:44px;border-bottom:1px solid var(--hair);
}
.footer-brand .brand-name{
  font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1;display:block;margin-bottom:16px;
  background-image:linear-gradient(178deg,#fdf1d6 6%,#c79a4e 52%,#9a6c2c 70%,#fbeccc 100%);
  background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
}
.footer-brand p{color:var(--text-dim);font-size:14.5px;line-height:1.8;max-width:36ch;margin:0;}
.footer-col h4{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-300);
  font-family:var(--font-body);font-weight:400;margin:0 0 20px;
}
.footer-col ul{display:grid;gap:12px;font-size:14.5px;}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  padding-top:26px;font-size:12.5px;letter-spacing:.04em;color:var(--text-dim);
}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr;gap:36px;}}

/* ==========================================================================
   BOTÕES FLUTUANTES — mensagem e ligação
   ========================================================================== */
.float-btn{
  position:fixed;right:22px;bottom:22px;z-index:200;
  display:flex;align-items:center;justify-content:center;
  width:58px;height:58px;border-radius:50%;
  box-shadow:0 10px 26px rgba(0,0,0,.5);
  transition:transform .15s ease, background .15s ease, color .15s ease;
}
.float-btn svg{width:30px;height:30px;}
.float-btn:hover{transform:translateY(-2px);}
.whatsapp-float{background:var(--wa);color:#fff;}
.whatsapp-float svg{fill:#fff;}
.whatsapp-float:hover{background:#20bd5a;color:#fff;}
@media (max-width:600px){
  .float-btn{width:52px;height:52px;}
  .float-btn svg{width:26px;height:26px;}
}



/* ==========================================================================
   SCROLL REVEAL (seções abaixo do hero)
   ========================================================================== */
.reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.16,.8,.3,1), transform .7s cubic-bezier(.16,.8,.3,1);
}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.areas-grid .reveal:nth-child(2){transition-delay:.08s;}
.areas-grid .reveal:nth-child(3){transition-delay:.16s;}
.areas-grid .reveal:nth-child(4){transition-delay:.24s;}
.expect-grid .reveal:nth-child(2){transition-delay:.08s;}
.expect-grid .reveal:nth-child(3){transition-delay:.16s;}
.expect-grid .reveal:nth-child(4){transition-delay:.24s;}
