/* ===========================================================
   Ideal Lajes — sistema visual "placa de canteiro"
   Navy #02165B · Vermelho #DF3236 · Amarelo #FFD808
   Mobile-first. Sem framework.
   =========================================================== */

:root{
  --navy:#02165B;
  --navy-d:#010F3E;
  --red:#DF3236;
  --red-d:#B8272B;
  --yellow:#FFD808;
  --wa:#25D366;
  --wa-d:#128C7E;
  --ink:#16181D;
  --muted:#5C6472;
  --paper:#FFFFFF;
  --sand:#F1EFEA;
  --line:rgba(2,22,91,.14);

  --wrap:1180px;
  --pad:20px;
  --r:4px;
  --dock-h:64px;

  --shadow:0 2px 0 rgba(2,22,91,.08), 0 18px 40px -24px rgba(2,22,91,.55);
  --hard:6px 6px 0 var(--navy);

  --f-disp:"Archivo Black", Impact, sans-serif;
  --f-cond:"Barlow Condensed", "Barlow", sans-serif;
  --f-body:"Barlow", system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:110px}
body{
  margin:0;
  font-family:var(--f-body);
  font-size:17px;line-height:1.6;
  color:var(--ink);background:var(--paper);
  padding-bottom:var(--dock-h);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;line-height:1.05;letter-spacing:-.01em}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.wrap--narrow{max-width:760px}

.skip{position:absolute;left:-9999px;top:0;background:var(--yellow);color:var(--navy);padding:12px 18px;font-weight:700;z-index:999}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}

/* ---------- tipografia utilitária ---------- */
.eyebrow{
  font-family:var(--f-cond);font-size:.82rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.18em;color:var(--red);
  margin:0 0 10px;
}
.eyebrow--light{color:var(--yellow)}
.h2{font-family:var(--f-disp);font-size:clamp(1.85rem,7.2vw,3.1rem);color:var(--navy);text-wrap:balance}
.h2--light{color:#fff}
.lead{margin:14px 0 26px;color:var(--muted);max-width:52ch;font-size:1.05rem}
.lead--light{color:rgba(255,255,255,.75)}

/* ---------- botões ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--f-cond);font-weight:700;font-size:1.12rem;
  text-transform:uppercase;letter-spacing:.06em;
  padding:15px 24px;border:0;border-radius:var(--r);cursor:pointer;
  min-height:52px;transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.btn:active{transform:translateY(2px)}
.btn--sm{padding:10px 16px;min-height:44px;font-size:.98rem}
.btn--lg{padding:18px 28px;min-height:60px;font-size:1.25rem}
.btn--wide{width:100%;margin-top:26px}
.btn--wa{background:var(--wa);color:#04331c;box-shadow:0 10px 24px -12px rgba(37,211,102,.9)}
.btn--wa:hover{background:#1fbb59}
.btn--ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.55);backdrop-filter:blur(2px)}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn--dark{background:var(--navy);color:#fff}
.btn--dark:hover{background:var(--navy-d)}
.btn--yellow{background:var(--yellow);color:var(--navy)}
.btn--yellow:hover{background:#ffe43f}
.ico{width:22px;height:22px;fill:currentColor;flex:none}

/* ---------- faixa zebrada ---------- */
.stripe{
  height:10px;
  background:repeating-linear-gradient(135deg,var(--yellow) 0 14px,var(--navy) 14px 28px);
}

/* ===================== HEADER ===================== */
.hdr{position:sticky;top:0;z-index:60;background:#fff;box-shadow:0 1px 0 var(--line)}
.hdr__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:10px}
.hdr__logo img{width:122px;height:auto}
.hdr__nav{background:var(--navy);overflow:hidden}
.hdr__navrow{
  display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
  padding-block:0;
}
.hdr__navrow::-webkit-scrollbar{display:none}
.hdr__navrow a{
  scroll-snap-align:start;white-space:nowrap;
  font-family:var(--f-cond);font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;font-size:.92rem;color:rgba(255,255,255,.82);
  padding:13px 12px;border-bottom:3px solid transparent;
}
.hdr__navrow a:hover,.hdr__navrow a.is-active{color:#fff;border-bottom-color:var(--yellow)}

/* ===================== HERO ===================== */
.hero{position:relative;background:var(--navy-d);color:#fff;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(1,15,62,.92) 0%,rgba(1,15,62,.78) 45%,rgba(1,15,62,.94) 100%);
}
.hero__in{padding:42px 20px 44px}
.hero h1{
  font-family:var(--f-disp);
  font-size:clamp(2.25rem,10.2vw,4.6rem);
  line-height:.98;text-wrap:balance;
}
.hero h1 em{font-style:normal;color:var(--yellow)}
.hero__sub{margin:18px 0 26px;font-size:1.1rem;color:rgba(255,255,255,.88);max-width:44ch}
.hero__sub strong{color:#fff;background:linear-gradient(transparent 62%, rgba(223,50,54,.85) 62%)}
.hero__cta{display:flex;flex-direction:column;gap:12px}
.hero__trust{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
  margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.22);
}
.hero__trust b{display:block;font-family:var(--f-cond);font-size:1.15rem;line-height:1.1;color:var(--yellow)}
.hero__trust span{display:block;font-size:.8rem;color:rgba(255,255,255,.72);line-height:1.3;margin-top:4px}

/* ===================== SEÇÕES ===================== */
.sec{padding:56px 0}
.sec--tight{padding:44px 0}
.sec--sand{background:var(--sand)}
.sec--navy{background:var(--navy);color:#fff}

/* ---------- chips de atalho ---------- */
.chips{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.chips .chip{
  display:flex;align-items:center;gap:10px;
  background:#fff;border:2px solid var(--navy);border-radius:var(--r);
  padding:16px 14px;min-height:64px;
  font-family:var(--f-cond);font-weight:700;font-size:1.18rem;
  text-transform:uppercase;letter-spacing:.04em;color:var(--navy);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.chip__ico{display:grid;place-items:center;flex:none;width:26px;height:26px;color:var(--red)}
.chip__ico svg{width:100%;height:100%;fill:currentColor}
.chips .chip:hover{background:var(--yellow);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--navy)}

/* ---------- grids ---------- */
.grid{display:grid;gap:14px}
.grid--prod{grid-template-columns:repeat(2,1fr)}
.grid--serv,.grid--dif,.grid--blog{grid-template-columns:1fr;gap:18px}
.grid--nums{grid-template-columns:repeat(2,1fr);gap:26px 14px}
.grid--ft{grid-template-columns:1fr;gap:30px}

/* ---------- card de produto ---------- */
.card{
  display:flex;flex-direction:column;background:#fff;border-radius:var(--r);
  overflow:hidden;color:var(--navy);
  transition:transform .18s ease, box-shadow .18s ease;
}
.card__img{display:block;aspect-ratio:4/3;overflow:hidden;background:#dcd8d1}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card__t{
  font-family:var(--f-cond);font-weight:700;font-size:1.06rem;line-height:1.15;
  text-transform:uppercase;letter-spacing:.02em;
  padding:12px 12px 6px;flex:1;
}
.card__a{
  display:block;padding:0 12px 13px;
  font-size:.82rem;font-weight:700;color:var(--red);letter-spacing:.04em;text-transform:uppercase;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card:hover .card__img img{transform:scale(1.07)}
.card.is-extra{display:none}
.grid--prod.is-open .card.is-extra{display:flex}

/* ---------- serviços ---------- */
.serv{
  background:#fff;border-left:6px solid var(--red);border-radius:var(--r);
  padding:24px 22px;box-shadow:0 1px 0 var(--line);
}
.serv h3{font-family:var(--f-cond);font-size:1.5rem;text-transform:uppercase;color:var(--navy);margin-bottom:10px}
.serv p{color:var(--muted)}
.link{display:inline-block;margin-top:14px;font-weight:700;color:var(--red);font-size:.95rem}
.link:hover{text-decoration:underline}

/* ---------- passos ---------- */
.steps{display:grid;gap:14px;counter-reset:s}
.steps li{
  position:relative;background:var(--sand);border-radius:var(--r);
  padding:22px 22px 22px 70px;
}
.steps__n{
  position:absolute;left:18px;top:20px;
  width:38px;height:38px;display:grid;place-items:center;
  background:var(--red);color:#fff;border-radius:50%;
  font-family:var(--f-disp);font-size:1.05rem;
}
.steps h3{font-family:var(--f-cond);font-size:1.4rem;text-transform:uppercase;color:var(--navy);margin-bottom:6px}
.steps p{color:var(--muted);font-size:.98rem}

/* ---------- diferenciais ---------- */
.dif img{border-radius:var(--r);aspect-ratio:3/2;object-fit:cover;width:100%}
.dif h3{font-family:var(--f-cond);font-size:1.45rem;text-transform:uppercase;color:var(--navy);margin:14px 0 8px}
.dif p{color:var(--muted)}

/* ---------- números ---------- */
.nums{background:var(--red);color:#fff;padding:40px 0}
.nums b{display:block;font-family:var(--f-disp);font-size:clamp(1.55rem,6.4vw,3rem);color:var(--yellow);line-height:1;white-space:nowrap}
.nums span{display:block;font-size:.86rem;color:rgba(255,255,255,.92);margin-top:6px;line-height:1.3}

/* ---------- clientes ---------- */
.logos{
  display:grid;grid-template-columns:repeat(2,1fr);gap:22px 18px;align-items:center;
  margin-top:22px;
}
.logos img{
  max-height:44px;width:auto;margin-inline:auto;
  filter:grayscale(1);opacity:.62;transition:filter .25s ease,opacity .25s ease;
}
.logos img:hover{filter:none;opacity:1}

/* ---------- sobre ---------- */
.sobre{padding:56px 0;background:#fff}
.sobre__in{display:grid;gap:26px}
.sobre__img{position:relative}
.sobre__img::after{content:"";position:absolute;inset:auto -10px -10px 10px;height:100%;border:8px solid var(--red);border-radius:var(--r);z-index:-1}
.sobre__img img{border-radius:var(--r);width:100%}
.sobre__txt p{color:var(--muted);margin:16px 0 24px}

/* ---------- FAQ ---------- */
.faq{margin-top:22px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);background:transparent}
.faq summary{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:18px 2px;cursor:pointer;list-style:none;
  font-family:var(--f-cond);font-size:1.22rem;font-weight:700;color:var(--navy);
  text-transform:uppercase;letter-spacing:.02em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-disp);color:var(--red);font-size:1.3rem;transition:transform .2s ease}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 2px 20px;color:var(--muted)}

/* ---------- blog ---------- */
.post{display:block;background:#fff;border-radius:var(--r);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.post img{aspect-ratio:3/2;object-fit:cover;width:100%}
.post h3{font-family:var(--f-cond);font-size:1.3rem;text-transform:uppercase;color:var(--navy);margin:14px 0 6px}
.post p{color:var(--muted);font-size:.95rem;padding-bottom:18px}
.post h3,.post p{padding-inline:2px}
.post:hover{transform:translateY(-4px);box-shadow:var(--shadow)}

/* ---------- CTA ---------- */
.cta{background:var(--red);color:#fff;padding:44px 0}
.cta__in{display:grid;gap:22px}
.cta h2{font-family:var(--f-disp);font-size:clamp(1.6rem,6.4vw,2.5rem);line-height:1.05;color:#fff}
.cta p{margin-top:10px;color:rgba(255,255,255,.92)}

/* ---------- rodapé ---------- */
.ft{background:var(--navy);color:rgba(255,255,255,.8);padding:44px 0 0;font-size:.96rem}
.ft__logo{width:160px;margin-bottom:16px}
.ft h4{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.1em;color:var(--yellow);font-size:1.05rem;margin-bottom:12px}
.ft__list li{padding:5px 0}
.ft__list a:hover{color:#fff;text-decoration:underline}
.ft__list--2{columns:2}
.ft__social{display:flex;gap:10px;margin-top:18px}
.ft__social a{
  width:42px;height:42px;display:grid;place-items:center;border-radius:var(--r);
  background:var(--red);color:#fff;
}
.ft__social svg{width:20px;height:20px;fill:currentColor}
.ft__social a:hover{background:var(--yellow);color:var(--navy)}
.ft__pay{max-width:250px;background:#fff;padding:10px;border-radius:var(--r)}
.ft__bottom{margin-top:36px;padding:16px 0;background:var(--navy-d);text-align:center;font-size:.85rem}

/* ---------- WhatsApp flutuante ---------- */
.wafloat{
  position:fixed;right:14px;bottom:calc(var(--dock-h) + 14px);z-index:70;
  display:flex;align-items:center;gap:8px;
  background:var(--wa);color:#fff;border-radius:999px;
  padding:14px;box-shadow:0 12px 28px -8px rgba(0,0,0,.45);
  animation:pulse 2.6s ease-out infinite;
}
.wafloat svg{width:28px;height:28px;fill:#fff}
.wafloat__txt{display:none;font-family:var(--f-cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding-right:6px}
.wafloat:hover{background:var(--wa-d);animation:none}
@keyframes pulse{
  0%{box-shadow:0 12px 28px -8px rgba(0,0,0,.45),0 0 0 0 rgba(37,211,102,.55)}
  70%{box-shadow:0 12px 28px -8px rgba(0,0,0,.45),0 0 0 18px rgba(37,211,102,0)}
  100%{box-shadow:0 12px 28px -8px rgba(0,0,0,.45),0 0 0 0 rgba(37,211,102,0)}
}

/* ---------- barra fixa mobile ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  display:grid;grid-template-columns:96px 1fr;
  height:calc(var(--dock-h) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -6px 20px -10px rgba(0,0,0,.5);
}
.dock a{
  display:grid;place-items:center;text-align:center;
  font-family:var(--f-cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  font-size:1.02rem;line-height:1.1;padding:0 10px;
}
.dock__call{background:var(--navy);color:#fff}
.dock__wa{background:var(--wa);color:#04331c;font-size:1.12rem}
.dock__call:active,.dock__wa:active{filter:brightness(.92)}

/* ---------- reveal ---------- */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease var(--d,0s), transform .6s cubic-bezier(.2,.7,.3,1) var(--d,0s)}
.js .rv.is-in{opacity:1;transform:none}

/* ===================== BREAKPOINTS ===================== */
@media (min-width:600px){
  .chips{grid-template-columns:repeat(3,1fr)}
  .grid--prod{grid-template-columns:repeat(3,1fr)}
  .logos{grid-template-columns:repeat(4,1fr)}
  .hero__cta{flex-direction:row}
  .hero__trust b{font-size:1.35rem}
  .cta__in{grid-template-columns:1fr auto;align-items:center}
  .grid--serv,.grid--dif,.grid--blog{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:900px){
  body{padding-bottom:0}
  .dock{display:none}
  .wafloat{bottom:24px;right:24px;padding:16px 20px}
  .wafloat__txt{display:inline}
  .hdr__bar{padding-block:14px}
  .hdr__logo img{width:150px}
  .hdr__navrow{justify-content:flex-start;gap:4px}
  .hdr__navrow a{padding:14px 18px;font-size:1rem}
  .hero__in{padding:96px 20px 86px;max-width:var(--wrap)}
  .hero__sub{font-size:1.25rem}
  .hero__trust{max-width:640px}
  .sec{padding:92px 0}
  .sec--tight{padding:72px 0}
  .grid--prod{grid-template-columns:repeat(4,1fr);gap:18px}
  .grid--nums{grid-template-columns:repeat(4,1fr)}
  .grid--ft{grid-template-columns:1.6fr 1fr 1fr 1.1fr;gap:40px}
  .sobre{padding:96px 0}
  .sobre__in{grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .logos{grid-template-columns:repeat(8,1fr);gap:24px}
  .logos img{max-height:46px}
  .card__t{font-size:1.15rem;padding:14px 14px 6px}
  .btn--wide{width:auto;min-width:340px}
  .steps li{padding:28px 26px 28px 78px}
}
@media (min-width:1100px){
  .hero h1{font-size:4.4rem;max-width:16ch}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .rv,.js .rv{opacity:1;transform:none}
}
