/* ==========================================================================
   Dejavite Construtora — design tokens
   ========================================================================== */
:root{
  --ink:#1c1b1f;
  --ink-soft:#2a292e;
  --accent:#ff492d;
  --accent-dark:#e13a20;
  --paper:#f1eee6;
  --paper-deep:#e4dfd3;
  --paper-card:#faf9f5;
  --steel:#5c5f66;
  --steel-light:#8b8880;
  --line:rgba(28,27,31,0.14);
  --line-light:rgba(255,255,255,0.18);
  --white:#ffffff;

  --font-display:'Space Grotesk', sans-serif;
  --font-body:'Work Sans', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;

  --container:1180px;
  --radius:2px;
  --ease:cubic-bezier(.2,.8,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-0.01em;}
p{margin:0;}

.skip-link{
  position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:.75rem 1.25rem;z-index:200;
}
.skip-link:focus{left:1rem;top:1rem;}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.section{
  max-width:var(--container);
  margin:0 auto;
  padding:6rem 1.5rem;
}
.section__head{max-width:640px;margin-bottom:3.5rem;}
.section__head--dark{max-width:640px;margin:0 auto 4rem;padding:0 1.5rem;}
.section__title{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.15;}
.section__title--light{color:var(--white);}
.section__lead{color:var(--steel);font-size:1.02rem;margin-top:1rem;max-width:56ch;}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:var(--font-mono);
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 1rem;
}
.eyebrow--light{color:var(--accent);}
.eyebrow__mark{color:var(--steel-light);white-space:nowrap;}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--font-body);
  font-weight:600;
  font-size:.95rem;
  padding:.85rem 1.5rem;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s var(--ease), background-color .18s var(--ease), border-color .18s var(--ease);
  white-space:nowrap;
}
.btn__icon{width:1.1em;height:1.1em;fill:currentColor;flex:none;}

.btn--primary{
  background:var(--accent);
  color:#fff;
}
.btn--primary:hover{background:var(--accent-dark);transform:translateY(-2px);}

.btn--lg{padding:1.05rem 2rem;font-size:1.02rem;}

.btn--nav{
  background:transparent;
  border:1px solid var(--ink);
  color:var(--ink);
  padding:.6rem 1.1rem;
  font-size:.88rem;
}
.btn--nav:hover{background:var(--ink);color:var(--white);}

/* ==========================================================================
   Nav
   ========================================================================== */
.nav{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(241,238,230,.97);
  border-bottom:1px solid var(--line);
}
.nav__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 1.5rem;
  height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}
.nav__brand{display:flex;align-items:center;flex:none;}
.nav__logo{height:34px;width:auto;}
.nav__logo--light{display:none;}

.nav__links{display:flex;align-items:center;gap:1.6rem;margin-right:auto;margin-left:2rem;}
.nav__links a{
  font-size:.92rem;
  font-weight:500;
  color:var(--ink);
  position:relative;
  padding:.25rem 0;
}
.nav__links a::after{
  content:"";
  position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--accent);
  transition:right .2s var(--ease);
}
.nav__links a:hover::after{right:0;}

.nav__burger{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px;height:38px;
  background:none;border:1px solid var(--line);border-radius:var(--radius);
  cursor:pointer;
  flex:none;
}
.nav__burger span{display:block;height:2px;background:var(--ink);margin:0 auto;width:18px;transition:transform .2s var(--ease), opacity .2s var(--ease);}
.nav__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ==========================================================================
   Bracket motif (signature element)
   ========================================================================== */
.bracket{position:relative;}
.bracket__corner{
  position:absolute;
  width:22px;height:22px;
  border:2px solid var(--accent);
  opacity:0;
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.bracket__corner--tl{top:-9px;left:-9px;border-right:none;border-bottom:none;transform:translate(6px,6px);}
.bracket__corner--tr{top:-9px;right:-9px;border-left:none;border-bottom:none;transform:translate(-6px,6px);}
.bracket__corner--bl{bottom:-9px;left:-9px;border-right:none;border-top:none;transform:translate(6px,-6px);}
.bracket__corner--br{bottom:-9px;right:-9px;border-left:none;border-top:none;transform:translate(-6px,-6px);}

.bracket[data-revealed] .bracket__corner{opacity:1;transform:translate(0,0);}

.bracket__tag{
  position:absolute;
  bottom:1rem;left:1rem;
  background:var(--ink);
  color:var(--white);
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.1em;
  padding:.4rem .6rem;
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  max-width:var(--container);
  margin:0 auto;
  padding:4.5rem 1.5rem 6rem;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:48px 48px;
  background-position:center top;
}
.hero__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}
.hero__headline{
  font-size:clamp(2.3rem,4.6vw,3.6rem);
  line-height:1.08;
  margin:0 0 1.5rem;
}
.hero__sub{
  font-size:1.08rem;
  color:var(--steel);
  max-width:46ch;
  margin-bottom:2.25rem;
}
.hero__actions{display:flex;align-items:center;gap:1.75rem;flex-wrap:wrap;}
.hero__phone{display:flex;flex-direction:column;line-height:1.3;}
.hero__phone-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--steel-light);}
.hero__phone-number{font-weight:600;font-size:1rem;}
.hero__phone:hover .hero__phone-number{color:var(--accent);}

.hero__frame{
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--ink);
}
.hero__frame img{width:100%;height:100%;object-fit:cover;}

/* ==========================================================================
   Sequência cinematográfica (hero)
   ========================================================================== */
html.lenis, html.lenis body{scroll-behavior:auto;}
.lenis.lenis-smooth{scroll-behavior:auto !important;}

.cine{
  position:relative;
  height:480vh;
  background:var(--ink);
}
.cine__sticky{
  position:sticky;
  top:0;
  height:100vh;
  height:100svh;
  overflow:hidden;
}
.cine__media{position:absolute;inset:0;}
.cine__fallback{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.cine__canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
  display:block;
  opacity:0;
  transition:opacity .6s var(--ease);
}
.cine--ready .cine__canvas{opacity:1;}
.cine__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(28,27,31,.72) 0%, rgba(28,27,31,.38) 46%, rgba(28,27,31,.08) 75%),
    linear-gradient(180deg, rgba(28,27,31,.42) 0%, rgba(28,27,31,0) 30%, rgba(28,27,31,.55) 100%);
}
.cine__grain{
  position:absolute;inset:-160px;
  background-repeat:repeat;
  opacity:.045;
  pointer-events:none;
  animation:cine-grain .7s steps(6) infinite;
}
@keyframes cine-grain{
  0%{transform:translate(0,0);}
  20%{transform:translate(-42px,28px);}
  40%{transform:translate(24px,-64px);}
  60%{transform:translate(-76px,-18px);}
  80%{transform:translate(58px,52px);}
  100%{transform:translate(-12px,88px);}
}

.cine__disclaimer{
  position:absolute;
  z-index:4;
  bottom:1rem;right:1rem;
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  background:rgba(28,27,31,.55);
  border:1px solid var(--line-light);
  padding:.35rem .6rem;
}

.cine__rail{
  position:absolute;
  z-index:4;
  right:1.5rem;top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:1.4rem;
}
.cine__rail li{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.1em;
  color:rgba(255,255,255,.38);
  border-left:2px solid transparent;
  padding-left:.6rem;
  transition:color .4s var(--ease), border-color .4s var(--ease);
}
.cine__rail li.is-active{color:var(--accent);border-color:var(--accent);}

.cine__steps{position:absolute;inset:0;z-index:3;}
.cine__step{
  position:absolute;
  left:0;right:0;
  top:50%;
  transform:translateY(calc(-50% + 38px));
  max-width:var(--container);
  margin:0 auto;
  padding:0 4.5rem 0 1.5rem;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s var(--ease), transform .5s var(--ease), visibility 0s linear .5s;
}
.cine__step.is-active{
  opacity:1;
  visibility:visible;
  transform:translateY(-50%);
  transition:opacity .8s var(--ease) .1s, transform .8s var(--ease) .1s, visibility 0s;
}
.cine__step--hero .hero__headline,
.cine__step .cine__title{color:var(--white);}
.cine__step--hero .hero__headline{max-width:15ch;}
.cine__step--hero .hero__sub{color:rgba(255,255,255,.78);}
.cine__step--hero .hero__phone{color:var(--white);}
.cine__step--hero .hero__phone-label{color:rgba(255,255,255,.55);}

.eyebrow--cine{color:var(--accent);}
.eyebrow--cine .eyebrow__mark{color:rgba(255,255,255,.45);}

.cine__title{
  font-size:clamp(1.9rem,3.6vw,2.9rem);
  line-height:1.12;
  margin-bottom:1rem;
  max-width:16ch;
}
.cine__text{
  color:rgba(255,255,255,.8);
  font-size:1.05rem;
  max-width:44ch;
  margin-bottom:1.75rem;
}
.cine__step--right{text-align:left;}
@media (min-width:961px){
  .cine__step--right{padding-left:calc(50% - 1.5rem);}
}

.cine__hint{
  margin-top:2.75rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.cine__hint-arrow{
  display:inline-block;
  margin-left:.35rem;
  animation:cine-hint 1.8s var(--ease) infinite;
}
@keyframes cine-hint{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(5px);}
}

/* Fallback estático: sem JS, prefers-reduced-motion ou falha de carregamento */
html.no-js .cine,
.cine.cine--static{height:auto;}
html.no-js .cine .cine__sticky,
.cine.cine--static .cine__sticky{
  position:relative;
  height:auto;
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:6rem 0;
}
html.no-js .cine .cine__canvas,
.cine.cine--static .cine__canvas,
html.no-js .cine .cine__rail,
.cine.cine--static .cine__rail,
html.no-js .cine .cine__grain,
.cine.cine--static .cine__grain,
html.no-js .cine .cine__hint,
.cine.cine--static .cine__hint{display:none;}
html.no-js .cine .cine__steps,
.cine.cine--static .cine__steps{
  position:relative;
  inset:auto;
  display:flex;
  flex-direction:column;
  gap:4.5rem;
  width:100%;
}
html.no-js .cine .cine__step,
.cine.cine--static .cine__step{
  position:static;
  transform:none;
  opacity:1;
  visibility:visible;
  transition:none;
}

@media (max-width:960px){
  .cine{height:440vh;}
  .cine__step{padding:0 3.4rem 0 1.25rem;}
  .cine__rail{right:.9rem;gap:1.1rem;}
  .cine__step--hero .hero__headline{font-size:clamp(1.9rem,7.2vw,2.6rem);}
  .cine__scrim{
    background:
      linear-gradient(180deg, rgba(28,27,31,.5) 0%, rgba(28,27,31,.25) 40%, rgba(28,27,31,.72) 100%);
  }
  .cine__disclaimer{bottom:.75rem;right:.75rem;font-size:.56rem;}
}

/* ==========================================================================
   Compromissos strip
   ========================================================================== */
.commitments{background:var(--ink);}
.commitments__list{
  max-width:var(--container);
  margin:0 auto;
  padding:1.75rem 1.5rem;
  display:flex;
  flex-wrap:wrap;
  gap:1.25rem 2.5rem;
  justify-content:space-between;
}
.commitments__list li{
  display:flex;
  align-items:center;
  gap:.7rem;
  color:var(--white);
  font-size:.9rem;
  font-weight:500;
  flex:1 1 220px;
}
.commitments__icon{
  font-family:var(--font-mono);
  color:var(--accent);
  font-size:.78rem;
  border:1px solid var(--line-light);
  padding:.15rem .4rem;
  flex:none;
}

/* ==========================================================================
   Services
   ========================================================================== */
.services{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2.75rem;
}
.service-card{
  background:var(--paper-card);
  border:1px solid var(--line);
}
.service-card__media{position:relative;aspect-ratio:10/7;overflow:hidden;}
.service-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.service-card:hover .service-card__media img{transform:scale(1.05);}
.service-card__body{padding:1.75rem;}
.service-card__index{
  display:block;
  font-family:var(--font-mono);
  font-size:.75rem;
  color:var(--accent);
  letter-spacing:.08em;
  margin-bottom:.75rem;
}
.service-card__body h3{font-size:1.25rem;margin-bottom:.6rem;}
.service-card__body p{color:var(--steel);font-size:.95rem;margin-bottom:1rem;}
.service-card__tag{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.03em;
  color:var(--ink-soft);
  background:var(--paper-deep);
  border:1px solid var(--line);
  padding:.3rem .55rem;
  margin-bottom:1.25rem;
}
.service-card__link{font-weight:600;font-size:.9rem;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;}
.service-card__link:hover{color:var(--accent);border-color:var(--accent);}

/* ==========================================================================
   Portfólio
   ========================================================================== */
.portfolio-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem .6rem;
  margin-bottom:1rem;
}
.portfolio-card__meta li{
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--steel);
  border:1px solid var(--line);
  padding:.25rem .5rem;
}

/* ==========================================================================
   Process (dark)
   ========================================================================== */
.process{background:var(--ink);padding:6rem 0;}
.process__steps{
  max-width:var(--container);
  margin:0 auto;
  padding:0 1.5rem;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
}
.process__step{
  position:relative;
  padding:0 2rem 0 0;
  border-left:1px solid var(--line-light);
  padding-left:1.75rem;
}
.process__step:first-child{border-left:none;padding-left:0;}
.process__num{
  display:block;
  font-family:var(--font-mono);
  color:var(--accent);
  font-size:.85rem;
  letter-spacing:.1em;
  margin-bottom:1rem;
}
.process__step h3{color:var(--white);font-size:1.1rem;margin-bottom:.6rem;}
.process__step p{color:rgba(255,255,255,.62);font-size:.92rem;}

/* ==========================================================================
   Diferencial
   ========================================================================== */
.diff__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:start;
}
.diff__frame{aspect-ratio:3/2;overflow:hidden;background:var(--ink);}
.diff__frame img{width:100%;height:100%;object-fit:cover;}
.diff__list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem 1.75rem;
  margin:1.75rem 0 2.25rem;
}
.diff__list li{
  position:relative;
  padding-left:1.4rem;
}
.diff__list li::before{
  content:"";
  position:absolute;left:0;top:.4em;
  width:8px;height:8px;
  border:2px solid var(--accent);
}
.diff__list strong{display:block;font-size:.98rem;color:var(--ink);margin-bottom:.3rem;}
.diff__list span{display:block;font-size:.87rem;color:var(--steel);line-height:1.45;}

/* ==========================================================================
   Prova social
   ========================================================================== */
.stats-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2rem;
  padding:2.25rem 0;
  margin-bottom:3rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stats-row__num{
  display:block;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(2.2rem,4vw,3rem);
  color:var(--accent);
  line-height:1;
  margin-bottom:.6rem;
}
.stats-row__label{display:block;font-size:.88rem;color:var(--steel);max-width:26ch;}

.trust-note{
  max-width:760px;
  background:var(--paper-card);
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  padding:2.25rem;
}
.trust-note__label{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:1rem;
}
.trust-note__text{
  font-size:1.05rem;
  color:var(--ink-soft);
  line-height:1.6;
  max-width:62ch;
  margin-bottom:1.5rem;
}
.trust-note__cta{
  display:inline-block;
  font-weight:600;
  font-size:.95rem;
  color:var(--ink);
  border-bottom:1px solid var(--accent);
  padding-bottom:2px;
}
.trust-note__cta:hover{color:var(--accent);}

/* ==========================================================================
   Sobre / pessoas
   ========================================================================== */
.about__lead{color:var(--steel);font-size:1.05rem;margin-top:1.25rem;max-width:62ch;}
.people{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
.people__card{
  background:var(--paper-card);
  border:1px solid var(--line);
  padding:2rem;
}
.people__mark{
  display:inline-block;
  font-family:var(--font-mono);
  color:var(--steel-light);
  font-size:.85rem;
  margin-bottom:1rem;
}
.people__card h3{font-size:1.2rem;margin-bottom:.85rem;}
.people__card a{display:block;font-size:.95rem;color:var(--steel);margin-bottom:.4rem;}
.people__wa{
  margin-top:1rem;
  font-weight:600;
  color:var(--accent) !important;
}
.people__wa:hover{color:var(--accent-dark) !important;}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq__list{max-width:820px;}
.faq__item{
  border-bottom:1px solid var(--line);
}
.faq__item summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.35rem 0;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.05rem;
  color:var(--ink);
  cursor:pointer;
  list-style:none;
}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary::after{
  content:"+";
  flex:none;
  font-family:var(--font-mono);
  font-size:1.3rem;
  color:var(--accent);
  transition:transform .2s var(--ease);
}
.faq__item[open] summary::after{transform:rotate(45deg);}
.faq__item p{
  color:var(--steel);
  font-size:.96rem;
  max-width:70ch;
  padding-bottom:1.5rem;
}
.faq__more{margin-top:2rem;color:var(--steel);font-size:.95rem;}
.faq__more a{font-weight:600;color:var(--accent);}
.faq__more a:hover{color:var(--accent-dark);}

/* ==========================================================================
   CTA final
   ========================================================================== */
.final-cta{
  position:relative;
  padding:7rem 1.5rem;
  overflow:hidden;
  background:var(--ink);
}
.final-cta__bg{
  position:absolute;inset:0;
  background-image:url('../assets/cine/04-entrega-1920.webp');
  background-size:cover;
  background-position:center;
  opacity:.28;
  filter:grayscale(30%);
}
@media (max-width:768px){
  .final-cta__bg{background-image:url('../assets/cine/04-entrega-960.webp');}
}
.final-cta::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(28,27,31,.55), rgba(28,27,31,.92));
}
.final-cta__content{
  position:relative;
  max-width:640px;
  margin:0 auto;
  text-align:center;
}
.final-cta__title{
  color:var(--white);
  font-size:clamp(2rem,4vw,2.9rem);
  margin-bottom:1rem;
}
.final-cta__sub{color:rgba(255,255,255,.7);font-size:1.05rem;margin-bottom:2.25rem;}
.final-cta__content .btn{margin:0 auto;}
.final-cta__meta{color:rgba(255,255,255,.5);font-size:.85rem;margin-top:1.25rem;}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer{background:var(--ink);color:var(--white);}
.footer__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:4rem 1.5rem 2.5rem;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:3rem;
  border-bottom:1px solid var(--line-light);
}
.footer__logo{height:40px;width:auto;margin-bottom:1.25rem;}
.footer__brand p{color:rgba(255,255,255,.6);font-size:.92rem;line-height:1.6;}
.footer__contacts{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
.footer__contacts strong{display:block;margin-bottom:.6rem;font-size:.95rem;}
.footer__contacts a{display:block;color:rgba(255,255,255,.62);font-size:.9rem;margin-bottom:.3rem;}
.footer__contacts a:hover{color:var(--accent);}
.footer__social{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.15rem;font-family:var(--font-mono);font-size:.82rem;letter-spacing:.02em;color:rgba(255,255,255,.62);transition:color .18s var(--ease);}
.footer__social svg{width:1.4rem;height:1.4rem;fill:currentColor;flex:none;}
.footer__social:hover{color:var(--accent);}
.footer__meta{
  max-width:var(--container);
  margin:0 auto;
  padding:1.5rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.06em;
  color:rgba(255,255,255,.4);
}

/* ==========================================================================
   WhatsApp float button
   ========================================================================== */
.wa-float{
  position:fixed;
  right:1.75rem;
  bottom:1.75rem;
  z-index:150;
  width:58px;height:58px;
  background:var(--accent);
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(255,73,45,.4);
  transition:transform .2s var(--ease);
}
.wa-float:hover{transform:scale(1.08);}
.wa-float svg{width:28px;height:28px;fill:currentColor;position:relative;}
.wa-float::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  border:2px solid var(--accent);
  animation:wa-ring 2.6s ease-out infinite;
}
.wa-float__corner{
  position:absolute;
  width:12px;height:12px;
  border:2px solid var(--ink);
  opacity:0;
  transition:opacity .2s var(--ease);
}
.wa-float__corner--tl{top:-6px;left:-6px;border-right:none;border-bottom:none;}
.wa-float__corner--br{bottom:-6px;right:-6px;border-left:none;border-top:none;}
.wa-float:hover .wa-float__corner{opacity:1;}

@keyframes wa-ring{
  0%{transform:scale(1);opacity:.6;}
  100%{transform:scale(1.5);opacity:0;}
}

/* ==========================================================================
   Scroll reveal
   ========================================================================== */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease), transform .7s var(--ease);}
[data-reveal].is-visible{opacity:1;transform:translateY(0);}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:960px){
  .hero__grid{grid-template-columns:1fr;}
  .hero__frame{order:-1;}
  .services{grid-template-columns:1fr 1fr;}
  .process__steps{grid-template-columns:1fr 1fr;row-gap:2.5rem;}
  .process__step:nth-child(3){border-left:none;padding-left:0;}
  .diff__grid{grid-template-columns:1fr;}
  .diff__frame{order:-1;}
  .footer__inner{grid-template-columns:1fr;}
  .stats-row{grid-template-columns:1fr 1fr;}
  .stats-row li:last-child{grid-column:1 / -1;}
}

@media (max-width:720px){
  .btn{white-space:normal;text-align:left;}
  .btn--lg{padding:.95rem 1.4rem;font-size:.98rem;}

  .nav__links{
    position:fixed;
    inset:76px 0 0 0;
    background:var(--paper);
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    margin:0;
    padding:1rem 1.5rem;
    transform:translateX(100%);
    transition:transform .25s var(--ease);
    border-top:1px solid var(--line);
  }
  .nav__links.is-open{transform:translateX(0);}
  .nav__links a{width:100%;padding:1rem 0;border-bottom:1px solid var(--line);}
  .nav__burger{display:flex;}
  .btn--nav{display:none;}

  .services{grid-template-columns:1fr;}
  .process__steps{grid-template-columns:1fr;gap:2.25rem;}
  .process__step{border-left:none;padding-left:0;}
  .people{grid-template-columns:1fr;}
  .footer__contacts{grid-template-columns:1fr;}
  .commitments__list{justify-content:flex-start;}
  .section{padding:4.5rem 1.25rem;}
  .wa-float{right:1.1rem;bottom:1.1rem;width:52px;height:52px;}
  .diff__list{grid-template-columns:1fr;}
  .stats-row{grid-template-columns:1fr;text-align:left;}
  .stats-row li:last-child{grid-column:auto;}
  .testimonials__grid{grid-template-columns:1fr;}
}
