/* ============================================================
   START YOUR DREAMS — Direção A · "Linha do Voo"
   Design system · Bricolage Grotesque + Hanken Grotesk
   Roxo + Laranja · tema claro e arejado
   ============================================================ */

:root{
  /* ---- Paleta ---- */
  --ink:        #1B0E36;   /* texto principal (violeta-tinta) */
  --ink-soft:   #5A4E73;   /* texto secundário */
  --violet-900: #170A2E;   /* base profunda (painéis escuros) */
  --violet-800: #2A1450;
  --violet:     #6A2FB8;   /* violeta da marca */
  --violet-400: #9A5CF0;   /* realce */
  --violet-100: #EBE2FB;   /* borda/linhas suaves */
  --orange:     #FF6A28;   /* ação / CTA / linha de voo */
  --orange-600: #E8551A;
  --orange-200: #FFB066;   /* laranja suave */
  --paper:      #FBFAFF;   /* fundo geral */
  --paper-2:    #F4F0FF;   /* fundo de seção alternada */
  --sky:        #EAF0FF;   /* tom "céu" frio (apoio, parcimônia) */
  --white:      #ffffff;
  --on-dark:        #ffffff;
  --on-dark-soft:   #C9BCE8;

  /* ---- Tipografia ---- */
  --display: "Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;
  --body:    "Hanken Grotesk", system-ui, -apple-system, sans-serif;

  /* ---- Escala / espaço ---- */
  --wrap: 1200px;
  --gutter: clamp(1.1rem, 4vw, 2.4rem);
  --radius: 18px;
  --radius-lg: 26px;
  --shadow-sm: 0 2px 10px rgba(27,14,54,.05);
  --shadow:    0 18px 50px -22px rgba(35,14,72,.30);
  --shadow-lg: 0 40px 90px -40px rgba(35,14,72,.45);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ============================================================
   Reset / base
   ============================================================ */
*{box-sizing:border-box}
*::selection{background:var(--orange);color:#fff}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  font-family:var(--body);
  font-size:clamp(1rem,.97rem + .15vw,1.075rem);
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* fundo com leve atmosfera — manchas muito sutis, sem virar "gradiente roxo no branco" */
body::before{
  content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(60vw 50vh at 88% -8%, rgba(154,92,240,.10), transparent 60%),
    radial-gradient(50vw 40vh at -6% 18%, rgba(255,106,40,.06), transparent 60%);
}
/* grão fininho para textura premium */
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
ul{margin:0;padding:0;list-style:none}

h1,h2,h3,h4,h5{
  font-family:var(--display);
  font-weight:700;
  line-height:1.04;
  letter-spacing:-.02em;
  color:var(--ink);
  margin:0;
}
h1{font-size:clamp(2.6rem,1.6rem + 4.4vw,5rem)}
h2{font-size:clamp(2rem,1.4rem + 2.6vw,3.3rem)}
h3{font-size:clamp(1.3rem,1.05rem + 1vw,1.8rem)}
p{margin:0 0 1rem}

.wrap{width:min(100% - var(--gutter)*2, var(--wrap));margin-inline:auto}
section{padding:clamp(3.5rem,2rem + 7vw,7rem) 0;position:relative}

.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--body);font-weight:700;font-size:.74rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--violet);
}
.eyebrow::before{content:"";width:26px;height:2px;border-radius:2px;background:var(--orange)}
.eyebrow.on-dark{color:var(--orange-200)}
.eyebrow.center{justify-content:center}

.lead{font-size:clamp(1.05rem,1rem + .4vw,1.3rem);color:var(--ink-soft);line-height:1.6;max-width:60ch}

/* ============================================================
   Botões
   ============================================================ */
.btn{
  --bg:var(--orange);--fg:#fff;
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.92rem 1.5rem;border-radius:100px;
  font-family:var(--body);font-weight:700;font-size:.95rem;letter-spacing:.005em;
  background:var(--bg);color:var(--fg);border:1.5px solid transparent;
  position:relative;overflow:hidden;isolation:isolate;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s;
  will-change:transform;
}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:hover svg{transform:translateX(4px)}
.btn:active{transform:translateY(0)}
.btn-primary{box-shadow:0 12px 28px -12px rgba(255,106,40,.75)}
.btn-primary:hover{box-shadow:0 18px 36px -12px rgba(255,106,40,.85)}
/* brilho que cruza o botão como a linha de voo */
.btn-primary::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.35) 50%,transparent 80%);
  transform:translateX(-120%);transition:transform .6s var(--ease);
}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-violet{--bg:var(--violet);--fg:#fff;box-shadow:0 12px 28px -14px rgba(106,47,184,.7)}
.btn-ghost{--bg:transparent;--fg:var(--ink);border-color:var(--violet-100);background:rgba(255,255,255,.5)}
.btn-ghost:hover{border-color:var(--violet-400);color:var(--violet)}
.btn-ghost.on-dark{--fg:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06)}
.btn-ghost.on-dark:hover{border-color:#fff;background:rgba(255,255,255,.12)}
.btn-light{--bg:#fff;--fg:var(--violet-900)}
.btn-lg{padding:1.05rem 1.8rem;font-size:1rem}

/* ============================================================
   Topbar
   ============================================================ */
.topbar{background:var(--violet-900);color:var(--on-dark-soft);font-size:.85rem}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:42px}
.topbar a{display:inline-flex;align-items:center;gap:.45rem;color:var(--on-dark-soft);transition:color .2s}
.topbar a:hover{color:#fff}
.topbar svg{width:15px;height:15px}
.topbar .socials{display:flex;gap:1.1rem;align-items:center}

/* ============================================================
   Header / navegação
   ============================================================ */
.nav{position:sticky;top:0;z-index:60;
  background:rgba(251,250,255,.78);backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--violet-100);
  transition:box-shadow .3s, background .3s;
}
.nav.scrolled{box-shadow:var(--shadow-sm);background:rgba(251,250,255,.92)}
.nav .wrap{display:flex;align-items:center;gap:1.4rem;min-height:74px}
.brand{display:flex;align-items:center;flex-shrink:0}
.brand img{height:30px;width:auto}
.nav .menu{display:flex;align-items:center;gap:.3rem;margin-left:1rem}
.nav .menu>li>a{
  display:inline-block;padding:.6rem .85rem;border-radius:10px;
  font-weight:600;font-size:.96rem;color:var(--ink);position:relative;
  transition:color .2s, background .2s;
}
.nav .menu>li>a:hover{color:var(--violet)}
.nav .menu>li.current>a{color:var(--violet)}
.nav .menu>li.current>a::after{
  content:"";position:absolute;left:.85rem;right:.85rem;bottom:.32rem;height:2px;
  background:var(--orange);border-radius:2px;
}
.nav-cta{margin-left:auto;display:flex;align-items:center;gap:.7rem}

/* Mega-menu */
.has-mega{position:static}
.has-mega>a{display:inline-flex;align-items:center;gap:.3rem}
.has-mega>a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s}
.has-mega:hover>a::after{transform:rotate(225deg) translateY(2px)}
.mega{
  position:absolute;left:50%;top:calc(100% + 10px);transform:translate(-50%,12px);
  width:min(100% - var(--gutter)*2, var(--wrap));
  background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:1.8rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
}
.has-mega:hover .mega,.has-mega:focus-within .mega,.has-mega.is-open .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.mega-col h4{
  font-family:var(--body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--orange);margin-bottom:.7rem;padding-bottom:.6rem;border-bottom:1px solid var(--violet-100);
}
.mega-col a{display:block;padding:.42rem .55rem;border-radius:9px;font-size:.92rem;font-weight:500;color:var(--ink-soft);transition:.18s}
.mega-col a:hover{background:var(--paper-2);color:var(--violet);transform:translateX(3px)}
.mega-col>a.col-link{margin-top:.4rem;font-weight:700;color:var(--violet);padding-left:.55rem}

.burger{display:none;flex-direction:column;gap:5px;width:42px;height:42px;border:1px solid var(--violet-100);border-radius:11px;background:#fff;align-items:center;justify-content:center}
.burger span{width:19px;height:2px;background:var(--ink);border-radius:2px;transition:.3s}

/* Drawer mobile */
.drawer{position:fixed;inset:0 0 0 auto;width:min(92vw,400px);background:var(--paper);
  z-index:90;transform:translateX(100%);transition:transform .4s var(--ease);
  display:flex;flex-direction:column;padding:1.3rem;overflow-y:auto;box-shadow:var(--shadow-lg)}
.drawer.open{transform:translateX(0)}
.drawer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.drawer-top img{height:26px}
.drawer .close{width:42px;height:42px;border:1px solid var(--violet-100);border-radius:11px;background:#fff;font-size:1.5rem;color:var(--ink);line-height:1}
.drawer nav{display:flex;flex-direction:column}
.drawer nav>a{padding:.85rem .4rem;font-family:var(--display);font-size:1.15rem;font-weight:600;border-bottom:1px solid var(--violet-100)}
.drawer .grp{margin-top:1rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);font-weight:700}
.drawer .sub{display:flex;flex-direction:column;padding:.3rem 0 .4rem}
.drawer .sub a{padding:.4rem .5rem;color:var(--ink-soft);font-size:.95rem}
.drawer .btn{margin-top:1.3rem;justify-content:center}
.scrim{position:fixed;inset:0;background:rgba(23,10,46,.5);backdrop-filter:blur(2px);z-index:80;opacity:0;visibility:hidden;transition:.3s}
.scrim.open{opacity:1;visibility:visible}

/* ============================================================
   Linha de voo — elemento-assinatura
   linha laranja que se desenha no scroll, com avião no fim
   ============================================================ */
.flightline{position:fixed;left:0;top:0;height:3px;z-index:70;pointer-events:none;
  width:var(--p,0%);
  background:linear-gradient(90deg,var(--violet-400),var(--orange));
  box-shadow:0 0 12px rgba(255,106,40,.5);transition:width .1s linear}
.flightline::after{content:"";position:absolute;right:-4px;top:50%;width:9px;height:9px;border-radius:50%;background:var(--orange);transform:translateY(-50%);box-shadow:0 0 10px var(--orange)}
@media (prefers-reduced-motion: reduce){.flightline{transition:none}}

/* trilha decorativa que costura as seções (svg desenhado no scroll) */
.trail-path{fill:none;stroke:var(--orange);stroke-width:2;
  stroke-dasharray:var(--len);stroke-dashoffset:var(--len);
  transition:stroke-dashoffset 1.2s var(--ease)}
.trail-path.drawn{stroke-dashoffset:0}
.trail-dash{stroke-dasharray:2 9;stroke-linecap:round}

/* ============================================================
   Reveal no scroll
   ============================================================ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* ============================================================
   HERO — Direção A
   ============================================================ */
.hero{position:relative;padding:clamp(3rem,2rem + 5vw,5.5rem) 0 clamp(3.5rem,2rem + 6vw,6rem);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.hero-arcs{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.kicker{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--violet);
  background:#fff;border:1px solid var(--violet-100);padding:.5rem .95rem;border-radius:100px;box-shadow:var(--shadow-sm)}
.kicker .dot{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,106,40,.18)}
.hero h1{margin:1.3rem 0 1.1rem}
.hero h1 .start{position:relative;color:var(--violet);white-space:nowrap}
/* o "Start" sublinhado pela trajetória do avião */
.hero h1 .start::after{
  content:"";position:absolute;left:-.04em;right:-1.1em;bottom:.06em;height:.5em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='40' viewBox='0 0 220 40'%3E%3Cpath d='M2 30 C 80 18, 150 16, 205 14' fill='none' stroke='%23FF6A28' stroke-width='3.4' stroke-linecap='round'/%3E%3Cpath d='M196 6 L214 14 L196 21' fill='none' stroke='%23FF6A28' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right bottom/contain;
}
.hero .lead{margin-bottom:1.9rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:2.6rem}
.hero-stats{display:flex;gap:clamp(1.2rem,4vw,2.6rem);flex-wrap:wrap}
.hero-stats .s b{font-family:var(--display);font-size:clamp(1.7rem,1.3rem + 1.4vw,2.4rem);color:var(--ink);display:block;line-height:1}
.hero-stats .s span{font-size:.85rem;color:var(--ink-soft)}
.hero-stats .s{position:relative;padding-left:1rem}
.hero-stats .s::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:3px;border-radius:3px;background:linear-gradient(var(--violet-400),var(--orange))}

/* visual do hero: globo com órbita + rotas */
.hero-visual{position:relative;display:flex;justify-content:center}
.hero-globe{width:min(100%,460px);aspect-ratio:1;border-radius:50%;object-fit:cover;object-position:center center;display:block;
  box-shadow:0 0 0 4px rgba(255,255,255,.25),0 0 0 10px rgba(106,47,184,.15),0 28px 72px -8px rgba(35,14,72,.5)}
.spin{transform-origin:230px 230px;animation:spin 42s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pulse{animation:pulse 3.5s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}
@media (prefers-reduced-motion: reduce){.spin,.pulse{animation:none}}
/* etiqueta de destino flutuante sobre o globo */
.dest-chip{position:absolute;display:flex;align-items:center;gap:.45rem;background:#fff;border:1px solid var(--violet-100);
  border-radius:100px;padding:.45rem .8rem;font-size:.8rem;font-weight:600;box-shadow:var(--shadow);color:var(--ink)}
.dest-chip i{width:7px;height:7px;border-radius:50%;background:var(--orange);font-style:normal}
.dest-chip.c1{top:8%;left:2%;animation:float 6s ease-in-out infinite}
.dest-chip.c2{bottom:14%;right:-2%;animation:float 7s ease-in-out infinite .8s}
.dest-chip.c3{top:46%;right:6%;animation:float 5.5s ease-in-out infinite .4s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media (prefers-reduced-motion: reduce){.dest-chip{animation:none!important}}

/* faixa de logos / confiança */
.trust{padding:1.6rem 0;border-top:1px solid var(--violet-100);border-bottom:1px solid var(--violet-100);background:rgba(255,255,255,.5)}
.trust .wrap{display:flex;align-items:center;gap:clamp(1rem,4vw,3rem);flex-wrap:wrap;justify-content:space-between}
.trust p{margin:0;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
.trust .items{display:flex;gap:clamp(1rem,4vw,2.5rem);flex-wrap:wrap;color:var(--violet);font-weight:700}
.trust .items span{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem}

/* ============================================================
   Intro / metodologia
   ============================================================ */
.intro .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.pillars{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.5rem 0 1.8rem}
.pill{background:#fff;border:1px solid var(--violet-100);border-radius:100px;padding:.5rem 1rem;font-weight:700;font-size:.9rem;color:var(--violet)}
.intro-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;
  background:linear-gradient(160deg,var(--violet-800),var(--violet-900));color:#fff;
  padding:2.4rem;box-shadow:var(--shadow-lg)}
.intro-card::before{content:"";position:absolute;right:-30%;top:-30%;width:70%;height:70%;
  background:radial-gradient(circle,rgba(255,106,40,.35),transparent 65%)}
.intro-card h3{color:#fff}
.intro-card .val{display:grid;gap:.9rem;margin-top:1.6rem}
.intro-card .val>div{display:flex;flex-direction:column;padding-left:1rem;border-left:2px solid var(--orange)}
.intro-card .val b{color:#fff}
.intro-card .val span{color:var(--on-dark-soft);font-size:.9rem}

/* ============================================================
   Soluções (cards)
   ============================================================ */
.sol-head{text-align:center;max-width:680px;margin:0 auto clamp(2rem,5vw,3.4rem)}
.sol-head .lead{margin-inline:auto}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.card{position:relative;background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius-lg);
  padding:2rem 1.7rem 1.7rem;display:flex;flex-direction:column;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--violet-400),var(--orange));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.card::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(106,47,184,.05),transparent 70%);opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
.card:hover{transform:translateY(-8px);box-shadow:0 20px 48px -12px rgba(106,47,184,.18),0 4px 16px -4px rgba(106,47,184,.08);border-color:rgba(106,47,184,.2)}
.card:hover::before{transform:scaleX(1)}
.card:hover::after{opacity:1}
/* ico SVG (em páginas internas) */
.card .ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(150deg,var(--violet),var(--violet-400));color:#fff;margin-bottom:1.1rem;box-shadow:0 10px 22px -12px rgba(106,47,184,.8)}
.card .ico svg{width:26px;height:26px}
/* sol-ico: wrapper 3D para cards da home */
.sol-ico{width:112px;height:112px;border-radius:28px;display:grid;place-items:center;
  margin-bottom:1.6rem;flex-shrink:0;position:relative;overflow:hidden;
  background:linear-gradient(145deg,#fff 30%,var(--paper) 100%);
  box-shadow:0 2px 0 rgba(255,255,255,.8) inset,0 6px 28px -8px rgba(106,47,184,.16),0 0 0 1px rgba(106,47,184,.08)}
.sol-ico::after{content:"";position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(circle at 40% 30%,rgba(255,255,255,.9),transparent 65%);pointer-events:none}
.sol-ico img{width:112px;height:112px;object-fit:contain;position:relative;z-index:1;
  filter:drop-shadow(0 6px 18px rgba(106,47,184,.22)) drop-shadow(0 2px 4px rgba(0,0,0,.06));
  transition:transform .4s var(--ease),filter .4s var(--ease)}
.card:hover .sol-ico img{transform:translateY(-5px) scale(1.07);filter:drop-shadow(0 10px 24px rgba(106,47,184,.3)) drop-shadow(0 2px 6px rgba(0,0,0,.08))}
.card .tag{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);font-weight:700;margin-bottom:.5rem}
.card h3{margin-bottom:.65rem}
.card p{color:var(--ink-soft);font-size:.95rem;flex:1;line-height:1.6}
.card .more{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;color:var(--violet);margin-top:1.1rem;font-size:.92rem}
.card .more svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.card:hover .more svg{transform:translateX(5px)}

/* ============================================================
   Cases / depoimentos
   ============================================================ */
.cases{background:var(--paper-2)}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem}
.case{background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius);padding:1.7rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-sm)}
.case .quote{font-size:1.05rem;color:var(--ink);line-height:1.55}
.case .who{display:flex;align-items:center;gap:.8rem;margin-top:auto}
.case .av{width:46px;height:46px;border-radius:50%;background:linear-gradient(150deg,var(--violet),var(--orange));display:grid;place-items:center;color:#fff;font-family:var(--display);font-weight:700}
.case .who b{display:block;font-size:.95rem}
.case .who span{font-size:.82rem;color:var(--ink-soft)}
.stars{display:flex;gap:2px;color:var(--orange)}
.stars svg{width:16px;height:16px;fill:currentColor}

/* ============================================================
   CTA band
   ============================================================ */
.cta .cta-box {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--violet-900), #0a0319);
  color: #fff;
  padding: clamp(3rem, 2.4rem + 5vw, 5.5rem) clamp(1.5rem, 1rem + 2vw, 3.5rem);
  text-align: center;
  box-shadow: var(--shadow-lg);
  border: 1px solid rgba(154, 92, 240, 0.22);
}
.cta .cta-box h2 {
  color: #fff;
  max-width: 20ch;
  margin: 0 auto 1rem;
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(1.8rem, 1.4rem + 1.8vw, 2.5rem);
  line-height: 1.2;
}
.cta .cta-box p {
  color: var(--on-dark-soft);
  max-width: 58ch;
  margin: 0 auto 2.2rem;
  font-size: 1.05rem;
  line-height: 1.65;
}
.cta .actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  position: relative;
  z-index: 2;
}
.cta .cta-box::before {
  content: "";
  position: absolute;
  left: -150px;
  top: -150px;
  width: 450px;
  height: 450px;
  background: radial-gradient(circle, rgba(255, 106, 40, 0.16), transparent 65%);
  pointer-events: none;
  filter: blur(30px);
}
.cta .cta-box::after {
  content: "";
  position: absolute;
  right: -150px;
  bottom: -150px;
  width: 450px;
  height: 450px;
  background: radial-gradient(circle, rgba(154, 92, 240, 0.2), transparent 65%);
  pointer-events: none;
  filter: blur(30px);
}
.cta .cta-box .orbit {
  position: absolute;
  right: -40px;
  top: -40px;
  width: 200px;
  height: 200px;
  border: 1px dashed rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  pointer-events: none;
}

/* ============================================================
   Page head (páginas internas)
   ============================================================ */
.page-head{padding:clamp(2.6rem,2rem + 3vw,4.2rem) 0 clamp(1.5rem,1rem + 2vw,2.5rem);position:relative}
.crumbs{font-size:.85rem;color:var(--ink-soft);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.crumbs a{color:var(--violet);font-weight:600}
.crumbs .sep{color:var(--violet-400)}
.page-head h1{max-width:16ch}
.page-head p{max-width:62ch;margin-top:1rem;color:var(--ink-soft);font-size:clamp(1.05rem,1rem + .35vw,1.25rem)}

/* ============================================================
   Footer
   ============================================================ */
.footer {
  background: radial-gradient(circle at 80% 80%, rgba(255, 106, 40, 0.04), transparent 45%), var(--violet-900);
  color: var(--on-dark-soft);
  padding: clamp(4rem, 3rem + 5vw, 6rem) 0 2.5rem;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(154, 92, 240, 0.15);
}
.footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--violet-400), var(--orange));
  opacity: 0.7;
}
.footer .top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
  gap: 2.5rem;
}
.footer img.fbrand {
  height: 34px;
  margin-bottom: 1.2rem;
  transition: transform 0.3s;
}
.footer img.fbrand:hover {
  transform: scale(1.02);
}
.footer .about {
  font-size: 0.94rem;
  max-width: 32ch;
  color: var(--on-dark-soft);
  line-height: 1.6;
}
.footer h5 {
  color: #fff;
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 1.3rem;
  letter-spacing: normal;
  text-transform: none;
}
.footer ul li {
  margin-bottom: 0.7rem;
}
.footer ul a {
  font-size: 0.93rem;
  transition: color 0.3s var(--ease), transform 0.3s var(--ease);
  display: inline-block;
  color: var(--on-dark-soft);
}
.footer ul a:hover {
  color: var(--orange-200);
  transform: translateX(5px);
}
.footer .contact {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.footer .contact li {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 12px;
  transition: border-color 0.3s, background-color 0.3s;
  font-size: 0.9rem;
  color: var(--on-dark-soft);
  overflow: hidden;
}
.footer .contact li:hover {
  border-color: rgba(255, 176, 102, 0.18);
  background: rgba(255, 255, 255, 0.04);
}
.footer .contact .contact-link {
  display: flex;
  gap: 0.8rem;
  align-items: center;
  padding: 0.7rem 0.9rem;
  color: inherit;
  width: 100%;
}
.footer .contact svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--orange-200);
}
.footer .socials {
  display: flex;
  gap: 0.8rem;
  margin-top: 1.4rem;
}
.footer .socials a {
  width: 42px;
  height: 42px;
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
  display: grid;
  place-items: center;
  color: var(--on-dark-soft);
  transition: all 0.3s var(--ease);
}
.footer .socials a:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  transform: translateY(-4px) rotate(6deg);
  box-shadow: 0 5px 15px rgba(255, 106, 40, 0.35);
}
.footer .socials svg {
  width: 18px;
  height: 18px;
}
.footer .bottom {
  margin-top: 3.5rem;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  font-size: 0.88rem;
  color: var(--on-dark-soft);
  opacity: 0.9;
}
.footer .bottom .by {
  font-weight: 500;
}
.footer .bottom .by b {
  color: #fff;
}

/* float WhatsApp */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:75;width:58px;height:58px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;box-shadow:0 14px 30px -8px rgba(37,211,102,.6);
  transition:transform .3s var(--ease)}
.wa-float svg{width:30px;height:30px;fill:#fff}
.wa-float:hover{transform:scale(1.08) rotate(4deg)}
.wa-float::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:ring 2.4s ease-out infinite}
@keyframes ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}
@media (prefers-reduced-motion: reduce){.wa-float::after{animation:none}}

.hide-sm{display:inline-flex}

/* ============================================================
   SOBRE — timeline / missão-visão / valores
   ============================================================ */
.story{position:relative;display:grid;gap:1.6rem;padding-left:2.2rem}
.story-line{position:absolute;left:6px;top:8px;bottom:8px;width:4px}
.story-line svg{width:4px;height:100%}
.story .block{position:relative;background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius);padding:1.5rem 1.7rem;box-shadow:var(--shadow-sm)}
.story .block::before{content:"";position:absolute;left:-2.2rem;top:1.8rem;width:14px;height:14px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px rgba(255,106,40,.16),0 0 0 1px #fff}
.story .step{display:inline-block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--violet);font-weight:700;margin-bottom:.5rem}
.story .block h3{margin-bottom:.5rem}
.story .block p{color:var(--ink-soft);margin:0}

.mv{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.card2{border-radius:var(--radius-lg);padding:2.2rem;position:relative;overflow:hidden}
.card2 p{margin:.7rem 0 0}
.card2.mission{background:linear-gradient(160deg,var(--violet-800),var(--violet-900));color:#fff}
.card2.mission h3{color:#fff}.card2.mission p{color:var(--on-dark-soft)}
.card2.mission::before{content:"";position:absolute;right:-25%;top:-30%;width:60%;height:70%;background:radial-gradient(circle,rgba(255,106,40,.3),transparent 65%)}
.card2.vision{background:#fff;border:1px solid var(--violet-100);box-shadow:var(--shadow-sm)}
.card2.vision p{color:var(--ink-soft)}

.values{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2.4rem}
.value{background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius);padding:1.5rem 1.2rem;text-align:left;transition:transform .3s var(--ease),box-shadow .3s}
.value:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.value .vi{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--paper-2);color:var(--violet);margin-bottom:1rem}
.value .vi svg{width:24px;height:24px}
.value h4{font-size:1.1rem;margin-bottom:.4rem}
.value p{font-size:.9rem;color:var(--ink-soft);margin:0}

/* ============================================================
   SERVIÇOS
   ============================================================ */
.svc-note{display:flex;gap:.8rem;align-items:flex-start;background:var(--sky);border:1px solid #D6E2FB;border-radius:var(--radius);padding:1rem 1.3rem;margin-bottom:2rem;color:#2A3D66;font-size:.95rem}
.svc-note svg{width:22px;height:22px;flex-shrink:0;color:var(--violet)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.svc{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius);padding:1.6rem;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.svc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--violet-400),var(--orange));transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease)}
.svc:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.svc:hover::before{transform:scaleY(1)}
.svc .cat{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--violet);font-weight:700}
.svc h3{font-size:1.18rem;margin:.5rem 0 .5rem}
.svc>p{color:var(--ink-soft);font-size:.92rem;flex:1;margin-bottom:1rem}
.svc .price{font-family:var(--display);font-size:1.7rem;font-weight:700;color:var(--ink);margin-bottom:1.1rem}
.svc .price small{font-family:var(--body);font-size:.78rem;font-weight:500;color:var(--ink-soft)}
.svc .buy{justify-content:center}
.svc.urgent{border-color:#FFD9B0;background:linear-gradient(180deg,#FFF7F0,#fff)}
.badge-urgent{position:absolute;top:1.1rem;right:1.1rem;display:inline-flex;align-items:center;gap:.3rem;background:var(--orange);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.3rem .6rem;border-radius:100px}
.badge-urgent svg{width:13px;height:13px}
.svc-help{text-align:center;margin-top:2.2rem;color:var(--ink-soft)}
.svc-help a{color:var(--violet);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ============================================================
   CONTATO
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:2rem;align-items:start}
.contact-info{display:grid;gap:1rem}
.ci{display:flex;gap:1rem;background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius);padding:1.3rem;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease)}
.ci:hover{transform:translateX(4px)}
.ci .icon{width:48px;height:48px;border-radius:13px;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(150deg,var(--violet),var(--violet-400));color:#fff}
.ci .icon svg{width:23px;height:23px}
.ci h4{font-size:1.05rem;font-family:var(--body);font-weight:700}
.ci p{font-size:.9rem;color:var(--ink-soft);margin:.2rem 0 .4rem}
.ci a{color:var(--violet);font-weight:700;font-size:.9rem}

/* Painéis de formulário compartilhados */
.panel{background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius-lg);padding:clamp(1.5rem,1rem + 2vw,2.4rem);box-shadow:var(--shadow)}
.field{margin-bottom:1.1rem;display:flex;flex-direction:column}
.field>label{font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:.4rem}
.field input,.field textarea,.field select{
  font:inherit;font-size:.97rem;padding:.8rem .95rem;border:1.5px solid var(--violet-100);border-radius:12px;
  background:var(--paper);color:var(--ink);transition:border-color .2s,box-shadow .2s,background .2s;width:100%}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--violet-400);background:#fff;box-shadow:0 0 0 4px rgba(154,92,240,.14)}
.field textarea{min-height:120px;resize:vertical}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.55rem}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip label{display:inline-block;padding:.5rem .95rem;border:1.5px solid var(--violet-100);border-radius:100px;font-size:.9rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.2s}
.chip input:checked+label{background:var(--violet);border-color:var(--violet);color:#fff}
.chip input:focus-visible+label{box-shadow:0 0 0 4px rgba(154,92,240,.2)}
.alert{display:none;align-items:flex-start;gap:.6rem;padding:.9rem 1.1rem;border-radius:12px;font-size:.92rem;margin-top:1rem;border:1px solid}
.alert svg{width:20px;height:20px;flex-shrink:0;margin-top:1px}
.alert.ok{background:#EAF8EE;border-color:#BCE6C8;color:#1C7A3D}
.form-feedback.show{display:flex}

/* ============================================================
   CHECKOUT
   ============================================================ */
.checkout-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:1.6rem;align-items:start}
.checkout-empty{display:none;text-align:center;max-width:440px;margin:2rem auto;background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius-lg);padding:2.6rem;box-shadow:var(--shadow-sm)}
.checkout-empty svg{width:46px;height:46px;color:var(--violet-400);margin:0 auto 1rem}
.checkout-empty h3{margin-bottom:.5rem}
.checkout-empty p{color:var(--ink-soft);margin-bottom:1.4rem}
.checkout-empty .btn{display:inline-flex}
.order{position:sticky;top:96px;background:linear-gradient(165deg,var(--violet-800),var(--violet-900));color:#fff;border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-lg);overflow:hidden}
.order .eyebrow{color:var(--orange-200)}
.order-svc{margin:1rem 0 1.5rem;padding-bottom:1.3rem;border-bottom:1px solid rgba(255,255,255,.14)}
.order-svc .cat{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-200);font-weight:700}
.order-svc h3{color:#fff;margin-top:.4rem;font-size:1.3rem}
.order-line{display:flex;justify-content:space-between;padding:.5rem 0;color:var(--on-dark-soft);font-size:.95rem}
.order-line b{color:#fff}
.order-total{display:flex;justify-content:space-between;align-items:center;margin-top:.8rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.14)}
.order-total span{color:var(--on-dark-soft)}
.order-total b{font-family:var(--display);font-size:1.9rem;color:#fff}
.order-note{display:flex;gap:.6rem;align-items:flex-start;margin-top:1.4rem;font-size:.82rem;color:var(--on-dark-soft)}
.order-note svg{width:18px;height:18px;flex-shrink:0;color:var(--orange-200)}
.pay-methods{display:grid;gap:.7rem;margin:.6rem 0 1.2rem}
.pay-opt input{position:absolute;opacity:0}
.pay-opt .pm{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.1rem;border:1.5px solid var(--violet-100);border-radius:13px;font-weight:600;cursor:pointer;transition:.2s}
.pay-opt .pm svg{width:22px;height:22px;color:var(--violet)}
.pay-opt input:checked+.pm{border-color:var(--violet);background:var(--paper-2);box-shadow:0 0 0 3px rgba(106,47,184,.1)}
.demo-flag{display:flex;gap:.7rem;align-items:flex-start;background:#FFF7F0;border:1px solid #FFD9B0;border-radius:13px;padding:1rem 1.1rem;font-size:.88rem;color:#8A4A1E;margin-bottom:1.3rem}
.demo-flag svg{width:20px;height:20px;flex-shrink:0;color:var(--orange)}
.ck-secure{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.82rem;color:var(--ink-soft);margin:1rem 0 0}
.ck-secure svg{width:16px;height:16px;color:var(--violet)}
.ck-msg{display:flex;align-items:center;gap:.6rem;border-radius:12px;padding:.85rem 1rem;font-size:.9rem;margin-bottom:1rem}
.ck-msg svg{width:18px;height:18px;flex-shrink:0}
.ck-msg-error{background:#FFF1F0;border:1px solid #FFCCC7;color:#C0392B}
.ck-msg-error svg{color:#C0392B}
.ck-msg-loading{background:var(--paper-2);border:1px solid var(--violet-100);color:var(--ink-soft)}
.ck-spinner{width:16px;height:16px;border:2px solid var(--violet-100);border-top-color:var(--violet);border-radius:50%;flex-shrink:0;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ck-back-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--violet-100);background:#fff;cursor:pointer;transition:.2s;flex-shrink:0}
.ck-back-btn:hover{border-color:var(--violet);background:var(--paper-2)}

/* ============================================================
   PROSE — páginas de conteúdo (soluções, guias)
   ============================================================ */
.prose{max-width:760px}
.prose h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);margin:2.4rem 0 .9rem}
.prose h3{font-size:1.3rem;margin:1.8rem 0 .7rem}
.prose p{color:var(--ink-soft);margin:0 0 1.1rem;font-size:1.05rem;line-height:1.7}
.prose ul.bullets{display:grid;gap:.7rem;margin:0 0 1.4rem}
.prose ul.bullets li{position:relative;padding-left:1.7rem;color:var(--ink-soft);line-height:1.6}
.prose ul.bullets li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--orange)}
.prose a{color:var(--violet);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.prose strong{color:var(--ink)}

/* Custom premium elements for content pages */
.prose p.prose-lead {
  font-size: 1.15rem;
  line-height: 1.75;
  color: var(--ink);
  font-weight: 500;
  margin-bottom: 1.6rem;
}
.info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
  margin: 1.8rem 0 2.5rem;
}
.info-card {
  background: var(--white);
  border: 1px solid var(--violet-100);
  border-radius: var(--radius);
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.info-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: var(--violet-400);
}
.info-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--paper-2);
  color: var(--violet);
  flex-shrink: 0;
  transition: background 0.3s, color 0.3s;
}
.info-card:hover .info-card-icon {
  background: var(--violet);
  color: var(--white);
}
.info-card-icon svg {
  width: 20px;
  height: 20px;
}
.info-card h4 {
  font-size: 1.125rem;
  margin: 0;
  color: var(--ink);
  font-family: var(--display);
  font-weight: 700;
}
.info-card p {
  font-size: 0.94rem;
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.6;
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
  margin: 1.8rem 0 2.5rem;
}
.step-card {
  background: var(--white);
  border: 1px solid var(--violet-100);
  border-radius: var(--radius);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
.step-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: var(--orange-200);
}
.step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--orange);
  color: var(--white);
  font-family: var(--display);
  font-weight: 800;
  font-size: 1.05rem;
  flex-shrink: 0;
}
.step-card h4 {
  font-size: 1.1rem;
  margin: 0;
  color: var(--ink);
  font-family: var(--display);
  font-weight: 700;
}
.step-card p {
  font-size: 0.92rem;
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.55;
}

.destinations-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.25rem;
  margin: 1.8rem 0 2.5rem;
}
.destination-card {
  background: var(--white);
  border: 1px solid var(--violet-100);
  border-radius: var(--radius);
  padding: 1.4rem;
  display: flex;
  gap: 1.1rem;
  align-items: flex-start;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
.destination-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: var(--violet);
}
.destination-flag-img {
  width: 38px;
  height: 28px;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 2px 5px rgba(27,14,54,0.15);
  flex-shrink: 0;
  border: 1px solid rgba(0,0,0,0.08);
}
.destination-info {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.destination-info h4 {
  font-size: 1.1rem;
  margin: 0;
  font-family: var(--display);
  font-weight: 700;
  color: var(--ink);
}
.destination-info p {
  font-size: 0.92rem;
  color: var(--ink-soft);
  margin: 0;
  line-height: 1.5;
}

/* Feature grid for large blocks (like vistos B1/B2 vs F1, or cultural exchanges) */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.5rem;
  margin: 2rem 0 2.5rem;
}
.feature-card {
  background: var(--white);
  border: 1px solid var(--violet-100);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: all 0.3s var(--ease);
}
.feature-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow);
  border-color: var(--violet-400);
}
.feature-card h3 {
  font-size: 1.35rem !important;
  margin: 0 !important;
  font-family: var(--display);
  font-weight: 700;
  color: var(--ink);
}
.feature-card p {
  font-size: 0.96rem !important;
  color: var(--ink-soft);
  line-height: 1.65;
  margin: 0 !important;
}

.highlight-box {
  background: var(--paper-2);
  border-left: 4px solid var(--violet);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 1.5rem 1.8rem;
  margin: 1.8rem 0 2.5rem;
}
.highlight-box p {
  margin: 0 !important;
  color: var(--ink) !important;
  font-weight: 500;
  font-size: 1.05rem;
  line-height: 1.65;
}
.highlight-box-icon {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.6rem;
  color: var(--violet);
  font-weight: 700;
  font-family: var(--display);
  font-size: 1.1rem;
}
.highlight-box-icon svg {
  width: 22px;
  height: 22px;
}

.layout{display:grid;grid-template-columns:1fr 320px;gap:3rem;align-items:start}
.layout > aside{position:sticky;top:96px;align-self:start}
.aside-card{background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius-lg);padding:1.8rem;box-shadow:var(--shadow);overflow:hidden}
.aside-card h4{font-size:1.15rem;margin-bottom:.5rem}
.aside-card p{font-size:.92rem;color:var(--ink-soft);margin-bottom:1.1rem}
.aside-card .price{font-family:var(--display);font-size:1.6rem;color:var(--ink);margin-bottom:1rem}
.aside-card .btn{width:100%;justify-content:center;margin-bottom:.6rem}

/* sub-grid de soluções (categoria → 3 subitens) */
.subsol{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.2rem}
.subsol .card h3{font-size:1.2rem}

/* lista de guias */
.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem}
.guide{display:flex;flex-direction:column;background:#fff;border:1px solid var(--violet-100);border-radius:var(--radius);padding:1.5rem;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.guide:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.guide .gcat{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);font-weight:700;margin-bottom:.6rem}
.guide h3{font-size:1.15rem;margin-bottom:.5rem}
.guide p{font-size:.9rem;color:var(--ink-soft);flex:1;margin-bottom:1rem}
.guide .more{display:inline-flex;align-items:center;gap:.4rem;color:var(--violet);font-weight:700;font-size:.9rem}
.guide .more svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.guide:hover .more svg{transform:translateX(4px)}

/* ============================================================
   FEEDBACK CAROUSEL
   ============================================================ */
.feedback-carousel-section {
  padding-block: clamp(4rem, 3rem + 6vw, 7rem);
  background: var(--paper);
  overflow: hidden;
  position: relative;
}
.feedback-layout {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 4rem;
  align-items: center;
}
.feedback-info {
  display: flex;
  flex-direction: column;
}
.feedback-info h2 {
  font-size: clamp(2rem, 1.5rem + 2vw, 2.8rem);
  color: var(--orange);
  line-height: 1.15;
  margin: 0.5rem 0 1.2rem;
  font-family: var(--display);
  font-weight: 800;
}
.feedback-info p {
  color: var(--ink-soft);
  font-size: 1.025rem;
  line-height: 1.65;
  margin: 0;
}
.feedback-carousel-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.feedback-track {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none; /* Firefox */
  padding-block: 1rem;
  width: 100%;
}
.feedback-track::-webkit-scrollbar {
  display: none; /* Safari / Chrome */
}
.feedback-slide {
  flex: 0 0 calc(50% - 0.75rem); /* two visible cards on desktop */
  scroll-snap-align: start;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.feedback-slide img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1/1;
  object-fit: cover;
}
.feedback-slide:hover {
  transform: translateY(-5px) scale(1.01);
  box-shadow: var(--shadow-lg);
}
.carousel-btn {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--white);
  border: 1.5px solid var(--violet-100);
  color: var(--orange);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s var(--ease);
  cursor: pointer;
  z-index: 5;
}
.carousel-btn:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--white);
  transform: scale(1.1);
  box-shadow: 0 4px 15px rgba(255, 106, 40, 0.3);
}
.carousel-btn svg {
  width: 22px;
  height: 22px;
}

/* ============================================================
   Checkout — Seletor de moeda
============================================================ */
.ck-cur-label {
  font-size: .75rem;
  font-weight: 700;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-top: 1rem;
  margin-bottom: .4rem;
}
.ck-cur-wrap {
  display: flex;
  gap: .4rem;
}
.ck-cur-btn {
  flex: 1;
  padding: .5rem .5rem;
  border-radius: 10px;
  border: 1.5px solid var(--violet-100);
  background: #fff;
  cursor: pointer;
  font-size: .82rem;
  font-weight: 700;
  color: var(--ink-soft);
  text-align: center;
  transition: border-color .15s, color .15s, background .15s;
  font-family: var(--body);
}
.ck-cur-btn.active {
  border-color: var(--violet);
  background: #f5f0ff;
  color: var(--violet);
}
.ck-cur-btn:hover:not(.active) { border-color: var(--violet); color: var(--violet); }
.ck-rate-note {
  font-size: .72rem;
  color: var(--ink-soft);
  margin-top: .35rem;
  min-height: 1em;
}

/* ============================================================
   Checkout — Tabs de método de pagamento
============================================================ */
.pay-tabs {
  display: flex;
  border-bottom: 2px solid var(--violet-100);
  margin-bottom: 1.4rem;
}
.pay-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: .65rem .4rem;
  border: none;
  background: none;
  cursor: pointer;
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink-soft);
  border-bottom: 2.5px solid transparent;
  margin-bottom: -2px;
  transition: color .2s, border-color .2s;
  font-family: var(--body);
  white-space: nowrap;
}
.pay-tab svg { width: 15px; height: 15px; flex-shrink: 0; }
.pay-tab:hover { color: var(--violet); }
.pay-tab.active { color: var(--violet); border-bottom-color: var(--violet); }
.pay-panel { animation: fadeIn .2s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* ============================================================
   Checkout — Caixas PIX / Zelle
============================================================ */
.mpay-box {
  display: flex;
  gap: 1rem;
  padding: 1.2rem;
  background: #f9f7ff;
  border: 1.5px solid var(--violet-100);
  border-radius: 14px;
  margin-bottom: 1rem;
  align-items: flex-start;
}
.mpay-icon {
  width: 3rem;
  height: 3rem;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: .9rem;
  flex-shrink: 0;
  color: #fff;
  letter-spacing: -.02em;
}
.mpay-icon--pix   { background: #32B768; }
.mpay-icon--zelle { background: #6D1ED4; }
.mpay-info { flex: 1; min-width: 0; }
.mpay-label { font-weight: 600; color: var(--ink); margin-bottom: .6rem; font-size: .88rem; }
.mpay-key-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  background: #fff;
  border: 1.5px solid var(--violet-100);
  border-radius: 10px;
  padding: .6rem .85rem;
  margin-bottom: .75rem;
}
.mpay-key-type { font-size: .72rem; color: var(--ink-soft); font-weight: 600; display: block; margin-bottom: .15rem; }
.mpay-key-val  { font-size: .88rem; font-weight: 700; color: var(--ink); word-break: break-all; }
.copy-btn {
  flex-shrink: 0;
  padding: .32rem .7rem;
  border-radius: 8px;
  border: 1.5px solid var(--violet);
  background: none;
  color: var(--violet);
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, color .15s;
  font-family: var(--body);
}
.copy-btn:hover { background: var(--violet); color: #fff; }
.mpay-amount-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .88rem;
  color: var(--ink-soft);
}
.mpay-amount { font-size: 1.15rem; font-weight: 800; color: var(--ink); }
.mpay-warn {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  padding: .7rem .9rem;
  background: #fff8ed;
  border: 1.5px solid #f5c842;
  border-radius: 10px;
  font-size: .82rem;
  color: #7a5c00;
  line-height: 1.5;
  margin-bottom: 1rem;
}
.mpay-warn svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: .15rem; stroke: #b38600; }

/* ============================================================
   Formulário — Calendário de Agendamento (Consultoria)
============================================================ */
.booking-cal {
  border: 1.5px solid var(--violet-100);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.bcal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1rem;
  background: #f9f7ff;
  border-bottom: 1.5px solid var(--violet-100);
}
.bcal-month-label {
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
}
.bcal-nav {
  width: 2rem; height: 2rem;
  border-radius: 50%;
  border: 1.5px solid var(--violet-100);
  background: #fff;
  cursor: pointer;
  font-size: 1.2rem;
  line-height: 1;
  color: var(--violet);
  display: flex; align-items: center; justify-content: center;
  transition: background .15s, border-color .15s;
}
.bcal-nav:hover { background: var(--violet); color: #fff; border-color: var(--violet); }
.bcal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: #f5f0ff;
  padding: .4rem 0;
}
.bcal-weekdays span {
  text-align: center;
  font-size: .7rem;
  font-weight: 700;
  color: var(--violet);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.bcal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  padding: .5rem;
  background: #f9f7ff;
}
.bcal-loading { grid-column: 1/-1; padding: 1.5rem; text-align: center; color: var(--ink-soft); font-size: .88rem; }
.bcal-err     { grid-column: 1/-1; padding: 1rem; text-align: center; color: #e55; font-size: .88rem; }
.bcal-day {
  aspect-ratio: 1;
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px;
  font-size: .83rem;
  font-weight: 600;
  cursor: default;
  transition: background .15s;
  position: relative;
}
.bcal-day--empty  { background: transparent; }
.bcal-day--past   { color: var(--ink-soft); opacity: .4; }
.bcal-day--none   { color: var(--ink-soft); }
.bcal-day--available {
  background: #ede5ff;
  color: var(--violet);
  cursor: pointer;
}
.bcal-day--available:hover { background: var(--violet); color: #fff; }
.bcal-day--available::after {
  content: '';
  position: absolute;
  bottom: 4px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--violet);
}
.bcal-day--available:hover::after { background: #fff; }
.bcal-day--selected { background: var(--violet) !important; color: #fff !important; }
.bcal-day--selected::after { background: #fff !important; }

/* Slots de horário */
.bcal-slots {
  border-top: 1.5px solid var(--violet-100);
  padding: .9rem 1rem;
}
.bcal-slots-header {
  font-size: .82rem;
  color: var(--ink-soft);
  margin-bottom: .6rem;
}
.bcal-slots-header strong { color: var(--ink); }
.bcal-slots-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.bcal-time-btn {
  padding: .45rem .9rem;
  border-radius: 999px;
  border: 1.5px solid var(--violet-100);
  background: #fff;
  font-size: .83rem;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
  font-family: var(--body);
}
.bcal-time-btn:hover { border-color: var(--violet); color: var(--violet); }
.bcal-time-btn.active { background: var(--violet); border-color: var(--violet); color: #fff; }
.bcal-no-slots { font-size: .83rem; color: var(--ink-soft); }

/* Confirmação */
.bcal-confirm {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .8rem 1rem;
  background: #f0faf4;
  border-top: 1.5px solid #32b768;
  font-size: .85rem;
  color: #1a6b3a;
}
.bcal-confirm svg { width: 16px; height: 16px; stroke: #32b768; flex-shrink: 0; }
.bcal-confirm span { flex: 1; }
.bcal-change {
  flex-shrink: 0;
  border: none;
  background: none;
  color: var(--violet);
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--body);
  text-decoration: underline;
}

/* ============================================================
   Admin — Agenda semanal
============================================================ */
.ag-toolbar {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 12px 20px;
  background: rgba(255,255,255,.04);
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
}
.ag-nav { display: flex; align-items: center; gap: .5rem; }
.ag-nav-btn {
  width: 2rem; height: 2rem;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: #c4b5e8;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.ag-nav-btn:hover { background: rgba(255,255,255,.12); color: #fff; }
.ag-nav-btn svg { width: 14px; height: 14px; }
.ag-week-label { font-size: .88rem; font-weight: 700; color: #fff; min-width: 14ch; text-align: center; }
.ag-tz-note { font-size: .75rem; color: rgba(255,255,255,.4); margin-left: auto; }
.ag-btn-today {
  padding: .3rem .9rem;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.08);
  color: #c4b5e8;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--body);
  transition: background .15s;
}
.ag-btn-today:hover { background: rgba(255,255,255,.16); color: #fff; }

.ag-scroll { flex: 1; overflow: auto; padding: 16px 20px; }
.ag-inner  { display: grid; grid-template-columns: 52px repeat(7, 1fr); min-width: 600px; }

.ag-row         { display: contents; }
.ag-head-row .ag-cell-time,
.ag-head-row .ag-cell-day { border-bottom: 2px solid rgba(255,255,255,.10); }

.ag-cell-time {
  padding: .35rem .4rem;
  font-size: .72rem;
  color: rgba(255,255,255,.35);
  text-align: right;
  white-space: nowrap;
  align-self: center;
}
.ag-cell-day {
  padding: .4rem .3rem;
  text-align: center;
}
.ag-dname { display: block; font-size: .7rem; font-weight: 700; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .04em; }
.ag-dnum  { display: block; font-size: .85rem; font-weight: 700; color: rgba(255,255,255,.8); margin-top: .1rem; }
.ag-today-num { color: var(--violet) !important; }
.ag-today .ag-dname { color: var(--violet); }

.ag-cell {
  margin: 1px;
  border-radius: 6px;
  min-height: 44px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-size: .72rem;
  transition: opacity .15s;
  position: relative;
  overflow: hidden;
}
.ag-cell-past  { background: rgba(255,255,255,.02); }
.ag-cell-empty {
  background: rgba(255,255,255,.04);
  cursor: pointer;
  border: 1px dashed rgba(255,255,255,.08);
}
.ag-cell-empty:hover { background: rgba(106,47,184,.25); border-color: var(--violet); }
.ag-add-hint { font-size: 1.2rem; color: rgba(255,255,255,.2); line-height: 1; }
.ag-cell-empty:hover .ag-add-hint { color: var(--violet); }

.ag-slot-free {
  background: rgba(50,183,104,.18);
  border: 1px solid rgba(50,183,104,.4);
  cursor: pointer;
  color: #32b768;
  gap: .15rem;
}
.ag-slot-free:hover { background: rgba(50,183,104,.3); }
.ag-slot-label { font-size: .7rem; font-weight: 700; }
.ag-slot-del   { font-size: 1rem; opacity: .5; line-height: 1; }
.ag-slot-free:hover .ag-slot-del { opacity: 1; }

.ag-slot-reserved {
  background: rgba(106,47,184,.3);
  border: 1px solid rgba(106,47,184,.5);
  cursor: pointer;
  color: #c4a8f5;
  gap: .1rem;
}
.ag-slot-reserved:hover { background: rgba(106,47,184,.45); }
.ag-slot-name { font-size: .7rem; font-weight: 700; text-align: center; line-height: 1.2; padding: 0 4px; }
.ag-slot-hour { font-size: .62rem; opacity: .7; }

.ag-hint {
  padding: 8px 20px;
  font-size: .75rem;
  color: rgba(255,255,255,.3);
  flex-shrink: 0;
  border-top: 1px solid rgba(255,255,255,.06);
}
@media (max-width: 900px) {
  .feedback-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}
@media (max-width: 600px) {
  .feedback-slide {
    flex: 0 0 100%; /* one card on mobile */
  }
  .feedback-carousel-wrapper {
    gap: 0.5rem;
  }
  .carousel-btn {
    width: 38px;
    height: 38px;
  }
}

/* ============================================================
   Responsivo
   ============================================================ */
@media (max-width:1024px){
  .nav .menu{display:none}
  .burger{display:flex}
  .nav-cta .btn{display:none}
  .hero .wrap,.intro .grid{grid-template-columns:1fr}
  .hero-visual{order:-1;max-width:420px;margin:0 auto}
  .cards{grid-template-columns:repeat(2,1fr)}
  .case-grid{grid-template-columns:1fr 1fr}
  .footer .top{grid-template-columns:1fr 1fr}
  .footer .top>div:first-child{grid-column:1/-1}
  .mv{grid-template-columns:1fr}
  .values{grid-template-columns:repeat(3,1fr)}
  .svc-grid,.subsol,.guide-grid{grid-template-columns:repeat(2,1fr)}
  .contact-grid,.checkout-grid{grid-template-columns:1fr}
  .order{position:static}
  .layout{grid-template-columns:1fr}
  .layout > aside{position:static}
}
@media (max-width:680px){
  .topbar .hide-sm{display:none}
  .cards,.case-grid{grid-template-columns:1fr}
  .footer .top{grid-template-columns:1fr}
  .hero-stats{gap:1.3rem}
  .btn{padding:.85rem 1.3rem}
  .values{grid-template-columns:1fr 1fr}
  .svc-grid,.subsol,.guide-grid{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  .case-grid{grid-template-columns:1fr}
}
