/*
Theme Name: FP Solicitador
Theme URI: https://fpsolicitador.pt
Author: Francisco Pereira — Solicitador
Author URI: https://fpsolicitador.pt
Description: Tema proprio (Block Theme) para fpsolicitador.pt, fiel ao design (navy + azul-aco + papel quente, Cormorant Garamond + Mulish). Leve e otimizado para SEO. Texto em Portugues de Portugal.
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Version: 2.9.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fp-solicitador
*/

/* ============================================================
   Francisco Pereira — Solicitador
   Premium visual system
   ============================================================ */

:root{
  /* Brand */
  --navy:        #00105C;
  --navy-900:    #000a36;
  --navy-800:    #030e4a;
  --navy-700:    #0a1d6f;
  --navy-600:    #16297f;
  --navy-line:   rgba(0,16,92,0.12);

  /* Accent — sober steel blue (no gold) */
  --gold:        #34539c;
  --gold-bright: #b3c2e2;
  --gold-deep:   #2a4585;

  /* Neutrals (warm) */
  --paper:   #fbf9f4;
  --paper-2: #f4efe5;
  --paper-3: #efe9db;
  --ink:     #1b1d26;
  --muted:   #585c69;
  --muted-2: #7c8090;
  --white:   #ffffff;

  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:  "Mulish", system-ui, -apple-system, sans-serif;

  --maxw: 1240px;
  --gutter: clamp(20px, 5vw, 64px);

  --shadow-sm: 0 1px 2px rgba(0,16,92,.05), 0 4px 16px rgba(0,16,92,.05);
  --shadow-md: 0 10px 40px -12px rgba(0,16,92,.18);
  --shadow-lg: 0 30px 70px -28px rgba(0,16,92,.32);

  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }
::selection{ background:var(--gold); color:var(--navy-900); }

/* ---- Layout helpers ---- */
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(48px,6vw,90px); }
.center{ text-align:center; }
.grid{ display:grid; }

/* ---- Type ---- */
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.06; margin:0; color:var(--navy); letter-spacing:-.01em; }
.display{ font-size:clamp(2.6rem,6.4vw,5.1rem); font-weight:600; line-height:1.02; }
.h2{ font-size:clamp(2rem,4.2vw,3.4rem); }
.h3{ font-size:clamp(1.5rem,2.4vw,2.1rem); }
p{ margin:0 0 1.1em; }
.lead{ font-size:clamp(1.12rem,1.7vw,1.35rem); line-height:1.6; color:var(--muted); font-weight:400; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--sans); font-weight:700; font-size:.74rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-deep);
  margin:0 0 1.1rem;
}
.eyebrow::before{
  content:""; width:30px; height:1px; background:var(--gold); display:inline-block;
}
.eyebrow.center{ justify-content:center; }
.eyebrow.light{ color:var(--gold-bright); }
.eyebrow.light::before{ background:var(--gold-bright); opacity:.7; }

.kicker{ color:var(--gold-deep); font-style:italic; }
.serif-accent{ font-style:italic; color:var(--gold-deep); }

/* ornament: small diamond */
.diamond{ width:7px; height:7px; background:var(--gold); transform:rotate(45deg); display:inline-block; }
.rule-gold{ width:64px; height:2px; background:linear-gradient(90deg,var(--gold),transparent); border:0; margin:0; }

/* ============================================================
   Buttons
   ============================================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--sans); font-weight:700; font-size:.86rem; letter-spacing:.04em;
  padding:.95em 1.7em; border-radius:2px; cursor:pointer;
  border:1px solid transparent; transition:all .35s var(--ease); position:relative;
  text-transform:uppercase;
}
.btn .arr{ transition:transform .35s var(--ease); }
.btn:hover .arr{ transform:translateX(4px); }

.btn-gold{ background:var(--gold); color:#fff; box-shadow:0 8px 24px -12px rgba(52,83,156,.6); }
.btn-gold:hover{ background:var(--navy); box-shadow:0 14px 34px -12px rgba(0,16,92,.5); transform:translateY(-2px); }

.btn-navy{ background:var(--navy); color:#fff; }
.btn-navy:hover{ background:var(--navy-700); transform:translateY(-2px); }

.btn-ghost{ background:transparent; color:var(--navy); border-color:var(--navy-line); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold-deep); }

.btn-ghost-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.32); }
.btn-ghost-light:hover{ border-color:var(--gold); color:var(--gold-bright); }

.linkarrow{ display:inline-flex; align-items:center; gap:.55em; font-weight:700; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--navy); border-bottom:1px solid var(--gold); padding-bottom:3px; transition:gap .3s var(--ease), color .3s; }
.linkarrow:hover{ gap:.9em; color:var(--gold-deep); }
.linkarrow.light{ color:#fff; }
.linkarrow.light:hover{ color:var(--gold-bright); }

/* ============================================================
   Header
   ============================================================ */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .4s var(--ease), box-shadow .4s, padding .4s;
  padding-block:18px;
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; }

/* dark header — at top over hero (transparent) */
.site-header.at-top{ background:transparent; }

/* scrolled state — solid navy */
.site-header.scrolled{
  background:rgba(0,10,54,.92);
  backdrop-filter:saturate(160%) blur(12px);
  box-shadow:0 1px 0 rgba(255,255,255,.06), 0 10px 30px -18px rgba(0,0,0,.6);
  padding-block:10px;
}

.brand{ display:flex; align-items:center; gap:14px; }
.brand-logo{ height:66px; width:auto; display:block; transition:height .35s var(--ease); }
.site-header.scrolled .brand-logo{ height:54px; }

.nav{ display:flex; align-items:center; gap:34px; }
.nav-links{ display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.nav-link{ position:relative; font-weight:600; font-size:.92rem; color:rgba(255,255,255,.82); letter-spacing:.01em; padding-block:6px; transition:color .3s; white-space:nowrap; }
.nav-link::after{ content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--gold-bright); transition:width .35s var(--ease); }
.nav-link:hover::after, .nav-link.active::after{ width:100%; }
.nav-link:hover{ color:#fff; }
.nav-link.active{ color:var(--gold-bright); }

.nav-cta{ padding:.7em 1.35em; font-size:.78rem; }

.burger{ display:none; width:46px; height:46px; border:1px solid rgba(255,255,255,.3); background:transparent; cursor:pointer; flex-direction:column; gap:5px; align-items:center; justify-content:center; border-radius:2px; }
.burger span{ width:20px; height:1.6px; background:#fff; transition:.3s; }

/* mobile drawer */
.mobile-nav{
  position:fixed; inset:0; z-index:200; background:var(--navy-900);
  display:flex; flex-direction:column; padding:28px var(--gutter);
  transform:translateY(-100%); transition:transform .5s var(--ease); visibility:hidden;
}
.mobile-nav.open{ transform:translateY(0); visibility:visible; }
.mobile-nav .mn-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:40px; }
.mobile-nav .brand-logo{ height:58px; }
.mobile-nav .mn-close{ width:46px; height:46px; border:1px solid rgba(255,255,255,.25); background:transparent; color:#fff; font-size:1.5rem; cursor:pointer; }
.mobile-nav a.mn-link{ font-family:var(--serif); font-size:2.4rem; color:#fff; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; align-items:center; }
.mobile-nav a.mn-link span{ font-family:var(--sans); font-size:.8rem; color:var(--gold); }
.mobile-nav .mn-contact{ margin-top:auto; color:rgba(255,255,255,.7); font-size:.95rem; }
.mobile-nav .mn-contact a{ color:var(--gold-bright); }

/* ============================================================
   Hero
   ============================================================ */
.hero{
  position:relative; background:var(--navy-900); color:#fff; overflow:hidden;
  padding-top:clamp(150px,20vh,210px); padding-bottom:clamp(80px,11vh,130px);
  isolation:isolate;
}
.hero-bg{ position:absolute; inset:0; z-index:-2; background:
  radial-gradient(120% 90% at 80% -10%, #16297f 0%, var(--navy) 38%, var(--navy-900) 78%);
}
/* fine vertical hairlines */
.hero-lines{ position:absolute; inset:0; z-index:-1; opacity:.5;
  background-image:repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 92px);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 80%,transparent);
          mask-image:linear-gradient(180deg,transparent,#000 30%,#000 80%,transparent);
}
/* huge faint monogram watermark */
.hero-watermark{
  position:absolute; right:-2%; top:50%; transform:translateY(-50%); z-index:-1;
  font-family:var(--serif); font-weight:600; font-size:46vw; line-height:.8;
  color:rgba(52,83,156,.05); letter-spacing:-.04em; pointer-events:none; user-select:none;
}
.hero-glow{ position:absolute; width:680px; height:680px; right:-180px; top:-180px; z-index:-1;
  background:radial-gradient(circle, rgba(52,83,156,.16), transparent 62%); filter:blur(10px); }

.hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(36px,5vw,72px); align-items:center; }
.hero-inner{ max-width:640px; }
.hero-visual{ position:relative; }
.hero-portrait{ position:relative; }
.hero-portrait .ph{ aspect-ratio:4/5; }
.hero-portrait::after{ content:""; position:absolute; inset:18px -18px -18px 18px; border:1px solid rgba(179,194,226,.34); z-index:-1; }
.hero-pcard{ position:absolute; left:-16px; bottom:30px; display:flex; align-items:center; gap:14px; background:rgba(0,10,54,.92); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.12); padding:14px 20px; box-shadow:var(--shadow-lg); }
.hero-pcard .hpc-line{ width:3px; height:38px; background:var(--gold-bright); flex:none; }
.hero-pcard b{ display:block; font-family:var(--serif); font-size:1.22rem; color:#fff; line-height:1.1; }
.hero-pcard small{ font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:rgba(255,255,255,.62); }
.hero h1{ color:#fff; font-size:clamp(2.7rem,7vw,5.4rem); font-weight:600; line-height:1.04; }
.hero h1 .static{ display:block; color:rgba(255,255,255,.92); }

/* rotating word */
.rotator{ display:block; position:relative; color:var(--gold-bright); min-height:2.12em; }
.rotator .word{
  display:block; opacity:0; transform:translateY(.5em);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
  position:absolute; left:0; right:0; top:0; white-space:normal; overflow-wrap:break-word;
  color:var(--gold-bright);
}
.rotator .word.in{ opacity:1; transform:translateY(0); position:relative; }
.rotator .word.out{ opacity:0; transform:translateY(-.5em); }
/* underline flourish under rotator line */
.rotator-line{ display:block; }

.hero-sub{ font-size:clamp(1.1rem,1.7vw,1.35rem); color:rgba(255,255,255,.74); max-width:540px; margin-top:1.6rem; line-height:1.6; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:16px; margin-top:2.4rem; }

/* hero trust strip */
.hero-trust{
  margin-top:clamp(48px,7vw,80px); padding-top:32px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:clamp(28px,5vw,68px); align-items:center;
}
.hero-trust .ht{ display:flex; flex-direction:column; gap:2px; }
.hero-trust .ht b{ font-family:var(--serif); font-size:2rem; color:var(--gold-bright); font-weight:600; line-height:1; }
.hero-trust .ht small{ font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.6); font-weight:700; }
.hero-trust .htdiv{ width:1px; height:40px; background:rgba(255,255,255,.14); }

.scroll-hint{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:1;
  font-size:.66rem; letter-spacing:.26em; text-transform:uppercase; color:rgba(255,255,255,.45);
  display:flex; flex-direction:column; align-items:center; gap:8px; }
.scroll-hint .ln{ width:1px; height:34px; background:linear-gradient(var(--gold),transparent); animation:scrolldash 2.2s ease-in-out infinite; }
@keyframes scrolldash{ 0%{ transform:scaleY(.3); transform-origin:top; opacity:.4 } 50%{ transform:scaleY(1); opacity:1 } 100%{ transform:scaleY(.3); transform-origin:bottom; opacity:.4 } }

/* ============================================================
   Section header block
   ============================================================ */
.sec-head{ max-width:680px; }
.sec-head.center{ margin-inline:auto; }
.sec-head .h2{ margin-bottom:.35em; }
.sec-head p{ color:var(--muted); }

/* ============================================================
   Intro / statement band
   ============================================================ */
.statement{ background:var(--paper); position:relative; }
.statement .quote{ font-family:var(--serif); font-size:clamp(1.7rem,3.4vw,2.9rem); line-height:1.28; color:var(--navy); font-weight:500; max-width:18ch; }
.statement-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(40px,6vw,90px); align-items:center; }
.statement .body p{ color:var(--muted); }
.statement-marks{ display:flex; gap:10px; margin-bottom:24px; }

/* ============================================================
   Services
   ============================================================ */
.services{ background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%); }
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--navy-line); border:1px solid var(--navy-line); margin-top:clamp(36px,5vw,60px); }
.svc-card{
  background:var(--paper); padding:clamp(30px,3.4vw,44px); position:relative;
  transition:background .4s var(--ease), transform .4s var(--ease); overflow:hidden;
}
.svc-card::before{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--gold); transition:width .45s var(--ease); }
.svc-card:hover{ background:#fff; }
.svc-card:hover::before{ width:100%; }
.svc-num{ position:absolute; top:24px; right:28px; font-family:var(--serif); font-size:1rem; color:var(--gold-deep); opacity:.5; }
.svc-ico{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; color:var(--gold-deep); margin-bottom:18px; transition:color .4s, transform .4s var(--ease); }
.svc-card:hover .svc-ico{ color:var(--navy); transform:translateY(-2px); }
.svc-ico svg{ width:100%; height:100%; }
.svc-card h3{ font-size:1.5rem; margin-bottom:.4em; }
.svc-card p{ color:var(--muted); font-size:.97rem; margin-bottom:1.1em; }
.svc-tags{ display:flex; flex-wrap:wrap; gap:7px; }
.svc-tags span{ font-size:.74rem; color:var(--muted-2); background:var(--paper-2); border:1px solid var(--navy-line); padding:3px 10px; border-radius:2px; }
.svc-card:hover .svc-tags span{ border-color:rgba(52,83,156,.4); }

/* ============================================================
   Trust / proof band (navy)
   ============================================================ */
.proof{ background:var(--navy-900); color:#fff; position:relative; overflow:hidden; }
.proof .hero-lines{ opacity:.35; }
.proof-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(24px,3vw,40px); position:relative; }
.stat{ text-align:center; padding:24px 12px; position:relative; }
.stat:not(:last-child)::after{ content:""; position:absolute; right:0; top:18%; height:64%; width:1px; background:rgba(255,255,255,.12); }
.stat .num{ font-family:var(--serif); font-size:clamp(2.8rem,5vw,4rem); font-weight:600; color:var(--gold-bright); line-height:1; letter-spacing:-.02em; }
.stat .num .suffix{ color:var(--gold); font-size:.6em; }
.stat .lbl{ margin-top:12px; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.72); font-weight:700; }
.proof-foot{ text-align:center; margin-top:clamp(40px,5vw,60px); padding-top:30px; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; gap:14px 28px; justify-content:center; align-items:center; }
.osae-badge{ display:inline-flex; align-items:center; gap:14px; border:1px solid rgba(52,83,156,.45); padding:12px 22px; border-radius:2px; background:rgba(52,83,156,.06); }
.osae-badge .seal{ width:38px; height:38px; border:1px solid var(--gold); border-radius:50%; display:grid; place-items:center; color:var(--gold-bright); font-family:var(--serif); font-weight:600; font-size:.9rem; }
.osae-badge .ob-t{ line-height:1.2; }
.osae-badge .ob-t b{ display:block; color:#fff; font-size:.95rem; font-family:var(--serif); }
.osae-badge .ob-t small{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.6); }

/* ============================================================
   About teaser
   ============================================================ */
.about-grid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(40px,6vw,84px); align-items:center; }
.portrait{ position:relative; }
.portrait .ph{ aspect-ratio:4/5; }
.portrait .frame{ position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--gold); z-index:-1; }
.portrait .tag{ position:absolute; left:-14px; bottom:34px; background:var(--navy); color:#fff; padding:18px 26px; box-shadow:var(--shadow-md); }
.portrait .tag b{ font-family:var(--serif); font-size:1.4rem; color:var(--gold-bright); display:block; }
.portrait .tag small{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.7); }
.about-list{ list-style:none; padding:0; margin:1.6rem 0 2rem; display:grid; gap:14px; }
.about-list li{ display:flex; gap:14px; align-items:flex-start; color:var(--muted); }
.about-list .chk{ width:22px; height:22px; flex:none; border:1px solid var(--gold); color:var(--gold-deep); display:grid; place-items:center; font-size:.7rem; margin-top:3px; }

/* ============================================================
   Testimonials
   ============================================================ */
.testi{ background:var(--paper-2); }
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:clamp(36px,5vw,56px); }
.testi-card{ background:#fff; padding:clamp(28px,3vw,40px); border:1px solid var(--navy-line); position:relative; transition:transform .4s var(--ease), box-shadow .4s; }
.testi-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.testi-card .qmark{ font-family:var(--serif); font-size:4rem; line-height:.6; color:var(--gold); opacity:.32; }
.testi-card .stars{ display:flex; gap:3px; color:var(--gold); margin:6px 0 16px; }
.testi-card .stars svg{ width:16px; height:16px; }
.testi-card p{ font-family:var(--serif); font-size:1.22rem; line-height:1.45; color:var(--navy); font-style:italic; }
.testi-card .who{ display:flex; align-items:center; gap:14px; margin-top:22px; padding-top:18px; border-top:1px solid var(--navy-line); }
.testi-card .av{ width:44px; height:44px; border-radius:50%; background:var(--navy); color:var(--gold-bright); display:grid; place-items:center; font-family:var(--serif); font-weight:600; flex:none; }
.testi-card .who b{ display:block; font-family:var(--sans); font-weight:700; font-size:.95rem; color:var(--ink); }
.testi-card .who small{ color:var(--muted-2); font-size:.82rem; }

/* ============================================================
   Publications
   ============================================================ */
.pubs{ background:var(--paper); }
.pubs-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.pub-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:clamp(36px,5vw,56px); }
.pub-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--navy-line); transition:transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.pub-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:rgba(52,83,156,.4); }
.pub-top{ padding:26px 28px 0; }
.pub-cat{ display:inline-flex; align-items:center; gap:8px; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--gold-deep); }
.pub-cat .dot{ width:6px; height:6px; background:var(--gold); transform:rotate(45deg); }
.pub-date{ font-size:.8rem; color:var(--muted-2); margin-top:18px; display:flex; align-items:center; gap:8px; }
.pub-card h3{ font-size:1.32rem; line-height:1.18; margin:10px 28px 0; flex:1; }
.pub-card h3 a{ transition:color .3s; }
.pub-card:hover h3 a{ color:var(--gold-deep); }
.pub-foot{ margin:22px 28px 26px; padding-top:18px; border-top:1px solid var(--navy-line); }

/* ============================================================
   FAQ
   ============================================================ */
.faq{ background:var(--paper-2); }
.faq-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(40px,6vw,80px); align-items:start; }
.faq-list{ border-top:1px solid var(--navy-line); }
.faq-item{ border-bottom:1px solid var(--navy-line); }
.faq-q{ width:100%; text-align:left; background:transparent; border:0; cursor:pointer; padding:26px 48px 26px 0; position:relative; font-family:var(--serif); font-size:clamp(1.2rem,1.9vw,1.5rem); color:var(--navy); font-weight:600; line-height:1.25; transition:color .3s; }
.faq-q:hover{ color:var(--gold-deep); }
.faq-q .ic{ position:absolute; right:4px; top:50%; transform:translateY(-50%); width:26px; height:26px; }
.faq-q .ic::before, .faq-q .ic::after{ content:""; position:absolute; background:var(--gold); transition:transform .35s var(--ease); }
.faq-q .ic::before{ left:0; top:50%; width:100%; height:1.5px; transform:translateY(-50%); }
.faq-q .ic::after{ top:0; left:50%; height:100%; width:1.5px; transform:translateX(-50%); }
.faq-item.open .faq-q .ic::after{ transform:translateX(-50%) scaleY(0); }
.faq-a{ overflow:hidden; max-height:0; transition:max-height .45s var(--ease); }
.faq-a-inner{ padding:0 48px 28px 0; color:var(--muted); font-size:1rem; }
.faq-item.open .faq-q{ color:var(--gold-deep); }
.faq-aside{ background:var(--navy); color:#fff; padding:clamp(32px,4vw,48px); position:relative; overflow:hidden; align-self:stretch; }
.faq-aside h3{ color:#fff; font-size:1.8rem; margin-bottom:.5em; }
.faq-aside p{ color:rgba(255,255,255,.72); }
.faq-aside .mini-mono{ position:absolute; right:-30px; bottom:-50px; font-family:var(--serif); font-size:13rem; color:rgba(52,83,156,.07); line-height:1; }

/* ============================================================
   Contact / CTA
   ============================================================ */
.contact{ background:var(--navy-900); color:#fff; position:relative; overflow:hidden; }
.contact .hero-glow{ left:-200px; top:auto; bottom:-260px; right:auto; }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,80px); align-items:center; position:relative; }
.contact h2{ color:#fff; }
.contact .lead{ color:rgba(255,255,255,.72); }
.contact-cards{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cc{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); padding:24px; display:flex; flex-direction:column; gap:12px; transition:.4s var(--ease); }
.cc:hover{ background:rgba(52,83,156,.08); border-color:rgba(52,83,156,.4); transform:translateY(-3px); }
.cc .ci{ width:40px; height:40px; border:1px solid rgba(52,83,156,.5); display:grid; place-items:center; color:var(--gold-bright); }
.cc .ci svg{ width:20px; height:20px; }
.cc small{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.55); font-weight:700; }
.cc b{ font-size:1.04rem; font-weight:600; color:#fff; word-break:break-word; }
.cc.wa:hover{ border-color:#25d36688; background:rgba(37,211,102,.09); }

/* ============================================================
   Map
   ============================================================ */
.map-wrap{ position:relative; }
.map-wrap iframe{ width:100%; height:100%; min-height:380px; border:0; filter:grayscale(.3) contrast(1.05); display:block; }
.map-card{ position:absolute; left:24px; bottom:24px; background:#fff; padding:22px 26px; max-width:300px; box-shadow:var(--shadow-lg); border-top:3px solid var(--gold); }
.map-card small{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); font-weight:700; }
.map-card b{ display:block; font-family:var(--serif); font-size:1.2rem; color:var(--navy); margin:6px 0; }
.map-card p{ color:var(--muted); font-size:.92rem; margin:0; }

/* ============================================================
   Footer
   ============================================================ */
.footer{ background:var(--navy-900); color:rgba(255,255,255,.7); padding-block:clamp(56px,7vw,84px) 28px; border-top:1px solid rgba(255,255,255,.08); }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:clamp(28px,4vw,56px); }
.footer .brand-text strong{ color:#fff; }
.footer .brand-text span{ color:var(--gold); }
.footer .monogram{ border-color:var(--gold); color:var(--gold-bright); }
.footer .monogram .bar{ color:var(--gold-bright); }
.footer p{ font-size:.95rem; line-height:1.7; }
.footer h4{ color:#fff; font-family:var(--sans); font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:20px; font-weight:800; }
.footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:11px; }
.footer ul a{ font-size:.95rem; color:rgba(255,255,255,.66); transition:color .3s, padding-left .3s; }
.footer ul a:hover{ color:var(--gold-bright); padding-left:5px; }
.footer .fcontact li{ display:flex; gap:12px; align-items:flex-start; font-size:.95rem; }
.footer .fcontact svg{ width:17px; height:17px; color:var(--gold); flex:none; margin-top:3px; }
.socials{ display:flex; gap:10px; margin-top:22px; }
.socials a{ width:40px; height:40px; border:1px solid rgba(255,255,255,.16); display:grid; place-items:center; color:rgba(255,255,255,.7); transition:.3s; }
.socials a:hover{ border-color:var(--gold); color:var(--gold-bright); background:rgba(52,83,156,.08); transform:translateY(-2px); }
.socials svg{ width:17px; height:17px; }
.footer-bottom{ margin-top:clamp(40px,5vw,64px); padding-top:24px; border-top:1px solid rgba(255,255,255,.08); display:flex; flex-wrap:wrap; gap:14px 28px; justify-content:space-between; align-items:center; font-size:.82rem; color:rgba(255,255,255,.45); }
.footer-bottom .fb-links{ display:flex; flex-wrap:wrap; gap:10px 22px; }
.footer-bottom a:hover{ color:var(--gold-bright); }

/* WhatsApp float */
.wa-float{ position:fixed; right:22px; bottom:22px; z-index:90; width:58px; height:58px; border-radius:50%; background:#25d366; display:grid; place-items:center; box-shadow:0 12px 30px -8px rgba(37,211,102,.6); transition:transform .3s var(--ease); }
.wa-float:hover{ transform:scale(1.08) translateY(-2px); }
.wa-float svg{ width:30px; height:30px; color:#fff; }

/* ============================================================
   Image placeholder (striped)
   ============================================================ */
.ph{
  background:
    repeating-linear-gradient(135deg, rgba(0,16,92,.045) 0 10px, transparent 10px 20px),
    var(--paper-3);
  border:1px solid var(--navy-line); display:grid; place-items:center; position:relative; color:var(--muted-2);
}
.ph .ph-label{ font-family:var(--sans); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-2); background:var(--paper); padding:6px 14px; border:1px solid var(--navy-line); }
.ph.dark{ background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 10px, transparent 10px 20px),
    var(--navy-800); border-color:rgba(255,255,255,.1); }
.ph.dark .ph-label{ background:var(--navy-900); color:rgba(255,255,255,.55); border-color:rgba(255,255,255,.12); }

/* ============================================================
   Page hero (interior pages)
   ============================================================ */
.page-hero{ background:var(--navy-900); color:#fff; position:relative; overflow:hidden; padding-top:clamp(150px,18vh,200px); padding-bottom:clamp(56px,8vw,96px); isolation:isolate; }
.page-hero .hero-watermark{ font-size:34vw; }
.breadcrumb{ display:flex; gap:10px; align-items:center; font-size:.8rem; letter-spacing:.08em; color:rgba(255,255,255,.5); margin-bottom:22px; text-transform:uppercase; font-weight:600; }
.breadcrumb a:hover{ color:var(--gold-bright); }
.breadcrumb .sep{ color:var(--gold); }
.page-hero h1{ color:#fff; font-size:clamp(2.6rem,5.5vw,4.4rem); }
.page-hero p{ color:rgba(255,255,255,.72); max-width:620px; margin-top:1.1rem; font-size:clamp(1.05rem,1.6vw,1.25rem); }

/* ============================================================
   Reveal on scroll
   ============================================================ */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s } .reveal.d2{ transition-delay:.16s } .reveal.d3{ transition-delay:.24s } .reveal.d4{ transition-delay:.32s } .reveal.d5{ transition-delay:.4s }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } *{ scroll-behavior:auto; } }

/* ============================================================
   Interior: services full taxonomy
   ============================================================ */
.svc-section{ margin-top:clamp(48px,6vw,80px); }
.svc-section-head{ display:flex; align-items:center; gap:20px; margin-bottom:30px; }
.svc-section-head .si{ width:58px; height:58px; flex:none; border:1px solid var(--navy-line); display:grid; place-items:center; color:var(--gold-deep); background:#fff; }
.svc-section-head .si svg{ width:30px; height:30px; }
.svc-section-head h2{ font-size:clamp(1.7rem,3vw,2.4rem); }
.svc-section-head .scount{ margin-left:auto; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-2); font-weight:700; }
.svc-items{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1px; background:var(--navy-line); border:1px solid var(--navy-line); }
.svc-item{ background:#fff; padding:24px 26px; transition:background .35s; position:relative; }
.svc-item:hover{ background:var(--paper); }
.svc-item h4{ font-family:var(--sans); font-weight:700; font-size:1rem; color:var(--ink); margin-bottom:6px; display:flex; align-items:center; gap:10px; }
.svc-item h4 .d{ width:5px; height:5px; background:var(--gold); transform:rotate(45deg); flex:none; }
.svc-item p{ font-size:.9rem; color:var(--muted); margin:0; }

/* contact form */
.cform{ background:#fff; border:1px solid var(--navy-line); padding:clamp(28px,4vw,48px); box-shadow:var(--shadow-sm); }
.cform .row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ margin-bottom:18px; }
.field label{ display:block; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--muted); margin-bottom:8px; }
.field input, .field textarea, .field select{ width:100%; padding:13px 16px; border:1px solid var(--navy-line); background:var(--paper); font-family:inherit; font-size:1rem; color:var(--ink); border-radius:2px; transition:border-color .3s, box-shadow .3s; }
.field input:focus, .field textarea:focus, .field select:focus{ outline:0; border-color:var(--gold); box-shadow:0 0 0 3px rgba(52,83,156,.15); background:#fff; }
.field textarea{ resize:vertical; min-height:130px; }
.form-note{ font-size:.84rem; color:var(--muted-2); margin-top:6px; }

/* info list (contacts page) */
.info-list{ list-style:none; padding:0; margin:0; display:grid; gap:4px; }
.info-list li{ display:flex; gap:18px; align-items:flex-start; padding:22px 0; border-bottom:1px solid var(--navy-line); }
.info-list li:first-child{ padding-top:0; }
.info-list .ii{ width:48px; height:48px; flex:none; border:1px solid var(--navy-line); display:grid; place-items:center; color:var(--gold-deep); }
.info-list .ii svg{ width:22px; height:22px; }
.info-list small{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-2); font-weight:700; display:block; margin-bottom:3px; }
.info-list b{ font-size:1.1rem; color:var(--navy); font-weight:600; }
.info-list a:hover b{ color:var(--gold-deep); }

/* values grid (about) */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:clamp(36px,5vw,56px); }
.value{ padding:32px; border:1px solid var(--navy-line); background:var(--paper); transition:.4s var(--ease); }
.value:hover{ background:#fff; box-shadow:var(--shadow-md); transform:translateY(-3px); }
.value .vi{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; color:var(--gold-deep); margin-bottom:18px; }
.value .vi svg{ width:48px; height:48px; }
.value h3{ font-size:1.4rem; margin-bottom:.4em; }
.value p{ color:var(--muted); font-size:.96rem; margin:0; }

/* timeline (about) */
.timeline{ position:relative; margin-top:clamp(36px,5vw,56px); padding-left:36px; }
.timeline::before{ content:""; position:absolute; left:7px; top:8px; bottom:8px; width:1px; background:linear-gradient(var(--gold),var(--navy-line)); }
.tl-item{ position:relative; padding-bottom:40px; }
.tl-item::before{ content:""; position:absolute; left:-36px; top:5px; width:15px; height:15px; background:var(--paper); border:2px solid var(--gold); border-radius:50%; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item .yr{ font-family:var(--serif); font-size:1.05rem; color:var(--gold-deep); font-weight:600; }
.tl-item h4{ font-family:var(--serif); font-size:1.35rem; color:var(--navy); margin:4px 0 6px; }
.tl-item p{ color:var(--muted); font-size:.96rem; margin:0; }

/* filter chips (publications) */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.chip{ font-size:.82rem; font-weight:700; letter-spacing:.04em; padding:8px 18px; border:1px solid var(--navy-line); background:#fff; color:var(--muted); cursor:pointer; border-radius:2px; transition:.3s; }
.chip:hover{ border-color:var(--gold); color:var(--gold-deep); }
.chip.active{ background:var(--navy); color:#fff; border-color:var(--navy); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1180px){
  .hero-grid{ gap:clamp(28px,4vw,48px); }
}
@media (max-width:1080px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:40px; }
  .svc-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:1024px){
  .nav-links, .nav-cta{ display:none; }
  .burger{ display:flex; }
  .hero{ padding-top:clamp(130px,16vh,170px); }
  .hero-grid{ grid-template-columns:1fr; gap:44px; }
  .hero-inner{ max-width:720px; }
  .hero-visual{ width:100%; max-width:420px; }
  .hero-portrait::after{ inset:14px -14px -14px 14px; }
}
@media (max-width:900px){
  .statement-grid, .about-grid, .faq-grid, .contact-grid, .testi-grid, .pub-grid, .values{ grid-template-columns:1fr; }
  .testi-grid, .pub-grid, .values{ gap:18px; }
  .proof-grid{ grid-template-columns:repeat(2,1fr); gap:30px 20px; }
  .stat:nth-child(2)::after{ display:none; }
  .portrait{ max-width:440px; margin-inline:auto; }
  .faq-aside{ order:-1; }
  .svc-wide{ grid-template-columns:1fr !important; gap:18px !important; }
  .cta-wide{ grid-template-columns:1fr !important; gap:24px !important; }
  .cta-wide .btn{ justify-self:start; }
}
@media (max-width:680px){
  body{ font-size:16px; }
  .svc-grid{ grid-template-columns:1fr; }
  .contact-cards{ grid-template-columns:1fr; }
  .cform .row{ grid-template-columns:1fr; }
  .proof-grid{ grid-template-columns:1fr 1fr; }
  .map-card{ left:16px; right:16px; bottom:16px; max-width:none; }
  .hero-trust{ gap:22px; }
  .hero-trust .htdiv{ display:none; }
  .hero-visual{ max-width:330px; }
  .hero-pcard{ left:0; padding:12px 16px; }
  .hero-pcard b{ font-size:1.05rem; }
  .footer-grid{ grid-template-columns:1fr; gap:34px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .svc-section-head .scount{ display:none; }
}
@media (max-width:480px){
  :root{ --gutter:18px; }
  .proof-grid{ grid-template-columns:1fr; gap:22px; }
  .stat:not(:last-child)::after{ display:none; }
  .stat{ padding:14px; }
  .hero-cta{ flex-direction:column; align-items:stretch; }
  .hero-cta .btn{ width:100%; }
  .hero h1{ font-size:clamp(2.3rem,9vw,3rem); }
  .display, .h2{ overflow-wrap:break-word; }
}

/* ============================================================
   Ajustes WordPress
   ============================================================ */
.admin-bar .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar .site-header{ top:46px; } }
.skip-link{ position:absolute; left:-9999px; top:0; z-index:100000; padding:.75rem 1.25rem; background:#fff; color:var(--navy); font-weight:700; }
.skip-link:focus{ left:0; }
/* Partilha de publicacoes */
.fp-share{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--navy-line); }
.fp-share__btn{ display:inline-block; padding:.45rem .9rem; border:1px solid var(--navy-line); background:#fff; color:var(--navy); font-size:.9rem; font-weight:600; cursor:pointer; border-radius:2px; }
.fp-share__btn:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }

/* ============================================================
   Listagens dinâmicas (publicações, arquivo, pesquisa)
   Cartões de post no estilo do design (.pub-card)
   ============================================================ */
.fp-card--post{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--navy-line); border-radius:2px; padding:28px!important; height:100%; transition:transform .4s var(--ease,cubic-bezier(.22,1,.36,1)), box-shadow .4s, border-color .4s; }
.fp-card--post:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md,0 30px 60px -30px rgba(0,16,92,.3)); border-color:rgba(52,83,156,.4); }
.fp-chip{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--gold-deep); }
.fp-chip::before{ content:""; width:6px; height:6px; background:var(--gold); transform:rotate(45deg); display:inline-block; }
.fp-card--post .wp-block-post-title{ font-family:var(--serif); font-size:1.32rem; line-height:1.2; }
.fp-card--post .wp-block-post-title a{ color:var(--navy); text-decoration:none; transition:color .3s; }
.fp-card--post .wp-block-post-title a:hover{ color:var(--gold-deep); }
.fp-card--post .wp-block-post-date{ color:var(--muted); font-family:var(--sans); }
.fp-card--post .wp-block-read-more{ color:var(--gold-deep)!important; font-family:var(--sans); font-weight:700; text-decoration:none; letter-spacing:.02em; }
.fp-card--post .wp-block-read-more:hover{ color:var(--navy)!important; }

/* Paginação */
.wp-block-query-pagination .wp-block-query-pagination-numbers .page-numbers,
.wp-block-query-pagination a{ color:var(--navy); font-family:var(--sans); font-weight:600; text-decoration:none; padding:.3em .7em; }
.wp-block-query-pagination .page-numbers.current{ color:var(--gold-deep); }
.wp-block-query-pagination a:hover{ color:var(--gold-deep); }

/* Campo de pesquisa */
.wp-block-search__button{ background:var(--navy); color:#fff; border:none; border-radius:2px; font-family:var(--sans); font-weight:600; padding:.6em 1.2em; }
.wp-block-search__button:hover{ background:var(--gold-deep); }
.wp-block-search__input{ border:1px solid var(--navy-line); border-radius:2px; padding:.6em .9em; }

/* Banda de título das páginas dinâmicas → herói navy do design */
.fp-page-band{ background:var(--navy-900); color:#fff; padding:clamp(150px,18vh,200px) var(--gutter,28px) clamp(48px,7vw,80px)!important; position:relative; overflow:hidden; }
.fp-page-band :is(h1,.wp-block-query-title,.wp-block-post-title){ color:#fff; font-family:var(--serif); font-size:clamp(2.4rem,5vw,4rem); line-height:1.05; }
.fp-page-band :is(.wp-block-post-terms,.wp-block-post-date,.wp-block-term-description,p){ color:rgba(255,255,255,.7); }
.fp-page-band .wp-block-search__input{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.2); color:#fff; }

/* Legibilidade do texto das páginas legais/ferramentas: limita a largura de
   leitura APENAS ao conteúdo do editor (post-content), sem afetar as grelhas
   do design (serviços, prova, testemunhos, etc.). */
.wp-block-post-content{ max-width:820px; margin-inline:auto; }
.wp-block-post-content .alignfull,
.wp-block-post-content .alignwide{ max-width:none; }

/* ============================================================
   Agenda de marcações
   ============================================================ */
.agenda-box{ max-width:760px; margin:clamp(28px,4vw,46px) auto 0; background:#fff; border:1px solid var(--navy-line); box-shadow:var(--shadow-sm); padding:clamp(24px,3.5vw,44px); }
.fp-agenda .row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.fp-slots{ display:flex; flex-wrap:wrap; gap:10px; min-height:46px; align-items:center; }
.fp-slots-msg{ color:var(--muted); font-size:.95rem; }
.fp-slot{ font-family:var(--sans); font-size:.95rem; font-weight:600; color:var(--navy); background:var(--paper); border:1px solid var(--navy-line); padding:10px 16px; border-radius:2px; cursor:pointer; transition:all .2s; }
.fp-slot:hover{ border-color:var(--gold); color:var(--gold-deep); }
.fp-slot.is-active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.fp-consent{ display:flex; gap:10px; align-items:flex-start; font-size:.92rem; color:var(--muted-2); margin:6px 0 18px; line-height:1.5; }
.fp-consent input{ width:18px; height:18px; margin-top:2px; flex:0 0 auto; accent-color:var(--gold); }
.fp-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.fp-agenda-status{ margin-top:14px; font-weight:600; }
.fp-agenda-status.is-ok{ color:var(--gold-deep); }
.fp-agenda-status.is-err{ color:#b23b3b; }
.fp-agenda button[type=submit]{ width:100%; justify-content:center; }
@media (max-width:680px){
  .fp-agenda .row{ grid-template-columns:1fr; }
}

/* ============================================================
   Defesa de layout: cadeias muito longas (URLs, base64, texto
   colado sem espaços) quebram em vez de rebentar a página.
   ============================================================ */
.wp-block-post-content, .wp-block-post-content p, .wp-block-post-content li,
.wp-block-post-content a, .section .wrap p, .section .wrap li{ overflow-wrap:break-word; word-break:break-word; }

/* Artigo: link "voltar às publicações" no herói navy */
.fp-page-band .fp-back{ margin:0 0 14px; }
.fp-page-band .fp-back a{ color:var(--gold-bright); font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; transition:color .3s; }
.fp-page-band .fp-back a:hover{ color:#fff; }

/* Remove a margem de bloco automática do WordPress: acima do conteúdo (faixa
   clara no topo, sob o cabeçalho fixo) e ENTRE as secções (faldas claras nas
   transições). As secções do design já gerem o seu próprio espaçamento. */
#fp-main{ margin-top:0; margin-block-start:0; }
#fp-main > *{ margin-block-start:0; margin-block-end:0; }

/* O indicador "Explorar" sobrepunha-se à faixa de confiança do herói (a foto
   alta empurra a faixa para baixo). É decorativo — escondemo-lo para evitar a
   sobreposição. */
.hero .scroll-hint{ display:none; }

/* ============================================================
   Página de artigo (publicação)
   ============================================================ */
.article-body{ background:#fff; border:1px solid var(--navy-line); border-radius:2px; box-shadow:var(--shadow-sm); padding:clamp(28px,4.5vw,60px); max-width:820px; margin-inline:auto; }
.article-body .wp-block-post-content{ max-width:none; margin:0; }
.article-body .wp-block-post-content > p:first-of-type{ font-size:1.2rem; line-height:1.7; color:var(--ink); }
.article-body .wp-block-post-content h2{ font-size:clamp(1.5rem,2.4vw,2.05rem); margin:1.4em 0 .5em; }
.article-body .wp-block-post-content h3{ margin:1.2em 0 .4em; }
.article-body .wp-block-post-content a{ color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px; }
.article-body .wp-block-post-content a:hover{ color:var(--navy); }
.article-body .fp-share{ margin-top:2rem; }

/* Caixa de autor + CTA */
.post-author{ max-width:820px; margin:24px auto 0; display:flex; gap:22px; align-items:flex-start; background:linear-gradient(180deg,var(--paper),var(--paper-2)); border:1px solid var(--navy-line); border-radius:2px; padding:clamp(22px,3vw,34px); }
.post-author .pa-mono{ flex:0 0 auto; width:60px; height:60px; display:grid; place-items:center; background:var(--navy); color:#fff; font-family:var(--serif); font-weight:600; font-size:1.35rem; letter-spacing:.04em; }
.post-author .pa-eyebrow{ font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 2px; }
.post-author .pa-name{ font-family:var(--serif); font-size:1.4rem; color:var(--navy); margin:0 0 .4em; }
.post-author .pa-text{ color:var(--muted); margin:0 0 1.1em; }
.post-author .pa-actions{ display:flex; gap:12px; flex-wrap:wrap; }
@media (max-width:600px){ .post-author{ flex-direction:column; gap:14px; } }

/* Separador subtil entre secções consecutivas — garante que cada secção é
   percetível mesmo quando dois fundos claros se seguem. Nas bandas navy o
   contraste de cor já separa; a linha (azul-marinho a 8%) é praticamente
   invisível sobre elas. */
#fp-main section + section{ border-top:1px solid rgba(0,16,92,.08); }

/* ============================================================
   Formulários/ferramentas em páginas de conteúdo
   (Simulador IMT, Verificação de Documentos…): dar aspeto às
   caixas e botões nativos que vinham sem estilo do Avada.
   ============================================================ */
.wp-block-post-content label{ display:block; font-weight:600; color:var(--ink); margin:16px 0 6px; }
.wp-block-post-content input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),
.wp-block-post-content select,
.wp-block-post-content textarea{
  display:block; width:100%; max-width:420px; padding:11px 14px; border:1px solid var(--navy-line);
  background:#fff; border-radius:2px; font-family:inherit; font-size:1rem; color:var(--ink); margin:0 0 4px;
}
.wp-block-post-content input:focus, .wp-block-post-content select:focus, .wp-block-post-content textarea:focus{
  outline:0; border-color:var(--gold); box-shadow:0 0 0 3px rgba(52,83,156,.15);
}
.wp-block-post-content button,
.wp-block-post-content input[type=submit],
.wp-block-post-content input[type=button]{
  display:inline-block; background:var(--navy); color:#fff; border:0; border-radius:2px;
  padding:11px 24px; font-family:var(--sans); font-weight:700; font-size:.9rem; letter-spacing:.02em;
  cursor:pointer; margin:10px 10px 0 0; transition:background .3s, transform .3s;
}
.wp-block-post-content button:hover,
.wp-block-post-content input[type=submit]:hover,
.wp-block-post-content input[type=button]:hover{ background:var(--gold-deep); transform:translateY(-1px); }
