/* ==========================================================================
   Shelter® — menu de ecrã inteiro (página /menu/)
   Tudo limitado a .shelter-menu para não afetar o tema.
   ========================================================================== */

/* Contentor Elementor sem padding e a toda a largura */
.e-con:has(.shelter-menu), .e-con:has(.shelter-menu) > .e-con-inner {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --content-width: 100%;
  padding: 0 !important; max-width: none !important; width: 100% !important;
}
.elementor-widget-html:has(.shelter-menu) { width: 100%; margin: 0 !important; }

.shelter-menu {
  --sm-grey: #b0b0b0;
  --sm-grey-2: #b3b3b3;
  --sm-tab-grey: #c0c0c0;
  position: relative;
  z-index: 99999;          /* por cima do header fixo do site, como no original */
  min-height: 100vh;
  min-height: 100svh;
  background: #000;
  color: #fff;
  font-family: Helvetica, 'Helvetica Neue', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.shelter-menu *, .shelter-menu *::before, .shelter-menu *::after { box-sizing: border-box; }
.shelter-menu ul { list-style: none; margin: 0; padding: 0; }
.shelter-menu a { color: inherit; text-decoration: none; }
.shelter-menu a:hover, .shelter-menu a:focus, .shelter-menu a:active { color: inherit; }
.shelter-menu button {
  background: none; border: 0; border-radius: 0; padding: 0; margin: 0;
  font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit;
  line-height: inherit; white-space: normal; cursor: pointer; transition: none; width: auto;
}
.shelter-menu button:hover, .shelter-menu button:focus { background: none; color: inherit; }
.shelter-menu :focus-visible { outline: 1px solid rgba(255, 255, 255, .6); outline-offset: 4px; }

/* Fechar */
.shelter-menu .sm-close {
  position: absolute;
  top: 20px;
  right: 2em;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.shelter-menu .sm-close svg { width: 18px; height: 18px; transition: transform .4s ease; }
.shelter-menu .sm-close:hover svg { transform: rotate(90deg); }

.shelter-menu .sm-inner {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 3em 10px 4em;
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  column-gap: 87px;
  align-items: start;
}

/* Separadores INDOOR / OUTDOOR */
.shelter-menu .sm-tab {
  grid-column: 1;
  justify-self: start;
  font-size: 70px;
  line-height: 1.35;
  font-weight: 100;
  text-transform: uppercase;
  color: var(--sm-tab-grey);
  transition: color .3s ease;
  margin-bottom: 4px;
}
.shelter-menu .sm-tab:hover, .shelter-menu .sm-tab.is-active { color: #fff; }
.shelter-menu .sm-tab:hover { font-style: italic; }

.shelter-menu .sm-panel {
  grid-column: 2;
  grid-row: 1 / span 3;
  max-width: 800px;
  display: none;
  padding-top: 72px;
}
.shelter-menu .sm-panel--outdoor { padding-top: 188px; }
.shelter-menu .sm-panel.is-active { display: block; animation: smFade .5s ease both; }
@keyframes smFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Categorias (acordeão) */
.shelter-menu .sm-group { margin-bottom: 16px; }
.shelter-menu .sm-group > summary {
  list-style: none;
  cursor: pointer;
  font-size: 29px;
  line-height: 1.5;
  font-weight: 100;
  text-transform: uppercase;
  color: var(--sm-grey);
  transition: color .3s ease;
  width: max-content;
  max-width: 100%;
}
.shelter-menu .sm-group > summary::-webkit-details-marker { display: none; }
.shelter-menu .sm-group > summary::marker { content: ''; }
.shelter-menu .sm-group > summary:hover, .shelter-menu .sm-group[open] > summary { color: #fff; }
.shelter-menu .sm-group > summary:hover { font-style: italic; }
.shelter-menu .sm-group__body { padding-top: 7px; }
.shelter-menu .sm-group[open] .sm-group__body { animation: smFade .4s ease both; }

/* Listas de produtos */
.shelter-menu .sm-links {
  display: flex;
  flex-wrap: wrap;
  font-size: 16px;
  line-height: 30px;
  font-weight: 400;
  text-transform: uppercase;
  color: var(--sm-grey-2);
}
.shelter-menu .sm-links li { display: inline-flex; align-items: center; }
.shelter-menu .sm-links li:not(:last-child)::after {
  content: '|';
  margin: 0 12px;
  color: var(--sm-grey-2);
  font-size: 12px;
}
.shelter-menu .sm-links a, .shelter-menu .sm-links span.sm-item { position: relative; cursor: pointer; transition: color .3s ease; }
.shelter-menu .sm-links a::before {
  content: '';
  position: absolute;
  left: 0; bottom: 4px;
  width: 0; height: 1px;
  background: #fff;
  transition: width .3s ease;
}
.shelter-menu .sm-links a:hover, .shelter-menu .sm-links span.sm-item:hover, .shelter-menu .sm-links a:focus-visible { color: #fff; }
.shelter-menu .sm-links a:hover::before, .shelter-menu .sm-links a:focus-visible::before { width: 100%; }
.shelter-menu .sm-links--all { margin-bottom: 2px; }
.shelter-menu .sm-links .is-current { color: #fff; font-style: italic; }

/* Subgrupo (ex.: Central fireplaces) */
.shelter-menu .sm-sub { margin-top: 14px; }
.shelter-menu .sm-sub__title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 2px;
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 2px;
  font-weight: 400;
  text-transform: uppercase;
  color: #fff;
}
.shelter-menu .sm-sub__title::after { content: ''; flex: 1; height: 1px; background: rgba(255, 255, 255, .18); }

/* Pré-visualização da imagem ao passar o rato */
.shelter-menu .sm-preview {
  position: relative;
  height: 0;
  overflow: hidden;
  transition: height .45s cubic-bezier(.22, .61, .36, 1), margin .45s ease;
}
.shelter-menu .sm-preview.is-on { height: 244px; margin-top: 12px; }
.shelter-menu .sm-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .35s ease;
}
.shelter-menu .sm-preview img.is-on { opacity: 1; }

/* ---------------------------------------------------------- tablet */
@media (max-width: 1024px) {
  .shelter-menu .sm-inner { column-gap: 48px; padding-top: 5em; }
  .shelter-menu .sm-tab { font-size: 52px; }
  .shelter-menu .sm-group > summary { font-size: 26px; }
}

/* ---------------------------------------------------------- mobile */
@media (max-width: 767px) {
  .shelter-menu .sm-close { top: 10px; right: 10px; }
  .shelter-menu .sm-inner { display: block; padding: 5em 1em 5em; }
  .shelter-menu .sm-tab { display: block; font-size: 40px; line-height: 1.3; margin: 0 0 8px; }
  .shelter-menu .sm-tab + .sm-panel { margin-bottom: 31px; }
  .shelter-menu .sm-panel, .shelter-menu .sm-panel--outdoor { padding-top: 0; max-width: none; }
  .shelter-menu .sm-group { margin-bottom: 8px; }
  .shelter-menu .sm-group > summary { font-size: 25px; line-height: 1.6; }
  .shelter-menu .sm-links { font-size: 13px; line-height: 22px; }
  .shelter-menu .sm-links li:not(:last-child)::after { margin: 0 8px; }
  .shelter-menu .sm-preview { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .shelter-menu .sm-panel.is-active, .shelter-menu .sm-group[open] .sm-group__body { animation: none; }
  .shelter-menu .sm-preview, .shelter-menu .sm-preview img { transition: none; }
}
