/* ==========================================================================
   LUNARA HOTEL — base
   Tipografia, header, menu, footer, cards, formularios, tabelas, lightbox,
   estados vazios. Mobile-first. Sem @import (DESIGN.md secao 10).
   Depende dos tokens de tokens.css, carregado antes deste arquivo.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Documento
   -------------------------------------------------------------------------- */

body{
  background: var(--lunara-offwhite);
  color: var(--lunara-ink);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.lunara-menu-open{ overflow: hidden; }

/* --------------------------------------------------------------------------
   Tipografia — DESIGN.md secao 3
   -------------------------------------------------------------------------- */

h1, h2, h3,
.lunara-h1, .lunara-h2, .lunara-h3{
  font-family: var(--font-display);
  color: var(--lunara-ink);
  text-wrap: balance;
}

h1, .lunara-h1{
  font-size: clamp(44px, 7vw, 92px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.02em;
}

h2, .lunara-h2{
  font-size: clamp(32px, 4.2vw, 56px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.015em;
}

h3, .lunara-h3{
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

h4, h5, h6,
.lunara-h4{
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--lunara-ink);
}

p{ max-width: 68ch; }

.lunara-lead{
  font-size: 19px;
  font-weight: 400;
  line-height: 1.65;
  color: var(--lunara-ink-70);
}

small,
.lunara-caption{
  display: block;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--lunara-ink-50);
}

.lunara-price{
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--lunara-ink);
}

.lunara-price__prefix{
  display: block;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--lunara-ink-50);
}

.lunara-prose > * + *{ margin-top: var(--sp-4); }
.lunara-prose > * + :is(h2, h3){ margin-top: var(--sp-7); }
.lunara-prose :is(ul, ol){ padding-left: 1.25em; }
.lunara-prose li + li{ margin-top: var(--sp-2); }
.lunara-prose a{ color: var(--lunara-green); text-underline-offset: .2em; }
.lunara-prose a:hover{ color: var(--lunara-gold); }

.lunara-prose blockquote{
  border-left: 2px solid var(--lunara-gold);
  padding-left: var(--sp-5);
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.4;
  color: var(--lunara-ink-70);
}

.lunara-prose :is(figure, .wp-block-image) figcaption{
  margin-top: var(--sp-2);
  font-size: 13px;
  color: var(--lunara-ink-50);
}

.lunara-prose code, .lunara-prose pre{
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .9em;
}

.lunara-prose pre{
  overflow-x: auto;
  padding: var(--sp-4);
  background: var(--lunara-sand);
  border-radius: var(--r-sm);
}

/* Titulo de secao (eyebrow + h2 + lead). */
.lunara-section-title{ max-width: 68ch; }
.lunara-section-title__title{ margin-top: var(--sp-4); }
.lunara-section-title__lead{ margin-top: var(--sp-4); }

/* Fila de botoes */
.lunara-btn-row{
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  max-width: none;
  margin-top: var(--sp-6);
}

/* Linha de navegacao entre posts */
.lunara-link-row a{
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  color: var(--lunara-green);
  text-decoration: none;
  transition: color var(--t-fast) var(--ease);
}

.lunara-link-row a:hover{ color: var(--lunara-gold); }

/* Imagem destacada de conteudo unico */
.lunara-singular__media{
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.lunara-singular__media :is(img, .lunara-image-fallback){
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* Link com deslocamento de 2px no hover. */
.lunara-link{
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--lunara-green);
  transition: color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}

.lunara-link:hover{ color: var(--lunara-gold); transform: translateX(2px); }

/* Fallback de imagem quando nao ha anexo nem SVG de apoio no disco. */
.lunara-image-fallback{
  display: block;
  aspect-ratio: 4 / 3;
  background:
    linear-gradient(160deg, var(--lunara-sand) 0%, var(--lunara-sand-deep) 60%, var(--lunara-champagne) 100%);
}

/* --------------------------------------------------------------------------
   Marca tipografica — DESIGN.md secao 4
   -------------------------------------------------------------------------- */

.lunara-logo{
  display: inline-block;
  text-decoration: none;
  color: inherit;
  text-align: center;
  line-height: 1;
}

.lunara-logo__word{
  display: block;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 20px;
  letter-spacing: .34em;
  text-transform: uppercase;
  /* compensa o tracking a direita para o bloco ficar opticamente centrado */
  text-indent: .34em;
}

/* Encolhe ate a largura de HOTEL — o filete herda essa largura. */
.lunara-logo__foot{ display: inline-block; }

.lunara-logo__rule{
  display: block;
  width: 100%;
  height: 1px;
  margin: 6px 0;
  background: currentColor;
  opacity: .4;
}

.lunara-logo__sub{
  display: block;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: .42em;
  text-transform: uppercase;
  text-indent: .42em;
}

.lunara-logo__image{ max-height: 48px; width: auto; }

/* --------------------------------------------------------------------------
   Skip link e sentinela de scroll
   -------------------------------------------------------------------------- */

.lunara-scroll-sentinel{
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 60px;
  pointer-events: none;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.lunara-header{
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  background: var(--lunara-green);
  color: var(--lunara-on-dark);
  border-bottom: 1px solid transparent;
  transition: background-color var(--t-base) var(--ease),
              height var(--t-base) var(--ease),
              border-color var(--t-base) var(--ease);
}

/* Barra do WordPress: ela tambem e position:fixed no topo, entao um header
   fixo em top:0 fica ESCONDIDO ATRAS dela — o logotipo aparece cortado ao meio
   para todo usuario logado. A altura da barra muda por largura de tela, e
   abaixo de 600px ela deixa de ser fixa e rola com a pagina. */

body.admin-bar .lunara-header{ top: 32px; }
body.admin-bar .lunara-mobile-menu{ top: 32px; }

@media screen and (max-width: 782px){
  body.admin-bar .lunara-header{ top: 46px; }
  body.admin-bar .lunara-mobile-menu{ top: 46px; }
}

@media screen and (max-width: 600px){
  /* Aqui a barra do WP e position:absolute e sai com o scroll. */
  body.admin-bar .lunara-header{ top: 0; }
  body.admin-bar .lunara-mobile-menu{ top: 0; }
}

.lunara-has-transparent-header .lunara-header{ background: transparent; }

.lunara-has-transparent-header .lunara-header.is-solid,
.lunara-header.is-solid{
  background: var(--lunara-green);
  border-bottom-color: var(--lunara-line-dark);
}

.lunara-header__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  height: 64px;
  transition: height var(--t-base) var(--ease);
}

.lunara-header__brand{ color: var(--lunara-on-dark); text-decoration: none; }
.lunara-header__brand .lunara-logo__word{ font-size: 18px; }
.lunara-header__brand .lunara-logo__sub{ font-size: 10px; }

.lunara-header__nav{ display: none; }

.lunara-header__actions{
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}

.lunara-header__cta{ padding: 11px 18px; font-size: 11px; }

/* CTA: contorno claro no header transparente, dourado solido no header solido. */
.lunara-header__cta{
  background: transparent;
  border-color: var(--lunara-on-dark);
  color: var(--lunara-on-dark);
}

.lunara-header.is-solid .lunara-header__cta{
  background: var(--lunara-gold);
  border-color: var(--lunara-gold);
  color: #1A1409;
}

.lunara-header.is-solid .lunara-header__cta:hover{
  background: #9C7B41;
  border-color: #9C7B41;
}

/* Botao hamburguer */
.lunara-burger{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--lunara-on-dark);
  transition: border-color var(--t-fast) var(--ease);
}

.lunara-burger:hover{ border-color: var(--lunara-on-dark-70); }
.lunara-burger .lunara-burger__close{ display: none; }
.lunara-burger[aria-expanded="true"] .lunara-burger__open{ display: none; }
.lunara-burger[aria-expanded="true"] .lunara-burger__close{ display: block; }

/* Menu primario (desktop) */
.lunara-menu{
  display: flex;
  align-items: center;
  gap: var(--sp-5);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lunara-menu a{
  position: relative;
  display: block;
  padding-block: var(--sp-2);
  /* Sem isto, "O Hotel" e "Gastronomia Lunara" quebram em duas linhas e o
     menu inteiro parece colidido. O nav so aparece a partir de 1200px
     justamente porque estes nove rotulos, inteiros, precisam desse espaco. */
  white-space: nowrap;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .06em;
  text-decoration: none;
  color: var(--lunara-on-dark);
  transition: color var(--t-fast) var(--ease);
}

.lunara-menu a:hover{ color: var(--lunara-champagne); }

.lunara-menu a::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--lunara-gold);
  opacity: 0;
  transition: opacity var(--t-fast) var(--ease);
}

.lunara-menu :is(.current-menu-item, .current_page_item, .current-menu-ancestor) > a::after,
.lunara-menu a[aria-current="page"]::after{ opacity: 1; }

.lunara-menu .sub-menu{
  display: none;
  position: absolute;
  min-width: 200px;
  margin-top: var(--sp-2);
  padding: var(--sp-3) 0;
  list-style: none;
  background: var(--lunara-green-700);
  border-radius: var(--r-sm);
  box-shadow: var(--shadow-md);
}

.lunara-menu li{ position: relative; }
.lunara-menu li:is(:hover, :focus-within) > .sub-menu{ display: block; }
.lunara-menu .sub-menu a{ padding: var(--sp-2) var(--sp-4); }

/* --------------------------------------------------------------------------
   Menu mobile
   -------------------------------------------------------------------------- */

.lunara-mobile-menu{
  position: fixed;
  inset: 0;
  z-index: 950;
  display: flex;
  flex-direction: column;
  padding: var(--sp-5) var(--gutter) var(--sp-8);
  background: var(--lunara-green);
  color: var(--lunara-on-dark);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.lunara-mobile-menu__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  min-height: 44px;
}

.lunara-mobile-menu__nav{ margin-top: var(--sp-7); }

.lunara-mobile-menu .lunara-menu{
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.lunara-mobile-menu .lunara-menu > li{ border-bottom: 1px solid var(--lunara-line-dark); }

.lunara-mobile-menu .lunara-menu a{
  padding-block: var(--sp-4);
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 0;
}

.lunara-mobile-menu .lunara-menu a::after{ display: none; }

.lunara-mobile-menu .sub-menu{
  display: block;
  position: static;
  padding: 0 0 var(--sp-3) var(--sp-4);
  background: transparent;
  box-shadow: none;
}

.lunara-mobile-menu .sub-menu a{
  font-family: var(--font-body);
  font-size: 15px;
  padding-block: var(--sp-2);
}

.lunara-mobile-menu__footer{
  margin-top: auto;
  padding-top: var(--sp-7);
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}

/* --------------------------------------------------------------------------
   Main
   -------------------------------------------------------------------------- */

.lunara-main{ padding-top: 64px; }
.lunara-has-transparent-header .lunara-main{ padding-top: 0; }

/* Cabecalho de pagina interna */
.lunara-page-header{
  background: var(--lunara-sand);
  padding-block: clamp(48px, 8vw, 96px);
}

.lunara-page-header__title{ margin-top: var(--sp-4); }
.lunara-page-header__lead{ margin-top: var(--sp-4); }

/* --------------------------------------------------------------------------
   Breadcrumbs
   -------------------------------------------------------------------------- */

.lunara-breadcrumbs{
  font-size: 13px;
  line-height: 1.5;
  color: var(--lunara-ink-50);
}

.lunara-breadcrumbs ol{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lunara-breadcrumbs a{ color: var(--lunara-ink-70); text-decoration: none; }
.lunara-breadcrumbs a:hover{ color: var(--lunara-gold); }
.lunara-breadcrumbs li + li::before{ content: "/"; margin-right: var(--sp-2); color: var(--lunara-line); }
.lunara-breadcrumbs [aria-current="page"]{ color: var(--lunara-ink); }

/* --------------------------------------------------------------------------
   Cards genericos
   -------------------------------------------------------------------------- */

.lunara-card{
  display: flex;
  flex-direction: column;
  background: var(--lunara-white);
  border: 1px solid transparent;
  border-radius: var(--r-none);
  transition: border-color var(--t-base) var(--ease);
}

.lunara-card:hover{ border-color: var(--lunara-line); }

.lunara-card__media{
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--lunara-sand);
}

.lunara-card__media :is(img, .lunara-image-fallback){
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}

.lunara-card:hover .lunara-card__media img{ transform: scale(1.04); }

@media (prefers-reduced-motion: reduce){
  .lunara-card:hover .lunara-card__media img{ transform: none; }
}

.lunara-card__body{
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-5) 0 0;
}

.lunara-card__title a{ text-decoration: none; color: inherit; }
.lunara-card__title a:hover{ color: var(--lunara-green); }

.lunara-card__text{ color: var(--lunara-ink-70); }

.lunara-card__meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-4);
  font-size: 13px;
  color: var(--lunara-ink-70);
}

.lunara-card__meta li{
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
}

.lunara-card__meta svg{ color: var(--lunara-gold); }

.lunara-card__foot{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--sp-4);
  margin-top: var(--sp-4);
  padding-top: var(--sp-4);
  border-top: var(--border);
}

/* Pilula de status */
.lunara-badge{
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: var(--r-pill);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--lunara-ink-70) 12%, transparent);
  color: var(--lunara-ink-70);
}

.lunara-badge--success{ background: color-mix(in srgb, var(--lunara-success) 12%, transparent); color: var(--lunara-success); }
.lunara-badge--warning{ background: color-mix(in srgb, var(--lunara-warning) 12%, transparent); color: var(--lunara-warning); }
.lunara-badge--danger{ background: color-mix(in srgb, var(--lunara-danger) 12%, transparent); color: var(--lunara-danger); }
.lunara-badge--info{ background: color-mix(in srgb, var(--lunara-info) 12%, transparent); color: var(--lunara-info); }

/* --------------------------------------------------------------------------
   Formularios
   -------------------------------------------------------------------------- */

.lunara-field{ display: flex; flex-direction: column; gap: var(--sp-2); }

.lunara-label,
label{
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lunara-ink-70);
}

input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="number"], input[type="search"], input[type="password"],
input[type="date"], input[type="time"], input[type="datetime-local"],
select, textarea{
  width: 100%;
  padding: 12px 14px;
  background: var(--lunara-white);
  border: var(--border);
  border-radius: var(--r-sm);
  color: var(--lunara-ink);
  font-size: 15px;
  line-height: 1.4;
  transition: border-color var(--t-fast) var(--ease);
}

:is(input, select, textarea):hover{ border-color: var(--lunara-sand-deep); }

:is(input, select, textarea):focus{
  border-color: var(--lunara-green-400);
  outline: 2px solid var(--lunara-gold);
  outline-offset: 2px;
}

:is(input, select, textarea):disabled{ opacity: .45; cursor: not-allowed; }

textarea{ min-height: 140px; resize: vertical; line-height: 1.6; }

select{
  appearance: none;
  padding-right: 40px;
  background-image: linear-gradient(45deg, transparent 50%, var(--lunara-ink-50) 50%),
                    linear-gradient(135deg, var(--lunara-ink-50) 50%, transparent 50%);
  background-position: calc(100% - 20px) calc(50% + 2px), calc(100% - 15px) calc(50% + 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

::placeholder{ color: var(--lunara-ink-50); opacity: 1; }

.lunara-field__error{ font-size: 13px; color: var(--lunara-danger); text-transform: none; letter-spacing: 0; }
.lunara-field__hint{ font-size: 13px; color: var(--lunara-ink-50); text-transform: none; letter-spacing: 0; font-weight: 400; }

.lunara-checkbox{
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lunara-ink-70);
}

.lunara-checkbox input{ width: 18px; height: 18px; margin-top: 3px; flex: none; accent-color: var(--lunara-green); }

/* Linha de contato (lunara_theme_contact_line) fora do rodape */
.lunara-contact-list{ display: flex; flex-direction: column; gap: var(--sp-3); }

.lunara-contact-line{
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: 15px;
  line-height: 1.5;
}

.lunara-contact-line svg{ flex: none; margin-top: 3px; color: var(--lunara-gold); }
.lunara-contact-line a{ text-decoration: none; transition: color var(--t-fast) var(--ease); }
.lunara-contact-line a:hover{ color: var(--lunara-gold); }

/* Formulario de busca do WordPress */
.search-form{ display: flex; gap: var(--sp-2); max-width: 520px; }
.search-form label{ flex: 1; }

/* --------------------------------------------------------------------------
   Tabelas
   -------------------------------------------------------------------------- */

.lunara-table-wrap{ overflow-x: auto; }

.lunara-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}

.lunara-table th{
  padding: 14px 16px;
  text-align: left;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lunara-ink-50);
  border-bottom: var(--border);
  white-space: nowrap;
}

.lunara-table td{
  padding: 14px 16px;
  border-bottom: var(--border);
  vertical-align: top;
}

.lunara-table tbody tr{ transition: background-color var(--t-fast) var(--ease); }
.lunara-table tbody tr:hover{ background: var(--lunara-offwhite); }

/* --------------------------------------------------------------------------
   Accordion nativo (<details>) — politicas e FAQ
   -------------------------------------------------------------------------- */

.lunara-accordion details{ border-bottom: var(--border); }

.lunara-accordion summary{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-5) 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--lunara-ink);
  transition: color var(--t-fast) var(--ease);
}

.lunara-accordion summary::-webkit-details-marker{ display: none; }
.lunara-accordion summary:hover{ color: var(--lunara-green); }

.lunara-accordion summary::after{
  content: "";
  flex: none;
  width: 12px;
  height: 12px;
  border-right: 1.5px solid var(--lunara-gold);
  border-bottom: 1.5px solid var(--lunara-gold);
  transform: rotate(45deg) translate(-3px, -3px);
  transition: transform var(--t-fast) var(--ease);
}

.lunara-accordion details[open] summary::after{ transform: rotate(-135deg) translate(-3px, -3px); }

.lunara-accordion__body{
  padding-bottom: var(--sp-5);
  color: var(--lunara-ink-70);
}

/* --------------------------------------------------------------------------
   Galeria e lightbox
   -------------------------------------------------------------------------- */

.lunara-gallery{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-3);
}

.lunara-gallery__item{
  display: block;
  padding: 0;
  border: 0;
  background: var(--lunara-sand);
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.lunara-gallery__item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}

.lunara-gallery__item:hover img{ transform: scale(1.04); }

.lunara-lightbox{
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  padding: var(--sp-5);
  background: rgba(22, 44, 37, .94);
  color: var(--lunara-on-dark);
}

.lunara-lightbox__figure{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-3);
  max-width: min(100%, 1280px);
  max-height: 100%;
}

.lunara-lightbox__figure img{
  max-height: 76vh;
  width: auto;
  object-fit: contain;
}

.lunara-lightbox__caption{ font-size: 13px; color: var(--lunara-on-dark-70); text-align: center; }

.lunara-lightbox__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--lunara-line-dark);
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--lunara-on-dark);
  transition: border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease);
}

.lunara-lightbox__btn:hover{ border-color: var(--lunara-gold); background: rgba(176, 141, 79, .12); }

.lunara-lightbox__close{ position: absolute; top: var(--sp-4); right: var(--sp-4); }
.lunara-lightbox__prev{ position: absolute; left: var(--sp-3); top: 50%; transform: translateY(-50%); }
.lunara-lightbox__next{ position: absolute; right: var(--sp-3); top: 50%; transform: translateY(-50%); }

/* --------------------------------------------------------------------------
   Estados vazios — DESIGN.md secao 6
   -------------------------------------------------------------------------- */

.lunara-empty{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-4);
  padding-block: 96px;
  text-align: center;
}

.lunara-empty svg{ color: var(--lunara-line-dark); }

.lunara-empty__title{
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.15;
}

.lunara-empty__text{ font-size: 15px; color: var(--lunara-ink-50); max-width: 46ch; }

/* --------------------------------------------------------------------------
   Paginacao
   -------------------------------------------------------------------------- */

.lunara-pagination{ margin-top: var(--sp-8); }

.lunara-pagination .nav-links{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2);
}

.lunara-pagination :is(.page-numbers){
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding-inline: var(--sp-3);
  border: var(--border);
  border-radius: var(--r-sm);
  font-size: 14px;
  text-decoration: none;
  color: var(--lunara-ink-70);
  transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.lunara-pagination .page-numbers:hover{ border-color: var(--lunara-green-400); color: var(--lunara-green); }
.lunara-pagination .page-numbers.current{ background: var(--lunara-green); border-color: var(--lunara-green); color: var(--lunara-on-dark); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.lunara-footer{
  background: var(--lunara-green);
  color: var(--lunara-on-dark);
  padding-top: clamp(56px, 8vw, 96px);
}

.lunara-footer :is(h2, h3, h4){ color: var(--lunara-on-dark); }
.lunara-footer p{ color: var(--lunara-on-dark-70); }

.lunara-footer__cols{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-7);
  padding-bottom: clamp(48px, 6vw, 80px);
}

.lunara-footer__title{
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lunara-on-dark-70);
  margin-bottom: var(--sp-5);
}

.lunara-footer__tagline{
  margin-top: var(--sp-5);
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.3;
  color: var(--lunara-on-dark);
  max-width: 24ch;
}

.lunara-footer__list{ display: flex; flex-direction: column; gap: var(--sp-3); }

.lunara-footer__list a,
.lunara-footer__list li{
  font-size: 15px;
  line-height: 1.5;
  color: var(--lunara-on-dark-70);
  text-decoration: none;
}

.lunara-footer__list a{ transition: color var(--t-fast) var(--ease); }
.lunara-footer__list a:hover{ color: var(--lunara-champagne); }

.lunara-footer__contact li{
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
}

.lunara-footer__contact svg{ flex: none; margin-top: 3px; color: var(--lunara-gold); }

.lunara-footer__hours{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-4);
  padding-bottom: var(--sp-5);
  margin-bottom: var(--sp-5);
  border-bottom: 1px solid var(--lunara-line-dark);
}

.lunara-footer__hour-value{
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1;
  color: var(--lunara-on-dark);
}

.lunara-footer__hour-label{
  display: block;
  margin-top: var(--sp-2);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--lunara-on-dark-70);
}

.lunara-social{
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin-top: var(--sp-5);
}

.lunara-social a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--lunara-line-dark);
  border-radius: var(--r-sm);
  color: var(--lunara-on-dark);
  transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.lunara-social a:hover{ border-color: var(--lunara-gold); color: var(--lunara-gold); }

.lunara-footer__bar{
  border-top: 1px solid var(--lunara-line-dark);
  padding-block: var(--sp-5);
}

.lunara-footer__bar-inner{
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  font-size: 13px;
  color: var(--lunara-on-dark-70);
}

.lunara-footer__legal{
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lunara-footer__legal a{ color: var(--lunara-on-dark-70); text-decoration: none; }
.lunara-footer__legal a:hover{ color: var(--lunara-champagne); }

/* --------------------------------------------------------------------------
   Breakpoints — 480 / 768 / 1024 / 1280 / 1600
   -------------------------------------------------------------------------- */

@media (min-width: 480px){
  .lunara-gallery{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
  .lunara-footer__bar-inner{ flex-direction: row; align-items: center; justify-content: space-between; }
}

@media (min-width: 768px){
  body{ font-size: 17px; }

  .lunara-header__inner{ height: 88px; }
  .lunara-header.is-solid .lunara-header__inner{ height: 72px; }
  .lunara-main{ padding-top: 88px; }
  .lunara-has-transparent-header .lunara-main{ padding-top: 0; }

  .lunara-header__cta{ padding: 13px 24px; font-size: 12px; }

  .lunara-footer__cols{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-8) var(--sp-7); }
  .lunara-gallery{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lunara-card__body{ padding-top: var(--sp-5); }
}

@media (min-width: 1024px){
  .lunara-footer__cols{ grid-template-columns: 1.4fr 1fr 1.2fr 1.2fr; }
  .lunara-gallery{ grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .lunara-lightbox__prev{ left: var(--sp-7); }
  .lunara-lightbox__next{ right: var(--sp-7); }
}

/* O nav horizontal so entra em 1200px.
   Conta que define o numero: marca 128 + menu 760 (nove rotulos inteiros com
   12px de respiro) + acoes 137 + 2 respiros de 16 = 1058px de conteudo. Com
   o gutter de 5vw, 1058px so cabem a partir de ~1200px de tela. Abaixo disso
   quem atende e o menu de hamburguer, que ja existe. */

@media (min-width: 1200px){
  .lunara-header__nav{ display: block; }
  .lunara-burger{ display: none; }
  .lunara-mobile-menu{ display: none; }

  .lunara-menu{ gap: var(--sp-3); }
}

@media (min-width: 1440px){
  /* So aqui sobra largura para o respiro maior entre os itens. */
  .lunara-menu{ gap: var(--sp-5); }
}

@media (min-width: 1280px){
  .lunara-header__brand .lunara-logo__word{ font-size: 20px; }
  .lunara-header__brand .lunara-logo__sub{ font-size: 11px; }
}

@media (min-width: 1600px){
  .lunara-gallery{ gap: var(--sp-5); }
}

/* --------------------------------------------------------------------------
   Impressao
   -------------------------------------------------------------------------- */

@media print{
  .lunara-header,
  .lunara-mobile-menu,
  .lunara-footer,
  .lunara-lightbox{ display: none !important; }

  .lunara-main{ padding-top: 0; }
  body{ background: #fff; color: #000; }
}

/* --------------------------------------------------------------------------
   HOME — secoes de front-page.php
   Reaproveita .lunara-section / .lunara-card / .lunara-gallery; aqui ficam so
   as pecas que essas classes nao cobrem (hero, mosaico, split, mapa, faixa).
   -------------------------------------------------------------------------- */

/* Hero ------------------------------------------------------------------- */

.lunara-hero{
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 88vh;
  min-height: 88svh;
  padding-block: calc(64px + var(--sp-8)) var(--sp-8);
  background: var(--lunara-green-700);
  color: var(--lunara-on-dark);
}

/* overflow fica na midia, nao no hero: o motor de reservas ultrapassa a
   borda de baixo no desktop e nao pode ser cortado. */
.lunara-hero__media{ position: absolute; inset: 0; overflow: hidden; }

.lunara-hero__media :is(img, .lunara-image-fallback){
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}

/* Camada de escurecimento obrigatoria — DESIGN.md secao 11. */
.lunara-hero__scrim,
.lunara-cta__scrim{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(22,44,37,.55), rgba(22,44,37,.15) 40%, rgba(22,44,37,.65));
}

.lunara-hero__inner{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-4);
  text-align: center;
}

.lunara-hero__eyebrow{ color: var(--lunara-on-dark-70); }
.lunara-hero__title{ color: var(--lunara-on-dark); }

.lunara-hero__tagline{
  font-family: var(--font-display);
  font-size: clamp(20px, 2.6vw, 30px);
  line-height: 1.3;
  max-width: 22ch;
  color: var(--lunara-on-dark);
}

.lunara-hero__booking{ position: relative; margin-top: var(--sp-7); }

/* Intro ------------------------------------------------------------------ */

.lunara-intro__inner{ display: grid; gap: var(--sp-8); align-items: center; }
.lunara-intro__text{ margin-top: var(--sp-5); }
.lunara-intro__text > * + *{ margin-top: var(--sp-4); }

.lunara-intro__media{ position: relative; }
.lunara-intro__frame{ display: none; }

.lunara-intro__media :is(img, .lunara-image-fallback){
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

/* Acomodacoes ------------------------------------------------------------ */

.lunara-rooms__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-7);
  margin-top: var(--sp-8);
}

.lunara-room-card__eyebrow{ color: var(--lunara-ink-50); }
.lunara-room-card__eyebrow::before{ display: none; }

.lunara-price__suffix{
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--lunara-ink-50);
}

.lunara-rooms__actions{ justify-content: center; margin-top: var(--sp-8); }

/* Comodidades ------------------------------------------------------------ */

.lunara-amenities__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-6) var(--sp-5);
  margin-top: var(--sp-8);
}

.lunara-amenities__icon{ display: block; color: var(--lunara-gold); }
.lunara-amenities__name{ margin-top: var(--sp-3); }
.lunara-amenities__text{ margin-top: var(--sp-2); font-size: 15px; color: var(--lunara-ink-70); }

/* Experiencias ----------------------------------------------------------- */

.lunara-experiences__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-6);
  margin-top: var(--sp-8);
}

.lunara-experiences__actions{ justify-content: center; margin-top: var(--sp-7); }

/* Blocos imagem + texto (piscina, gastronomia) --------------------------- */

.lunara-split__inner{ display: grid; gap: var(--sp-7); align-items: center; }

.lunara-split__media :is(img, .lunara-image-fallback){
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.lunara-split__text{ margin-top: var(--sp-5); }
.lunara-split__link{ margin-top: var(--sp-6); }

/* Galeria em mosaico ----------------------------------------------------- */

.lunara-gallery--mosaic{ margin-top: var(--sp-8); }
.lunara-gallery-section__actions{ justify-content: center; margin-top: var(--sp-7); }

/* Localizacao ------------------------------------------------------------ */

.lunara-location__inner{ display: grid; gap: var(--sp-8); align-items: start; }

.lunara-location__address{
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  margin-top: var(--sp-6);
  font-style: normal;
  color: var(--lunara-on-dark);
}

.lunara-location__address svg{ flex: none; margin-top: 4px; color: var(--lunara-gold); }
.lunara-location__line{ display: block; line-height: 1.6; }

.lunara-location__distances{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-5);
  margin-top: var(--sp-6);
  padding-top: var(--sp-6);
  border-top: 1px solid var(--lunara-line-dark);
}

.lunara-location__distance{
  display: block;
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.1;
  color: var(--lunara-on-dark);
}

.lunara-location__distance-label{
  display: block;
  margin-top: var(--sp-2);
  font-size: 13px;
  color: var(--lunara-on-dark-70);
}

.lunara-location__frame{
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--lunara-green-700);
  border: 1px solid var(--lunara-line-dark);
}

.lunara-location__frame iframe{ width: 100%; height: 100%; border: 0; }

.lunara-location__placeholder{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-4);
  padding: var(--sp-7);
  border: 1px solid var(--lunara-line-dark);
}

.lunara-location__placeholder svg{ color: var(--lunara-gold); }
.lunara-location__placeholder-text{ color: var(--lunara-on-dark-70); }

/* Avaliacoes ------------------------------------------------------------- */

.lunara-testimonials__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-5);
  margin-top: var(--sp-8);
}

.lunara-testimonials__card{
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  padding: var(--sp-6);
  background: var(--lunara-white);
  border: var(--border);
}

.lunara-stars{ display: inline-flex; gap: 2px; color: var(--lunara-gold); }
.lunara-stars svg{ fill: currentColor; stroke: none; }

.lunara-testimonials__quote{
  margin: 0;
  font-family: var(--font-display);
  font-size: 21px;
  line-height: 1.45;
  color: var(--lunara-ink);
}

.lunara-testimonials__author{ margin-top: auto; }
.lunara-testimonials__name{ display: block; font-size: 15px; font-weight: 600; }
.lunara-testimonials__origin{ display: block; font-size: 13px; color: var(--lunara-ink-50); }
.lunara-testimonials__note{ margin-top: var(--sp-5); }

/* Ofertas ---------------------------------------------------------------- */

.lunara-offers__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-5);
  margin-top: var(--sp-8);
}

.lunara-offers__card{
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  padding: var(--sp-6);
  background: var(--lunara-white);
  border: var(--border);
}

.lunara-offers__text{ color: var(--lunara-ink-70); }
.lunara-offers__includes{ display: flex; flex-direction: column; gap: var(--sp-3); }

.lunara-offers__includes li{
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  font-size: 15px;
  line-height: 1.5;
}

.lunara-offers__includes svg{ flex: none; margin-top: 3px; color: var(--lunara-gold); }
.lunara-offers__foot{ margin-top: auto; padding-top: var(--sp-4); border-top: var(--border); }

/* Faixa final ------------------------------------------------------------ */

.lunara-cta{
  position: relative;
  display: flex;
  align-items: center;
  min-height: 420px;
  padding-block: clamp(64px, 9vw, 128px);
  overflow: hidden;
  background: var(--lunara-green-700);
  color: var(--lunara-on-dark);
}

.lunara-cta__media{ position: absolute; inset: 0; }

.lunara-cta__media :is(img, .lunara-image-fallback){
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}

.lunara-cta__inner{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-4);
  text-align: center;
}

.lunara-cta__title{ color: var(--lunara-on-dark); }
.lunara-cta__text{ color: var(--lunara-on-dark-70); max-width: 44ch; }
.lunara-cta__button{ margin-top: var(--sp-3); padding: 18px 40px; font-size: 14px; }

/* Breakpoints da home ---------------------------------------------------- */

@media (min-width: 768px){
  .lunara-rooms__grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-5); }
  .lunara-amenities__grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lunara-testimonials__grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lunara-offers__grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .lunara-split__inner{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-8); }
  .lunara-split--reverse .lunara-split__media{ order: 2; }

  .lunara-location__inner{ grid-template-columns: 1fr 1.1fr; }

  .lunara-gallery--mosaic{ grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 1fr; }

  .lunara-gallery__item--lead{
    grid-column: span 2;
    grid-row: span 2;
    aspect-ratio: auto;
  }

  .lunara-experiences__grid{ grid-template-columns: 1.3fr 1fr; }
  .lunara-experiences__item--lead{ grid-row: span 3; }
  .lunara-experiences__item--lead .lunara-card__media{ aspect-ratio: 3 / 4; }

  .lunara-intro__inner{ grid-template-columns: 1.1fr 1fr; }

  .lunara-intro__frame{
    display: block;
    position: absolute;
    top: var(--sp-5);
    right: calc(-1 * var(--sp-5));
    bottom: calc(-1 * var(--sp-5));
    left: var(--sp-5);
    border: 1px solid var(--lunara-gold);
  }
}

@media (min-width: 1024px){
  /* Motor de reservas sobreposto ao rodape da imagem — DESIGN.md secao 6. */
  .lunara-hero{
    min-height: 92vh;
    min-height: 92svh;
    padding-block: calc(88px + var(--sp-9)) var(--sp-9);
  }

  /* A folga so existe quando o motor de reservas foi realmente impresso —
     com o plugin desligado o hero encosta na secao seguinte, sem buraco. */
  .lunara-hero:has(.lunara-hero__booking){ margin-bottom: 56px; }

  .lunara-hero__booking{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    margin-top: 0;
    transform: translateY(50%);
  }
}

@media (prefers-reduced-motion: reduce){
  .lunara-gallery__item:hover img{ transform: none; }
}
