/* ============================================================
   Agencia Orso - sistema visual do site
   Mesma identidade do deck comercial e da pagina de links:
   preto/carvao, glow ambar, hexagono, Montserrat 900 caixa-alta
   com a 1a parte branca e a 2a laranja sublinhada.
   Tema unico e escuro de proposito - e a marca.
   ============================================================ */

@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/m3.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;
  src:url(/fonts/m2.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

*{box-sizing:border-box;margin:0;padding:0}

:root{
  --ink:#0A0908;
  --ink-2:#0F0D0B;
  --panel:rgba(255,255,255,.035);
  --panel-2:rgba(255,255,255,.055);
  --line:rgba(255,255,255,.08);
  --line-2:rgba(255,255,255,.14);
  --orange:#F5A623;
  --orange-dim:rgba(245,166,35,.38);
  --white:#FFFFFF;
  --text:#C8C2B9;
  --dim:#8B857C;
  --faint:#5E594F;

  --wrap:1140px;
  --gut:clamp(20px,5vw,40px);
  --sec:clamp(64px,9vw,116px);
}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

body{
  background:var(--ink);
  color:var(--text);
  font-family:'Montserrat',system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.68;font-weight:500;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit}

/* ---------- textura hexagonal ---------- */
.hexbg{
  position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='268' height='232' viewBox='0 0 268 232'%3E%3Cg fill='none' stroke='%23F5A623' stroke-width='1.1' opacity='.14'%3E%3Cpath d='M67 0 L201 0 L268 116 L201 232 L67 232 L0 116 Z'/%3E%3Cpath d='M67 -116 L201 -116 L268 0 L201 116 L67 116 L0 0 Z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:268px 232px;
}

/* ---------- estrutura ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
main{position:relative;z-index:1}
section{position:relative;padding-block:var(--sec)}
.sec-line{border-top:1px solid var(--line)}

/* ---------- tipografia ---------- */
.kicker{
  font-size:11px;font-weight:800;letter-spacing:.34em;text-transform:uppercase;
  color:var(--orange);text-indent:.34em;margin-bottom:18px;
}
h1,h2,h3{color:var(--white);text-transform:uppercase;font-weight:900;
  letter-spacing:-.015em;line-height:1.06;text-wrap:balance}
h1{font-size:clamp(32px,6.4vw,62px)}
h2{font-size:clamp(26px,4.4vw,44px)}
h3{font-size:clamp(17px,2vw,21px);line-height:1.16;letter-spacing:.005em}
em.hl{font-style:normal;color:var(--orange);
  box-shadow:inset 0 -.14em 0 0 var(--orange)}

.lead{font-size:clamp(17px,1.9vw,21px);line-height:1.55;color:#E8E3DB;font-weight:500;
  max-width:62ch;text-wrap:pretty}
/* o sublinhado do em.hl e desenhado para DENTRO da caixa do titulo, entao um
   paragrafo colado logo abaixo encosta nele. So o hero tinha essa margem. */
h1+.lead,h2+.lead,h1+.body,h2+.body{margin-top:22px}
.body{max-width:64ch;text-wrap:pretty}
.body p+p{margin-top:16px}
.body strong{color:var(--white);font-weight:700}
.muted{color:var(--dim)}
.rule{height:1px;background:linear-gradient(90deg,var(--orange),var(--ink));margin:26px 0}

/* ---------- botoes ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  min-height:52px;padding:0 24px;border-radius:8px;border:1px solid transparent;
  font-size:13.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  text-decoration:none;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .12s ease;
}
.btn:active{transform:scale(.985)}
.btn:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.btn-primary{background:var(--orange);color:#140E03;border-color:var(--orange)}
.btn-primary:hover{background:#FFB733;border-color:#FFB733}
.btn-ghost{background:transparent;color:var(--white);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--orange);background:rgba(245,166,35,.08)}
.btn .hex{width:11px;height:12.5px;flex:none;background:currentColor;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}

.btns{display:flex;flex-wrap:wrap;gap:12px}
/* empilhados no celular eles ficavam com larguras diferentes, o que le como
   desalinho. Lado a lado no desktop, largura cheia quando quebram. */
@media (max-width:520px){ .btns .btn{width:100%;justify-content:center} }

/* ---------- cabecalho ---------- */
.hdr{
  position:sticky;top:0;z-index:50;
  background:rgba(10,9,8,.86);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.hdr .wrap{display:flex;align-items:center;gap:20px;height:70px}
.hdr .logo{width:124px;aspect-ratio:562/233;flex:none;
  background:url(/assets/logo-orso.png) center/contain no-repeat}
.nav{display:none;margin-left:auto;gap:26px}
.nav a{
  font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text);text-decoration:none;padding:6px 0;
  border-bottom:1px solid transparent;transition:color .18s,border-color .18s;
}
.nav a:hover,.nav a[aria-current="page"]{color:var(--white);border-bottom-color:var(--orange)}
.hdr .btn{margin-left:auto;min-height:42px;padding:0 16px;font-size:11.5px}
@media (min-width:880px){
  .nav{display:flex}
  .hdr .btn{margin-left:0}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding-block:clamp(56px,10vw,110px)}
.hero-img{
  position:absolute;inset:0;z-index:0;
  background:url(/assets/hero.jpg) center/cover no-repeat;
}
.hero-veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(10,9,8,.92) 0%,rgba(10,9,8,.62) 34%,rgba(10,9,8,.88) 74%,var(--ink) 100%),
             linear-gradient(90deg,var(--ink) 4%,rgba(10,9,8,.35) 62%,rgba(10,9,8,.1) 100%);
}
.hero .wrap{position:relative;z-index:2}
.hero p.lead{margin-top:22px}
.hero .btns{margin-top:34px}

/* faixa de credenciais */
.creds{display:flex;flex-wrap:wrap;gap:14px 30px;margin-top:40px;
  font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--dim)}
.creds b{color:var(--orange);font-weight:900;font-size:15px}

/* ---------- cards ---------- */
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:clamp(22px,3vw,32px);position:relative;
}
.card.accent{border-color:var(--orange-dim);background:rgba(245,166,35,.05)}
.card h3{margin-bottom:12px}
.card p{font-size:15px;line-height:1.6}
.tag{display:block;font-size:10.5px;font-weight:800;letter-spacing:.22em;
  text-transform:uppercase;color:var(--orange);margin-bottom:12px;text-indent:.22em}

/* As 4 frentes lado a lado: em coluna de ~250px o padding de 32px do .card
   comia metade da largura util, entao aqui ele encolhe. Flex-column para o
   botao da frente 4 ancorar embaixo e os 4 cards fecharem na mesma linha.
   No celular a .g4 cairia para 2 colunas de ~153px, onde "GESTAO DE
   MARKETING" quebra em quatro linhas - por isso volta a 1 coluna ate 560px. */
.frentes{grid-template-columns:1fr}
@media (min-width:560px){ .frentes{grid-template-columns:1fr 1fr} }
@media (min-width:900px){ .frentes{grid-template-columns:repeat(4,1fr)} }
.frentes .card{display:flex;flex-direction:column;padding:clamp(18px,1.9vw,24px)}
.frentes .card h3{font-size:clamp(16px,1.45vw,19px);margin-bottom:10px}
.frentes .card p{font-size:14.5px;line-height:1.55}

.grid{display:grid;gap:clamp(14px,2vw,20px)}
.g2{grid-template-columns:1fr}
.g3{grid-template-columns:1fr}
.g4{grid-template-columns:1fr 1fr}
@media (min-width:720px){ .g2{grid-template-columns:1fr 1fr} }
@media (min-width:900px){ .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)} }

/* ---------- lista hexagonal ---------- */
.hexlist{list-style:none;display:grid;gap:14px}
.hexlist li{position:relative;padding-left:26px;
  font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#EDE8E0}
.hexlist li::before{content:'';position:absolute;left:9px;top:5px;width:9px;height:10.5px;
  background:var(--orange);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.hexlist li::after{content:'';position:absolute;left:0;top:9.5px;width:7px;height:1px;
  background:linear-gradient(90deg,var(--ink-2),var(--orange))}

/* toggle ON/OFF da identidade */
.toggle{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 8px;
  border-radius:16px;font-size:11.5px;font-weight:900;letter-spacing:.09em}
.toggle .dot{width:19px;height:19px;border-radius:50%;background:#fff}
.toggle.on{background:var(--orange);color:#1A1206;flex-direction:row-reverse}
.toggle.off{background:#fff;color:#1A1206}
.toggle.off .dot{background:var(--orange)}
.tlabel{font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--white);
  text-transform:uppercase;line-height:1.35;margin-bottom:12px;text-indent:.2em}

/* ---------- numeros ---------- */
.stat .n{font-size:clamp(30px,4.4vw,44px);font-weight:900;color:var(--orange);
  line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat .n small{font-size:.52em;font-weight:800}
.stat .l{font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--dim);margin-top:10px;line-height:1.4}

/* ---------- etapas numeradas ---------- */
.steps{display:grid;gap:0;counter-reset:s}
.step{position:relative;padding:0 0 30px 60px}
.step:last-child{padding-bottom:0}
.step::before{
  counter-increment:s;content:counter(s,decimal-leading-zero);
  position:absolute;left:0;top:0;width:38px;height:43px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(245,166,35,.14);color:var(--orange);
  font-size:13px;font-weight:900;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
}
.step:first-child::before{background:var(--orange);color:#1A1206}
.step:not(:last-child)::after{
  content:'';position:absolute;left:18.5px;top:47px;bottom:6px;width:1px;
  background:linear-gradient(180deg,#8F5F17,#261C0B);
}
.step h3{font-size:16px;margin-bottom:6px}
.step p{font-size:14.5px;color:var(--text)}

/* ---------- logos de cliente ---------- */
.logos{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 20px;align-items:center}
@media (min-width:640px){ .logos{grid-template-columns:repeat(4,1fr)} }
/* Altura POR logo, nao uniforme. Logo quadrado na mesma altura de um wordmark
   largo parece menor - e o problema classico de mural de logos. Os valores vem
   das proporcoes que ja foram calibradas no deck comercial. */
.logos img{margin:0 auto;height:var(--h,42px);width:auto;max-width:100%;
  object-fit:contain;opacity:.85;transition:opacity .18s ease}
.logos img:hover{opacity:1}

/* ---------- CTA final ---------- */
.cta{border:1px solid var(--orange);border-radius:12px;background:rgba(245,166,35,.07);
  padding:clamp(28px,4vw,46px)}

/* ---------- rodape ---------- */
.ft{position:relative;z-index:1;border-top:1px solid var(--line);
  padding-block:52px 40px;background:var(--ink-2)}
.ft-top{display:grid;gap:34px}
@media (min-width:760px){ .ft-top{grid-template-columns:1.4fr 1fr 1fr} }
.ft .logo{width:150px;aspect-ratio:562/233;
  background:url(/assets/logo-orso.png) left center/contain no-repeat}
.ft h4{font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;
  color:var(--white);margin-bottom:16px;text-indent:.24em}
.ft ul{list-style:none;display:grid;gap:10px}
.ft a{font-size:14px;color:var(--text);text-decoration:none;transition:color .18s}
.ft a:hover{color:var(--orange)}
.ft-bot{margin-top:42px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between;
  font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.ft-bot .o{color:var(--orange)}

/* ---------- portfolio de video ---------- */
/* Ancoras de categoria. Sem JS de propriedade: cada categoria e uma <section>
   de verdade, entao funciona sem script, indexa no Google e o link direto
   para uma categoria pode ser mandado no WhatsApp. */
.pfnav{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.pfnav a{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;border-radius:999px;border:1px solid var(--line-2);
  font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text);text-decoration:none;transition:border-color .18s,color .18s,background .18s;
}
.pfnav a:hover{border-color:var(--orange);color:var(--white);background:rgba(245,166,35,.08)}
.pfnav a b{color:var(--orange);font-weight:900}

.pfgrid{display:grid;gap:clamp(12px,1.6vw,18px);grid-template-columns:repeat(2,1fr);margin-top:34px}
@media (min-width:720px){ .pfgrid{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1000px){ .pfgrid{grid-template-columns:repeat(4,1fr)} }

.pfcard{
  position:relative;aspect-ratio:9/16;border-radius:10px;overflow:hidden;
  border:1px solid var(--line);background:var(--ink-2);
  padding:0;width:100%;display:block;cursor:pointer;text-align:left;
  font-family:inherit;color:inherit;
  transition:border-color .18s ease,transform .18s ease;
}
.pfcard:hover{border-color:var(--orange-dim);transform:translateY(-3px)}
.pfcard:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.pfcard img{width:100%;height:100%;object-fit:cover;transition:opacity .25s ease}
.pfcard:hover img{opacity:.82}

/* legenda: gradiente solido no rodape do card para o texto sobreviver a
   qualquer frame, claro ou escuro. */
.pfcard .pf-cap{
  position:absolute;inset:auto 0 0 0;z-index:2;padding:34px 14px 13px;
  background:linear-gradient(180deg,rgba(10,9,8,0),rgba(10,9,8,.72) 42%,rgba(10,9,8,.94));
  pointer-events:none;
}
.pfcard .pf-cli{
  display:block;font-size:9.5px;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--orange);margin-bottom:5px;text-indent:.2em;
}
.pfcard .pf-tit{
  display:block;font-size:12.5px;font-weight:700;line-height:1.32;color:var(--white);
  overflow-wrap:anywhere;
}
.pfcard .pf-dur{
  position:absolute;top:10px;right:10px;z-index:2;
  padding:3px 8px;border-radius:4px;background:rgba(10,9,8,.72);
  font-size:10px;font-weight:800;letter-spacing:.06em;color:#EDE8E0;
  font-variant-numeric:tabular-nums;
}
/* botao de play: o hexagono da marca, nao o triangulo generico de player */
.pfcard .pf-play{
  position:absolute;left:50%;top:50%;z-index:2;translate:-50% -50%;
  width:52px;height:59px;display:grid;place-items:center;
  background:rgba(245,166,35,.92);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  transition:background .18s ease,scale .18s ease;
}
.pfcard:hover .pf-play{background:var(--orange);scale:1.07}
.pfcard .pf-play::after{
  content:'';width:0;height:0;margin-left:4px;
  border-left:15px solid #140E03;
  border-top:9px solid transparent;border-bottom:9px solid transparent;
}
.pfcard iframe,
.pfcard video{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:3}
.pfcard video{object-fit:cover;background:#000}
/* quando o player entra, a capa e a legenda saem da frente */
.pfcard.is-live img,.pfcard.is-live .pf-cap,
.pfcard.is-live .pf-play,.pfcard.is-live .pf-dur{display:none}

.pf-empty{
  border:1px dashed var(--line-2);border-radius:10px;padding:26px;
  color:var(--dim);font-size:14px;
}

/* pula para o conteudo - acessibilidade de teclado */
.skip{position:absolute;left:-9999px;top:0;z-index:99;background:var(--orange);
  color:#140E03;padding:12px 20px;font-weight:800;border-radius:0 0 8px 0}
.skip:focus{left:0}
