.site-header {
 position: sticky;
 top: 0;

 z-index: 50;
 border-bottom: 1px solid transparent;
 background: var(--bg);
 transition: border-color 180ms ease, box-shadow 180ms ease;
}
.site-header.is-scrolled {
 border-color: var(--line);
 box-shadow: 0 8px 28px rgb(0 0 0 / 18%);
}
.header-inner {
 min-height: var(--header-height);
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
 align-items: center;
 gap: 20px;
 padding-block: 15px;
}
.brand {
 display: inline-flex;
 flex-direction: column;
 text-decoration: none;
 line-height: 1.15;
}
.brand strong {
 font-size: 1.1rem;
 letter-spacing: -0.03em;
}
.brand small {
 margin-top: 5px;
 color: var(--muted);
 text-transform: uppercase;
 font-size: 0.62rem;
 letter-spacing: 0.2em;
}
.site-nav {
 width: 100%;
 display: flex;
 flex-direction: column;
 align-items: stretch;

 gap: 8px;
}
.site-nav a:not(.button) {
 display: block;
 padding: 12px 4px;
 text-decoration: none;
 font-size: 0.86rem;
}
.site-nav [aria-current="page"] {
 color: var(--accent);
}
.menu-toggle {
 display: none;
 width: 48px;
 height: 48px;
 padding: 12px;
 color: var(--text);
 background: transparent;
 border: 1px solid var(--line);
 border-radius: var(--radius);
}
.menu-toggle span {
 display: block;
 height: 2px;
 background: currentColor;
 margin: 5px 0;
 transition: transform 180ms ease;
}
.menu-toggle[aria-expanded="true"] span:first-child {
 transform: translateY(3.5px) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span:last-child {
 transform: translateY(-3.5px) rotate(-45deg);
}
.reading-progress {
 position: absolute;
 bottom: -1px;
 left: 0;
 height: 2px;

 width: 100%;
 background: var(--accent);
 transform: scaleX(0);
 transform-origin: left;
 pointer-events: none;
}
.button {
 display: inline-flex;
 min-height: 50px;
 align-items: center;
 justify-content: center;
 gap: 16px;
 padding: 14px 20px;
 border: 1px solid var(--accent);
 border-radius: var(--radius);
 background: var(--accent);
 color: var(--bg);
 font-weight: 700;
 font-size: 0.75rem;
 line-height: 1.4;
 letter-spacing: 0.035em;
 text-decoration: none;
 text-align: center;
 transition: background 160ms ease, transform 160ms ease;
}
.button:hover {
 background: var(--accent-hover);
 color: var(--bg);
}
.button:active {
 transform: translateY(2px);
}
.button span[aria-hidden] {
 display: inline-block;
 transition: transform 180ms ease;
}
.button:hover span[aria-hidden] {
 transform: translateX(4px);
}
.button--ghost {

 background: transparent;
 border-color: var(--line);
 color: var(--text);
}
.button--ghost:hover {
 background: var(--surface-2);
 color: var(--text);
}
.button:disabled,
.button[aria-disabled="true"] {
 opacity: 0.65;
 background: var(--surface-2);
 border-color: var(--line);
 color: var(--muted);
 transform: none;
}
.hero {
 padding-block: clamp(60px, 10vw, 128px);
 border-bottom: 1px solid var(--line);
}
.hero-grid {
 display: grid;
 gap: 44px;
 align-items: center;
}
.hero h1 {
 font-size: clamp(2.8rem, 5.5vw, 5.3rem);
}
.hero h1 em {
 font-style: normal;
 color: var(--accent);
}
.hero .lead {
 max-width: 600px;
}
.hero-meta {
 display: flex;
 flex-wrap: wrap;

 gap: 12px 28px;
 margin-top: 38px;
 font-size: 0.73rem;
 color: var(--muted);
 text-transform: uppercase;
 letter-spacing: 0.06em;
}
.hero-meta span::before {
 content: "";
 width: 6px;
 height: 6px;
 display: inline-block;
 background: var(--accent);
 margin-right: 10px;
 vertical-align: middle;
}
.strategy-art {
 position: relative;
 min-height: 420px;
 background: var(--surface);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 padding: 28px;
 overflow: hidden;
}
.strategy-art::before,
.strategy-art::after {
 content: "";
 position: absolute;
 width: 290px;
 height: 290px;
 border: 1px solid var(--line);
 border-radius: 50%;
 top: 88px;
 left: calc(50% - 145px);
}
.strategy-art::after {
 width: 210px;
 height: 210px;
 top: 128px;
 left: calc(50% - 105px);
 border-color: var(--accent);

 opacity: 0.5;
}
.strategy-art__center {
 position: absolute;
 inset: 0;
 display: grid;
 place-content: center;
 text-align: center;
}
.strategy-art__center strong {
 font-size: 5rem;
 letter-spacing: -0.08em;
 line-height: 1;
}
.strategy-art__center span {
 color: var(--accent);
 font-size: 0.7rem;
 letter-spacing: 0.15em;
 margin-top: 12px;
}
.strategy-art__footer {
 position: absolute;
 bottom: 24px;
 inset-inline: 24px;
 display: flex;
 justify-content: space-between;
 gap: 12px;
 font-size: 0.68rem;
 color: var(--muted);
}
.card {
 padding: clamp(24px, 3vw, 34px);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 background: var(--surface);
 min-width: 0;
 transition: transform 200ms ease, border-color 200ms ease;
}
.card:hover,
.card:focus-within {

 border-color: #6f8860;
 transform: translateY(-3px);
}
.card p:last-child {
 margin-bottom: 0;
}
.card p {
 color: var(--muted);
}
.card-number {
 display: block;
 color: var(--accent);
 font-size: 0.78rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 margin-bottom: 36px;
}
.card-link {
 display: inline-flex;
 min-height: 44px;
 align-items: center;
 color: var(--accent);
 font-size: 0.85rem;
}
.comparison {
 padding: clamp(28px, 4vw, 48px);
 border: 1px solid var(--line);
 border-radius: var(--radius);
}
.comparison--positive {
 background: var(--surface-2);
 border-top: 3px solid var(--accent);
}
.clean-list {
 list-style: none;
 padding: 0;
 margin-bottom: 0;
}

.clean-list li {
 padding: 13px 0;
 border-bottom: 1px solid var(--line);
}
.clean-list li:last-child {
 border-bottom: 0;
}
.comparison--positive li::before {
 content: "+";
 color: var(--accent);
 margin-right: 14px;
}
.philosophy {
 max-width: 900px;
}
.philosophy h2 {
 font-size: clamp(2.5rem, 5.5vw, 5rem);
}
.steps {
 list-style: none;
 padding: 0;
 counter-reset: steps;
}
.step {
 position: relative;
 padding: 26px 0 26px 66px;
 border-top: 1px solid var(--line);
 counter-increment: steps;
}
.step::before {
 content: counter(steps, decimal-leading-zero);
 position: absolute;
 top: 26px;
 left: 0;
 color: var(--accent);
 font-size: 1.2rem;
 font-weight: 700;
}

.step h3 {
 margin-bottom: 8px;
}
.step p {
 margin-bottom: 0;
 color: var(--muted);
}
.tags {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 list-style: none;
 padding: 0;
}
.tags li {
 padding: 10px 16px;
 border: 1px solid var(--line);
 border-radius: 100px;
 font-size: 0.88rem;
}
.placeholder {
 display: grid;
 align-content: center;
 justify-items: center;
 min-height: 220px;
 padding: 28px;
 border: 1px dashed #596659;
 background: var(--surface);
 color: var(--muted);
 text-align: center;
}
.placeholder--portrait {
 min-height: 430px;
}
.placeholder small {
 margin-top: 12px;
}
.placeholder-label {
 display: block;

 color: var(--muted);
 font-size: 0.72rem;
 text-transform: uppercase;
 letter-spacing: 0.08em;
 margin-bottom: 16px;
}
.faq {
 max-width: 900px;
}
.faq details {
 border-bottom: 1px solid var(--line);
}
.faq summary {
 position: relative;
 padding: 24px 40px 24px 0;
 cursor: pointer;
 font-weight: 700;
 list-style: none;
}
.faq summary::-webkit-details-marker {
 display: none;
}
.faq summary::after {
 content: "+";
 position: absolute;
 right: 5px;
 color: var(--accent);
 font-size: 1.3rem;
}
.faq details[open] summary::after {
 content: "−";
}
.faq details p {
 max-width: 760px;
 color: var(--muted);
 padding-right: 24px;
}
.cta-band {

 padding: clamp(32px, 6vw, 76px);
 background: var(--accent);
 color: var(--bg);
 border-radius: var(--radius);
}
.cta-band h2 {
 max-width: 830px;
}
.cta-band .button {
 background: var(--bg);
 color: var(--text);
 border-color: var(--bg);
}
.cta-band .button:hover {
 background: #263025;
}
.service {
 display: flex;
 flex-direction: column;
}
.service dl {
 margin: 0 0 24px;
}
.service dt {
 color: var(--text);
 font-weight: 700;
 font-size: 0.85rem;
 margin-top: 16px;
}
.service dd {
 color: var(--muted);
 margin: 5px 0 0;
 font-size: 0.95rem;
}
.service .card-link {
 margin-top: auto;
}

.notice {
 padding: 20px;
 border-left: 3px solid var(--accent);
 background: var(--surface-2);
 color: var(--text);
}
form {
 padding: clamp(24px, 4vw, 40px);
 background: var(--surface);
 border: 1px solid var(--line);
 border-radius: var(--radius);
}
.field {
 margin-bottom: 22px;
}
label {
 display: block;
 margin-bottom: 8px;
 font-weight: 700;
 font-size: 0.9rem;
}
input,
select,
textarea {
 display: block;
 width: 100%;
 min-width: 0;
 min-height: 50px;
 padding: 12px 14px;
 border: 1px solid #607060;
 border-radius: var(--radius);
 background: var(--bg);
 color: var(--text);
}
textarea {
 min-height: 150px;
 resize: vertical;
}
input::placeholder,
textarea::placeholder {

 color: #a1ada1;
 opacity: 1;
}
[aria-invalid="true"] {
 border-color: var(--error);
}
.field-error {
 display: block;
 color: var(--error);
 min-height: 1.25em;
 font-size: 0.8rem;
 margin-top: 5px;
}
.form-status:not(:empty) {
 margin-top: 22px;
 padding: 18px;
 border: 1px solid var(--line);
}
.form-status.is-error {
 color: var(--error);
}
.contact-details {
 font-style: normal;
}
.contact-details > div {
 padding-block: 22px;
 border-bottom: 1px solid var(--line);
}
.contact-details strong {
 display: block;
 margin-bottom: 8px;
}
.site-footer {
 padding-block: 60px 28px;
}
.footer-grid {
 display: grid;

 gap: 36px;
 margin-bottom: 44px;
}
.footer-links {
 display: flex;
 flex-wrap: wrap;
 gap: 12px 24px;
}
.footer-links a {
 display: inline-flex;
 align-items: center;
 min-height: 44px;
 font-size: 0.85rem;
}
.footer-bottom {
 padding-top: 24px;
 border-top: 1px solid var(--line);
 display: flex;
 flex-wrap: wrap;
 gap: 16px 32px;
 justify-content: space-between;
 color: var(--muted);
 font-size: 0.75rem;
}
.pending {
 color: var(--muted);
 font-size: 0.82rem;
}
.reveal--ready {
 opacity: 0;
 transform: translateY(20px);
 transition: opacity 500ms ease, transform 500ms ease;
}
.reveal--ready.is-visible {
 opacity: 1;
 transform: none;
}
@media (max-width: 959px) {
 .nav-enhanced .menu-toggle {

   display: block;
 }
 .nav-enhanced .site-nav {
   display: none;
 }
 .nav-enhanced .site-nav.is-open {
   display: flex;
   max-height: calc(100dvh - 110px);
   overflow-y: auto;
   padding-bottom: 20px;
   animation: menu-in 180ms ease both;
 }
}
@media (min-width: 960px) {
 .header-inner {
   flex-wrap: nowrap;
 }
 .site-nav {
   width: auto;
   flex-direction: row;
   align-items: center;
   gap: 24px;
 }
 .hero-grid {
   grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
   gap: 64px;
 }
 .strategy-art {
   min-height: 510px;
 }
 .strategy-art::before {
   top: 133px;
 }
 .strategy-art::after {
   top: 173px;
 }
 .footer-grid {

   grid-template-columns: 1fr 1fr;
   align-items: start;
 }
}
@keyframes menu-in {
 from {
   opacity: 0;
   transform: translateY(-8px);
 }
 to {
   opacity: 1;
   transform: translateY(0);
 }
}
@media (prefers-reduced-motion: reduce) {
 .reveal--ready {
   opacity: 1;
   transform: none;
 }
 .card:hover,
 .card:focus-within {
   transform: none;
 }
}


/* DB METHOD brand override */
.brand-logo {
  display: block;
  width: 156px;
  height: auto;
  max-height: 52px;
  object-fit: contain;
  object-position: left center;
}
.brand-logo--footer {
  width: 190px;
  max-height: 80px;
}
.strategy-art__center {
  gap: 14px;
}
.strategy-art__logo {
  display: block;
  width: min(300px, 78%);
  height: auto;
  max-height: 145px;
  object-fit: contain;
  margin-inline: auto;
}
.strategy-art__center > span {
  display: block;
}
@media (max-width: 959px) {
  .brand-logo { width: 138px; max-height: 48px; }
  .brand-logo--footer { width: 175px; }
  .strategy-art__logo { width: min(270px, 78%); }
}

/* Foto real do Diego na página Sobre — mantém o espaço do retrato do layout. */
.about-portrait { padding: 0; overflow: hidden; border: 0; background: transparent; display: block; min-height: 430px; }
.about-portrait img { display: block; width: 100%; height: 100%; min-height: 430px; object-fit: cover; object-position: center top; border-radius: inherit; }
