/* ==========================================================================
   or-hospitalidade.css — Layout EDITORIAL de hospedagem (core).
   Emitido só quando \OneRank\Hospitalidade::ativo(). Classes neutras `or-*`.
   Estrutura (caixa/grid) + tema editorial DARK/LIGHT alternado. O acento
   (--velit-gold) segue a cor de marca do cliente (config_cores). Fontes vêm
   dos tokens do custom.css do cliente (com fallbacks serif/sans neutros).
   ========================================================================== */

:root {
  /* Superfícies escuras (heros, banner 4h, pilares, upgrade, CTA, footer, home) */
  --velit-dark:        #0A0A0A;
  --velit-dark-2:      #111111;
  --velit-dark-3:      #1A1A1A;
  --velit-border-dark: #2A2A2A;
  /* Superfícies claras (catálogo, suítes, tarifas, sobre/contato) */
  --velit-light:        #F5F3EF;
  --velit-light-2:      #FFFFFF;
  --velit-light-3:      #F9F7F4;
  --velit-border-light: #E8E4DC;
  /* Textos por contexto */
  --velit-on-dark:    #FFFFFF;
  --velit-on-dark-2:  #AAAAAA;
  --velit-on-dark-3:  #777777;
  --velit-on-light:   #0A0A0A;
  --velit-on-light-2: #777777;
  --velit-on-light-3: #AAAAAA;
  /* Acento único = cor de marca */
  --velit-gold: var(--marca-primaria, #C9A84C);
  /* Fontes (aliases dos tokens do skin do cliente) */
  --or-font-display: var(--or-font-heading, 'Cormorant Garamond', Georgia, 'Times New Roman', serif);
  --or-font-ui:      var(--or-font-label, 'Montserrat', system-ui, -apple-system, sans-serif);
  --or-font-text:    var(--cnvs-font-family, 'Inter', system-ui, -apple-system, sans-serif);
  /* Escala FLUIDA de espaçamento — responsividade sistemática (reduz no mobile sem breakpoint).
     Breakpoints canônicos do layout: 1024 / 768 / 480 (o menu do Canvas troca em 992). */
  --or-hero-y: clamp(72px, 11vw, 120px);      /* padding vertical de hero */
  --or-sec-y:  clamp(52px, 9vw, 100px);       /* padding vertical de seção */
  --or-pad-card: clamp(1.5rem, 4vw, 2.75rem); /* padding interno de cards/painéis */
}

/* ==========================================================================
   Escopo de página + base de superfícies
   ========================================================================== */
body.or-hosp-page,
body.or-hosp-page #wrapper,
body.or-hosp-page #content {
  background-color: var(--velit-light);
  color: var(--velit-on-light);
}
/* Defesa contra scroll horizontal em qualquer página de hospedagem (o header/FABs são position:fixed,
   fora do fluxo, então não são afetados). */
body.or-hosp-page #wrapper { overflow-x: hidden; }
body.or-hosp-page { font-family: var(--or-font-text); }

/* Home = página única DARK 100vh (sem header; logo centralizado; footer no rodapé) */
body.or-home-hospedagem,
body.or-home-hospedagem #wrapper,
body.or-home-hospedagem #content {
  background-color: var(--velit-dark);
  color: var(--velit-on-dark);
}
body.or-home-hospedagem #wrapper {
  min-height: 100vh;
  min-height: 100dvh; /* não corta com a barra de URL do navegador mobile */
  display: flex;
  flex-direction: column;
}
body.or-home-hospedagem .or-hosp-home { flex: 1 1 auto; }
body.or-home-hospedagem #footer { flex: 0 0 auto; }

/* ---- Utilitários de seção DARK / LIGHT (bg-color só; não sobrescreve bg-image inline) ---- */
.or-hosp-page .is-dark  { background-color: var(--velit-dark);  color: var(--velit-on-dark); }
.or-hosp-page .is-light { background-color: var(--velit-light); color: var(--velit-on-light); }
.or-hosp-page .is-light.is-alt { background-color: var(--velit-light-2); }

.or-hosp-page .is-dark h1, .or-hosp-page .is-dark h2, .or-hosp-page .is-dark h3, .or-hosp-page .is-dark h4 { color: var(--velit-on-dark); }
.or-hosp-page .is-light h1, .or-hosp-page .is-light h2, .or-hosp-page .is-light h3, .or-hosp-page .is-light h4 { color: var(--velit-on-light); }
.or-hosp-page .is-dark  p, .or-hosp-page .is-dark  .or-section-sub { color: var(--velit-on-dark-2); }
.or-hosp-page .is-light p, .or-hosp-page .is-light .or-section-sub { color: var(--velit-on-light-2); }

/* Glow radial sutil nos heros/CTA dark (no lugar da imagem parallax do original) */
.or-hosp-hero,
.or-cat-hero,
.or-hosp-page .or-cta-banner.is-dark {
  background-image: radial-gradient(ellipse 95% 80% at 50% 28%, rgba(255, 255, 255, .055) 0%, rgba(255, 255, 255, 0) 60%);
  background-repeat: no-repeat;
}

/* ---- Primitivos ---- */
.or-eyebrow {
  display: inline-block;
  font-family: var(--or-font-ui);
  text-transform: uppercase;
  letter-spacing: .22em;
  padding-left: .22em; /* compensa o tracking à direita → recentra em contexto centralizado */
  font-size: .75rem;
  font-weight: 500;
  color: var(--velit-gold);
}

/* Ícones de seção (pilares/valores = círculo dourado; story = ícone dourado) */
.or-pillar-icon, .or-value-icon {
  display: block; margin: 0 auto 1.25rem;
  width: 34px; height: 34px; padding: 17px; box-sizing: content-box;
  color: var(--velit-gold);
  border: 1px solid var(--velit-gold); border-radius: 50%;
  background: rgba(201, 168, 76, .06);
}
.or-story-icon {
  display: block; width: 46px; height: 46px; margin: 0 0 1.1rem;
  color: var(--velit-gold);
}
/* Ícone WhatsApp dentro dos botões do corpo */
.or-btn-wa .or-icon { width: 1.15em; height: 1.15em; flex-shrink: 0; }
.or-divider { width: 60px; height: 1px; border: 0; margin: 1.25rem auto; background: var(--velit-gold); opacity: 1; }
.or-arrow { display: inline-block; transition: transform .2s ease; }
.or-section-header { text-align: center; margin-bottom: 3rem; }
.or-section-header h2 { font-family: var(--or-font-display); margin: .4rem 0 .3rem; }
.or-section-sub { margin: 0; }

/* ==========================================================================
   HOME — seletor de unidade (sections/hospitalidade-home.php) — DARK
   ========================================================================== */
.or-hosp-home {
  background: var(--velit-dark);
  display: flex;
  flex-direction: column;   /* column → o .container estica 100% sem estourar (row esticava a viewport) */
  justify-content: center;  /* centraliza verticalmente na "página única" */
  padding: clamp(28px, 6vw, 48px) 0;
}
/* min-width:0 → o .container (flex item no .or-hosp-home flex) pode encolher abaixo do conteúdo
   (H1 longo); sem isto o item não encolhia e estourava a viewport no mobile (scroll horizontal). */
.or-hosp-home .container { width: 100%; min-width: 0; }
.or-unit-logo, .or-home-logo { max-width: 100%; }
.or-hosp-home-hero { text-align: center; margin-bottom: 2.75rem; }
/* Link full-width + text-align:center → a logo (inline-block) centraliza no mesmo eixo do texto.
   (inline-block no link deixava a logo ~53px à esquerda do centro real.) */
.or-home-logo-link { display: block; text-align: center; margin-bottom: 1.75rem; }
.or-home-logo { max-width: 200px; max-height: 96px; width: auto; height: auto; display: inline-block; }
.or-hosp-home-hero .or-eyebrow { color: var(--velit-on-dark-2); }
.or-hosp-home-hero h1 {
  font-family: var(--or-font-display);
  color: var(--velit-on-dark);
  margin: .75rem 0 0;
  font-size: clamp(1.7rem, 3.4vw, 2.8rem);
  font-weight: 400;
  line-height: 1.12;
}

.or-units { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; max-width: 920px; margin: 0 auto; }
@media (max-width: 700px) { .or-units { grid-template-columns: 1fr; } }
.or-unit-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .6rem; text-align: center; padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 4vw, 2rem); min-height: 320px;
  text-decoration: none;
  background: var(--velit-dark-2);
  border: 1px solid var(--velit-border-dark);
  border-radius: 4px;
  transition: transform .3s ease, border-color .3s ease, background-color .3s ease;
}
.or-unit-card:hover { transform: translateY(-4px); border-color: var(--velit-gold); background: var(--velit-dark-3); text-decoration: none; }
.or-unit-card:hover .or-arrow { transform: translateX(4px); }
.or-unit-eyebrow { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .22em; font-size: .72rem; color: var(--velit-gold); }
.or-unit-logo { max-height: 84px; max-width: 72%; object-fit: contain; margin: .25rem 0; }
.or-unit-nome { font-family: var(--or-font-display); font-size: clamp(1.4rem, 3vw, 1.7rem); color: var(--velit-on-dark); }
.or-unit-loc { margin: 0; color: var(--velit-on-dark-2); font-size: .95rem; line-height: 1.6; }
.or-unit-cta {
  margin-top: .5rem; font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .2em;
  font-size: .76rem; color: var(--velit-gold); padding-bottom: 5px; border-bottom: 1px solid var(--velit-gold);
}

/* ==========================================================================
   CATÁLOGO por unidade (produto-categoria.php)
   ========================================================================== */
.or-cat-hero { padding: var(--or-hero-y) 0 clamp(36px, 6vw, 56px); text-align: center; }
.or-cat-hero h1 { font-family: var(--or-font-display); margin: .5rem 0 0; font-size: clamp(2.2rem, 4.4vw, 3.6rem); font-weight: 400; }
.or-cat-hero .or-eyebrow { color: var(--velit-gold); }
.or-cat-hero-desc { max-width: 680px; margin: 1rem auto 0; color: var(--velit-on-dark-2); line-height: 1.7; }
.or-cat-hero-desc p { color: var(--velit-on-dark-2); }

/* Banner regra 4h — faixa full-bleed escura com bordas laterais douradas */
.or-rule-banner {
  padding: 22px 0;
  text-align: center;
  font-family: var(--or-font-ui);
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .82rem;
  color: var(--velit-on-dark);
  border-left: 3px solid var(--velit-gold);
  border-right: 3px solid var(--velit-gold);
}
.or-rule-banner strong { color: var(--velit-gold); font-weight: 600; letter-spacing: .16em; }
@media (max-width: 576px) { .or-rule-banner { font-size: .72rem; padding: 16px 0; } }

/* Grid de categorias — cards CLAROS */
/* Rolagem SUAVE para âncoras internas (menu "Catálogo" → #catalogo etc.). Este arquivo só é
   emitido sob Hospitalidade::ativo() → a regra não vaza p/ clientes non-lodging. */
html { scroll-behavior: smooth; }
.or-cat-grid-section { padding: var(--or-sec-y) 0 clamp(64px, 9vw, 110px); scroll-margin-top: 90px; } /* âncora #catalogo: header sticky não cobre o topo do grid */
.or-cat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
@media (max-width: 1024px) { .or-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .or-cat-grid { grid-template-columns: 1fr; } }

.or-cat-card {
  display: flex; flex-direction: column; text-decoration: none;
  background: var(--velit-light-2);
  border: 1px solid var(--velit-border-light);
  border-radius: 4px; overflow: hidden;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.or-cat-card:hover { transform: translateY(-6px); border-color: var(--velit-gold); box-shadow: 0 18px 32px rgba(10,10,10,.12); text-decoration: none; }
.or-cat-card-img {
  aspect-ratio: 4/3; overflow: hidden;
  background: var(--velit-light-3);
  border-bottom: 1px solid var(--velit-border-light);
}
.or-cat-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.or-cat-card:hover .or-cat-card-img img { transform: scale(1.04); }
.or-cat-card-body { padding: 2rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.or-cat-card-eyebrow { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .22em; font-size: .72rem; color: var(--velit-gold); }
.or-cat-card-title { font-family: var(--or-font-display); margin: 0; font-size: clamp(1.35rem, 3vw, 1.65rem); color: var(--velit-on-light); line-height: 1.15; }
.or-cat-card-meta { margin: 0; font-size: .92rem; color: var(--velit-on-light-2); line-height: 1.5; }
.or-cat-card-footer { margin-top: auto; padding-top: 1.1rem; display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; border-top: 1px solid var(--velit-border-light); }
.or-cat-card-price { font-family: var(--or-font-display); font-weight: 500; color: var(--velit-gold); font-size: 1.4rem; line-height: 1; }
.or-cat-card-price .sub { display: block; font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .16em; font-size: .68rem; color: var(--velit-on-light-2); font-weight: 400; margin-bottom: 3px; }
.or-cat-card-price.is-consulte { font-family: var(--or-font-display); font-style: italic; font-weight: 400; font-size: 1.05rem; color: var(--velit-on-light-2); }
.or-cat-card-cta { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .18em; font-size: .72rem; color: var(--velit-gold); white-space: nowrap; padding-bottom: 3px; border-bottom: 1px solid transparent; transition: border-color .25s ease; }
.or-cat-card:hover .or-cat-card-cta { border-bottom-color: var(--velit-gold); }
.or-cat-card:hover .or-cat-card-cta .or-arrow { transform: translateX(4px); }

/* "Por que escolher" — 3 cards claros */
.or-story-section { padding: 0 0 clamp(64px, 9vw, 110px); }
.or-story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
@media (max-width: 1024px) { .or-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .or-story-grid { grid-template-columns: 1fr; } }
.or-story-card {
  background: var(--velit-light-2);
  border: 1px solid var(--velit-border-light);
  border-top: 3px solid var(--velit-gold);
  border-radius: 4px; padding: 2.25rem 2rem;
  transition: transform .35s ease, box-shadow .35s ease;
}
.or-story-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(10,10,10,.10); }
.or-story-card h3 { font-family: var(--or-font-display); font-size: clamp(1.3rem, 3vw, 1.5rem); color: var(--velit-on-light); margin: 0 0 .75rem; }
.or-story-card p { color: var(--velit-on-light-2); margin: 0; line-height: 1.7; }

/* ==========================================================================
   DETALHE de categoria (includes/hospitalidade/produto-detalhe.php)
   ========================================================================== */
.or-hero-immersive {
  position: relative; min-height: 62vh; display: flex; align-items: center;
  background-color: var(--velit-dark);
  background-size: cover; background-position: center;
  text-align: center; color: var(--velit-on-dark);
  padding: var(--or-hero-y) 0 clamp(48px, 7vw, 70px);
}
.or-hero-immersive-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.72) 60%, rgba(10,10,10,.88) 100%); }
.or-hero-immersive .container { position: relative; z-index: 1; }
.or-hero-immersive h1 { font-family: var(--or-font-display); color: var(--velit-on-dark); font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 400; margin: .5rem 0 0; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.or-hero-immersive .or-eyebrow { color: var(--velit-on-dark-2); }
.or-breadcrumb { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; color: var(--velit-on-dark-2); margin: .8rem 0 0; }
.or-breadcrumb a { color: var(--velit-on-dark-2); text-decoration: none; }
.or-breadcrumb a:hover { color: var(--velit-gold); }
.or-breadcrumb .sep { margin: 0 .55rem; color: var(--velit-on-dark-3); }
.or-breadcrumb .current { color: var(--velit-gold); }
.or-hero-desc { max-width: 720px; margin: 1rem auto 0; color: var(--velit-on-dark-2); font-weight: 300; line-height: 1.7; }
.or-quick-facts { display: flex; flex-wrap: wrap; gap: .9rem; justify-content: center; margin-top: 1.75rem; }
.or-quick-facts .qf { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .1em; font-size: .76rem; color: var(--velit-on-dark-2); padding: 8px 18px; border: 1px solid var(--velit-border-dark); border-radius: 999px; background: rgba(10,10,10,.4); }
.or-quick-facts .qf strong { color: var(--velit-gold); font-weight: 400; margin-right: 4px; }

/* Sobre a categoria + amenidades — LIGHT */
.or-cat-intro { padding: var(--or-sec-y) 0 clamp(40px, 6vw, 64px); }
.or-cat-intro-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 3.5rem; align-items: start; }
@media (max-width: 800px) { .or-cat-intro-grid { grid-template-columns: 1fr; gap: 2rem; } }
.or-cat-intro-text h2 { font-family: var(--or-font-display); margin: .5rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.or-cat-intro-text p { color: var(--velit-on-light-2); line-height: 1.8; }
/* Amenidades = lista editorial em 2 colunas (— item), não chips */
.or-base-amenities { list-style: none; padding: 0; margin: .75rem 0 0; columns: 2; column-gap: 28px; }
@media (max-width: 480px) { .or-base-amenities { columns: 1; } }
.or-base-amenities li { padding: 10px 0; border-bottom: 1px dashed var(--velit-border-light); font-size: .94rem; break-inside: avoid; color: var(--velit-on-light); }
.or-base-amenities li::before { content: '— '; color: var(--velit-gold); margin-right: 8px; }

/* Grid de suítes — LIGHT, cards brancos */
.or-suites-section { padding: clamp(32px, 5vw, 48px) 0 var(--or-sec-y); }
.or-suite-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 1024px) { .or-suite-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .or-suite-grid { grid-template-columns: 1fr; } }
.or-suite-card {
  display: flex; flex-direction: column; text-decoration: none;
  background: var(--velit-light-2);
  border: 1px solid var(--velit-border-light);
  border-radius: 4px; overflow: hidden; position: relative;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.or-suite-card:not(.or-suite-card--sem-fotos):hover { transform: translateY(-4px); border-color: var(--velit-gold); box-shadow: 0 14px 28px rgba(10,10,10,.12); text-decoration: none; }
.or-suite-card-img { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--velit-light-3); }
.or-suite-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.or-suite-card:hover .or-suite-card-img img { transform: scale(1.05); }
.or-suite-badge {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  font-family: var(--or-font-ui); font-weight: 500; letter-spacing: .12em; text-transform: uppercase;
  font-size: .72rem; padding: 6px 12px; border-radius: 2px;
  background: var(--velit-gold); color: var(--velit-dark);
}
.or-suite-card-body { padding: 1.5rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.or-suite-card-title { font-family: var(--or-font-display); margin: 0; font-size: clamp(1.25rem, 2.6vw, 1.4rem); color: var(--velit-on-light); }
.or-suite-diffs { list-style: none; padding: 0; margin: 0; }
.or-suite-diffs li { padding: 6px 0; font-size: .92rem; color: var(--velit-on-light); }
.or-suite-diffs li::before { content: '— '; color: var(--velit-gold); margin-right: 6px; }
/* Fallback do card quando a suíte não tem diferenciais (mantém o traço dourado, texto em itálico muted) */
.or-suite-diffs.is-empty li { font-style: italic; color: var(--velit-on-light-2); }
.or-suite-cta { margin-top: auto; padding-top: .5rem; font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .18em; font-size: .72rem; color: var(--velit-gold); }
.or-suite-card:hover .or-suite-cta .or-arrow { transform: translateX(4px); }
/* "Fotos em breve" — card não-clicável com placeholder escuro + selo dourado */
.or-suite-card--sem-fotos { cursor: default; }
.or-suite-sem-fotos { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #1a1a1a 0%, #111 100%); border-bottom: 1px solid var(--velit-border-light); }
.or-sem-fotos-selo { font-family: var(--or-font-ui); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--velit-gold); opacity: .8; border: 1px solid rgba(201,168,76,.4); padding: 8px 18px; border-radius: 2px; }

/* Tarifas — LIGHT, card branco */
.or-tarifas-section { padding: 0 0 var(--or-sec-y); }
.or-tarifas-card { max-width: 760px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 2.5rem); background: var(--velit-light-2); border: 1px solid var(--velit-border-light); border-radius: 4px; }
.or-tarifas-card h3 { font-family: var(--or-font-display); margin: 0 0 1.25rem; font-size: clamp(1.4rem, 3vw, 1.7rem); }
/* Wrapper com rolagem horizontal → tabela nunca estoura em telas estreitas */
.or-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.or-price-table { width: 100%; border-collapse: collapse; }
.or-price-table thead th {
  font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .16em; font-size: .74rem;
  color: var(--velit-on-light-2); text-align: left; padding: 14px 18px; background: var(--velit-light-3);
}
.or-price-table th.valor, .or-price-table td.valor { text-align: right; }
.or-price-table td { padding: 14px 18px; border-bottom: 1px solid var(--velit-border-light); color: var(--velit-on-light); }
.or-price-table td.valor { font-family: var(--or-font-display); font-weight: 500; color: var(--velit-gold); font-size: 1.2rem; }
.or-price-table tbody tr:nth-child(even) td:not(.valor) { background: var(--velit-light-3); }
.or-price-table tbody tr:last-child td { border-bottom: 0; }

/* Upgrade — DARK, cards escuros */
.or-upgrade-section { padding: var(--or-sec-y) 0 clamp(64px, 9vw, 110px); }
.or-upgrade-header { text-align: center; margin-bottom: 3rem; }
.or-upgrade-header h2 { font-family: var(--or-font-display); font-size: clamp(1.9rem, 3.4vw, 2.8rem); margin: .3rem 0 .3rem; }
.or-upgrade-card {
  max-width: 860px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.6fr;
  background: var(--velit-dark-2); border: 1px solid var(--velit-border-dark); border-radius: 4px; overflow: hidden;
  transition: border-color .3s ease, background-color .3s ease;
}
.or-upgrade-card:hover { border-color: var(--velit-gold); background: var(--velit-dark-3); }
@media (max-width: 700px) { .or-upgrade-card { grid-template-columns: 1fr; } }
.or-upgrade-from { padding: clamp(1.5rem, 4vw, 2.25rem); border-right: 1px solid var(--velit-gold); display: flex; flex-direction: column; justify-content: center; gap: .4rem; }
@media (max-width: 700px) { .or-upgrade-from { border-right: 0; border-bottom: 1px solid var(--velit-gold); } }
.or-upgrade-to { padding: clamp(1.5rem, 4vw, 2.25rem); }
.or-upgrade-label { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .2em; font-size: .68rem; color: var(--velit-on-dark); }
.or-upgrade-from h3, .or-upgrade-to h3 { font-family: var(--or-font-display); color: var(--velit-on-dark); margin: .25rem 0 .5rem; font-size: 1.55rem; }
.or-upgrade-price { color: var(--velit-on-dark-2); font-size: .95rem; }
.or-upgrade-diff { font-family: var(--or-font-display); font-weight: 500; font-size: clamp(1.5rem, 4vw, 1.9rem); color: var(--velit-gold); line-height: 1; margin: .25rem 0; }
.or-upgrade-benefits { list-style: none; padding: 0; margin: .75rem 0 1.25rem; }
.or-upgrade-benefits li { padding: 6px 0; font-size: .95rem; color: var(--velit-on-dark); border-bottom: 1px dashed var(--velit-border-dark); }
.or-upgrade-benefits li:last-child { border-bottom: 0; }
.or-upgrade-benefits li::before { content: '— '; color: var(--velit-gold); margin-right: 8px; }
.or-upgrade-cta { display: inline-block; margin-top: .9rem; font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .2em; font-size: .74rem; color: var(--velit-gold); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid var(--velit-gold); align-self: flex-start; }
.or-upgrade-cta:hover .or-arrow { transform: translateX(4px); }

/* CTA banner — DARK */
.or-cta-banner { padding: clamp(48px, 8vw, 80px) 0; text-align: center; }
.or-cta-banner h2 { font-family: var(--or-font-display); font-size: clamp(1.9rem, 3.4vw, 2.8rem); margin: 0 0 .75rem; }
.or-cta-banner p { max-width: 620px; margin: 0 auto 1.75rem; color: var(--velit-on-dark-2); line-height: 1.7; }

/* ==========================================================================
   Lightbox por-suíte (Magnific) — sempre DARK, 2 colunas
   ========================================================================== */
.or-suite-lightbox {
  position: relative; max-width: 980px; margin: 20px auto; background: var(--velit-dark);
  border: 1px solid var(--velit-border-dark); border-radius: 4px; overflow: hidden;
  display: grid; grid-template-columns: 6fr 5fr; color: var(--velit-on-dark);
}
@media (max-width: 760px) { .or-suite-lightbox { grid-template-columns: 1fr; } }
/* min-width:0 nas células de grid → o slide largo do Swiper NÃO estoura a coluna 6fr
   (min-width:auto padrão deixava a galeria cobrir a meta). overflow:hidden clipa o slide.
   aspect-ratio 4/3 espelha o original e ancora contador/setas (position:relative). */
.or-suite-lb-gallery { position: relative; aspect-ratio: 4 / 3; background: var(--velit-dark-2); min-width: 0; overflow: hidden; }
.or-suite-swiper { position: relative; width: 100%; height: 100%; min-height: 360px; overflow: hidden; }
.or-suite-swiper .swiper-slide { overflow: hidden; }
.or-suite-swiper .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 360px; }

/* Setas circulares douradas (espelham o original .velit-suite-swiper) */
.or-suite-swiper .swiper-button-prev, .or-suite-swiper .swiper-button-next {
  width: 44px; height: 44px; margin-top: -22px; border-radius: 50%;
  background: rgba(10, 10, 10, .65); border: 1px solid var(--velit-border-dark); color: var(--velit-gold);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}
.or-suite-swiper .swiper-button-prev:hover, .or-suite-swiper .swiper-button-next:hover {
  background: var(--velit-dark-3); border-color: var(--velit-gold); transform: scale(1.08);
}
.or-suite-swiper .swiper-button-prev::after, .or-suite-swiper .swiper-button-next::after {
  font-size: 16px; font-weight: 700; color: var(--velit-gold);
}
.or-suite-swiper .swiper-button-disabled { opacity: .35; cursor: not-allowed; }

/* Dots dourados */
.or-suite-swiper .swiper-pagination { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; z-index: 5; }
.or-suite-swiper .swiper-pagination-bullet {
  width: 8px; height: 8px; background: rgba(255, 255, 255, .4); opacity: 1; margin: 0 5px !important;
  transition: background-color .25s ease, transform .25s ease;
}
.or-suite-swiper .swiper-pagination-bullet-active { background: var(--velit-gold); transform: scale(1.3); }

/* Contador "1/N" no canto superior direito */
.or-suite-swiper .or-slide-counter {
  position: absolute; top: 14px; right: 14px; z-index: 5;
  background: rgba(10, 10, 10, .7); color: var(--velit-on-dark);
  font-family: var(--or-font-ui); font-weight: 300; letter-spacing: .18em; font-size: .74rem;
  padding: 6px 14px; border-radius: 999px; border: 1px solid var(--velit-border-dark);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.or-suite-swiper .or-slide-counter .cur { color: var(--velit-gold); margin-right: 2px; }
/* mobile: lightbox empilha (1 col) → contador vai p/ a esquerda, não colide com o × de fechar */
@media (max-width: 760px) { .or-suite-swiper .or-slide-counter { left: 14px; right: auto; } }

/* 1 foto → esconde nav/dots/contador */
.or-suite-swiper.is-single .swiper-button-prev,
.or-suite-swiper.is-single .swiper-button-next,
.or-suite-swiper.is-single .swiper-pagination,
.or-suite-swiper.is-single .or-slide-counter { display: none; }

.or-suite-lb-meta { padding: var(--or-pad-card); display: flex; flex-direction: column; min-width: 0; }
.or-suite-lb-meta .or-eyebrow { color: var(--velit-gold); }
.or-suite-lb-meta h2 { font-family: var(--or-font-display); color: var(--velit-on-dark); margin: .25rem 0 1.25rem; font-size: clamp(1.7rem, 4vw, 2.2rem); }
.or-lb-label { display: block; font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .2em; font-size: .68rem; color: var(--velit-on-dark-3); margin: 1.25rem 0 .6rem; }
.or-suite-lb-meta .or-suite-diffs li { color: var(--velit-on-dark); }
/* Fallback itálico quando a suíte não tem diferenciais em lista */
.or-suite-diffs-empty { font-family: var(--or-font-text); font-weight: 300; font-style: italic; color: var(--velit-on-dark-2); margin: 0; }
/* Amenidades no lightbox = 2 colunas, SEM traço "—" (só os diferenciais têm) */
.or-suite-lb-meta .or-base-amenities { columns: 2; column-gap: 20px; }
.or-suite-lb-meta .or-base-amenities li { color: var(--velit-on-dark-2); font-size: .88rem; border-bottom: 0; padding: 5px 0; }
.or-suite-lb-meta .or-base-amenities li::before { content: none; }
@media (max-width: 480px) { .or-suite-lb-meta .or-base-amenities { columns: 1; } }

/* Botão fechar (×) do Magnific — dentro do card (closeBtnInside), visível sobre o dark.
   Sem closeBtnInside o × caía no canto do overlay, apagado/quase invisível. */
.or-suite-mfp .mfp-close {
  color: var(--velit-on-dark); opacity: .9; font-size: 30px; font-weight: 300;
  width: 48px; height: 48px; line-height: 46px; right: 6px; top: 6px;
  transition: color .2s ease, opacity .2s ease, transform .2s ease;
}
.or-suite-mfp .mfp-close:hover, .or-suite-mfp .mfp-close:focus { color: var(--velit-gold); opacity: 1; transform: scale(1.08); }
@media (max-width: 760px) { .or-suite-mfp .mfp-close { font-size: 26px; width: 42px; height: 42px; line-height: 40px; } }

/* ==========================================================================
   Scroll-lock do modal (mobile) + esconder flutuantes enquanto aberto
   -------------------------------------------------------------------------
   A trava do fundo é ligada no JS (fixedContentPos:true → wrap FIXED +
   overflow:hidden no <html>, inclusive mobile). Aqui garantimos que o modal
   ROLE POR DENTRO no mobile (conteúdo alto: galeria empilhada + diferenciais/
   amenidades) — senão o fim ficaria inalcançável — e escondemos os FABs que
   têm z-index acima do Magnific e ficam por cima do modal.
   ========================================================================== */
@media (max-width: 760px) {
  /* o wrap fixo do Magnific (mainClass .or-suite-mfp) vira o container rolável */
  .or-suite-mfp.mfp-wrap { overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
  .or-suite-mfp .mfp-container { padding: 0; }
  /* remove o vertical-align:middle → conteúdo ancora no topo e rola de cima p/ baixo */
  .or-suite-mfp .mfp-container::before { display: none; }
  .or-suite-mfp .mfp-content { vertical-align: top; }
  /* modal vira "sheet" full-screen rolável por dentro; o fundo fica travado pelo <html> */
  .or-suite-lightbox { margin: 0 auto; border-radius: 0; min-height: 100%; }
}
/* Enquanto o modal está aberto (classe ligada nos callbacks open/close do Magnific
   em or-hospitalidade.js), esconder os flutuantes que ficam POR CIMA do modal:
   WhatsApp (z 9000), FAB de tema (z 9000) e botão de reabrir cookies (z 9998). */
body.or-suite-modal-open .or-wa-fab,
body.or-suite-modal-open .or-theme-fab,
body.or-suite-modal-open #or-lgpd-reabrir { display: none !important; }

/* ==========================================================================
   Visualizador em tela cheia (clicar na foto do modal → imagem em tamanho real)
   ========================================================================== */
.or-fs-overlay {
  position: fixed; inset: 0; z-index: 99999; background: rgba(8, 8, 8, .96);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  display: none; flex-direction: column; opacity: 0; transition: opacity .35s ease;
}
.or-fs-overlay.is-open { display: flex; opacity: 1; }
.or-fs-header { flex: 0 0 auto; padding: 22px 32px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.or-fs-caption {
  font-family: var(--or-font-ui); font-weight: 300; letter-spacing: .22em; text-transform: uppercase;
  font-size: .78rem; color: var(--velit-on-dark-2); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.or-fs-counter {
  font-family: var(--or-font-ui); font-weight: 300; letter-spacing: .18em; font-size: .78rem;
  color: var(--velit-on-dark-2); padding: 6px 14px; border: 1px solid var(--velit-border-dark); border-radius: 999px;
}
.or-fs-counter .cur { color: var(--velit-gold); }
.or-fs-close {
  background: transparent; border: 1px solid var(--velit-border-dark); color: var(--velit-on-dark);
  width: 44px; height: 44px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto; transition: border-color .25s, color .25s, background-color .25s;
}
.or-fs-close:hover { border-color: var(--velit-gold); color: var(--velit-gold); background: rgba(255, 255, 255, .05); }
.or-fs-close svg { width: 18px; height: 18px; }
.or-fs-content { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; min-height: 0; }
.or-fs-overlay .swiper { width: 100%; height: 100%; }
.or-fs-overlay .swiper-slide { display: flex !important; align-items: center; justify-content: center; padding: 20px 90px 60px; }
.or-fs-overlay .swiper-slide img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; user-select: none; pointer-events: none; }
.or-fs-overlay .swiper-button-next, .or-fs-overlay .swiper-button-prev {
  width: 56px; height: 56px; margin-top: -28px; border-radius: 50%; background: rgba(0, 0, 0, .45);
  border: 1px solid var(--velit-border-dark); color: var(--velit-gold);
  transition: background-color .25s, border-color .25s, transform .25s;
}
.or-fs-overlay .swiper-button-next:hover, .or-fs-overlay .swiper-button-prev:hover { background: rgba(255, 255, 255, .08); border-color: var(--velit-gold); transform: scale(1.06); }
.or-fs-overlay .swiper-button-next::after, .or-fs-overlay .swiper-button-prev::after { font-size: 22px; font-weight: 700; color: var(--velit-gold); }
.or-fs-overlay .swiper-pagination { bottom: 22px; text-align: center; }
.or-fs-overlay .swiper-pagination-bullet { background: rgba(255, 255, 255, .4); width: 10px; height: 10px; opacity: 1; margin: 0 6px !important; transition: background-color .25s, transform .25s; }
.or-fs-overlay .swiper-pagination-bullet-active { background: var(--velit-gold); transform: scale(1.3); }
@media (max-width: 768px) {
  .or-fs-header { padding: 14px 18px; gap: 12px; }
  .or-fs-caption { font-size: .68rem; letter-spacing: .16em; }
  .or-fs-counter { font-size: .68rem; padding: 4px 10px; }
  .or-fs-close { width: 38px; height: 38px; }
  .or-fs-overlay .swiper-slide { padding: 12px 56px 50px; }
  .or-fs-overlay .swiper-button-next, .or-fs-overlay .swiper-button-prev { width: 42px; height: 42px; margin-top: -21px; }
  .or-fs-overlay .swiper-button-next::after, .or-fs-overlay .swiper-button-prev::after { font-size: 16px; }
}

/* ==========================================================================
   Header — unit-switcher (hospitalidade-switcher.php) — painel DARK
   ========================================================================== */
.or-switcher-item { position: relative; display: flex; align-items: center; }
.or-unit-switcher { position: relative; }
.or-us-btn { display: inline-flex; align-items: center; gap: .5rem; background: transparent; border: 0; padding: 0; cursor: pointer; color: var(--velit-on-dark); font-family: var(--or-font-ui); }
.or-us-label { text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; color: var(--velit-on-dark); }
.or-us-current { text-transform: uppercase; letter-spacing: .16em; font-size: .78rem; font-weight: 500; color: var(--velit-gold); }
.or-us-chev { width: 12px; height: 12px; transition: transform .2s ease; color: var(--velit-gold); }
.or-unit-switcher[data-open="1"] .or-us-chev { transform: rotate(180deg); }
.or-us-panel {
  position: absolute; top: calc(100% + 12px); right: 0; min-width: 260px; z-index: 200;
  background: var(--velit-dark-2); border: 1px solid var(--velit-border-dark); border-radius: 3px;
  box-shadow: 0 14px 28px rgba(0,0,0,.5);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.or-unit-switcher[data-open="1"] .or-us-panel { opacity: 1; visibility: visible; transform: translateY(0); }
.or-us-option { display: flex; flex-direction: column; gap: .15rem; padding: .8rem 1.1rem; text-decoration: none; border-left: 2px solid transparent; transition: background-color .2s ease, border-color .2s ease; }
.or-us-option:hover { background: var(--velit-dark-3); border-left-color: var(--velit-gold); }
.or-us-option.is-active { background: var(--velit-dark); border-left-color: var(--velit-gold); }
.or-us-opt-name { font-family: var(--or-font-display); font-size: 1.1rem; color: var(--velit-on-dark); }
.or-us-option.is-active .or-us-opt-name { color: var(--velit-gold); }
.or-us-opt-addr { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .1em; font-size: .68rem; color: var(--velit-on-dark-2); }

/* ==========================================================================
   Sobre / Contato (includes/hospitalidade/sobre.php, contato.php)
   ========================================================================== */
.or-hosp-hero { text-align: center; padding: clamp(64px, 9vw, 96px) 0; background-color: var(--velit-dark); color: var(--velit-on-dark); }
.or-hosp-hero h1 { font-family: var(--or-font-display); color: var(--velit-on-dark); margin: .5rem 0 0; font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 400; }
.or-hosp-hero .or-tagline { max-width: 660px; margin: 1.25rem auto 0; color: var(--velit-on-dark-2); line-height: 1.7; }
.or-hosp-hero .or-hero-logo { max-height: 90px; max-width: 280px; margin: 0 auto 1.75rem; display: block; }

.or-section { padding: var(--or-sec-y) 0; }
.or-grid-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3.5rem; align-items: center; }
@media (max-width: 800px) { .or-grid-2 { grid-template-columns: 1fr; gap: 2rem; } }
.or-section h2 { font-family: var(--or-font-display); font-size: clamp(1.9rem, 3.4vw, 2.8rem); margin: .3rem 0 1.5rem; }
.or-prose { line-height: 1.85; }
.or-hosp-page .is-light .or-prose { color: var(--velit-on-light-2); }
.or-hosp-page .is-dark  .or-prose { color: var(--velit-on-dark-2); }
.or-prose p { margin-bottom: 1rem; }
.or-quote { font-family: var(--or-font-display); font-style: italic; font-size: clamp(1.15rem, 2.6vw, 1.4rem); line-height: 1.55; border-left: 2px solid var(--velit-gold); padding: 1.25rem clamp(1.25rem, 4vw, 2rem); background: var(--velit-light-2); border-radius: 0 4px 4px 0; color: var(--velit-on-light); }
.or-hosp-page .is-dark .or-quote { background: var(--velit-dark-3); color: var(--velit-on-dark); }

/* Pilares / valores — cards adaptativos ao contexto */
.or-pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 900px) { .or-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 500px) { .or-pillars { grid-template-columns: 1fr; } }
.or-pillar { text-align: center; padding: 2.25rem 1.5rem; border-radius: 4px; transition: transform .3s ease, border-color .3s ease, background-color .3s ease; }
.or-pillar h3 { font-family: var(--or-font-display); font-size: 1.35rem; margin: .5rem 0; }
.or-pillar p { font-size: .92rem; margin: 0; line-height: 1.65; }
.or-hosp-page .is-dark .or-pillar { background: rgba(255,255,255,.02); border: 1px solid var(--velit-border-dark); }
.or-hosp-page .is-dark .or-pillar:hover { border-color: var(--velit-gold); background: rgba(201,168,76,.05); transform: translateY(-4px); }
.or-hosp-page .is-dark .or-pillar h3 { color: var(--velit-on-dark); }
.or-hosp-page .is-dark .or-pillar p  { color: var(--velit-on-dark-2); }
.or-hosp-page .is-light .or-pillar { background: var(--velit-light-2); border: 1px solid var(--velit-border-light); }
.or-hosp-page .is-light .or-pillar:hover { border-color: var(--velit-gold); transform: translateY(-4px); box-shadow: 0 12px 24px rgba(10,10,10,.08); }
.or-hosp-page .is-light .or-pillar h3 { color: var(--velit-on-light); }
.or-hosp-page .is-light .or-pillar p  { color: var(--velit-on-light-2); }

/* Stats (indicadores) */
/* Indicadores em grade 2×2 (2 colunas × 2 linhas) — igual ao original */
.or-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 2.5rem; text-align: center; }
@media (max-width: 500px) { .or-stats { grid-template-columns: 1fr; } }
.or-stat-num { display: block; font-family: var(--or-font-display); font-size: clamp(2rem, 5vw, 2.6rem); color: var(--velit-gold); line-height: 1; }
.or-stat-label { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; color: var(--velit-on-light-2); }
.or-hosp-page .is-dark .or-stat-label { color: var(--velit-on-dark-2); }

/* Cards de unidade (sobre/contato) — sempre DARK (#111) */
.or-unit-mini-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; max-width: 860px; margin: 0 auto; }
@media (max-width: 768px) { .or-unit-mini-grid { grid-template-columns: 1fr; } }
.or-unit-mini {
  min-width: 0;
  text-align: center; padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 4vw, 2rem); background: var(--velit-dark-2);
  border: 1px solid var(--velit-border-dark); border-radius: 4px; text-decoration: none;
  display: flex; flex-direction: column; align-items: center; gap: .9rem;
  transition: border-color .3s ease, transform .3s ease, background-color .3s ease;
}
.or-unit-mini:hover { border-color: var(--velit-gold); background: var(--velit-dark-3); transform: translateY(-4px); text-decoration: none; }
.or-unit-mini img { max-height: 72px; max-width: 62%; object-fit: contain; }
.or-unit-mini .or-unit-nome { font-family: var(--or-font-display); font-size: clamp(1.3rem, 3vw, 1.5rem); color: var(--velit-on-dark); }
.or-unit-mini .addr { color: var(--velit-on-dark-2); font-size: .92rem; margin: 0; line-height: 1.5; }
.or-unit-mini .or-maps-link { font-family: var(--or-font-ui); font-size: .74rem; text-transform: uppercase; letter-spacing: .18em; color: var(--velit-gold); text-decoration: none; padding-bottom: 3px; border-bottom: 1px solid var(--velit-gold); }
.or-unit-mini .or-us-opt-name { color: var(--velit-gold); }

/* FAQ acordeão nativo — LIGHT */
.or-faq-list { max-width: 800px; margin: 0 auto; list-style: none; padding: 0; }
.or-faq-item { border-bottom: 1px solid var(--velit-border-light); }
.or-faq-item summary { cursor: pointer; padding: 1.25rem 0; font-family: var(--or-font-display); font-size: 1.2rem; color: var(--velit-on-light); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.or-faq-item summary::-webkit-details-marker { display: none; }
.or-faq-item summary::after { content: '+'; color: var(--velit-gold); font-size: 1.5rem; line-height: 1; flex-shrink: 0; }
.or-faq-item[open] summary { color: var(--velit-gold); }
.or-faq-item[open] summary::after { content: '\2212'; }
.or-faq-answer { padding: 0 0 1.25rem; color: var(--velit-on-light-2); line-height: 1.75; max-width: 92%; }
.or-hosp-page .is-dark .or-faq-item { border-bottom-color: var(--velit-border-dark); }
.or-hosp-page .is-dark .or-faq-item summary { color: var(--velit-on-dark); }
.or-hosp-page .is-dark .or-faq-answer { color: var(--velit-on-dark-2); }

/* Redes sociais (contato) */
.or-social-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.or-social-link { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--velit-border-light); color: var(--velit-on-light-2); text-decoration: none; transition: border-color .25s, color .25s, background-color .25s; }
.or-social-link:hover { border-color: var(--velit-gold); color: var(--velit-gold); }
.or-social-link .or-icon { width: 20px; height: 20px; }

/* ==========================================================================
   Botão flutuante WhatsApp — pílula (o estilo base vem inline no footer.php;
   aqui só refinamentos de tipografia/hover coerentes com o tema)
   ========================================================================== */
.or-wa-fab { font-family: var(--or-font-ui); }
.or-wa-fab:hover { background-color: #1ebe57 !important; transform: translateY(-2px); }
.or-wa-fab span { white-space: nowrap; }

/* ==========================================================================
   Footer minimalista (footer.php, $footerMinimo) — DARK, centralizado
   ========================================================================== */
#footer.or-footer-min {
  background: var(--velit-dark);
  border-top: 1px solid var(--velit-border-dark);
  padding: 56px 0 40px;
  text-align: center;
  color: var(--velit-on-dark-2);
}
.or-footer-min .or-footer-logo { display: block; margin: 0 auto 1rem; width: fit-content; }
.or-footer-min .or-footer-logo img { max-height: 52px; width: auto; }
.or-footer-min .or-footer-brand { font-family: var(--or-font-display); font-size: 1.6rem; color: var(--velit-on-dark); text-decoration: none; display: inline-block; margin-bottom: 1rem; }
.or-footer-min .or-footer-addr { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .12em; font-size: .74rem; color: var(--velit-on-dark-2); margin: 0 0 1rem; }
.or-footer-min .or-footer-grouplink { display: inline-block; font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .2em; font-size: .76rem; color: var(--velit-gold); text-decoration: none; padding-bottom: 4px; border-bottom: 1px solid var(--velit-gold); }
/* "Sobre o grupo" + copyright na mesma linha (centralizados; empilham no mobile) */
.or-footer-min .or-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.25rem; }
.or-footer-min .or-footer-social { display: flex; justify-content: center; gap: 1.25rem; margin-bottom: 1.5rem; }
.or-footer-min .or-footer-social a { color: var(--velit-on-dark-2); display: inline-flex; transition: color .25s ease; }
.or-footer-min .or-footer-social a:hover { color: var(--velit-gold); }
.or-footer-min .or-footer-social .or-icon { width: 22px; height: 22px; }
.or-footer-min .or-footer-copy { font-family: var(--or-font-ui); text-transform: uppercase; letter-spacing: .12em; font-size: .74rem; color: var(--velit-on-dark-3); margin: 0; }
.or-footer-min .or-footer-credit { display: inline-flex; align-items: center; gap: .4rem; margin-top: .9rem; font-size: .68rem; letter-spacing: .04em; color: var(--velit-on-dark-3); opacity: .6; text-decoration: none; transition: opacity .2s; }
.or-footer-min .or-footer-credit:hover { opacity: 1; }
.or-footer-min .or-footer-credit img { height: 16px; width: auto; }

/* ==========================================================================
   Responsividade — ajustes de mobile/tablet (chrome + componentes).
   Emitido só sob Hospitalidade::ativo() → não vaza p/ clientes non-lodging.
   Breakpoints canônicos: 1024 / 768 / 480 (o menu do Canvas troca em 992).
   ========================================================================== */

/* Home fluida: cabeçalho e cards mais compactos no phone (rola se precisar). */
@media (max-width: 700px) {
  .or-hosp-home-hero { margin-bottom: clamp(1.5rem, 6vw, 2.75rem); }
  .or-unit-card { min-height: 200px; }
}

/* Tarifas: padding de célula menor no phone (o wrapper .or-table-wrap já garante scroll-x). */
@media (max-width: 480px) {
  .or-price-table thead th, .or-price-table td { padding: 10px 12px; }
  .or-price-table td.valor { font-size: 1.05rem; }
}

/* Switcher de unidade: no menu acordeão (< 992px) o painel vira IN-FLOW e empurra os itens
   abaixo, em vez de sobrepor como dropdown absoluto (min-width:260px; position:absolute). */
@media (max-width: 991px) {
  .or-switcher-item { display: block; width: 100%; }
  .or-us-btn { width: 100%; padding: .5rem 0; justify-content: flex-start; }
  .or-us-panel {
    position: static; min-width: 0; width: 100%; box-shadow: none; margin-top: .5rem;
    display: none; opacity: 1; visibility: visible; transform: none;
  }
  .or-unit-switcher[data-open="1"] .or-us-panel { display: block; }
  /* menu acordeão com rolagem própria — não estoura a viewport com muitas unidades */
  body.or-hosp-page .menu-container { max-height: 74vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
}

/* Header compacto no mobile (a barra de 100px do Canvas come muito da tela). */
@media (max-width: 768px) {
  body.or-hosp-page { --cnvs-header-height: 76px; }
}

/* WhatsApp FAB: no phone vira CÍRCULO só-ícone (não cobre CTAs/conteúdo ao rolar).
   O estilo base é inline no footer.php → precisa de !important para sobrescrever. */
@media (max-width: 480px) {
  .or-wa-fab {
    width: 56px !important; height: 56px !important; padding: 0 !important;
    border-radius: 50% !important; gap: 0 !important;
  }
  .or-wa-fab span { display: none !important; }
  .or-wa-fab i { font-size: 26px !important; }
}
