:root{
  --ink:#17130f;
  --ink-2:#221b13;
  --ink-3:#2c2318;
  --paper:#faf6ec;
  --paper-2:#f1ead6;
  --gold:#d8ad28;
  --gold-pale:#fbf36e;
  --orange:#e56610;
  --cream-text:#f4eedd;
  --muted:#b3a891;
  --line:rgba(244,238,221,0.12);
  --line-dark:rgba(23,19,15,0.12);

  /* motion tokens — reuse everywhere, never invent a curve inline */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --header-h: 100px;
}

*{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px) + 12px);
  -webkit-text-size-adjust:100%;
  -webkit-tap-highlight-color:transparent;
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a,button,[role="button"],input[type="submit"]{
  touch-action:manipulation;
}
h1,h2,h3,.logo{
  font-family:'Space Grotesk',sans-serif;
  margin:0;
  letter-spacing:-0.01em;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

/* ---------- Nav ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(23,19,15,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding-top:env(safe-area-inset-top,0px);
}
nav.wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:var(--header-h);
}
.logo{
  color:var(--cream-text);
  font-size:20px;font-weight:700;
  display:inline-flex;align-items:center;gap:2px;
}
.logo-img{height:85px;width:auto;display:block;}
.logo-fallback{display:none;align-items:baseline;gap:2px;}
.logo em{
  font-style:normal;
  background:linear-gradient(100deg,var(--gold-pale),var(--gold) 55%,var(--orange));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.navlinks{display:flex;align-items:center;gap:36px;}
.navlinks a{
  position:relative;
  color:var(--muted);font-size:15px;font-weight:500;
  transition:color 200ms var(--ease-out);
}
.navlinks a::after{
  content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;
  background:var(--gold);
  transform:scaleX(0);transform-origin:left;
  transition:transform 200ms var(--ease-out);
}
.navlinks a.activo{color:var(--cream-text);}
.navlinks a.activo::after{transform:scaleX(1);}
@media (hover:hover) and (pointer:fine){
  .navlinks a:hover{color:var(--cream-text);}
  .navlinks a:hover::after{transform:scaleX(1);}
}
.cta-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--orange);color:var(--paper);
  padding:11px 22px;border-radius:3px;
  font-size:14px;font-weight:600;
  border:1px solid var(--orange);
  transition:background 200ms var(--ease-out), color 200ms var(--ease-out), transform 120ms var(--ease-out);
  cursor:pointer;
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
.cta-btn:active{transform:scale(0.97);}
.cta-ghost{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--line);color:var(--cream-text);
  padding:11px 22px;border-radius:3px;font-size:14px;font-weight:500;
  transition:border-color 200ms var(--ease-out), background 200ms var(--ease-out), transform 120ms var(--ease-out);
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
.cta-ghost:active{transform:scale(0.97);}
@media (hover:hover) and (pointer:fine){
  .cta-btn:hover{background:transparent;color:var(--gold-pale);border-color:var(--gold-pale);}
  .cta-ghost:hover{border-color:var(--gold);background:rgba(216,173,40,0.08);}
}
.navtoggle{
  display:none;background:none;border:0;color:var(--cream-text);font-size:24px;cursor:pointer;
  transition:transform 150ms var(--ease-out);
}
.navtoggle:active{transform:scale(0.9);}
@media(max-width:860px){
  .navlinks{
    position:absolute;top:100%;left:0;right:0;
    background:var(--ink);
    flex-direction:column;align-items:flex-start;
    padding:16px 20px 24px;gap:18px;
    border-bottom:1px solid var(--line);
    opacity:0;
    transform:translateY(-8px);
    pointer-events:none;
    transition:opacity 220ms var(--ease-out), transform 240ms var(--ease-drawer);
  }
  .navlinks.open{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }
  .navlinks .cta-btn{width:100%;justify-content:center;}
  .navtoggle{display:block;}
}

/* ---------- Hero ---------- */
.hero{
  background:
    radial-gradient(ellipse 900px 500px at 82% -10%, rgba(216,173,40,0.20), transparent 60%),
    radial-gradient(ellipse 700px 500px at 0% 110%, rgba(229,102,16,0.16), transparent 60%),
    var(--ink);
  color:var(--cream-text);
  position:relative;
  padding:110px 0 130px;
  overflow:hidden;
}
.hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:linear-gradient(180deg, transparent, rgba(0,0,0,0.55) 40%, transparent 90%);
          mask-image:linear-gradient(180deg, transparent, rgba(0,0,0,0.55) 40%, transparent 90%);
  opacity:0.5;
}
.hero-inner{position:relative;max-width:760px;}
.hero-inner > *{
  opacity:0;
  animation:heroIn 450ms var(--ease-out) forwards;
}
.hero-inner .eyebrow{animation-delay:0ms;}
.hero-inner h1{animation-delay:50ms;}
.hero-inner .lead{animation-delay:110ms;}
.hero-inner .tagline{animation-delay:80ms;}
.hero-inner .hero-actions{animation-delay:170ms;}
.hero-inner .hero-meta{animation-delay:230ms;}
@keyframes heroIn{
  from{opacity:0;transform:translateY(8px);}
  to{opacity:1;transform:translateY(0);}
}
.eyebrow{
  color:var(--gold);font-size:14px;font-weight:600;
  margin-bottom:22px;
}
.hero h1{
  font-size:clamp(38px,6vw,64px);
  line-height:1.06;font-weight:700;
  max-width:14ch;
}
.hero h1 .grad{
  background:linear-gradient(100deg,var(--gold-pale),var(--gold) 55%,var(--orange));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p.lead{
  margin-top:26px;font-size:18px;line-height:1.6;
  color:var(--muted);max-width:52ch;
}
.hero-actions{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap;}
.hero-meta{
  margin-top:76px;display:flex;gap:48px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:28px;
}
.hero-meta div{max-width:220px;}
.hero-meta strong{display:block;color:var(--cream-text);font-size:15px;margin-bottom:4px;font-family:'Space Grotesk',sans-serif;}
.hero-meta span{color:var(--muted);font-size:14px;line-height:1.5;}

/* ---------- Gold Cloud: hero dedicado (produto, não institucional) ---------- */
.cloud-hero{
  background:
    radial-gradient(ellipse 700px 480px at 8% -10%, rgba(229,102,16,0.16), transparent 60%),
    radial-gradient(ellipse 900px 600px at 100% 100%, rgba(216,173,40,0.14), transparent 65%),
    var(--ink);
  color:var(--cream-text);
  position:relative;overflow:hidden;
  padding:112px 0 96px;
}
.cloud-hero-glow{
  position:absolute;inset:-20% -10% auto auto;width:60%;height:70%;
  background:radial-gradient(circle, rgba(216,173,40,0.18), transparent 70%);
  filter:blur(10px);pointer-events:none;
}
.cloud-hero-grid{
  position:relative;
  display:grid;grid-template-columns:1.05fr 0.95fr;gap:48px;align-items:center;
}
@media(max-width:960px){.cloud-hero-grid{grid-template-columns:1fr;gap:56px;}}
.cloud-hero-copy .eyebrow{margin-bottom:20px;}
.cloud-hero-copy h1{font-size:clamp(38px,6vw,58px);line-height:1.05;font-weight:700;}
.cloud-hero-copy .tagline{
  margin-top:10px;font-size:18px;font-weight:600;color:var(--cream-text);
}
.cloud-hero-copy .lead{margin-top:18px;max-width:50ch;}
.cloud-hero-chips{
  margin-top:40px;display:flex;flex-direction:column;gap:12px;
}
.cloud-hero-chips span{
  display:inline-flex;align-items:center;gap:10px;
  font-size:14px;color:var(--muted);
}
.cloud-hero-chips svg{
  width:16px;height:16px;flex-shrink:0;color:var(--gold);
  border:1px solid rgba(216,173,40,0.4);border-radius:50%;padding:3px;
}
.hero-inner .cloud-hero-chips{animation-delay:200ms;}

.cloud-hero-visual{
  position:relative;display:flex;align-items:center;justify-content:center;
  opacity:0;animation:heroIn 600ms var(--ease-out) 250ms forwards;
}
.cloud-hero-visual svg{width:100%;max-width:420px;height:auto;}
.cloud-badge{
  position:absolute;left:50%;bottom:6%;transform:translateX(-38%);
  display:inline-flex;align-items:center;gap:8px;
  background:var(--ink-3);border:1px solid rgba(216,173,40,0.4);
  color:var(--cream-text);font-size:13px;font-weight:600;
  padding:9px 16px;border-radius:20px;
  box-shadow:0 12px 30px rgba(0,0,0,0.35);
}
.cloud-badge svg{width:15px;height:15px;color:var(--gold);}
@media(max-width:960px){.cloud-badge{bottom:auto;top:6%;transform:translateX(-50%);}}

.cv-lines{animation:cvFlow 2.4s linear infinite;}
@keyframes cvFlow{to{stroke-dashoffset:-24;}}
.cv-float-a,.cv-float-b{animation:cvFloat 4s var(--ease-in-out) infinite alternate;}
.cv-float-b{animation-delay:0.6s;}
@keyframes cvFloat{
  from{transform:translateY(0);}
  to{transform:translateY(-6px);}
}
@media (prefers-reduced-motion: reduce){
  .cv-lines,.cv-float-a,.cv-float-b{animation:none !important;}
}

/* ---------- Section shells ---------- */
section{padding:104px 0;}
@media(max-width:640px){section{padding:72px 0;}}
.section-head{max-width:620px;margin-bottom:56px;}
.kicker{
  color:var(--orange);font-size:14px;font-weight:600;margin-bottom:14px;
}
.section-head h1,
.section-head h2{
  font-size:clamp(28px,3.6vw,40px);font-weight:600;line-height:1.15;
}
.section-head p{margin-top:16px;font-size:17px;line-height:1.6;color:#5a5142;}
.h-medium{font-size:clamp(26px,3.2vw,34px);font-weight:600;margin-bottom:22px;}

.alt-bg{background:var(--paper-2);}

/* ---------- Sobre ---------- */
.about-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;
}
@media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:40px;}}
.about-copy p{font-size:16px;line-height:1.75;color:#4a4335;margin:0 0 18px;}
.about-copy p:last-child{margin-bottom:0;}
.value-list{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;}
.value-list li{
  display:flex;gap:12px;align-items:flex-start;font-size:15px;color:#4a4335;
}
.value-list .dot{
  width:7px;height:7px;border-radius:50%;background:var(--orange);
  margin-top:8px;flex-shrink:0;
}
.about-visual{
  position:relative;aspect-ratio:4/5;border-radius:4px;overflow:hidden;
  background:linear-gradient(160deg,var(--ink) 0%, var(--ink-3) 60%, var(--ink) 100%);
  display:flex;align-items:center;justify-content:center;
}
.about-img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- Serviços ---------- */
.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line-dark);border:1px solid var(--line-dark);
}
@media(max-width:860px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.services-grid{grid-template-columns:1fr;}}
/* Modifier for grids of 4 (ex: Gold Cloud "acompanhamento") — same
   breakpoints as above, just a different desktop column count. */
.services-grid.cols-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:1024px){.services-grid.cols-4{grid-template-columns:repeat(3,1fr);}}
@media(max-width:860px){.services-grid.cols-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.services-grid.cols-4{grid-template-columns:1fr;}}
.service-card{
  background:var(--paper);padding:36px 30px;
}
.service-card .icon{
  width:40px;height:40px;margin-bottom:22px;color:var(--orange);
}
.service-card h3{font-size:18px;font-weight:600;margin-bottom:10px;}
.service-card p{font-size:14.5px;line-height:1.6;color:#5a5142;margin:0;}

/* ---------- Loja ---------- */
.loja{
  background:var(--ink);color:var(--cream-text);
  position:relative;
}
.loja-top{
  display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  flex-wrap:wrap;margin-bottom:56px;
}
.loja-cats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
}
@media(max-width:900px){.loja-cats{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.loja-cats{grid-template-columns:1fr;}}
.cat-card{
  border:1px solid var(--line);border-radius:4px;
  padding:0 24px 26px;
  background:linear-gradient(180deg, rgba(216,173,40,0.04), transparent);
  overflow:hidden;
}
.cat-img-wrap{
  margin:0 -24px 20px;
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--ink-3);
}
.cat-img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 300ms var(--ease-out);
}
@media (hover:hover) and (pointer:fine){
  .cat-card:hover .cat-img{transform:scale(1.05);}
}
.cat-card .tag{
  font-size:12.5px;color:var(--gold);font-weight:600;margin-bottom:16px;display:block;
}
.cat-card h3{font-size:19px;font-weight:600;margin-bottom:10px;}
.cat-card p{font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 20px;}
.cat-card .link{
  font-size:13.5px;font-weight:600;color:var(--cream-text);
  display:inline-flex;align-items:center;gap:6px;
}
.cat-card .link svg{width:14px;height:14px;}

.loja-banner{
  margin-top:64px;border-radius:4px;
  background:linear-gradient(110deg, rgba(216,173,40,0.14), rgba(229,102,16,0.10));
  border:1px solid var(--line);
  padding:40px 44px;
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
}
.loja-banner h3{font-size:22px;font-weight:600;max-width:32ch;}
.loja-banner p{color:var(--muted);font-size:14.5px;margin-top:8px;max-width:44ch;}

.loja-page .section-head p{color:var(--muted);}

/* ---------- Produtos ---------- */
.produtos-page{padding-top:56px;}
.breadcrumb{
  display:flex;align-items:center;gap:8px;
  font-size:13.5px;color:var(--muted);margin-bottom:28px;
}
.breadcrumb a{color:#8a7c5e;}
@media (hover:hover) and (pointer:fine){
  .breadcrumb a:hover{color:var(--orange);}
}
.breadcrumb span:last-child{color:#4a4335;font-weight:600;}

.produtos-toolbar{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  flex-wrap:wrap;margin-bottom:32px;
}
.filtros{display:flex;flex-wrap:wrap;gap:10px;}
.filtro-btn{
  border:1px solid var(--line-dark);background:var(--paper);color:#5a5142;
  font-size:13.5px;font-weight:600;padding:9px 18px;border-radius:20px;
  transition:background 180ms var(--ease-out), color 180ms var(--ease-out), border-color 180ms var(--ease-out);
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
.filtro-btn.is-active{background:var(--ink);border-color:var(--ink);color:var(--cream-text);}
@media (hover:hover) and (pointer:fine){
  .filtro-btn:not(.is-active):hover{border-color:var(--gold);color:var(--ink);}
}
.busca{
  position:relative;flex:0 1 280px;min-width:200px;
  color:var(--muted);
}
.busca svg{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:16px;height:16px;pointer-events:none;
}
.busca input{
  width:100%;font-family:inherit;font-size:15px;
  padding:11px 14px 11px 40px;border-radius:20px;
  border:1px solid var(--line-dark);background:var(--paper);color:var(--ink);
  transition:border-color 180ms var(--ease-out);
}
.busca input:focus{outline:none;border-color:var(--gold);}
.busca input::-webkit-search-cancel-button{cursor:pointer;}

.sem-resultados{
  text-align:center;color:var(--muted);font-size:15px;
  padding:48px 0;margin:0;
}

.produtos-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  padding-bottom:96px;
}
@media(max-width:1024px){.produtos-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:760px){.produtos-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:460px){.produtos-grid{grid-template-columns:1fr;}}

.produto-card{
  border:1px solid var(--line-dark);border-radius:4px;
  padding:22px;background:var(--paper);
  display:flex;flex-direction:column;
  transition:border-color 200ms var(--ease-out), transform 200ms var(--ease-out);
}
.produto-card.oculto{display:none;}
@media (hover:hover) and (pointer:fine){
  .produto-card:hover{border-color:var(--gold);transform:translateY(-3px);}
}
.produto-img{
  aspect-ratio:4/3;border-radius:3px;margin-bottom:16px;
  background:linear-gradient(160deg,var(--ink) 0%, var(--ink-3) 100%);
  display:flex;align-items:center;justify-content:center;
}
.produto-img .icon{width:44px;height:44px;color:var(--gold);}
.produto-img img + .icon{display:none;}
.produto-img{overflow:hidden;}
.produto-img img{width:100%;height:100%;object-fit:cover;}
.produto-card h3{font-size:15.5px;font-weight:600;line-height:1.35;margin-bottom:8px;}
.produto-card p{font-size:13px;line-height:1.55;color:var(--muted);margin:0 0 18px;flex-grow:1;}
.produto-rodape{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-top:14px;border-top:1px solid var(--line-dark);
}
.produto-preco{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15px;color:var(--ink);}
.btn-whatsapp{
  display:inline-flex;align-items:center;gap:6px;
  background:#25d366;color:#0b2b1a;
  font-size:13px;font-weight:700;padding:8px 14px;border-radius:20px;
  transition:background 180ms var(--ease-out), transform 120ms var(--ease-out);
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
.btn-whatsapp:active{transform:scale(0.96);}
@media (hover:hover) and (pointer:fine){
  .btn-whatsapp:hover{background:#1fb457;}
}

/* ---------- Porquê ---------- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;}
@media(max-width:860px){.why-grid{grid-template-columns:1fr;gap:36px;}}
.why-item .num{
  font-family:'Space Grotesk',sans-serif;font-size:14px;color:var(--orange);
  font-weight:600;margin-bottom:18px;
}
.why-item h3{font-size:19px;font-weight:600;margin-bottom:10px;}
.why-item p{font-size:15px;line-height:1.65;color:#5a5142;margin:0;}

/* ---------- Clientes ---------- */
.clients{background:var(--paper-2);}
.clients .section-head{margin-bottom:44px;}

.logos-marquee{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
          mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
}
.logos-track{
  display:flex;
  align-items:center;
  gap:64px;
  width:max-content;
  background:var(--paper-2); /* fundo próprio: permite ao multiply dos logos fundir o branco com o creme */
  animation:marquee 32s linear infinite;
}
@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.logo-item{
  flex:0 0 auto;
  height:170px;
  display:flex;align-items:center;
}
.logo-item img{
  height:100%;width:auto;max-width:170px;
  object-fit:contain;
  mix-blend-mode:multiply;
  transition:filter 200ms var(--ease-out), opacity 200ms var(--ease-out);
}
.logo-texto{
  font-size:14.5px;font-weight:500;color:#4a4335;
  border:1px solid var(--line-dark);border-radius:3px;
  padding:14px 22px;background:var(--paper);white-space:nowrap;
}
@media (hover:hover) and (pointer:fine){
  .logos-marquee:hover .logos-track{animation-play-state:paused;}
  .logo-item img:hover{filter:grayscale(0);opacity:1;}
}

/* ---------- Contacto (página) ---------- */
.contacto-grid{
  display:grid;grid-template-columns:1.4fr 1fr;gap:56px;
}
@media(max-width:860px){.contacto-grid{grid-template-columns:1fr;gap:40px;}}
.contacto-form{
  display:flex;flex-direction:column;gap:6px;
  background:var(--paper-2);border:1px solid var(--line-dark);
  border-radius:4px;padding:32px;
}
.contacto-form label{font-size:14px;font-weight:600;margin-top:14px;}
.contacto-form input,
.contacto-form textarea{
  font-family:inherit;font-size:16px;padding:12px 14px;
  border:1px solid var(--line-dark);border-radius:3px;
  background:var(--paper);color:var(--ink);resize:vertical;
  transition:border-color 200ms var(--ease-out);
}
.contacto-form input:focus,
.contacto-form textarea:focus{outline:none;border-color:var(--gold);}
.contacto-form button{margin-top:24px;align-self:flex-start;}
/* Honeypot: fora do ecrã sem usar display:none (bots simples ignoram
   display:none, mas continuam a preencher isto às cegas). */
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.form-msg{padding:12px 14px;border-radius:3px;font-size:14px;margin:0 0 8px;}
.form-msg.sucesso{background:rgba(216,173,40,0.16);color:#7a5c0f;}
.form-msg.erro{background:rgba(229,102,16,0.14);color:#93380a;}
.contacto-info h2,
.contacto-info h3{font-size:16px;font-weight:600;margin-bottom:20px;}
.contacto-info .contact-list li{color:#4a4335;}
.contacto-info .contact-list svg{color:var(--orange);}
.contacto-info .contact-list a{color:var(--ink);}

/* ---------- Página legal (Política de Privacidade) ---------- */
.legal-texto{max-width:70ch;padding-bottom:96px;}
.legal-texto h3{font-size:18px;font-weight:600;margin:36px 0 12px;}
.legal-texto p{font-size:15px;line-height:1.7;color:#4a4335;margin:0 0 14px;}
.legal-texto ul{margin:0 0 14px;padding-left:20px;color:#4a4335;font-size:15px;line-height:1.7;}
.legal-texto li{margin-bottom:6px;}
.legal-aviso{
  margin-top:32px;padding:16px 18px;border-radius:4px;
  background:var(--paper-2);border:1px solid var(--line-dark);
  font-size:13.5px;color:var(--muted);
}

/* ---------- Rodapé ---------- */
footer{background:var(--ink);color:var(--cream-text);padding-top:88px;}
.footer-grid{
  display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:56px;
  padding-bottom:64px;border-bottom:1px solid var(--line);
  max-width:1180px;margin:0 auto;padding-left:32px;padding-right:32px;
}
@media(max-width:800px){.footer-grid{grid-template-columns:1fr;gap:40px;}}
@media(max-width:640px){.footer-grid{padding-left:20px;padding-right:20px;}}
.footer-grid h3{font-size:16px;font-weight:600;margin-bottom:20px;color:var(--gold);}
.footer-about p{font-size:14.5px;line-height:1.7;color:var(--muted);max-width:36ch;}
.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.footer-links a{font-size:14.5px;color:var(--muted);transition:color .2s ease;}
@media (hover:hover) and (pointer:fine){
  .footer-links a:hover{color:var(--cream-text);}
}
.contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.contact-list li{display:flex;gap:12px;font-size:14.5px;color:var(--muted);align-items:flex-start;}
.contact-list svg{width:16px;height:16px;margin-top:2px;flex-shrink:0;color:var(--gold);}
.contact-list a{color:var(--cream-text);}
.bottom-bar{
  display:flex;justify-content:space-between;align-items:center;
  padding:26px 0;font-size:13px;color:var(--muted);flex-wrap:wrap;gap:12px;
  max-width:1180px;margin:0 auto;padding-left:32px;padding-right:32px;
}
@media(max-width:640px){.bottom-bar{padding-left:20px;padding-right:20px;}}
.bottom-bar a{transition:color 200ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){
  .bottom-bar a:hover{color:var(--cream-text);}
}

/* ---------- Scroll reveal (marketing sections only) ---------- */
.reveal{
  opacity:0;
  transform:translateY(8px);
  transition:opacity 280ms var(--ease-out), transform 280ms var(--ease-out);
}
.reveal.in-view{opacity:1;transform:none;}

/* Grids: container triggers the observer, children stagger in on top of it */
.services-grid > *,.loja-cats > *,.why-grid > *,.produtos-grid > *{
  opacity:0;
  transform:translateY(6px);
  transition:opacity 220ms var(--ease-out), transform 220ms var(--ease-out);
}
.services-grid.in-view > *,.loja-cats.in-view > *,.why-grid.in-view > *,.produtos-grid.in-view > *{
  opacity:1;transform:none;
}
.services-grid > *:nth-child(2),.loja-cats > *:nth-child(2),.why-grid > *:nth-child(2),.produtos-grid > *:nth-child(2){transition-delay:30ms;}
.services-grid > *:nth-child(3),.loja-cats > *:nth-child(3),.why-grid > *:nth-child(3),.produtos-grid > *:nth-child(3){transition-delay:60ms;}
.services-grid > *:nth-child(4),.loja-cats > *:nth-child(4),.produtos-grid > *:nth-child(4){transition-delay:90ms;}
.services-grid > *:nth-child(5),.produtos-grid > *:nth-child(5){transition-delay:120ms;}
.services-grid > *:nth-child(6),.produtos-grid > *:nth-child(6){transition-delay:150ms;}

/* ---------- Card & link micro-interactions (pointer devices only) ---------- */
.cat-card,.service-card{transition:border-color 200ms var(--ease-out), background 200ms var(--ease-out), transform 200ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){
  .cat-card:hover{border-color:var(--gold);transform:translateY(-3px);}
  .service-card:hover{background:var(--paper-2);}
}
.cat-card:active{transform:scale(0.98);}
.cat-card .link svg{transition:transform 200ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){
  .cat-card:hover .link svg{transform:translateX(3px);}
}

::selection{background:var(--gold);color:var(--ink);}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  /* the logo marquee is continuous decoration, not a one-shot transition —
     freeze it instead of letting it "flash" at a near-zero duration */
  .logos-track{animation:none !important;}
}

/* ---------- Small-screen refinements ---------- */
@media(max-width:480px){
  .hero-actions{flex-direction:column;}
  .hero-actions a{width:100%;justify-content:center;text-align:center;}
  .loja-banner{flex-direction:column;align-items:flex-start;}
  .loja-banner .cta-btn{width:100%;justify-content:center;}
  .contacto-form button{width:100%;justify-content:center;}
  .loja-top .cta-ghost{width:100%;justify-content:center;}
  .busca{flex-basis:100%;}
  .produto-rodape{flex-wrap:wrap;align-items:flex-start;}
}

@media(max-width:640px){
  :root{
    --header-h:76px;
  }

  .logo-img{
    height:64px;
  }
}


/* ---------- Acessibilidade: saltar para o conteúdo ---------- */
.skip-link{
  position:absolute;left:12px;top:-64px;z-index:1000;
  background:var(--gold);color:var(--ink);
  padding:10px 16px;border-radius:4px;font-weight:600;font-size:14px;
  transition:top .15s ease;
}
.skip-link:focus{top:calc(12px + env(safe-area-inset-top,0px));}
main:focus{outline:none;}

/* ---------- Página de erro ---------- */
.erro-page{padding:120px 0;text-align:left;}
.erro-page .codigo{
  font-family:'Space Grotesk',sans-serif;font-size:clamp(72px,14vw,140px);
  font-weight:700;line-height:1;margin:0 0 8px;
  background:linear-gradient(135deg,#fbf36e,#d8ad28 55%,#e56610);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.erro-page .hero-actions{margin-top:28px;}
.vazio-categoria{margin:0 0 32px;font-size:16px;line-height:1.6;color:#5a5142;max-width:60ch;}
.vazio-categoria a{color:var(--orange);font-weight:600;}

/* ---------- Botão flutuante de WhatsApp ---------- */
.wa-float{
  position:fixed;z-index:40;
  right:max(18px,env(safe-area-inset-right,0px));
  bottom:max(18px,env(safe-area-inset-bottom,0px));
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#25d366;color:#0b2b1a;
  box-shadow:0 8px 24px rgba(0,0,0,0.28);
  transition:background 180ms var(--ease-out), transform 150ms var(--ease-out);
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
.wa-float svg{width:28px;height:28px;}
.wa-float:active{transform:scale(0.94);}
@media (hover:hover) and (pointer:fine){
  .wa-float:hover{background:#1fb457;transform:translateY(-2px);}
}
@media print{.wa-float{display:none;}}

/* ---------- Catálogo: ligação para a página do produto ---------- */
.produto-card h3 a{color:inherit;}
.produto-detalhes{
  font-size:13px;font-weight:600;color:#5a5142;
  text-decoration:underline;text-decoration-color:var(--line-dark);text-underline-offset:3px;
}
@media (hover:hover) and (pointer:fine){
  .produto-card h3 a:hover,.produto-detalhes:hover{color:var(--orange);}
}

/* ---------- Produto (página individual) ---------- */
.produto-detalhe{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;
  padding-bottom:72px;
}
@media(max-width:860px){.produto-detalhe{grid-template-columns:1fr;gap:32px;}}
.pd-img{
  aspect-ratio:1/1;border-radius:4px;overflow:hidden;
  border:1px solid var(--line-dark);background:#fff;
  display:flex;align-items:center;justify-content:center;
}
.pd-img img{width:100%;height:100%;object-fit:contain;}
.pd-img .icon{width:72px;height:72px;color:var(--gold);}
.pd-info h1{font-size:clamp(26px,3.4vw,38px);font-weight:600;line-height:1.15;}
.pd-desc{margin:16px 0 0;font-size:17px;line-height:1.6;color:#5a5142;}
.pd-preco{margin:20px 0 0;font-size:24px;}
.pd-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:28px;}
.pd-wa{font-size:14px;padding:11px 20px;}
.pd-pontos{margin-top:32px;}
@media(max-width:480px){.pd-acoes a{width:100%;justify-content:center;}}
.pd-rel{padding-bottom:96px;}
.pd-rel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
@media(max-width:860px){.pd-rel-grid{grid-template-columns:repeat(2,1fr);}}
.pd-rel-card{
  display:block;border:1px solid var(--line-dark);border-radius:4px;
  padding:16px;background:var(--paper);
  transition:border-color 200ms var(--ease-out), transform 200ms var(--ease-out);
}
.pd-rel-card img{
  width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;
  background:#fff;border-radius:3px;margin-bottom:12px;
}
.pd-rel-card h3{font-size:14.5px;font-weight:600;line-height:1.35;}
@media (hover:hover) and (pointer:fine){
  .pd-rel-card:hover{border-color:var(--gold);transform:translateY(-3px);}
}

/* ---------- Landing page de campanha (/oferta) ---------- */
.lp-hero{padding:72px 0 88px;}
.lp-hero .cloud-hero-grid{align-items:start;}
.lp-hero h1{font-size:clamp(32px,5vw,48px);}
.lp-hero .cloud-hero-grid > *{min-width:0;}
@media(max-width:960px){.lp-hero .cloud-hero-grid{grid-template-columns:minmax(0,1fr);}}
.lp-form{color:var(--ink);box-shadow:0 20px 50px rgba(0,0,0,0.35);}  /* o hero é escuro; o cartão é claro */
.lp-form-titulo{font-size:20px;font-weight:600;margin-bottom:6px;}
.lp-form select{
  font-family:inherit;font-size:16px;padding:12px 14px;
  border:1px solid var(--line-dark);border-radius:3px;
  background:var(--paper);color:var(--ink);
  transition:border-color 200ms var(--ease-out);
}
.lp-form select:focus{outline:none;border-color:var(--gold);}
.lp-form .lp-btn{
  align-self:stretch;justify-content:center;
  border:0;cursor:pointer;font-family:inherit;font-size:15px;
  padding:14px 20px;margin-top:24px;
}
.lp-btn svg{width:20px;height:20px;}
.lp-nota{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:#6d6452;}
.lp-nota a,.lp-curioso a{color:inherit;font-weight:600;text-decoration:underline;}
@media(max-width:640px){.lp-hero{padding:48px 0 64px;}}
