/* Esfiha Mix V6 — acabamento pedido pela direção. */

/* O conteúdo continua acessível, mas não assume cursor/editor de texto. */
html,
body,
body * {
  -webkit-user-select: none;
  user-select: none;
}

input,
textarea,
select,
[contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
  cursor: text;
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
span,
strong,
small,
figcaption,
address { cursor: default; }

a,
button,
summary,
label[for] { cursor: pointer; }

img { -webkit-user-drag: none; }

/* Títulos magnéticos: cada letra responde ao ponteiro, sem virar enfeite solto. */
.kinetic-title {
  --kinetic-accent: var(--yellow);
  position: relative;
  isolation: isolate;
}

.kinetic-letter {
  display: inline-block;
  color: inherit;
  transform: translate3d(0, var(--letter-y, 0px), 0)
    rotate(var(--letter-r, 0deg))
    scale(var(--letter-s, 1));
  transform-origin: 50% 80%;
  transition: transform .18s ease-out, color .2s ease;
  will-change: transform;
}

.kinetic-word {
  display: inline-block;
  white-space: nowrap;
}

.kinetic-title.is-reacting .kinetic-letter.is-near {
  color: var(--kinetic-accent);
}

.story-copy h2.kinetic-title { --kinetic-accent: var(--yellow); }
.story-copy h2.kinetic-title em .kinetic-letter { color: inherit; }

.channel-head h2.kinetic-title {
  --kinetic-accent: var(--red);
  width: max-content;
  max-width: 100%;
}

.channel-head h2.kinetic-title::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  bottom: -.08em;
  width: var(--kinetic-progress, 0%);
  height: .08em;
  background: var(--red);
  transform: rotate(-1deg);
  transition: width .5s var(--ease);
}

.channel-head h2.kinetic-title:hover::after { --kinetic-progress: 100%; }

/* A transição da seção especial usa a cor real da seção seguinte. */
.story-section {
  position: relative;
  isolation: isolate;
}

.story-section::before {
  content: "";
  position: absolute;
  z-index: 5;
  left: -4%;
  right: -4%;
  top: -76px;
  height: 112px;
  background: var(--red);
  clip-path: polygon(0 56%, 14% 34%, 31% 45%, 48% 18%, 68% 39%, 86% 20%, 100% 42%, 100% 100%, 0 100%);
  pointer-events: none;
}

/* A onda antiga era preta; agora ela já anuncia o vermelho da história seguinte. */
.specials-exit {
  background: var(--red) !important;
}

.specials-exit::before {
  border-top-color: var(--red) !important;
  box-shadow: 22vw 9px 0 -1px var(--red) !important;
}

/* Divisões consistentes: a próxima cor invade a anterior sem barra reta. */
.range-v4::before,
.category-showcase::before,
.experience-v4::before,
.faq-section::before,
#unidades::before,
.channel-hub-v4::before {
  z-index: 9;
  border-radius: 0;
  transform: none;
  clip-path: polygon(0 58%, 12% 38%, 28% 47%, 46% 22%, 64% 43%, 82% 17%, 100% 40%, 100% 100%, 0 100%);
}

.reviews-v4::before {
  z-index: 9;
  border-radius: 0;
  transform: none;
  clip-path: polygon(0 45%, 16% 28%, 37% 50%, 58% 19%, 78% 41%, 100% 24%, 100% 100%, 0 100%);
}

.site-footer {
  position: relative;
  isolation: isolate;
  margin-top: 0;
}

.site-footer::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: -3%;
  right: -3%;
  top: -78px;
  height: 112px;
  background: var(--ink);
  clip-path: polygon(0 52%, 17% 31%, 36% 48%, 57% 16%, 79% 39%, 100% 23%, 100% 100%, 0 100%);
  pointer-events: none;
}

.site-footer > * { position: relative; z-index: 1; }

/* O arquivo fornecido já possui alfa real; nenhuma máscara branca é aplicada. */
.range-v4 .mix-card--red > img {
  width: 112%;
  height: 64%;
  background: transparent !important;
  mix-blend-mode: normal;
  filter: saturate(.91) contrast(.98) drop-shadow(0 24px 24px rgba(17,17,17,.22));
}

/* Saturação mais natural no trilho e nas galerias, sem perda de nitidez. */
.range-v4 .mix-card:not(.mix-card--red) > img,
.category-tile-image img,
.story-frame img,
.experience-v4 img,
.channel-card-media img {
  filter: saturate(.90) contrast(.98);
}

.category-tile:has(a[href*="categoria=bebidas"]) .category-tile-image img {
  object-position: 50% 50%;
  filter: saturate(.88) contrast(.98);
}

/* Unidades: mais fachada, menos rodapé e enquadramento individual. */
#unidades .location-card {
  min-height: 555px;
  grid-template-rows: minmax(340px, 1.65fr) minmax(190px, .75fr);
}

#unidades .location-photo {
  height: clamp(330px, 27vw, 390px);
  background: #66100f;
}

#unidades .location-photo img {
  object-fit: cover;
  object-position: 50% var(--unit-focus-y, 46%);
  filter: contrast(.98) brightness(.995);
  transform: scale(1.001);
}

#unidades .location-card:hover .location-photo img {
  transform: scale(1.025);
}

#unidades .location-card:nth-child(1) { --unit-focus-y: 40%; }
#unidades .location-card:nth-child(2) { --unit-focus-y: 45%; }
#unidades .location-card:nth-child(3) { --unit-focus-y: 43%; }
#unidades .location-card:nth-child(4) { --unit-focus-y: 42%; }
#unidades .location-card:nth-child(5) { --unit-focus-y: 42%; }
#unidades .location-card:nth-child(6) { --unit-focus-y: 46%; }
#unidades .location-card:nth-child(7) { --unit-focus-y: 44%; }
#unidades .location-card:nth-child(8) { --unit-focus-y: 43%; }
#unidades .location-card:nth-child(9) { --unit-focus-y: 44%; }
#unidades .location-card:nth-child(10) { --unit-focus-y: 44%; }

#unidades .location-body {
  min-height: 190px;
  padding: 18px 20px 20px;
}

#unidades .location-card h3 {
  margin: 11px 0 7px;
  font-size: clamp(30px, 2.6vw, 40px);
}

#unidades .location-actions { padding-top: 15px; }

/* Central: o título reage e os cartões ganham profundidade sem poluição. */
.channel-hub-v4 .channel-head {
  align-items: center;
}

.channel-hub-v4 .channel-card {
  --channel-x: 50%;
  --channel-y: 50%;
  transition: transform .42s var(--ease), color .3s ease, background .3s ease, box-shadow .42s var(--ease);
}

.channel-hub-v4 .channel-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0;
  background: radial-gradient(circle at var(--channel-x) var(--channel-y), rgba(255,203,0,.30), transparent 32%);
  transition: opacity .25s ease;
}

.channel-hub-v4 .channel-card:hover,
.channel-hub-v4 .channel-card:focus-visible {
  transform: translateY(-14px) rotate(var(--channel-r, -1deg));
  box-shadow: 0 18px 0 var(--red);
}

.channel-hub-v4 .channel-card:hover::after,
.channel-hub-v4 .channel-card:focus-visible::after { opacity: 1; }

/* O último argumento mantém seus textos exatamente no mesmo lugar no hover. */
.story-reasons-v5 .story-reason:nth-child(3):hover h3,
.story-reasons-v5 .story-reason:nth-child(3):focus-visible h3 {
  letter-spacing: -.04em;
  transform: translateZ(52px);
}

.story-reasons-v5 .story-reason:nth-child(3):hover p,
.story-reasons-v5 .story-reason:nth-child(3):focus-visible p,
.story-reasons-v5 .story-reason:nth-child(3):hover .reason-context,
.story-reasons-v5 .story-reason:nth-child(3):focus-visible .reason-context {
  transform: translateZ(52px);
}

.story-reasons-v5 .story-reason:nth-child(3):hover .reason-keyword,
.story-reasons-v5 .story-reason:nth-child(3):focus-visible .reason-keyword {
  opacity: .10;
  transform: translate3d(9%, 18%, 12px) rotate(-7deg);
}

@media (max-width: 1180px) {
  #unidades .location-photo { height: 350px; }
}

@media (max-width: 820px) {
  .kinetic-letter { transform: none !important; }
  .story-section::before { top: -58px; height: 90px; }
  #unidades .location-card { min-height: 520px; }
  #unidades .location-photo { height: min(62vw, 390px); }
  #unidades .location-body { min-height: 175px; }
  .channel-hub-v4 .channel-card:hover { transform: none; box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
  .kinetic-letter { transform: none !important; }
  .channel-hub-v4 .channel-card { transform: none !important; }
}
