/* ============================================================
   Vilela CSE — estilos do site
   Cores: marinho #0B1626 / #12233A · dourado #C9963B / #B8862F · marfim #F4F1EA
   ============================================================ */

:root{
  --navy:#0B1626; --navy-2:#12233A; --navy-3:#162B47;
  --gold:#C9963B; --gold-dark:#B8862F;
  --ivory:#F4F1EA; --ivory-2:#E6E1D5;
  --ink:#12233A; --ink-soft:#3B4A5E; --muted:#6B7686;
  --text:#F4F1EA; --text-soft:#B4BFCD; --text-dim:#8A97A8;
  --line:rgba(244,241,234,.1); --line-gold:rgba(201,150,59,.5);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Manrope',system-ui,sans-serif;
  --wrap:1248px; --gutter:clamp(20px,5vw,96px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--navy);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--navy);padding:8px 14px;border-radius:999px;z-index:100}
.skip:focus{left:8px}

/* ---------- tipografia ---------- */
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:24px}
.eyebrow--dark{color:var(--gold-dark)}
.display{font-family:var(--serif);font-weight:300;font-size:clamp(52px,8vw,112px);line-height:.96;letter-spacing:-.02em}
.display em,.h2 em{font-style:italic;font-weight:400}
.display em{color:var(--gold)}
.h2{font-family:var(--serif);font-weight:300;font-size:clamp(40px,5vw,68px);line-height:1;letter-spacing:-.01em}
.h2--big{font-size:clamp(44px,5.6vw,76px)}
.h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3vw,42px);line-height:1.08}
.lead{max-width:540px;font-size:18px;color:var(--text-soft);margin-top:36px}
.body{font-size:17px;line-height:1.75;color:var(--ink-soft);margin-top:28px}
.label{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.label--gold{color:var(--gold)}
.link{font-size:14px;color:var(--text-soft);border-bottom:1px solid var(--line-gold);padding-bottom:2px}
.link:hover{color:var(--gold)}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:20px 36px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:transform .2s,background .3s,border-color .3s,color .3s;position:relative;overflow:hidden;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn--gold{background:var(--gold);color:var(--navy);font-weight:700}
.btn--gold::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(244,241,234,.18) 50%,transparent 60%);transform:translateX(-100%);animation:sweep 6s ease-in-out infinite}
.btn--gold span{position:relative}
.btn--ghost{border:1px solid rgba(244,241,234,.25);color:var(--text)}
.btn--ghost:hover{border-color:var(--gold)}
.btn--sm{padding:14px 26px;font-size:12px}
.btn--block{width:100%;padding:22px}
.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:40px}
.product .actions{margin-top:24px}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(11,22,38,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav__in{height:80px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px}
.brand__mark{width:36px;height:29px}
.brand__name{font-family:var(--serif);font-size:22px;font-weight:500;letter-spacing:.16em;color:var(--text)}
.nav__menu{display:flex;align-items:center;gap:36px;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft)}
.nav__menu a:not(.btn):hover{color:var(--gold)}
.nav__toggle{display:none;background:none;border:0;width:44px;height:44px;padding:10px;cursor:pointer}
.nav__toggle span{display:block;height:1.5px;background:var(--text);margin:7px 0;transition:transform .3s,opacity .3s}
.nav__toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}

/* ---------- efeitos de fundo ---------- */
.fx{position:absolute;pointer-events:none}
.fx--grid{inset:0;background-image:linear-gradient(rgba(201,150,59,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(201,150,59,.07) 1px,transparent 1px);background-size:96px 96px;animation:gridpan 40s linear infinite;-webkit-mask-image:radial-gradient(ellipse at 60% 45%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse at 60% 45%,#000 20%,transparent 75%)}
.fx--grid-soft{opacity:.7}
.fx--glow{width:760px;height:760px;border-radius:50%;filter:blur(30px)}
.fx--glow-gold{top:120px;right:-160px;background:radial-gradient(circle,rgba(201,150,59,.28) 0%,rgba(201,150,59,0) 62%);animation:drift 26s ease-in-out infinite}
.fx--glow-blue{top:-300px;left:-200px;width:900px;height:900px;filter:blur(40px);background:radial-gradient(circle,rgba(38,74,120,.55) 0%,rgba(38,74,120,0) 60%);animation:drift2 34s ease-in-out infinite}
.fx--glow-low{top:auto;bottom:-500px;left:30%;opacity:.6}
.fx--glow-left{top:200px;left:-300px;right:auto;opacity:.7}
.fx--glow-br{top:auto;right:-300px;bottom:-400px}
.fx--ring{width:640px;height:640px;right:60px;top:160px;border:1px dashed rgba(201,150,59,.35);border-radius:50%;animation:spin 90s linear infinite}
.fx--ring-2{width:880px;height:880px;right:-60px;top:40px;border:1px solid rgba(244,241,234,.08);animation:spin 140s linear infinite reverse}
.fx--ring-bl{right:auto;left:-200px;top:auto;bottom:-260px;width:520px;height:520px}
.fx--ring-light{width:520px;height:520px;right:-120px;top:-120px;border:1px solid rgba(18,35,58,.08);border-radius:50%}
.dot{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:pulse 2.4s ease-in-out infinite;display:inline-block;flex:none}

@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(120px,-80px) scale(1.15)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1.1)}50%{transform:translate(-140px,90px) scale(.95)}}
@keyframes gridpan{to{background-position:96px 96px}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes sweep{to{transform:translateX(100%)}}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;min-height:calc(100vh - 80px);display:flex;align-items:center;padding:96px 0 120px}
.hero__in{position:relative;display:grid;grid-template-columns:8fr 4fr;gap:32px;align-items:center;width:100%}
.hero__mark{display:flex;justify-content:center}
.hero__mark svg{width:260px;height:208px}
.floaty{animation:floaty 7s ease-in-out infinite}
.hero__scroll{position:absolute;left:var(--gutter);bottom:40px;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.hero__scroll-line{width:1px;height:40px;background:linear-gradient(var(--gold),transparent)}

/* ---------- marquee ---------- */
.marquee{border-top:1px solid rgba(201,150,59,.25);border-bottom:1px solid rgba(201,150,59,.25);height:96px;display:flex;align-items:center;overflow:hidden}
.marquee__track{display:flex;gap:64px;white-space:nowrap;animation:marquee 38s linear infinite;font-family:var(--serif);font-size:clamp(24px,2.4vw,34px);letter-spacing:.04em;color:var(--text-soft);will-change:transform}
.marquee i{color:var(--gold);font-style:normal}

/* ---------- seções ---------- */
.section{position:relative;overflow:hidden;padding:120px 0}
.section--light{background:var(--ivory);color:var(--ink)}
.section--line{border-top:1px solid var(--line)}
.section__head{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:48px;margin-bottom:64px}
.section__head--single{display:block}
.section__intro{max-width:440px;color:var(--text-soft)}
.section--light .section__intro{color:var(--ink-soft)}
.grid-2{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.grid-2--tight{gap:20px}
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;row-gap:48px;position:relative}
.grid-12--center{align-items:center}
.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}
.col-6 + .col-6{grid-column:7 / span 6}
.col-5 + .col-6,.col-4 + .col-7{grid-column-start:auto}
.col-5 + .col-6{grid-column:7 / span 6}
.col-4 + .col-7{grid-column:6 / span 7}
.col--offset{grid-column:8 / span 5}

/* ---------- cartões ---------- */
.card--glass{background:rgba(244,241,234,.03);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color .3s,transform .3s}
.card--glass:hover{border-color:rgba(201,150,59,.6);transform:translateY(-4px)}
.card{display:flex;flex-direction:column;gap:28px;padding:48px;border-radius:20px;min-height:340px;color:var(--text)}
.card p{color:var(--text-soft)}
.card--gold{background:rgba(201,150,59,.06)}
.card__top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.circle{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-gold);display:grid;place-items:center;flex:none}
.circle svg{width:18px;height:18px;fill:none;stroke:var(--gold);stroke-width:1.6}
.circle--fill{background:var(--gold);border-color:var(--gold)}
.circle--fill svg{stroke:var(--navy);stroke-width:1.8}
.pills{margin-top:auto;display:flex;flex-wrap:wrap;gap:10px}
.pills span{padding:8px 14px;border:1px solid rgba(244,241,234,.15);border-radius:999px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft)}
.pills--gold span{border-color:rgba(201,150,59,.4);color:var(--text)}

.tile{padding:32px;background:#fff;border-radius:16px;display:flex;flex-direction:column;gap:14px}
.tile svg{width:30px;height:30px;fill:none;stroke:var(--gold-dark);stroke-width:1.5}
.tile h3{font-family:var(--serif);font-weight:500;font-size:27px;line-height:1.1}
.tile p{font-size:14px;line-height:1.65;color:var(--ink-soft)}
.tile--dark{background:var(--navy-2);color:var(--text)}
.tile--dark svg{stroke:var(--gold)}
.tile--dark p{color:var(--text-soft)}

.facts{display:flex;gap:48px;margin-top:32px;flex-wrap:wrap}
.facts div{display:flex;flex-direction:column;gap:4px}
.facts strong{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3vw,44px);line-height:1}
.facts span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.facts--row strong{font-size:28px;font-weight:500}
.facts--row{gap:40px}

/* ---------- produtos ---------- */
.product{display:flex;flex-direction:column;border-radius:24px;overflow:hidden}
.product__art{height:320px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);padding:24px}
.product__art--gold{background:radial-gradient(circle at 50% 120%,rgba(201,150,59,.22),transparent 60%)}
.product__art--blue{background:radial-gradient(circle at 50% 120%,rgba(38,74,120,.45),transparent 60%)}
.product__body{padding:40px;display:flex;flex-direction:column;gap:20px}
.product__body p{color:var(--text-soft)}
.badge{padding:6px 12px;border-radius:999px;border:1px solid rgba(244,241,234,.2);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.badge--on{background:rgba(201,150,59,.12);border-color:transparent;color:var(--gold)}
/* maquetes ilustrativas */
.mock{width:100%;max-width:400px;height:220px;background:var(--navy);border:1px solid rgba(244,241,234,.12);border-radius:12px;box-shadow:0 30px 60px rgba(0,0,0,.4);display:flex;overflow:hidden}
.mock--browser{flex-direction:column}
.mock__bar{height:36px;display:flex;align-items:center;gap:6px;padding:0 14px;border-bottom:1px solid rgba(244,241,234,.08)}
.mock__bar i{width:10px;height:10px;border-radius:50%;background:rgba(244,241,234,.15)}
.mock__bar b{margin-left:12px;flex:1;height:12px;background:rgba(244,241,234,.06);border-radius:6px}
.mock__body{flex:1;padding:18px;display:flex;flex-direction:column;gap:12px}
.mock u,.mock__side u{display:block;height:10px;background:rgba(244,241,234,.12);border-radius:5px;text-decoration:none}
.mock .on,.mock__side .on{background:var(--gold)}
.mock--dash{padding:20px;gap:16px}
.mock__side{width:90px;display:flex;flex-direction:column;gap:8px}
.mock__main{flex:1;display:flex;flex-direction:column;gap:12px}
.mock__kpis{display:flex;gap:10px}
.mock__kpis i{flex:1;height:48px;background:rgba(244,241,234,.06);border-radius:8px}
.mock__bars{flex:1;display:flex;align-items:flex-end;gap:6px}
.mock__bars i{flex:1;background:rgba(244,241,234,.12);border-radius:3px 3px 0 0}
.mock__bars .on{background:var(--gold)}

.next{position:relative;margin-top:24px;display:flex;justify-content:space-between;align-items:center;gap:32px;padding:36px 40px;border:1px dashed rgba(201,150,59,.35);border-radius:20px}
.next__text{display:flex;flex-direction:column;gap:12px;max-width:760px}
.next__text .h3{font-size:clamp(26px,2.6vw,34px)}
.next__text p{color:var(--text-soft);font-size:15px}
.next__tag{flex:none;padding:10px 16px;border-radius:999px;background:rgba(244,241,234,.06);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}

/* ---------- método ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.steps li{display:flex;flex-direction:column;gap:14px;padding-top:28px;border-top:1px solid var(--line-gold)}
.steps span{font-family:var(--serif);font-size:44px;color:var(--gold);line-height:1}
.steps h3{font-size:18px;font-weight:600}
.steps p{font-size:14px;line-height:1.65;color:var(--text-soft)}

/* ---------- sobre ---------- */
.photo{aspect-ratio:4/5;background:var(--ivory-2);border-radius:20px;display:grid;place-items:center;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase;background-size:cover;background-position:center}

/* ---------- contato ---------- */
.contact{display:flex;flex-direction:column;gap:16px}
.contact__row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 28px;border-radius:16px;color:var(--text)}
.contact__row div{display:flex;flex-direction:column;gap:4px;min-width:0}
.contact__row strong{font-weight:500;font-size:17px;overflow-wrap:anywhere}
.contact__row svg{width:20px;height:20px;fill:none;stroke:var(--gold);stroke-width:1.6;flex:none}

/* ---------- rodapé ---------- */
.footer{border-top:1px solid var(--line);color:var(--text-dim);padding:56px 0 40px}
.footer__in{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap}
.footer__brand p{font-size:13px;margin-top:14px}
.footer__links{display:flex;gap:64px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.footer__links div{display:flex;flex-direction:column;gap:10px}
.footer__links a{color:var(--text-soft)}
.footer__links a:hover{color:var(--gold)}
.footer__legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:12px}
.footer__legal a:hover{color:var(--gold)}

/* ---------- revelar ao rolar ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal--late{transition-delay:.15s}
.reveal.is-in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

/* ---------- responsivo ---------- */
@media (max-width:1024px){
  .hero__in{grid-template-columns:1fr}
  .hero__mark{display:none}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .col-4,.col-5,.col-6,.col-7,.col--offset,.col-5 + .col-6,.col-4 + .col-7,.col-6 + .col-6{grid-column:1 / -1}
  .photo{max-width:360px}
  .fx--ring,.fx--ring-2{right:-300px}
}
@media (max-width:820px){
  .nav__toggle{display:block}
  .nav__menu{position:absolute;top:80px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--navy);border-bottom:1px solid var(--line);padding:8px var(--gutter) 24px;display:none}
  .nav__menu.is-open{display:flex}
  .nav__menu a{padding:16px 0;border-bottom:1px solid var(--line)}
  .nav__menu .btn{margin-top:16px;border-bottom:0}
  .section{padding:88px 0}
  .section__head{flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:40px}
  .grid-2{grid-template-columns:1fr}
  .card{padding:32px;min-height:0}
  .product__art{height:240px}
  .product__body{padding:28px}
  .next{flex-direction:column;align-items:flex-start;padding:28px}
  .hero{padding:72px 0 96px;min-height:0}
  .hero__scroll{display:none}
  .actions .btn{width:100%}
  .facts{gap:28px}
}
@media (max-width:480px){
  .steps{grid-template-columns:1fr}
  .brand__name{font-size:18px}
  .footer__links{gap:40px}
}

/* ---------- respeita quem prefere menos movimento ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
