/* ============================================================
   ENTERFUSÃO PROJETOS — SITE FINAL
   Folha única. Ordem da cascata:
     1) @font-face (self-hosted woff2)
     2) tokens: colors → typography → spacing → effects
     3) base + estilos do layout (ex-helmet da versão A)
     4) classes novas da v2 (clientes, portfólio, tecnologias)
   ============================================================ */

/* ============================================================
   1) WEBFONTS — Cormorant Garamond · IBM Plex Sans · IBM Plex Mono
   ============================================================ */
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/cormorant-400-italic-latin-ext.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;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/cormorant-400-italic-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:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-italic-latin-ext.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;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-italic-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:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url('fonts/cormorant-600-italic-latin-ext.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;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url('fonts/cormorant-600-italic-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:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-normal-latin-ext.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;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-normal-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:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/cormorant-600-normal-latin-ext.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;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/cormorant-600-normal-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:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/cormorant-700-normal-latin-ext.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;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/cormorant-700-normal-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/plexmono-400-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/plexmono-400-normal-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/plexmono-500-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/plexmono-500-normal-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:600;font-display:swap;src:url('fonts/plexmono-600-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/plexmono-600-normal-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 Sans';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/plexsans-300-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/plexsans-300-normal-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 Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/plexsans-400-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/plexsans-400-normal-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 Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/plexsans-500-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/plexsans-500-normal-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 Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/plexsans-600-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/plexsans-600-normal-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 Sans';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/plexsans-700-normal-latin-ext.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;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/plexsans-700-normal-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;}

/* ============================================================
   2) TOKENS
   ============================================================ */
:root{
  /* Brand primitives */
  --ef-green-deep:#1E3331; --ef-cream:#E7E0CE; --ef-graphite:#323332; --ef-sage:#7DA68B;
  --ef-silver-100:#D9D9D9; --ef-silver-300:#B7B7B7; --ef-silver-500:#8A8A8A; --ef-silver-700:#5F5F5F;
  --ef-ink:#080B0A; --ef-ink-900:#0B100E; --ef-ink-800:#0F1613;
  --ef-green-950:#11201C; --ef-green-900:#16271F; --ef-green-800:#1E3331; --ef-green-700:#294A43; --ef-green-600:#356056;
  --ef-cream-50:#FBF8F0; --ef-cream-100:#F2EDDF; --ef-cream-200:#E7E0CE; --ef-cream-300:#D8CFB6;
  --ef-white:#FBFBF9; --ef-gray-200:#C7CCC9; --ef-gray-400:#9AA29E; --ef-gray-600:#6E7672; --ef-gray-800:#3A413E;
  --ef-success:#57A77B; --ef-success-dim:#2C5641; --ef-danger:#C9554F; --ef-danger-dim:#5A2A29; --ef-warning:#C9A34F;
  /* Semantic (dark theme) */
  --surface-canvas:var(--ef-ink); --surface-raised:var(--ef-ink-800); --surface-card:var(--ef-green-950);
  --surface-card-flat:#12151400; --surface-accent:var(--ef-green-800); --surface-inverse:var(--ef-cream-200);
  --text-primary:var(--ef-white); --text-secondary:var(--ef-gray-200); --text-muted:var(--ef-gray-400);
  --text-faint:var(--ef-gray-600); --text-on-accent:var(--ef-white); --text-on-cream:var(--ef-green-deep); --text-brand:var(--ef-sage);
  --accent:var(--ef-sage); --accent-strong:var(--ef-green-600); --metal:var(--ef-silver-100);
  --border-hairline:rgba(231,224,206,0.10); --border-soft:rgba(231,224,206,0.16);
  --border-strong:rgba(231,224,206,0.28); --border-accent:rgba(125,166,139,0.45); --focus-ring:rgba(125,166,139,0.55);
  /* Typography */
  --font-display:'Cormorant Garamond','Times New Roman',Georgia,serif;
  --font-sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono','SF Mono',ui-monospace,Menlo,monospace;
  --fw-light:300; --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
  /* Spacing / layout */
  --container-max:1240px; --gutter:24px;
  /* Motion */
  --ease-out:cubic-bezier(0.22,1,0.36,1); --ease-inout:cubic-bezier(0.65,0,0.35,1);
  --dur-fast:140ms; --dur-base:240ms; --dur-slow:480ms;
  /* Effects */
  --shadow-md:0 10px 30px rgba(0,0,0,0.50); --shadow-lg:0 24px 60px rgba(0,0,0,0.55);
  --glow-green:0 0 0 1px rgba(125,166,139,0.22),0 30px 80px -40px rgba(125,166,139,0.35);
  --grad-metal:linear-gradient(160deg,#F2F2F0 0%,#C9C9C7 22%,#8C8C8A 48%,#E6E6E4 64%,#76767A 86%,#B4B4B2 100%);
}
/* Light / creme theme — seções de fundo claro */
[data-theme="light"]{
  --surface-canvas:var(--ef-cream-100); --surface-raised:var(--ef-cream-50); --surface-card:#FFFFFF;
  --surface-card-flat:var(--ef-cream-50); --surface-accent:var(--ef-green-deep); --surface-inverse:var(--ef-ink);
  --text-primary:var(--ef-graphite); --text-secondary:#4A524E; --text-muted:#6E7672; --text-faint:#9AA29E;
  --text-on-accent:var(--ef-cream); --text-on-cream:var(--ef-green-deep); --text-brand:var(--ef-green-deep);
  --accent:var(--ef-green-deep); --accent-strong:var(--ef-sage); --metal:var(--ef-silver-500);
  --border-hairline:rgba(30,51,49,0.10); --border-soft:rgba(30,51,49,0.16);
  --border-strong:rgba(30,51,49,0.26); --border-accent:rgba(30,51,49,0.35); --focus-ring:rgba(30,51,49,0.45);
}

/* Utilitário: preenchimento metálico do wordmark.
   padding/margin-top compensados estendem a área do gradiente para cima,
   evitando que o til do "Ã" (que sobe acima da caixa por causa do
   line-height apertado) fique fora do clip e desapareça. */
.ef-metal-text{background:var(--grad-metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-top:.16em;margin-top:-.16em;}

/* ============================================================
   3) BASE + LAYOUT (ex-helmet da versão A)
   ============================================================ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
section[id],div[id]{scroll-margin-top:96px;}
body{margin:0;background:var(--ef-ink,#080B0A);color:var(--text-primary,#FBFBF9);
  font-family:var(--font-sans,'IBM Plex Sans',sans-serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
img{max-width:100%;}
::selection{background:rgba(125,166,139,0.30);}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:3px solid var(--focus-ring,rgba(125,166,139,0.55));outline-offset:3px;border-radius:2px;}
/* [hidden] precisa vencer estilos inline de display (form de sucesso etc.) */
[hidden]{display:none!important;}

/* ícones inline (Lucide) herdam currentColor e o tamanho vem do wrapper */
.ef-ic{display:inline-block;vertical-align:middle;stroke:currentColor;fill:none;flex:none;}

/* scroll reveal */
@keyframes efReveal{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@keyframes efStepOn{from{opacity:.35;}to{opacity:1;}}
[data-reveal]{opacity:0;transform:translateY(16px);}
[data-reveal].in{animation:efReveal .55s var(--ease-out,cubic-bezier(.22,1,.36,1)) forwards;}

/* cycle stepper */
.cycle-line{position:absolute;left:calc(100%/12);right:calc(100%/12);top:28px;height:2px;z-index:0;}
.cycle-rail-bg{position:absolute;inset:0;background:rgba(231,224,206,0.14);}
.cycle-fill{position:absolute;left:0;top:0;height:100%;width:var(--fill,0%);background:linear-gradient(90deg,var(--ef-sage,#7DA68B),#356056);transition:width .5s var(--ease-out);}
.cycle-step{opacity:.35;position:relative;z-index:1;}
.cycle-step.on{animation:efStepOn .5s var(--ease-out,cubic-bezier(.22,1,.36,1)) forwards;}
.cycle-node{box-shadow:0 0 0 6px #0A0E0C;}
.cycle-step.on .cycle-node{border-color:var(--ef-sage,#7DA68B)!important;color:var(--ef-sage,#7DA68B)!important;background:#15211C!important;box-shadow:0 0 0 6px #0A0E0C,0 0 0 7px rgba(125,166,139,0.30)!important;}

/* header */
.site-header.is-scrolled{background:rgba(8,11,10,0.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--border-hairline,rgba(231,224,206,0.10))!important;box-shadow:0 10px 30px rgba(0,0,0,0.35);}
.site-header.is-scrolled .nav-inner{padding-top:14px!important;padding-bottom:14px!important;}
.site-header.is-scrolled .nav-logo{height:30px!important;}
.nav-link{position:relative;transition:color .2s var(--ease-out);color:#EDE7D8!important;}
.nav-link .nav-num{color:#9AA29E!important;}
.nav-link:hover{color:#FFFFFF!important;}
.nav-link:hover .nav-num{color:var(--ef-sage,#7DA68B)!important;}
.ef-btn{transition:background .15s var(--ease-out),border-color .15s var(--ease-out),color .15s var(--ease-out),transform .15s var(--ease-out);cursor:pointer;}
/* micro-interação: a seta reage ao hover do botão (#11) */
.hero-bg{will-change:transform;transform:scale(1.14);}
.ef-btn svg{transition:transform .18s var(--ease-out);}
.ef-btn-primary:hover svg{transform:translate(2px,-2px);}
.ef-btn-ghost:hover svg{transform:translateY(3px);}
.ef-btn-primary:hover{background:var(--ef-green-600,#356056)!important;border-color:var(--ef-green-600,#356056)!important;}
.ef-btn-metal:hover{transform:translateY(-1px);}
.ef-btn-ghost:hover{color:var(--ef-sage,#7DA68B)!important;}
.svc-card{transition:transform .24s var(--ease-out),border-color .24s var(--ease-out),box-shadow .24s var(--ease-out);}
.svc-card:hover{transform:translateY(-3px);border-color:var(--border-accent,rgba(125,166,139,0.45))!important;box-shadow:var(--shadow-lg,0 24px 60px rgba(0,0,0,.55));}
.svc-card:hover .svc-arrow{opacity:1;transform:translateX(0);}
.svc-arrow{opacity:0;transform:translateX(-6px);transition:opacity .24s var(--ease-out),transform .24s var(--ease-out);}
/* Serviços — duas colunas temáticas com alturas de linha alinhadas (#1) */
.svc-split{display:grid;grid-template-columns:1fr 1fr;column-gap:40px;align-items:stretch;}
.svc-col{display:grid;grid-template-rows:auto 1fr 1fr 1fr;row-gap:16px;}
.svc-split .svc-card{height:100%;}
/* Serviços — texto legível nos cards escuros dentro da seção clara (#2) */
#servicos .svc-col .svc-card p{color:var(--ef-cream,#E7E0CE)!important;}
.sector-tag{transition:border-color .2s var(--ease-out),color .2s var(--ease-out),background .2s var(--ease-out);}
.sector-tag:hover{border-color:var(--ef-green-deep,#1E3331)!important;background:rgba(30,51,49,0.06)!important;}
.pill-link{transition:color .2s var(--ease-out),border-color .2s var(--ease-out);}
.pill-link:hover{color:var(--ef-sage,#7DA68B)!important;border-color:var(--border-accent,rgba(125,166,139,0.45))!important;}
.hamburger{display:none;}
.mobile-panel{display:none;}
.mobile-panel.is-open{display:block;}

/* ============================================================
   4) CLASSES NOVAS DA V2
   ============================================================ */
/* Clientes — faixa de logos monocromáticos, colorem no hover */
.client-logo{display:inline-flex;align-items:center;justify-content:center;height:60px;padding:0 6px;}
.client-logo img{max-height:56px;max-width:158px;width:auto;height:auto;object-fit:contain;border-radius:4px;
  filter:grayscale(1);opacity:.6;transition:filter .28s var(--ease-out),opacity .28s var(--ease-out);}
.client-logo:hover img{filter:grayscale(0);opacity:1;}

/* Portfólio — cards com foto real e lightbox (#6) */
.portfolio-card{position:relative;display:block;width:100%;margin:0;padding:0;text-align:left;cursor:pointer;
  border-radius:14px;overflow:hidden;border:1px solid rgba(30,51,49,0.14);background:var(--ef-green-deep,#1E3331);aspect-ratio:4/3;
  transition:transform .24s var(--ease-out),box-shadow .24s var(--ease-out);}
.portfolio-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md,0 10px 30px rgba(0,0,0,.5));}
.portfolio-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s var(--ease-out);}
.portfolio-card:hover .portfolio-img{transform:scale(1.05);}
.portfolio-cap{position:absolute;left:0;right:0;bottom:0;padding:20px 22px;display:flex;flex-direction:column;gap:4px;
  background:linear-gradient(0deg,rgba(8,11,10,0.92) 0%,rgba(8,11,10,0.35) 55%,rgba(8,11,10,0) 100%);}
.portfolio-cat{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ef-sage,#7DA68B);}
.portfolio-title{font-family:var(--font-sans);font-weight:600;font-size:16px;line-height:1.25;color:var(--ef-cream,#E7E0CE);}
.portfolio-zoom{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  background:rgba(8,11,10,0.55);border:1px solid rgba(231,224,206,0.22);color:var(--ef-cream,#E7E0CE);
  opacity:0;transform:translateY(-4px);transition:opacity .24s var(--ease-out),transform .24s var(--ease-out);backdrop-filter:blur(4px);}
.portfolio-card:hover .portfolio-zoom,.portfolio-card:focus-visible .portfolio-zoom{opacity:1;transform:translateY(0);}

/* Lightbox */
.ef-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;}
.ef-lb-backdrop{position:absolute;inset:0;background:rgba(4,6,5,0.90);backdrop-filter:blur(6px);animation:efFade .2s var(--ease-out);}
.ef-lb-content{position:relative;display:flex;align-items:center;gap:14px;max-width:min(1100px,94vw);z-index:1;}
.ef-lb-figure{margin:0;flex:1;display:flex;flex-direction:column;align-items:center;gap:14px;animation:efFade .24s var(--ease-out);}
.ef-lb-figure img{max-width:100%;max-height:82vh;width:auto;height:auto;border-radius:10px;background:#0B100E;
  box-shadow:0 30px 90px rgba(0,0,0,.6);border:1px solid var(--border-hairline,rgba(231,224,206,0.10));}
.ef-lb-cap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;}
.ef-lb-cap #ef-lb-title{font-family:var(--font-display);font-size:19px;color:var(--ef-white,#FBFBF9);}
.ef-lb-cap #ef-lb-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ef-sage,#7DA68B);}
.ef-lb-close{position:fixed;top:20px;right:22px;width:44px;height:44px;border-radius:8px;cursor:pointer;
  background:rgba(17,32,28,0.6);border:1px solid var(--border-strong,rgba(231,224,206,0.28));color:var(--ef-cream,#E7E0CE);
  display:flex;align-items:center;justify-content:center;transition:background .18s var(--ease-out),border-color .18s var(--ease-out);}
.ef-lb-close:hover{background:rgba(30,51,49,0.85);border-color:var(--ef-sage,#7DA68B);}
.ef-lb-nav{flex:none;width:46px;height:46px;border-radius:50%;cursor:pointer;
  background:rgba(17,32,28,0.6);border:1px solid var(--border-strong,rgba(231,224,206,0.28));color:var(--ef-cream,#E7E0CE);
  display:flex;align-items:center;justify-content:center;transition:background .18s var(--ease-out),border-color .18s var(--ease-out);}
.ef-lb-nav:hover{background:rgba(30,51,49,0.85);border-color:var(--ef-sage,#7DA68B);}
body.ef-lb-open{overflow:hidden;}
@keyframes efFade{from{opacity:0;}to{opacity:1;}}
@media (max-width:640px){
  .ef-lb-nav{position:fixed;bottom:20px;z-index:2;}
  .ef-lb-prev{left:calc(50% - 60px);}
  .ef-lb-next{right:calc(50% - 60px);}
}

/* Setores — layout com imagem (#7) */
.setores-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;}
.setores-media{position:relative;border-radius:14px;overflow:hidden;border:1px solid rgba(30,51,49,0.16);background:var(--ef-green-deep,#1E3331);aspect-ratio:4/3;}
.setores-media img{width:100%;height:100%;object-fit:cover;display:block;}

/* Diferenciais — carrossel infinito (#4) */
.diff-marquee{position:relative;overflow:hidden;margin-top:56px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);}
.diff-track{display:flex;width:max-content;will-change:transform;}
.diff-track.is-looping{animation:efMarquee 46s linear infinite;}
.diff-marquee:hover .diff-track.is-looping{animation-play-state:paused;}
.diff-card{flex:0 0 322px;margin-right:18px;box-sizing:border-box;
  background:var(--surface-card,#11201C);border:1px solid var(--border-hairline);border-radius:14px;
  padding:32px;display:flex;flex-direction:column;gap:18px;
  transition:border-color .24s var(--ease-out),transform .24s var(--ease-out);}
.diff-card:hover{border-color:var(--border-accent,rgba(125,166,139,0.45));transform:translateY(-3px);}
.diff-ic{width:46px;height:46px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(125,166,139,0.10);border:1px solid rgba(125,166,139,0.40);color:var(--ef-sage,#7DA68B);}
@keyframes efMarquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* Tecnologias — cards com hierarquia (#5) */
.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.tech-card{display:flex;flex-direction:column;gap:16px;padding:26px;border-radius:14px;
  border:1px solid var(--border-hairline);background:linear-gradient(180deg,rgba(17,32,28,0.60),rgba(11,16,14,0.35));
  transition:border-color .24s var(--ease-out),transform .24s var(--ease-out);}
.tech-card:hover{border-color:var(--border-accent,rgba(125,166,139,0.45));transform:translateY(-3px);}
.tech-card__ic{width:48px;height:48px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(125,166,139,0.10);border:1px solid rgba(125,166,139,0.40);color:var(--ef-sage,#7DA68B);}
.tech-card__cat{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ef-sage,#7DA68B);margin-bottom:6px;}
.tech-card__name{font-family:var(--font-sans);font-weight:600;font-size:18px;letter-spacing:-.01em;color:var(--ef-white,#FBFBF9);}
.tech-card__desc{margin:8px 0 0;font-size:13px;line-height:1.55;color:var(--text-muted,#9AA29E);}

/* mensagem de erro dos campos do form */
.field-err{font-size:13px;color:var(--ef-danger,#C9554F);}
.field-err[hidden]{display:none;}

/* estado de foco (ativo) dos campos do form (#9) */
#ef-form input,#ef-form textarea{transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out);}
#ef-form input:focus,#ef-form textarea:focus{border-color:var(--ef-sage,#7DA68B)!important;box-shadow:0 0 0 3px rgba(125,166,139,0.20);}

/* ============================================================
   5) RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr!important;}
  .hero-markers{display:none!important;}
  .svc-split{grid-template-columns:1fr!important;gap:48px!important;}
  .footer-grid{grid-template-columns:1fr 1fr!important;}
  .portfolio-grid{grid-template-columns:repeat(2,1fr)!important;}
}
@media (max-width:1040px){
  .nav-links{display:none!important;}
  .nav-desk-cta{display:none!important;}
  .hamburger{display:inline-flex!important;}
  .cycle-row{flex-direction:column!important;gap:0!important;}
  .cycle-step{display:flex!important;gap:20px!important;padding-bottom:34px!important;text-align:left!important;}
  .cycle-step .cycle-body{padding-top:4px;}
  .cycle-line{left:27px!important;right:auto!important;top:0!important;bottom:0!important;width:2px!important;height:auto!important;}
  .cycle-fill{top:0!important;left:0!important;width:100%!important;height:var(--fill,0%)!important;}
  .cycle-node{margin:0!important;}
  .contato-grid{grid-template-columns:1fr!important;gap:40px!important;}
  .sobre-grid{grid-template-columns:1fr!important;gap:36px!important;}
}
@media (max-width:860px){
  .tech-grid{grid-template-columns:1fr!important;}
  .setores-grid{grid-template-columns:1fr!important;gap:36px!important;}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr!important;}
  .hero-cta-row{flex-direction:column!important;align-items:stretch!important;}
  .nav-wordmark{display:none!important;}
  .svc-group-grid{grid-template-columns:1fr!important;}
  .portfolio-grid{grid-template-columns:1fr!important;}
  .diff-card{flex-basis:82vw!important;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  [data-reveal]{opacity:1!important;transform:none!important;transition:none!important;animation:none!important;}
  .cycle-step{opacity:1!important;animation:none!important;}
  .cycle-fill{transition:none!important;}
  .hero-bg{transform:none!important;}
  .diff-track.is-looping{animation:none!important;}
  .diff-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;}
}
