:root{
    --black:#0A0A0A;
    --charcoal:#1A1A1A;
    --gold:#D9AC6B;
    --gold-deep:#75572C;
    --gold-pale:#F1E2C9;
    --white:#FFFFFF;
    --cream:#FAF7F1;
    --muted:#6E6E6E;
    --line:rgba(10,10,10,0.10);
    --line-dark:rgba(255,255,255,0.14);
    --radius:14px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--white);
    color:var(--black);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{font-family:'Fraunces',serif;}
  a{color:inherit;text-decoration:none;}
  .oculto{display:none !important;}
  /* Some visualmente mas continua acessível a leitores de tela — usado em
     labels de formulário que já têm contexto visual suficiente ao redor. */
  .oculto-visual{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
  .eyebrow{
    text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:600;
    color:var(--gold-deep); display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{content:''; width:24px; height:1px; background:var(--gold-deep); display:inline-block;}
  .eyebrow.on-dark{color:var(--gold);}
  .eyebrow.on-dark::before{background:var(--gold);}

  /* NAV */
  nav{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,0.88); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav .wrap{display:flex; align-items:center; justify-content:space-between; height:80px;}
  .logo-img{height:34px; display:block;}
  .navlinks{display:flex; gap:32px; font-size:14px; font-weight:500; color:var(--muted);}
  .navlinks a:hover{color:var(--black);}
  .navdrop{position:relative;}
  .navdrop-trigger{display:flex; align-items:center; gap:6px; cursor:pointer; background:none; border:none; font:inherit; color:inherit; padding:0;}
  .navdrop-trigger svg{width:10px; height:10px; transition:transform .2s ease;}
  .navdrop:hover .navdrop-trigger{color:var(--black);}
  .navdrop:hover .navdrop-trigger svg{transform:rotate(180deg);}
  .navdrop-menu{
    position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(-6px);
    padding-top:14px; /* zona-ponte: mantém o hover contínuo entre o botão e o menu, sem vão morto */
    opacity:0; pointer-events:none; transition:opacity .18s ease, transform .18s ease;
    z-index:60;
  }
  .navdrop:hover .navdrop-menu{opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);}
  .navdrop-menu-inner{
    background:var(--white); border:1px solid var(--line); border-radius:14px;
    box-shadow:0 20px 45px rgba(10,10,10,0.12); padding:8px; min-width:200px;
  }
  .navdrop-menu a{
    display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:9px;
    font-size:13.5px; font-weight:500; color:var(--black); white-space:nowrap;
  }
  .navdrop-menu a:hover{background:var(--cream); color:var(--gold-deep);}
  .navdrop-menu a .dot{width:6px; height:6px; border-radius:50%; background:var(--gold); flex-shrink:0;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 26px; border-radius:999px; font-weight:600; font-size:14px;
    background:var(--black); color:var(--white);
    transition:transform .2s ease, background .2s ease;
    border:1px solid var(--black);
  }
  .btn:hover{background:var(--charcoal); transform:translateY(-1px);}
  .btn-gold{background:var(--gold); color:var(--black); border-color:var(--gold);}
  .btn-gold:hover{background:var(--gold-deep); border-color:var(--gold-deep);}
  .btn-ghost{
    background:transparent; border:1px solid var(--line); color:var(--black);
  }
  .btn-ghost:hover{border-color:var(--gold-deep); color:var(--gold-deep); background:transparent;}
  .btn-ghost-dark{background:transparent; border:1px solid var(--line-dark); color:var(--white);}
  .btn-ghost-dark:hover{border-color:var(--gold); color:var(--gold); background:transparent;}

  /* MENU MOBILE (hambúrguer) */
  .nav-toggle{
    display:none; order:2; flex-direction:column; justify-content:center; align-items:center; gap:5px;
    width:44px; height:44px; padding:0; background:none; border:none; cursor:pointer; flex-shrink:0;
  }
  .nav-toggle span{display:block; width:22px; height:2px; background:var(--black); border-radius:2px; transition:transform .2s ease, opacity .2s ease;}
  nav.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  nav.menu-open .nav-toggle span:nth-child(2){opacity:0;}
  nav.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* HERO */
  .hero{
    position:relative; padding:70px 0 70px;
    background:
      radial-gradient(ellipse 900px 500px at 12% -10%, rgba(217,172,107,0.18), transparent 60%),
      var(--cream);
    border-bottom:1px solid var(--line);
  }
  .hero .wrap{display:grid; grid-template-columns:1fr 1.05fr; gap:48px; align-items:start;}
  .hero h1{font-size:clamp(36px,4.6vw,58px); line-height:1.08; font-weight:600; letter-spacing:-.01em; color:var(--black);}
  .hero h1 em{font-style:italic; color:var(--gold-deep); font-weight:500;}
  .hero p.sub{margin-top:22px; font-size:17px; color:var(--muted); max-width:480px; line-height:1.6;}
  .hero-cta{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
  .hero-stats{display:flex; gap:34px; margin-top:52px; flex-wrap:wrap;}
  .stat b{display:block; font-family:'Fraunces',serif; font-size:26px; color:var(--gold-deep); font-weight:600;}
  .stat span{font-size:12.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em;}

  .hero-visual{
    position:relative; aspect-ratio:4/3; border-radius:20px; overflow:hidden;
    background: linear-gradient(160deg, var(--charcoal) 0%, var(--black) 100%);
    border:1px solid var(--line);
  }
  .hero-visual::before{
    content:''; position:absolute; inset:0;
    background:
      repeating-linear-gradient(115deg, rgba(217,172,107,0.05) 0 2px, transparent 2px 26px);
  }
  .hero-visual .tag{
    position:absolute; bottom:22px; left:22px; right:22px;
    background:rgba(10,10,10,0.7); backdrop-filter:blur(6px);
    border:1px solid var(--line-dark); border-radius:12px; padding:16px 18px;
  }
  .hero-visual .tag .row{display:flex; justify-content:space-between; align-items:center;}
  .hero-visual .tag b{font-family:'Fraunces',serif; font-size:15px; color:var(--white);}
  .hero-visual .tag small{color:var(--gold); font-size:12px; font-weight:600;}
  .pulse-dot{width:8px; height:8px; border-radius:50%; background:var(--gold); display:inline-block; margin-right:6px; box-shadow:0 0 0 4px rgba(217,172,107,0.22);}

  /* SECTION generic */
  section{padding:72px 0;}
  .section-head{max-width:620px; margin-bottom:52px;}
  .section-head h2{font-size:clamp(28px,3.2vw,40px); font-weight:600; line-height:1.15; margin-top:14px;}
  .section-head h2 i{font-style:italic; color:var(--gold-deep); font-weight:500;}
  .section-head p{color:var(--muted); margin-top:14px; font-size:15.5px; line-height:1.6;}
  .section-head.on-dark h2{color:var(--white);}
  .section-head.on-dark h2 i{color:var(--gold);}
  .section-head.on-dark p{color:#9D9D9D;}

  /* SPACES */
  .spaces{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .space-card{
    border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
    background:var(--white); transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  }
  .space-card:hover{transform:translateY(-6px); border-color:var(--gold); box-shadow:0 16px 40px rgba(10,10,10,0.08);}
  .space-photo{
    height:190px; position:relative;
    display:flex; align-items:flex-end; padding:16px;
  }
  .space-photo.podcast{background:linear-gradient(160deg,#2B2B2B,#0A0A0A);}
  .space-photo.musical{background:linear-gradient(160deg,#3A2E1C,#0A0A0A);}
  .space-photo.training{background:linear-gradient(160deg,#2A2A2A,#0A0A0A);}
  .space-photo.auditorio{background:linear-gradient(160deg,#4A3A1A,#0A0A0A);}
  .space-photo.mentoria{background:linear-gradient(160deg,#26333A,#0A0A0A);}
  .space-photo.masterclass{background:linear-gradient(160deg,#332626,#0A0A0A);}
  .space-photo.lounge{background:linear-gradient(160deg,#2E2A20,#0A0A0A);}
  .space-photo .cap{
    background:rgba(255,255,255,0.9); border:1px solid var(--line); border-radius:999px;
    font-size:11.5px; padding:5px 12px; color:var(--gold-deep); font-weight:700;
    position:relative; z-index:4;
  }
  .space-body{padding:20px;}
  .space-body h3{font-size:18px; font-weight:600;}
  .space-body p{font-size:13.5px; color:var(--muted); margin-top:8px; line-height:1.55;}
  .space-body .link{display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:13px; font-weight:600; color:var(--gold-deep);}

  /* CARROSSEL DE FOTOS DENTRO DO CARD DE ESPAÇO */
  .carrossel-fotos{position:absolute; inset:0; overflow:hidden;}
  .carrossel-img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    opacity:0; transition:opacity .45s ease;
  }
  .carrossel-img.ativa{opacity:1;}
  .carrossel-seta{
    position:absolute; top:50%; transform:translateY(-50%);
    width:40px; height:40px; border-radius:50%; border:none; cursor:pointer;
    background:rgba(10,10,10,0.55); color:var(--white); font-size:18px;
    display:flex; align-items:center; justify-content:center;
    opacity:0; transition:opacity .2s ease, background .2s ease; z-index:3;
  }
  .carrossel-seta:hover{background:rgba(10,10,10,0.8);}
  .space-card:hover .carrossel-seta{opacity:1;}
  .carrossel-seta.prev{left:8px;}
  .carrossel-seta.next{right:8px;}
  .carrossel-dots{
    position:absolute; bottom:2px; left:50%; transform:translateX(-50%);
    display:flex; z-index:3;
  }
  /* A área clicável de cada bolinha é maior (24x24) que o círculo visível
     (6x6, feito com ::after), pra dar espaço de toque suficiente no mobile
     sem deixar os indicadores visualmente grandes. */
  .carrossel-dots .dot{
    width:24px; height:24px; border-radius:50%; background:transparent;
    cursor:pointer; border:none; padding:0; position:relative;
    display:flex; align-items:center; justify-content:center;
  }
  .carrossel-dots .dot::after{
    content:''; width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.5);
    transition:background .2s ease, transform .2s ease;
  }
  .carrossel-dots .dot.ativo::after{background:var(--gold); transform:scale(1.25);}
  .carrossel-tag-360{
    position:absolute; top:12px; right:12px; z-index:3;
    background:rgba(217,172,107,0.95); color:var(--black); font-size:10.5px; font-weight:700;
    padding:4px 9px; border-radius:999px; letter-spacing:.03em;
  }

  /* TOUR 360° DENTRO DO CARD DE ESPAÇO (listagem e detalhe) */
  .tour-360-toggle{
    position:absolute; top:12px; right:12px; z-index:5;
    background:rgba(10,10,10,0.8); color:var(--white); border:none; border-radius:999px;
    padding:10px 14px; font-size:11px; font-weight:700; cursor:pointer;
    display:flex; align-items:center; gap:6px; letter-spacing:.02em;
    font-family:'Inter',sans-serif; min-height:36px;
  }
  .tour-360-toggle span{font-weight:600; opacity:.85;}
  .tour-360-toggle:hover{background:rgba(10,10,10,0.95);}
  .tour-360-painel{position:absolute; inset:0; z-index:4; display:none; border-radius:inherit; overflow:hidden;}
  .tour-360-painel.ativo{display:block;}
  .tour-360-viewer-el{position:absolute; inset:0;}
  .tour-360-lista{
    /* Título nativo do Pannellum foi escondido (ver .pnlm-panorama-info
       abaixo), então os botões podem ficar coladinhos no rodapé de novo.
       max-width evita que estiquem até embaixo da bússola, que fica no
       canto inferior direito. */
    position:absolute; bottom:10px; left:10px; z-index:6; max-width:70%;
    display:flex; gap:6px; flex-wrap:wrap;
  }
  .tour-360-lista button{
    background:rgba(10,10,10,0.8); color:var(--white); border:none; border-radius:999px;
    padding:5px 12px; font-size:11px; font-weight:600; cursor:pointer; font-family:'Inter',sans-serif;
  }
  .tour-360-lista button.ativa{background:var(--gold); color:var(--black);}
  .tour-360-voltar{
    position:absolute; top:12px; right:12px; z-index:7; display:none;
    background:rgba(10,10,10,0.8); color:var(--white); border:none; border-radius:999px;
    padding:6px 12px; font-size:11px; font-weight:700; cursor:pointer; font-family:'Inter',sans-serif;
  }
  .tour-360-voltar.ativo{display:block;}
  .tour-360-voltar:hover{background:rgba(10,10,10,0.95);}

  /* A legenda que o Pannellum desenha sozinho (nome da cena, canto inferior
     esquerdo) duplica informação que já aparece em outro lugar da página
     (título do card, cabeçalho da foto) e brigava por espaço com os botões
     "Ambiente 1/2" — mais simples esconder e deixar só os botões. */
  .tour-360-painel .pnlm-panorama-info,
  #panorama-real .pnlm-panorama-info{
    display:none !important;
  }

  /* TOUR 360 */
  .tour{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;}
  .tour-visual{
    position:relative; aspect-ratio:16/11; border-radius:20px; overflow:hidden;
    background:
      radial-gradient(ellipse 120% 90% at 50% 105%, rgba(217,172,107,0.25), transparent 60%),
      conic-gradient(from 200deg at 50% 45%, #1c1c1c, #0A0A0A 25%, #2a2214 45%, #0A0A0A 65%, #1c1c1c 85%, #0A0A0A);
    border:1px solid var(--line);
  }
  .tour-visual::before{
    content:''; position:absolute; inset:0;
    background:repeating-radial-gradient(circle at 50% 62%, transparent 0 34px, rgba(255,255,255,0.025) 34px 35px);
  }
  .tour-ring{
    position:absolute; left:50%; bottom:14%; width:78%; aspect-ratio:1/1; transform:translateX(-50%);
    border:1px solid rgba(217,172,107,0.35); border-radius:50%;
  }
  .tour-ring::after{
    content:''; position:absolute; inset:14%; border:1px solid rgba(217,172,107,0.2); border-radius:50%;
  }
  .tour-hotspot{
    position:absolute; width:14px; height:14px; border-radius:50%;
    background:var(--gold); box-shadow:0 0 0 6px rgba(217,172,107,0.2);
  }
  .tour-hotspot::after{
    content:attr(data-label); position:absolute; top:-32px; left:50%; transform:translateX(-50%);
    white-space:nowrap; font-size:11px; font-weight:600; color:var(--black);
    background:var(--white); padding:5px 10px; border-radius:999px; border:1px solid var(--line);
    opacity:0; transition:opacity .2s ease;
  }
  .tour-hotspot:hover::after{opacity:1;}
  .h1{top:38%; left:28%;}
  .h2{top:52%; left:63%;}
  .h3{top:66%; left:44%;}

  /* TOUR 360° REAL (Pannellum) — substitui o mockup quando há fotos 360° cadastradas */
  #panorama-real{
    position:absolute; inset:0; display:none; border-radius:20px; overflow:hidden;
  }
  #panorama-real.ativo{display:block;}
  .tour-seletor{
    display:flex; gap:8px; flex-wrap:wrap; margin-top:22px;
  }
  .tour-seletor button{
    background:var(--white); border:1px solid var(--line); border-radius:999px;
    padding:8px 16px; font-size:13px; font-weight:600; color:var(--muted); cursor:pointer;
    transition:all .2s ease; font-family:'Inter',sans-serif;
  }
  .tour-seletor button:hover{border-color:var(--gold-deep); color:var(--gold-deep);}
  .tour-seletor button.ativo{background:var(--black); border-color:var(--black); color:var(--white);}
  /* Pannellum injeta a própria bússola/controles — garante que fiquem acima do mockup escondido */
  .pnlm-container{border-radius:20px;}
  .tour-compass{
    position:absolute; top:20px; right:20px; width:56px; height:56px; border-radius:50%;
    border:1px solid var(--line-dark); display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,0.06); backdrop-filter:blur(4px);
  }
  .tour-compass span{color:var(--gold); font-size:18px; transform:rotate(35deg); display:inline-block;}
  .tour-badge{
    position:absolute; top:20px; left:20px;
    display:flex; align-items:center; gap:8px;
    background:rgba(10,10,10,0.55); border:1px solid var(--line-dark); border-radius:999px;
    padding:7px 14px; font-size:12px; font-weight:600; color:var(--white);
  }
  .tour-copy ul{margin-top:24px; display:flex; flex-direction:column; gap:16px;}
  .tour-copy li{display:flex; gap:12px; font-size:14.5px; color:var(--muted); align-items:flex-start;}
  .tour-copy li b{color:var(--black); font-weight:600;}
  .tour-check{
    width:20px; height:20px; border-radius:50%; background:var(--gold-pale); color:var(--gold-deep);
    flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700;
    margin-top:1px;
  }

  /* UNIDADES - dark contrast section */
  .units-section{background:var(--black); color:var(--white);}
  .units-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .unit-card{
    background:var(--charcoal); border:1px solid var(--line-dark); border-radius:20px;
    padding:34px 28px; transition:border-color .25s ease, transform .25s ease;
  }
  .unit-card:hover{border-color:var(--gold); transform:translateY(-4px);}
  .unit-card .unit-photo{
    aspect-ratio:4/3; border-radius:14px; margin-bottom:22px; position:relative; overflow:hidden;
  }
  .unit-card.alphaville .unit-photo{background:linear-gradient(150deg,#3A2E1C,#0A0A0A);}
  .unit-card.rio .unit-photo{background:linear-gradient(150deg,#1C3A34,#0A0A0A);}
  .unit-card.londrina .unit-photo{background:linear-gradient(150deg,#2A2A3A,#0A0A0A);}
  .unit-card .unit-photo::before{
    content:''; position:absolute; inset:0;
    background:repeating-linear-gradient(115deg, rgba(217,172,107,0.06) 0 2px, transparent 2px 22px);
  }
  /* Essa textura listrada é só pro estado sem foto (placeholder decorativo);
     quando existe uma foto de verdade dentro do card, ela não deve aparecer
     por cima nem vazar em nenhuma borda. */
  .unit-card .unit-photo:has(img)::before{display:none;}
  .unit-card .unit-tag{
    position:absolute; bottom:12px; left:12px;
    display:flex; align-items:center; gap:6px;
    background:rgba(10,10,10,0.6); border:1px solid var(--line-dark); border-radius:999px;
    padding:5px 11px; font-size:11px; font-weight:600; color:var(--gold);
  }
  .unit-card h3{font-family:'Fraunces',serif; font-size:20px; font-weight:600; color:var(--white);}
  .unit-card .unit-address{font-size:13px; color:#848484; margin-top:6px; display:flex; gap:8px; align-items:flex-start;}
  .unit-card p.unit-desc{font-size:13.5px; color:#9D9D9D; margin-top:14px; line-height:1.6;}
  .unit-stats{display:flex; gap:18px; margin-top:20px; padding-top:20px; border-top:1px solid var(--line-dark);}
  .unit-stats div b{display:block; font-family:'Fraunces',serif; font-size:18px; color:var(--gold); font-weight:600;}
  .unit-stats div span{font-size:11px; color:#848484; text-transform:uppercase; letter-spacing:.05em;}
  .unit-card .link{
    display:inline-flex; align-items:center; gap:6px; margin-top:22px;
    font-size:13px; font-weight:600; color:var(--gold);
  }

  /* PILLARS grid (from proposal) */
  .pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .pillar{
    border:1px solid var(--line); border-radius:var(--radius); padding:26px;
    background:var(--white); position:relative;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .pillar:hover{border-color:var(--gold); box-shadow:0 12px 30px rgba(10,10,10,0.06);}
  .pillar .ico{
    width:42px; height:42px; border-radius:10px; background:var(--gold-pale);
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
    color:var(--gold-deep); font-size:18px;
  }
  .pillar h3{font-size:16px; font-weight:600;}
  .pillar p{font-size:13.5px; color:var(--muted); margin-top:8px; line-height:1.55;}

  /* TESTIMONIALS */
  .testi-wrap{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .testi{
    border:1px solid var(--line); border-radius:var(--radius); padding:26px; background:var(--cream);
  }
  .testi .quote{font-family:'Fraunces',serif; font-style:italic; font-size:16px; line-height:1.55; color:var(--black);}
  .testi .who{display:flex; align-items:center; gap:12px; margin-top:20px;}
  .avatar{width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--black)); flex-shrink:0;}
  .who b{font-size:13.5px; display:block;}
  .who span{font-size:12px; color:var(--muted);}

  /* FAQ */
  .faq{max-width:760px;}
  .faq-item{border-bottom:1px solid var(--line); padding:20px 0;}
  .faq-item summary{
    cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
    font-weight:600; font-size:15.5px;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary .plus{color:var(--gold-deep); font-size:20px; transition:transform .2s ease;}
  .faq-item[open] summary .plus{transform:rotate(45deg);}
  .faq-item p{margin-top:12px; font-size:14px; color:var(--muted); line-height:1.6;}

  /* CLIENT AREA / LOGIN */
  .client-area{
    background:var(--cream); border:1px solid var(--line); border-radius:22px;
    padding:56px; display:grid; grid-template-columns:1fr .85fr; gap:52px; align-items:center;
  }
  .client-copy ul{margin-top:22px; display:flex; flex-direction:column; gap:14px;}
  .client-copy li{display:flex; gap:12px; font-size:14.5px; color:var(--muted); align-items:flex-start;}
  .client-copy li b{color:var(--black); font-weight:600;}
  .login-card{
    background:var(--white); border:1px solid var(--line); border-radius:18px; padding:32px;
    box-shadow:0 24px 60px rgba(10,10,10,0.08);
  }
  .login-card .login-top{display:flex; align-items:center; gap:10px; margin-bottom:22px;}
  .login-card .login-top .dot{width:9px; height:9px; border-radius:50%; background:var(--gold);}
  .login-card .login-top span{font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
  .login-card h4{font-size:19px; font-weight:600; font-family:'Fraunces',serif;}
  .login-card p.hint{font-size:13px; color:var(--muted); margin-top:6px;}
  .field{margin-top:18px;}
  .field label{display:block; font-size:12px; font-weight:600; color:var(--black); margin-bottom:7px;}
  .field .input{
    border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-size:13.5px; color:var(--muted);
    background:var(--cream);
  }
  .login-card .forgot{display:block; text-align:right; font-size:12px; color:var(--gold-deep); font-weight:600; margin-top:10px;}
  .login-card .btn{width:100%; justify-content:center; margin-top:20px;}
  .login-card .balance{
    margin-top:24px; padding-top:20px; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; align-items:center;
  }
  .login-card .balance span{font-size:12px; color:var(--muted);}
  .login-card .balance b{font-family:'Fraunces',serif; font-size:20px; color:var(--gold-deep);}

  /* ORÇAMENTO / CAPTAÇÃO DE LEAD */
  .orcamento-page{padding:60px 0 90px;}
  .orcamento-wrap{
    background:var(--cream); border:1px solid var(--line); border-radius:22px;
    padding:56px; display:grid; grid-template-columns:1fr .95fr; gap:52px; align-items:start;
  }
  .orcamento-copy ul{margin-top:22px; display:flex; flex-direction:column; gap:14px;}
  .orcamento-copy li{display:flex; gap:12px; font-size:14.5px; color:var(--muted); align-items:flex-start;}
  .orcamento-copy li b{color:var(--black); font-weight:600;}
  .orcamento-contact{margin-top:28px; display:flex; flex-direction:column; gap:6px; font-size:13.5px; color:var(--muted);}
  .orcamento-contact b{color:var(--black);}
  .orcamento-card{
    background:var(--white); border:1px solid var(--line); border-radius:18px; padding:32px;
    box-shadow:0 24px 60px rgba(10,10,10,0.08);
  }
  .orc-row{margin-top:16px; display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .orc-row:first-child{margin-top:0;}
  .orc-field{margin-top:16px;}
  .orc-field:first-child{margin-top:0;}
  .orc-row .orc-field{margin-top:0;}
  .orc-field label{display:block; font-size:12px; font-weight:600; color:var(--black); margin-bottom:7px;}
  .orc-field input, .orc-field select, .orc-field textarea{
    width:100%; border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-size:13.5px;
    color:var(--black); background:var(--cream); font-family:'Inter',sans-serif;
  }
  .orc-field input:focus, .orc-field select:focus, .orc-field textarea:focus{
    outline:none; border-color:var(--gold);
  }
  .orc-field textarea{resize:vertical; min-height:80px; font-family:'Inter',sans-serif;}
  /* O cinza padrão do navegador para placeholder não garante contraste
     suficiente sobre o fundo --cream — fixamos explicitamente. */
  .orc-field input::placeholder, .orc-field textarea::placeholder{color:var(--muted); opacity:1;}
  .orc-honeypot{position:absolute; left:-9999px; top:-9999px; opacity:0; height:0; width:0;}
  .orcamento-card .btn{width:100%; justify-content:center; margin-top:20px; border:none; cursor:pointer; font-family:'Inter',sans-serif;}
  .orcamento-card .btn:disabled{opacity:.6; cursor:not-allowed;}
  .orc-msg{margin-top:14px; font-size:13px; text-align:center; display:none; line-height:1.5;}
  .orc-msg.show{display:block;}
  .orc-msg.ok{color:#1a7f4e;}
  .orc-msg.erro{color:#c0392b;}

  /* CTA band */
  .cta-band{
    background:linear-gradient(120deg, var(--gold) 0%, var(--gold-deep) 100%);
    color:var(--black); border-radius:22px; padding:56px; text-align:center;
  }
  .cta-band h2{font-size:clamp(26px,3vw,36px); font-weight:600;}
  .cta-band p{margin-top:12px; font-size:15px; opacity:.75;}
  .cta-band .btn{background:var(--black); color:var(--white); margin-top:26px; border-color:var(--black);}
  .cta-band .btn:hover{background:var(--charcoal);}

  footer{background:var(--black); color:#B0B0B0; padding:50px 0 34px;}
  footer .wrap{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:30px;}
  footer .logo-img{filter:brightness(0) invert(1);}
  footer .fcol span{display:block; font-size:13px; color:#A6A6A6; margin-top:8px;}
  footer .fcol-title{
    font-family:'Inter',sans-serif; font-size:12px; font-weight:700; text-transform:uppercase;
    letter-spacing:.08em; color:var(--gold); margin-bottom:10px;
  }
  .fine{margin-top:40px; font-size:12px; color:#9A9A9A; text-align:center;}

  /* PÁGINAS INTERNAS (listagens e detalhes de espaço/unidade) */
  .breadcrumb{font-size:12.5px; color:var(--muted); margin-bottom:18px;}
  .breadcrumb a{color:var(--muted);}
  .breadcrumb a:hover{color:var(--gold-deep);}
  .page-hero{padding:60px 0 60px;}
  .page-hero .eyebrow{margin-bottom:0;}
  .page-hero h1{font-family:'Fraunces',serif; font-size:clamp(32px,4vw,48px); font-weight:600; line-height:1.1; margin-top:14px;}
  .page-hero p{color:var(--muted); margin-top:16px; font-size:16px; line-height:1.6; max-width:640px;}

  .detail-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:start; margin-top:10px;}
  .detail-photo{
    aspect-ratio:4/3; height:auto; border-radius:var(--radius); overflow:hidden; position:relative;
    border:1px solid var(--line); background:linear-gradient(160deg,#2A2A2A,#0A0A0A);
  }
  .detail-info h2{font-family:'Fraunces',serif; font-size:24px; font-weight:600;}
  .detail-info .cap-badge{
    display:inline-block; margin-top:10px; background:var(--cream); border:1px solid var(--line);
    border-radius:999px; padding:6px 14px; font-size:13px; font-weight:700; color:var(--gold-deep);
  }
  .detail-info p{color:var(--muted); margin-top:18px; font-size:15.5px; line-height:1.7;}
  .detail-info .btn{margin-top:26px;}
  .detail-related{margin-top:14px; font-size:13.5px; color:var(--muted);}
  .detail-related a{color:var(--gold-deep); font-weight:600;}

  .hub-intro{padding:60px 0 40px;}

  .unit-meta-list{margin-top:22px; display:flex; flex-direction:column; gap:10px; font-size:14.5px; color:var(--muted);}
  .unit-meta-list b{color:var(--black);}

  /* SLIDESHOW DE DESTAQUES NO HERO (fotos de eventos, via painel) */
  .hero-slideshow{position:absolute; inset:0;}
  .hero-slide{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    opacity:0; transition:opacity .8s ease;
  }
  .hero-slide.ativa{opacity:1;}
  .hero-slideshow-barra{
    position:absolute; bottom:22px; left:22px; right:22px; z-index:2;
    background:rgba(10,10,10,0.7); backdrop-filter:blur(6px);
    border:1px solid var(--line-dark); border-radius:12px; padding:12px 16px;
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    opacity:0; transition:opacity .4s ease;
  }
  .hero-slideshow-barra.ativo{opacity:1;}
  .hero-slideshow-barra .legenda-texto{
    color:var(--white); font-size:13.5px; font-weight:500;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .hero-slideshow-dots{display:flex; flex-shrink:0;}
  .hero-slideshow-dots .dot{
    width:24px; height:24px; border-radius:50%; background:transparent;
    border:none; padding:0; cursor:pointer; position:relative;
    display:flex; align-items:center; justify-content:center;
  }
  .hero-slideshow-dots .dot::after{
    content:''; width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,0.4);
    transition:background .2s ease, transform .2s ease;
  }
  .hero-slideshow-dots .dot.ativo::after{background:var(--gold); transform:scale(1.3);}

  /* ÁREA DO CLIENTE — página real (/area-do-cliente.html) */
  .cliente-page{padding:60px 0 100px; min-height:60vh;}
  .cliente-shell{max-width:440px; margin:0 auto;}
  .field input, .field select{
    width:100%; border:1px solid var(--line); border-radius:10px; padding:12px 14px;
    font-size:13.5px; color:var(--black); background:var(--cream); font-family:'Inter',sans-serif;
  }
  .field input:focus, .field select:focus{outline:none; border-color:var(--gold);}
  .field input::placeholder{color:var(--muted); opacity:1;}
  .login-card .msg{font-size:12.5px; margin-top:14px; text-align:center; min-height:16px;}
  .login-card .msg.erro{color:#c0392b;}
  .login-card .msg.ok{color:#1a7f4e;}
  .login-card .voltar{display:block; text-align:center; font-size:12.5px; color:var(--muted); margin-top:16px; cursor:pointer;}
  .login-card .voltar:hover{color:var(--gold-deep);}

  .cliente-dashboard{max-width:820px; margin:0 auto;}
  .cliente-header{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; margin-bottom:32px;}
  .cliente-header h1{font-family:'Fraunces',serif; font-size:clamp(24px,3vw,32px); font-weight:600;}
  .cliente-header p{color:var(--muted); font-size:14px; margin-top:6px;}
  .cliente-saldo-card{
    background:linear-gradient(160deg, var(--charcoal) 0%, var(--black) 100%); color:var(--white);
    border-radius:18px; padding:28px 32px; margin-bottom:32px;
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
  }
  .cliente-saldo-card span{font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; color:#919191;}
  .cliente-saldo-card b{display:block; font-family:'Fraunces',serif; font-size:32px; color:var(--gold); font-weight:600; margin-top:6px;}
  .cliente-saldo-card .exp{font-size:12px; color:#848484; margin-top:4px; display:block;}

  .cliente-reserva-card{
    background:var(--white); border:1px solid var(--line); border-radius:14px; padding:20px 22px;
    margin-bottom:14px; cursor:pointer; transition:border-color .2s ease;
  }
  .cliente-reserva-card:hover{border-color:var(--gold);}
  .cliente-reserva-top{display:flex; justify-content:space-between; align-items:flex-start; gap:14px; flex-wrap:wrap;}
  .cliente-reserva-top h3{font-size:16.5px; font-weight:600;}
  .cliente-reserva-top .data{font-size:13px; color:var(--muted); margin-top:4px;}
  .cliente-reserva-valores{display:flex; gap:22px; margin-top:14px; flex-wrap:wrap;}
  .cliente-reserva-valores div span{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);}
  .cliente-reserva-valores div b{font-family:'Fraunces',serif; font-size:16px; color:var(--black);}
  .cliente-parcelas{margin-top:16px; padding-top:16px; border-top:1px solid var(--line); display:none;}
  .cliente-parcelas.aberto{display:block;}
  .cliente-parcela-linha{display:flex; justify-content:space-between; align-items:center; padding:8px 0; font-size:13px; border-bottom:1px solid var(--line);}
  .cliente-parcela-linha:last-child{border-bottom:none;}

  .status-badge{display:inline-block; padding:4px 12px; border-radius:999px; font-size:11.5px; font-weight:700;}
  .status-solicitada{background:#fef3c7; color:#92400e;}
  .status-aguardando_pagamento{background:#e0f2fe; color:#075985;}
  .status-paga_confirmada{background:#d1fae5; color:#065f46;}
  .status-cancelada{background:#fee2e2; color:#991b1b;}
  .status-pendente{background:#fef3c7; color:#92400e;}
  .status-pago, .status-pago_parcial{background:#d1fae5; color:#065f46;}
  .status-disponivel{background:#d1fae5; color:#065f46;}
  .status-parcialmente_usado{background:#dbeafe; color:#1e40af;}
  .status-esgotado{background:#f3f4f6; color:#4B5563;}
  .status-expirado{background:#fee2e2; color:#991b1b;}

  .cliente-vazio{text-align:center; padding:40px 20px; color:var(--muted); font-size:14px;}

  /* ABAS DO DASHBOARD DO CLIENTE */
  .cliente-abas{
    display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:24px;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
  }
  .cliente-aba{
    background:none; border:none; padding:12px 16px; font-size:13.5px; font-weight:600;
    color:var(--muted); cursor:pointer; border-bottom:2px solid transparent; white-space:nowrap;
    display:flex; align-items:center; gap:6px; font-family:'Inter',sans-serif;
  }
  .cliente-aba:hover{color:var(--black);}
  .cliente-aba.ativa{color:var(--gold-deep); border-bottom-color:var(--gold);}
  .cliente-aba-badge{
    background:#dc2626; color:#fff; font-size:10px; font-weight:700; min-width:16px; height:16px;
    border-radius:999px; display:inline-flex; align-items:center; justify-content:center; padding:0 4px;
  }
  .cliente-aba-conteudo{min-height:200px;}
  .cliente-subtitulo{font-family:'Fraunces',serif; font-size:16px; font-weight:600; margin:22px 0 12px;}
  .cliente-subtitulo:first-child{margin-top:0;}
  .cliente-limite-info{font-size:13px; color:var(--muted); margin-bottom:10px;}

  /* EXTRATO DE CRÉDITOS */
  .extrato-card{
    background:var(--white); border:1px solid var(--line); border-radius:14px; padding:18px 20px; margin-bottom:12px;
  }
  .extrato-topo{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;}
  .extrato-topo strong{font-size:14px;}
  .extrato-valor{font-family:'Fraunces',serif; font-size:20px; font-weight:600; color:var(--gold-deep); margin-top:8px;}
  .extrato-detalhe{font-size:12.5px; color:var(--muted); margin-top:4px;}
  .extrato-usado{font-size:12px; color:#92400e; margin-top:8px; background:#fef3c7; padding:6px 10px; border-radius:8px; display:inline-block;}

  /* USAR CRÉDITO */
  .locacao-opcao{
    background:var(--white); border:2px solid var(--line); border-radius:14px; padding:16px 18px;
    margin-bottom:10px; cursor:pointer; transition:border-color .2s ease;
  }
  .locacao-opcao:hover{border-color:var(--gold);}
  .locacao-opcao.selecionada{border-color:var(--gold); background:var(--cream);}
  .locacao-opcao strong{font-size:14px;}
  .locacao-opcao .data{font-size:12.5px; color:var(--muted); margin-top:3px;}
  .locacao-opcao .falta{font-size:13px; color:var(--gold-deep); font-weight:600; margin-top:8px;}

  /* NOTIFICAÇÕES */
  .notificacao-card{
    display:flex; gap:12px; align-items:flex-start; background:var(--white); border:1px solid var(--line);
    border-radius:12px; padding:14px 16px; margin-bottom:10px; cursor:pointer;
  }
  .notificacao-card.nao-lida{background:var(--cream); border-color:var(--gold);}
  .notificacao-icone{font-size:20px; flex-shrink:0;}
  .notificacao-titulo{font-size:13.5px; font-weight:600;}
  .notificacao-mensagem{font-size:12.5px; color:var(--muted); margin-top:3px;}
  .notificacao-data{font-size:11px; color:var(--muted); margin-top:6px;}
  .notificacao-bolinha{width:8px; height:8px; border-radius:50%; background:var(--gold); flex-shrink:0; margin-top:4px;}

  /* BOTÃO FLUTUANTE DO WHATSAPP (presente em todas as páginas) */
  .whatsapp-float{
    position:fixed; bottom:24px; right:24px; z-index:999;
    width:58px; height:58px; border-radius:50%;
    background:#25D366; display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 20px rgba(0,0,0,0.28);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .whatsapp-float:hover{transform:scale(1.08); box-shadow:0 8px 26px rgba(0,0,0,0.34);}
  .whatsapp-float svg{width:29px; height:29px; fill:#fff;}
  @media (max-width:600px){
    .whatsapp-float{width:52px; height:52px; bottom:18px; right:18px;}
    .whatsapp-float svg{width:26px; height:26px;}
  }

  /* ============================================================
     RESPONSIVO MOBILE — mantido no final do arquivo de propósito:
     como várias regras aqui têm a mesma especificidade das regras
     "normais" acima (ex.: .page-hero, .cliente-aba.ativa), em CSS
     quem vem depois no arquivo vence em caso de empate. Colocando
     estes blocos por último garantimos que eles realmente
     sobrescrevam o restante, em vez de perder silenciosamente.
     ============================================================ */
  @media (max-width:860px){
    section{padding:44px 0;}
    .hero .wrap{grid-template-columns:1fr;}
    .hero-visual{max-width:420px;}
    .spaces{grid-template-columns:1fr;}
    .tour{grid-template-columns:1fr;}
    .client-area{grid-template-columns:1fr; padding:32px;}
    .pillars{grid-template-columns:1fr;}
    .testi-wrap{grid-template-columns:1fr;}
    .units-grid{grid-template-columns:1fr;}
    .orcamento-wrap{grid-template-columns:1fr; padding:28px; gap:28px;}
    .orc-row{grid-template-columns:1fr;}
    .detail-grid{grid-template-columns:1fr !important;}

    /* Header vira menu hambúrguer no mobile: nav .wrap quebra em linhas,
       cada bloco (links, Área do Cliente, Solicitar orçamento) some por padrão
       e só aparece — em coluna, ocupando a largura toda — quando o menu é aberto. */
    nav .wrap{flex-wrap:wrap; height:auto; min-height:72px; padding-top:14px; padding-bottom:14px; row-gap:0;}
    .nav-toggle{display:flex;}
    .navlinks{
      display:none; order:3; width:100%; flex-direction:column; align-items:stretch; gap:0;
      margin-top:16px; padding-top:16px; border-top:1px solid var(--line);
    }
    .navlinks a{padding:13px 2px; border-bottom:1px solid var(--line); font-size:15px;}
    .navdrop{width:100%; border-bottom:1px solid var(--line);}
    .navdrop-trigger{width:100%; padding:13px 2px; justify-content:space-between; font-size:15px; cursor:pointer;}
    .navdrop-trigger svg{display:block; width:11px; height:11px;}
    .navdrop:not(.open) .navdrop-trigger svg{transform:none;}
    .navdrop.open .navdrop-trigger svg{transform:rotate(180deg);}
    /* Fechado por padrão no mobile: só abre ao tocar em "Unidades" (classe .open via JS) */
    .navdrop-menu{position:static; opacity:0; pointer-events:none; transform:none !important; padding-top:0; height:0; overflow:hidden;}
    .navdrop.open .navdrop-menu{opacity:1; pointer-events:auto; height:auto; overflow:visible;}
    /* Anula a regra de hover feita para o dropdown flutuante do desktop
       (ela centralizava a caixa com translateX(-50%), o que no mobile — já em
       largura total — empurra o conteúdo pra fora da tela à esquerda). */
    .navdrop:hover .navdrop-menu{transform:none !important;}
    .navdrop-menu-inner{border:none; box-shadow:none; padding:0 0 8px 14px; border-radius:0; min-width:0;}
    .navdrop-menu-inner a{padding:10px 0; font-size:14px; color:var(--muted);}
    nav .btn-ghost{display:none; order:4; width:100%; justify-content:center; margin:10px 0 0 !important;}
    nav .btn-gold{display:none; order:5; width:100%; justify-content:center; margin:10px 0 0;}
    nav.menu-open .navlinks, nav.menu-open .btn-ghost, nav.menu-open .btn-gold{display:flex;}

    /* Menos espaço vazio entre seções e no topo/rodapé das páginas internas */
    .orcamento-page{padding:32px 0 56px !important;}
    .page-hero{padding:36px 0 36px;}
    .hub-intro{padding:36px 0 24px;}
    .cta-band{padding:36px 28px;}
    footer{padding:36px 0 24px;}

    /* Formulário de orçamento no mobile: mantém título/intro, mas esconde a
       lista de benefícios e o bloco de e-mail/WhatsApp — no desktop eles
       preenchem bem o espaço ao lado do form, mas no mobile só empurram o
       formulário (o que importa) pra baixo sem necessidade. */
    .orcamento-copy ul, .orcamento-contact{display:none;}

    /* Área do Cliente: abas viram "chips" que quebram linha em vez de uma
       barra com scroll horizontal cortando o texto. */
    .cliente-abas{flex-wrap:wrap; overflow-x:visible; gap:8px; border-bottom:none; margin-bottom:20px;}
    .cliente-aba{
      border:1px solid var(--line); border-radius:999px; padding:9px 14px; font-size:13px;
    }
    .cliente-aba.ativa{background:var(--gold); border-color:var(--gold); color:var(--black);}
    .cliente-header{margin-bottom:24px;}
    .cliente-saldo-card{padding:22px 24px; margin-bottom:24px;}
  }

  @media (max-width:480px){
    section{padding:36px 0;}
    .orcamento-card{padding:24px;}
    .orc-field{margin-top:13px;}
    .orcamento-wrap{padding:20px; gap:22px;}
  }