  :root{
    --bg:#f4f5f8;
    --surface:#ffffff;
    --surface-alt:#eceff5;
    --text:#101826;
    --text-muted:#4c5670;
    --brand:#1d428a;
    --brand-deep:#0c1c40;
    --brand-soft:#e7ecf7;
    --brand-contrast:#ffffff;
    --line:rgba(16,36,90,.14);
    --rule:rgba(16,36,90,.28);
    --shadow: 0 20px 45px -28px rgba(12,28,64,.35);
    --radius: 3px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#0a1220;
      --surface:#101a30;
      --surface-alt:#0d1626;
      --text:#eef1f7;
      --text-muted:#9fadc9;
      --brand:#6d95d6;
      --brand-deep:#0c1c40;
      --brand-soft:#16224a;
      --brand-contrast:#ffffff;
      --line:rgba(255,255,255,.14);
      --rule:rgba(255,255,255,.22);
      --shadow: 0 20px 45px -24px rgba(0,0,0,.6);
    }
  }
  :root[data-theme="dark"]{
    --bg:#0a1220;
    --surface:#101a30;
    --surface-alt:#0d1626;
    --text:#eef1f7;
    --text-muted:#9fadc9;
    --brand:#6d95d6;
    --brand-deep:#0c1c40;
    --brand-soft:#16224a;
    --brand-contrast:#ffffff;
    --line:rgba(255,255,255,.14);
    --rule:rgba(255,255,255,.22);
    --shadow: 0 20px 45px -24px rgba(0,0,0,.6);
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  h1,h2,h3{
    font-family:"Fraunces",Georgia,"Times New Roman",serif;
    font-weight:600;
    line-height:1.12;
    letter-spacing:-.01em;
    text-wrap:balance;
    margin:0;
  }
  .eyebrow{
    font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;
    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--brand);
    font-weight:600;
  }
  .wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
  section{padding:96px 0;}
  @media (max-width:720px){ section{padding:64px 0;} }

  /* ---------- Header ---------- */
  header.site{
    position:sticky; top:0; z-index:50;
    background:color-mix(in srgb, var(--surface) 92%, transparent);
    backdrop-filter:saturate(160%) blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    max-width:1120px; margin:0 auto; padding:0 28px;
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .brand-mark{display:flex; align-items:center; gap:10px;}
  .brand-mark img{height:26px; width:auto;}
  nav.links{display:flex; align-items:center; gap:34px;}
  nav.links a{
    font-size:.94rem; font-weight:500; color:var(--text-muted);
    text-decoration:none; transition:color .15s ease;
  }
  nav.links a:hover{color:var(--brand);}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:13px 24px; border-radius:var(--radius);
    font-weight:600; font-size:.92rem; text-decoration:none;
    border:1px solid transparent; cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
    font-family:"Inter",sans-serif;
  }
  .btn:focus-visible{outline:2px solid var(--brand); outline-offset:2px;}
  .btn-primary{background:var(--brand); color:var(--brand-contrast);}
  .btn-primary:hover{transform:translateY(-1px); box-shadow:var(--shadow);}
  .btn-ghost{background:transparent; border-color:var(--line); color:var(--text);}
  .btn-ghost:hover{border-color:var(--brand); color:var(--brand);}
  .btn-on-brand{background:var(--brand-contrast); color:var(--brand-deep);}
  .btn-on-brand:hover{transform:translateY(-1px); box-shadow:0 20px 45px -20px rgba(0,0,0,.45);}
  .btn-outline-on-brand{background:transparent; border-color:rgba(255,255,255,.4); color:#fff;}
  .btn-outline-on-brand:hover{border-color:#fff; background:rgba(255,255,255,.08);}
  .menu-btn{display:none; background:none; border:1px solid var(--line); border-radius:var(--radius); padding:9px 11px; color:var(--text);}

  @media (max-width:860px){
    nav.links{
      position:fixed; inset:76px 0 auto 0; flex-direction:column; align-items:flex-start;
      background:var(--surface); border-bottom:1px solid var(--line);
      padding:22px 28px 28px; gap:18px; transform:translateY(-8px); opacity:0; pointer-events:none;
      transition:opacity .18s ease, transform .18s ease;
    }
    nav.links.open{transform:translateY(0); opacity:1; pointer-events:auto;}
    nav.links .btn{width:100%;}
    .menu-btn{display:inline-flex;}
  }

  /* ---------- Hero ---------- */
  .hero{
    background:
      radial-gradient(1100px 520px at 82% -10%, rgba(255,255,255,.08), transparent 60%),
      var(--brand-deep);
    color:#fff; position:relative; overflow:hidden;
    padding:88px 0 96px;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:repeating-linear-gradient(rgba(255,255,255,.05) 0 1px, transparent 1px 64px);
    pointer-events:none;
  }
  .hero .wrap{position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
  @media (max-width:900px){ .hero .wrap{grid-template-columns:1fr;} }
  .hero-logo{height:34px; width:auto; margin-bottom:34px; opacity:.96;}
  .hero h1{font-size:clamp(2.1rem,4vw,3.05rem); color:#fff;}
  .hero h1 em{font-style:normal; color:#b9cdf3;}
  .hero p.lead{
    margin-top:20px; max-width:46ch; color:rgba(255,255,255,.78); font-size:1.08rem;
  }
  .hero-cta{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
  .hero-panel{
    border:1px solid rgba(255,255,255,.16); border-radius:4px; padding:26px 28px;
    background:rgba(255,255,255,.045);
  }
  .hero-panel .eyebrow{color:#a9c1ee;}
  .hero-panel ul{list-style:none; margin:16px 0 0; padding:0; display:grid; gap:14px;}
  .hero-panel li{display:flex; gap:12px; align-items:flex-start; color:rgba(255,255,255,.88); font-size:.96rem;}
  .hero-panel svg{flex:none; margin-top:3px;}

  /* ---------- Sobre ---------- */
  .sobre .wrap{display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start;}
  @media (max-width:860px){ .sobre .wrap{grid-template-columns:1fr; gap:32px;} }
  .sobre h2{font-size:clamp(1.7rem,3vw,2.3rem);}
  .sobre .lead{color:var(--text-muted); font-size:1.05rem; margin-top:18px;}
  .badges{display:grid; gap:0; border-top:1px solid var(--line);}
  .badges li{
    list-style:none; display:flex; gap:16px; align-items:flex-start;
    padding:20px 0; border-bottom:1px solid var(--line);
  }
  .badges svg{flex:none; margin-top:2px; color:var(--brand);}
  .badges strong{display:block; font-size:1rem; margin-bottom:3px;}
  .badges span{color:var(--text-muted); font-size:.92rem;}

  /* ---------- Responsável técnico ---------- */
  .equipe{background:var(--surface-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .equipe .wrap{display:grid; grid-template-columns:.62fr 1fr; gap:56px; align-items:start;}
  @media (max-width:860px){ .equipe .wrap{grid-template-columns:1fr; gap:30px;} }
  .equipe-photo{position:relative; border-radius:4px; overflow:hidden; box-shadow:var(--shadow); background:var(--brand-deep); position:sticky; top:96px;}
  @media (max-width:860px){ .equipe-photo{position:static;} }
  .equipe-photo img{width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:3/4; filter:grayscale(.15) contrast(1.03);}
  .equipe-copy h2{font-size:clamp(1.5rem,2.6vw,2rem); margin-top:10px;}
  .equipe-copy .cargo{font-size:.96rem; color:var(--text-muted); margin-top:10px; line-height:1.5;}
  .equipe-copy .crc{font-family:"IBM Plex Mono",monospace; font-size:.78rem; letter-spacing:.04em; color:var(--brand); margin-top:8px;}
  .equipe-copy p.lead{margin-top:18px;}
  .equipe-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:26px;}
  @media (max-width:640px){ .equipe-stats{grid-template-columns:repeat(2,1fr);} }
  .equipe-stats div{background:var(--surface); padding:16px 14px;}
  .equipe-stats strong{display:block; font-family:"Fraunces",serif; font-size:1.4rem; color:var(--brand);}
  .equipe-stats span{display:block; font-size:.78rem; color:var(--text-muted); margin-top:4px; line-height:1.4;}
  .equipe-bio{margin-top:8px;}
  .equipe-bio-full{display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease;}
  .equipe-bio-full.open{grid-template-rows:1fr;}
  .equipe-bio-full > div{overflow:hidden;}
  .equipe-bio-full p{color:var(--text-muted); font-size:.96rem; margin:0 0 16px;}
  .equipe-bio-full p:first-child{margin-top:18px;}
  .equipe-toggle{margin-top:18px; background:none; border:none; padding:0; font:inherit; font-weight:600; font-size:.92rem; color:var(--brand); cursor:pointer; display:inline-flex; align-items:center; gap:6px;}
  .equipe-toggle:hover{text-decoration:underline;}
  .equipe-toggle svg{transition:transform .25s ease;}
  .equipe-toggle[aria-expanded="true"] svg{transform:rotate(180deg);}

  /* ---------- Áreas de atuação ---------- */
  .areas{background:var(--surface-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .areas-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:44px; flex-wrap:wrap;}
  .areas-head h2{font-size:clamp(1.7rem,3vw,2.3rem); max-width:22ch;}
  .areas-head p{color:var(--text-muted); max-width:38ch; margin:10px 0 0;}
  .area-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  @media (max-width:920px){ .area-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .area-grid{grid-template-columns:1fr;} }
  .area-card{background:var(--surface); padding:30px 26px; display:flex; flex-direction:column; gap:14px; min-height:220px;}
  .area-card .ref{font-family:"IBM Plex Mono",monospace; font-size:.74rem; color:var(--text-muted); letter-spacing:.06em;}
  .area-card svg{color:var(--brand);}
  .area-card h3{font-size:1.08rem; font-weight:600;}
  .area-card p{margin:0; color:var(--text-muted); font-size:.9rem; line-height:1.55;}

  /* ---------- Processo ---------- */
  .processo .wrap{display:grid; grid-template-columns:.8fr 1.2fr; gap:56px;}
  @media (max-width:860px){ .processo .wrap{grid-template-columns:1fr; gap:28px;} }
  .steps{display:grid; gap:0;}
  .step{display:grid; grid-template-columns:56px 1fr; gap:20px; padding:26px 0; border-top:1px solid var(--line);}
  .step:last-child{border-bottom:1px solid var(--line);}
  .step .num{font-family:"IBM Plex Mono",monospace; font-size:.85rem; color:var(--brand); font-weight:600; padding-top:2px;}
  .step h3{font-size:1.05rem; margin-bottom:6px;}
  .step p{margin:0; color:var(--text-muted); font-size:.93rem;}

  /* ---------- Orçamento / Contato ---------- */
  .orcamento{background:var(--brand-deep); color:#fff;}
  .orc-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:0; border-radius:6px; overflow:hidden; box-shadow:var(--shadow);}
  @media (max-width:900px){ .orc-grid{grid-template-columns:1fr;} }
  .orc-form{background:var(--surface); color:var(--text); padding:48px;}
  @media (max-width:560px){ .orc-form{padding:30px 24px;} }
  .orc-form h2{font-size:1.7rem;}
  .orc-form > p{color:var(--text-muted); margin-top:10px;}
  .field{display:flex; flex-direction:column; gap:7px; margin-top:20px;}
  .field label{font-size:.85rem; font-weight:600;}
  .field .opt{color:var(--text-muted); font-weight:400;}
  .field input, .field select, .field textarea{
    font:inherit; font-size:.96rem; padding:12px 14px; border-radius:3px;
    border:1px solid var(--line); background:var(--bg); color:var(--text);
    width:100%;
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:2px solid var(--brand); outline-offset:1px; border-color:var(--brand);
  }
  .row2{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  @media (max-width:520px){ .row2{grid-template-columns:1fr;} }
  .orc-form button{width:100%; margin-top:26px; padding:15px; font-size:1rem;}
  .form-note{font-size:.78rem; color:var(--text-muted); margin-top:12px;}
  .form-status{margin-top:16px; font-size:.9rem; display:none;}
  .form-status.show{display:block;}
  .form-status.ok{color:#8fd19e;}
  .form-status.err{color:#e79a9a;}

  .contato-panel{background:transparent; padding:48px 44px; display:flex; flex-direction:column; gap:28px;}
  @media (max-width:560px){ .contato-panel{padding:36px 24px;} }
  .contato-panel h3{font-size:1.25rem; color:#fff;}
  .contato-panel .eyebrow{color:#a9c1ee;}
  .contato-item{display:flex; gap:14px; align-items:flex-start;}
  .contato-item svg{flex:none; margin-top:2px; color:#a9c1ee;}
  .contato-item a, .contato-item span{color:#fff; font-size:.98rem; text-decoration:none;}
  .contato-item small{display:block; color:rgba(255,255,255,.6); font-size:.78rem; margin-top:2px;}
  .divider-brand{height:1px; background:rgba(255,255,255,.16); border:none; margin:2px 0;}

  /* ---------- Footer ---------- */
  footer{background:var(--brand-deep); color:rgba(255,255,255,.7); border-top:1px solid rgba(255,255,255,.12);}
  footer .wrap{padding:40px 28px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
  footer img{height:20px;}
  footer .foot-meta{font-size:.82rem; text-align:right; line-height:1.6;}
  footer .foot-meta a{color:rgba(255,255,255,.7); text-decoration:underline; text-underline-offset:2px;}

  .skip-link{position:absolute; left:-999px; top:auto;}
  .skip-link:focus{left:12px; top:12px; background:#fff; color:#000; padding:8px 14px; z-index:100;}

/* ---------- Blog ---------- */
.blog{background:var(--surface-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.blog-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:44px; flex-wrap:wrap;}
.blog-head h2{font-size:clamp(1.7rem,3vw,2.3rem); max-width:22ch;}
.blog-head p{color:var(--text-muted); max-width:38ch; margin:10px 0 0;}
.blog-head a.btn{flex:none;}
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:920px){ .blog-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .blog-grid{grid-template-columns:1fr;} }
.blog-card{background:var(--surface); padding:28px 26px; display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit; transition:background .15s ease;}
.blog-card:hover{background:var(--surface-alt);}
.blog-card .meta{font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.06em; color:var(--brand); text-transform:uppercase;}
.blog-card h3{font-size:1.08rem; font-weight:600; line-height:1.35;}
.blog-card p{margin:0; color:var(--text-muted); font-size:.9rem; line-height:1.55;}
.blog-card .read{margin-top:auto; font-size:.85rem; font-weight:600; color:var(--brand);}

/* ---------- Blog: post & index pages ---------- */
.blog-breadcrumb{padding:20px 0 0; font-size:.85rem; color:var(--text-muted);}
.blog-breadcrumb a{color:var(--brand); text-decoration:none;}
.blog-breadcrumb a:hover{text-decoration:underline;}
.post-hero{padding:36px 0 44px; border-bottom:1px solid var(--line);}
.post-hero .meta{font-family:"IBM Plex Mono",monospace; font-size:.76rem; letter-spacing:.06em; color:var(--brand); text-transform:uppercase;}
.post-hero h1{font-size:clamp(1.8rem,4vw,2.6rem); margin-top:14px; max-width:22ch;}
.post-hero .byline{margin-top:18px; color:var(--text-muted); font-size:.92rem;}
.post-body{max-width:68ch; margin:0 auto; padding:48px 0;}
.post-body p{color:var(--text); font-size:1.02rem; line-height:1.75; margin:0 0 22px;}
.post-body h2{font-size:1.4rem; margin:40px 0 16px;}
.post-body h3{font-size:1.15rem; margin:30px 0 12px;}
.post-body ul{margin:0 0 22px; padding-left:22px;}
.post-body li{color:var(--text); font-size:1.02rem; line-height:1.7; margin-bottom:8px;}
.post-body strong{color:var(--text);}
.post-cta{background:var(--brand-deep); color:#fff; border-radius:6px; padding:32px; margin-top:12px; text-align:center;}
.post-cta h3{color:#fff; font-size:1.25rem; margin-bottom:10px;}
.post-cta p{color:rgba(255,255,255,.78); margin-bottom:20px;}
.blog-index-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:920px){ .blog-index-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .blog-index-grid{grid-template-columns:1fr;} }
.blog-index-hero{padding:56px 0 20px;}
.blog-index-hero .eyebrow{display:block; margin-bottom:14px;}
.blog-index-hero h1{font-size:clamp(1.9rem,4vw,2.6rem); max-width:20ch;}
.blog-index-hero p.lead{max-width:56ch; margin-top:16px;}
.post-body a{color:var(--brand); text-decoration:underline; text-underline-offset:2px;}
.post-body a:hover{text-decoration:none;}

/* ---------- WhatsApp ---------- */
.foot-whatsapp{
  display:inline-flex; align-items:center; gap:8px;
  color:#fff; text-decoration:none; font-size:.9rem; font-weight:600;
  border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:9px 18px;
  transition:background .15s ease, border-color .15s ease;
}
.foot-whatsapp:hover{background:rgba(37,211,102,.15); border-color:#25D366;}
.foot-whatsapp svg{color:#25D366; flex:none;}

.whatsapp-float{
  position:fixed; right:22px; bottom:22px; z-index:60;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 28px -10px rgba(0,0,0,.45);
  text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease;
}
.whatsapp-float:hover{transform:translateY(-2px) scale(1.05); box-shadow:0 16px 34px -8px rgba(0,0,0,.5);}
.whatsapp-float svg{width:28px; height:28px;}
@media (max-width:560px){
  .whatsapp-float{right:16px; bottom:16px; width:52px; height:52px;}
  .whatsapp-float svg{width:26px; height:26px;}
}
