/* =========================================================
   RECANTO DAS VIDEIRAS — style.css
   Paleta: verde-oliva escuro, creme, dourado suave
   ========================================================= */

:root{
  --rv-green-900:#1d3f36;   /* footer / testemunhos - mais escuro (verde profundo real da marca) */
  --rv-green-800:#49a88d;   /* verde principal (botões, ícones) */
  --rv-green-700:#397f6b;
  --rv-green-600:#52a08a;
  --rv-green-500:#9bdacc;
  --rv-cream:#f7f3ea;       /* fundo claro geral */
  --rv-cream-2:#efe9db;     /* cards / faixa de destaque */
  --rv-white:#ffffff;
  --rv-gold:#c9a24b;        /* detalhes dourados / estrelas */
  --rv-text-dark:#2b2b22;
  --rv-text-muted:#6b6a5c;

  --font-display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --font-body: 'Jost', 'Poppins', sans-serif;
}

html{ scroll-behavior:smooth; }

body{
  font-family: var(--font-body);
  color: var(--rv-text-dark);
  background: var(--rv-cream);
  font-size:16px;
  line-height:1.6;
}

h1,h2,h3,.font-display{
  font-family: var(--font-display);
  font-weight:600;
  color: var(--rv-text-dark);
  letter-spacing:.2px;
}

.eyebrow{
  font-family: var(--font-body);
  font-size:.72rem;
  letter-spacing:.18em;
  font-weight:600;
  text-transform:uppercase;
  color: var(--rv-green-700);
}

.eyebrow.on-dark{ color: var(--rv-gold); }

a{ text-decoration:none; }

.text-muted-rv{ color: var(--rv-text-muted); }

/* ---------- Buttons ---------- */
.btn-rv-solid{
  background: var(--rv-green-800);
  color:#fff;
  border:1px solid var(--rv-green-800);
  padding:.85rem 1.8rem;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  border-radius:2px;
  transition:.25s ease;
}
.btn-rv-solid:hover{
  background: var(--rv-green-700);
  color:#fff;
  border-color:var(--rv-green-700);
}

.btn-rv-outline{
  background: transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.75);
  padding:.85rem 1.8rem;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  border-radius:2px;
  transition:.25s ease;
}
.btn-rv-outline:hover{
  background: rgba(255,255,255,.12);
  color:#fff;
}

.btn-rv-outline-dark{
  background: transparent;
  color: var(--rv-green-800);
  border:1px solid var(--rv-green-800);
  padding:.85rem 1.8rem;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  border-radius:2px;
  transition:.25s ease;
}
.btn-rv-outline-dark:hover{
  background: var(--rv-green-800);
  color:#fff;
}

.link-arrow{
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:600;
  color: var(--rv-green-800);
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.link-arrow i{ transition: transform .2s ease; }
.link-arrow:hover{ color: var(--rv-green-600); }
.link-arrow:hover i{ transform: translateX(4px); }

.link-arrow.on-dark{ color:#fff; }

/* =========================================================
   NAVBAR
   ========================================================= */
.rv-navbar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:1030;
  padding:1.1rem 0;
  transition: background .35s ease, box-shadow .35s ease, padding .3s ease;
  background: linear-gradient(to bottom, rgba(0,0,0,.45), rgba(0,0,0,0));
}
.rv-navbar.is-scrolled{
  background: var(--rv-cream);
  box-shadow: 0 2px 18px rgba(0,0,0,.08);
  padding:.6rem 0;
}

.rv-navbar .navbar-brand img{
  height:46px;
  width:auto;
  max-width:none;
  transition:.3s;
}

/* Logo clara (logob.png) enquanto o fundo da navbar não aparece;
   logo colorida (logo.png) quando o fundo aparece (rolou a página
   ou a navbar é do tipo clara/fixa) */
.rv-navbar .navbar-brand .logo-scrolled{ display:none; }
.rv-navbar.is-scrolled .navbar-brand .logo-scrolled{ display:inline-block; }
.rv-navbar.is-scrolled .navbar-brand .logo-transparent{ display:none; }

/* Páginas sem hero (navbar sempre com fundo visível): sempre logo colorida */
.rv-navbar.rv-navbar-light .navbar-brand .logo-transparent{ display:none; }
.rv-navbar.rv-navbar-light .navbar-brand .logo-scrolled{ display:inline-block; }
.rv-navbar.is-scrolled .navbar-brand img{ height:38px; }

.rv-nav-link{
  font-size:.74rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:600;
  color:#fff !important;
  margin:0 .7rem;
  position:relative;
  padding:.4rem 0 !important;
}
/* Menu mobile (offcanvas): fundo sempre claro, então o texto
   precisa ficar escuro aqui, mesmo com o !important branco
   acima (usamos um seletor mais específico pra vencer o empate) */
.offcanvas .rv-nav-link{ color: var(--rv-text-dark) !important; }
.offcanvas .rv-nav-link::after{ background: var(--rv-green-800); }
.rv-nav-link::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0; height:1px;
  background: var(--rv-gold);
  transition:.25s;
}
.rv-nav-link:hover::after{ width:100%; }

.rv-navbar.is-scrolled .rv-nav-link{ color: var(--rv-text-dark) !important; }
.rv-navbar.is-scrolled .rv-nav-link::after{ background: var(--rv-green-800); }

.rv-navbar .btn-rv-solid{ margin-left:1rem; }

.rv-burger{
  color:#fff;
  font-size:1.3rem;
  border:none;
  background:none;
}
.rv-navbar.is-scrolled .rv-burger{ color: var(--rv-text-dark); }

/* =========================================================
   HERO
   ========================================================= */
.rv-hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  color:#fff;
  overflow:hidden;
}
.rv-hero-bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  z-index:0;
}
.rv-hero::before{
  content:"";
  position:absolute; inset:0;
  z-index:1;
  background: linear-gradient(180deg, rgba(20,22,10,.55) 0%, rgba(20,22,10,.15) 35%, rgba(20,22,10,.75) 100%);
}
.rv-hero-content{
  position:relative;
  z-index:2;
  padding-bottom:6.5rem;
  padding-top:9rem;
}
.rv-hero h1{
  color:#fff;
  font-size:3.4rem;
  line-height:1.08;
  max-width:640px;
  margin-bottom:1.2rem;
}
.rv-hero p{
  max-width:480px;
  color: rgba(255,255,255,.88);
  margin-bottom:2rem;
}
.rv-hero .eyebrow{
  color:#fff;
  margin-bottom:1rem;
  display:block;
}

/* =========================================================
   FEATURES STRIP (cards flutuantes sobre o hero)
   ========================================================= */
.rv-features{
  position:relative;
  z-index:3;
  margin-top:-4.5rem;
  background: var(--rv-cream-2);
  border-radius:6px;
  box-shadow: 0 20px 45px rgba(30,30,10,.12);
}
.rv-feature-item{
  padding:2rem 1.5rem;
  border-right:1px solid rgba(0,0,0,.07);
  height:100%;
}
.rv-feature-item:last-child{ border-right:none; }
.rv-feature-icon{
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background: var(--rv-green-800);
  color:#fff;
  font-size:1.25rem;
  margin-bottom:1.1rem;
}
.rv-feature-icon svg{ width:1.35rem; height:1.35rem; fill:currentColor; flex-shrink:0; }
.rv-exp-badge svg{ width:1.05rem; height:1.05rem; fill:currentColor; }
.rv-cta-icon svg{ width:2.2rem; height:2.2rem; fill:currentColor; }
.rv-feature-item h6{
  font-family: var(--font-body);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:.5rem;
}
.rv-feature-item p{
  font-size:.84rem;
  color: var(--rv-text-muted);
  margin-bottom:.9rem;
  min-height:42px;
}

/* =========================================================
   EXPERIÊNCIAS - GRID DE CARDS
   ========================================================= */
.rv-section{ padding:6.5rem 0; }
.rv-section-tight{ padding: 4.5rem 0; }

.rv-exp-card{
  position:relative;
  overflow:hidden;
  border-radius:4px;
  display:block;
  aspect-ratio: 3/4;
  color:#fff;
}
.rv-exp-card img{
  width:100%; height:100%;
  object-fit:cover;
  transition: transform .6s ease;
}
.rv-exp-card:hover img{ transform: scale(1.08); }
.rv-exp-card::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(20,20,10,0) 40%, rgba(15,15,8,.85) 100%);
}
.rv-exp-badge{
  position:absolute; top:14px; left:14px; z-index:2;
  width:38px; height:38px;
  border-radius:50%;
  background: rgba(58,66,34,.85);
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  font-size:1rem;
}
.rv-exp-caption{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:1.1rem 1rem;
}
.rv-exp-caption .cat{
  font-size:.65rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  color: var(--rv-gold);
  display:block;
  margin-bottom:.35rem;
}
.rv-exp-caption-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.6rem;
}
.rv-exp-caption p{
  font-size:.8rem;
  margin:0;
  color: rgba(255,255,255,.85);
  min-width:0;
  flex:1 1 auto;
}
.rv-exp-arrow{
  flex:0 0 auto;
  z-index:2;
  width:32px; height:32px;
  border-radius:50%;
  background: var(--rv-green-800);
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  font-size:.85rem;
}

/* =========================================================
   NOSSA HISTÓRIA
   ========================================================= */
.rv-historia{
  background: var(--rv-green-900);
  color:#fff;
}
.rv-historia h2{ color:#fff; }
.rv-historia p{ color: rgba(255,255,255,.75); }
.rv-historia-text{
  padding:5rem 3.5rem 5rem 0;
}
.rv-historia-media{
  position:relative;
  min-height:420px;
  background-size:cover;
  background-position:center;
}
.rv-play-btn{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:70px; height:70px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.8);
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  font-size:1.3rem;
  background: rgba(0,0,0,.25);
  cursor:pointer;
  transition:.25s;
}
.rv-play-btn:hover{ background: rgba(0,0,0,.45); }
.rv-play-label{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; color:#fff;
}

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.rv-testimonials{
  background: var(--rv-cream);
  color: var(--rv-text-dark);
  padding:5.5rem 0;
}
.rv-testimonials h2{ color: var(--rv-text-dark); }
.rv-quote-card{
  background: transparent;
  border:1px solid rgba(0,0,0,.14);
  border-radius:4px;
  padding:2rem 1.8rem;
  height:100%;
}
.rv-quote-card .quote-mark{
  font-family: var(--font-display);
  font-size:2.6rem;
  color: var(--rv-gold);
  line-height:1;
  margin-bottom:.5rem;
  display:block;
}
.rv-quote-card p{
  font-size:.92rem;
  color: var(--rv-text-dark);
  min-height:96px;
}
.rv-stars{ color: var(--rv-gold); font-size:.8rem; margin-bottom:.6rem; }
.rv-quote-author{
  font-size:.78rem;
  letter-spacing:.03em;
  color: var(--rv-text-muted);
  margin-top:.8rem;
}
.rv-carousel-arrow{
  width:42px; height:42px;
  border-radius:50%;
  border:1px solid rgba(0,0,0,.18);
  display:flex; align-items:center; justify-content:center;
  color: var(--rv-text-dark);
  background:transparent;
  transition:.2s;
}
.rv-carousel-arrow:hover{ background: rgba(0,0,0,.06); }

/* =========================================================
   CTA STRIP
   ========================================================= */
.rv-cta-strip{
  background: var(--rv-cream-2);
  padding:2.8rem 0;
}
.rv-cta-strip h4{ margin-bottom:.2rem; }

/* =========================================================
   FOOTER
   ========================================================= */
.rv-footer{
  background: var(--rv-green-900);
  color: rgba(255,255,255,.75);
  padding:4rem 0 1.5rem;
  position:relative;
  overflow:hidden;
}
.rv-footer h6{
  color:#fff;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:1rem;
}
.rv-footer a{ color: rgba(255,255,255,.75); }
.rv-footer a:hover{ color:#fff; }
.rv-footer p{ font-size:.88rem; margin-bottom:.35rem; }
.rv-footer .footer-logo img{
  height:52px;
  width:auto;
  max-width:none;
  margin-bottom:.8rem;
}
.rv-footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:2.5rem;
  padding-top:1.3rem;
  font-size:.78rem;
  color: rgba(255,255,255,.5);
}
.rv-social-icon{
  width:36px; height:36px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  display:inline-flex; align-items:center; justify-content:center;
  margin-right:.5rem;
}
.rv-social-icon:hover{ background: rgba(255,255,255,.1); }

/* =========================================================
   PÁGINAS INTERNAS (Eventos, Hospedagem, etc.)
   ========================================================= */

/* --- Navbar sólida (sem efeito de transparência sobre hero) --- */
.rv-navbar.rv-navbar-static{
  position:relative;
  background: var(--rv-green-900);
  padding:.9rem 0;
}
.rv-navbar.rv-navbar-static .rv-nav-link{ color:#fff !important; }
.rv-navbar.rv-navbar-static .rv-nav-link::after{ background: var(--rv-gold); }
.rv-navbar.rv-navbar-static .rv-nav-link.active{ color:#fff !important; }
.rv-navbar.rv-navbar-static .rv-nav-link.active::after{ width:100%; }
.rv-navbar.rv-navbar-static .rv-burger{ color:#fff; }

.btn-rv-gold{
  background: var(--rv-gold);
  color: var(--rv-green-900);
  border:1px solid var(--rv-gold);
  padding:.85rem 1.8rem;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  border-radius:2px;
  transition:.25s ease;
}
.btn-rv-gold:hover{
  background:#b8913d;
  border-color:#b8913d;
  color:#fff;
}

/* --- Hero dividido (texto + imagem) --- */
.rv-page-hero{ background: var(--rv-cream); }
.rv-page-hero-text{ max-width:560px; padding:4.5rem 1.5rem; }
.rv-page-hero-text h1{
  font-size:2.7rem;
  line-height:1.12;
  margin:1rem 0 1.3rem;
}
.rv-page-hero-text p{ color: var(--rv-text-muted); margin-bottom:2rem; max-width:460px; }
.rv-page-hero-img{
  min-height:360px;
  background-size:cover;
  background-position:center;
}
@media (min-width: 992px){
  .rv-page-hero-text{ padding:5.5rem 2rem 5.5rem 5%; }
  .rv-page-hero-img{ min-height:620px; }
}

/* --- Faixa de ícones em linha (outline) --- */
.rv-icon-line-strip{
  background: var(--rv-cream);
  padding:3rem 0;
  border-top:1px solid rgba(0,0,0,.06);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.rv-icon-line-item{ text-align:center; padding:.5rem 1rem; }
.rv-icon-line{
  width:56px; height:56px;
  border-radius:50%;
  border:1px solid var(--rv-green-700);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto .9rem;
  color: var(--rv-green-800);
}
.rv-icon-line svg{ width:1.5rem; height:1.5rem; fill:none; stroke:currentColor; stroke-width:1.4; }
.rv-icon-line i{ font-size:1.3rem; }
.rv-icon-line-item p{
  font-size:.8rem;
  color: var(--rv-text-muted);
  margin:0;
  line-height:1.4;
}

/* --- Tipos de Eventos / cards com imagem no topo --- */
.rv-mini-divider{ width:46px; height:1px; background: var(--rv-green-700); margin:1.3rem 0; }

.rv-event-card{
  background:#fff;
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 3px 14px rgba(30,30,10,.06);
  height:100%;
}
.rv-event-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.rv-event-card-body{ padding:1.3rem 1.2rem 1.5rem; }
.rv-event-card-body h5{ font-size:1.15rem; margin-bottom:.5rem; }
.rv-event-card-body p{ font-size:.85rem; color: var(--rv-text-muted); margin-bottom:1rem; min-height:58px; }

/* --- Espaços que encantam (seção escura com scroller) --- */
.rv-spaces{ background: var(--rv-green-900); color:#fff; padding:5rem 0; position:relative; }
.rv-spaces-text{ max-width:380px; }
.rv-spaces-text h2{ color:#fff; }
.rv-spaces-text p{ color: rgba(255,255,255,.72); }

.rv-spaces-scroll-wrap{ position:relative; }
.rv-spaces-scroll{
  display:flex;
  gap:1rem;
  overflow-x:auto;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding-bottom:.3rem;
}
.rv-spaces-scroll::-webkit-scrollbar{ display:none; }
.rv-space-card{
  flex:0 0 240px;
  position:relative;
  border-radius:4px;
  overflow:hidden;
  aspect-ratio:3/4;
}
.rv-space-card img{ width:100%; height:100%; object-fit:cover; }
.rv-space-caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:1rem;
  background: linear-gradient(180deg, rgba(20,20,10,0) 45%, rgba(15,15,8,.85) 100%);
}
.rv-space-caption h6{
  font-family: var(--font-display);
  font-weight:600;
  font-size:.98rem;
  color:#fff;
  margin-bottom:.15rem;
}
.rv-space-caption p{ font-size:.72rem; margin:0; color: rgba(255,255,255,.75); }

.rv-scroll-btn{
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background: var(--rv-green-900);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  transition:.2s;
}
.rv-scroll-btn:hover{ background: rgba(255,255,255,.12); }

/* --- CTA escura (final da página) --- */
.rv-cta-dark{ background: var(--rv-green-800); color:#fff; padding:3.4rem 0; }
.rv-cta-dark h2{ color:#fff; font-size:1.9rem; margin-bottom:.4rem; }
.rv-cta-dark p{ color: rgba(255,255,255,.78); margin:0; max-width:480px; }

/* --- Coluna de navegação no rodapé (páginas internas) --- */
.rv-footer ul.rv-footer-nav{ list-style:none; padding:0; margin:0; }
.rv-footer ul.rv-footer-nav li{ margin-bottom:.5rem; }
.rv-footer ul.rv-footer-nav a{ font-size:.88rem; }

/* --- Faixa de ícones simples (reaproveita o círculo verde sólido do padrão da home) --- */
.rv-icon-row{ background: var(--rv-cream); padding:3.5rem 0; }
.rv-icon-row-item{ text-align:center; padding:.5rem 1rem; }
.rv-icon-row-item .rv-feature-icon{ margin:0 auto .9rem; }
.rv-icon-row-item p{
  font-size:.8rem;
  color: var(--rv-text-muted);
  margin:0;
  line-height:1.4;
}

/* --- Chip de valor (ícone + rótulo em caixinha) --- */
.rv-value-chip{
  display:flex;
  align-items:center;
  gap:.7rem;
  border:1px solid rgba(0,0,0,.08);
  border-radius:4px;
  padding:.8rem 1rem;
  background:#fff;
  height:100%;
}
.rv-value-chip .icon{
  width:34px; height:34px;
  border-radius:50%;
  background: var(--rv-cream-2);
  display:flex; align-items:center; justify-content:center;
  color: var(--rv-green-800);
  flex-shrink:0;
}
.rv-value-chip .icon svg{ width:1rem; height:1rem; fill:currentColor; }
.rv-value-chip .icon i{ font-size:.95rem; }
.rv-value-chip span.label{
  font-size:.83rem;
  font-weight:600;
  color: var(--rv-text-dark);
  line-height:1.25;
}

/* --- Card escuro de destaque (ex.: "Venha viver essa experiência") --- */
.rv-dark-card{
  background: var(--rv-green-900);
  color:#fff;
  border-radius:6px;
  padding:2rem;
  height:100%;
  display:flex;
  flex-direction:column;
}
.rv-dark-card h5{
  color:#fff;
  font-family: var(--font-display);
  font-weight:600;
  font-size:1.3rem;
  margin:.6rem 0 1rem;
}
.rv-dark-card p{
  color: rgba(255,255,255,.78);
  margin-bottom:1.4rem;
  font-size:.9rem;
  flex-grow:1;
}

/* --- Imagem de coluna (seções divididas texto/imagem) --- */
.rv-col-img{
  width:100%; height:100%;
  min-height:280px;
  object-fit:cover;
  border-radius:6px;
  display:block;
}

/* --- Crédito de foto (selo discreto no canto da imagem) --- */
.rv-photo-credit-wrap{ position:relative; }
.rv-photo-credit{
  position:absolute;
  right:.6rem;
  bottom:.6rem;
  z-index:3;
  background: rgba(15,15,8,.55);
  color: rgba(255,255,255,.92);
  font-size:.66rem;
  letter-spacing:.02em;
  padding:.25rem .55rem;
  border-radius:3px;
  line-height:1.3;
  pointer-events:none;
}
.rv-photo-credit a{
  color: rgba(255,255,255,.92);
  text-decoration:underline;
  pointer-events:auto;
}

/* =========================================================
   PÁGINAS SEM HERO EM IMAGEM (ex.: Hospedagem)
   ========================================================= */

/* Navbar sempre clara (para páginas que não abrem com uma
   imagem cheia por baixo, então não faz sentido o efeito
   de transparência) */
.rv-navbar.rv-navbar-light{
  background: var(--rv-cream) !important;
  box-shadow: 0 2px 14px rgba(0,0,0,.06);
  padding:.7rem 0;
}
.rv-navbar.rv-navbar-light .navbar-brand img{ height:40px; }
.rv-navbar.rv-navbar-light .rv-nav-link{ color: var(--rv-text-dark) !important; }
.rv-navbar.rv-navbar-light .rv-nav-link::after{ background: var(--rv-green-800); }
.rv-navbar.rv-navbar-light .rv-nav-link.active::after{ width:100%; }
.rv-navbar.rv-navbar-light .rv-burger{ color: var(--rv-text-dark); }

/* Compensa a altura da navbar fixa quando não há hero */
.rv-page-offset{ padding-top:6.5rem; }

/* Intro centralizada (título + parágrafo) */
.rv-intro-centered{ max-width:640px; margin:0 auto; text-align:center; }
.rv-intro-centered .eyebrow{ display:block; margin-bottom:.6rem; }
.rv-intro-centered h1,
.rv-intro-centered h2{ font-size:2.2rem; line-height:1.2; }
.rv-intro-centered .rv-mini-divider{ margin:1.4rem auto; }
.rv-intro-centered p{ color: var(--rv-text-muted); }

/* --- Cards de acomodação (ex.: Studios / Casa) --- */
.rv-stay-card{
  background:#fff;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 4px 18px rgba(30,30,10,.07);
  height:100%;
}
.rv-stay-card-img{ position:relative; }
.rv-stay-card-img img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.rv-stay-badge{
  position:absolute;
  left:1.5rem; bottom:-26px;
  width:52px; height:52px;
  border-radius:50%;
  background: var(--rv-green-800);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  border:3px solid var(--rv-cream);
  font-size:1.3rem;
}
.rv-stay-card-body{ padding:2.4rem 1.6rem 1.8rem; }
.rv-stay-card-body .cat{
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color: var(--rv-green-700);
}
.rv-stay-card-body h3{ font-size:1.6rem; margin:.35rem 0 1.1rem; }

.rv-stay-list{ list-style:none; padding:0; margin:0 0 1.4rem; }
.rv-stay-list li{
  display:flex; align-items:center; gap:.6rem;
  font-size:.85rem;
  color: var(--rv-text-dark);
  padding:.35rem 0;
}
.rv-stay-list li i{ color: var(--rv-green-700); font-size:.95rem; }

.rv-stay-tags{
  display:flex; flex-wrap:wrap; gap:.6rem 1.2rem;
  border-top:1px solid rgba(0,0,0,.07);
  padding-top:1.2rem;
  margin-bottom:1.6rem;
}
.rv-stay-tags span{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.78rem;
  color: var(--rv-text-muted);
}
.rv-stay-tags i{ color: var(--rv-green-700); }

/* --- Banner interno (imagem com texto, dentro do container) --- */
.rv-banner{
  position:relative;
  border-radius:8px;
  overflow:hidden;
  min-height:420px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
  color:#fff;
}
.rv-banner::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(15,15,8,.82) 0%, rgba(15,15,8,.35) 55%, rgba(15,15,8,.05) 100%);
}
.rv-banner-content{ position:relative; z-index:2; padding:2.5rem; max-width:480px; }
.rv-banner-content .eyebrow{ color: var(--rv-gold); }
.rv-banner-content h2{ color:#fff; font-size:2rem; margin:.7rem 0 1rem; }
.rv-banner-content p{ color: rgba(255,255,255,.85); margin-bottom:1.6rem; }

/* --- Selo / distintivo no rodapé --- */
.rv-footer-badge{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50px;
  padding:.5rem 1rem .5rem .5rem;
}
.rv-footer-badge .icon{
  width:34px; height:34px;
  border-radius:50%;
  background: rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.rv-footer-badge span.txt{ font-size:.7rem; line-height:1.2; color: rgba(255,255,255,.75); }

/* --- Cards de post (Novidades) --- */
.rv-post-card{
  background:#fff;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 3px 14px rgba(30,30,10,.06);
  height:100%;
  display:flex;
  flex-direction:column;
}
.rv-post-card img{ width:100%; aspect-ratio:16/11; object-fit:cover; display:block; }
.rv-post-card-body{ padding:1.4rem 1.3rem 1.6rem; display:flex; flex-direction:column; flex-grow:1; }
.rv-post-date{
  font-size:.7rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color: var(--rv-green-700);
  font-weight:700;
  margin-bottom:.5rem;
}
.rv-post-card-body h3{ font-size:1.2rem; margin-bottom:.6rem; }
.rv-post-card-body p{ font-size:.86rem; color: var(--rv-text-muted); margin-bottom:1rem; flex-grow:1; }
.rv-post-tags{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1rem; }
.rv-post-tags span{
  font-size:.68rem;
  color: var(--rv-green-800);
  background: var(--rv-cream-2);
  border-radius:20px;
  padding:.2rem .65rem;
}
.rv-post-featured{
  background:#fff;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 6px 24px rgba(30,30,10,.08);
}
.rv-post-featured img{ width:100%; height:100%; object-fit:cover; min-height:260px; display:block; }
.rv-post-featured-body{ padding:2rem; display:flex; flex-direction:column; justify-content:center; height:100%; }
.rv-post-featured-tag{
  display:inline-block;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  color:#fff;
  background: var(--rv-green-800);
  border-radius:20px;
  padding:.3rem .8rem;
  margin-bottom:.9rem;
  width:fit-content;
}

/* --- Lista de metodologia (ex.: Ensino Ecológico) --- */
.rv-method-item{
  display:flex; gap:1rem;
  padding:1.2rem 0;
  border-bottom:1px solid rgba(0,0,0,.07);
}
.rv-method-item:last-child{ border-bottom:none; }
.rv-method-num{
  font-family: var(--font-display);
  font-size:1.6rem;
  font-weight:600;
  color: var(--rv-green-700);
  flex-shrink:0;
  width:44px;
}
.rv-method-item h5{ font-size:1.05rem; margin-bottom:.3rem; }
.rv-method-item p{ font-size:.86rem; color: var(--rv-text-muted); margin:0; }

/* --- Nota de fonte externa --- */
.rv-source-note{
  font-size:.78rem;
  color: var(--rv-text-muted);
  border-left:2px solid var(--rv-green-700);
  padding-left:.9rem;
}

/* --- Alertas (formulários) --- */
.rv-alert{
  border-radius:4px;
  padding:.8rem 1rem;
  font-size:.88rem;
  margin-bottom:1.2rem;
}
.rv-alert.erro{ background:#fbeaea; color:#8a2a2a; border:1px solid #eccaca; }
.rv-alert.sucesso{ background:#e9f5ef; color: var(--rv-green-800); border:1px solid #cfe9de; }

/* --- Bloco assinatura "RE / CAN / TO" (página Sobre) --- */
.rv-word-block{
  padding:1.5rem 1.5rem 0;
  border-left:1px solid rgba(255,255,255,.12);
  height:100%;
}
.rv-word-block:first-child{ border-left:none; padding-left:0; }
.rv-word-block .syllable{
  font-family: var(--font-display);
  font-weight:700;
  font-size:3.6rem;
  line-height:1;
  color:#fff;
  display:block;
}
.rv-word-block .tagline{
  font-style:italic;
  color: var(--rv-gold);
  font-size:.95rem;
  display:block;
  margin:.6rem 0 1rem;
}
.rv-word-block p{
  color: rgba(255,255,255,.75);
  font-size:.9rem;
  margin:0;
}

/* --- Página de Contato --- */
.rv-contact-card{
  background:#fff;
  border-radius:6px;
  padding:2.2rem;
  box-shadow:0 4px 18px rgba(30,30,10,.06);
}
.rv-contact-card.h-100{ height:100%; }
.rv-contact-card h5{ font-size:1.2rem; margin-bottom:1.2rem; }

.rv-form-label{
  font-size:.75rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:600;
  color: var(--rv-text-dark);
  margin-bottom:.4rem;
}
.rv-form-control{
  border:1px solid rgba(0,0,0,.14);
  border-radius:3px;
  padding:.7rem .9rem;
  font-size:.9rem;
  background:#fff;
}
.rv-form-control:focus{
  border-color: var(--rv-green-700);
  box-shadow:0 0 0 .2rem rgba(58,66,34,.12);
}

.rv-contact-info-item{
  display:flex;
  gap:.9rem;
  padding:1rem 0;
  border-bottom:1px solid rgba(0,0,0,.07);
}
.rv-contact-info-item:last-of-type{ border-bottom:none; }
.rv-contact-info-item .icon{
  width:40px; height:40px;
  border-radius:50%;
  background: var(--rv-cream-2);
  color: var(--rv-green-800);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  font-size:1rem;
}
.rv-contact-info-item h6{
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  color: var(--rv-text-muted);
  margin-bottom:.2rem;
}
.rv-contact-info-item p, .rv-contact-info-item a{
  font-size:.9rem;
  margin:0;
  color: var(--rv-text-dark);
}

.rv-map-frame{
  width:100%;
  border:0;
  border-radius:6px;
  min-height:260px;
  display:block;
}

.rv-book-link{
  display:flex;
  align-items:center;
  gap:.6rem;
  border:1px solid rgba(0,0,0,.12);
  border-radius:4px;
  padding:.7rem 1rem;
  font-size:.85rem;
  font-weight:600;
  color: var(--rv-text-dark);
  transition:.2s;
}
.rv-book-link:hover{
  border-color: var(--rv-green-700);
  background: var(--rv-cream-2);
  color: var(--rv-text-dark);
}
.rv-book-link i{ color: var(--rv-green-700); font-size:1.05rem; }

/* =========================================================
   TRANSIÇÃO DE PÁGINA (fade)
   ========================================================= */
body{ opacity:0; }
body.rv-loaded{
  opacity:1;
  transition: opacity .45s ease;
}
body.rv-fade-out{
  opacity:0;
  transition: opacity .28s ease;
}
@media (prefers-reduced-motion: reduce){
  body{ opacity:1 !important; transition:none !important; }
}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width: 991.98px){
  .rv-hero h1{ font-size:2.5rem; }
  .rv-word-block{ border-left:none; padding-left:0; }
  .rv-features{ margin-top:2rem; border-radius:0; }
  .rv-feature-item{ border-right:none; border-bottom:1px solid rgba(0,0,0,.07); }
  .rv-historia-text{ padding:3.5rem 1.5rem; }
  .rv-historia-media{ min-height:320px; }
  .rv-page-hero-text h1{ font-size:2.2rem; }
  .rv-spaces-text{ max-width:none; margin-bottom:2rem; }
}

@media (max-width: 575.98px){
  .rv-hero{ min-height:88vh; }
  .rv-hero h1{ font-size:2rem; }
  .rv-section{ padding:4rem 0; }
  .rv-page-hero-text{ padding:3rem 1.25rem; }
}

/* Foco de teclado visível */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--rv-gold);
  outline-offset:2px;
}