/* Laroy Pescados — página de espera
   Cores e letra do manual da marca: vermelho profundo, vermelho vivo, cobre, preto; Cormorant Garamond. */

:root {
  --bg: #F7F2EA;
  --bg-2: #EFE6D8;
  --ink: #1C1D21;
  --soft: #4A3833;
  --accent: #91120B;
  --deep: #6B0B07;
  --deep-2: #5E0A06;
  --copper: #B3783A;
  --paper: #F7F2EA;

  --face: "Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;

  /* cinco tamanhos */
  --t-small: 16px;
  --t-body: 20px;
  --t-head: clamp(30px, 2.6vw, 40px);
  --t-row: clamp(40px, 6vw, 88px);
  --t-big: clamp(88px, 12vw, 200px);

  --m: clamp(20px, 2.2vw, 32px);
  --gap: clamp(16px, 1.6vw, 24px);
  --section: clamp(112px, 12vw, 200px);

  --ease: cubic-bezier(.2, .7, .1, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--ink);
  font-family: var(--face);
  font-size: var(--t-body);
  font-weight: 500;
  line-height: 1.5;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p { margin: 0; }
ul { list-style: none; margin: 0; padding: 0; }
figure { margin: 0; }
h1, h2 { margin: 0; font-weight: 500; }
::selection { background: var(--copper); color: var(--ink); }
:focus-visible { outline: 2px solid var(--copper); outline-offset: 3px; }

.sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; /* taste-skill-ignore: texto só para leitores de tela */
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.grade {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gap);
  padding-inline: var(--m);
}
.grade-margem { padding-inline: var(--m); }

.titulo {
  font-size: var(--t-head);
  line-height: 1.05;
  letter-spacing: -0.01em;
}

/* a página desliza e descobre o rodapé */
.pagina { position: relative; z-index: 1; background: var(--bg); }

/* ---------- Herói: o nome sobre o porto ---------- */

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-rows: auto 1fr;
  color: var(--paper);
  overflow: hidden;
  background: var(--ink);
}
.hero-fotos { position: absolute; inset: 0; }
.hero-fotos img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
  opacity: 0;
  transform: scale(1.06);
  transition: opacity 1.6s ease, transform 9s linear;
}
.hero-fotos img.ativa { opacity: 1; transform: scale(1); }
.hero-fotos img:first-child { object-position: 62% 45%; }
/* véu neutro só na faixa de baixo, sob o nome */
.hero::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 48%;
  background: linear-gradient(to bottom, rgba(12, 10, 10, 0), rgba(12, 10, 10, .62)); /* taste-skill-ignore: véu neutro sob o nome */
  pointer-events: none;
}

.barra {
  position: relative; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px var(--m) 0;
}
.emblema { display: block; width: 44px; color: var(--paper); }
.emblema svg { width: 100%; height: auto; }
.emblema use {
  fill: currentColor;
  stroke: currentColor;
  stroke-width: .6;
}
.barra ul { display: flex; gap: clamp(18px, 2.4vw, 36px); }
.barra ul a {
  font-size: var(--t-small); font-weight: 600;
  text-decoration: underline 2px transparent; text-underline-offset: 6px;
  transition: text-decoration-color .3s ease;
  padding-block: 4px;
}
.barra ul a:hover { text-decoration-color: var(--copper); }

.hero-pe {
  position: relative; z-index: 2;
  align-self: end;
  padding: 0 var(--m) 34px;
}
.hero-linha {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
  margin-top: clamp(18px, 2vw, 28px);
}
.hero-frase { font-size: var(--t-body); line-height: 1.35; font-weight: 600; }
.hero-aviso {
  display: block;
  font-size: var(--t-head);
  line-height: 1.05;
  font-weight: 600;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}
.monumento svg { width: 100%; height: auto; fill: var(--paper); }

.botao {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 12px 22px;
  font: 600 var(--t-body)/1 var(--face);
  text-decoration: none; border: 0; border-radius: 0; cursor: pointer;
  transition: background-color .25s ease, color .25s ease, transform .2s var(--ease);
}
.botao:active { transform: translateY(1px) scale(.98); }
.botao-papel { background: var(--paper); color: var(--deep); flex: none; }
.botao-papel:hover { background: var(--copper); color: var(--ink); }

/* ---------- A marca ---------- */

.marca { padding-block: var(--section); }
.fatos {
  grid-column: 1 / 3;
  display: grid; gap: 22px; align-content: start;
  padding-top: 8px;
  font-size: var(--t-small); line-height: 1.35; color: var(--soft);
}
.fatos strong { display: block; color: var(--ink); font-weight: 600; font-size: var(--t-body); }
.marca-texto { grid-column: 3 / 12; }
.marca .titulo { margin-bottom: 40px; color: var(--deep); }
.declaracao {
  font-size: clamp(24px, 2.3vw, 34px);
  line-height: 1.22;
  letter-spacing: -0.005em;
}
.declaracao b { font-weight: 600; }
.declaracao + .declaracao { margin-top: 1.1em; }
.declaracao.suave { color: var(--soft); }
.capitular {
  float: left;
  width: 3.6em; height: 3.6em;
  object-fit: cover;
  margin: .18em .5em 0 0;
}

.leituras { margin-top: clamp(96px, 10vw, 160px); align-items: center; }
.leituras-ancora { grid-column: 2 / 6; width: 100%; height: auto; fill: var(--deep); }
.leituras-lista { grid-column: 7 / 13; }
.leituras-lista .titulo { color: var(--deep); margin-bottom: 40px; }
.leituras dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 40px var(--gap); }
.leituras dt { font-weight: 600; margin-bottom: 6px; }
.leituras dd { margin: 0; }

/* ---------- Itajaí ---------- */

.itajai { background: var(--bg-2); padding-block: var(--section); }
.itajai-mapa { grid-column: 1 / 8; }
.itajai-mapa img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
figcaption { margin-top: 12px; font-size: var(--t-small); color: var(--soft); line-height: 1.4; }

.sol { grid-column: 8 / 13; align-self: end; padding-left: clamp(0px, 2vw, 32px); }
.sol .titulo { color: var(--deep); }
.sol-hora {
  font-size: var(--t-big);
  line-height: .9;
  letter-spacing: -0.04em;
  color: var(--accent);
  font-variant-numeric: lining-nums tabular-nums;
  margin: 18px 0 22px;
}
.sol-texto { max-width: 30ch; }
.sol-agora { margin-top: 14px; font-size: var(--t-small); color: var(--soft); }

.faixa { margin-top: clamp(80px, 9vw, 140px); }
.faixa-a { grid-column: 1 / 8; }
.faixa-b { grid-column: 8 / 13; }
.faixa img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.faixa-a img { aspect-ratio: 16 / 10; }
.faixa-b { align-self: end; }

/* ---------- Contato: o endereço em linhas grandes ---------- */

.contato { background: var(--deep); color: var(--paper); padding-top: var(--section); }
.contato .titulo { color: var(--copper); margin-bottom: 32px; }
.linhas li {
  display: flex; align-items: flex-end; gap: 24px;
  min-height: clamp(84px, 10.4vw, 150px);
  padding: 0 var(--m) .32em;
  font-size: var(--t-row);
  line-height: 1;
  letter-spacing: -0.02em;
}
.linhas li:nth-child(odd) { background: var(--deep-2); }
.linhas a { text-decoration: none; }
.linha-email {
  overflow-wrap: anywhere;
  text-decoration: underline 3px transparent; text-underline-offset: .12em;
  transition: text-decoration-color .3s ease, color .25s ease;
}
.linha-email:hover { text-decoration-color: var(--copper); color: var(--copper); }
.linha-ola { align-items: center !important; padding-block: 28px !important; flex-wrap: wrap; }
.seta {
  display: inline-grid; place-items: center;
  width: .9em; height: .9em; border-radius: 50%;
  background: var(--paper); color: var(--deep);
  transition: background-color .25s ease, transform .3s var(--ease);
}
.seta svg { width: 46%; }
.seta:hover { background: var(--copper); transform: translateX(6px); }
.copiar {
  margin-left: auto;
  font: 600 var(--t-body)/1 var(--face); letter-spacing: 0;
  min-height: 48px; padding: 12px 22px;
  background: var(--copper); color: var(--ink);
  border: 0;
  cursor: pointer;
  transition: background-color .25s ease, color .25s ease, transform .2s var(--ease);
}
.copiar:hover { background: var(--paper); color: var(--deep); }
.copiar:active { transform: scale(.97); }

/* ---------- Rodapé: o nome volta, em cobre ---------- */

.rodape {
  position: sticky; bottom: 0; z-index: 0;
  min-height: 100svh;
  display: grid; grid-template-rows: auto 1fr auto;
  background: var(--ink); color: var(--paper);
  padding: 40px var(--m) 20px;
}
.rodape-colunas {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 32px;
  font-size: var(--t-small); line-height: 1.45; color: #D9CCBE;
}
.rodape-colunas > :nth-child(1) { grid-column: 1 / 4; }
.rodape-colunas > :nth-child(2) { grid-column: 4 / 7; }
.rodape-colunas > :nth-child(3) { grid-column: 7 / 9; }
.rodape-colunas > :nth-child(4) { grid-column: 9 / 13; }
.rodape a { overflow-wrap: anywhere; }
.rodape .forte { color: var(--paper); font-weight: 600; margin-bottom: 6px; }
.rodape a { text-decoration-color: var(--copper); text-underline-offset: 3px; }
.rodape a:hover { color: var(--copper); }
.creditos p:last-child { font-size: var(--t-small); }
.rodape-nome { grid-row: 3; }
.rodape-nome svg { width: 100%; height: auto; fill: var(--copper); }
.legal { margin-top: 20px; font-size: var(--t-small); color: #A99A8C; }

/* ---------- Movimento ---------- */

@keyframes traco { from { stroke-dashoffset: 900; fill-opacity: 0; } 70% { fill-opacity: 0; } to { stroke-dashoffset: 0; fill-opacity: 1; } }
@keyframes sobe { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

.js .emblema use { stroke-dasharray: 900; animation: traco 2.4s var(--ease) .2s both; }
.js .barra ul li { animation: sobe .8s var(--ease) both; }
.js .barra ul li:nth-child(1) { animation-delay: .3s; }
.js .barra ul li:nth-child(2) { animation-delay: .38s; }
.js .barra ul li:nth-child(3) { animation-delay: .46s; }
.js .hero-frase { animation: sobe 1s var(--ease) .7s both; }
.js .hero-linha .botao { animation: sobe 1s var(--ease) .8s both; }
.js .monumento svg { animation: sobe 1.4s var(--ease) .25s both; }

.js .leituras-ancora.revela use { stroke: var(--deep); stroke-width: .5; stroke-dasharray: 900; stroke-dashoffset: 900; fill-opacity: 0; }
.js .leituras-ancora.visto use { animation: traco 3s var(--ease) .1s both; }
.js .revela, .js .linhas li, .js .rodape-colunas > *, .js .titulo {
  opacity: 0; transform: translateY(24px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay: calc(var(--i, 0) * 80ms);
}
.js .visto { opacity: 1 !important; transform: none !important; }
.hero .titulo { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js .revela, .js .linhas li, .js .rodape-colunas > *, .js .titulo { opacity: 1; transform: none; }
  .hero-fotos img { transform: none; }
}

/* ---------- Tablet ---------- */

@media (max-width: 1000px) {
  .fatos { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); order: 2; margin-top: 48px; }
  .marca-texto { grid-column: 1 / -1; }
  .leituras-ancora { grid-column: 3 / 11; max-width: 360px; justify-self: center; }
  .leituras-lista { grid-column: 1 / -1; margin-top: 56px; }
  .itajai-mapa { grid-column: 1 / -1; }
  .sol { grid-column: 1 / -1; padding-left: 0; margin-top: 48px; }
  .rodape-colunas > :nth-child(1) { grid-column: 1 / 7; }
  .rodape-colunas > :nth-child(2) { grid-column: 7 / 13; }
  .rodape-colunas > :nth-child(3) { grid-column: 1 / 7; }
  .rodape-colunas > :nth-child(4) { grid-column: 7 / 13; }
}

/* ---------- Telefone ---------- */

@media (max-width: 640px) {
  :root { --t-body: 19px; }
  .barra { padding-top: 16px; }
  .emblema { width: 36px; }
  .barra ul { gap: 16px; }

  .hero-fotos img:first-child { object-position: 72% 50%; }
  .hero-pe { padding-bottom: 20px; }
  .hero-linha { flex-direction: column; align-items: flex-start; gap: 20px; }

  .declaracao { font-size: 24px; line-height: 1.25; }
  .capitular { width: 4.8em; height: 4.8em; }
  .fatos { grid-template-columns: 1fr; gap: 14px; }
  .faixa-a, .faixa-b { grid-column: 1 / -1; }
  .leituras dl { grid-template-columns: 1fr; gap: 28px; }
  .leituras-ancora { max-width: 220px; }
  .faixa-b { margin-top: 32px; }
  .linhas li { font-size: 9.6vw; min-height: 84px; padding-inline: 16px; }
  .linha-email { font-size: 5.9vw; }
  .linha-ola { background: var(--accent) !important; }
  .seta { width: 56px; height: 56px; }
  .copiar { margin-left: 0; width: 100%; }
  .rodape-colunas { column-gap: 16px; }
  .rodape-colunas > * { grid-column: span 6 !important; }
  .rodape-colunas > .creditos, .rodape-colunas > :nth-child(2) { grid-column: 1 / -1 !important; }
  .rodape-nome { margin-top: 20svh; }
}
