/*
Theme Name: Glim Agency
Theme URI: https://www.glimagency.com.br
Author: Glim Agency
Author URI: https://www.glimagency.com.br
Description: Tema WordPress personalizado para o site institucional e blog da Glim Agency, portado a partir do site estático original. Inclui tipos de conteudo personalizados para Servicos e Projetos (portfolio), formulario de contato funcional e templates para blog.
Version: 1.0.5
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: glim-agency
*/

/* =========================================================================
   Este arquivo consolida todo o CSS do site (antes espalhado em varios
   blocos <style> das paginas estaticas) em uma unica folha de estilos do
   tema. A ordem das secoes abaixo foi escolhida para preservar exatamente
   o comportamento visual do site original (inclusive onde uma regra
   posterior sobrescreve uma anterior de proposito, como o padding de
   <section>).
   ========================================================================= */

/* ============ 1. BASE (variaveis, reset, header/nav, hero, secoes gerais, todos os fixes de mobile) ============ */

  :root{
    --orange:#f8511a;
    --orange-dark:#d8430f;
    --ink:#161616;
    --ink-soft:#4a4a4a;
    --paper:#ffffff;
    --paper-soft:#f5f4f2;
    --line:#e4e2de;
    --footer-bg:#161616;
    --footer-text:#d8d8d8;
    --footer-text-soft:#b9b9b9;
    --footer-line:#333333;
    --footer-muted:#8f8f8f;
    --header-bg:rgba(255,255,255,.9);
    --radius:18px;
    --maxw:1180px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --orange:#ff6a35;
      --orange-dark:#ff8a5c;
      --ink:#f2f0ec;
      --ink-soft:#b7b3ac;
      --paper:#141312;
      --paper-soft:#1c1b19;
      --line:#33312d;
      --footer-bg:#0c0b0a;
      --footer-text:#e7e4de;
      --footer-text-soft:#b0aca4;
      --footer-line:#2a2825;
      --footer-muted:#77736c;
      --header-bg:rgba(20,19,18,.85);
    }
  }
  :root[data-theme="dark"]{
    --orange:#ff6a35;
    --orange-dark:#ff8a5c;
    --ink:#f2f0ec;
    --ink-soft:#b7b3ac;
    --paper:#141312;
    --paper-soft:#1c1b19;
    --line:#33312d;
    --footer-bg:#0c0b0a;
    --footer-text:#e7e4de;
    --footer-text-soft:#b0aca4;
    --footer-line:#2a2825;
    --footer-muted:#77736c;
    --header-bg:rgba(20,19,18,.85);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:hidden;}
  body{
    margin:0;
    overflow-x:hidden;
    font-family:"DM Sans",sans-serif;
    color:var(--ink);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
  .eyebrow{
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:12.5px;
    font-weight:700;
    color:var(--orange);
    display:flex;align-items:center;gap:10px;
    margin:0 0 18px;
  }
  .eyebrow::before{content:"";width:26px;height:2px;background:var(--orange);display:inline-block;}
  @media (max-width: 620px){
    .eyebrow{justify-content:center;}
    .eyebrow::before{display:none;}
  }
  h1,h2,h3{font-weight:700;line-height:1.08;margin:0;letter-spacing:-.01em;}
  .accent{color:var(--orange);}
  p{line-height:1.65;color:var(--ink-soft);margin:0;}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    background:var(--orange);color:#fff;
    padding:15px 26px;border-radius:999px;
    font-weight:700;font-size:15px;
    transition:background .2s ease, transform .2s ease;
    white-space:nowrap;
  }
  .btn:hover{background:var(--ink);transform:translateY(-2px);}
  .btn-outline{
    display:inline-flex;align-items:center;gap:10px;
    border:1.5px solid var(--line);color:var(--ink);
    padding:13px 24px;border-radius:999px;font-weight:700;font-size:15px;
  }
  .btn-outline:hover{border-color:var(--ink);}

  /* header */
  header{
    position:fixed;top:16px;left:0;right:0;z-index:50;
    width:calc(100% - 32px);
    max-width:1220px;
    margin:0 auto;
    border-radius:999px;
    border:1px solid var(--line);
    box-shadow:0 16px 40px -18px rgba(0,0,0,.28);
  }
  header::before{
    content:"";position:absolute;inset:0;z-index:-1;
    border-radius:inherit;pointer-events:none;
    background:var(--header-bg);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  header .wrap{
    display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
    height:76px;
    padding:0 14px 0 26px;
    max-width:none;
  }
  .logo{display:flex;align-items:center;justify-self:start;grid-column:1;}
  .logo-lockup{height:34px;width:auto;display:block;}
  .logo-lockup-dark{display:none;}
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .logo-lockup-light{display:none;}
    :root:not([data-theme="light"]) .logo-lockup-dark{display:block;}
  }
  :root[data-theme="dark"] .logo-lockup-light{display:none;}
  :root[data-theme="dark"] .logo-lockup-dark{display:block;}
  .nav-host{grid-column:2;justify-self:center;}
  nav{display:flex;align-items:center;gap:38px;}
  nav a{position:relative;font-size:14.5px;font-weight:600;color:var(--ink-soft);}
  nav a:hover{color:var(--ink);}
  .header-cta{display:flex;align-items:center;gap:14px;justify-self:end;grid-column:3;}
  .header-cta .btn{padding:12px 22px;font-size:14px;}
/* services nav dropdown */
  .nav-dropdown-wrap{position:relative;}
  .nav-dropdown-trigger{
    display:flex;align-items:center;gap:6px;
    font-family:inherit;font-size:14.5px;font-weight:600;color:var(--ink-soft);
    background:none;border:none;cursor:pointer;padding:0;
    transition:color .2s ease;
  }
  .nav-dropdown-trigger .chevron{width:14px;height:14px;transition:transform .25s ease;}
  .nav-dropdown-trigger:hover{color:var(--ink);}
  .nav-dropdown-wrap.is-open .nav-dropdown-trigger{color:var(--ink);}
  .nav-dropdown-wrap.is-open .chevron{transform:rotate(180deg);}
  .nav-dropdown-trigger{position:relative;}
  .nav-dropdown-wrap.active .nav-dropdown-trigger{color:var(--orange);}
  .nav-dropdown-wrap.active .nav-dropdown-trigger::after{content:"";position:absolute;left:0;right:20px;bottom:-10px;height:2px;border-radius:2px;background:var(--orange);}
  .nav-dropdown{
    position:absolute;top:calc(100% + 20px);left:50%;
    transform:translateX(-50%) translateY(-6px);
    width:300px;background:var(--paper);border:1px solid var(--line);border-radius:18px;
    padding:10px;box-shadow:0 24px 48px -18px rgba(0,0,0,.3);
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s ease, transform .2s ease, visibility .2s;
    z-index:60;
  }
  .nav-dropdown-wrap.is-open .nav-dropdown{
    opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
  }
  .nav-dropdown a{
    display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:12px;
    margin-bottom:2px;
  }
  .nav-dropdown a strong{font-size:14px;font-weight:700;color:var(--ink);}
  .nav-dropdown a span{font-size:12.5px;color:var(--ink-soft);}
  .nav-dropdown a:hover{background:var(--paper-soft);}
  .nav-dropdown a.active{background:var(--paper-soft);}
  .nav-dropdown a.active strong{color:var(--orange);}
  .nav-dropdown-all{
    margin-top:4px;margin-bottom:0;border-top:1px solid var(--line);border-radius:0;
    padding-top:14px !important;font-size:13.5px;font-weight:700;color:var(--orange);
  }
  .nav-dropdown-all:hover{background:none;color:var(--orange-dark);}

  .nav-cta-mobile{display:none;}

  /* mobile menu toggle (hamburger) */
  .nav-toggle{
    display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;
    width:40px;height:40px;flex:none;border:none;background:none;padding:0;cursor:pointer;
  }
  .nav-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:var(--ink);transition:transform .3s ease, opacity .3s ease;}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .nav-backdrop{
    position:fixed;inset:0;background:rgba(10,10,10,.45);
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .25s ease, visibility .25s;z-index:56;
  }
  body.nav-open .nav-backdrop{opacity:1;visibility:visible;pointer-events:auto;}
  @media (max-width: 1180px){
    body.nav-open{overflow:hidden;}
  }

  @media (max-width: 1180px){
    .nav-toggle{display:flex;}
    .header-cta .btn{display:none;}
    #mainNav{
      display:flex;flex-direction:column;align-items:stretch;gap:4px;
      position:fixed;top:100px;left:16px;right:16px;
      background:var(--paper);border:1px solid var(--line);border-radius:22px;
      padding:14px;box-shadow:0 24px 48px -18px rgba(0,0,0,.35);
      max-height:calc(100vh - 130px);overflow-y:auto;
      opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);
      transition:opacity .25s ease, transform .25s ease, visibility .25s;
      z-index:65;
    }
    body.nav-open #mainNav{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);}
    #mainNav > a{padding:13px 12px;border-radius:12px;}
    #mainNav > a:hover, #mainNav > a.active{background:var(--paper-soft);}
    #mainNav > a.active::after{display:none;}
    .nav-cta-mobile{
      display:flex;align-items:center;justify-content:center;
      background:var(--orange);color:#fff;font-weight:700;font-size:14.5px;
      border-radius:14px;padding:13px 12px;margin-bottom:6px;
    }
    .nav-cta-mobile:hover{color:#fff;background:var(--orange-dark);}
    .nav-dropdown-wrap{width:100%;}
    .nav-dropdown-trigger{width:100%;justify-content:space-between;padding:13px 12px;}
    .nav-dropdown-wrap.active .nav-dropdown-trigger::after{display:none;}
    .nav-dropdown{
      position:static;width:100%;transform:none;box-shadow:none;border:none;
      background:var(--paper-soft);margin-top:2px;border-radius:14px;
      opacity:1;visibility:visible;pointer-events:none;
      max-height:0;overflow:hidden;padding:0;
      transition:max-height .3s ease;
    }
    .nav-dropdown-wrap.is-open .nav-dropdown{pointer-events:auto;max-height:600px;padding:8px;transform:none;}
    .nav-dropdown a{padding:10px 12px;}
  }

  /* hero */
  .hero{
    position:relative;overflow:hidden;
    background:#0a0a0a;color:#f5f4f2;
    padding:150px 0 120px;
  }
  .hero-bg{position:absolute;inset:0;}
  .hero-bg canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}
  .hero-bg .hv-frame{
    position:absolute;inset:18px;border:1px solid rgba(255,255,255,.1);
    border-radius:26px;pointer-events:none;
  }
  .hero-bg .hv-corner{
    position:absolute;width:18px;height:18px;
    border:1.5px solid rgba(248,81,26,.9);pointer-events:none;
  }
  .hv-corner.tl{top:18px;left:18px;border-right:none;border-bottom:none;}
  .hv-corner.tr{top:18px;right:18px;border-left:none;border-bottom:none;}
  .hv-corner.bl{bottom:18px;left:18px;border-right:none;border-top:none;}
  .hv-corner.br{bottom:18px;right:18px;border-left:none;border-top:none;}

  .hero-content{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;}
  .hero-content .eyebrow{color:#f8511a;justify-content:center;}
  .hero-content .eyebrow::before{background:#f8511a;}
  .hero-content h1{font-size:clamp(40px,5.6vw,72px);color:#fff;text-wrap:balance;max-width:900px;}
  .hero-content h1 .accent{color:#f8511a;}
  .hero-content p.lead{font-size:18px;margin-top:26px;max-width:560px;color:rgba(245,244,242,.68);}
  .hero-content .cta-row{display:flex;gap:16px;margin-top:38px;align-items:center;justify-content:center;flex-wrap:wrap;}
  .hero-content .btn-outline{border-color:rgba(255,255,255,.32);color:#fff;}
  .hero-content .btn-outline:hover{border-color:#fff;}
  .hero-stats{display:flex;gap:40px;margin-top:60px;flex-wrap:wrap;justify-content:center;}
  .hero-stats div b{display:block;font-size:30px;font-weight:800;color:#fff;}
  .hero-stats div span{font-size:13px;color:rgba(245,244,242,.55);}

  /* vignette to keep the network from fighting the copy */
  .hero-scrim{
    position:absolute;inset:0;z-index:1;pointer-events:none;
    background:radial-gradient(60% 55% at 50% 40%, rgba(10,10,10,.72) 0%, rgba(10,10,10,.32) 45%, rgba(10,10,10,0) 75%);
  }

  /* section shell */
  section{padding:100px 0;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px;flex-wrap:wrap;}
  .section-head h2{font-size:clamp(28px,3.4vw,42px);max-width:640px;}
  .section-head p{max-width:380px;}
  .section-head p.nowrap{max-width:none;white-space:nowrap;}
  .soft{background:var(--paper-soft);}

  /* about */
  .about-center{max-width:760px;margin:0 auto;text-align:center;}
  .about-center .eyebrow{justify-content:center;}
  .about-center h2{text-wrap:balance;}
  .about-center p.lead-body{margin-top:22px;color:var(--ink-soft);line-height:1.7;}
  .about-center p.lead-body + p.lead-body{margin-top:14px;}
  .pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:48px;max-width:1160px;margin-left:auto;margin-right:auto;text-align:left;}
  .pillar{
    position:relative;overflow:hidden;
    border:1px solid var(--line);border-radius:var(--radius);padding:30px 24px 26px;
    transition:transform .4s cubic-bezier(.2,.7,.3,1), border-color .4s ease, box-shadow .4s ease;
  }
  .pillar:hover{transform:translateY(-8px);border-color:var(--orange);box-shadow:0 20px 40px -26px rgba(248,81,26,.38);}
  /* accent bar that draws in from the top */
  .pillar::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:3px;z-index:1;
    background:linear-gradient(180deg, var(--orange), #ffb27a);
    transform:scaleY(0);transform-origin:top;
    transition:transform .5s cubic-bezier(.2,.7,.3,1);
  }
  .pillar:hover::before{transform:scaleY(1);}
  .pillar-num{
    position:absolute;top:28px;right:22px;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:12px;font-weight:600;color:var(--ink-soft);opacity:.5;
    transition:opacity .35s ease, color .35s ease;
  }
  .pillar:hover .pillar-num{opacity:.9;color:var(--orange);}
  .pillar-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:48px;height:48px;border-radius:14px;
    background:linear-gradient(135deg, rgba(248,81,26,.16), rgba(248,81,26,.04));
    color:var(--orange);margin-bottom:22px;
    transition:transform .45s cubic-bezier(.3,1.6,.4,1), background .4s ease, color .4s ease;
  }
  .pillar-icon svg{width:22px;height:22px;}
  .pillar:hover .pillar-icon{transform:rotate(-8deg) scale(1.08);background:var(--orange);color:#fff;}
  .pillar b{display:block;font-size:16px;margin-bottom:8px;}
  .pillar span{font-size:13.5px;color:var(--ink-soft);line-height:1.6;}

  /* scroll reveal */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);}
  .reveal.is-visible{opacity:1;transform:none;}
  .reveal.d1{transition-delay:.05s;}
  .reveal.d2{transition-delay:.12s;}
  .reveal.d3{transition-delay:.19s;}
  .reveal.d4{transition-delay:.26s;}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    .process-card::after{animation:none;}
  }

  /* services */
  .service-list{border-top:1px solid var(--line);}
  a.service-row{
    display:grid;grid-template-columns:70px 1fr 220px 24px;align-items:center;gap:28px;
    padding:30px 0;border-bottom:1px solid var(--line);
    transition:padding-left .25s ease, background .25s ease;
    cursor:pointer;
  }
  .service-row:hover{padding-left:14px;background:var(--paper-soft);}
  .service-row .num{font-size:14px;color:var(--orange);font-weight:700;}
  .service-row h3{font-size:23px;font-weight:700;}
  .service-row .desc{font-size:14.5px;color:var(--ink-soft);}
  .service-row .arrow{font-size:22px;color:var(--ink-soft);transition:transform .25s ease, color .25s ease;}
  .service-row:hover .arrow{transform:rotate(45deg);color:var(--orange);}

  /* process */
  .process-track{position:relative;height:16px;margin:0 0 34px;}
  .track-line{
    position:absolute;top:50%;left:0;right:0;height:2px;
    background:var(--line);transform:translateY(-50%);border-radius:2px;overflow:hidden;
  }
  .track-fill{
    position:absolute;inset:0;width:0;background:var(--orange);
    transition:width 1.3s cubic-bezier(.2,.7,.2,1) .15s;
  }
  .process-track.is-visible .track-fill{width:100%;}
  .track-dot{
    position:absolute;top:50%;width:12px;height:12px;border-radius:50%;
    background:var(--paper-soft);border:2px solid var(--line);
    transform:translate(-50%,-50%) scale(.7);
    transition:border-color .4s ease, background .4s ease, transform .4s ease;
  }
  .process-track.is-visible .track-dot{
    border-color:var(--orange);background:var(--orange);transform:translate(-50%,-50%) scale(1);
  }
  .track-dot.d1{transition-delay:.1s;}
  .track-dot.d2{transition-delay:.4s;}
  .track-dot.d3{transition-delay:.7s;}
  .track-dot.d4{transition-delay:1s;}

  .process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:8px;}
  .process-card{
    border:1px solid var(--line);border-radius:var(--radius);padding:32px 24px 26px;position:relative;
    transition:transform .4s cubic-bezier(.2,.7,.3,1), border-color .4s ease, box-shadow .4s ease;
  }
  /* zigzag rhythm: even cards sit lower, echoing their position on the track above */
  .process-card:nth-child(even){margin-top:28px;}
  .process-card:hover{transform:translateY(-8px);border-color:var(--orange);box-shadow:0 20px 40px -24px rgba(248,81,26,.35);}
  .process-card .step{
    position:relative;z-index:1;
    display:inline-flex;align-items:center;justify-content:center;
    width:52px;height:52px;border-radius:50%;
    border:1.5px solid var(--line);background:var(--paper);
    color:var(--orange);margin-bottom:20px;
    transition:border-color .4s ease, background .4s ease, color .4s ease, transform .45s cubic-bezier(.3,1.6,.4,1);
  }
  .process-card .step svg{width:22px;height:22px;}
  .process-card:hover .step{border-color:var(--orange);background:var(--orange);color:#fff;transform:scale(1.1) rotate(8deg);}
  /* pulsing ring that radiates from the badge on hover */
  .process-card::after{
    content:"";position:absolute;top:32px;left:24px;width:52px;height:52px;border-radius:50%;
    border:1.5px solid var(--orange);opacity:0;pointer-events:none;
  }
  .process-card:hover::after{animation:ringPulse .9s ease-out;}
  @keyframes ringPulse{
    0%{opacity:.55;transform:scale(1);}
    100%{opacity:0;transform:scale(1.65);}
  }
  .process-card h3{font-size:18px;margin-bottom:10px;}
  .process-card p{font-size:14px;}

  /* portfolio showcase */
  .showcase{position:relative;}
  .showcase-stage{
    position:relative;height:480px;border-radius:28px;overflow:hidden;
    border:1px solid var(--line);background:var(--paper-soft);
  }
  .showcase-slide{
    position:absolute;inset:0;display:flex;
    opacity:0;transform:translateX(28px);pointer-events:none;
    transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1);
  }
  .showcase-slide.active{opacity:1;transform:none;pointer-events:auto;z-index:2;}
  .showcase-slide.exiting{transform:translateX(-28px);}
  .showcase-visual{
    flex:1 1 56%;background:linear-gradient(150deg,#efece6,#e2ded6);
    display:flex;align-items:center;justify-content:center;
    color:var(--ink-soft);font-size:13px;font-weight:600;text-align:center;
    overflow:hidden;
  }
  .showcase-visual img{
    width:100%;height:100%;object-fit:cover;object-position:center;display:block;
  }
  .showcase-info{
    flex:1 1 44%;display:flex;flex-direction:column;justify-content:center;
    padding:52px 56px;background:var(--paper);
  }
  .showcase-index{font-size:12.5px;font-weight:700;color:var(--orange);letter-spacing:.06em;margin-bottom:14px;}
  .showcase-cat{
    display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:5px 12px;margin-bottom:18px;width:fit-content;
  }
  .showcase-info h3{font-size:28px;margin-bottom:14px;}
  .showcase-info p{font-size:14.5px;margin-bottom:22px;}
  .showcase-link{font-size:14px;font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:8px;width:fit-content;}
  .showcase-link span{transition:transform .3s ease;}
  .showcase-link:hover span{transform:translateX(4px);}

  .showcase-controls{display:flex;align-items:center;gap:16px;margin-top:28px;}
  .showcase-tabs{display:flex;gap:10px;flex:1;overflow-x:auto;scrollbar-width:none;}
  .showcase-tabs::-webkit-scrollbar{display:none;}
  .showcase-tab{
    flex:1 1 0;min-width:64px;background:none;border:none;cursor:pointer;padding:0 0 10px;
    display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  }
  .tab-num{font-size:11.5px;font-weight:800;color:var(--ink-soft);letter-spacing:.04em;transition:color .3s ease;}
  .showcase-tab.active .tab-num{color:var(--orange);}
  .tab-bar{width:100%;height:2px;background:var(--line);border-radius:2px;overflow:hidden;}
  .tab-fill{display:block;width:0%;height:100%;background:var(--orange);}
  .showcase-tab.active .tab-fill{animation:tabFill 5.4s linear forwards;}
  .showcase.paused .showcase-tab.active .tab-fill{animation-play-state:paused;}
  @keyframes tabFill{from{width:0%}to{width:100%}}
  @media (prefers-reduced-motion: reduce){
    .showcase-tab.active .tab-fill{animation:none;width:100%;}
  }
  .carousel-btn{
    width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--paper);
    color:var(--ink);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;
    transition:border-color .3s ease, background .3s ease, color .3s ease, transform .2s ease;
  }
  .carousel-btn:hover{border-color:var(--orange);background:var(--orange);color:#fff;}
  .carousel-btn:active{transform:scale(.94);}

  /* blog */
  .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .blog-card{
    border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
    display:block;transition:transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease;
  }
  .blog-card:hover{transform:translateY(-6px);border-color:var(--orange);}
  .blog-thumb{
    aspect-ratio:16/10;background:linear-gradient(150deg,#efece6,#e2ded6);
    display:flex;align-items:center;justify-content:center;
    color:var(--ink-soft);font-size:13px;font-weight:600;text-align:center;padding:20px;
    transition:transform .5s ease;
  }
  .blog-card:hover .blog-thumb{transform:scale(1.04);}
  .blog-card .cap{padding:22px 22px 26px;}
  .blog-card .date{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--orange);text-transform:uppercase;}
  .blog-card h3{font-size:18px;margin:10px 0 8px;line-height:1.3;}
  .blog-card p{font-size:14px;}
  .section-cta{margin-top:44px;text-align:center;}

  /* CTA band + contact form */
  .cta-band{
    position:relative;overflow:hidden;
    border-radius:28px;padding:70px 64px;
    background:linear-gradient(135deg,var(--orange),var(--orange-dark));
    color:#fff;display:grid;grid-template-columns:1fr .92fr;gap:56px;align-items:start;
  }
  .cta-glow{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:0;}
  .cta-glow-1{width:340px;height:340px;background:rgba(255,255,255,.16);top:-140px;left:8%;}
  .cta-glow-2{width:260px;height:260px;background:rgba(22,22,22,.22);bottom:-110px;right:6%;}
  .cta-band::before{
    content:"";position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;
    background-image:radial-gradient(rgba(255,255,255,.35) 1px, transparent 1.5px);
    background-size:26px 26px;mask-image:radial-gradient(ellipse 60% 90% at 20% 20%, #000 0%, transparent 70%);
  }
  .cta-info,.cta-form{position:relative;z-index:1;min-width:0;}
  .cta-band{min-width:0;}
  .cta-info .eyebrow{color:rgba(255,255,255,.85);}
  .cta-info .eyebrow::before{background:#fff;}
  .cta-band h2{font-size:clamp(26px,3.2vw,38px);color:#fff;margin-top:14px;}
  .cta-lead{color:rgba(255,255,255,.88);margin-top:16px;max-width:420px;overflow-wrap:break-word;}
  .cta-whats{
    display:inline-flex;align-items:center;gap:10px;margin-top:28px;
    background:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.4);color:#fff;
    padding:14px 24px;border-radius:999px;font-weight:700;font-size:14.5px;
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
  }
  .cta-whats:hover{background:#fff;color:var(--orange-dark);transform:translateY(-2px);}
  .cta-contact-info{margin-top:26px;display:flex;flex-direction:column;gap:10px;}
  .cta-contact-info a{display:inline-flex;align-items:center;gap:10px;color:rgba(255,255,255,.85);font-size:14px;font-weight:600;min-width:0;flex-wrap:wrap;word-break:break-word;}
  .cta-contact-info a svg{width:16px;height:16px;flex:none;opacity:.85;}
  .cta-contact-info a:hover{color:#fff;}
  .cta-form{
    background:#fff;border-radius:20px;padding:34px 32px;
    display:flex;flex-direction:column;gap:16px;
    box-shadow:0 28px 54px -20px rgba(0,0,0,.4);
    transform:rotate(-1.1deg);transition:transform .45s cubic-bezier(.2,.7,.3,1);
  }
  .cta-form:hover,.cta-form:focus-within{transform:rotate(0deg);}
  .cta-form-head{margin-bottom:2px;}
  /* .cta-form sits on a fixed white card regardless of site theme, so its internals use
     pinned light-mode colors rather than the light/dark tokens (same reasoning as .cta-band .btn). */
  .cta-form-head strong{display:block;font-size:16.5px;color:#161616;font-weight:800;}
  .cta-form-head span{display:block;font-size:13px;color:#6b6b6b;margin-top:3px;}
  .chip-row{display:flex;flex-wrap:wrap;gap:8px;}
  .chip{
    border:1.5px solid #e4e2de;background:#f5f4f2;color:#6b6b6b;
    font-family:inherit;font-size:12.5px;font-weight:700;padding:8px 14px;border-radius:999px;
    cursor:pointer;transition:border-color .2s ease, background .2s ease, color .2s ease, transform .15s ease;
  }
  .chip:hover{border-color:var(--orange);color:#161616;}
  .chip.is-active{background:var(--orange);border-color:var(--orange);color:#fff;transform:translateY(-1px);}
  .field{position:relative;}
  .field-row{display:flex;flex-wrap:wrap;gap:12px;}
  .field-row .field{flex:1 1 140px;}
  .cta-form input,.cta-form textarea{
    width:100%;border:1.5px solid #e4e2de;border-radius:12px;background:#f5f4f2;
    padding:19px 16px 9px;font-family:inherit;font-size:14.5px;color:#161616;
    transition:border-color .2s ease, background .2s ease;resize:none;
  }
  .cta-form textarea{padding-top:22px;}
  .field label{
    position:absolute;left:16px;top:16px;font-size:14.5px;color:#6b6b6b;
    pointer-events:none;transform-origin:left top;
    transition:transform .18s ease, color .18s ease, top .18s ease;
  }
  .cta-form input:focus,.cta-form textarea:focus{outline:none;border-color:var(--orange);background:#fff;}
  .field input:focus + label,.field input:not(:placeholder-shown) + label,
  .field textarea:focus + label,.field textarea:not(:placeholder-shown) + label{
    top:8px;transform:scale(.76);color:var(--orange);
  }
  .cta-greet{
    position:absolute;left:16px;top:100%;margin-top:4px;
    font-size:11.5px;line-height:1.3;color:var(--orange-dark);font-weight:700;
    opacity:0;transform:translateY(-4px);transition:opacity .25s ease, transform .25s ease;
    pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 32px);
  }
  .cta-greet.is-visible{opacity:1;transform:translateY(0);}
  .cta-form .form-submit{
    border:none;cursor:pointer;justify-content:center;margin-top:4px;font-family:inherit;
  }
  .cta-form .form-submit .arrow{display:inline-block;transition:transform .25s ease;}
  .cta-form .form-submit:hover .arrow{transform:translateX(4px);}
  .cta-form .form-note{font-size:12px;color:#8a8a8a;text-align:center;margin-top:2px;}

  footer{background:var(--footer-bg);color:var(--footer-text);padding:76px 0 32px;position:relative;overflow:hidden;}
  footer::before{
    content:"";position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--orange),var(--orange-dark),transparent 85%);
  }
  .footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding-bottom:46px;border-bottom:1px solid var(--footer-line);}
  .footer-grid h4{color:var(--footer-text);font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:18px;}
  .footer-grid h4.social-heading{margin-top:22px;}
  .footer-grid a,.footer-grid p{display:block;font-size:14.5px;color:var(--footer-text-soft);margin-bottom:10px;line-height:1.6;}
  .footer-grid a:hover{color:var(--footer-text);}
  .footer-grid a.active{color:var(--orange);font-weight:700;}
  .footer-logo{display:flex;align-items:center;margin-bottom:18px;}
  .footer-logo img{height:30px;width:auto;display:block;}
  .footer-about p{max-width:280px;margin-bottom:24px;}
  .footer-news{margin-top:4px;}
  .footer-news label{display:block;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--footer-text-soft);margin-bottom:10px;}
  .news-row{display:flex;gap:8px;max-width:290px;}
  .news-row input{
    flex:1;min-width:0;border:1.5px solid var(--footer-line);background:transparent;color:var(--footer-text);
    border-radius:999px;padding:11px 16px;font-family:inherit;font-size:13.5px;transition:border-color .2s ease;
  }
  .news-row input::placeholder{color:var(--footer-muted);}
  .news-row input:focus{outline:none;border-color:var(--orange);}
  .news-row button{
    flex:none;width:42px;height:42px;border-radius:50%;border:none;background:var(--orange);color:#fff;
    display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease, transform .2s ease;
  }
  .news-row button:hover{background:var(--orange-dark);transform:translateY(-2px);}
  .news-row button svg{width:16px;height:16px;}
  .footer-news .form-note{font-size:11.5px;color:var(--footer-muted);margin-top:9px;max-width:280px;}
  .social-row{display:flex;gap:10px;margin-top:2px;}
  .social-row a{
    width:38px;height:38px;border-radius:50%;border:1.5px solid var(--footer-line);
    display:flex;align-items:center;justify-content:center;flex:none;margin-bottom:0;
    transition:border-color .2s ease, background .2s ease, transform .2s ease;
  }
  .social-row a svg{width:17px;height:17px;color:var(--footer-text-soft);transition:color .2s ease;}
  .social-row a:hover{border-color:var(--orange);background:var(--orange);transform:translateY(-3px);}
  .social-row a:hover svg{color:#fff;}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;font-size:13px;color:var(--footer-muted);flex-wrap:wrap;gap:14px;}
  .foot-bottom-links{display:flex;gap:18px;flex-wrap:wrap;}
  .foot-bottom a{color:var(--footer-muted);margin-bottom:0;display:inline;}
  .foot-bottom a:hover{color:var(--footer-text);}
  .foot-bottom a.active{color:var(--orange);font-weight:700;}
  .back-to-top{
    display:inline-flex;align-items:center;gap:8px;color:var(--footer-muted);font-weight:700;font-size:13px;
    border:1.5px solid var(--footer-line);border-radius:999px;padding:8px 16px;
    transition:border-color .2s ease, color .2s ease, transform .2s ease;
  }
  .back-to-top:hover{border-color:var(--orange);color:var(--footer-text);transform:translateY(-2px);}
  .back-to-top svg{width:13px;height:13px;}

  .placeholder-flag{
    display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;
    background:#fff3ec;color:var(--orange-dark);border:1px solid #ffd9c4;
    border-radius:999px;padding:4px 10px;margin-top:10px;
  }

  /* nav current-page indicator (subpages) */
  nav > a.active{color:var(--orange);}
  nav > a.active::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;border-radius:2px;background:var(--orange);}

  /* about page: história */
  .history-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:center;}
  .history-stats{display:flex;flex-direction:column;gap:16px;}
  .history-stat{
    position:relative;overflow:hidden;
    display:flex;align-items:center;gap:18px;
    border:1px solid var(--line);border-radius:var(--radius);padding:20px 26px;
    transition:transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease;
  }
  .history-stat::before{
    content:"";position:absolute;inset:0;border-radius:inherit;
    background:linear-gradient(135deg, rgba(248,81,26,.12), transparent 60%);
    opacity:0;transition:opacity .35s ease;pointer-events:none;
  }
  .history-stat:hover{transform:translateY(-4px);border-color:var(--orange);}
  .history-stat:hover::before{opacity:1;}
  .history-icon{
    flex:none;width:46px;height:46px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    border:1.5px solid var(--line);color:var(--orange);
    transition:border-color .35s ease, background .35s ease, color .35s ease;
  }
  .history-icon svg{width:20px;height:20px;}
  .history-stat:hover .history-icon{border-color:var(--orange);background:var(--orange);color:#fff;}
  .history-text{display:flex;flex-direction:column;position:relative;}
  .history-text b{font-size:28px;font-weight:800;color:var(--orange);white-space:nowrap;font-variant-numeric:tabular-nums;}
  .history-text span{font-size:14px;color:var(--ink-soft);}

  /* about page: missão & visão */
  .mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  .mv-card{
    --mx:50%;--my:50%;
    position:relative;overflow:hidden;isolation:isolate;
    border:1px solid var(--line);border-radius:var(--radius);padding:40px 36px 34px;
    background:var(--paper);
    transition:transform .4s cubic-bezier(.2,.7,.3,1), border-color .4s ease, box-shadow .4s ease;
  }
  .mv-card:hover{transform:translateY(-8px);border-color:var(--orange);box-shadow:0 24px 48px -26px rgba(248,81,26,.4);}
  /* cursor-tracked spotlight glow */
  .mv-card::before{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:radial-gradient(280px circle at var(--mx) var(--my), rgba(248,81,26,.14), transparent 70%);
    opacity:0;transition:opacity .5s ease;
  }
  .mv-card:hover::before{opacity:1;}
  /* top gradient bar that sweeps in */
  .mv-card::after{
    content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:2;
    background:linear-gradient(90deg, var(--orange), #ffb27a);
    transform:scaleX(0);transform-origin:left;
    transition:transform .55s cubic-bezier(.2,.7,.3,1);
  }
  .mv-card:hover::after{transform:scaleX(1);}
  /* big outline glyph, drawn in line-art so it stays crisp at low opacity */
  .mv-ghost{
    position:absolute;top:-10px;right:-10px;z-index:0;
    width:150px;height:150px;color:var(--orange);opacity:.07;
    transition:opacity .45s ease, transform .6s cubic-bezier(.2,.7,.3,1);
    pointer-events:none;
  }
  .mv-ghost svg{width:100%;height:100%;}
  .mv-card:hover .mv-ghost{opacity:.16;transform:rotate(10deg) scale(1.08);}
  .mv-kicker{position:relative;z-index:1;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:14px;}
  .mv-icon{
    position:relative;z-index:1;
    display:flex;align-items:center;justify-content:center;
    width:50px;height:50px;border-radius:50%;
    border:1.5px solid var(--line);color:var(--orange);margin-bottom:22px;background:var(--paper);
    transition:border-color .4s ease, background .4s ease, color .4s ease, transform .45s cubic-bezier(.3,1.6,.4,1);
  }
  .mv-icon svg{width:22px;height:22px;}
  .mv-card:hover .mv-icon{border-color:var(--orange);background:var(--orange);color:#fff;transform:scale(1.1) rotate(-10deg);}
  .mv-card h3{position:relative;z-index:1;font-size:20px;margin-bottom:12px;}
  .mv-card p{position:relative;z-index:1;font-size:14.5px;}

  /* about page: simple CTA band (no form) */
  .cta-band.is-simple{grid-template-columns:1fr;text-align:center;justify-items:center;}
  .cta-band.is-simple .cta-lead{margin-left:auto;margin-right:auto;}
  .cta-band.is-simple .cta-row-simple{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:28px;}
  .cta-band.is-simple .btn{background:#fff;color:#161616;}
  .cta-band.is-simple .btn:hover{background:#161616;color:#fff;}

  @media (max-width: 980px){
    .hero{padding:130px 0 90px;}
    .pillars{grid-template-columns:1fr 1fr;}
    a.service-row{grid-template-columns:44px 1fr 24px;}
    .service-row .desc{display:none;}
    .process-track{display:none;}
    .process-grid{grid-template-columns:1fr 1fr;}
    .showcase-stage{height:620px;}
    .showcase-slide{flex-direction:column;}
    .showcase-visual{flex:1 1 42%;padding:20px;}
    .showcase-visual img{
      width:auto;height:auto;max-width:100%;max-height:100%;
      object-fit:contain;border-radius:16px;box-shadow:0 18px 40px -18px rgba(20,18,15,.35);
    }
    .showcase-info{flex:1 1 58%;padding:32px 34px;}
    .showcase-info h3{font-size:23px;}
    .blog-grid{grid-template-columns:1fr 1fr;}
    .cta-band{padding:44px 32px;grid-template-columns:1fr;gap:36px;}
    .cta-form,.cta-form:hover,.cta-form:focus-within{transform:none;}
    .cta-lead{max-width:none;}
    .footer-grid{grid-template-columns:1fr 1fr 1fr;}
    .footer-about{grid-column:1 / -1;}
    .footer-about p,.footer-news .form-note,.news-row{max-width:420px;}
    .history-grid{grid-template-columns:1fr;}
    .mv-grid{grid-template-columns:1fr;}
  }
  @media (max-width: 620px){
    .wrap{padding:0 20px;}
    .section-head{flex-direction:column;align-items:center;text-align:center;}
    .section-head p.nowrap{white-space:normal;}
    .pillars{grid-template-columns:1fr;text-align:center;}
    .process-grid{grid-template-columns:1fr;}
    .process-card:nth-child(even){margin-top:0;}
    .showcase-stage{height:600px;}
    .showcase-info{align-items:center;text-align:center;}
    .foot-bottom{flex-direction:column;align-items:flex-start;}
    .showcase-tabs{gap:6px;}
    .showcase-tab{min-width:34px;}
    .tab-num{display:none;}
    .blog-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
    .hero-stats{gap:28px;}
  }


/* ---- blog-thumb variants (featured / soon) — from home.html ---- */
.blog-thumb svg{width:42px;height:42px;}
.blog-card.featured .blog-thumb{background:linear-gradient(135deg, #100d0c 0%, #2b1c14 55%, var(--orange) 145%);color:#fff;}
.blog-card.featured .blog-thumb svg{color:#fff;opacity:.92;}
.blog-card.is-soon{opacity:.62;border-style:dashed;cursor:default;}
.blog-card.is-soon:hover{transform:none;border-color:var(--line);}
.blog-card.is-soon .blog-thumb{background:var(--paper-soft);color:var(--ink-soft);opacity:.6;}
.blog-card .soon-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-soft);border-radius:999px;padding:3px 10px;margin-bottom:8px;}


/* ============ 2. WOW LAYER + PORTFOLIO + PROCESS + STATS + SERVICE HERO (de build_servicos.py) ============
   Observacao: a regra "section{padding:56px 0;}" nesta secao sobrescreve de
   proposito o "section{padding:100px 0;}" da secao 1 — esse e o comportamento
   ja em producao no site estatico atual (a ultima regra declarada vence). */

  /* related services cross-link grid (servicos/*) */
  .related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;}
  .related-card{
    display:flex;flex-direction:column;
    border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;
    position:relative;overflow:hidden;color:inherit;text-decoration:none;
    transition:transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease, box-shadow .35s ease;
  }
  .related-card:hover{transform:translateY(-6px);border-color:var(--orange);box-shadow:0 18px 36px -24px rgba(248,81,26,.35);}
  .related-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:12px;
    background:linear-gradient(135deg, rgba(248,81,26,.16), rgba(248,81,26,.04));
    color:var(--orange);margin-bottom:18px;
    transition:transform .4s cubic-bezier(.3,1.6,.4,1), background .35s ease, color .35s ease;
  }
  .related-icon svg{width:20px;height:20px;}
  .related-card:hover .related-icon{background:var(--orange);color:#fff;transform:scale(1.08) rotate(-6deg);}
  .related-card b{display:block;font-size:15.5px;margin-bottom:6px;}
  .related-card .rc-desc{font-size:13px;color:var(--ink-soft);line-height:1.55;display:block;margin-bottom:16px;}
  .related-arrow{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--orange);}
  .related-arrow svg{width:14px;height:14px;transition:transform .3s ease;}
  .related-card:hover .related-arrow svg{transform:translateX(4px);}

  /* service hero: small icon badge next to eyebrow */
  .hero-eyebrow-row{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
  .hero-eyebrow-row .eyebrow{margin:0;}
  .svc-badge{
    flex:none;width:34px;height:34px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(248,81,26,.14);color:var(--orange);
  }
  .svc-badge svg{width:16px;height:16px;}

  @media (max-width: 980px){
    .related-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width: 620px){
    .related-grid{grid-template-columns:1fr;}
  }

  /* ===================================================================
     Dynamic / surprising layer for servicos/* pages
     =================================================================== */

  /* top scroll-progress bar */
  .scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg, var(--orange), #ffb27a);z-index:60;pointer-events:none;}

  /* floating section rail */
  .side-rail{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:45;display:flex;flex-direction:column;gap:14px;}
  .side-rail a{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--line);background:var(--paper);display:block;position:relative;transition:border-color .3s ease, background .3s ease, transform .3s ease;}
  .side-rail a::after{
    content:attr(aria-label);position:absolute;right:22px;top:50%;
    transform:translateY(-50%) translateX(6px);
    font-size:12px;font-weight:600;white-space:nowrap;color:var(--ink);
    background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:4px 10px;
    opacity:0;pointer-events:none;transition:opacity .25s ease, transform .25s ease;
    box-shadow:0 8px 20px -12px rgba(0,0,0,.3);
  }
  .side-rail a:hover::after{opacity:1;transform:translateY(-50%) translateX(0);}
  .side-rail a:hover{transform:scale(1.3);}
  .side-rail a.is-active{background:var(--orange);border-color:var(--orange);transform:scale(1.3);}
  @media (max-width:1180px){.side-rail{display:none;}}

  /* hero headline: word-by-word reveal on load */
  .hero-content h1 .word{display:inline-block;overflow:hidden;vertical-align:top;}
  .hero-content h1 .word-inner{display:inline-block;transform:translateY(115%);animation:wordUp .85s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * 70ms + .05s);}
  @keyframes wordUp{to{transform:translateY(0);}}
  .hero-content .cta-row .btn-outline{transition:border-color .2s ease, transform .2s ease;}

  /* 3D tilt + cursor spotlight shared by pillar / process-card / related-card */
  .tilt-card{--mx:50%;--my:50%;}
  .pillar.tilt-card::after{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;
    background:radial-gradient(220px circle at var(--mx) var(--my), rgba(248,81,26,.16), transparent 70%);
    opacity:0;transition:opacity .4s ease;
  }
  .pillar.tilt-card:hover::after{opacity:1;}
  .process-card.tilt-card::before{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;
    background:radial-gradient(220px circle at var(--mx) var(--my), rgba(248,81,26,.16), transparent 70%);
    opacity:0;transition:opacity .4s ease;
  }
  .process-card.tilt-card:hover::before{opacity:1;}
  .related-card.tilt-card::before{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;
    background:radial-gradient(220px circle at var(--mx) var(--my), rgba(248,81,26,.16), transparent 70%);
    opacity:0;transition:opacity .4s ease;
  }
  .related-card.tilt-card:hover::before{opacity:1;}

  /* curved animated connector for "Como funciona" (replaces the straight track) */
  .flow-track{position:relative;height:70px;margin:0 0 34px;}
  .flow-track svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
  .flow-path-bg{fill:none;stroke:var(--line);stroke-width:2;}
  .flow-path-fill{fill:none;stroke:var(--orange);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1) .1s;}
  .flow-track.is-visible .flow-path-fill{stroke-dashoffset:0 !important;}
  .flow-dot{
    position:absolute;width:12px;height:12px;border-radius:50%;
    background:var(--paper-soft);border:2px solid var(--line);
    transform:translate(-50%,-50%) scale(.7);
    transition:border-color .4s ease, background .4s ease, transform .4s ease;
  }
  .flow-track.is-visible .flow-dot{border-color:var(--orange);background:var(--orange);transform:translate(-50%,-50%) scale(1);}
  .flow-dot.d1{transition-delay:.1s;}
  .flow-dot.d2{transition-delay:.5s;}
  .flow-dot.d3{transition-delay:.9s;}
  .flow-dot.d4{transition-delay:1.3s;}
  @media (max-width: 980px){
    .flow-track{display:none;}
  }

  @media (prefers-reduced-motion: reduce){
    .hero-content h1 .word-inner{animation:none;transform:none;}
  }

  /* ===================================================================
     "Wow" layer v2 — custom cursor, aurora hero, marquee, stat counters
     =================================================================== */

  /* gradient-highlighted words inside the hero H1 */
  .hero-content h1 .word-inner.grad{
    background:linear-gradient(90deg, var(--orange), #ffb27a 55%, var(--orange));
    background-size:200% auto;
    -webkit-background-clip:text;background-clip:text;color:transparent;
    animation:wordUp .85s cubic-bezier(.2,.8,.2,1) forwards, gradShift 3.5s ease-in-out infinite 1.1s;
  }
  @keyframes gradShift{0%,100%{background-position:0% center;}50%{background-position:100% center;}}

  /* full-bleed hero background: no inset frame or corner brackets on service pages */
  .hero-bg .hv-frame,.hero-bg .hv-corner{display:none;}

  /* drifting aurora blobs behind the hero */
  .hero-aurora{position:absolute;inset:-20% -10%;z-index:0;pointer-events:none;filter:blur(64px);opacity:.65;}
  .hero-aurora span{position:absolute;border-radius:50%;mix-blend-mode:screen;}
  .hero-aurora span:nth-child(1){width:420px;height:420px;left:6%;top:6%;background:radial-gradient(circle, rgba(248,81,26,.55), transparent 70%);animation:auroraFloat1 19s ease-in-out infinite;}
  .hero-aurora span:nth-child(2){width:360px;height:360px;right:8%;top:28%;background:radial-gradient(circle, rgba(255,178,122,.42), transparent 70%);animation:auroraFloat2 23s ease-in-out infinite;}
  .hero-aurora span:nth-child(3){width:320px;height:320px;left:34%;bottom:-12%;background:radial-gradient(circle, rgba(248,81,26,.32), transparent 70%);animation:auroraFloat3 27s ease-in-out infinite;}
  @keyframes auroraFloat1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(40px,30px) scale(1.15);}}
  @keyframes auroraFloat2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-50px,24px) scale(.9);}}
  @keyframes auroraFloat3{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(30px,-36px) scale(1.1);}}
  @media (prefers-reduced-motion: reduce){
    .hero-aurora span{animation:none;}
    .hero-content h1 .word-inner.grad{animation:none;background-position:0% center;}
  }
  /* calmer, lower-contrast effects on mobile so the hero copy reads more easily */
  @media (max-width: 620px){
    .hero-aurora{opacity:.32;}
    .hero-aurora span:nth-child(1){width:240px;height:240px;}
    .hero-aurora span:nth-child(2){width:200px;height:200px;}
    .hero-aurora span:nth-child(3){width:180px;height:180px;}
    .hero-scrim{background:radial-gradient(65% 60% at 50% 38%, rgba(10,10,10,.82) 0%, rgba(10,10,10,.46) 48%, rgba(10,10,10,0) 78%);}
  }

  /* infinite marquee strip — always scrolling, never pauses or shows a gap */
  .marquee{overflow:hidden;background:rgba(8,7,6,.16);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);padding:16px 0;white-space:nowrap;}
  .marquee-track{display:inline-flex;gap:28px;animation:marqueeScroll 110s linear infinite;will-change:transform;}
  .marquee-track span{font-size:13.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--footer-text-soft);}
  .marquee-track span.dot{color:var(--orange);}
  @keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  @media (prefers-reduced-motion: reduce){.marquee-track{animation:none;}}

  /* tighter section rhythm for service pages (the shared 100px base felt too spaced out) */
  section{padding:56px 0;}

  /* animated stat counters */
  .stats-band{background:var(--paper-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:44px 0;}
  .stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;text-align:center;}
  .stat-num{font-size:clamp(38px,6vw,60px);font-weight:800;color:var(--orange);line-height:1;display:flex;align-items:baseline;justify-content:center;gap:2px;}
  .stat-suf{font-size:.5em;}
  .stat p{margin:10px auto 0;font-size:14.5px;color:var(--ink-soft);max-width:230px;}
  @media (max-width:760px){.stats-grid{grid-template-columns:1fr;gap:34px;}}

  /* custom cursor (pointer:fine only, native cursor kept for touch) */
  .cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:80;opacity:0;}
  .cursor-dot{width:6px;height:6px;background:var(--orange);transition:opacity .2s ease;}
  .cursor-ring{width:34px;height:34px;border:1.5px solid rgba(248,81,26,.55);transition:opacity .2s ease, width .3s cubic-bezier(.2,.8,.2,1), height .3s cubic-bezier(.2,.8,.2,1), border-color .3s ease, background .3s ease;}
  .cursor-ring.is-hover{width:54px;height:54px;border-color:var(--orange);background:rgba(248,81,26,.08);}
  @media (pointer:fine){
    body{cursor:none;}
    a, button, input, textarea, select{cursor:none;}
    .cursor-dot.is-on,.cursor-ring.is-on{opacity:1;}
  }
  @media (pointer:coarse), (hover:none){
    .cursor-dot,.cursor-ring{display:none;}
  }

  /* floating WhatsApp button */
  .wa-float{
    position:fixed;right:24px;bottom:24px;z-index:55;
    width:58px;height:58px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:#25d366;color:#fff;
    box-shadow:0 12px 28px -10px rgba(0,0,0,.45);
    transition:transform .25s cubic-bezier(.3,1.6,.4,1), box-shadow .25s ease;
  }
  .wa-float svg{width:28px;height:28px;position:relative;z-index:1;}
  .wa-float:hover{transform:scale(1.08);box-shadow:0 16px 34px -10px rgba(0,0,0,.5);}
  .wa-float::after{
    content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
    box-shadow:0 0 0 0 rgba(37,211,102,.55);
    animation:waPulse 2.4s ease-out infinite;
  }
  @keyframes waPulse{
    0%{box-shadow:0 0 0 0 rgba(37,211,102,.55);}
    80%,100%{box-shadow:0 0 0 18px rgba(37,211,102,0);}
  }
  @media (prefers-reduced-motion: reduce){.wa-float::after{animation:none;}}
  @media (max-width:620px){
    .wa-float{width:52px;height:52px;right:16px;bottom:16px;}
    .wa-float svg{width:25px;height:25px;}
  }

  /* portfolio showcase — real client sites (browser-mockup cards) */
  .portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:8px;}
  .portfolio-card{
    display:block;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
    position:relative;color:inherit;text-decoration:none;background:var(--paper);
    transition:transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease, box-shadow .35s ease;
  }
  .portfolio-card:hover{transform:translateY(-6px);border-color:var(--orange);box-shadow:0 18px 36px -24px rgba(248,81,26,.35);}
  .portfolio-browser{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper-soft);border-bottom:1px solid var(--line);}
  .portfolio-dots{display:flex;gap:5px;flex:none;}
  .portfolio-dots span{width:7px;height:7px;border-radius:50%;background:var(--line);}
  .portfolio-url{flex:1;font-size:12px;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:3px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .portfolio-preview{aspect-ratio:16/7;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(135deg, #100d0c 0%, #2b1c14 55%, var(--orange) 145%);}
  .portfolio-preview::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 20%, rgba(255,255,255,.16), transparent 60%);}
  .portfolio-preview svg{position:relative;z-index:1;width:40px;height:40px;color:#fff;opacity:.92;}
  .portfolio-body{padding:20px 22px;}
  .portfolio-body .pf-niche{display:block;margin-bottom:8px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--orange);}
  .portfolio-body b{display:block;margin-bottom:6px;font-size:15.5px;}
  .portfolio-body .pf-desc{display:block;margin-bottom:16px;font-size:13.5px;line-height:1.55;color:var(--ink-soft);}
  .portfolio-arrow{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--orange);}
  .portfolio-arrow svg{width:14px;height:14px;transition:transform .3s ease;}
  .portfolio-card:hover .portfolio-arrow svg{transform:translateX(4px);}
  @media (max-width:760px){.portfolio-grid{grid-template-columns:1fr;}}


/* ============ 3. CONTATO — cards de canais de atendimento (de build_contato.py) ============ */

  /* contato — direct channel cards */
  .channel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:8px;}
  .channel-card{
    display:flex;flex-direction:column;align-items:flex-start;gap:10px;
    padding:26px 24px;border:1px solid var(--line);border-radius:var(--radius);
    background:var(--paper);color:inherit;text-decoration:none;position:relative;overflow:hidden;
  }
  .channel-card:hover{transform:translateY(-6px);border-color:var(--orange);box-shadow:0 18px 36px -24px rgba(248,81,26,.35);}
  .channel-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:12px;flex:none;
    background:var(--paper-soft);color:var(--orange);
  }
  .channel-icon svg{width:20px;height:20px;}
  .channel-card b{font-size:15.5px;}
  .channel-card span.ch-value{font-size:13.5px;color:var(--ink-soft);line-height:1.5;word-break:break-word;}
  .channel-arrow{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--orange);}
  .channel-arrow svg{width:13px;height:13px;}
  @media (max-width:980px){ .channel-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .channel-grid{grid-template-columns:1fr;} }


/* ============ 4. ARTIGO DE BLOG / PAGINA DE SERVICO — breadcrumb, TOC, corpo do artigo, FAQ, autor, cards relacionados (de build_article.py) ============ */

  /* article page */
  .breadcrumb{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink-soft);flex-wrap:wrap;margin-bottom:18px;}
  .breadcrumb a{color:var(--ink-soft);}
  .breadcrumb a:hover{color:var(--orange);}
  .breadcrumb .sep{opacity:.5;}
  .breadcrumb .current{color:var(--ink);font-weight:600;}

  .article-header{padding:150px 0 0;}
  .article-header h1{font-size:clamp(30px,4.2vw,48px);line-height:1.15;margin:16px 0 18px;max-width:820px;}
  .article-header .deck{font-size:17px;color:var(--ink-soft);max-width:680px;line-height:1.6;margin-bottom:26px;}
  .article-header .meta-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:13.5px;color:var(--ink-soft);margin-bottom:36px;}
  .article-header .meta-row span{display:inline-flex;align-items:center;gap:7px;}
  .article-header .meta-row svg{width:15px;height:15px;}

  .article-banner{height:240px;position:relative;overflow:hidden;background:linear-gradient(135deg, #100d0c 0%, #2b1c14 55%, var(--orange) 145%);display:flex;align-items:center;justify-content:center;}
  .article-banner::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 20%, rgba(255,255,255,.16), transparent 60%);}
  .article-banner svg{position:relative;z-index:1;width:72px;height:72px;color:#fff;opacity:.9;}

  .article-shell{max-width:760px;margin:0 auto;padding:60px 32px 0;}
  .toc-box{border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin:0 0 44px;background:var(--paper-soft);}
  .toc-box strong{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--orange);margin-bottom:14px;}
  .toc-box ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px;}
  .toc-box a{font-size:14.5px;font-weight:600;color:var(--ink);}
  .toc-box a:hover{color:var(--orange);}

  .article-body-copy h2{font-size:clamp(23px,2.6vw,30px);margin:52px 0 18px;line-height:1.25;scroll-margin-top:110px;}
  .article-body-copy h3{font-size:19px;margin:32px 0 12px;line-height:1.3;scroll-margin-top:110px;}
  .article-body-copy p{margin-bottom:18px;font-size:16px;line-height:1.75;}
  .article-body-copy ul,.article-body-copy ol{margin:0 0 20px;padding-left:22px;color:var(--ink-soft);}
  .article-body-copy li{margin-bottom:9px;font-size:16px;line-height:1.65;}
  .article-body-copy li strong{color:var(--ink);}
  .article-body-copy a.inline-link{color:var(--orange);font-weight:700;text-decoration:underline;text-decoration-color:rgba(248,81,26,.35);text-underline-offset:3px;}
  .article-body-copy a.inline-link:hover{text-decoration-color:var(--orange);}
  .article-body-copy strong{color:var(--ink);}

  .inline-cta-card{
    display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
    border:1px solid var(--line);border-radius:var(--radius);padding:28px 30px;margin:36px 0 44px;
    background:var(--paper-soft);
  }
  .inline-cta-card div b{display:block;font-size:16.5px;margin-bottom:4px;}
  .inline-cta-card div span{font-size:14px;color:var(--ink-soft);}

  .faq-list{display:flex;flex-direction:column;gap:16px;margin:24px 0 44px;}
  .faq-item{border:1px solid var(--line);border-radius:14px;padding:22px 24px;}
  .faq-item h3{margin:0 0 10px;font-size:16.5px;}
  .faq-item p{margin:0;font-size:15px;}

  .author-box{
    display:flex;align-items:center;gap:16px;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    padding:26px 0;margin:52px 0 44px;
  }
  .author-avatar{
    flex:none;width:48px;height:48px;border-radius:50%;
    background:linear-gradient(135deg, var(--orange), #ffb27a);
    display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;
  }
  .author-box b{display:block;font-size:14.5px;}
  .author-box span{font-size:13px;color:var(--ink-soft);}

  /* related articles (end of article, before the contact CTA) */
  .related-articles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:8px;}
  .soon-card{
    border:1.5px dashed var(--line);border-radius:var(--radius);padding:28px 24px;
    display:flex;flex-direction:column;opacity:.72;position:relative;
  }
  .soon-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:12px;
    background:var(--paper-soft);color:var(--ink-soft);margin-bottom:18px;
  }
  .soon-icon svg{width:20px;height:20px;}
  .soon-badge{display:inline-flex;align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-soft);border-radius:999px;padding:4px 11px;margin-bottom:12px;}
  .soon-card h4{font-size:15.5px;line-height:1.4;font-weight:700;margin-bottom:0;}

  @media (max-width:620px){
    .article-header{padding:130px 0 0;}
    .article-shell{padding:44px 20px 0;}
    .inline-cta-card{flex-direction:column;align-items:center;text-align:center;}
    .related-articles-grid{grid-template-columns:1fr;}
  }


/* ===== Legal pages (Termos / Privacidade) typography overrides ===== */
/* Scoped to body.legal-page so they don't affect blog articles / service pages that share .article-header/.article-shell/.article-body-copy */
body.legal-page .article-header{padding:150px 0 54px;}
body.legal-page .article-body-copy h2{font-size:clamp(21px,2.4vw,26px);margin:44px 0 16px;line-height:1.25;scroll-margin-top:110px;}
body.legal-page .article-body-copy ul, body.legal-page .article-body-copy ol{margin:0 0 18px;padding-left:22px;color:var(--ink-soft);}
body.legal-page .article-body-copy p{margin-bottom:16px;font-size:15.5px;line-height:1.75;color:var(--ink-soft);}
body.legal-page .article-header h1{font-size:clamp(30px,4.2vw,44px);line-height:1.15;margin:16px 0 14px;max-width:820px;}
body.legal-page .article-header .deck{font-size:16.5px;color:var(--ink-soft);max-width:680px;line-height:1.6;margin-bottom:4px;}
body.legal-page .article-body-copy li{margin-bottom:8px;font-size:15.5px;line-height:1.65;}
body.legal-page .article-shell{max-width:760px;margin:0 auto;padding:8px 32px 90px;}
body.legal-page .article-body-copy h3{font-size:17.5px;margin:26px 0 10px;line-height:1.3;scroll-margin-top:110px;}

/* ============ 5. LISTAGEM DO BLOG (de build_blog.py) ============ */

  /* blog listing — article + "coming soon" cards */
  .bloglist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px;}
  .article-card{
    grid-column:span 3;display:grid;grid-template-columns:1.05fr 1fr;gap:0;
    border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
    color:inherit;text-decoration:none;position:relative;background:var(--paper);
    transition:transform .35s cubic-bezier(.2,.7,.3,1), border-color .35s ease, box-shadow .35s ease;
  }
  .article-card:hover{transform:translateY(-6px);border-color:var(--orange);box-shadow:0 22px 44px -26px rgba(248,81,26,.4);}
  .article-visual{
    position:relative;overflow:hidden;min-height:260px;
    background:linear-gradient(135deg, #100d0c 0%, #2b1c14 55%, var(--orange) 145%);
    display:flex;align-items:center;justify-content:center;
  }
  .article-visual::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 20%, rgba(255,255,255,.16), transparent 60%);}
  .article-visual svg{position:relative;z-index:1;width:64px;height:64px;color:#fff;opacity:.92;}
  .article-body{padding:34px 36px;display:flex;flex-direction:column;justify-content:center;}
  .article-cat{display:inline-flex;align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--orange);background:rgba(248,81,26,.12);border-radius:999px;padding:5px 12px;margin-bottom:14px;}
  .article-body h3{font-size:clamp(20px,2.4vw,26px);line-height:1.25;margin-bottom:12px;}
  .article-body p{font-size:14.5px;line-height:1.6;margin-bottom:18px;}
  .article-meta{display:flex;gap:14px;font-size:12.5px;color:var(--ink-soft);margin-bottom:20px;flex-wrap:wrap;}
  .article-meta span{display:inline-flex;align-items:center;gap:6px;}
  .article-arrow{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--orange);}
  .article-arrow svg{width:15px;height:15px;transition:transform .3s ease;}
  .article-card:hover .article-arrow svg{transform:translateX(4px);}

  .soon-card{
    border:1.5px dashed var(--line);border-radius:var(--radius);padding:28px 24px;
    display:flex;flex-direction:column;opacity:.72;position:relative;
  }
  .soon-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:12px;
    background:var(--paper-soft);color:var(--ink-soft);margin-bottom:18px;
  }
  .soon-icon svg{width:20px;height:20px;}
  .soon-badge{display:inline-flex;align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-soft);border-radius:999px;padding:4px 11px;margin-bottom:12px;}
  .soon-card h4{font-size:15.5px;line-height:1.4;font-weight:700;margin-bottom:0;}

  @media (max-width:980px){
    .article-card{grid-column:span 3;grid-template-columns:1fr;}
    .article-visual{min-height:180px;}
  }
  @media (max-width:760px){
    .bloglist-grid{grid-template-columns:1fr;}
    .article-card{grid-column:span 1;}
  }

/* ============ 6. Formulário de contato — estados de sucesso/erro e honeypot (tema WordPress) ============ */
.cta-hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}
.form-alert{border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:14px;font-weight:600;line-height:1.5;}
.form-alert-success{background:rgba(255,255,255,.92);color:#1a7a3c;}
.form-alert-error{background:rgba(255,255,255,.92);color:#b3261e;}
.showcase-visual-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:260px;background:linear-gradient(150deg,#efece6,#e2ded6);color:var(--ink-soft);}
.showcase-visual-fallback svg{width:64px;height:64px;}
