/* ============================================================
   BRUNA M. ANGULSKI  |  Advocacia e Consultoria Juridica
   Identidade: navy #1C2E3D + champagne #D8C7B4 + terracota #B06A3F
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  --navy-950:#0B131B;
  --navy-900:#0E1A24;
  --navy-800:#14232F;
  --navy-700:#1C2E3D;
  --navy-600:#27394A;
  --navy-500:#3A4F62;

  --champagne:#D8C7B4;
  --champagne-2:#E9DECF;
  --champagne-3:#F2EAE0;

  --terra:#B06A3F;
  --terra-2:#C9895E;
  --terra-3:#E0B48F;

  --bone:#F7F3ED;
  --bone-2:#EFE9E1;
  --ink:#161C22;
  --ink-2:#3C464F;
  --muted:#77828C;

  --line-dark:rgba(216,199,180,.22);
  --line-light:rgba(28,46,61,.14);

  --serif:'Cormorant Garamond','Times New Roman',serif;
  --sans:'Inter','Helvetica Neue',Arial,sans-serif;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-2:cubic-bezier(.65,0,.35,1);

  --gutter:clamp(20px,5vw,80px);
  --maxw:1280px;
  --header-h:88px;
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto !important}
body{
  font-family:var(--sans);
  font-weight:400;
  font-size:16px;
  line-height:1.75;
  letter-spacing:-.003em;
  color:var(--ink-2);
  background:var(--bone);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--navy-700);color:var(--champagne-2)}

/* ---------- 3. TIPOGRAFIA ---------- */
.display{
  font-family:var(--serif);
  font-weight:300;
  line-height:1.06;
  letter-spacing:-.018em;
  color:var(--navy-700);
}
.d-xl{font-size:clamp(2.6rem,6.4vw,5.3rem)}
.d-lg{font-size:clamp(2.1rem,4.1vw,3.5rem)}
.d-md{font-size:clamp(1.8rem,3vw,2.6rem)}
.d-sm{font-size:clamp(1.45rem,2.1vw,1.95rem)}
.italic{font-style:italic}
.eyebrow{
  font-size:.65rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--terra);
  display:flex;
  align-items:center;
  gap:14px;
}
.eyebrow::before{content:'';width:34px;height:1px;background:currentColor;opacity:.55;flex:none}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:'';width:34px;height:1px;background:currentColor;opacity:.55;flex:none}
.lead{font-size:clamp(1rem,1.25vw,1.09rem);line-height:1.8;color:var(--ink-2);font-weight:400}
.on-dark{color:var(--champagne-3)}
.on-dark .display{color:var(--champagne-2)}
.on-dark .lead,.on-dark p{color:rgba(242,234,224,.74)}
.on-dark .eyebrow{color:var(--terra-3)}

/* ---------- 4. LAYOUT ---------- */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
.wrap-narrow{max-width:880px}
section{position:relative}
.pad{padding-block:clamp(84px,11vw,150px)}
.pad-sm{padding-block:clamp(54px,7vw,92px)}
.center{text-align:center}
.center .eyebrow{justify-content:center}
.center .eyebrow::after{content:'';width:34px;height:1px;background:currentColor;opacity:.55;flex:none}
.bg-navy{background:var(--navy-700);color:var(--champagne-3)}
.bg-navy-deep{background:var(--navy-900);color:var(--champagne-3)}
.bg-bone{background:var(--bone)}
.bg-bone-2{background:var(--bone-2)}
.rule{height:1px;background:var(--line-light);border:0}
.on-dark .rule,.bg-navy .rule{background:var(--line-dark)}

/* ---------- 5. GRAO / TEXTURA ---------- */
.grain{
  position:fixed;inset:-160px;pointer-events:none;z-index:900;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 6s steps(6) infinite;
  mix-blend-mode:multiply;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}20%{transform:translate(-12px,8px)}40%{transform:translate(9px,-14px)}
  60%{transform:translate(-8px,-9px)}80%{transform:translate(14px,6px)}100%{transform:translate(0,0)}
}

/* ---------- 6. CURSOR ---------- */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9998;border-radius:50%;opacity:0}
.cursor-dot{width:5px;height:5px;background:var(--terra);transform:translate(-50%,-50%)}
.cursor-ring{
  width:38px;height:38px;border:1px solid rgba(176,106,63,.5);
  transform:translate(-50%,-50%);
  transition:width .35s var(--ease),height .35s var(--ease),background-color .35s var(--ease),border-color .35s var(--ease);
}
body.cursor-on .cursor-dot,body.cursor-on .cursor-ring{opacity:1}
body.cursor-hover .cursor-ring{width:64px;height:64px;background:rgba(176,106,63,.09);border-color:rgba(176,106,63,.32)}
body.cursor-hover .cursor-dot{opacity:0}
@media (hover:none),(max-width:900px){.cursor-dot,.cursor-ring{display:none}}

/* ---------- 7. PRELOADER ---------- */
#preloader{
  position:fixed;inset:0;z-index:9999;background:var(--navy-700);
  display:grid;place-items:center;transition:opacity .5s var(--ease),visibility .5s;
}
#preloader .pl-mark{width:80px;opacity:0;transform:translateY(12px);animation:plIn .6s var(--ease) .05s forwards}
#preloader .pl-bar{position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--champagne);opacity:.5;animation:plBar .75s var(--ease-2) forwards}
@keyframes plIn{to{opacity:1;transform:none}}
@keyframes plBar{to{width:100%}}
body.loaded #preloader{opacity:0;visibility:hidden}

/* ---------- 8. CORTINA DE TRANSICAO ---------- */
#curtain{
  position:fixed;inset:0;z-index:9990;background:var(--navy-700);
  transform:translateY(100%);pointer-events:none;
  display:grid;place-items:center;
}
#curtain img{width:64px;opacity:0;transition:opacity .25s}
body.leaving #curtain{animation:curtainUp .46s var(--ease-2) forwards}
body.leaving #curtain img{opacity:.9;transition-delay:.16s}
@keyframes curtainUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* ---------- 9. HEADER ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:800;
  height:var(--header-h);
  display:flex;align-items:center;
  transition:height .45s var(--ease),background-color .45s var(--ease),border-color .45s;
  border-bottom:1px solid transparent;
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,2vw,32px);width:100%;max-width:1460px}
.brand{display:flex;align-items:center;gap:14px;flex:none}
.brand img{width:38px;transition:width .45s var(--ease),filter .45s var(--ease)}
.brand-txt{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--serif);font-size:1rem;letter-spacing:.14em;color:var(--champagne-2);white-space:nowrap;transition:color .45s}
.brand-sub{font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(216,199,180,.55);margin-top:3px;transition:color .45s}
.nav{display:flex;align-items:center;gap:clamp(16px,1.9vw,30px)}
.nav a{
  position:relative;font-size:.73rem;letter-spacing:.11em;text-transform:uppercase;font-weight:500;
  color:rgba(242,234,224,.72);padding-block:6px;transition:color .3s;white-space:nowrap;
}
.nav a::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--terra-3);
  transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease);
}
.nav a:hover{color:var(--champagne-2)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1);transform-origin:left}
.nav a.is-active{color:var(--champagne-2)}
.header-cta{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid rgba(216,199,180,.34);
  padding:11px 19px;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  color:var(--champagne-2);transition:background-color .45s var(--ease),color .45s var(--ease),border-color .45s;
  white-space:nowrap;
}
.header-cta:hover{background:var(--champagne-2);color:var(--navy-700);border-color:var(--champagne-2)}
.site-header.scrolled{height:70px;background:rgba(14,26,36,.93);backdrop-filter:blur(14px);border-color:rgba(216,199,180,.13)}
.site-header.scrolled .brand img{width:31px;filter:none}

/* header sobre fundo claro */
.site-header.on-light:not(.scrolled) .brand-name{color:var(--navy-700)}
.site-header.on-light:not(.scrolled) .brand-sub{color:rgba(28,46,61,.5)}
.site-header.on-light:not(.scrolled) .nav a{color:rgba(28,46,61,.72)}
.site-header.on-light:not(.scrolled) .nav a:hover,
.site-header.on-light:not(.scrolled) .nav a.is-active{color:var(--navy-700)}
.site-header.on-light:not(.scrolled) .header-cta{border-color:rgba(28,46,61,.28);color:var(--navy-700)}
.site-header.on-light:not(.scrolled) .header-cta:hover{background:var(--navy-700);color:var(--champagne-2)}
.site-header.on-light:not(.scrolled) .brand img{filter:invert(1) brightness(.18) sepia(1) hue-rotate(165deg) saturate(3)}
.site-header.on-light:not(.scrolled) .burger span{background:var(--navy-700)}

/* burger */
.burger{display:none;width:34px;height:22px;position:relative;flex:none;z-index:10}
.burger span{position:absolute;left:0;height:1px;width:100%;background:var(--champagne-2);transition:transform .5s var(--ease),opacity .3s,width .4s,background-color .4s}
.burger span:nth-child(1){top:3px}
.burger span:nth-child(2){top:11px;width:70%}
.burger span:nth-child(3){top:19px}
body.menu-open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
body.menu-open .burger span{background:var(--champagne-2) !important}

/* menu mobile */
.mobile-menu{
  position:fixed;inset:0;z-index:790;background:var(--navy-800);
  clip-path:circle(0% at calc(100% - 46px) 44px);
  transition:clip-path .85s var(--ease);
  display:flex;flex-direction:column;justify-content:center;
  padding:120px var(--gutter) 60px;
}
body.menu-open .mobile-menu{clip-path:circle(150% at calc(100% - 46px) 44px)}
.mobile-menu a{
  font-family:var(--serif);font-size:clamp(1.8rem,6.5vw,2.6rem);color:var(--champagne-2);
  padding-block:12px;border-bottom:1px solid rgba(216,199,180,.13);
  opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease),color .3s;
}
.mobile-menu a:hover{color:var(--terra-3)}
body.menu-open .mobile-menu a{opacity:1;transform:none}
body.menu-open .mobile-menu a:nth-child(1){transition-delay:.26s}
body.menu-open .mobile-menu a:nth-child(2){transition-delay:.32s}
body.menu-open .mobile-menu a:nth-child(3){transition-delay:.38s}
body.menu-open .mobile-menu a:nth-child(4){transition-delay:.44s}
body.menu-open .mobile-menu a:nth-child(5){transition-delay:.5s}
.mobile-menu a small{font-family:var(--sans);font-size:.58rem;letter-spacing:.3em;color:var(--terra-3);display:block;margin-bottom:2px}
.mobile-foot{margin-top:44px;font-size:.76rem;letter-spacing:.12em;color:rgba(216,199,180,.5)}
body.menu-open{overflow:hidden}

@media(max-width:1060px){
  .nav,.header-cta{display:none}
  .burger{display:block}
}

/* ---------- 10. BOTOES ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:17px 36px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  border:1px solid var(--navy-700);color:var(--navy-700);overflow:hidden;isolation:isolate;
  transition:color .5s var(--ease),border-color .5s var(--ease);
}
.btn::before{
  content:'';position:absolute;inset:0;background:var(--navy-700);z-index:-1;
  transform:translateY(101%);transition:transform .55s var(--ease);
}
.btn:hover{color:var(--champagne-2)}
.btn:hover::before{transform:translateY(0)}
.btn-solid{background:var(--navy-700);color:var(--champagne-2)}
.btn-solid::before{background:var(--terra)}
.btn-solid:hover{color:#fff;border-color:var(--terra)}
.btn-light{border-color:rgba(216,199,180,.4);color:var(--champagne-2)}
.btn-light::before{background:var(--champagne-2)}
.btn-light:hover{color:var(--navy-700);border-color:var(--champagne-2)}
.btn-terra{border-color:var(--terra);background:var(--terra);color:#fff}
.btn-terra::before{background:var(--navy-700)}
.btn-terra:hover{color:var(--champagne-2);border-color:var(--navy-700)}
.btn .ic{width:15px;height:15px;flex:none;transition:transform .5s var(--ease)}
.btn:hover .ic{transform:translateX(5px)}

.link-arrow{
  display:inline-flex;align-items:center;gap:11px;font-size:.71rem;letter-spacing:.16em;font-weight:500;
  text-transform:uppercase;color:var(--terra);padding-bottom:5px;position:relative;
}
.link-arrow::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;opacity:.4;transform-origin:right;transform:scaleX(1);transition:transform .5s var(--ease)}
.link-arrow:hover::after{transform:scaleX(0)}
.link-arrow svg{width:14px;transition:transform .5s var(--ease)}
.link-arrow:hover svg{transform:translateX(6px)}

/* ---------- 11. REVEAL ---------- */
[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity .85s var(--ease),transform .85s var(--ease);will-change:opacity,transform}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="fade"]{transform:none}
[data-reveal="left"]{transform:translateX(-42px)}
[data-reveal="right"]{transform:translateX(42px)}
[data-reveal="mask"]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--ease)}
[data-reveal="mask"].in{clip-path:inset(0 0 0% 0)}
[data-reveal="scale"]{opacity:0;transform:scale(1.06)}
[data-reveal="scale"].in{opacity:1;transform:scale(1)}
.line-grow{transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease)}
.line-grow.in{transform:scaleX(1)}

/* revelacao por palavra */
.split-line{display:block;overflow:hidden;padding-bottom:.06em}
.split-word{display:inline-block;transform:translateY(108%);opacity:0;transition:transform .95s var(--ease),opacity .95s var(--ease)}
.split-ready .split-word{transform:none;opacity:1}

/* ---------- 12. HERO ---------- */
.hero{
  position:relative;min-height:100svh;display:grid;place-items:center;
  background:var(--navy-700);overflow:hidden;padding:calc(var(--header-h) + 34px) 0 104px;
}
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-bg{opacity:.5}
.hero-bg img{
  width:100%;height:100%;object-fit:cover;object-position:70% 22%;
  filter:grayscale(.18) contrast(1.05) saturate(1.05);
  transform:scale(1.12);animation:kenburns 26s var(--ease) infinite alternate;
}
@keyframes kenburns{from{transform:scale(1.12) translate3d(0,0,0)}to{transform:scale(1.22) translate3d(0,-2.4%,0)}}

/* slideshow em loop (4 retratos, so CSS, sem depender de JS) */
.hero-slide{position:absolute;inset:0;opacity:0;animation:slideCycle 27s linear infinite}
.hero-slide img{animation:slideZoom 27s linear infinite}
.hero-slide:nth-child(1),.hero-slide:nth-child(1) img{animation-delay:0s}
.hero-slide:nth-child(2),.hero-slide:nth-child(2) img{animation-delay:9s}
.hero-slide:nth-child(3),.hero-slide:nth-child(3) img{animation-delay:18s}
@keyframes slideCycle{
  0%{opacity:0}
  5%{opacity:1}
  29%{opacity:1}
  36%{opacity:0}
  100%{opacity:0}
}
@keyframes slideZoom{
  0%{transform:scale(1.08) translate3d(0,0,0)}
  36%{transform:scale(1.19) translate3d(0,-1.8%,0)}
  36.01%{transform:scale(1.08) translate3d(0,0,0)}
  100%{transform:scale(1.08) translate3d(0,0,0)}
}
.hero-slide img{object-position:66% 20%}
.hero-slide:nth-child(2) img{object-position:60% 18%}
.hero-slide:nth-child(3) img{object-position:44% 22%}
.hero-veil{
  position:absolute;inset:0;
  background:
    radial-gradient(62% 56% at 48% 50%, rgba(11,19,27,.88) 0%, rgba(11,19,27,.7) 42%, rgba(11,19,27,.28) 78%, rgba(11,19,27,.1) 100%),
    linear-gradient(180deg, rgba(11,19,27,.78) 0%, rgba(11,19,27,.1) 24%, rgba(11,19,27,.12) 62%, rgba(11,19,27,.86) 100%);
}
.hero-arc{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(660px,84vw);aspect-ratio:.78;
  border:1px solid rgba(216,199,180,.14);
  border-radius:999px 999px 6px 6px;
  pointer-events:none;
}
.hero-arc.b{width:min(880px,102vw);border-color:rgba(176,106,63,.13)}
.hero-inner{position:relative;z-index:3;text-align:center;max-width:1060px;padding-inline:var(--gutter);margin-inline:auto}
.hero-mark{width:62px;margin:0 auto 30px;opacity:0;animation:heroMark 1.2s var(--ease) .25s forwards}
@keyframes heroMark{from{opacity:0;transform:translateY(16px)}to{opacity:.92;transform:none}}
.hero h1{color:var(--champagne-2);margin-block:22px 26px}
.hero h1 em{font-style:italic;color:var(--terra-3)}
.hero-sub{max-width:620px;margin:0 auto;color:rgba(242,234,224,.72);font-size:clamp(.98rem,1.3vw,1.1rem);line-height:1.9}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:42px}
.hero-meta{
  margin-top:52px;padding-top:26px;border-top:1px solid rgba(216,199,180,.16);
  display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(16px,4vw,46px);
  font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:rgba(216,199,180,.6);
}
.hero-scroll{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:4;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(216,199,180,.45);
}
.hero-scroll .bar{width:1px;height:46px;background:linear-gradient(180deg,rgba(216,199,180,.5),transparent);position:relative;overflow:hidden}
.hero-scroll .bar::after{content:'';position:absolute;top:-46px;left:0;width:1px;height:46px;background:var(--terra-3);animation:scrollDrop 2.1s var(--ease-2) infinite}
@keyframes scrollDrop{0%{top:-46px}60%,100%{top:46px}}
.hero-fade-in{opacity:0;animation:fadeUp 1.1s var(--ease) forwards}
.dl-1{animation-delay:.75s}.dl-2{animation-delay:.9s}.dl-3{animation-delay:1.05s}.dl-4{animation-delay:1.2s}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* ---------- 13. HERO INTERNO ---------- */
.page-hero{
  position:relative;background:var(--navy-700);color:var(--champagne-3);
  padding:calc(var(--header-h) + clamp(66px,9vw,116px)) 0 clamp(66px,8vw,106px);
  overflow:hidden;
}
.page-hero .hero-bg{opacity:.32}
.page-hero .hero-bg img{object-position:50% 24%}
.page-hero-inner{position:relative;z-index:3}
.crumbs{font-size:.65rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(216,199,180,.5);margin-bottom:20px}
.crumbs a:hover{color:var(--terra-3)}
.crumbs span{opacity:.4;margin-inline:8px}
.page-hero h1{color:var(--champagne-2);max-width:16ch}
.page-hero .lead{max-width:58ch;margin-top:24px;color:rgba(242,234,224,.72)}

/* ---------- 14. PILARES ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-light)}
.pillar{
  padding:clamp(36px,4.4vw,58px) clamp(22px,3vw,44px);
  border-right:1px solid var(--line-light);border-bottom:1px solid var(--line-light);
  position:relative;overflow:hidden;transition:background-color .6s var(--ease);
}
.pillar:last-child{border-right:0}
.pillar[data-reveal]{transition:opacity .85s var(--ease),transform .85s var(--ease),background-color .6s var(--ease)}
.pillar::before{content:'';position:absolute;left:0;top:0;height:2px;width:0;background:var(--terra);transition:width .7s var(--ease)}
@media(hover:hover) and (pointer:fine){
  .pillar:hover::before{width:100%}
  .pillar:hover{background:rgba(216,199,180,.18)}
}
.pillar .glyph{width:34px;height:34px;color:var(--terra);margin-bottom:22px}
.pillar h3{font-family:var(--serif);font-size:1.42rem;font-weight:400;color:var(--navy-700);margin-bottom:12px}
.pillar p{font-size:.94rem;line-height:1.8;color:var(--muted)}
@media(max-width:860px){.pillars{grid-template-columns:1fr}.pillar{border-right:0}}
@media(max-width:860px),(hover:none){
  .pillar[data-reveal]{transform:translateY(12px);transition:opacity .35s ease-out,transform .35s ease-out}
  .pillar[data-reveal].in{transform:none}
}

/* ---------- 15. SPLIT / ARCO ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}
.split.narrow-img{grid-template-columns:.85fr 1fr}
@media(max-width:900px){.split,.split.narrow-img{grid-template-columns:1fr;gap:52px}}
.arch{position:relative;border-radius:1000px 1000px 4px 4px;overflow:hidden;aspect-ratio:.76;background:var(--navy-800)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;transform:scale(1.03);transition:transform 1.6s var(--ease)}
/* retrato de perfil: precisa de enquadramento proprio para o rosto nao encostar na borda */
.arch-perfil img{object-position:42% 10%}
.arch:hover img{transform:scale(1.09)}
.arch-frame{position:relative}
.arch-frame::before{
  content:'';position:absolute;inset:-18px -18px 26px -18px;
  border:1px solid var(--line-light);border-radius:1000px 1000px 4px 4px;pointer-events:none;
}
.on-dark .arch-frame::before{border-color:var(--line-dark)}
.arch-tag{position:absolute;right:-14px;bottom:32px;z-index:3;background:var(--navy-700);color:var(--champagne-2);padding:16px 22px;text-align:center}
.arch-tag strong{display:block;font-size:1.1rem;font-weight:500;letter-spacing:.06em;line-height:1}
.arch-tag span{font-size:.57rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(216,199,180,.6);display:block;margin-top:6px}
.sig{font-family:var(--serif);font-style:italic;font-size:1.7rem;color:var(--navy-700);margin-top:30px}
.on-dark .sig{color:var(--champagne-2)}
.sig small{display:block;font-family:var(--sans);font-style:normal;font-size:.63rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.on-dark .sig small{color:rgba(242,234,224,.5)}

/* ---------- 16. AREAS ---------- */
.area-list{border-top:1px solid var(--line-light)}
.area-row{
  position:relative;isolation:isolate;
  display:grid;grid-template-columns:92px 1fr minmax(0,1.15fr) 60px;
  gap:clamp(14px,3vw,44px);align-items:center;
  padding:clamp(26px,3.2vw,40px) clamp(8px,2vw,26px);
  border-bottom:1px solid var(--line-light);
  transition:padding-left .6s var(--ease);
  overflow:hidden;
}
.area-row::before{
  content:'';position:absolute;inset:0;background:var(--navy-700);z-index:-1;
  transform:scaleY(0);transform-origin:bottom;transition:transform .65s var(--ease);
}
.area-row:hover::before{transform:scaleY(1);transform-origin:top}
.area-row:hover{padding-left:clamp(20px,3.4vw,52px)}
.area-num{font-family:var(--serif);font-size:1.5rem;color:var(--terra);opacity:.85;transition:color .5s}
.area-name{font-family:var(--serif);font-size:clamp(1.3rem,2.3vw,1.8rem);font-weight:400;color:var(--navy-700);line-height:1.22;transition:color .5s}
.area-desc{font-size:.93rem;line-height:1.8;color:var(--muted);transition:color .5s}
.area-go{justify-self:end;width:38px;height:38px;border:1px solid var(--line-light);border-radius:50%;display:grid;place-items:center;transition:border-color .5s var(--ease),background-color .5s var(--ease)}
.area-go svg{width:13px;color:var(--navy-700);transition:color .5s,transform .5s var(--ease)}
.area-row:hover .area-name{color:var(--champagne-2)}
.area-row:hover .area-desc{color:rgba(242,234,224,.7)}
.area-row:hover .area-num{color:var(--terra-3)}
.area-row:hover .area-go{border-color:var(--terra);background:var(--terra)}
.area-row:hover .area-go svg{color:#fff;transform:translateX(2px)}
@media(max-width:860px){
  .area-row{grid-template-columns:58px 1fr;row-gap:10px}
  .area-desc{grid-column:1/-1}
  .area-go{display:none}
}

/* cards de area */
.area-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;background:var(--line-light)}
.area-card{background:var(--bone);padding:clamp(32px,3.5vw,50px);position:relative;overflow:hidden;transition:background-color .6s var(--ease)}
.area-card::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--terra);transition:width .8s var(--ease)}
.area-card:hover::after{width:100%}
.area-card:hover{background:var(--bone-2)}
.area-card .k{font-family:var(--serif);font-size:2.5rem;color:rgba(28,46,61,.13);line-height:1;margin-bottom:16px;transition:color .6s}
.area-card:hover .k{color:rgba(176,106,63,.3)}
.area-card h3{font-family:var(--serif);font-size:1.5rem;font-weight:400;color:var(--navy-700);margin-bottom:14px;line-height:1.25}
.area-card p{font-size:.94rem;line-height:1.82;color:var(--muted)}
.area-card ul{margin-top:20px;display:flex;flex-direction:column;gap:9px}
.area-card li{font-size:.86rem;color:var(--ink-2);display:flex;gap:11px;align-items:flex-start;line-height:1.6}
.area-card li::before{content:'';width:5px;height:5px;flex:none;margin-top:9px;background:var(--terra);transform:rotate(45deg)}

/* ---------- 17. PROCESSO ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark)}
.step{background:var(--navy-700);padding:clamp(30px,3.3vw,46px) clamp(22px,2.4vw,34px);transition:background-color .6s var(--ease)}
.step:hover{background:var(--navy-600)}
.step .n{font-family:var(--serif);font-size:.92rem;letter-spacing:.2em;color:var(--terra-3);margin-bottom:26px;display:block}
.step h4{font-family:var(--serif);font-size:1.38rem;font-weight:400;color:var(--champagne-2);margin-bottom:12px}
.step p{font-size:.89rem;line-height:1.78;color:rgba(242,234,224,.65)}
@media(max-width:960px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- 18. MANIFESTO ---------- */
.manifesto{position:relative;overflow:hidden;background:var(--navy-900)}
.manifesto .hero-bg{opacity:.28}
.manifesto .hero-bg img{object-position:50% 28%}
.manifesto blockquote{
  position:relative;z-index:3;font-family:var(--serif);font-weight:300;
  font-size:clamp(1.65rem,3.5vw,2.9rem);line-height:1.32;color:var(--champagne-2);
  max-width:21ch;margin:0 auto;text-align:center;
}
.manifesto blockquote em{font-style:italic;color:var(--terra-3)}
.q-mark{font-family:var(--serif);font-size:4.6rem;color:rgba(176,106,63,.38);line-height:.4;display:block;margin-bottom:20px}

/* ---------- 19. MARQUEE ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line-light);padding-block:20px;background:var(--bone-2)}
.marquee-track{display:flex;width:max-content;animation:mq 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{
  font-family:var(--serif);font-size:clamp(1.05rem,1.7vw,1.45rem);color:var(--navy-700);
  padding-inline:clamp(20px,2.8vw,42px);display:flex;align-items:center;gap:clamp(20px,2.8vw,42px);white-space:nowrap;
}
.marquee-track span::after{content:'';width:5px;height:5px;background:var(--terra);transform:rotate(45deg);flex:none}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- 20. FAQ ---------- */
.faq{border-top:1px solid var(--line-light)}
.faq-item{border-bottom:1px solid var(--line-light)}
.faq-q{
  width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:28px;
  padding:clamp(21px,2.5vw,31px) 0;text-align:left;
  font-family:var(--serif);font-size:clamp(1.1rem,1.85vw,1.4rem);font-weight:400;color:var(--navy-700);
  transition:color .4s;line-height:1.35;
}
.faq-q:hover{color:var(--terra)}
.faq-ic{position:relative;width:18px;height:18px;flex:none;margin-top:7px}
.faq-ic::before,.faq-ic::after{content:'';position:absolute;background:var(--terra);transition:transform .5s var(--ease)}
.faq-ic::before{top:8px;left:0;width:18px;height:1px}
.faq-ic::after{left:8px;top:0;height:18px;width:1px}
.faq-item.open .faq-ic::after{transform:scaleY(0)}
.faq-a{overflow:hidden;height:0;transition:height .6s var(--ease)}
.faq-a-in{padding-bottom:clamp(22px,2.6vw,32px);padding-right:clamp(0px,8vw,120px)}
.faq-a-in p{font-size:.96rem;line-height:1.88;color:var(--muted)}
.faq-a-in p + p{margin-top:14px}

/* ---------- 21. CONTATO ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,6vw,90px)}
@media(max-width:940px){.contact-grid{grid-template-columns:1fr}}
.info-item{padding-block:21px;border-bottom:1px solid var(--line-dark)}
.info-item:first-of-type{border-top:1px solid var(--line-dark)}
.info-item .k{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--terra-3);margin-bottom:8px}
.info-item .v{font-size:1.04rem;font-weight:500;letter-spacing:-.01em;color:var(--champagne-2);line-height:1.5;display:block;transition:color .35s}
.info-item a.v:hover{color:var(--terra-3)}
.info-item .v small{display:block;font-family:var(--sans);font-size:.84rem;color:rgba(242,234,224,.6);margin-top:4px;letter-spacing:0}

.form{display:grid;gap:26px}
.field{position:relative}
.field label{position:absolute;left:0;top:14px;font-size:.95rem;color:rgba(242,234,224,.5);pointer-events:none;transition:top .4s var(--ease),font-size .4s var(--ease),letter-spacing .4s,color .4s}
.field input,.field textarea,.field select{
  width:100%;background:transparent;border:0;border-bottom:1px solid rgba(216,199,180,.24);
  padding:14px 0 12px;color:var(--champagne-2);font-size:1rem;transition:border-color .4s;border-radius:0;
}
.field select{appearance:none;cursor:pointer}
.field select option{background:var(--navy-800);color:var(--champagne-2)}
.field textarea{resize:vertical;min-height:116px}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--terra-2)}
.field input:focus + label,.field textarea:focus + label,
.field input:not(:placeholder-shown) + label,.field textarea:not(:placeholder-shown) + label,
.field.filled label{top:-11px;font-size:.61rem;letter-spacing:.24em;text-transform:uppercase;color:var(--terra-3)}
.field .bar{position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--terra-2);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.field input:focus ~ .bar,.field textarea:focus ~ .bar,.field select:focus ~ .bar{transform:scaleX(1)}
.field .sel-caret{position:absolute;right:2px;top:20px;width:10px;color:rgba(216,199,180,.5);pointer-events:none}
.consent{display:flex;gap:13px;align-items:flex-start;font-size:.83rem;line-height:1.65;color:rgba(242,234,224,.6)}
.consent input{appearance:none;width:17px;height:17px;flex:none;margin-top:3px;border:1px solid rgba(216,199,180,.35);position:relative;cursor:pointer;transition:background-color .3s,border-color .3s}
.consent input:checked{background:var(--terra);border-color:var(--terra)}
.consent input:checked::after{content:'';position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.form-note{font-size:.78rem;color:rgba(242,234,224,.45);line-height:1.7}
.form-msg{display:none;padding:16px 20px;border:1px solid var(--terra-2);color:var(--terra-3);font-size:.9rem;line-height:1.7}
.form-msg.show{display:block;animation:fadeUp .6s var(--ease)}

/* ---------- 22. CTA BAND ---------- */
.cta-band{position:relative;overflow:hidden;background:var(--navy-800);text-align:center}
.cta-band .hero-arc{border-color:rgba(216,199,180,.1)}
.cta-band .wrap{position:relative;z-index:3}

/* ---------- 23. RODAPE ---------- */
.site-footer{background:var(--navy-950);color:rgba(242,234,224,.6);padding-top:clamp(56px,7vw,86px)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:clamp(28px,4vw,60px);padding-bottom:50px}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot-brand img{width:132px;margin-bottom:20px}
.foot-grid h5{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--terra-3);margin-bottom:20px}
.foot-grid li + li{margin-top:11px}
.foot-grid a,.foot-grid p{font-size:.89rem;line-height:1.75;transition:color .3s}
.foot-grid a:hover{color:var(--champagne-2)}
.foot-bottom{
  border-top:1px solid rgba(216,199,180,.12);padding-block:24px;
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;
  font-size:.73rem;letter-spacing:.06em;color:rgba(242,234,224,.42);
}
.oab-badge{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(216,199,180,.2);padding:9px 16px;font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;color:var(--champagne-2)}
.oab-note{font-size:.73rem;line-height:1.8;color:rgba(242,234,224,.38);max-width:78ch;padding-bottom:26px}

/* ---------- 24. WHATSAPP ---------- */
.wa{
  position:fixed;right:22px;bottom:22px;z-index:850;
  width:56px;height:56px;border-radius:50%;background:var(--navy-700);
  display:grid;place-items:center;border:1px solid rgba(216,199,180,.25);
  transform:translateY(90px);opacity:0;
  transition:transform .7s var(--ease),opacity .7s var(--ease),background-color .4s,border-color .4s;
}
.wa.show{transform:none;opacity:1}
.wa:hover{background:var(--terra);border-color:var(--terra)}
.wa svg{width:24px;color:var(--champagne-2)}
@media(max-width:600px){.wa{right:16px;bottom:16px;width:50px;height:50px}}

/* ---------- 25. UTILITARIOS ---------- */
.stack-sm > * + *{margin-top:14px}
.stack > * + *{margin-top:24px}
.stack-lg > * + *{margin-top:40px}
.mt-s{margin-top:20px}.mt-m{margin-top:34px}.mt-l{margin-top:52px}
.tag-row{display:flex;flex-wrap:wrap;gap:10px}
.tag{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;border:1px solid var(--line-light);padding:8px 15px;color:var(--muted);transition:border-color .4s var(--ease),color .4s var(--ease)}
.tag:hover{border-color:var(--terra);color:var(--terra)}
.on-dark .tag{border-color:var(--line-dark);color:rgba(242,234,224,.65)}
.on-dark .tag:hover{border-color:var(--terra-3);color:var(--terra-3)}
.cred{border-top:1px solid var(--line-light)}
.cred-item{display:grid;grid-template-columns:160px 1fr;gap:clamp(14px,3vw,40px);padding:22px 0;border-bottom:1px solid var(--line-light)}
.cred-item .y{font-size:.78rem;font-weight:500;letter-spacing:.2em;color:var(--terra);padding-top:5px}
.cred-item .t{color:var(--muted);font-size:.94rem;line-height:1.72}
.cred-item .t strong{font-weight:400;color:var(--navy-700);font-family:var(--serif);font-size:1.16rem;display:block;margin-bottom:4px}
@media(max-width:640px){.cred-item{grid-template-columns:1fr;gap:6px}}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.5vw,20px)}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr}}
.gal-item{overflow:hidden;aspect-ratio:3/4;background:var(--navy-800)}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease),filter 1s var(--ease);filter:grayscale(.22)}
.gal-item:hover img{transform:scale(1.07);filter:grayscale(0)}

.note-box{border-left:2px solid var(--terra);padding:4px 0 4px 24px;font-size:.93rem;line-height:1.82;color:var(--muted)}
.on-dark .note-box{color:rgba(242,234,224,.65)}

/* ancoras */
[id]{scroll-margin-top:110px}

/* ---------- 26. AJUSTES MOBILE ---------- */
@media(max-width:640px){
  /* no celular o texto ocupa quase toda a tela: a foto continua visivel,
     mas o veu precisa segurar mais o contraste da leitura */
  .hero-bg{opacity:.36}
  .hero-veil{
    background:
      radial-gradient(80% 54% at 50% 52%, rgba(11,19,27,.92) 0%, rgba(11,19,27,.8) 45%, rgba(11,19,27,.42) 100%),
      linear-gradient(180deg, rgba(11,19,27,.82) 0%, rgba(11,19,27,.24) 20%, rgba(11,19,27,.28) 62%, rgba(11,19,27,.9) 100%);
  }
  .d-xl{font-size:clamp(2.2rem,9.4vw,3rem)}
  .hero{padding:calc(var(--header-h) + 18px) 0 92px}
  .hero-mark{width:48px;margin-bottom:22px}
  .hero h1{margin-block:16px 20px}
  .hero-sub{font-size:.97rem;line-height:1.75}
  .hero-actions{margin-top:32px;flex-direction:column;align-items:stretch}
  .hero-actions .btn{width:100%}
  .hero-meta{margin-top:36px;padding-top:20px;gap:10px 22px;font-size:.62rem}
  .hero-scroll{display:none}
  .brand-name{font-size:.86rem;letter-spacing:.1em}
  .brand-sub{font-size:.48rem;letter-spacing:.22em}
  .brand img{width:32px}
  .brand{gap:10px}
  .eyebrow{font-size:.62rem;letter-spacing:.3em}
  .eyebrow::before,.eyebrow.center::after,.center .eyebrow::after{width:22px}
  .arch-tag{right:0;padding:13px 17px}
  .page-hero h1{max-width:none}
  .faq-a-in{padding-right:0}
  .foot-brand img{width:200px;max-width:100%}
}
@media(max-width:400px){
  .brand-sub{display:none}
}

/* FAQ sobre fundo escuro */
.on-dark .faq,.on-dark .faq-item{border-color:var(--line-dark)}
.on-dark .faq-q{color:var(--champagne-2)}
.on-dark .faq-q:hover{color:var(--terra-3)}
.on-dark .faq-a-in p{color:rgba(242,234,224,.68)}

/* iframe dentro do arco */
.arch iframe{display:block;width:100%;height:100%;border:0}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  [data-reveal]{opacity:1 !important;transform:none !important;clip-path:none !important}
  .split-word{transform:none;opacity:1}
}

/* ============================================================
   27. BARRA DE PROGRESSO DE LEITURA
   ============================================================ */
.scroll-progress{
  position:fixed;top:0;left:0;right:0;height:2px;z-index:860;
  background:rgba(216,199,180,.1);pointer-events:none;
}
.scroll-progress span{
  display:block;height:100%;width:100%;
  background:linear-gradient(90deg,var(--terra),var(--terra-3));
  transform:scaleX(0);transform-origin:left;
}

/* ============================================================
   28. SELO DE PLANTAO
   ============================================================ */
.plantao{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;
  color:var(--terra-3);
}
.plantao::before{
  content:'';width:7px;height:7px;border-radius:50%;background:var(--terra-2);flex:none;
  box-shadow:0 0 0 0 rgba(201,137,94,.7);animation:pulse 2.4s var(--ease-2) infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(201,137,94,.6)}
  70%{box-shadow:0 0 0 11px rgba(201,137,94,0)}
  100%{box-shadow:0 0 0 0 rgba(201,137,94,0)}
}
.hero-meta .plantao{color:var(--terra-3)}
.foot-plantao{margin-top:16px}

/* ============================================================
   29. MINI CHAT
   ============================================================ */
.chat-pop{
  position:fixed;right:22px;bottom:92px;z-index:855;
  width:min(324px,calc(100vw - 44px));
  background:var(--navy-800);
  border:1px solid rgba(216,199,180,.16);
  box-shadow:0 24px 60px rgba(6,12,18,.5);
  padding:20px 20px 18px;
  opacity:0;visibility:hidden;
  transform:translateY(22px) scale(.96);
  transform-origin:100% 100%;
  transition:opacity .55s var(--ease),transform .55s var(--ease),visibility .55s;
}
.chat-pop.open{opacity:1;visibility:visible;transform:none}
.chat-pop::after{
  content:'';position:absolute;right:26px;bottom:-8px;width:14px;height:14px;
  background:var(--navy-800);border-right:1px solid rgba(216,199,180,.16);
  border-bottom:1px solid rgba(216,199,180,.16);transform:rotate(45deg);
}
.chat-head{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.chat-avatar{
  width:42px;height:42px;border-radius:50%;overflow:hidden;flex:none;
  border:1px solid rgba(216,199,180,.25);position:relative;
}
.chat-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.chat-id strong{
  display:block;font-size:.86rem;font-weight:500;color:var(--champagne-2);letter-spacing:-.01em;line-height:1.3;
}
.chat-id small{
  display:flex;align-items:center;gap:6px;
  font-size:.66rem;letter-spacing:.06em;color:rgba(242,234,224,.5);margin-top:2px;
}
.chat-id small::before{
  content:'';width:6px;height:6px;border-radius:50%;background:#4ea86a;flex:none;
  animation:pulseOn 2.2s ease-in-out infinite;
}
@keyframes pulseOn{0%,100%{opacity:1}50%{opacity:.35}}
.chat-msg{
  background:rgba(216,199,180,.07);
  border:1px solid rgba(216,199,180,.1);
  padding:13px 15px;
  font-size:.9rem;line-height:1.6;color:var(--champagne-3);
  border-radius:2px 12px 12px 12px;
}
.chat-actions{display:flex;gap:9px;margin-top:14px}
.chat-cta{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--terra);color:#fff;
  padding:12px 14px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  transition:background-color .4s var(--ease);
}
.chat-cta:hover{background:var(--terra-2)}
.chat-cta svg{width:15px;flex:none}
.chat-close{
  position:absolute;top:10px;right:10px;width:26px;height:26px;
  display:grid;place-items:center;color:rgba(242,234,224,.42);
  font-size:1.1rem;line-height:1;transition:color .3s;
}
.chat-close:hover{color:var(--champagne-2)}

/* balao de "digitando" antes da mensagem */
.chat-typing{
  position:fixed;right:22px;bottom:92px;z-index:854;
  background:var(--navy-800);border:1px solid rgba(216,199,180,.16);
  padding:13px 17px;display:flex;gap:5px;align-items:center;
  opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s;
}
.chat-pop.typing ~ .chat-typing,
body .chat-pop.typing + .chat-typing{opacity:1;visibility:visible;transform:none}
.chat-typing i{
  width:6px;height:6px;border-radius:50%;background:var(--champagne);opacity:.5;
  animation:typing 1.3s ease-in-out infinite;
}
.chat-typing i:nth-child(2){animation-delay:.18s}
.chat-typing i:nth-child(3){animation-delay:.36s}
@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}

@media(max-width:600px){
  .chat-typing{right:16px;bottom:80px}
  .chat-pop{
    right:16px;bottom:78px;
    width:calc(100vw - 32px);max-width:300px;
    padding:15px 15px 14px;
  }
  .chat-avatar{width:34px;height:34px}
  .chat-head{gap:10px;margin-bottom:11px}
  .chat-id strong{font-size:.79rem}
  .chat-id small{font-size:.62rem}
  .chat-msg{font-size:.83rem;line-height:1.5;padding:10px 12px}
  .chat-actions{margin-top:10px}
  .chat-cta{padding:10px 12px;font-size:.63rem;letter-spacing:.11em}
  .chat-cta svg{width:13px}
  .chat-close{top:7px;right:7px}
}

/* ============================================================
   30. ESTADOS DE BOTAO E MENSAGEM
   ============================================================ */
.btn.loading{pointer-events:none;opacity:.75}
.btn.loading .ic{animation:btnSpin .9s linear infinite}
@keyframes btnSpin{to{transform:rotate(360deg)}}
.form-msg.ok{border-color:#4ea86a;color:#8fd3a5}

/* ============================================================
   31. ANIMACAO EXTRA
   ============================================================ */
/* arcos do hero entram desenhando */
.hero-arc{opacity:0;transform:translate(-50%,-50%) scale(.9)}
body.hero-ready .hero-arc{
  opacity:1;transform:translate(-50%,-50%) scale(1);
  transition:opacity 1.6s var(--ease) .25s,transform 1.8s var(--ease) .25s;
}
body.hero-ready .hero-arc.b{transition-delay:.4s}

/* cards de area sobem no hover */
.area-card{transition:background-color .6s var(--ease),transform .6s var(--ease),box-shadow .6s var(--ease)}
.area-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(28,46,61,.09)}

/* passos do processo */
.step{transition:background-color .6s var(--ease),transform .6s var(--ease)}
.step:hover{transform:translateY(-5px)}

/* pilares */
.pillar .glyph{transition:transform .7s var(--ease),color .5s}
@media(hover:hover) and (pointer:fine){
  .pillar:hover .glyph{transform:translateY(-4px) rotate(-4deg);color:var(--terra-2)}
}

/* retratos da galeria */
.gal-item{position:relative;overflow:hidden}
.gal-item::after{
  content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(11,19,27,.45));
  opacity:0;transition:opacity .7s var(--ease);
}
.gal-item:hover::after{opacity:1}

/* itens de contato */
.info-item{transition:padding-left .5s var(--ease)}
.info-item:hover{padding-left:8px}

/* linha do tempo */
.cred-item{transition:padding-left .5s var(--ease),background-color .5s var(--ease)}
.cred-item:hover{padding-left:14px;background:rgba(216,199,180,.14)}

/* marca do header gira levemente no hover */
.brand:hover img{transform:rotate(-5deg) scale(1.06)}
.brand img{transition:width .45s var(--ease),transform .6s var(--ease)}

@media (prefers-reduced-motion:reduce){
  .hero-slide,.hero-slide img,.plantao::before,.chat-typing i{animation:none !important}
  .hero-slide:first-child{opacity:1}
  .hero-arc{opacity:1;transform:translate(-50%,-50%)}
}
