/* Shared base: variables, reset, buttons, nav shell, mobile menu shell */
  :root{
    --ink:#0a0b14;        /* base */
    --ink-2:#11131f;      /* panels */
    --ink-3:#161a2b;      /* hover/scrolled nav */
    --line:rgba(255,255,255,.10);
    --line-2:rgba(255,255,255,.06);
    --blue:#0006ff;
    --blue-bright:#0006ff;
    --blue-lite:#6a70ff;
    --text:#f4f5f9;
    --muted:#9aa0b5;
    --muted-2:#6e7488;
    --wa:#25d366;
    --r:2px;
    --maxw:1320px;
    --pad:clamp(20px,5vw,64px);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;background:var(--ink);color:var(--text);
    font-family:"IBM Plex Sans",system-ui,sans-serif;
    font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  a{color:inherit;text-decoration:none}
  ::selection{background:var(--blue);color:#fff}
  :focus-visible{outline:2px solid var(--blue-lite);outline-offset:3px;border-radius:var(--r)}
  .mono{font-family:"IBM Plex Mono",monospace}
  .container{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}

  /* ---- sections ---- */
  .section{padding:clamp(56px,7.5vw,96px) 0;position:relative}
  .section--line{border-top:1px solid var(--line-2)}
  .sec-head{max-width:60ch}
  .sec-head h2{font-family:"IBM Plex Mono",monospace;font-weight:600;letter-spacing:-.035em;line-height:1.12;
    font-size:clamp(25px,3.5vw,40px);margin:16px 0 0}
  .sec-head p.sub{color:var(--muted);font-size:clamp(15px,1.5vw,18px);margin:16px 0 0;max-width:52ch}

  /* eyebrow / labels */
  .eyebrow{
    font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;color:var(--blue-lite);
    display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--blue-lite);opacity:.7}

  /* buttons */
  .btn{
    display:inline-flex;align-items:center;gap:9px;
    font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:14px;
    letter-spacing:.02em;padding:13px 20px;border-radius:var(--r);
    border:1.5px solid var(--blue);cursor:pointer;
    transition:transform .14s ease, box-shadow .14s ease, background .14s ease;
    will-change:transform;
  }
  .btn .arw{transition:transform .14s ease}
  .btn:hover .arw{transform:translateX(3px)}
  .btn-primary{background:var(--blue-bright);color:#fff;box-shadow:4px 4px 0 rgba(0,6,255,.4)}
  .btn-primary:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 rgba(0,6,255,.55)}
  .btn-ghost{background:transparent;color:var(--text);border-color:var(--line);box-shadow:4px 4px 0 var(--line-2)}
  .btn-ghost:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--line);border-color:var(--blue-lite)}

  /* ---------- NAV ---------- */
  header.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .25s ease,border-color .25s ease,backdrop-filter .25s ease}
  body.admin-bar header.nav{top:32px}
  @media screen and (max-width:782px){
    body.admin-bar header.nav{top:46px}
  }
  header.nav.scrolled{background:rgba(10,11,20,.78);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  .nav-row{display:flex;align-items:center;justify-content:space-between;height:68px}
  .logo{display:inline-flex;align-items:center;gap:10px;font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:17px;letter-spacing:-.01em}
  .logo .mark{width:16px;height:16px;background:var(--blue);box-shadow:3px 3px 0 var(--blue-lite);flex:0 0 auto;border-radius:1px}
  .logo b{font-weight:700}
  .logo i{color:var(--blue-lite);font-style:normal}
  .logo-img{height:24px;width:178px;background:url('../img/logo-mark-dark.png') left center/contain no-repeat;display:block}
  .nav-links{display:flex;align-items:center;gap:30px}
  .nav-links a.link{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.04em;color:var(--muted);transition:color .15s}
  .nav-links span.link{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.04em;color:var(--muted);transition:color .15s;cursor:pointer}
  .nav-links span.link:hover{color:var(--text)}
  .nav-links a.link:hover{color:var(--text)}
  .nav-links a.link.is-current{color:var(--blue-bright)}
  .nav-cta{padding:10px 16px;font-size:13px}
  .menu-btn{display:none;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;border:1.5px solid var(--blue);border-radius:var(--r);padding:9px 14px;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:13px;cursor:pointer;box-shadow:3px 3px 0 var(--blue-lite)}
  .menu-btn svg{display:block}
  @media (max-width:1120px){ .nav-links{display:none} .menu-btn{display:inline-flex} }
  /* ---- services dropdown (desktop nav) ---- */
  .nav-dd{position:relative;display:inline-flex}
  .nav-dd-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
  .nav-dd-trigger .caret{transition:transform .2s ease;opacity:.85}
  .nav-dd::after{content:"";position:absolute;left:-12px;right:-12px;top:100%;height:18px}
  .nav-dd-panel{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(8px);width:380px;background:var(--ink-2);border:1px solid var(--line);border-radius:10px;box-shadow:6px 6px 0 var(--line-2),0 26px 60px rgba(0,0,0,.20);padding:10px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:200}
  .nav-dd:hover .nav-dd-panel,.nav-dd:focus-within .nav-dd-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
  .nav-dd:hover .caret,.nav-dd:focus-within .caret{transform:rotate(180deg)}.nav-dd.open .nav-dd-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}.nav-dd.open .caret{transform:rotate(180deg)}
  .dd-item{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:8px;text-decoration:none;transition:background .14s ease}
  .dd-item:hover{background:var(--ink-3)}
  .dd-ico{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(0,6,255,.18);border-radius:9px;color:var(--blue-bright);background:rgba(0,6,255,.08);transition:background .14s ease,color .14s ease,border-color .14s ease}
  .dd-ico-svg{width:20px;height:20px;display:block}
  .dd-item:hover .dd-ico{background:var(--blue);border-color:var(--blue);color:#fff}
  .dd-text{display:flex;flex-direction:column;gap:2px;min-width:0}
  .dd-t{font-family:"IBM Plex Mono",monospace;font-size:13.5px;font-weight:600;color:var(--text);letter-spacing:.01em;transition:color .14s ease}
  .dd-item:hover .dd-t{color:var(--blue-bright)}
  .dd-d{font-size:12px;color:var(--muted);line-height:1.4}
  .dd-foot{margin-top:4px;padding:11px 12px 5px;border-top:1px solid var(--line-2)}
  .dd-item--soon{cursor:default}
  .dd-item--soon:hover{background:transparent}
  .dd-item--soon:hover .dd-ico{background:transparent;border-color:rgba(0,6,255,.18);color:var(--blue-bright,#0006ff)}
  .dd-badge{margin-left:8px;font-family:"IBM Plex Mono",monospace;font-size:9.5px;font-weight:700;letter-spacing:.07em;color:var(--blue-bright,#0006ff);background:rgba(0,6,255,.07);border:1px solid rgba(0,6,255,.3);padding:2px 6px;border-radius:2px;vertical-align:1px;text-transform:uppercase}
  /* ---------- MOBILE MENU (fullscreen overlay) ---------- */
  .mobile-menu{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;
    --ink:#0a0b14;--ink-2:#11131f;--line:rgba(255,255,255,.13);--line-2:rgba(255,255,255,.07);--text:#f4f5f9;--muted:#9aa0b5;--muted-2:#7e8398;
    padding:18px var(--pad) calc(30px + env(safe-area-inset-bottom));
    color:var(--text);
    background:
      radial-gradient(135% 100% at 50% 2%, rgba(10,11,20,0) 28%, #0a0b14 86%),
      linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
      radial-gradient(120% 80% at 50% -8%, rgba(0,6,255,.11), transparent 58%),
      #0a0b14;
    background-size:100% 100%, 54px 54px, 54px 54px, 100% 100%, 100% 100%;
    background-position:center top;
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px);
    transition:opacity .34s ease, transform .34s ease, visibility .34s}
.mobile-menu .logo-img{background-image:url('../img/logo-mark-light.png')}
  .mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
  .mm-top{display:flex;align-items:center;justify-content:space-between;height:50px;flex:0 0 auto}
  .mm-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r);background:transparent;border:1.5px solid var(--line);color:var(--text);cursor:pointer;transition:border-color .15s,color .15s,transform .25s}
  .mm-close:hover{border-color:var(--blue-lite);color:var(--blue-lite);transform:rotate(90deg)}
  .mm-nav{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:30px 0}
  .mm-nav a{display:flex;align-items:baseline;gap:18px;color:var(--text);text-decoration:none;
    font-family:"IBM Plex Mono",monospace;font-weight:700;letter-spacing:-.025em;
    font-size:clamp(25px,8vw,38px);line-height:1.08;padding:13px 0;border-bottom:1px solid var(--line-2);
    opacity:0;transform:translateY(12px);
    transition:opacity .45s ease,transform .45s ease,color .15s ease,padding-left .2s ease}
  .mm-nav a:hover,.mm-nav a:active{color:var(--blue-lite);padding-left:10px}
  .mm-idx{font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--blue-lite);flex:0 0 auto}
  .mobile-menu.open .mm-nav a{opacity:1;transform:translateY(0)}
  .mobile-menu.open .mm-nav a:nth-child(1){transition-delay:.10s}
  .mobile-menu.open .mm-nav a:nth-child(2){transition-delay:.16s}
  .mobile-menu.open .mm-nav a:nth-child(3){transition-delay:.22s}
  .mobile-menu.open .mm-nav a:nth-child(4){transition-delay:.28s}
  .mobile-menu.open .mm-nav a:nth-child(5){transition-delay:.34s}
  .mm-foot{flex:0 0 auto;display:flex;flex-direction:column;gap:20px}
  .mm-foot .btn{width:100%;justify-content:center;font-size:15px;padding:16px}
  .mm-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--muted)}
  .mm-meta a{color:var(--blue-lite)}
  /* ---- mobile menu: services submenu (native <details>) ---- */
  .mm-nav details{border-bottom:1px solid var(--line-2)}
  .mm-nav summary{list-style:none;display:flex;align-items:baseline;gap:18px;cursor:pointer;color:var(--text);font-family:"IBM Plex Mono",monospace;font-weight:700;letter-spacing:-.025em;font-size:clamp(25px,8vw,38px);line-height:1.08;padding:13px 0}
  .mm-nav summary::-webkit-details-marker{display:none}
  .mm-nav summary::marker{content:""}
  .mm-nav .mm-chev{margin-left:auto;align-self:center;color:var(--blue-bright);transition:transform .25s ease;flex:0 0 auto}
  .mm-nav details[open] .mm-chev{transform:rotate(180deg)}
  .mm-sub{display:flex;flex-direction:column;gap:1px;padding:4px 0 16px 42px}
  .mm-sub a{display:flex;align-items:center;gap:11px;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:clamp(17px,4.8vw,22px);color:var(--text);text-decoration:none;padding:10px 0;border:none;opacity:1;transform:none;line-height:1.2;letter-spacing:-.01em}
  .mm-sub a:active{color:var(--blue-bright)}
  .mm-sub .mm-sub-all{color:var(--blue-bright)}
  .mm-sub a .mm-sub-ico{flex:0 0 auto;width:16px;height:16px;color:var(--muted-2);transition:color .15s ease}
  .mm-sub a:active .mm-sub-ico{color:var(--blue-bright)}
  .mm-sub .mm-sub-all .mm-sub-ico{color:var(--blue-bright)}
  .mm-sub .mm-soon{display:flex;align-items:center;gap:11px;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:clamp(17px,4.8vw,22px);color:var(--text);padding:10px 0;line-height:1.2;letter-spacing:-.01em;opacity:.75}
  .mm-sub .mm-soon .mm-sub-ico{flex:0 0 auto;width:16px;height:16px;color:var(--muted-2)}
  .mm-soon-tag{font-size:10px;font-weight:700;letter-spacing:.07em;color:var(--blue-bright,#0006ff);background:rgba(0,6,255,.07);border:1px solid rgba(0,6,255,.3);padding:2px 6px;border-radius:2px;text-transform:uppercase}
  .mobile-menu .mm-soon-tag{color:#aab4ff;background:rgba(106,112,255,.14);border-color:rgba(170,180,255,.45)}

  /* ---------- FOOTER ---------- */
  footer.ft{padding:64px 0 40px;border-top:1px solid var(--line-2);margin-top:clamp(72px,11vw,130px)}
  footer.ft--cta{margin-top:0}
  .ft-cta{text-align:center;padding:clamp(6px,1.6vw,22px) 0 clamp(38px,5.5vw,58px);margin-bottom:clamp(40px,6vw,58px);border-bottom:1px solid rgba(255,255,255,.09)}
  .ft-cta .eyebrow{justify-content:center}
  .ft-cta h2{font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:clamp(24px,3.2vw,38px);letter-spacing:-.01em;color:#fff;margin:12px auto 0;max-width:26ch;line-height:1.13}
  .ft-cta .btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:24px}
  .ft-cta .btn-ghost{color:#fff}
  html.light .ft-cta .eyebrow,.ft-cta .eyebrow{color:#fff}
  html.light .ft-cta .eyebrow::before,.ft-cta .eyebrow::before{background:#fff;opacity:.85}
  html.light .ft{padding-bottom:86px;position:relative;overflow:hidden;background:var(--dark-sec);border-top-color:rgba(255,255,255,.08);color:#fff}
  html.light .ft .container{position:relative;z-index:1}
  .ft-bot{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:clamp(28px,4vw,40px);padding-top:22px;font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--muted-2)}
  html.light .ft-bot{border-top-color:rgba(255,255,255,.12);color:rgba(255,255,255,.5)}
  .ft-legal{display:flex;gap:22px;flex-wrap:wrap}
  .ft-legal a{color:inherit;text-decoration:none;transition:color .18s}
  html.light .ft-legal a:hover{color:#fff}
  .ft-rate{color:var(--blue-lite);text-decoration:none;border-bottom:1px solid rgba(106,112,255,.42);transition:border-color .18s ease,color .18s ease}
  .ft-rate:hover{border-bottom-color:var(--blue-lite);color:#fff}
  .ft-line{font-family:"IBM Plex Mono",monospace;font-size:clamp(20px,3vw,30px);font-weight:600;letter-spacing:-.02em;color:#fff;margin:30px 0 0}
  .ft-cur{display:inline-block;margin-left:3px;color:var(--blue-lite);animation:ftBlink 1.1s steps(1,end) infinite}
  @keyframes ftBlink{0%,50%{opacity:1}50.01%,100%{opacity:0}}
  .ft::before{content:"";position:absolute;top:-40%;left:-12%;width:55%;height:180%;background:radial-gradient(closest-side, rgba(0,6,255,.28), transparent 72%);opacity:.45;z-index:0;animation:ftGlow 16s ease-in-out infinite;pointer-events:none}
  @keyframes ftGlow{0%,100%{transform:translate(0,0) scale(1);opacity:.35}50%{transform:translate(60%,14%) scale(1.3);opacity:.7}}
  @media (prefers-reduced-motion:reduce){.ft-cur,.ft::before{animation:none}}
  /* ---- footer: multi-column layout ---- */
  .ft-grid{display:flex;flex-wrap:wrap;gap:44px 64px;justify-content:space-between}
  .ft-brand{flex:1 1 300px;max-width:430px}
  .ft-brand .ft-cup{display:inline-block;margin-bottom:16px}
  .ft-brand .ft-line{margin:0 0 24px;font-size:clamp(21px,2.4vw,27px)}
  .ft-contact{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:22px}
  .ft-contact a,.ft-contact span{font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:rgba(255,255,255,.66);text-decoration:none;transition:color .18s}
  .ft-contact a:hover{color:#fff}
  .ft-social{display:flex;gap:12px}
  .ft-social a{width:38px;height:38px;border-radius:var(--r);border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.72);transition:color .18s,border-color .18s,background .18s}
  .ft-social a:hover{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.06)}
  .ft-cols{display:flex;flex-wrap:wrap;gap:36px 56px}
  .ft-col h4{font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.42);margin:0 0 16px}
  .ft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
  .ft-col a{font-size:14px;color:rgba(255,255,255,.7);text-decoration:none;transition:color .18s}
  .ft-col a:hover{color:#fff}
  /* ---- footer: coluna de certificações ---- */
  .ft-col--certs{flex:0 0 auto}
  .ft-certs-stack{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
  .ft-badge{display:block;height:54px;width:auto;transition:transform .15s ease}
  .ft-badge:hover{transform:translateY(-3px)}
  @media (max-width:560px){ .ft-certs-stack{flex-direction:row;flex-wrap:wrap;gap:16px} .ft-badge{height:48px} }
  @media (max-width:820px){
    .ft-grid{gap:38px}
    .ft-cols{gap:30px 40px;width:100%}
    .ft-col{flex:1 1 38%;min-width:128px}
  }
  /* ---- footer cup-only mark ---- */
  .ft-cup{font-family:"IBM Plex Mono",monospace;font-size:32px;font-weight:500;line-height:1;letter-spacing:-.02em;color:#fff;text-decoration:none;display:inline-block}
  .ft-cup:hover{color:var(--blue-lite)}
  /* ---- whatsapp button ---- */
  .wa-float{position:fixed;right:24px;bottom:24px;width:54px;height:54px;border-radius:var(--r);background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:4px 4px 0 rgba(37,211,102,.45);z-index:120;transition:transform .14s ease,box-shadow .14s ease}
  .wa-float:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 rgba(37,211,102,.55)}
  @media (max-width:560px){ .wa-float{right:16px;bottom:16px;width:50px;height:50px} }

  /* ---- language switcher ---- */
  .lang-sel{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:var(--r);padding:2px;background:rgba(255,255,255,.03)}
  .lang-opt{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:1px;font-family:"IBM Plex Mono",monospace;font-size:10px;font-weight:600;letter-spacing:.05em;color:var(--muted-2);line-height:1;transition:color .15s,background .15s}
  .lang-opt .flag{width:18px;height:13px;border-radius:1px;display:block;flex:0 0 auto;box-shadow:0 0 0 1px rgba(0,0,0,.3)}
  .lang-opt:hover{color:var(--text)}
  .lang-opt.is-active{color:var(--text);background:rgba(255,255,255,.08);cursor:default}
  .lang-opt.is-active .flag{box-shadow:0 0 0 1px var(--blue-lite)}

  /* ---- reduced motion ---- */
  @media (prefers-reduced-motion:reduce){
    *{animation-duration:.001ms!important;animation-iteration-count:1!important}
    html{scroll-behavior:auto}
  }

  /* ---- overflow guards (mobile) ---- */
  *{min-width:0}
  img,svg,canvas,video{max-width:100%}
  h1,h2,h3,.intro .big,.lede,.quote p{overflow-wrap:break-word}
  .mailto,.mailto a,.mm-meta a,.card .meta{overflow-wrap:anywhere}

  /* ---- theme (html.light is the only theme; always active) ---- */
  html.light{
    --ink:#f3f2ef; --ink-2:#ffffff; --ink-3:#eae8e3;
    --line:rgba(20,22,32,.12); --line-2:rgba(20,22,32,.07);
    --text:#14151f; --muted:#565c6e; --muted-2:#888d9b; --ink-0:rgba(243,242,239,0);
    --dark-sec:radial-gradient(120% 130% at 84% -12%, #0c0e34 0%, #070920 22%, #05060d 50%, #030308 100%);
  }
  html.light body{background:var(--ink);color:var(--text)}
  html.light .nav.scrolled{background:rgba(243,242,239,.82);border-bottom:1px solid var(--line)}
  html.light .eyebrow, html.light .hl, html.light .intro .big em{color:var(--blue-bright)}
  html.light .card .thumb{background:#e9e7e2}
  html.light .lang-sel{background:rgba(20,22,32,.04)}
  html.light .lang-opt.is-active{background:rgba(20,22,32,.07)}
  html.light .lang-opt .flag{box-shadow:0 0 0 1px rgba(0,0,0,.15)}

/* ---- shared contact section + form (used by home + service pages, via parts/contact-footer.php) ---- */
.sv-head{margin-bottom:clamp(26px,3.5vw,42px);max-width:42ch}
.sv-head h2{font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:clamp(24px,3.4vw,40px);letter-spacing:-.015em;line-height:1.1;margin:12px 0 0}
.sv-contact{border-top:1px solid var(--line-2);background:radial-gradient(120% 120% at 85% 0%, rgba(0,6,255,.06), transparent 55%), var(--ink)}
.sv-contact .sv-head{max-width:60ch}
.sv-contact .sub{color:var(--muted);font-size:clamp(15px,1.5vw,18px);margin:16px 0 0;max-width:52ch}
.ct-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(28px,4vw,60px);align-items:start;margin-top:clamp(34px,5vw,52px)}
.ct-aside{display:flex;flex-direction:column;gap:clamp(22px,2.6vw,30px)}
.ct-aside-intro{color:var(--muted);font-size:clamp(15px,1.3vw,17px);line-height:1.6;max-width:40ch;margin:0}
.ct-methods{display:flex;flex-direction:column;gap:16px}
.ct-method{display:flex;gap:14px;align-items:center;text-decoration:none;color:inherit}
.ct-method-ico{width:40px;height:40px;flex:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r);background:var(--ink-2)}
.ct-method-ico svg{width:18px;height:18px;color:var(--blue-bright)}
.ct-method-l{display:block;font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.ct-method-v{display:block;font-weight:600;font-size:15px;color:var(--text);margin-top:2px}
.ct-method[href]:hover .ct-method-v{color:var(--blue-bright)}
.ct-after{border-top:1px solid var(--line);padding-top:20px}
.ct-after h3{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2);margin:0 0 10px}
.ct-after ol{margin:0;padding-left:18px;color:var(--muted);font-size:14px;line-height:1.7}
.ct-after li{margin-bottom:6px}
.ct-form-card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,2.6vw,34px);box-shadow:6px 6px 0 var(--line-2)}
.ct-form{display:flex;flex-direction:column;gap:16px}.ct-form[hidden]{display:none}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ct-field{display:flex;flex-direction:column;gap:6px}
.ct-field label{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted-2)}
.ct-field input,.ct-field select,.ct-field textarea{font-family:inherit;font-size:15px;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:11px 13px;width:100%;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.ct-field input::placeholder,.ct-field textarea::placeholder{color:var(--muted-2)}
.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus{border-color:var(--blue-bright);box-shadow:0 0 0 3px rgba(0,6,255,.12)}
.ct-field textarea{resize:vertical;min-height:98px;line-height:1.5}
.ct-field select{cursor:pointer}
.ct-submit{margin-top:6px;align-self:flex-start}
.ct-submit[disabled]{opacity:.6;cursor:progress}
.ct-spinner{display:none;width:14px;height:14px;margin-left:8px;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;border-radius:50%;vertical-align:-2px;animation:ct-spin .6s linear infinite}
.ct-form.submitting .ct-submit{opacity:.6;cursor:progress}
.ct-form.submitting .arw{display:none}
.ct-form.submitting .ct-spinner{display:inline-block}
@keyframes ct-spin{to{transform:rotate(360deg)}}

/* Contact Form 7 compat: neutralize its auto-wrapping <p> so label+field keep the original stacked layout */
.ct-field>p{display:contents}
.ct-form .wpcf7-not-valid-tip{display:block;margin-top:4px;font-size:12px;color:#ff5468}
.ct-form .wpcf7-response-output{margin:0;border-radius:var(--r);padding:11px 13px;font-family:"IBM Plex Mono",monospace;font-size:12.5px;line-height:1.6;border:1px solid var(--line);background:var(--ink);color:var(--muted)}
.ct-form.sent .wpcf7-response-output{border-color:var(--wa);color:var(--text)}
.ct-form.failed .wpcf7-response-output,.ct-form.aborted .wpcf7-response-output,.ct-form.spam .wpcf7-response-output{border-color:#ff5468;color:var(--text)}
.ct-note{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--muted-2);margin:2px 0 0;line-height:1.6}
.ct-note a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.ct-success{text-align:center;padding:clamp(20px,4vw,36px) 8px}
.ct-cup-wrap{position:relative;display:inline-block;margin-bottom:6px;min-height:58px;line-height:1}
.ct-cup{font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:clamp(40px,7vw,56px);line-height:1;letter-spacing:.1em;color:var(--text);min-height:1em}
.ct-cup::before{content:attr(data-art)}
.ct-steam{position:absolute;left:50%;top:-4px;transform:translateX(-50%);display:flex;gap:8px;pointer-events:none;opacity:0;transition:opacity .35s ease}
.ct-steam.is-on{opacity:1}
.ct-steam i{width:3px;height:16px;border-radius:3px;background:var(--blue-bright);opacity:0;animation:ct-steam 1.7s ease-in-out infinite}
.ct-steam i:nth-child(2){animation-delay:.35s;height:21px}
.ct-steam i:nth-child(3){animation-delay:.7s}
@keyframes ct-steam{0%{opacity:0;transform:translateY(6px) scaleY(.5)}28%{opacity:.5}60%{opacity:.3}100%{opacity:0;transform:translateY(-17px) scaleY(1.15)}}
.ct-typed{font-family:"IBM Plex Mono",monospace;font-size:clamp(15px,1.5vw,18px);color:var(--text);margin:6px 0 0;min-height:1.4em}
.ct-prompt,.ct-check{color:var(--blue-bright);font-weight:700}
.ct-caret{display:inline-block;width:8px;height:1.05em;vertical-align:-2px;background:var(--blue-bright);margin-left:3px;animation:ct-blink 1s step-end infinite}
@keyframes ct-blink{0%,100%{opacity:1}50%{opacity:0}}
.ct-done{margin-top:22px}
.ct-done p{color:var(--muted);font-size:15px;line-height:1.6;max-width:42ch;margin:0 auto 18px}
.ct-done:not([hidden]){animation:ct-fade .5s ease}
@keyframes ct-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.ct-steam i,.ct-caret{animation:none}}
@media (max-width:820px){.ct-grid{grid-template-columns:1fr;gap:clamp(24px,6vw,36px)}}
@media (max-width:520px){.ct-row{grid-template-columns:1fr}}

html.light .sv-contact{
  --ink:#0a0b14;--ink-2:#11131f;--text:#f4f5f9;--muted:#9aa0b5;--muted-2:#6e7488;
  --line:rgba(255,255,255,.10);--line-2:rgba(255,255,255,.06);
  color:var(--text);border-color:rgba(255,255,255,.08)
}
html.light .sv-contact{background:radial-gradient(120% 120% at 85% 8%, rgba(0,6,255,.09), transparent 55%), radial-gradient(120% 130% at 84% -12%, #0c0e34 0%, #070920 22%, #05060d 50%, #030308 100%)}
html.light .sv-contact .eyebrow{color:#b9bdff}
html.light .sv-contact .eyebrow::before{background:#b9bdff;opacity:1}

/* === contato + footer unificados num bloco escuro continuo === */
.contact-footer{position:relative;overflow:hidden;
  --ink:#0a0b14;--ink-2:#11131f;--text:#f4f5f9;--muted:#9aa0b5;--muted-2:#6e7488;
  --line:rgba(255,255,255,.10);--line-2:rgba(255,255,255,.06);color:var(--text);
  background:radial-gradient(120% 70% at 85% 0%, rgba(0,6,255,.09), transparent 52%), radial-gradient(120% 130% at 84% -12%, #0c0e34 0%, #070920 22%, #05060d 50%, #030308 100%)}
html.light .contact-footer .sv-contact{background:transparent;border-top-color:rgba(255,255,255,.07)}
html.light .contact-footer .ft{background:transparent;border-top:none;margin-top:0}
html.light .contact-footer .ft::before{display:none}
  html.light .hero-grid{opacity:.7}
