/*
 * OnCam — estilos globais.
 * Consolidação em classes dos estilos inline do export do Claude Design (mesmo
 * resultado visual em 390, 768, 1024 e 1440 px). Tokens no README.md.
 */

/* ------------------------------------------------------------------ Fontes (self-hosted) */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../fonts/ibm-plex-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ------------------------------------------------------------------ Tokens */
:root{
  --dark:#111111;
  --light:#FFFFFF;
  --alt:#F2F2F0;
  --ink:#111111;
  --ink-2:#222222;
  --ink-3:#3A3A3A;
  --ink-4:#444444;
  --ink-5:#4A4A4A;
  --muted:#595959;
  --on-dark:#F7F7F5;
  --on-dark-2:#BDBDBD;
  --on-dark-3:#A8A8A8;
  --accent:#FFC233;
  --tint:#FFF3D1;
  --line:#EAEAE8; /* divisórias: #D4D4D0 clareado 50% em direção ao branco */
  --error:#B42318;
  --error-bg:#FEF3F2;
  --gutter:clamp(20px, 5vw, 64px);
  --header-h:72px;
  --sans:'IBM Plex Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* ------------------------------------------------------------------ Base */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--dark)}
[hidden]{display:none !important}
img,svg{max-width:100%}
.page{font-family:var(--sans);color:var(--ink);background:var(--light);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
main{flex:1 0 auto;outline:none;display:flex;flex-direction:column}
main>*{flex:none}
section,article,[id]{scroll-margin-top:var(--header-h)}
a{color:var(--ink)}a:hover{color:#000000}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.dk a:focus-visible,.dk button:focus-visible{outline-color:var(--accent)}
.mono{font-family:var(--mono)}
.wrap{max-width:1312px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.desk{display:flex}
.mob{display:none}
.skip-link{position:absolute;left:12px;top:-100px;z-index:50;padding:12px 16px;background:var(--accent);color:var(--ink);font:600 15px/1 var(--sans);text-decoration:none;border-radius:2px}
.skip-link:focus{top:12px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.text-link{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ------------------------------------------------------------------ Botões */
.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 24px;font:inherit;font-size:16px;font-weight:600;text-decoration:none;border:0;border-radius:2px;cursor:pointer}
.btn--accent{background:var(--accent);color:var(--ink)}
.btn--accent:hover{color:var(--ink);background:#FFCD57}
.btn--dark{padding:0 28px;background:var(--dark);color:#FFFFFF}
.btn--dark:hover{color:#FFFFFF;background:#2A2A2A}
.btn[disabled]{opacity:.7;cursor:progress}

/* ------------------------------------------------------------------ Cabeçalho */
.site-header{position:sticky;top:0;z-index:20;background:var(--dark);border-bottom:1px solid #262626}
.site-header__bar{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;min-height:44px;text-decoration:none}
.brand img{display:block;height:30px;width:auto}
.brand--footer img{height:26px}
.site-header__desk{align-items:center;gap:36px}
.nav-list{list-style:none;margin:0;padding:0;display:flex;gap:28px;font-size:15px;font-weight:500}
.nav-link{color:#C8C8C8;text-decoration:none;display:inline-block;padding:24px 0 22px;border-bottom:2px solid transparent}
.nav-link:hover{color:#FFFFFF}
.nav-link[aria-current]{color:#FFFFFF;border-bottom-color:var(--accent)}
.lang-switch{display:flex;align-items:center;gap:4px}
.lang-switch--desk{padding-left:28px;border-left:1px solid #333333}
.lang-switch--desk svg{display:block;margin-right:6px}
.lang-btn{min-width:36px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;letter-spacing:.06em;color:#C8C8C8;border:1px solid #333333;border-radius:2px;text-decoration:none}
.lang-btn:hover{color:#FFFFFF;border-color:#5A5A5A}
.lang-btn--lg{min-width:44px;height:44px}
.lang-btn.is-active{color:var(--ink);background:#FFFFFF;border-color:#FFFFFF}
.site-header__mob{align-items:center;gap:8px}
.menu-toggle{width:44px;height:44px;padding:0;background:transparent;color:#FFFFFF;border:1px solid #4A4A4A;border-radius:2px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.menu-mobile{position:absolute;left:0;right:0;top:var(--header-h);background:var(--dark);border-bottom:1px solid #333333;padding:4px var(--gutter) 20px;max-height:calc(100vh - var(--header-h));overflow-y:auto}
.menu-mobile ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.menu-mobile li{border-bottom:1px solid #262626}
.menu-mobile li:last-child{border-bottom:0}
.menu-mobile a{display:flex;align-items:center;gap:12px;min-height:56px;color:#E0E0E0;text-decoration:none;font-size:18px}
.menu-mobile__dot{width:6px;height:6px;border-radius:50%;background:transparent;flex:none}
.menu-mobile a[aria-current]{color:#FFFFFF;font-weight:500}
.menu-mobile a[aria-current] .menu-mobile__dot{background:var(--accent)}

/* ------------------------------------------------------------------ Hero */
.hero{background:var(--dark);color:var(--on-dark);position:relative;overflow:hidden}
.hero__orbs{position:absolute;right:-220px;top:20px;pointer-events:none;max-width:none}
.hero__inner{position:relative;padding-top:clamp(80px, 11vw, 152px);padding-bottom:clamp(80px, 10vw, 136px);display:flex;flex-direction:column;gap:32px}
.hero--compact{flex:1 0 auto}
.hero--compact .hero__inner{padding-top:clamp(72px, 9vw, 128px);padding-bottom:clamp(72px, 9vw, 128px)}
.kicker{margin:0;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-3)}
.kicker__rule{width:24px;height:2px;background:var(--accent);display:block;flex:none}
.hero__title{margin:0;max-width:980px;font-size:clamp(38px, 5.4vw, 76px);line-height:1.04;font-weight:500;letter-spacing:-.025em;text-wrap:balance}
.hero__lead{margin:0;max-width:700px;font-size:clamp(17px, 1.45vw, 20px);line-height:1.65;color:var(--on-dark-2);text-wrap:pretty}
.hero__actions{display:flex;flex-wrap:wrap;gap:16px;padding-top:8px}

/* ------------------------------------------------------------------ Seções */
.section{background:var(--light)}
.section--alt{background:var(--alt)}
.section__inner{padding-top:clamp(80px, 9vw, 136px);padding-bottom:clamp(80px, 9vw, 136px);display:flex;flex-wrap:wrap;gap:28px 64px}
.section__index{flex:1 1 200px;display:flex;flex-direction:column;gap:12px}
.section__num{font-size:13px;font-weight:500}
.section__rule{width:40px;height:2px;background:var(--ink);display:block}
.section__label{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.section__body{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;gap:56px}
.section__body--tight{gap:40px}
.section__intro{display:flex;flex-direction:column;gap:24px}
.section__title{margin:0;font-size:clamp(32px, 3.4vw, 50px);line-height:1.1;font-weight:500;letter-spacing:-.02em;text-wrap:balance}
.lead{margin:0;font-size:clamp(19px, 1.6vw, 23px);line-height:1.5;color:var(--ink-2);text-wrap:pretty}
.lead--sm{font-size:clamp(18px, 1.5vw, 21px);line-height:1.55}
.text{margin:0;font-size:17px;line-height:1.7;color:var(--ink-3);text-wrap:pretty}

/* Ícones */
.tile{flex:none;display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;background:var(--tint);transition:transform .25s ease}
.tile svg{overflow:visible;display:block}
.tile--md{width:52px;height:52px;border-radius:15px}
.tile--md svg{width:30px;height:30px}
.tile--lg{width:76px;min-height:76px;border-radius:16px;align-self:stretch}
.tile--lg svg{width:38px;height:38px}
.tile--accent{background:var(--accent)}
li:hover .tile,div:hover>.tile{transform:translateY(-2px) rotate(-3deg)}

/* 01 O que fazemos */
.feature-grid{display:grid;grid-template-columns:1fr;gap:40px}
.feature{border-top:1px solid var(--line);padding-top:24px;display:flex;gap:22px;align-items:stretch}
.feature__text{display:flex;flex-direction:column;gap:8px;min-width:0;padding:2px 0 4px}
.feature h3{margin:0;font-size:20px;line-height:1.3;font-weight:600}
.feature p{margin:0;font-size:16px;line-height:1.65;color:var(--ink-4);text-wrap:pretty}

/* 02 Tecnologia */
.card-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(250px, 100%), 1fr));gap:16px}
.card{background:var(--light);border-radius:6px;padding:28px 24px 30px;display:flex;flex-direction:column;gap:12px}
.card h3{margin:10px 0 0;font-size:19px;line-height:1.3;font-weight:600}
.card p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-5)}

/* 03 Segurança */
.check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(320px, 100%), 1fr));column-gap:40px;border-top:1px solid var(--line)}
.check-list li{padding:32px 24px 32px 0;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:22px}
.check-list__text{display:flex;flex-direction:column;gap:8px}
.check-list h3{margin:0;font-size:19px;line-height:1.3;font-weight:600}
.check-list p{margin:0;font-size:15px;line-height:1.65;color:var(--ink-5);text-wrap:pretty}

/* Ilustração */
.illustration{background:var(--dark)}
.illustration__figure{margin:0 auto;padding-top:clamp(56px, 7vw, 112px);padding-bottom:clamp(56px, 7vw, 112px);padding-left:clamp(12px, 5vw, 64px);padding-right:clamp(12px, 5vw, 64px)}
.illustration__frame{max-width:1120px;margin:0 auto}
.illustration__svg{display:block;width:100%;height:auto}

/* 05 Trabalhe conosco */
.areas{display:flex;flex-direction:column;gap:28px;border-top:1px solid var(--line);padding-top:32px}
.area-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(250px, 100%), 1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.area-grid li{background:var(--light);padding:24px 24px 28px;display:flex;flex-direction:column;gap:8px}
.area-grid__num{font-size:12px;color:var(--muted)}
.area-grid h3{margin:4px 0 0;font-size:17px;line-height:1.3;font-weight:600}
.area-grid p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-5)}
.careers__cta{margin:0;font-size:17px;line-height:1.7;color:#333333}

/* ------------------------------------------------------------------ Formulário */
.contact-form{position:relative;max-width:860px;background:var(--light);padding:clamp(24px, 3.5vw, 48px);display:flex;flex-direction:column;gap:24px}
/* align-items:start: quando só um dos dois campos da linha tem erro, os dois
   continuam alinhados pelo topo e a mensagem cresce para baixo. */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(260px, 100%), 1fr));gap:22px 24px;align-items:start}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field--full{grid-column:1 / -1}
.field__label{font-size:14px;font-weight:500;color:var(--ink-2)}
.field__optional{font-weight:400;color:var(--muted)}
.input{width:100%;height:50px;padding:0 14px;border:1px solid #8A8A8A;border-radius:2px;font:inherit;font-size:16px;color:var(--ink);background:#FFFFFF;scroll-margin-top:calc(var(--header-h) + 72px)}
.input--select{padding:0 12px}
.input--textarea{height:auto;min-height:150px;padding:12px 14px;line-height:1.55;resize:vertical}
.input:hover{border-color:#5A5A5A}
/* Telefone: seletor de país (select nativo transparente sobre bandeira + DDI) + número com máscara */
.phone{display:flex;gap:8px;min-width:0}
.phone .input--input{flex:1 1 auto;min-width:0}
.phone__country{position:relative;flex:none;width:104px;display:flex;align-items:center;gap:6px;padding:0 10px 0 12px}
.phone__display{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;white-space:nowrap;pointer-events:none}
.phone__flag{font-size:20px;line-height:1}
.phone__dial{font-size:16px;color:var(--ink)}
.phone__chevron{flex:none;color:var(--ink-3);pointer-events:none}
.phone__select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font:inherit;font-size:16px;border:0}
.phone__country:focus-within{outline:2px solid var(--ink);outline-offset:3px}
.field-error{display:flex;gap:6px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--error)}
.field-error::before{content:'';flex:none;width:14px;height:14px;margin-top:2px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B42318' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center/contain no-repeat}
.has-error .field__label{color:var(--error)}
.is-invalid,.has-error .input{border-color:var(--error) !important;box-shadow:0 0 0 1px var(--error);background:var(--error-bg)}
.is-invalid:focus-visible{outline-color:var(--error)}
.field--captcha{gap:6px;align-items:center;text-align:center}
/* Widget no tamanho padrão do Turnstile (300×65), centralizado. */
.captcha{width:100%;min-height:65px;display:flex;justify-content:center}
.field-hint{margin:0;font-size:14px;line-height:1.5;color:var(--ink-3)}
.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;font-size:14px;line-height:1.5}
.alert svg{flex:none;margin-top:1px}
.alert--error{background:var(--error-bg);border:1px solid #F4C7C3;color:#8A1C12}
.alert--success{background:#EEF6EE;border:1px solid #B7D7B9;color:#1E4620}
.form-footer{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;border-top:1px solid var(--line);padding-top:24px}

/* ------------------------------------------------------------------ Rodapé */
.site-footer{background:var(--dark);color:#C8C8C8;border-top:1px solid #262626}
.site-footer__inner{padding-top:22px;padding-bottom:22px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 40px}
.site-footer__legal{margin:0 0 0 auto;font-size:13px;line-height:1.5;color:var(--on-dark-3);text-align:right}
.site-footer__cnpj{color:#D6D6D6}

/* ------------------------------------------------------------------ Animações */
.orb{animation:drift 22s ease-in-out infinite}
.orb2{animation:drift 22s ease-in-out infinite reverse}
@keyframes drift{0%{transform:translateX(0)}50%{transform:translateX(-14px)}100%{transform:translateX(0)}}
.ia{transform-box:fill-box;transform-origin:center}
.i-float{animation:ifloat 3.2s ease-in-out infinite}
@keyframes ifloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6px)}}
.i-pulse{animation:ipulse 2.4s ease-in-out infinite}
@keyframes ipulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.i-blink{animation:iblink 1.6s ease-in-out infinite}
@keyframes iblink{0%,100%{opacity:1}50%{opacity:.2}}
.i-wave{animation:iwave 2.2s ease-out infinite}
@keyframes iwave{0%{opacity:.15}35%{opacity:1}100%{opacity:.15}}
.i-spin{animation:ispin 7s linear infinite}
@keyframes ispin{to{transform:rotate(360deg)}}
.i-dot{animation:idot 1.3s ease-in-out infinite}
@keyframes idot{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-1.8px)}}
.i-scan{animation:iscan 2.6s ease-in-out infinite}
@keyframes iscan{0%,100%{transform:translateY(-4px)}50%{transform:translateY(4px)}}
.i-eye{animation:ieye 4.5s ease-in-out infinite}
@keyframes ieye{0%,90%,100%{transform:scaleY(1)}95%{transform:scaleY(.12)}}
.i-tw{animation:itw 2.4s ease-in-out infinite}
@keyframes itw{0%,100%{transform:scale(.75) rotate(0deg)}50%{transform:scale(1.15) rotate(25deg)}}
.i-shk{animation:ishk 3s ease-in-out infinite}
@keyframes ishk{0%,65%,100%{transform:translateY(0)}78%{transform:translateY(-2.2px)}}
.i-grow{transform-box:fill-box;transform-origin:center bottom;animation:igrow 2.8s ease-in-out infinite}
@keyframes igrow{0%,100%{transform:scaleY(.65)}50%{transform:scaleY(1)}}
.d2{animation-delay:.35s}.d3{animation-delay:.7s}
.blink{animation:iblink 1.4s ease-in-out infinite}
.flow{animation:flow 1.4s linear infinite}
@keyframes flow{to{stroke-dashoffset:-28}}
.stat{display:none}

@media (prefers-reduced-motion: reduce){
  .orb,.orb2,.flow,.ia,.i-wave,.i-blink,.i-grow,.blink{animation:none}
  .tile{transition:none}
  .anim{display:none}
  .stat{display:inline}
  html{scroll-behavior:auto}
}

/* ------------------------------------------------------------------ Responsivo */
@media (max-width: 960px){
  .desk{display:none}
  .mob{display:flex}
  .section__index{flex-direction:row;align-items:center}
}
@media (max-width: 600px){
  /* Rodapé no celular: sem o logo, texto à esquerda ocupando a largura toda. */
  .site-footer .brand--footer{display:none}
  .site-footer__legal{margin:0;flex:1 1 100%;text-align:left}
}
@media (max-width: 480px){
  .tile--lg{width:60px;min-height:60px;border-radius:14px}
  .tile--lg svg{width:32px;height:32px}
  .feature{gap:18px}
  .check-list li{padding-right:0}
  .form-footer .btn{width:100%;justify-content:center}
}
