/* ==========================================================================
   LIV STAY RESIDENCE — style.css  v3.0
   Estética: Rose Gold (#E9D5C3), Fundo Escuro nas seções Sobre/Lazer
   Fonte: Montserrat | Layout: Flexbox + Grid | Mobile-first
   ========================================================================== */

/* ========== RESET & VARIÁVEIS ========== */
:root {
  --color-primary: #E9D5C3;
  --color-primary-dark: #C9A98C;
  --color-dark: #1A1A1A;
  --color-dark-soft: #2D2D2D;
  --color-dark-section: #1D1D1B;
  --color-text: #333333;
  --color-text-light: #666666;
  --color-white: #FFFFFF;
  --color-bg: #FAFAF8;
  --color-bg-alt: #F5F0EB;
  --color-overlay: rgba(26,26,26,0.6);
  --font-main: 'Montserrat', sans-serif;
  --header-h: 80px;
  --transition: all 0.35s ease;
  --radius: 8px;
  --shadow: 0 4px 24px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 40px rgba(0,0,0,0.12);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; overflow-x:hidden; }
body { font-family:var(--font-main); color:var(--color-text); background:var(--color-white); line-height:1.7; overflow-x:hidden; max-width:100%; }
a { color:inherit; text-decoration:none; transition:var(--transition); }
img { max-width:100%; height:auto; display:block; }
ul { list-style:none; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }

/* ========== CONTAINER ========== */
.container { width:100%; max-width:1200px; margin:0 auto; padding:0 20px; }

/* ========== TIPOGRAFIA DE SEÇÃO ========== */
.section-eyebrow { text-transform:uppercase; letter-spacing:3px; font-size:0.75rem; font-weight:600; color:var(--color-primary-dark); margin-bottom:8px; text-align:center; }
.section-eyebrow--light { color:var(--color-primary); }
.section-title { font-size:clamp(1.5rem,3.5vw,2.4rem); font-weight:700; text-align:center; color:var(--color-dark); margin-bottom:16px; text-transform:uppercase; letter-spacing:1px; }
.section-subtitle { text-align:center; color:var(--color-text-light); max-width:700px; margin:0 auto 40px; font-size:0.95rem; }

/* ========== BOTÕES ========== */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 32px; border-radius:var(--radius); font-weight:600; font-size:0.9rem; text-transform:uppercase; letter-spacing:1px; transition:var(--transition); }
.btn--primary { background:var(--color-primary); color:var(--color-dark); }
.btn--primary:hover { background:var(--color-primary-dark); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--outline { border:2px solid var(--color-white); color:var(--color-white); }
.btn--outline:hover { background:var(--color-white); color:var(--color-dark); }
.btn--outline-light { border:2px solid var(--color-primary); color:var(--color-primary); }
.btn--outline-light:hover { background:var(--color-primary); color:var(--color-dark); }
.btn--whatsapp { background:#25D366; color:var(--color-white); }
.btn--whatsapp:hover { background:#1FB855; }
.btn--full { width:100%; }
.btn--lg { padding:18px 48px; font-size:1rem; }
.btn--sm { padding:10px 20px; font-size:0.8rem; }
.btn--download { background:var(--color-primary); color:var(--color-dark); gap:10px; }
.btn--download:hover { background:var(--color-primary-dark); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--download i { font-size:1.1rem; }

/* ========================================================================
   HEADER & MENU
   ======================================================================== */
.header { position:fixed; top:0; left:0; width:100%; z-index:1000; transition:var(--transition); padding:0 24px; box-sizing:border-box; overflow:visible; }
.header--solid { background:var(--color-dark); }
.header--scrolled { background:rgba(255,255,255,0.97); backdrop-filter:blur(10px); box-shadow:0 2px 20px rgba(0,0,0,0.08); }
.header__container { display:flex; align-items:center; justify-content:space-between; height:var(--header-h); max-width:1400px; margin:0 auto; }
.header__logo-img { height:45px; width:auto; transition:var(--transition); }
.header__logo-natural { display:none; }
.header--scrolled .header__logo-white { display:none; }
.header--scrolled .header__logo-natural { display:block; }
.header__menu { display:flex; align-items:center; gap:28px; }
.header__menu li a { font-size:0.85rem; font-weight:500; text-transform:uppercase; letter-spacing:1px; color:var(--color-white); position:relative; }
.header__menu li a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:2px; background:var(--color-primary); transition:var(--transition); }
.header__menu li a:hover { color:var(--color-primary); }
.header__menu li a:hover::after { width:100%; }
.header--scrolled .header__menu li a { color:var(--color-dark); }
.header--scrolled .header__menu li a:hover { color:var(--color-primary-dark); }
.header__cta-btn { background:var(--color-primary)!important; color:var(--color-dark)!important; padding:10px 20px!important; border-radius:var(--radius)!important; }
.header__cta-btn:hover { background:var(--color-primary-dark)!important; }
.header__cta-btn::after { display:none!important; }
.header__hamburger { display:none; flex-direction:column; gap:5px; padding:8px; }
.header__hamburger span { width:28px; height:2px; background:var(--color-white); transition:var(--transition); }
.header--scrolled .header__hamburger span { background:var(--color-dark); }
.header__hamburger.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.header__hamburger.active span:nth-child(2) { opacity:0; }
.header__hamburger.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* ========================================================================
   HERO SLIDER
   ======================================================================== */
.hero-slider { position:relative; width:100%; height:100vh; min-height:600px; overflow:hidden; }
.hero-slider__slide { position:absolute; top:0; left:0; width:100%; height:100%; opacity:0; transition:opacity 1s ease; }
.hero-slider__slide.active { opacity:1; z-index:1; }
.hero-slider__slide img { width:100%; height:100%; object-fit:cover; }
.hero-slider__overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,0.3),rgba(0,0,0,0.6)); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 20px; z-index:2; }
.hero-slider__tag { color:var(--color-primary); text-transform:uppercase; letter-spacing:3px; font-size:0.8rem; font-weight:600; margin-bottom:16px; }
.hero-slider__title { font-size:clamp(2rem,5vw,4rem); font-weight:700; color:var(--color-white); line-height:1.1; margin-bottom:12px; }
.hero-slider__title span { color:var(--color-primary); }
.hero-slider__subtitle { font-size:clamp(1rem,2vw,1.3rem); color:rgba(255,255,255,0.85); font-weight:300; font-style:italic; margin-bottom:20px; }
.hero-slider__specs { display:flex; align-items:center; gap:16px; flex-wrap:wrap; justify-content:center; margin-bottom:28px; color:var(--color-white); font-size:0.9rem; font-weight:500; }
.hero-slider__dot { width:6px; height:6px; border-radius:50%; background:var(--color-primary); }
.hero-slider__btns { display:flex; gap:16px; flex-wrap:wrap; justify-content:center; }
.hero-slider__arrow { position:absolute; top:50%; z-index:5; transform:translateY(-50%); background:rgba(0,0,0,0.3); color:var(--color-white); font-size:1.5rem; width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:var(--transition); }
.hero-slider__arrow:hover { background:var(--color-primary); color:var(--color-dark); }
.hero-slider__arrow--prev { left:20px; }
.hero-slider__arrow--next { right:20px; }
.hero-slider__dots { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:5; display:flex; gap:10px; }
.hero-slider__dot-btn { width:12px; height:12px; border-radius:50%; border:2px solid var(--color-white); background:transparent; transition:var(--transition); }
.hero-slider__dot-btn.active { background:var(--color-primary); border-color:var(--color-primary); }

/* ========================================================================
   SOBRE — FUNDO ESCURO (#1D1D1B)
   ======================================================================== */
.sobre { padding:100px 0; background:var(--color-dark-section); }
.sobre__grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.sobre__img-col { position:relative; }
.sobre__img-col img { border-radius:0; box-shadow:none; background:transparent; }
.sobre__caption { display:block; text-align:center; font-size:0.7rem; color:rgba(255,255,255,0.5); margin-top:8px; font-style:italic; }
.sobre__eyebrow { text-transform:uppercase; letter-spacing:3px; font-size:0.75rem; font-weight:600; color:var(--color-primary); margin-bottom:8px; }
.sobre__title { font-size:clamp(1.5rem,3vw,2.2rem); font-weight:700; color:var(--color-white); margin-bottom:8px; }
.sobre__divider { width:60px; height:3px; background:var(--color-primary); margin-bottom:24px; }
.sobre__desc { color:rgba(255,255,255,0.7); margin-bottom:16px; font-size:0.95rem; }
.sobre__pilares { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:32px 0; }
.sobre__pilar { background:rgba(255,255,255,0.06); padding:20px; border-radius:var(--radius); border:1px solid rgba(255,255,255,0.08); box-shadow:none; transition:var(--transition); }
.sobre__pilar:hover { transform:translateY(-4px); background:rgba(255,255,255,0.10); box-shadow:0 8px 32px rgba(0,0,0,0.3); }
.sobre__pilar i { font-size:1.5rem; color:var(--color-primary); margin-bottom:8px; }
.sobre__pilar h3 { font-size:0.9rem; font-weight:700; margin-bottom:4px; color:var(--color-white); }
.sobre__pilar p { font-size:0.8rem; color:rgba(255,255,255,0.6); }
.sobre__incorporacao { font-size:0.85rem; color:rgba(255,255,255,0.5); padding-top:8px; border-top:1px solid rgba(255,255,255,0.1); }

/* ========================================================================
   LAZER — FUNDO ESCURO (#1D1D1B) + PISOS + GALERIA
   ======================================================================== */
.lazer { padding:100px 0; background:var(--color-dark-section); }
.lazer .section-eyebrow { color:var(--color-primary); }
.lazer .section-title { color:var(--color-white); }
.lazer .section-subtitle { color:rgba(255,255,255,0.7); }
.lazer__divider { width:60px; height:3px; background:var(--color-primary); margin:0 auto 24px; }

/* --- Botões de Pisos --- */
.lazer__pisos-tabs { display:flex; justify-content:center; gap:12px; margin-bottom:40px; flex-wrap:wrap; }
.lazer__piso-tab { padding:12px 28px; border-radius:50px; font-size:0.85rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; border:2px solid var(--color-primary); color:var(--color-primary); background:transparent; transition:var(--transition); cursor:pointer; }
.lazer__piso-tab.active,
.lazer__piso-tab:hover { background:var(--color-primary); color:var(--color-dark); }

/* --- Painel de Piso (conteúdo que troca) --- */
.lazer__piso-panel { display:none; animation:fadeIn 0.4s ease; }
.lazer__piso-panel.active { display:block; }

/* --- Grid: Implantação (esquerda) + Lista itens (direita) --- */
.lazer__implantacao { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:40px; align-items:start; }

/* Imagem do piso */
.lazer__layout-img { position:relative; border-radius:var(--radius); overflow:hidden; cursor:pointer; border:2px solid rgba(255,255,255,0.1); transition:var(--transition); }
.lazer__layout-img:hover { border-color:var(--color-primary); }
.lazer__layout-base { width:100%; display:block; }
.lazer__layout-hint { display:block; text-align:center; font-size:0.75rem; color:rgba(255,255,255,0.5); margin-top:8px; font-style:italic; }

/* Lista de itens do piso */
.lazer__lista h3 { font-size:1.1rem; font-weight:700; margin-bottom:16px; color:var(--color-white); }
.lazer__lista-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.lazer__lista-col p { font-weight:700; font-size:0.8rem; text-transform:uppercase; letter-spacing:1px; color:var(--color-primary); margin-bottom:8px; }
.lazer__lista-col ul li { font-size:0.85rem; padding:3px 0; color:rgba(255,255,255,0.7); position:relative; padding-left:16px; }
.lazer__lista-col ul li::before { content:''; position:absolute; left:0; top:10px; width:6px; height:6px; border-radius:50%; background:var(--color-primary); }

/* --- Galeria de fotos por piso --- */
.lazer__galeria-wrapper { position:relative; margin-top:10px; }
.lazer__galeria { display:flex; gap:12px; overflow-x:auto; scroll-behavior:smooth; padding-bottom:12px; -ms-overflow-style:none; scrollbar-width:none; }
.lazer__galeria::-webkit-scrollbar { display:none; }
.lazer__galeria-item { position:relative; flex:0 0 220px; height:165px; overflow:hidden; border-radius:var(--radius); cursor:pointer; border:2px solid transparent; transition:var(--transition); }
.lazer__galeria-item:hover { border-color:var(--color-primary); }
.lazer__galeria-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s ease; }
.lazer__galeria-item:hover img { transform:scale(1.08); }
.lazer__galeria-item span { position:absolute; bottom:0; left:0; right:0; padding:8px 12px; background:linear-gradient(transparent,rgba(0,0,0,0.8)); color:var(--color-white); font-size:0.72rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; }

/* Setas da galeria horizontal */
.lazer__galeria-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:40px; height:40px; border-radius:50%; background:rgba(0,0,0,0.5); color:#fff; font-size:1.2rem; display:flex; align-items:center; justify-content:center; border:none; cursor:pointer; transition:var(--transition); }
.lazer__galeria-arrow:hover { background:var(--color-primary); color:var(--color-dark); }
.lazer__galeria-arrow--prev { left:-16px; }
.lazer__galeria-arrow--next { right:-16px; }

/* ========== LIGHTBOX (mantido + ajuste para implantação) ========== */
.lightbox { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.92); z-index:10000; flex-direction:column; align-items:center; justify-content:center; }
.lightbox.active { display:flex; }
/* Lock body scroll when lightbox open — position:fixed preserva posição */
html.lightbox-open {
  overflow:hidden !important;
}
body.lightbox-open {
  overflow:hidden !important;
  position:fixed;
  width:100%;
  left:0;
  /* top é definido via JS com o valor de -scrollY */
}
.lightbox__close { position:absolute; top:20px; right:30px; font-size:2.5rem; color:#fff; z-index:10001; cursor:pointer; background:none; border:none; line-height:1; }
.lightbox__close:hover { color:var(--color-primary); }
.lightbox__prev, .lightbox__next { position:absolute; top:50%; transform:translateY(-50%); font-size:2rem; color:#fff; background:rgba(255,255,255,0.15); width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; z-index:10001; cursor:pointer; border:none; transition:background 0.3s; }
.lightbox__prev:hover, .lightbox__next:hover { background:rgba(255,255,255,0.3); }
.lightbox__prev { left:10px; }
.lightbox__next { right:10px; }
.lightbox__content { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; max-width:85vw; max-height:85vh; padding:0 60px; }
.lightbox__img { max-width:100%; max-height:78vh; border-radius:var(--radius); object-fit:contain; display:block; }
.lightbox__desc { color:#fff; margin-top:16px; font-size:0.9rem; font-weight:300; }

/* Lightbox modo implantação (sem setas, só X) */
.lightbox--implantacao .lightbox__prev,
.lightbox--implantacao .lightbox__next { display:none; }

/* ========================================================================
   CONTATO (fundo-3) — OVERLAY REDUZIDO PARA 28%
   ======================================================================== */
.contato { position:relative; padding:100px 0; background-size:cover; background-position:center; background-attachment:scroll; }
.contato__overlay { position:absolute; inset:0; background:rgba(26,26,26,0.28); }
.contato__grid { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.contato__form-col h2 { color:var(--color-white); font-size:1.8rem; margin-bottom:8px; }
.contato__form-col > p { color:rgba(255,255,255,0.7); margin-bottom:24px; }
.contato__info-col { color:var(--color-white); }
.contato__info-col h3 { font-size:1.4rem; font-weight:300; margin-bottom:16px; line-height:1.5; }
.contato__info-col h3 strong { font-weight:700; }
.contato__info-col p { color:rgba(255,255,255,0.7); margin-bottom:12px; font-size:0.9rem; }
.contato__channels { display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }

/* ========== FORMULÁRIOS ========== */
.form { display:flex; flex-direction:column; gap:16px; }
.form__group { display:flex; flex-direction:column; gap:4px; }
.form__group label { font-size:0.8rem; font-weight:600; color:rgba(255,255,255,0.8); text-transform:uppercase; letter-spacing:1px; }
.form__group input, .form__group select, .form__group textarea { padding:12px 16px; border:1px solid rgba(255,255,255,0.2); border-radius:var(--radius); background:rgba(255,255,255,0.08); color:var(--color-white); font-family:var(--font-main); font-size:0.9rem; transition:var(--transition); }
.form__group input::placeholder { color:rgba(255,255,255,0.4); }
.form__group input:focus, .form__group select:focus { outline:none; border-color:var(--color-primary); background:rgba(255,255,255,0.12); }
.form__group select option { color:var(--color-dark); background:var(--color-white); }
.form__disclaimer { font-size:0.75rem; color:rgba(255,255,255,0.5); text-align:center; }
.form__disclaimer a { color:var(--color-primary); text-decoration:underline; }
.form--dark .form__group label { color:rgba(255,255,255,0.9); }
.form--dark h3 { color:var(--color-white); font-size:1.2rem; margin-bottom:8px; text-align:center; }

/* ========================================================================
   VÍDEO PARALLAX — OVERLAY REDUZIDO PARA 28%
   ======================================================================== */
.video-section { position:relative; min-height:500px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.video-section__parallax { position:absolute; inset:0; background-size:cover; background-position:center; background-attachment:scroll; }
.video-section__overlay { position:absolute; inset:0; background:rgba(26,26,26,0.28); }
.video-section__content { position:relative; z-index:2; text-align:center; padding:80px 20px; }
.video-section__title { font-size:clamp(1.5rem,3.5vw,2.8rem); color:var(--color-white); font-weight:700; margin-bottom:12px; line-height:1.2; }
.video-section__subtitle { color:rgba(255,255,255,0.7); margin-bottom:32px; font-size:0.95rem; }
.video-section__play-btn { width:90px; height:90px; border-radius:50%; border:3px solid var(--color-primary); background:rgba(233,213,195,0.15); display:flex; align-items:center; justify-content:center; margin:0 auto 12px; transition:var(--transition); }
.video-section__play-btn i { font-size:2rem; color:var(--color-primary); margin-left:4px; }
.video-section__play-btn:hover { background:var(--color-primary); }
.video-section__play-btn:hover i { color:var(--color-dark); }
.video-section__play-label { color:var(--color-primary); font-size:0.85rem; font-weight:600; text-transform:uppercase; letter-spacing:2px; }

/* ========== VIDEO MODAL ========== */
.video-modal { display:none; position:fixed; inset:0; z-index:9999; align-items:center; justify-content:center; }
.video-modal.active { display:flex; }
.video-modal__backdrop { position:absolute; inset:0; background:rgba(0,0,0,0.92); }
.video-modal__wrapper { position:relative; z-index:2; width:90vw; max-width:900px; }
.video-modal__close { position:absolute; top:-40px; right:0; color:var(--color-white); font-size:2rem; }
.video-modal__player { position:relative; padding-bottom:56.25%; height:0; }
.video-modal__player iframe { position:absolute; top:0; left:0; width:100%; height:100%; border-radius:var(--radius); }

/* ========================================================================
   SIMULADOR (fundo-7) — OVERLAY REDUZIDO PARA 28%
   ======================================================================== */
.simulador { position:relative; padding:100px 0; background-size:cover; background-position:center; background-attachment:scroll; }
.simulador__overlay { position:absolute; inset:0; background:rgba(26,26,26,0.88); }
.simulador__overlay--light { background:rgba(26,26,26,0.28); }
.simulador__grid { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.simulador__text-col { color:var(--color-white); }
.simulador__text-col h2 { font-size:clamp(1.4rem,3vw,2rem); margin-bottom:16px; }
.simulador__text-col p { color:rgba(255,255,255,0.7); font-size:0.95rem; }
.simulador__form-col { background:rgba(255,255,255,0.05); padding:40px; border-radius:12px; border:1px solid rgba(255,255,255,0.1); backdrop-filter:blur(5px); }

/* ========================================================================
   PLANTAS & TIPOLOGIAS
   ======================================================================== */
.plantas { padding:100px 0; background:var(--color-bg); }
.plantas__tabs { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:40px; }
.plantas__tab { padding:10px 24px; border-radius:50px; font-size:0.85rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; border:2px solid var(--color-primary-dark); color:var(--color-primary-dark); transition:var(--transition); }
.plantas__tab.active, .plantas__tab:hover { background:var(--color-primary-dark); color:var(--color-white); }
.plantas__panel { display:none; }
.plantas__panel.active { display:block; animation:fadeIn 0.4s ease; }
@keyframes fadeIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.plantas__panel-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.plantas__info h3 { font-size:1.6rem; font-weight:300; color:var(--color-dark); margin-bottom:4px; }
.plantas__info h3 strong { font-weight:700; }
.plantas__tipo-label { font-size:0.8rem; text-transform:uppercase; letter-spacing:1px; color:var(--color-primary-dark); font-weight:600; margin-bottom:12px; }
.plantas__divider-sm { width:40px; height:2px; background:var(--color-primary); margin-bottom:16px; }
.plantas__desc { font-size:0.9rem; color:var(--color-text-light); margin-bottom:20px; }
.plantas__features { display:flex; flex-direction:column; gap:8px; margin-bottom:24px; }
.plantas__features li { display:flex; align-items:center; gap:10px; font-size:0.85rem; color:var(--color-text); }
.plantas__features li i { color:var(--color-primary-dark); width:20px; text-align:center; }
.plantas__localizacao { margin-top:16px; }
.plantas__localizacao p { font-size:0.85rem; margin-bottom:8px; }
.plantas__localizacao img { border-radius:var(--radius); box-shadow:var(--shadow); }
.plantas__layout { position:relative; }
.plantas__layout img { border-radius:var(--radius); box-shadow:var(--shadow-lg); cursor:pointer; transition:var(--transition); }
.plantas__layout img:hover { transform:scale(1.02); box-shadow:0 8px 32px rgba(0,0,0,0.15); }
.plantas__img-caption { display:block; font-size:0.7rem; color:var(--color-text-light); font-style:italic; margin-top:8px; text-align:center; }
.plantas__decorados { margin-top:32px; text-align:center; padding-top:24px; border-top:1px solid #e0d6ce; }
.plantas__decorados > p { font-size:0.9rem; margin-bottom:16px; color:var(--color-text-light); }
.plantas__decorados-grid { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.plantas__deco-thumb { width:160px; height:120px; object-fit:cover; border-radius:var(--radius); cursor:pointer; border:2px solid transparent; transition:var(--transition); box-shadow:var(--shadow); }
.plantas__deco-thumb:hover { border-color:var(--color-primary); transform:scale(1.05); }

/* --- Texto descritivo (memorial) abaixo dos decorados --- */
.plantas__texto-descritivo { margin-top:20px; padding:16px 20px; background:var(--color-bg-alt); border-radius:var(--radius); border-left:3px solid var(--color-primary); text-align:left; }
.plantas__texto-descritivo p { font-size:0.72rem; color:var(--color-text-light); line-height:1.6; margin:0; }

/* ========================================================================
   SEÇÃO BOOK — DOWNLOAD
   ======================================================================== */
.book-section { padding:80px 0; background:var(--color-dark-section); text-align:center; }
.book-section .section-eyebrow { color:var(--color-primary); }
.book-section .section-title { color:var(--color-white); }
.book-section .section-subtitle { color:rgba(255,255,255,0.7); }
.book-section__btn-wrap { margin-top:32px; }

/* ========================================================================
   CTA PREMIUM
   ======================================================================== */
.cta-premium { padding:80px 0; background:var(--color-dark); color:var(--color-white); text-align:center; }
.cta-premium h2 { font-size:clamp(1.3rem,3vw,2rem); margin-bottom:40px; font-weight:700; }
.cta-premium__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-bottom:40px; }
.cta-premium__card { background:rgba(255,255,255,0.05); padding:32px 20px; border-radius:12px; border:1px solid rgba(255,255,255,0.08); transition:var(--transition); }
.cta-premium__card:hover { background:rgba(233,213,195,0.1); transform:translateY(-4px); }
.cta-premium__card i { font-size:2rem; color:var(--color-primary); margin-bottom:16px; }
.cta-premium__card h3 { font-size:0.95rem; font-weight:700; margin-bottom:8px; }
.cta-premium__card p { font-size:0.8rem; color:rgba(255,255,255,0.6); }

/* ========================================================================
   LOCALIZAÇÃO
   ======================================================================== */
.localizacao { padding:100px 0; background:var(--color-white); }
.plantas__decorados--inline { margin-top:24px; text-align:left; padding-top:20px; border-top:1px solid #e0d6ce; }
.plantas__decorados--inline > p { font-size:0.85rem; margin-bottom:12px; color:var(--color-text-light); }
.localizacao__mapa-wrapper { position:relative; width:100%; max-width:1400px; margin:0 auto 32px; padding:0 20px; overflow:hidden; }
.localizacao__regiao-img { width:100%; border-radius:12px; display:block; }
.localizacao__mapa-embed { position:absolute; top:50%; left:20px; transform:translateY(-50%); width:46%; height:75%; z-index:2; }
.localizacao__mapa-embed iframe { width:100%; height:100%; border-radius:12px; box-shadow:var(--shadow-lg); }
.localizacao__aviso { text-align:center; font-size:0.85rem; color:var(--color-text-light); font-style:italic; max-width:800px; margin:0 auto 40px; padding:20px; background:var(--color-bg-alt); border-radius:var(--radius); border-left:4px solid var(--color-primary); }
.localizacao__proximidades { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.localizacao__prox-item { display:flex; align-items:center; gap:12px; padding:16px 20px; background:var(--color-bg); border-radius:var(--radius); transition:var(--transition); }
.localizacao__prox-item:hover { box-shadow:var(--shadow); transform:translateY(-2px); }
.localizacao__prox-item i { font-size:1.3rem; color:var(--color-primary-dark); width:28px; text-align:center; flex-shrink:0; }
.localizacao__prox-item strong { display:block; font-size:0.85rem; }
.localizacao__prox-item span { font-size:0.75rem; color:var(--color-primary-dark); font-weight:600; }

/* ========================================================================
   DIFERENCIAIS
   ======================================================================== */
.diferenciais { padding:80px 0; background:var(--color-bg-alt); }
.diferenciais__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; }
.diferenciais__item { text-align:center; padding:32px 24px; background:var(--color-white); border-radius:12px; box-shadow:var(--shadow); transition:var(--transition); }
.diferenciais__item:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.diferenciais__item i { font-size:2rem; color:var(--color-primary-dark); margin-bottom:16px; }
.diferenciais__item h3 { font-size:1rem; font-weight:700; margin-bottom:8px; color:var(--color-dark); }
.diferenciais__item p { font-size:0.85rem; color:var(--color-text-light); }

/* ========================================================================
   FAQ
   ======================================================================== */
.faq { padding:80px 0; background:var(--color-white); }
.faq__list { max-width:800px; margin:40px auto 0; }
.faq__item { border-bottom:1px solid #eee; }
.faq__question { width:100%; display:flex; align-items:center; justify-content:space-between; padding:20px 0; font-size:0.95rem; font-weight:600; color:var(--color-dark); text-align:left; }
.faq__question i { transition:transform 0.3s ease; color:var(--color-primary-dark); font-size:0.8rem; }
.faq__question[aria-expanded="true"] i { transform:rotate(180deg); }
.faq__answer { max-height:0; overflow:hidden; transition:max-height 0.4s ease, padding 0.4s ease; }
.faq__answer p { padding:0 0 20px; font-size:0.9rem; color:var(--color-text-light); line-height:1.7; }

/* ========================================================================
   FOOTER
   ======================================================================== */
.footer { background:var(--color-dark); color:rgba(255,255,255,0.7); padding:60px 0 0; }
.footer__grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer__brand img { margin-bottom:16px; height:40px; width:auto; }
.footer__brand p { font-size:0.85rem; margin-bottom:4px; }
.footer__links h4, .footer__contact h4 { color:var(--color-primary); font-size:0.85rem; text-transform:uppercase; letter-spacing:2px; margin-bottom:16px; }
.footer__links ul li { margin-bottom:8px; }
.footer__links ul li a:hover { color:var(--color-primary); }
.footer__contact p { margin-bottom:8px; font-size:0.85rem; }
.footer__contact a:hover { color:var(--color-primary); }
.footer__social { display:flex; gap:12px; margin-top:16px; }
.footer__social a { width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center; font-size:0.9rem; transition:var(--transition); }
.footer__social a:hover { background:var(--color-primary); color:var(--color-dark); border-color:var(--color-primary); }
.footer__bottom { padding:20px 0; text-align:center; font-size:0.75rem; }
.footer__legal { max-width:800px; margin:8px auto; font-size:0.7rem; color:rgba(255,255,255,0.4); }
.footer__bottom a { color:var(--color-primary); }

/* ========================================================================
   WHATSAPP FLUTUANTE
   ======================================================================== */
.whatsapp-float { position:fixed; bottom:20px; right:20px; z-index:999; display:flex; flex-direction:column; align-items:flex-end; max-width:calc(100vw - 40px); }
.whatsapp-float__btn { width:60px; height:60px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(37,211,102,0.4); transition:var(--transition); animation:waPulse 2s infinite; flex-shrink:0; border:none; cursor:pointer; }
.whatsapp-float__btn i { font-size:1.8rem; color:#fff; }
.whatsapp-float__btn:hover { transform:scale(1.1); animation:none; }
@keyframes waPulse {
  0% { box-shadow:0 0 0 0 rgba(37,211,102,0.5); }
  70% { box-shadow:0 0 0 18px rgba(37,211,102,0); }
  100% { box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
.whatsapp-float__ticket { position:absolute; bottom:8px; right:72px; background:#fff; color:var(--color-dark); padding:10px 16px; border-radius:20px; box-shadow:0 4px 20px rgba(0,0,0,0.12); font-size:0.82rem; font-weight:500; white-space:nowrap; opacity:0; transform:translateX(10px); transition:opacity 0.4s ease, transform 0.4s ease; pointer-events:none; max-width:calc(100vw - 120px); }
.whatsapp-float__ticket.active { opacity:1; transform:translateX(0); }
.whatsapp-float__ticket::after { content:''; position:absolute; right:-6px; top:50%; transform:translateY(-50%); width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:6px solid #fff; }
.whatsapp-float__chat { display:none; position:relative; margin-bottom:14px; width:300px; animation:waChatIn 0.35s ease; }
.whatsapp-float__chat.active { display:block; }
@keyframes waChatIn {
  from { opacity:0; transform:translateY(16px) scale(0.95); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
.whatsapp-float__chat-balloon { background:#fff; border-radius:16px; padding:24px 22px 20px; box-shadow:0 4px 24px rgba(0,0,0,0.10); margin-bottom:14px; margin-left:30px; position:relative; }
.whatsapp-float__chat-balloon::after { content:''; position:absolute; bottom:-8px; right:40px; width:0; height:0; border-left:10px solid transparent; border-right:10px solid transparent; border-top:10px solid #fff; }
.whatsapp-float__chat-title { font-family:var(--font-main); font-size:0.85rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--color-primary-dark); margin:0 0 12px; }
.whatsapp-float__chat-text { font-size:0.88rem; color:#555; line-height:1.55; margin:0; }
.whatsapp-float__chat-action { display:flex; align-items:center; gap:10px; }
.whatsapp-float__chat-avatar { width:56px; height:56px; border-radius:50%; object-fit:cover; flex-shrink:0; border:3px solid #fff; box-shadow:0 2px 12px rgba(0,0,0,0.12); }
.whatsapp-float__chat-cta { flex:1; display:flex; align-items:center; justify-content:center; padding:14px 20px; background:#25D366; color:#fff; border-radius:28px; font-size:0.85rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; text-decoration:none; box-shadow:0 4px 16px rgba(37,211,102,0.35); transition:var(--transition); }
.whatsapp-float__chat-cta:hover { background:#1DA851; transform:translateY(-1px); }
.whatsapp-float__chat-x { position:absolute; bottom:-28px; right:0; width:48px; height:48px; border-radius:50%; background:#25D366; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(37,211,102,0.35); transition:var(--transition); }
.whatsapp-float__chat-x:hover { background:#1DA851; }

/* ========================================================================
   COOKIES BANNER
   ======================================================================== */
.cookies-banner { position:fixed; bottom:0; left:0; right:0; background:var(--color-dark); color:rgba(255,255,255,0.8); padding:16px 24px; display:flex; align-items:center; justify-content:center; gap:16px; z-index:998; font-size:0.8rem; transform:translateY(100%); transition:transform 0.4s ease; flex-wrap:wrap; text-align:center; }
.cookies-banner.active { transform:translateY(0); }
.cookies-banner a { color:var(--color-primary); text-decoration:underline; }

/* ========================================================================
   RESPONSIVO
   ======================================================================== */
@media(max-width:1024px) {
  .sobre__grid, .contato__grid, .simulador__grid, .plantas__panel-grid, .localizacao__grid { grid-template-columns:1fr; }
  .sobre__img-col { order:-1; max-width:500px; margin:0 auto; }
  .cta-premium__grid { grid-template-columns:1fr 1fr; }
  .lazer__implantacao { grid-template-columns:1fr; }
  .localizacao__proximidades { grid-template-columns:1fr 1fr; }
  .diferenciais__grid { grid-template-columns:1fr; }
  .footer__grid { grid-template-columns:1fr; }
  .plantas__tabs { gap:4px; }
  .plantas__tab { padding:8px 14px; font-size:0.75rem; }
  .lazer__galeria-item { flex:0 0 180px; height:135px; }
  .plantas__layout img { max-height:400px; object-fit:contain; }
}

/* ======================================================================
   v3.0 FIX — CENTRALIZAÇÃO MOBILE (NOVO)
   Garante que NENHUM elemento ultrapasse a viewport
   ====================================================================== */
@media(max-width:768px) {
  :root { --header-h:65px; }

  /* === GLOBAL: impedir qualquer overflow horizontal === */
  section, .container, .lazer, .sobre, .contato, .simulador,
  .plantas, .book-section, .cta-premium, .localizacao,
  .diferenciais, .faq, .video-section, .footer {
    max-width:100vw;
    overflow-x:hidden;
  }

  /* === HEADER & NAV — hamburger dentro da viewport === */
  .header { padding:0 16px; }
  .header__container { padding:0; }
  .header__nav { position:fixed; top:0; right:-100%; width:80%; max-width:320px; height:100vh; background:var(--color-dark); padding:100px 32px 32px; transition:right 0.4s ease; z-index:999; }
  .header__nav.open { right:0; }
  .header__menu { flex-direction:column; align-items:flex-start; gap:20px; }
  .header__menu li a { color:var(--color-white)!important; font-size:1rem; }
  .header__hamburger { display:flex; z-index:1001; position:relative; right:0; margin-right:0; }

  /* === HERO SLIDER === */
  .hero-slider { height:80vh; min-height:500px; }
  .hero-slider__title { font-size:clamp(1.5rem,5vw,2.5rem); }
  .hero-slider__overlay { padding:0 16px; }

  /* === SOBRE === */
  .sobre__pilares { grid-template-columns:1fr; }

  /* === LAZER — Implantação e galeria === */
  .lazer__implantacao { grid-template-columns:1fr; }
  .lazer__lista-grid { grid-template-columns:1fr; }
  .lazer__galeria-item { flex:0 0 160px; height:120px; }
  .lazer__galeria-arrow { width:32px; height:32px; font-size:1rem; }
  .lazer__galeria-arrow--prev { left:4px; }
  .lazer__galeria-arrow--next { right:4px; }
  /* Impedir overflow da galeria wrapper */
  .lazer__galeria-wrapper { overflow:hidden; }
  .lazer__galeria { padding-left:4px; padding-right:4px; }

  /* === PISOS TABS — wrap seguro === */
  .lazer__pisos-tabs { gap:6px; padding:0 8px; }
  .lazer__piso-tab { padding:8px 14px; font-size:0.75rem; }

  /* === CONTATO === */
  .contato__grid { grid-template-columns:1fr; gap:30px; }
  .contato__channels { flex-direction:column; }

  /* === SIMULADOR — padding seguro === */
  .simulador { background-attachment:scroll; padding:60px 0; }
  .simulador__grid { grid-template-columns:1fr; gap:30px; }
  .simulador__form-col { padding:24px 16px; }

  /* === PLANTAS === */
  .plantas__panel-grid { grid-template-columns:1fr; }

  /* === CTA PREMIUM === */
  .cta-premium__grid { grid-template-columns:1fr; }

  /* === LOCALIZAÇÃO === */
  .localizacao__proximidades { grid-template-columns:1fr; }
  .localizacao__mapa-embed { position:relative; top:auto; left:auto; transform:none; width:100%; height:300px; margin-top:16px; }
  .localizacao__mapa-wrapper { padding:0 16px; }

  /* === DIFERENCIAIS === */
  .diferenciais__grid { grid-template-columns:1fr; }

  /* === FOOTER === */
  .footer__grid { grid-template-columns:1fr; }

  /* === WHATSAPP FLUTUANTE — MOBILE FIX === */
  .whatsapp-float {
    right:12px;
    bottom:12px;
    /* Resetar max-width para não comprimir o ticket */
    max-width:none;
  }
  .whatsapp-float__btn { width:56px; height:56px; }
  .whatsapp-float__btn i { font-size:1.6rem; }

  /* Ticket: posicionado ACIMA do botão em vez de ao lado */
  .whatsapp-float__ticket {
    position:absolute;
    bottom:68px;       /* acima do botão */
    right:0;           /* alinhado à direita com o botão */
    left:auto;
    max-width:240px;
    min-width:180px;
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
    font-size:0.82rem;
    line-height:1.45;
    padding:10px 16px;
    text-align:center;
    border-radius:16px;
    transform:none;
  }
  .whatsapp-float__ticket.active {
    transform:none;
    opacity:1;
  }
  /* Seta do ticket aponta para baixo (para o botão) */
  .whatsapp-float__ticket::after {
    content:'';
    position:absolute;
    bottom:-6px;
    right:20px;
    left:auto;
    top:auto;
    transform:none;
    width:0; height:0;
    border-left:6px solid transparent;
    border-right:6px solid transparent;
    border-top:6px solid #fff;
    border-bottom:none;
  }

  /* Chat balloon expandido */
  .whatsapp-float__chat {
    width:calc(100vw - 32px);
    max-width:320px;
    margin-bottom:10px;
  }
  .whatsapp-float__chat-balloon {
    margin-left:0;
    padding:20px 18px 16px;
  }
  .whatsapp-float__chat-action { flex-direction:column; gap:12px; align-items:stretch; }
  .whatsapp-float__chat-avatar { align-self:center; }
  .whatsapp-float__chat-cta { font-size:0.82rem; padding:14px 16px; text-align:center; }
  .whatsapp-float__chat-x { bottom:-24px; right:0; width:44px; height:44px; }

  /* === LIGHTBOX — setas visíveis e conteúdo centralizado === */
  .lightbox__prev { left:6px; }
  .lightbox__next { right:6px; }
  .lightbox__prev, .lightbox__next { width:40px; height:40px; font-size:1.4rem; background:rgba(255,255,255,0.25); }
  .lightbox__content { max-width:92vw; padding:0 46px; }
  .lightbox__img { max-width:100%; }

  /* === SEÇÃO BOOK — conter botão === */
  .book-section { padding:60px 16px; }
  .btn--lg { padding:16px 28px; font-size:0.88rem; }

  /* === SECTION TITLES — padding lateral seguro === */
  .section-title { padding:0 12px; }
  .section-subtitle { padding:0 12px; }
}

@media(max-width:480px) {
  .hero-slider__btns { flex-direction:column; width:100%; padding:0 20px; }
  .hero-slider__btns .btn { width:100%; }
  .hero-slider__arrow { width:36px; height:36px; font-size:1rem; }
  .hero-slider__arrow--prev { left:8px; }
  .hero-slider__arrow--next { right:8px; }
  .contato__channels { flex-direction:column; }
  .lazer__pisos-tabs { gap:4px; padding:0 4px; }
  .lazer__piso-tab { padding:6px 10px; font-size:0.7rem; }
  /* Garantir container não ultrapasse */
  .container { padding:0 12px; }

  /* WhatsApp ajuste fino em telas < 480 */
  .whatsapp-float { right:8px; bottom:8px; }
  .whatsapp-float__btn { width:52px; height:52px; }
  .whatsapp-float__btn i { font-size:1.4rem; }
  .whatsapp-float__ticket {
    bottom:62px;
    max-width:200px;
    min-width:160px;
    font-size:0.78rem;
    padding:8px 12px;
  }
  .whatsapp-float__chat {
    width:calc(100vw - 24px);
    max-width:300px;
  }
}
/* ========================================================================
   RESPONSIVE BACKGROUNDS — Servir imagens menores por viewport
   Resolve: "Responsive Image Test" no SEO Site Checkup
   v3.1
   ======================================================================== */

/* --- Tablet / Desktop médio (481px a 1024px) --- */
@media (max-width: 1024px) {
  .contato {
    background-image: url('../fundo/responsive/fundo-3-640w.webp') !important;
  }
  .video-section__parallax {
    background-image: url('../fundo/responsive/fundo-5-640w.webp') !important;
  }
  .simulador {
    background-image: url('../fundo/responsive/fundo-7-640w.webp') !important;
  }
}

/* --- Mobile (até 480px) --- */
@media (max-width: 480px) {
  .contato {
    background-image: url('../fundo/responsive/fundo-3-320w.webp') !important;
  }
  .video-section__parallax {
    background-image: url('../fundo/responsive/fundo-5-320w.webp') !important;
  }
  .simulador {
    background-image: url('../fundo/responsive/fundo-7-320w.webp') !important;
  }
}