/* =========================================================
   ESSENZA DECOR — folha de estilo única
   ---------------------------------------------------------
   A paleta saiu do próprio logo: marinho #021C3B e dourado
   #E9C25F. O site abre em marinho (onde o logo vive), abre
   para a luz no miolo e fecha em marinho no contato.
   ========================================================= */

:root{
  /* cor — amostrada do logo */
  --marinho:      #021C3B;
  --marinho-2:    #0A2C55;
  --ouro:         #E9C25F;   /* dourado da marca — sobre fundo escuro */
  --ouro-claro:   #FFDE70;
  --ouro-escuro:  #8A6620;   /* dourado legível sobre fundo claro */

  --marfim:       #F6F4EE;
  --marfim-2:     #FFFFFF;
  --linho:        #E4DCCC;
  --tinta:        #16233A;
  --tinta-2:      #55617A;
  --borda:        #DCD6C9;
  --borda-escura: #17355E;

  /* tipografia */
  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --corpo:   "Archivo", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* medidas */
  --largura: 1240px;
  --gutter: clamp(20px, 5vw, 64px);
  --e1: 8px;
  --e2: 16px;
  --e3: 24px;
  --e4: 40px;
  --e5: 64px;
  --e6: clamp(64px, 8.5vw, 104px);

  --curva: cubic-bezier(.2,.7,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--marfim);
  color:var(--tinta);
  font-family:var(--corpo);
  font-size:clamp(15px,1.05vw,16.5px);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }

a{ color:inherit; }

::selection{ background:var(--ouro); color:var(--marinho); }

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

.pular{
  position:absolute; left:-9999px; top:0;
  background:var(--ouro); color:var(--marinho);
  padding:12px 20px; z-index:200; text-decoration:none; font-weight:600;
}
.pular:focus{ left:8px; top:8px; }

/* ---------- tipos ---------- */

.olho{
  margin:0 0 var(--e2);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ouro-escuro);
}

.secao__titulo{
  margin:0;
  font-family:var(--display);
  font-weight:300;
  font-variation-settings:"SOFT" 45,"WONK" 1,"opsz" 120;
  font-size:clamp(2.1rem,5.4vw,4rem);
  line-height:1.03;
  letter-spacing:-.02em;
}
.secao__titulo--claro{ color:var(--marfim); }

.secao__linha{
  margin:var(--e3) 0 0;
  max-width:46ch;
  color:var(--tinta-2);
}

/* ---------- botões ---------- */

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  padding:15px 28px;
  border:1px solid transparent;
  border-radius:2px;
  font-family:var(--corpo);
  font-size:.9rem; font-weight:600; letter-spacing:.01em;
  text-decoration:none;
  cursor:pointer;
  transition:background .35s var(--curva), color .35s var(--curva),
             border-color .35s var(--curva), transform .35s var(--curva);
}
.btn:hover{ transform:translateY(-2px); }

/* dourado com texto marinho: a relação de cor do próprio logo */
.btn--ouro{ background:var(--ouro); color:var(--marinho); }
.btn--ouro:hover{ background:var(--ouro-claro); }

.btn--contorno{ border-color:rgba(246,244,238,.42); color:var(--marfim); background:transparent; }
.btn--contorno:hover{ border-color:var(--marfim); background:rgba(246,244,238,.1); }

.btn--vazado{ border-color:var(--borda); color:var(--tinta); background:transparent; }
.btn--vazado:hover{ border-color:var(--marinho); background:var(--marinho); color:var(--marfim); }

.btn--escuro{ background:var(--marinho); color:var(--marfim); }
.btn--escuro:hover{ background:var(--marinho-2); }

.btn--grande{ padding:18px 34px; font-size:.95rem; }

.link-seta{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:auto;
  padding-top:var(--e3);
  font-size:.85rem; font-weight:600;
  color:var(--tinta);
  text-decoration:none;
  cursor:pointer;
}
.link-seta::after{
  content:"→";
  color:var(--ouro-escuro);
  transition:transform .35s var(--curva);
}
.link-seta:hover::after{ transform:translateX(6px); }

/* =========================================================
   TOPO — marinho, é onde o logo dourado pertence
   ========================================================= */

.topo{
  position:sticky; top:0; z-index:100;
  background:var(--marinho);
  border-bottom:1px solid transparent;
  transition:border-color .4s var(--curva);
}
.topo--rolado{ border-bottom-color:var(--borda-escura); }

.topo__interno{
  max-width:var(--largura);
  margin:0 auto;
  padding:12px var(--gutter);
  display:flex; align-items:center; gap:var(--e4);
}

.marca{ display:flex; align-items:center; gap:13px; text-decoration:none; margin-right:auto; }
.marca__logo{ height:46px; width:auto; }
.marca__texto{ display:flex; align-items:baseline; gap:7px; }
.marca__nome{
  font-family:var(--display);
  font-variation-settings:"SOFT" 45,"WONK" 1;
  font-weight:400;
  font-size:1.4rem;
  letter-spacing:.02em;
  color:var(--marfim);
}
.marca__sub{
  font-size:.66rem; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase;
  color:var(--ouro);
}

.menu{ display:flex; gap:var(--e4); }
.menu a{
  position:relative;
  font-size:.88rem; font-weight:500;
  color:var(--marfim);
  text-decoration:none;
  padding:4px 0;
}
.menu a::after{
  content:""; position:absolute; left:0; bottom:0;
  width:100%; height:1px; background:var(--ouro);
  transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--curva);
}
.menu a:hover::after{ transform:scaleX(1); transform-origin:left; }

.topo__cta{ padding:12px 22px; font-size:.85rem; }

.hamburguer{
  display:none;
  width:44px; height:44px;
  border:1px solid var(--borda-escura); border-radius:2px;
  background:transparent; cursor:pointer;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
}
.hamburguer span{
  width:19px; height:1.5px; background:var(--marfim);
  transition:transform .35s var(--curva), opacity .2s;
}
.hamburguer[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.hamburguer[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hamburguer[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* =========================================================
   HERO — o quarto escuro; a foto é a janela
   ========================================================= */

.hero{
  background:var(--marinho);
  color:var(--marfim);
}
.hero__interno{
  max-width:var(--largura);
  margin:0 auto;
  padding:clamp(40px,6vw,84px) var(--gutter) clamp(56px,7vw,96px);
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(32px,6vw,80px);
  align-items:center;
}

.hero .olho{ color:var(--ouro); }

.hero__titulo{
  margin:0;
  font-family:var(--display);
  font-weight:300;
  font-variation-settings:"SOFT" 55,"WONK" 1,"opsz" 144;
  font-size:clamp(2.7rem,7vw,4.9rem);
  line-height:.99;
  letter-spacing:-.03em;
  color:var(--marfim);
}

.hero__linha{
  margin:var(--e3) 0 0;
  max-width:44ch;
  font-size:1.02rem;
  color:rgba(246,244,238,.74);
}

.hero__acoes{
  margin-top:var(--e4);
  display:flex; flex-wrap:wrap; gap:var(--e2);
}

/* --- a cena com controle de luz --- */

.cena-bloco{ display:flex; gap:var(--e3); align-items:stretch; }

.cena{
  position:relative;
  margin:0;
  flex:1;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:2px;
  background:var(--marinho-2);
  isolation:isolate;
}
/* object-position puxa o enquadramento para a janela, não para o teto */
.cena__foto{ width:100%; height:100%; object-fit:cover; object-position:50% 66%; }

/* placeholder em CSS caso a foto não carregue */
.cena--sem-foto{
  background:
    repeating-linear-gradient(90deg,
      rgba(2,28,59,.19) 0 2px, rgba(2,28,59,.04) 2px 10px, rgba(2,28,59,.19) 10px 14px)
      0 0/17% 100% no-repeat,
    repeating-linear-gradient(90deg,
      rgba(2,28,59,.19) 0 2px, rgba(2,28,59,.04) 2px 10px, rgba(2,28,59,.19) 10px 14px)
      100% 0/17% 100% no-repeat,
    linear-gradient(var(--marinho),var(--marinho)) 0 79%/100% 1px no-repeat,
    radial-gradient(115% 78% at 58% 6%, #FAF5E6 0%, #EEECDF 44%, #D6D9CB 100%);
}

.cena__veu{
  position:absolute; inset:0;
  background:linear-gradient(180deg,#01101F 0%,#02182F 100%);
  opacity:calc(1 - var(--luz));
  transition:opacity .12s linear;
  pointer-events:none;
}

/* as ripas descem conforme a luz cai — é a persiana fechando */
.cena__ripas{
  position:absolute; left:0; right:0; top:0;
  height:calc((1 - var(--luz)) * 100%);
  background:
    repeating-linear-gradient(180deg,
      rgba(1,11,22,.66) 0 12px,
      rgba(255,255,255,.07) 12px 13px,
      rgba(1,11,22,.66) 13px 25px);
  border-bottom:1px solid rgba(233,194,95,.55);
  transition:height .12s linear;
  pointer-events:none;
}

.dimmer{
  display:flex; flex-direction:column; align-items:center; gap:var(--e2);
  padding:var(--e2) 0;
}
.dimmer__rotulo{
  writing-mode:vertical-rl;
  display:flex; align-items:center; gap:12px;
  font-size:.68rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:rgba(246,244,238,.62);
  white-space:nowrap;
}
.dimmer__rotulo strong{ color:var(--ouro); font-weight:600; }

/* range vertical estilizado como cordão de persiana */
.dimmer__range{
  -webkit-appearance:none; appearance:none;
  writing-mode:vertical-lr;
  direction:rtl;
  width:22px;
  flex:1; min-height:180px;
  background:transparent;
  cursor:ns-resize;
  margin:0;
}
.dimmer__range::-webkit-slider-runnable-track{
  width:1.5px; height:100%;
  background:linear-gradient(180deg,rgba(246,244,238,.3),var(--ouro));
}
.dimmer__range::-moz-range-track{
  width:1.5px; height:100%;
  background:linear-gradient(180deg,rgba(246,244,238,.3),var(--ouro));
}
.dimmer__range::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:22px; height:22px;
  border-radius:50%;
  background:var(--ouro);
  border:3px solid var(--marinho);
  box-shadow:0 0 0 1px var(--ouro);
  transition:transform .25s var(--curva);
}
.dimmer__range::-webkit-slider-thumb:hover{ transform:scale(1.18); }
.dimmer__range::-moz-range-thumb{
  width:16px; height:16px;
  border-radius:50%;
  background:var(--ouro);
  border:3px solid var(--marinho);
  box-shadow:0 0 0 1px var(--ouro);
}

/* =========================================================
   FAIXA — a passagem do escuro para a luz
   ========================================================= */

.faixa{
  background:var(--linho);
  color:var(--tinta);
  border-bottom:1px solid var(--borda);
}
.faixa__lista{
  max-width:var(--largura);
  margin:0 auto;
  padding:var(--e3) var(--gutter);
  list-style:none;
  /* Grid, não flex: o flex-wrap com space-between espalhava os itens da
     última linha e criava colunas soltas. Com auto-fit, cabem 5 colunas no
     desktop e 1 só no celular, sempre alinhados. */
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px var(--e3);
  font-size:.8rem; font-weight:500;
  letter-spacing:.05em; text-transform:uppercase;
}
.faixa__lista li{ display:flex; align-items:center; gap:10px; }
.faixa__lista li::before{
  content:""; width:5px; height:5px; border-radius:50%;
  background:var(--ouro-escuro); flex:none;
}

/* =========================================================
   SEÇÕES
   ========================================================= */

.secao{
  max-width:var(--largura);
  margin:0 auto;
  padding:var(--e6) var(--gutter);
}

.secao__cabeca{ margin-bottom:clamp(36px,5vw,64px); max-width:60ch; }

/* ---------- serviços ---------- */

.servicos__grade{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(272px,1fr));
  gap:1px;
  background:var(--borda);
  border:1px solid var(--borda);
}

.servico{
  display:flex; flex-direction:column;
  background:var(--marfim);
  padding:var(--e4);
  transition:background .4s var(--curva);
}
.servico:hover{ background:var(--marfim-2); }

.servico__arte{
  height:104px;
  margin-bottom:var(--e3);
  border:1px solid var(--borda);
}
/* cada arte é o próprio material, desenhado em CSS */
.servico__arte--papel{
  background:
    radial-gradient(circle at 50% 50%, var(--ouro-escuro) 0 1.6px, transparent 1.7px) 0 0/22px 22px,
    radial-gradient(circle at 50% 50%, rgba(2,28,59,.30) 0 1.2px, transparent 1.3px) 11px 11px/22px 22px,
    var(--linho);
}
/* cortina: prega wave — dobras arredondadas, topo ondulado e o encontro
   das duas folhas no meio. Sem varão. */
.servico__arte--cortina{
  background:
    /* topo ondulado, na mesma cadência das dobras */
    radial-gradient(circle at 11px 0,
      var(--marfim) 0 8px, transparent 8.5px) 0 0/22px 18px repeat-x,
    /* o vinco onde as duas folhas se encontram: sombra da folha da frente
       sobre a de trás, com o brilho da borda logo ao lado */
    linear-gradient(90deg,
      transparent 0 47.5%,
      rgba(2,28,59,.14) 48.4%,
      rgba(2,28,59,.46) 49.6%,
      rgba(2,28,59,.46) 50.2%,
      rgba(255,255,255,.55) 51.4%,
      transparent 52.5% 100%),
    /* dobras: escuro no vale, claro na crista — o ondulado do tecido */
    repeating-linear-gradient(90deg,
      rgba(2,28,59,.24) 0px,
      rgba(2,28,59,.03) 7px,
      rgba(255,255,255,.5) 11px,
      rgba(2,28,59,.03) 15px,
      rgba(2,28,59,.24) 22px) 11px 0,
    var(--linho);
}

/* persiana: cabeçote no topo, ripas e a corrente na lateral direita */
.servico__arte--persiana{
  background:
    /* elos da corrente */
    radial-gradient(circle at 1.5px 4px,
      rgba(2,28,59,.6) 0 1.6px, transparent 1.9px)
      calc(100% - 24px) 9px/3px 8px repeat-y,
    /* fio da corrente */
    linear-gradient(rgba(2,28,59,.38),rgba(2,28,59,.38))
      calc(100% - 23px) 9px/1px 84% no-repeat,
    /* cabeçote */
    linear-gradient(var(--marinho),var(--marinho)) 0 0/100% 7px no-repeat,
    /* ripas */
    repeating-linear-gradient(180deg,
      var(--linho) 0 9px,
      rgba(2,28,59,.32) 9px 10px,
      rgba(255,255,255,.6) 10px 11px) 0 7px/100% calc(100% - 7px),
    var(--linho);
}

.servico__nome{
  margin:0 0 var(--e2);
  font-family:var(--display);
  font-weight:400;
  font-variation-settings:"SOFT" 45,"WONK" 1;
  font-size:1.6rem;
  line-height:1.1;
}
.servico__texto{ margin:0; color:var(--tinta-2); font-size:.94rem; }

.servico__itens{
  margin:var(--e3) 0 0;
  padding:0; list-style:none;
  display:flex; flex-wrap:wrap; gap:6px;
}
.servico__itens li{
  padding:5px 11px;
  border:1px solid var(--borda);
  border-radius:100px;
  font-size:.74rem;
  color:var(--tinta-2);
  background:var(--marfim-2);
}

/* ---------- trabalhos ---------- */

.filtros{
  display:flex; flex-wrap:wrap; gap:var(--e1);
  margin-bottom:var(--e4);
}
.filtro{
  padding:9px 18px;
  border:1px solid var(--borda);
  border-radius:100px;
  background:transparent;
  font-family:var(--corpo);
  font-size:.82rem; font-weight:500;
  color:var(--tinta-2);
  cursor:pointer;
  transition:background .3s var(--curva), color .3s var(--curva), border-color .3s var(--curva);
}
.filtro:hover{ border-color:var(--marinho); color:var(--tinta); }
.filtro--ativo{ background:var(--marinho); border-color:var(--marinho); color:var(--marfim); }

.aviso-demo{
  margin:0 0 var(--e3);
  padding:12px 16px;
  border-left:2px solid var(--ouro-escuro);
  background:var(--marfim-2);
  font-size:.82rem;
  color:var(--tinta-2);
}
.aviso-demo code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.78rem;
  background:var(--linho);
  padding:1px 5px;
}

/* mosaico em colunas: cada foto entra inteira, na altura que ela tem,
   sem corte e sem buraco entre as linhas */
.galeria{
  columns:250px;
  column-gap:var(--e2);
}

.peca{
  position:relative;
  display:block; width:100%;
  margin:0 0 var(--e2);
  break-inside:avoid;
  overflow:hidden;
  border:0; padding:0;
  background:var(--linho);
  cursor:zoom-in;
  border-radius:2px;
}

.peca img{
  width:100%; height:auto;
  transition:transform .8s var(--curva);
}
.peca:hover img{ transform:scale(1.045); }

.peca__tarja{
  position:absolute; left:0; right:0; bottom:0;
  padding:34px 16px 14px;
  background:linear-gradient(transparent,rgba(2,20,42,.86));
  color:var(--marfim);
  font-size:.78rem;
  letter-spacing:.04em;
  text-align:left;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .4s var(--curva), transform .4s var(--curva);
}
.peca:hover .peca__tarja,
.peca:focus-visible .peca__tarja{ opacity:1; transform:none; }

/* amostras de textura (só no modo demonstração) */
.amostra{ position:relative; width:100%; aspect-ratio:4/5; }
.amostra--linho{
  background:
    repeating-linear-gradient(90deg, rgba(2,28,59,.10) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(0deg,  rgba(2,28,59,.10) 0 1px, transparent 1px 6px),
    var(--linho);
}
.amostra--ripa{
  background:
    repeating-linear-gradient(180deg,
      #D8CFBD 0 11px, rgba(2,28,59,.26) 11px 12px, rgba(255,255,255,.5) 12px 13px);
}
.amostra--papel{
  background:
    radial-gradient(circle at 50% 50%, rgba(138,102,32,.75) 0 2px, transparent 2.2px) 0 0/26px 26px,
    radial-gradient(circle at 50% 50%, rgba(2,28,59,.22) 0 1.4px, transparent 1.6px) 13px 13px/26px 26px,
    #EAE3D4;
}
.amostra__rotulo{
  position:absolute; left:14px; bottom:14px;
  font-size:.7rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--marinho);
  background:rgba(255,255,255,.8);
  padding:5px 10px;
}

.galeria__vazio{
  padding:var(--e5) 0;
  text-align:center;
  color:var(--tinta-2);
}

/* ---------- processo ---------- */

.passos{
  margin:0; padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:var(--e4) var(--e3);
}
.passo{
  padding-top:var(--e3);
  border-top:1px solid var(--borda);
}
.passo__num{
  display:block;
  margin-bottom:var(--e2);
  font-size:.7rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--ouro-escuro);
}
.passo__nome{
  margin:0 0 10px;
  font-family:var(--display);
  font-weight:400;
  font-variation-settings:"SOFT" 45,"WONK" 1;
  font-size:1.28rem;
  line-height:1.15;
}
.passo p{ margin:0; color:var(--tinta-2); font-size:.92rem; }

/* ---------- sobre ---------- */

.sobre__grade{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(32px,6vw,80px);
  align-items:center;
}
.sobre__foto{
  aspect-ratio:5/4;
  overflow:hidden;
  background:var(--linho);
  border-radius:2px;
}
.sobre__foto img{ width:100%; height:100%; object-fit:cover; }
.sobre__foto--sem{
  background:
    repeating-linear-gradient(180deg, rgba(2,28,59,.07) 0 14px, transparent 14px 28px),
    repeating-linear-gradient(90deg,  rgba(2,28,59,.10) 0 2px, rgba(2,28,59,.02) 2px 12px),
    var(--linho);
}
.sobre__texto p{ color:var(--tinta-2); max-width:52ch; }
.sobre__texto .btn{ margin-top:var(--e3); }

/* ---------- dúvidas ---------- */

.duvidas__lista{ border-top:1px solid var(--borda); max-width:900px; }

.duvida{ border-bottom:1px solid var(--borda); }
.duvida summary{
  display:flex; align-items:center; justify-content:space-between; gap:var(--e3);
  padding:var(--e3) 0;
  font-size:1.02rem; font-weight:500;
  cursor:pointer;
  list-style:none;
}
.duvida summary::-webkit-details-marker{ display:none; }
.duvida summary::after{
  content:"+";
  font-size:1.5rem; font-weight:300;
  color:var(--ouro-escuro);
  flex:none;
  transition:transform .35s var(--curva);
}
.duvida[open] summary::after{ transform:rotate(45deg); }
.duvida p{
  margin:0 0 var(--e3);
  max-width:66ch;
  color:var(--tinta-2);
  font-size:.94rem;
}

/* ---------- contato ---------- */

.contato{
  max-width:none;
  background:var(--marinho);
  color:var(--marfim);
  padding-left:0; padding-right:0;
}
.contato__interno{
  max-width:var(--largura);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(40px,6vw,90px);
  align-items:center;
}
.contato .olho{ color:var(--ouro); }
.contato__linha{
  margin:var(--e3) 0 var(--e4);
  max-width:40ch;
  color:rgba(246,244,238,.72);
}

.contato__dados{
  margin:0; padding:0; list-style:none;
  border-top:1px solid var(--borda-escura);
}
.contato__dados li{
  display:flex; flex-wrap:wrap; gap:var(--e2);
  align-items:baseline; justify-content:space-between;
  padding:var(--e3) 0;
  border-bottom:1px solid var(--borda-escura);
}
.contato__rotulo{
  font-size:.7rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:rgba(246,244,238,.5);
}
.contato__dados a,
.contato__dados li > span:last-child{
  font-family:var(--display);
  font-variation-settings:"SOFT" 45,"WONK" 1;
  font-size:1.3rem; font-weight:400;
  text-decoration:none;
  transition:color .3s var(--curva);
}

/* Dourado = clicavel. So o que leva a algum lugar (WhatsApp, telefone,
   e-mail, Instagram) recebe a cor da marca; a linha de atendimento e
   texto e continua em marfim, senao o dourado deixa de significar acao. */
.contato__dados a{
  color:var(--ouro);
  text-underline-offset:5px;
  text-decoration-thickness:1px;
}
.contato__dados a:hover,
.contato__dados a:focus-visible{
  color:var(--ouro-claro);
  text-decoration:underline;
}
.contato__dados li > span:last-child{ color:var(--marfim); }

/* =========================================================
   RODAPÉ — o logo inteiro, no fundo em que ele nasceu
   ========================================================= */

.rodape{ background:var(--marinho); color:rgba(246,244,238,.55); }
.rodape__interno{
  max-width:var(--largura);
  margin:0 auto;
  padding:var(--e5) var(--gutter) var(--e4);
  border-top:1px solid var(--borda-escura);
  display:flex; flex-direction:column;
  align-items:center; text-align:center;
  gap:var(--e2);
  font-size:.8rem;
}
.rodape__logo{ width:170px; height:auto; margin-bottom:var(--e1); }
.rodape__nota{ max-width:46ch; }

/* =========================================================
   WHATSAPP FLUTUANTE
   ========================================================= */

.zap-flutuante{
  position:fixed; right:20px; bottom:20px; z-index:90;
  width:56px; height:56px;
  display:grid; place-items:center;
  border-radius:50%;
  background:#25D366; color:#fff;
  box-shadow:0 8px 26px rgba(2,20,42,.32);
  cursor:pointer;
  transition:transform .35s var(--curva);
}
.zap-flutuante:hover{ transform:scale(1.08); }

/* =========================================================
   VISOR (lightbox)
   ========================================================= */

.visor{
  position:fixed; inset:0; z-index:150;
  /* quase opaco + desfoque: a foto fica isolada, sem o site vazando atrás */
  background:rgba(1,14,28,.97);
  backdrop-filter:blur(10px);
  display:grid;
  grid-template-columns:auto 1fr auto;
  grid-template-rows:minmax(0,1fr) auto;
  align-items:stretch;
  padding:clamp(12px,3vw,40px);
  gap:var(--e2);
}
.visor[hidden]{ display:none; }

/* a caixa manda no tamanho, não a foto: object-fit encaixa qualquer
   proporção sem estourar a altura nem cortar nada */
.visor__palco{
  grid-column:2; grid-row:1;
  position:relative;
  width:100%; min-height:0;
}
.visor__palco img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:contain;
  border-radius:2px;
}

.visor__nav,
.visor__fechar{
  border:1px solid rgba(246,244,238,.24);
  background:transparent;
  color:var(--marfim);
  cursor:pointer;
  border-radius:50%;
  display:grid; place-items:center;
  transition:background .3s var(--curva), border-color .3s var(--curva);
}
.visor__nav:hover,
.visor__fechar:hover{ background:rgba(246,244,238,.12); border-color:var(--ouro); }

.visor__nav{ width:52px; height:52px; font-size:2rem; line-height:1; align-self:center; }
.visor__nav--ant{ grid-column:1; grid-row:1; }
.visor__nav--prox{ grid-column:3; grid-row:1; }

.visor__fechar{
  position:absolute; top:clamp(12px,3vw,28px); right:clamp(12px,3vw,28px);
  width:44px; height:44px; font-size:1.6rem; line-height:1;
}

.visor__legenda{
  grid-column:1/-1; grid-row:2;
  margin:0; padding-top:var(--e1);
  text-align:center;
  color:rgba(246,244,238,.72);
  font-size:.84rem;
}

body.travado{ overflow:hidden; }

/* =========================================================
   REVELAÇÃO NO SCROLL
   ========================================================= */

/* só esconde quando há JS para revelar de volta — sem JS, tudo aparece */
.js .reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .8s var(--curva), transform .8s var(--curva);
}
.js .reveal--visivel{ opacity:1; transform:none; }

/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width:900px){
  .menu{
    position:fixed; inset:70px 0 auto;
    flex-direction:column; gap:0;
    background:var(--marinho);
    border-bottom:1px solid var(--borda-escura);
    padding:var(--e2) var(--gutter) var(--e4);
    transform:translateY(-130%);
    transition:transform .45s var(--curva);
  }
  .menu--aberto{ transform:none; }
  .menu a{ padding:16px 0; border-bottom:1px solid var(--borda-escura); font-size:1rem; }
  .menu a::after{ display:none; }

  .hamburguer{ display:flex; }
  .topo__cta{ display:none; }

  /* minmax(0,1fr): sem isso o texto longo estica a coluna e vaza a tela */
  .hero__interno{ grid-template-columns:minmax(0,1fr); }
  .hero__texto{ order:1; }
  .cena-bloco{ order:2; }
  .cena{ aspect-ratio:1/1; }

  .rodape__interno{ gap:var(--e2); }
}

@media (max-width:560px){
  .cena-bloco{ flex-direction:column; }
  .dimmer{ flex-direction:row; padding:0; }
  .dimmer__rotulo{ writing-mode:horizontal-tb; }
  .dimmer__range{
    writing-mode:horizontal-tb;
    direction:ltr;
    width:auto; height:22px; min-height:0;
    min-width:0;   /* deixa o slider encolher junto com a tela */
  }
  .dimmer__range::-webkit-slider-runnable-track{ width:100%; height:1.5px;
    background:linear-gradient(90deg,var(--ouro),rgba(246,244,238,.3)); }
  .dimmer__range::-moz-range-track{ width:100%; height:1.5px;
    background:linear-gradient(90deg,var(--ouro),rgba(246,244,238,.3)); }

  .galeria{ columns:150px; column-gap:var(--e1); }
  .peca{ margin-bottom:var(--e1); }
  /* uma coluna só: no celular, item por linha */
  .faixa__lista{ grid-template-columns:1fr; gap:10px; font-size:.74rem; }
  .visor__nav{ width:42px; height:42px; font-size:1.6rem; }
  .servico{ padding:var(--e3); }
  .marca__logo{ height:40px; }
}

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