/* =========================================================================
   Agência Ábacus — folha de estilo do site
   Paleta e tipografia derivadas do logotipo e do portfólio institucional.
   ========================================================================= */

:root{
  /* marca */
  --red:#be0000;
  --red-deep:#8f0000;
  --gold:#b08324;
  --graphite:#242424;
  --graphite-deep:#16181a;

  /* superfícies */
  --paper:#ffffff;
  --paper-2:#f4f3f1;
  --paper-3:#e9e7e4;
  --ink:#1e1e1e;
  --ink-soft:#5e5b57;
  --ink-faint:#8b8781;
  --rule:#dedbd6;
  --rule-strong:#c9c5be;

  /* inversos (seções escuras em qualquer tema) */
  --dark-bg:#1c1e20;
  --dark-bg-2:#26292b;
  --dark-ink:#f2f0ed;
  --dark-ink-soft:#a8a49e;
  --dark-rule:#3a3d40;

  --shadow-sm:0 1px 2px rgba(20,20,20,.06);
  --shadow:0 2px 6px rgba(20,20,20,.07), 0 14px 34px -18px rgba(20,20,20,.22);
  --shadow-lg:0 4px 12px rgba(20,20,20,.09), 0 28px 60px -28px rgba(20,20,20,.3);

  --spine:1180px;
  --gut:clamp(1.15rem,4.5vw,3rem);
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --red:#e2504a;
    --red-deep:#b93b36;
    --gold:#d0a544;
    --paper:#131415;
    --paper-2:#1b1d1e;
    --paper-3:#242628;
    --ink:#efedea;
    --ink-soft:#a8a49f;
    --ink-faint:#7c7873;
    --rule:#2e3133;
    --rule-strong:#3d4143;
    --dark-bg:#0e0f10;
    --dark-bg-2:#181a1b;
    --dark-rule:#2b2e30;
    --shadow-sm:0 1px 2px rgba(0,0,0,.5);
    --shadow:0 2px 6px rgba(0,0,0,.5), 0 14px 34px -18px rgba(0,0,0,.8);
    --shadow-lg:0 4px 12px rgba(0,0,0,.55), 0 28px 60px -28px rgba(0,0,0,.9);
  }
}
:root[data-theme="dark"]{
  --red:#e2504a; --red-deep:#b93b36; --gold:#d0a544;
  --paper:#131415; --paper-2:#1b1d1e; --paper-3:#242628;
  --ink:#efedea; --ink-soft:#a8a49f; --ink-faint:#7c7873;
  --rule:#2e3133; --rule-strong:#3d4143;
  --dark-bg:#0e0f10; --dark-bg-2:#181a1b; --dark-rule:#2b2e30;
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --shadow:0 2px 6px rgba(0,0,0,.5), 0 14px 34px -18px rgba(0,0,0,.8);
  --shadow-lg:0 4px 12px rgba(0,0,0,.55), 0 28px 60px -28px rgba(0,0,0,.9);
}

/* ---------------------------------------------------------------- base -- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important}
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Open Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--red); text-decoration-thickness:1px; text-underline-offset:3px}
h1,h2,h3,h4,h5{
  font-family:"DM Sans",ui-sans-serif,system-ui,"Segoe UI",sans-serif;
  margin:0; text-wrap:balance; color:var(--ink);
}
h1{font-size:clamp(2.15rem,5.4vw,3.55rem); font-weight:700; line-height:1.06; letter-spacing:-.028em}
h2{font-size:clamp(1.65rem,3.6vw,2.5rem); font-weight:700; line-height:1.14; letter-spacing:-.022em}
h3{font-size:clamp(1.18rem,2vw,1.42rem); font-weight:700; line-height:1.25; letter-spacing:-.012em}
h4{font-size:1.04rem; font-weight:700; line-height:1.35; letter-spacing:-.006em}
p{margin:0}
ul,ol{margin:0; padding:0}
:focus-visible{outline:2px solid var(--red); outline-offset:3px; border-radius:2px}

/* --------------------------------------------------------- utilitários -- */
.spine{width:100%; max-width:var(--spine); margin-inline:auto; padding-inline:var(--gut)}
.prose{max-width:68ch; display:flex; flex-direction:column; gap:1.15rem}
.prose p{color:var(--ink-soft)}
.prose p strong,.prose p b{color:var(--ink); font-weight:600}
.stack{display:flex; flex-direction:column}
.muted{color:var(--ink-soft)}
.small{font-size:.9rem}
.center{text-align:center}
.nowrap{white-space:nowrap}
.tnum{font-variant-numeric:tabular-nums}
.sr{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
.skip{
  position:absolute; left:.5rem; top:-3rem; z-index:200;
  background:var(--red); color:#fff; padding:.6rem 1rem; border-radius:2px;
  font-size:.85rem; font-weight:600; text-decoration:none; transition:top .18s;
}
.skip:focus{top:.5rem}

.eyebrow{
  font-family:"DM Sans",sans-serif; font-size:.72rem; font-weight:700;
  letter-spacing:.19em; text-transform:uppercase; color:var(--gold);
  display:flex; align-items:center; gap:.75rem; margin:0;
}
.eyebrow::before{content:""; width:1.6rem; height:2px; background:var(--gold); flex:none}
.eyebrow.on-dark{color:var(--gold)}
.eyebrow.solo::before{display:none}

.rule-gold{height:2px; width:3.2rem; background:var(--gold); border:0; margin:0}

/* ------------------------------------------------------------- botões -- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:"DM Sans",sans-serif; font-size:.94rem; font-weight:700;
  letter-spacing:.01em; padding:.82rem 1.6rem; border-radius:2px;
  text-decoration:none; border:1.5px solid transparent; cursor:pointer;
  transition:background-color .18s, color .18s, border-color .18s, transform .18s;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--red); color:#fff; border-color:var(--red)}
.btn-primary:hover{background:var(--red-deep); border-color:var(--red-deep); color:#fff}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--rule-strong)}
.btn-ghost:hover{border-color:var(--ink); color:var(--ink)}
.btn-on-dark{background:transparent; color:#fff; border-color:rgba(255,255,255,.42)}
.btn-on-dark:hover{background:#fff; color:var(--graphite); border-color:#fff}
.btn-wa{background:#1f8a4c; color:#fff; border-color:#1f8a4c}
.btn-wa:hover{background:#17703d; border-color:#17703d; color:#fff}
.btn svg{width:1.05em; height:1.05em; flex:none}

/* ------------------------------------------------------------ topbar --- */
.masthead{
  position:sticky; top:0; z-index:100;
  background:var(--graphite);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.masthead-in{
  display:flex; align-items:center; gap:1.25rem;
  min-height:74px; padding-block:.65rem;
}
.brand{display:flex; align-items:center; flex:none; text-decoration:none}
.brand img{height:40px; width:auto}
@media (max-width:520px){ .brand img{height:33px} }

.mainnav{margin-left:auto; display:flex; align-items:center; gap:.15rem}
.mainnav a{
  font-family:"DM Sans",sans-serif; font-size:.87rem; font-weight:500;
  color:rgba(255,255,255,.82); text-decoration:none;
  padding:.55rem .78rem; border-radius:2px; white-space:nowrap;
  transition:color .16s, background-color .16s;
}
.mainnav a:hover{color:#fff; background:rgba(255,255,255,.08)}
.mainnav a[aria-current="page"]{color:#fff; box-shadow:inset 0 -2px 0 var(--red)}

.langs{display:flex; align-items:center; gap:.3rem; margin-left:.7rem; padding-left:.9rem; border-left:1px solid rgba(255,255,255,.16)}
.langs a{
  font-family:"DM Sans",sans-serif; font-size:.72rem; font-weight:700; letter-spacing:.09em;
  text-transform:uppercase; color:rgba(255,255,255,.55); text-decoration:none;
  padding:.34rem .42rem; border-radius:2px; transition:color .16s;
}
.langs a:hover{color:#fff}
.langs a[aria-current="true"]{color:var(--gold)}

.burger{
  display:none; margin-left:auto; background:transparent; border:1px solid rgba(255,255,255,.28);
  border-radius:2px; width:44px; height:40px; cursor:pointer; padding:0;
  align-items:center; justify-content:center; flex-direction:column; gap:4px;
}
.burger span{display:block; width:19px; height:2px; background:#fff; transition:transform .2s, opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1010px){
  .burger{display:flex}
  .mainnav{
    position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--graphite); border-bottom:3px solid var(--red);
    padding:.5rem var(--gut) 1.1rem; margin:0;
    max-height:calc(100vh - 74px); overflow-y:auto;
    display:none; box-shadow:var(--shadow-lg);
  }
  .mainnav.open{display:flex}
  .mainnav a{padding:.78rem .2rem; font-size:1rem; border-bottom:1px solid rgba(255,255,255,.08)}
  .mainnav a[aria-current="page"]{box-shadow:none; color:var(--gold)}
  .langs{margin:.9rem 0 0; padding:.9rem 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.14)}
  .langs a{font-size:.82rem; padding:.4rem .55rem; border:1px solid rgba(255,255,255,.2)}
}

/* --------------------------------------------------------------- hero -- */
.hero{position:relative; background:var(--dark-bg); color:#fff; overflow:hidden; isolation:isolate}
.hero-media{position:absolute; inset:0; z-index:-2}
.hero-media img{width:100%; height:100%; object-fit:cover; opacity:.36; filter:grayscale(.35) contrast(1.05)}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(105deg, rgba(20,22,24,.94) 0%, rgba(20,22,24,.82) 46%, rgba(20,22,24,.55) 100%);
}
.hero-in{padding-block:clamp(4rem,11vw,8.5rem); display:flex; flex-direction:column; gap:1.6rem; max-width:52rem}
.hero h1{color:#fff}
.hero h1 em{font-style:normal; color:var(--gold)}
.hero-lede{font-size:clamp(1.04rem,1.7vw,1.24rem); line-height:1.62; color:rgba(255,255,255,.86); max-width:46ch}
.hero-actions{display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.5rem}
.hero-since{
  font-family:"DM Sans",sans-serif; font-size:.74rem; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:.75rem;
}
.hero-since::before{content:""; width:2rem; height:2px; background:var(--gold)}

/* faixa de credenciais logo abaixo do hero */
.creds{background:var(--graphite); border-top:1px solid rgba(255,255,255,.08)}
.creds-in{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:1px; background:rgba(255,255,255,.1);
}
.cred{background:var(--graphite); padding:1.35rem .4rem 1.4rem; display:flex; flex-direction:column; gap:.2rem}
.cred .n{
  font-family:"DM Sans",sans-serif; font-size:1.9rem; font-weight:700; line-height:1;
  color:#fff; letter-spacing:-.03em; font-variant-numeric:tabular-nums;
}
.cred .n span{color:var(--gold)}
.cred .l{font-size:.82rem; line-height:1.4; color:rgba(255,255,255,.62)}

/* ------------------------------------------------------------ seções --- */
.section{padding-block:clamp(3.2rem,7.5vw,6rem)}
.section.tight{padding-block:clamp(2.4rem,5vw,3.6rem)}
.section.alt{background:var(--paper-2)}
.section.dark{background:var(--dark-bg); color:var(--dark-ink)}
.section.dark h1,.section.dark h2,.section.dark h3,.section.dark h4{color:#fff}
.section.dark .prose p{color:var(--dark-ink-soft)}
.section.dark .prose p strong{color:#fff}
.section + .section:not(.alt):not(.dark){border-top:1px solid var(--rule)}

.sec-head{display:flex; flex-direction:column; gap:1rem; margin-bottom:clamp(1.8rem,4vw,2.8rem); max-width:64ch}
.sec-head p.lede{font-size:1.1rem; line-height:1.62; color:var(--ink-soft)}
.section.dark .sec-head p.lede{color:var(--dark-ink-soft)}

.split{display:grid; gap:clamp(1.8rem,4.5vw,3.5rem); grid-template-columns:1fr}
@media (min-width:900px){
  .split{grid-template-columns:1.05fr .95fr; align-items:start}
  .split.media-first > :first-child{order:2}
  .split.wide-left{grid-template-columns:1.3fr .7fr}
}

/* ------------------------------------------------------- cartões svc --- */
.grid{display:grid; gap:1.15rem; grid-template-columns:repeat(auto-fit,minmax(272px,1fr))}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.grid.four{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}

.card{
  background:var(--paper); border:1px solid var(--rule); border-radius:3px;
  padding:1.5rem 1.55rem 1.6rem; display:flex; flex-direction:column; gap:.7rem;
  position:relative; transition:border-color .2s, box-shadow .2s, transform .2s;
}
.section.alt .card{background:var(--paper)}
.card::before{
  content:""; position:absolute; left:-1px; top:-1px; width:3px; height:0;
  background:var(--red); transition:height .24s ease;
}
a.card{text-decoration:none; color:inherit}
a.card:hover{border-color:var(--rule-strong); box-shadow:var(--shadow); transform:translateY(-2px)}
a.card:hover::before{height:calc(100% + 2px)}
.card h3{color:var(--ink)}
.card p{color:var(--ink-soft); font-size:.95rem}
.card .k{
  font-family:"DM Sans",sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold);
}
.card .more{
  margin-top:auto; padding-top:.55rem; font-family:"DM Sans",sans-serif;
  font-size:.83rem; font-weight:700; color:var(--red);
  display:inline-flex; align-items:center; gap:.4rem;
}
.card .more::after{content:"→"; transition:transform .2s}
a.card:hover .more::after{transform:translateX(3px)}

.card-dark{
  background:var(--dark-bg-2); border-color:var(--dark-rule);
}
.card-dark h3,.card-dark h4{color:#fff}
.card-dark p{color:var(--dark-ink-soft)}

/* lista de itens dentro de um serviço */
.taglist{display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.2rem}
.taglist li{
  list-style:none; font-size:.82rem; line-height:1.35; color:var(--ink-soft);
  background:var(--paper-2); border:1px solid var(--rule); border-radius:2px;
  padding:.26rem .6rem;
}
.section.alt .taglist li{background:var(--paper-3)}
.card-dark .taglist li{background:rgba(255,255,255,.05); border-color:var(--dark-rule); color:var(--dark-ink-soft)}

/* checklist */
.checks{display:flex; flex-direction:column; gap:.7rem; list-style:none}
.checks li{display:grid; grid-template-columns:1.15rem 1fr; gap:.75rem; align-items:start; color:var(--ink-soft); font-size:.98rem}
.checks li::before{
  content:""; width:1.15rem; height:1.15rem; margin-top:.28rem; flex:none;
  background:var(--red); border-radius:50%;
  -webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.checks li b{color:var(--ink); font-weight:600}
.section.dark .checks li{color:var(--dark-ink-soft)}
.section.dark .checks li b{color:#fff}

/* lista numerada de etapas */
.steps{list-style:none; counter-reset:st; display:flex; flex-direction:column; gap:1.5rem}
.steps li{counter-increment:st; display:grid; grid-template-columns:2.7rem 1fr; gap:1.1rem; align-items:start}
.steps li::before{
  content:counter(st,decimal-leading-zero);
  font-family:"DM Sans",sans-serif; font-size:.82rem; font-weight:700; letter-spacing:.06em;
  color:var(--gold); border:1px solid var(--rule-strong); border-radius:2px;
  width:2.7rem; height:2.7rem; display:grid; place-items:center;
}
.steps h4{margin-bottom:.3rem}
.steps p{color:var(--ink-soft); font-size:.97rem}
.section.dark .steps li::before{border-color:var(--dark-rule)}
.section.dark .steps p{color:var(--dark-ink-soft)}

/* ------------------------------------------------------------- citação -- */
.quote{
  position:relative; padding:clamp(1.8rem,4vw,2.8rem) 0 0;
  display:flex; flex-direction:column; gap:1.1rem; max-width:56ch;
}
.quote::before{
  content:"\201C"; font-family:"Pinyon Script",cursive; color:var(--gold);
  font-size:clamp(4.5rem,9vw,7rem); line-height:.5; opacity:.85;
  position:absolute; top:.9rem; left:-.1rem; pointer-events:none;
}
.quote blockquote{
  margin:0; padding-top:1.4rem;
  font-family:"DM Sans",sans-serif; font-weight:500;
  font-size:clamp(1.22rem,2.5vw,1.62rem); line-height:1.42; letter-spacing:-.015em;
  color:var(--ink);
}
.section.dark .quote blockquote{color:#fff}
.quote cite{
  font-style:normal; font-family:"DM Sans",sans-serif; font-size:.76rem; font-weight:700;
  letter-spacing:.17em; text-transform:uppercase; color:var(--gold);
}
.quote.centered{margin-inline:auto; text-align:center; align-items:center}
.quote.centered::before{position:static; display:block; margin-bottom:-1.6rem}

/* ------------------------------------------------------------- fotos --- */
.figure{margin:0; display:flex; flex-direction:column; gap:.6rem}
.figure img{
  width:100%; border-radius:3px; background:var(--paper-2);
  border:1px solid var(--rule);
}
.figure figcaption{
  font-size:.82rem; line-height:1.45; color:var(--ink-faint);
  padding-left:.7rem; border-left:2px solid var(--gold);
}
.figure.plain img{border:0}
.photo-strip{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.photo-strip img{border-radius:3px; aspect-ratio:4/3; object-fit:cover; width:100%}

/* --------------------------------------------------------- parceiros --- */
.partners{display:grid; gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:3px; overflow:hidden;
  grid-template-columns:repeat(auto-fit,minmax(258px,1fr))}
.partner{background:var(--paper); padding:1.1rem 1.25rem; display:flex; flex-direction:column; gap:.22rem}
.partner .nm{font-family:"DM Sans",sans-serif; font-weight:700; font-size:.98rem; color:var(--ink); line-height:1.3}
.partner .ct{font-size:.86rem; color:var(--ink-soft)}
.partner .fn{font-size:.86rem; color:var(--ink-faint); font-variant-numeric:tabular-nums}

/* --------------------------------------------------------- contato ----- */
.contact-grid{display:grid; gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:3px; overflow:hidden;
  grid-template-columns:repeat(auto-fit,minmax(268px,1fr))}
.contact-cell{background:var(--paper); padding:1.5rem 1.5rem 1.6rem; display:flex; flex-direction:column; gap:.55rem}
.contact-cell .k{font-family:"DM Sans",sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold)}
.contact-cell .ph{font-family:"DM Sans",sans-serif; font-size:1.3rem; font-weight:700; color:var(--ink); letter-spacing:-.02em; font-variant-numeric:tabular-nums; text-decoration:none; display:block}
.contact-cell .ph:hover{color:var(--red)}
.contact-cell p{font-size:.92rem; color:var(--ink-soft)}

.form{display:flex; flex-direction:column; gap:1.05rem; max-width:36rem}
.field{display:flex; flex-direction:column; gap:.4rem}
.field label{font-family:"DM Sans",sans-serif; font-size:.83rem; font-weight:700; color:var(--ink)}
.field label .req{color:var(--red)}
.field input,.field select,.field textarea{
  font-family:inherit; font-size:.98rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--rule-strong); border-radius:2px;
  padding:.72rem .85rem; width:100%; transition:border-color .16s, box-shadow .16s;
}
.field textarea{min-height:8.5rem; resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(190,0,0,.12);
}
.field .hint{font-size:.82rem; color:var(--ink-faint)}
.form-note{font-size:.85rem; color:var(--ink-faint); line-height:1.55}

/* ------------------------------------------------------------ avisos --- */
.notice{
  border:1px solid var(--rule); border-left:3px solid var(--gold);
  background:var(--paper-2); border-radius:2px;
  padding:1.15rem 1.35rem; display:flex; flex-direction:column; gap:.5rem;
}
.notice h4{color:var(--ink)}
.notice p{font-size:.94rem; color:var(--ink-soft)}
.notice.warn{border-left-color:var(--red)}
.section.dark .notice{background:var(--dark-bg-2); border-color:var(--dark-rule); border-left-color:var(--gold)}
.section.dark .notice p{color:var(--dark-ink-soft)}

/* ---------------------------------------------------------- artigos ---- */
.article-list{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--rule)}
.article-item{
  display:grid; grid-template-columns:1fr; gap:.45rem;
  padding:1.5rem 0; border-bottom:1px solid var(--rule);
  text-decoration:none; color:inherit; transition:padding-left .2s;
}
.article-item:hover{padding-left:.6rem}
.article-item .meta{
  font-family:"DM Sans",sans-serif; font-size:.72rem; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:var(--gold); display:flex; gap:.7rem; flex-wrap:wrap; align-items:center;
}
.article-item .meta time{color:var(--ink-faint); font-weight:500; letter-spacing:.1em}
.article-item h3{transition:color .18s}
.article-item:hover h3{color:var(--red)}
.article-item p{color:var(--ink-soft); font-size:.96rem; max-width:70ch}

.article-body{max-width:70ch; display:flex; flex-direction:column; gap:1.3rem}
.article-body h2{margin-top:1.4rem; font-size:clamp(1.35rem,2.6vw,1.75rem)}
.article-body h3{margin-top:.9rem}
.article-body p{color:var(--ink-soft)}
.article-body p strong{color:var(--ink); font-weight:600}
.article-body ul{padding-left:1.25rem; display:flex; flex-direction:column; gap:.55rem}
.article-body li{color:var(--ink-soft)}
.article-body li strong{color:var(--ink)}
.article-head{display:flex; flex-direction:column; gap:1rem; max-width:70ch}
.article-head .meta{font-family:"DM Sans",sans-serif; font-size:.74rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--gold)}

/* ------------------------------------------------------------- FAQ ----- */
.faq{border-top:1px solid var(--rule); max-width:76ch}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{
  cursor:pointer; list-style:none; padding:1.15rem 2.4rem 1.15rem 0; position:relative;
  font-family:"DM Sans",sans-serif; font-weight:700; font-size:1.03rem; color:var(--ink);
  line-height:1.4;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:""; position:absolute; right:.35rem; top:1.45rem; width:12px; height:12px;
  border-right:2px solid var(--red); border-bottom:2px solid var(--red);
  transform:rotate(45deg); transition:transform .2s;
}
.faq details[open] summary::after{transform:rotate(-135deg); top:1.7rem}
.faq details > div{padding:0 0 1.3rem; color:var(--ink-soft); font-size:.98rem; max-width:70ch; display:flex; flex-direction:column; gap:.8rem}

/* ------------------------------------------------------ breadcrumb ----- */
.crumb{
  font-size:.82rem; color:var(--ink-faint); display:flex; gap:.5rem; flex-wrap:wrap;
  align-items:center; padding-block:1.15rem; border-bottom:1px solid var(--rule);
}
.crumb a{color:var(--ink-soft); text-decoration:none}
.crumb a:hover{color:var(--red)}
.crumb span[aria-hidden]{color:var(--rule-strong)}

/* cabeçalho de página interna */
.pagehead{background:var(--paper-2); border-bottom:1px solid var(--rule)}
.pagehead-in{padding-block:clamp(2.4rem,5.5vw,4rem); display:flex; flex-direction:column; gap:1.05rem; max-width:60ch}
.pagehead p.lede{font-size:clamp(1.02rem,1.6vw,1.16rem); line-height:1.6; color:var(--ink-soft)}

/* ------------------------------------------------------------- CTA ----- */
.cta{background:var(--graphite); color:#fff; position:relative; overflow:hidden}
.cta::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, transparent 55%, rgba(176,131,36,.14) 100%);
  pointer-events:none;
}
.cta-in{
  padding-block:clamp(2.8rem,6vw,4.5rem);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:1.8rem; position:relative;
}
.cta h2{color:#fff; max-width:22ch}
.cta p{color:rgba(255,255,255,.72); max-width:46ch; margin-top:.7rem}
.cta-actions{display:flex; flex-wrap:wrap; gap:.75rem}

/* ------------------------------------------------------------ rodapé --- */
.foot{background:var(--graphite-deep); color:rgba(255,255,255,.72); padding-block:clamp(2.8rem,6vw,4rem) }
.foot-grid{display:grid; gap:2.2rem; grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.foot-brand img{height:38px; width:auto; margin-bottom:1rem}
.foot h5{
  font-family:"DM Sans",sans-serif; font-size:.72rem; font-weight:700; letter-spacing:.17em;
  text-transform:uppercase; color:var(--gold); margin:0 0 .9rem;
}
.foot ul{list-style:none; display:flex; flex-direction:column; gap:.5rem}
.foot a{color:rgba(255,255,255,.72); text-decoration:none; font-size:.92rem}
.foot a:hover{color:#fff}
.foot p{font-size:.9rem; line-height:1.65; color:rgba(255,255,255,.6)}
.foot-bottom{
  margin-top:2.6rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:.8rem 1.6rem; justify-content:space-between;
  font-size:.82rem; color:rgba(255,255,255,.5);
}
.foot-bottom a{font-size:.82rem}

/* ------------------------------------------------------ whatsapp fab --- */
.wa-wrap{position:fixed; right:1.1rem; bottom:1.1rem; z-index:95;
  display:flex; flex-direction:column; align-items:flex-end; gap:.7rem}
.wa-fab{
  width:56px; height:56px; border-radius:50%; background:#25d366; flex:none;
  display:grid; place-items:center; box-shadow:0 6px 20px rgba(0,0,0,.28);
  transition:transform .2s, background-color .2s;
}
.wa-fab:hover{transform:scale(1.06); background:#1eb355}
.wa-fab svg{width:31px; height:31px; fill:#fff}
.wa-fab[aria-expanded="true"]{background:var(--graphite)}

/* menu de regioes */
.wa-menu{
  width:min(19rem, calc(100vw - 2.2rem));
  background:var(--paper); border:1px solid var(--rule); border-radius:4px;
  box-shadow:var(--shadow-lg); overflow:hidden;
  transform-origin:bottom right;
}
.wa-menu[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){
  .wa-menu{animation:wa-in .17s ease-out}
}
@keyframes wa-in{from{opacity:0; transform:translateY(8px) scale(.97)} to{opacity:1; transform:none}}
.wa-menu-t{
  font-family:"DM Sans",sans-serif; font-size:.78rem; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase; color:#fff;
  background:var(--graphite); padding:.85rem 1.1rem; margin:0;
  border-bottom:2px solid var(--gold);
}
.wa-menu ul{list-style:none; display:flex; flex-direction:column}
.wa-menu li + li{border-top:1px solid var(--rule)}
.wa-menu a{
  display:flex; flex-direction:column; gap:.12rem; padding:.72rem 1.1rem;
  text-decoration:none; color:inherit; transition:background-color .15s;
}
.wa-menu a:hover,.wa-menu a:focus-visible{background:var(--paper-2)}
.wa-num{
  font-family:"DM Sans",sans-serif; font-weight:700; font-size:1.02rem;
  color:var(--ink); font-variant-numeric:tabular-nums; letter-spacing:-.01em;
}
.wa-reg{font-size:.82rem; color:var(--ink-soft); line-height:1.3}
.wa-tag{
  align-self:flex-start; margin-top:.3rem;
  font-family:"DM Sans",sans-serif; font-size:.66rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:#fff; background:#1f8a4c;
  padding:.16rem .45rem; border-radius:2px;
}
.wa-menu-s{
  font-size:.76rem; color:var(--ink-faint); line-height:1.4;
  padding:.7rem 1.1rem .85rem; margin:0;
  background:var(--paper-2); border-top:1px solid var(--rule);
}
@media print{ .wa-wrap,.masthead,.skip{display:none} }

/* --------------------------------------------------------- placeholder - */
.slot-note{
  font-family:"DM Sans",sans-serif; font-size:.72rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-faint);
}


/* === Museu Abacus + enquadramento equipe (add 2026-10-13) === */
.mainnav a.nav-museu{color:var(--gold); font-weight:600}
.mainnav a.nav-museu:hover{color:#fff; background:rgba(176,131,36,.18)}
.hero-museu{align-self:flex-start; display:inline-flex; align-items:baseline; flex-wrap:wrap; gap:.4rem .5rem;
  margin-top:.1rem; padding:.5rem .9rem; border-radius:2px;
  border:1px solid rgba(176,131,36,.55); background:rgba(176,131,36,.08);
  font-family:"DM Sans",sans-serif; font-size:.86rem; font-weight:600; line-height:1.2;
  color:#f2f0ed; text-decoration:none; transition:background .16s,border-color .16s,transform .16s}
.hero-museu:hover{background:rgba(176,131,36,.18); border-color:var(--gold); transform:translateY(-1px)}
.hero-museu strong{color:#fff; font-weight:700}
.hero-museu .hm-sub{color:rgba(255,255,255,.6); font-weight:500; font-size:.8rem}
.hero-museu .hm-ar{color:var(--gold); font-weight:700}
/* enquadramento: foto vertical da equipe nao corta os rostos */
.photo-strip img[src*="equipe-01"]{object-position:50% 0%}
