/* Cabeçalho e rodapé oficiais da Home. Compartilhados por todas as páginas. */
.header .container,.footer .container{
      width: min(calc(100% - 48px), var(--container));
      margin-inline: auto;
    }
.header .btn{
      position: relative;
      display: inline-flex;
      min-height: 54px;
      align-items: center;
      justify-content: center;
      gap: 12px;
      overflow: hidden;
      border: 1px solid transparent;
      border-radius: 999px;
      padding: 15px 24px;
      cursor: pointer;
      font-size: .82rem;
      font-weight: 800;
      letter-spacing: .055em;
      line-height: 1;
      text-transform: uppercase;
      transition: transform .3s var(--ease), box-shadow .3s ease, color .3s ease, background-color .3s ease, border-color .3s ease;
    }
.header .btn::before{
      position: absolute;
      inset: 0;
      content: "";
      background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, .38) 48%, transparent 75%);
      transform: translateX(-140%);
      transition: transform .65s var(--ease);
    }
.header .btn:hover::before{
      transform: translateX(140%);
    }
.header .btn:hover{
      transform: translateY(-3px);
    }
.header .btn svg{
      width: 18px;
      height: 18px;
      transition: transform .3s var(--ease);
    }
.header .btn:hover svg{
      transform: translateX(3px);
    }
.header .btn-primary{
      background: var(--gold);
      color: var(--navy);
      box-shadow: 0 13px 30px rgba(218, 159, 23, .28);
    }
.header .btn-primary:hover{
      background: #E6AB20;
      box-shadow: 0 18px 38px rgba(218, 159, 23, .38);
    }
.header .btn-blue{
      background: var(--blue);
      color: var(--white);
      box-shadow: 0 13px 30px rgba(10, 61, 145, .22);
    }
.header .btn-blue:hover{
      background: var(--blue-bright);
    }
.header .btn-ghost{
      border-color: rgba(255, 255, 255, .35);
      background: rgba(255, 255, 255, .06);
      color: var(--white);
      backdrop-filter: blur(14px);
    }
.header .btn-outline{
      border-color: var(--line);
      background: transparent;
      color: var(--text);
    }
@media  (max-width: 980px) {.header .container,.footer .container{
        width: min(calc(100% - 36px), var(--container));
      }}
@media  (max-width: 700px) {.header .container,.footer .container{
        width: min(calc(100% - 28px), var(--container));
      }}
.header{
      position: fixed;
      z-index: 1000;
      top: 0;
      left: 0;
      width: 100%;
      height: var(--header-height);
      border-bottom: 1px solid transparent;
      color: var(--white);
      transition: height .35s var(--ease), background-color .35s ease, border-color .35s ease, box-shadow .35s ease, color .35s ease;
    }
.header.is-scrolled,
.header.menu-active{
      height: 74px;
      border-color: var(--line);
      background: var(--header);
      color: var(--header-text);
      box-shadow: 0 10px 35px rgba(7, 17, 31, .09);
      backdrop-filter: blur(20px) saturate(150%);
    }
.nav-shell{
      display: flex;
      height: 100%;
      align-items: center;
      justify-content: space-between;
      gap: 26px;
    }
.brand{
      position: relative;
      z-index: 2;
      display: inline-flex;
      flex: 0 0 auto;
      align-items: center;
      gap: 12px;
      color: currentColor;
    }
.brand-mark{
      width: 48px;
      height: 48px;
      filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .16));
    }
.brand-copy{
      display: grid;
      line-height: 1;
    }
.brand-copy small{
      margin: 0 0 5px 2px;
      font-size: .58rem;
      font-weight: 600;
      letter-spacing: .34em;
      text-transform: uppercase;
    }
.brand-copy strong{
      font-size: 1.64rem;
      font-weight: 700;
      letter-spacing: -.05em;
    }
.nav{
      display: flex;
      align-items: center;
      gap: clamp(16px, 2vw, 28px);
    }
.nav-link{
      position: relative;
      padding: 9px 0;
      font-size: .75rem;
      font-weight: 700;
      letter-spacing: .075em;
      text-transform: uppercase;
    }
.nav-link::after{
      position: absolute;
      right: 0;
      bottom: 2px;
      left: auto;
      width: 0;
      height: 2px;
      content: "";
      background: var(--gold);
      transition: width .3s var(--ease);
    }
.nav-link:hover::after,
.nav-link.is-active::after{
      right: auto;
      left: 0;
      width: 100%;
    }
.nav-actions{
      display: flex;
      flex: 0 0 auto;
      align-items: center;
      gap: 10px;
    }
.theme-toggle,
.menu-toggle{
      position: relative;
      display: inline-grid;
      width: 44px;
      height: 44px;
      place-items: center;
      border: 1px solid rgba(255, 255, 255, .27);
      border-radius: 50%;
      background: rgba(255, 255, 255, .08);
      color: currentColor;
      cursor: pointer;
      transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
    }
.header.is-scrolled .theme-toggle,
.header.is-scrolled .menu-toggle,
.header.menu-active .theme-toggle,
.header.menu-active .menu-toggle{
      border-color: var(--line);
      background: var(--surface);
    }
.theme-toggle:hover,
.menu-toggle:hover{
      border-color: var(--gold);
      transform: translateY(-2px);
    }
.theme-toggle svg{
      position: absolute;
      width: 19px;
      height: 19px;
      transition: opacity .25s ease, transform .35s var(--ease);
    }
.icon-sun{
      opacity: 0;
      transform: rotate(-60deg) scale(.6);
    }
[data-theme="dark"] .icon-sun{
      opacity: 1;
      transform: rotate(0) scale(1);
    }
[data-theme="dark"] .icon-moon{
      opacity: 0;
      transform: rotate(60deg) scale(.6);
    }
.menu-toggle{
      display: none;
    }
.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after{
      position: absolute;
      width: 18px;
      height: 2px;
      border-radius: 2px;
      background: currentColor;
      transition: transform .3s var(--ease), opacity .2s ease;
    }
.menu-toggle::before,
.menu-toggle::after{
      content: "";
    }
.menu-toggle::before{
      transform: translateY(-6px);
    }
.menu-toggle::after{
      transform: translateY(6px);
    }
.menu-active .menu-toggle span{
      opacity: 0;
    }
.menu-active .menu-toggle::before{
      transform: rotate(45deg);
    }
.menu-active .menu-toggle::after{
      transform: rotate(-45deg);
    }
.nav-cta{
      min-height: 44px;
      padding: 12px 18px;
      font-size: .7rem;
    }
.footer{
      padding: 70px 0 24px;
      border-top: 1px solid rgba(255, 255, 255, .08);
      background: #07111F;
      color: var(--white);
    }
.footer-grid{
      display: grid;
      grid-template-columns: 1.45fr .65fr .8fr 1.1fr;
      gap: 50px;
      padding-bottom: 56px;
    }
.footer-brand .brand{
      margin-bottom: 24px;
    }
.footer-brand p{
      max-width: 390px;
      color: rgba(255, 255, 255, .58);
      font-size: .83rem;
      line-height: 1.8;
    }
.footer-title{
      margin-bottom: 20px;
      font-size: .74rem;
      font-weight: 800;
      letter-spacing: .13em;
      text-transform: uppercase;
    }
.footer-links,
.footer-contact{
      display: grid;
      gap: 11px;
    }
.footer-links a,
.footer-contact{
      color: rgba(255, 255, 255, .58);
      font-size: .78rem;
    }
.footer-links a:hover,
.footer-contact a:hover{
      color: var(--gold-light);
    }
.footer-bottom{
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      border-top: 1px solid rgba(255, 255, 255, .08);
      padding-top: 24px;
      color: rgba(255, 255, 255, .42);
      font-size: .68rem;
    }
@media  (max-width: 1160px) {.nav{
        gap: 14px;
      }
.nav-link{
        font-size: .67rem;
      }
.nav-cta{
        display: none;
      }}
@media  (max-width: 980px) {.menu-toggle{
        display: inline-grid;
      }
.nav{
        position: fixed;
        z-index: 1;
        top: 0;
        right: 0;
        display: flex;
        width: min(420px, 100%);
        height: 100dvh;
        align-items: stretch;
        justify-content: center;
        flex-direction: column;
        gap: 4px;
        border-left: 1px solid var(--line);
        padding: 120px 34px 40px;
        background: var(--surface);
        color: var(--text);
        box-shadow: -30px 0 70px rgba(7, 17, 31, .2);
        transform: translateX(105%);
        transition: transform .45s var(--ease);
      }
.menu-active .nav{
        transform: translateX(0);
      }
.nav-link{
        border-bottom: 1px solid var(--line);
        padding: 15px 0;
        font-size: .84rem;
      }
.nav-link::after{
        display: none;
      }
.footer-grid{
        grid-template-columns: 1.4fr 1fr 1fr;
      }
.footer-brand{
        grid-column: 1 / -1;
      }}
@media  (max-width: 700px) {.header .brand-copy small{
        display: none;
      }
.header .brand-copy strong{
        font-size: 1.28rem;
      }
.header .brand-mark{
        width: 42px;
        height: 42px;
      }
.theme-toggle,
.menu-toggle{
        width: 40px;
        height: 40px;
      }
.footer-grid{
        grid-template-columns: 1fr 1fr;
        gap: 38px 26px;
      }
.footer-brand,
.footer-grid > div:last-child{
        grid-column: 1 / -1;
      }
.footer-bottom{
        align-items: flex-start;
        flex-direction: column;
      }}
.nav-dropdown{position:relative;display:flex;align-items:center}
.nav-submenu-toggle{display:grid;width:25px;height:34px;place-items:center;border:0;padding:0;background:transparent;color:currentColor;cursor:pointer;transition:color .25s ease,transform .25s ease}
.nav-submenu-toggle:hover{color:var(--gold)}
.nav-submenu-toggle svg{width:13px;height:13px;transition:transform .3s var(--ease)}
.nav-dropdown.is-open>.nav-submenu-toggle svg{transform:rotate(180deg)}
.nav-submenu{position:absolute;z-index:950;top:calc(100% + 17px);left:50%;display:grid;gap:6px;border:1px solid rgba(255,255,255,.13);border-radius:6px 22px 6px 22px;padding:14px;background:rgba(7,17,31,.98);color:#fff;box-shadow:0 28px 70px rgba(3,10,20,.32);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,12px);transition:opacity .24s ease,visibility .24s ease,transform .32s var(--ease)}
.nav-submenu::before{position:absolute;top:-17px;left:0;width:100%;height:18px;content:""}
.nav-submenu::after{position:absolute;top:0;left:22px;width:48px;height:2px;content:"";background:linear-gradient(90deg,var(--gold),transparent)}
.nav-submenu--services{width:min(650px,calc(100vw - 42px));grid-template-columns:repeat(2,minmax(0,1fr))}
.nav-submenu--segments{width:min(390px,calc(100vw - 42px));grid-template-columns:1fr}
.nav-submenu-link{display:grid;min-height:50px;grid-template-columns:29px 1fr;align-items:center;gap:10px;border:1px solid transparent;border-radius:4px 13px 4px 13px;padding:9px 11px;font-size:.68rem;font-weight:650;letter-spacing:.015em;line-height:1.35;text-transform:none;transition:background-color .25s ease,border-color .25s ease,transform .25s var(--ease)}
.nav-submenu-link:hover,
.nav-submenu-link:focus-visible{border-color:rgba(218,175,23,.28);background:rgba(255,255,255,.07);transform:translateX(3px);outline:none}
.nav-submenu-index{display:grid;width:29px;height:29px;place-items:center;border:1px solid rgba(218,175,23,.38);border-radius:50%;color:var(--gold-light);font-size:.56rem;font-weight:800;letter-spacing:.04em}
.header.is-scrolled .nav-submenu,
.header.menu-active .nav-submenu{border-color:var(--line);background:var(--surface);color:var(--text);box-shadow:0 28px 70px rgba(7,17,31,.18)}
.header.is-scrolled .nav-submenu-link:hover,
.header.is-scrolled .nav-submenu-link:focus-visible,
.header.menu-active .nav-submenu-link:hover,
.header.menu-active .nav-submenu-link:focus-visible{background:var(--surface-2)}
@media (min-width:981px){.nav-dropdown:hover>.nav-submenu,
.nav-dropdown:focus-within>.nav-submenu,
.nav-dropdown.is-open>.nav-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}}
@media (max-width:980px){.menu-toggle{display:inline-grid!important}
.nav{position:fixed!important;z-index:1!important;top:0!important;right:0!important;display:flex!important;width:min(420px,100%)!important;height:100dvh!important;align-items:stretch!important;justify-content:flex-start!important;flex-direction:column!important;gap:4px!important;border-left:1px solid var(--line)!important;padding:110px 30px 40px!important;overflow-y:auto!important;background:var(--surface)!important;color:var(--text)!important;box-shadow:-30px 0 70px rgba(7,17,31,.2)!important;transform:translateX(105%)!important;transition:transform .45s var(--ease)!important}
.menu-active .nav{transform:translateX(0)!important}
.nav-dropdown{display:grid;grid-template-columns:1fr 44px;border-bottom:1px solid var(--line)}
.nav-dropdown>.nav-link{border:0!important}
.nav-link{border-bottom:1px solid var(--line)!important;padding:15px 0!important;font-size:.84rem!important}
.nav-link::after{display:none!important}
.nav-submenu-toggle{width:44px;height:48px;align-self:center;border-left:1px solid var(--line)}
.nav-submenu{position:relative;top:auto;left:auto;grid-column:1/-1;width:100%;max-height:0;gap:4px;border:0;border-radius:0;padding:0 0 0 12px;overflow:hidden;background:transparent!important;color:inherit;box-shadow:none;opacity:0;visibility:hidden;pointer-events:none;transform:none;transition:max-height .42s var(--ease),opacity .25s ease,padding .3s ease,visibility .25s ease}
.nav-submenu::before,
.nav-submenu::after{display:none}
.nav-submenu--services,
.nav-submenu--segments{grid-template-columns:1fr}
.nav-dropdown.is-open>.nav-submenu{max-height:520px;padding-top:4px;padding-bottom:12px;opacity:1;visibility:visible;pointer-events:auto}
.nav-submenu-link{min-height:44px;border:0;border-radius:4px 11px 4px 11px;padding:7px 9px;font-size:.72rem}
.nav-submenu-link:hover,
.nav-submenu-link:focus-visible{background:var(--surface-2)!important}
.nav-submenu-index{width:27px;height:27px;font-size:.53rem}}
.inner-hero h1,
.hero h1{
      max-width: 650px;
      margin: 0 0 26px;
      font-size: clamp(2.45rem, 5vw, 3rem);
      font-weight: 700;
      letter-spacing: -.058em;
      line-height: .99;
    }
h2{
      margin-bottom: 0;
      font-size: clamp(2.15rem, 4.25vw, 2.7rem);
      font-weight: 700;
      letter-spacing: -.055em;
      line-height: .99;
    }
section:not(.hero):not(.inner-hero) h2{
      margin-bottom: 0 !important;
      font-size: clamp(2.15rem, 4.25vw, 2.7rem) !important;
      font-weight: 700 !important;
      letter-spacing: -.055em !important;
      line-height: .99 !important;
    }
/* Shared layout tokens: one header across every route. */
:root{--header-height:86px;--white:#fff;--blue-bright:#1559c4;--header-text:#0d182a;--header:rgba(255,255,255,.9)}
html[data-theme="dark"]{--header-text:#fff;--header:rgba(9,19,33,.92)}
.header,.footer{--container:1240px;--ease:cubic-bezier(.2,.75,.25,1);font-family:"Montserrat",system-ui,sans-serif;line-height:1.65}
.header{background:transparent}
.header a,.footer a{text-decoration:none;color:inherit}
.header button{font:inherit}
.header .btn{color:var(--navy);font-size:.7rem}
.header .nav-link{white-space:nowrap}
.header .nav-cta{min-height:44px;padding:12px 18px;font-size:.7rem}
.header .brand-copy small{text-transform:uppercase}
.header .brand-copy strong{font-style:normal}
.header .nav-actions{position:relative;z-index:3}
.header .nav-link[aria-current]::after{right:auto;left:0;width:100%}
.header a:focus-visible,.header button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.header .nav-submenu-link:focus-visible{outline-offset:1px}
.header .nav-submenu-toggle{flex-shrink:0}
.header .nav-submenu-link{white-space:normal}
.footer .footer-grid{align-items:start}
.footer .footer-brand .brand{margin-bottom:24px}
.footer .footer-brand p{margin:0}
.footer p.footer-title{margin-top:0}
html{scroll-padding-top:106px}
[hidden]{display:none!important}
img{height:auto}
img[width][height]{max-width:100%}
main,.container,.hero-copy,.inner-hero,.hero-shell{min-width:0}
@media(max-width:1160px){.header .nav-cta{display:none}}
@media(max-width:980px){
 :root{--header-height:76px}
 .header .nav{visibility:hidden;pointer-events:none}
 .header.menu-active .nav{visibility:visible;pointer-events:auto}
 .header .nav-actions{z-index:4}
 .header .nav-link{white-space:normal}
 html{scroll-padding-top:96px}
 .no-js .header{position:relative;height:auto;background:var(--navy);color:#fff}
 .no-js .header .nav-shell{flex-wrap:wrap;padding-block:20px}
 .no-js .header .nav{position:static!important;width:100%!important;height:auto!important;transform:none!important;padding:16px!important;visibility:visible;pointer-events:auto;order:3}
 .no-js .header .nav-submenu{max-height:none;opacity:1;visibility:visible;pointer-events:auto;padding-block:8px}
 .no-js .menu-toggle,.no-js .nav-submenu-toggle{display:none!important}
}
@media(max-width:700px){
 .header .brand-copy small{display:none}
 .header .brand-copy strong{font-size:1.28rem}
 .header .brand-mark{width:42px;height:42px}
 .header .theme-toggle,.header .menu-toggle{width:44px;height:44px;flex-shrink:0}
 .header .nav-shell{gap:12px}
}
/* Banner titles: consistent increase only on phones. */
@media(max-width:600px){
 .hero h1,.hero h2,.inner-hero h1,.editorial-hero h1,.post-hero h1{
   width:100%!important;max-width:100%!important;font-size:clamp(2.2rem,10.7vw,2.85rem)!important;
   line-height:1.08!important;letter-spacing:-.045em!important;overflow-wrap:break-word;text-wrap:pretty;
 }
 .hero h1,.hero h2,.inner-hero h1{margin-bottom:24px!important}
 .inner-hero{height:auto!important;min-height:680px!important}
 .inner-hero .hero-shell{min-height:680px;height:auto!important;padding-top:124px!important;padding-bottom:64px!important}
 .hero .hero-shell{height:auto;min-height:680px;padding-top:124px;padding-bottom:64px}
 .inner-hero .hero-copy,.hero .hero-shell .hero-copy{width:100%;max-width:100%}
 .hero-intro{font-size:1rem!important;line-height:1.7!important}
 .hero-proof{display:none}
 .hero-actions{flex-wrap:wrap;gap:12px}
 .hero-actions .btn{white-space:normal;min-height:48px}
 .hero-eyebrow,.hero .eyebrow{line-height:1.65;letter-spacing:.12em}
 .blog-grid{grid-template-columns:minmax(0,1fr)!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}}
