:root { --ivory:#f2eee5; --paper:#faf8f2; --ink:#171817; --charcoal:#111312; --gold:#a68749; --gold-light:#c4a96d; --line:#d6cdbd; --muted:#676861; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:Georgia,"Times New Roman",serif; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
button,a { -webkit-tap-highlight-color:transparent; }

.topbar { position:absolute; z-index:10; top:0; left:0; width:100%; display:flex; align-items:center; justify-content:space-between; padding:22px clamp(22px,6vw,84px); color:#f7f3ea; }
.brand img { width:138px; height:auto; filter:invert(83%) sepia(24%) saturate(698%) hue-rotate(357deg) brightness(89%); }
.nav-links { display:flex; align-items:center; gap:28px; font:600 12px/1 Arial,sans-serif; letter-spacing:.09em; text-transform:uppercase; }
.nav-contact { border:1px solid rgba(196,169,109,.65); padding:12px 18px; }

.hero { min-height:100svh; position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,.88fr); align-items:center; gap:clamp(20px,5vw,80px); padding:118px clamp(24px,8vw,128px) 72px; color:#f5f1e8; background:radial-gradient(circle at 78% 44%,rgba(166,135,73,.14),transparent 30%),linear-gradient(135deg,#161817 0%,#0d0f0e 70%); }
.hero::before { content:""; position:absolute; inset:18px; border:1px solid rgba(196,169,109,.28); pointer-events:none; }
.hero-copy { position:relative; z-index:2; max-width:680px; }
.eyebrow,.section-kicker { margin:0 0 24px; color:var(--gold-light); font:700 11px/1.4 Arial,sans-serif; letter-spacing:.2em; text-transform:uppercase; }
.hero h1 { margin:0; font-size:clamp(68px,9.2vw,150px); font-weight:500; line-height:.78; letter-spacing:-.055em; }
.oab { display:flex; align-items:center; gap:14px; margin:32px 0 0; font:700 12px/1 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.oab i { width:38px; height:1px; background:var(--gold); }
.hero-statement { max-width:520px; margin:40px 0 0; font-size:clamp(20px,2vw,28px); font-style:italic; line-height:1.45; color:#ded8cd; }
.hero-actions { display:flex; align-items:center; gap:26px; margin-top:40px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 24px; font:700 12px/1 Arial,sans-serif; letter-spacing:.07em; text-transform:uppercase; transition:.2s ease; }
.button-gold { background:var(--gold); color:#111312; }
.button-gold:hover { background:var(--gold-light); transform:translateY(-2px); }
.text-link { font:700 12px/1 Arial,sans-serif; letter-spacing:.06em; border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:7px; }
.text-link span { color:var(--gold-light); margin-left:8px; }
.portrait-wrap { position:relative; z-index:2; justify-self:end; width:min(42vw,590px); }
.portrait-wrap img { position:relative; display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:50%; border:1px solid var(--gold); filter:saturate(.85) contrast(1.03); }
.portrait-halo { position:absolute; inset:-22px; border:1px solid rgba(196,169,109,.22); border-radius:50%; }
.portrait-wrap p { margin:28px 0 0; text-align:center; color:var(--gold-light); font:700 11px/1.7 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.portrait-wrap p span { color:#aca89f; font-weight:400; }

.section { padding:clamp(80px,10vw,150px) clamp(24px,9vw,150px); }
.section-heading { max-width:1000px; margin-bottom:48px; }
.section-kicker { display:flex; gap:14px; align-items:center; }
.section-kicker span { padding-right:14px; border-right:1px solid currentColor; }
.section-heading h2,.contact h2 { margin:0; max-width:900px; font-size:clamp(42px,6.8vw,88px); font-weight:600; line-height:.98; letter-spacing:-.035em; }
.prose { font-size:clamp(17px,1.55vw,21px); line-height:1.85; color:#343631; }
.prose p { margin:0 0 1.35em; }
.columns { max-width:1120px; column-count:2; column-gap:68px; text-align:justify; }
.columns p:first-child::first-letter { float:left; font-size:4.7em; line-height:.75; margin:.11em .1em 0 0; color:var(--gold); }
.manifesto { margin:68px 0 0 auto; max-width:760px; padding:34px 38px; border-left:4px solid var(--gold); background:var(--charcoal); color:#f3efe6; }
.manifesto p { margin:0 0 14px; color:var(--gold-light); font:700 10px/1 Arial,sans-serif; letter-spacing:.2em; text-transform:uppercase; }
.manifesto strong { font-size:clamp(18px,2vw,25px); line-height:1.55; font-style:italic; font-weight:400; }

.dark-section { background:var(--charcoal); color:#f4f0e7; }
.dark-section .section-heading { margin-bottom:30px; }
.dark-section .intro { text-align:justify; text-align-last:left; text-justify:inter-word; }
.intro { max-width:900px; margin:0 0 58px; font-size:clamp(17px,1.6vw,21px); line-height:1.75; color:#c9c6be; }
.timeline { max-width:1080px; margin-left:auto; }
.timeline-item { position:relative; display:grid; grid-template-columns:170px 1fr; gap:36px; padding:30px 0 36px; border-top:1px solid rgba(196,169,109,.32); }
.timeline-item::before { content:""; position:absolute; top:36px; left:-6px; width:11px; height:11px; background:var(--gold); border-radius:50%; }
.period { margin:3px 0 0; padding-left:20px; color:var(--gold-light); font:700 11px/1.5 Arial,sans-serif; letter-spacing:.08em; }
.timeline-item h3 { margin:0; font-size:clamp(23px,2.5vw,34px); font-weight:500; }
.timeline-item .role { margin:9px 0 16px; color:var(--gold-light); font:700 10px/1 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.timeline-item .timeline-body>p:last-child { max-width:820px; margin:0; color:#b9b7b0; font-size:16px; line-height:1.82; text-align:justify; text-align-last:left; text-justify:inter-word; }
.dark-quote { max-width:880px; margin:56px auto 0; padding:34px; border:1px solid rgba(196,169,109,.5); text-align:center; font-size:clamp(18px,2vw,25px); font-style:italic; line-height:1.5; }
.dark-quote span { display:block; margin-bottom:15px; color:var(--gold-light); font:700 10px/1 Arial,sans-serif; letter-spacing:.2em; text-transform:uppercase; }

.formation { background:var(--paper); }
.formation-intro { display:grid; grid-template-columns:1fr 1fr; gap:60px; max-width:1100px; }
.formation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:48px; }
.formation-card { min-height:300px; padding:30px; border:1px solid var(--line); background:var(--ivory); display:flex; flex-direction:column; }
.formation-card.featured { background:var(--charcoal); color:#f3efe6; border-color:var(--charcoal); }
.formation-card>p { margin:0 0 auto; color:var(--gold); font:700 10px/1.5 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.formation-card h3 { margin:36px 0 18px; font-size:clamp(25px,2.5vw,34px); line-height:1.1; }
.formation-card span { color:var(--muted); font-size:15px; line-height:1.65; }
.formation-card.featured span { color:#bbb8af; }
blockquote { max-width:780px; margin:62px auto 0; text-align:center; font-size:clamp(20px,2.3vw,28px); font-style:italic; line-height:1.45; }

.criminal { background:var(--ivory); }
.criminal-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(42px,7vw,100px); align-items:start; }
.criminal-cards { display:grid; gap:12px; }
.criminal-cards article { position:relative; min-height:185px; padding:28px 30px 26px 74px; background:var(--paper); border:1px solid var(--line); }
.criminal-cards article>span { position:absolute; left:24px; top:32px; color:var(--gold); font:700 10px/1 Arial,sans-serif; }
.criminal-cards h3 { margin:0 0 14px; font-size:28px; }
.criminal-cards p { margin:0; color:var(--muted); font-size:15px; line-height:1.65; }
.wide-quote { margin-top:62px; padding:36px clamp(24px,5vw,70px); background:var(--charcoal); color:#f5f1e8; border-top:3px solid var(--gold); text-align:center; }
.wide-quote p { margin:0 0 13px; font-size:clamp(20px,2.5vw,30px); font-style:italic; }
.wide-quote span { color:#bbb8b0; font-size:14px; line-height:1.6; }

.services { background:var(--paper); }
.services-intro { color:#444640; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.services-grid article { min-height:200px; padding:32px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.services-grid h3 { margin:0 0 26px; color:var(--gold); font:700 12px/1.3 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.services-grid p { margin:0; font-size:17px; line-height:1.55; }
.closing-copy { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; margin-top:58px; }
.closing-copy p { margin:0; color:var(--muted); font-size:16px; line-height:1.75; }
.closing-copy strong { padding-left:34px; border-left:2px solid var(--gold); font-size:clamp(20px,2.2vw,28px); font-style:italic; font-weight:400; line-height:1.45; }

.method { background:var(--ivory); }
.method-layout { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.principles { border-top:1px solid var(--line); }
.principles article { display:grid; grid-template-columns:155px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid var(--line); }
.principles h3 { margin:2px 0 0; color:var(--gold); font:700 11px/1.4 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.principles p { margin:0; font-size:16px; line-height:1.6; }
.commitment { margin:58px auto 0; max-width:1000px; padding:34px 42px; background:var(--charcoal); border:1px solid var(--gold); color:#f4f0e7; text-align:center; }
.commitment span { display:block; margin-bottom:14px; color:var(--gold-light); font:700 10px/1 Arial,sans-serif; letter-spacing:.2em; text-transform:uppercase; }
.commitment p { margin:0; font-size:clamp(19px,2.2vw,27px); font-style:italic; line-height:1.5; }

.contact { background:var(--charcoal); color:#f4f0e7; padding:clamp(80px,10vw,140px) clamp(24px,9vw,150px) 46px; }
.contact-inner { max-width:1120px; margin:auto; }
.contact h2 { max-width:860px; }
.contact-copy { max-width:820px; margin:38px 0 0; color:#c2c0b8; font-size:clamp(17px,1.7vw,21px); line-height:1.75; }
.formation-intro,
.criminal-layout > .prose,
.services-intro,
.closing-copy > p,
.method-layout > .prose,
.contact-copy { text-align:justify; text-justify:inter-word; }
.location { margin:34px 0 0; color:var(--gold-light); font-size:17px; font-style:italic; line-height:1.65; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:42px; }
.button-outline { border:1px solid rgba(255,255,255,.28); color:#f4f0e7; }
.button-outline:hover { border-color:var(--gold); color:var(--gold-light); }
.button span { margin-left:14px; }
.contact-details { margin-top:70px; border-top:1px solid rgba(255,255,255,.14); }
.contact-details p { display:grid; grid-template-columns:180px 1fr; margin:0; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.contact-details span { color:var(--gold-light); font:700 10px/1.5 Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.contact-details a { font-size:17px; }
footer { display:grid; grid-template-columns:150px 1fr 1.5fr; gap:30px; align-items:center; margin-top:70px; padding-top:34px; border-top:1px solid rgba(196,169,109,.3); }
footer img { width:125px; filter:invert(83%) sepia(24%) saturate(698%) hue-rotate(357deg) brightness(89%); }
footer p { margin:0; font-size:17px; line-height:1.55; }
footer p span { color:var(--gold-light); font:700 9px/1 Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
footer small { color:#8f8e89; font-size:11px; line-height:1.6; text-align:right; }
.mobile-cta { display:none; }

/* Sistema tipográfico: títulos alinhados e textos corridos justificados, sem hifenização automática. */
.hero-statement,
.columns,
.intro,
.timeline-item .timeline-body>p:last-child,
.formation-intro,
.formation-card span,
.criminal-layout>.prose,
.criminal-cards p,
.wide-quote span,
.services-grid p,
.closing-copy>p,
.closing-copy>strong,
.method-layout>.prose,
.principles p,
.contact-copy,
.dark-quote,
footer small {
  text-align:justify;
  text-align-last:left;
  text-justify:inter-word;
  -webkit-hyphens:none;
  hyphens:none;
  word-break:normal;
  overflow-wrap:normal;
}
.dark-quote span { text-align:left; }
.hero h1,
.section-heading h2,
.contact h2,
.timeline-item h3,
.formation-card h3,
.criminal-cards h3,
.services-grid h3,
.principles h3 {
  text-align:left;
  text-wrap:balance;
}

@media (max-width:900px) {
  .topbar { padding:17px 20px; }
  .brand img { width:104px; }
  .nav-links a:not(.nav-contact) { display:none; }
  .nav-contact { padding:10px 13px; font-size:10px; }
  .hero { min-height:auto; grid-template-columns:1fr; padding:112px 24px 62px; }
  .hero-copy { display:contents; }
  .eyebrow { order:1; margin-bottom:0; }
  .hero h1 { order:2; font-size:clamp(70px,23vw,105px); line-height:.82; }
  .oab { order:3; margin-top:2px; font-size:10px; }
  .portrait-wrap { order:4; justify-self:center; width:min(78vw,430px); margin-top:26px; }
  .portrait-halo { inset:-10px; }
  .portrait-wrap p { margin-top:18px; }
  .hero-statement { order:5; margin-top:18px; font-size:19px; }
  .hero-actions { order:6; flex-direction:column; gap:20px; margin-top:24px; }
  .hero-actions .button { width:100%; }
  .section { padding:74px 22px; }
  .section-heading { margin-bottom:34px; }
  .section-heading h2,.contact h2 { font-size:clamp(40px,13vw,60px); line-height:1.01; }
  .columns { column-count:1; }
  .prose { font-size:17px; line-height:1.76; }
  .columns,
  .hero-statement,
  .intro,
  .timeline-item .timeline-body>p:last-child,
  .formation-card span,
  .criminal-cards p,
  .wide-quote span,
  .services-grid p,
  .closing-copy>p,
  .closing-copy>strong,
  .method-layout>.prose,
  .principles p,
  .contact-copy,
  .dark-quote,
  footer small {
    text-align:justify;
    text-align-last:left;
    text-justify:inter-word;
    -webkit-hyphens:none;
    hyphens:none;
    word-break:normal;
    overflow-wrap:normal;
  }
  .formation-card span,
  .criminal-cards p,
  .wide-quote span,
  .services-grid p,
  .closing-copy>p,
  .principles p,
  .contact-copy { line-height:1.72; }
  .manifesto { margin-top:40px; padding:28px 24px; }
  .timeline { margin-left:0; }
  .timeline-item { grid-template-columns:1fr; gap:10px; padding-left:20px; }
  .timeline-item::before { left:0; }
  .period { padding-left:0; }
  .timeline-item h3 { font-size:26px; }
  .dark-quote { padding:28px 20px; }
  .formation-intro,.formation-grid,.criminal-layout,.closing-copy,.method-layout { grid-template-columns:1fr; gap:28px; }
  .formation-grid { margin-top:36px; }
  .formation-card { min-height:250px; }
  .criminal-cards article { padding:25px 22px 25px 62px; }
  .services-grid { grid-template-columns:1fr; }
  .services-grid article { min-height:auto; padding:26px; }
  .closing-copy { margin-top:40px; }
  .closing-copy strong { padding:24px 0 0; border-left:0; border-top:2px solid var(--gold); }
  .principles article { grid-template-columns:120px 1fr; }
  .commitment { padding:28px 22px; }
  .contact { padding:76px 22px 92px; }
  .contact-actions { display:grid; }
  .contact-actions .button { width:100%; }
  .contact-details { margin-top:50px; }
  .contact-details p { grid-template-columns:1fr; gap:7px; }
  .contact-details a { overflow-wrap:anywhere; }
  footer { grid-template-columns:1fr; text-align:center; }
  footer img { margin:auto; }
  footer small { text-align:justify; text-align-last:left; }
  .mobile-cta { position:fixed; z-index:20; display:flex; align-items:center; justify-content:space-between; left:12px; right:12px; bottom:12px; min-height:54px; padding:0 20px; background:var(--gold); color:#111312; box-shadow:0 8px 28px rgba(0,0,0,.28); font:700 12px/1 Arial,sans-serif; letter-spacing:.06em; text-transform:uppercase; }
}

@media (max-width:480px) {
  .hero { padding-inline:20px; }
  .hero h1 { font-size:clamp(66px,22vw,92px); }
  .section { padding:66px 20px; }
  .section-heading h2,.contact h2 { font-size:clamp(38px,12vw,52px); }
  .formation-card { padding:26px 24px; }
  .criminal-cards article { padding-right:20px; }
  .contact { padding-inline:20px; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
