:root{
  --bg:#0b0d10;       /* fundo quase preto */
  --ink:#eef2f6;      /* texto principal */
  --muted:#b8c3cf;    /* texto secundário */
  --brand:#37b7f7;    /* azul cristal */
  --brand-2:#69e1ff;  /* azul claro */
  --card:#12161b;     /* blocos */
  --ok:#22c55e;       /* verde CTA secundário */
  --warning:#f59e0b;  /* destaque */
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  --radius: 18px;
}

.chip{display:inline-block;padding:.2rem .6rem;margin-top: 5px;border:1px solid #2a3542;border-radius:999px;color:var(--muted);font-size:.85rem}
.grid{display:grid;gap:1.2rem}
.card{background:var(--card);border:1px solid #1e2630;border-radius:var(--radius);box-shadow:var(--shadow)}
header.site{position:sticky;top:0;backdrop-filter:blur(8px);background:rgba(11,13,16,.6);border-bottom:1px solid #1e2630;z-index:50}
header .wrap{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0}
nav {display: contents}
nav a{margin-left:1rem;color:var(--muted)}
nav a:hover{color:var(--ink)}
.logo{display:flex;align-items:center;gap:.6rem;font-weight:800;color:var(--ink)}
.logo-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 0 24px rgba(105,225,255,.6)}
.lang-switch{
position:relative;
margin-left:1rem;
}
.lang-switch__toggle{
display:inline-flex;
align-items:center;
gap:.3rem;
padding:.4rem .9rem;
border:1px solid #2a3542;
border-radius:12px;
background:#0f141a;
color:var(--muted);
font-weight:700;
cursor:pointer;
}
.lang-switch__toggle:focus-visible{
outline:3px solid rgba(185,149,255,.6);
outline-offset:2px;
}
.lang-switch.open .lang-switch__toggle,
.lang-switch__toggle:hover{
color:var(--ink);
border-color:var(--brand);
}
.lang-switch__menu{
position:absolute;
top:calc(100% + .4rem);
right:0;
display:none;
flex-direction:column;
background:#0f141a;
border:1px solid #1e2630;
border-radius:12px;
box-shadow:var(--shadow);
min-width:140px;
padding:.4rem;
z-index:120;
}
.lang-switch.open .lang-switch__menu{
display:flex;
}
.lang-switch__link{
padding:.4rem .6rem;
border-radius:8px;
color:var(--muted);
font-weight:600;
}
.lang-switch__link:hover{
background:rgba(55,183,247,.1);
color:var(--ink);
}
.lang-switch__link.active{
background:linear-gradient(135deg,var(--brand-2),var(--brand));
color:#fff;
}
@media (max-width:900px){
.lang-switch{
  margin-left:auto;
}
}

a{text-decoration: none;}

/* Base responsiva */
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
background:var(--bg);color:var(--ink);
font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",sans-serif;
-webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.skip-link{
position:absolute;
top:0;
left:0;
transform:translateY(-120%);
background:#f9d442;
color:#050814;
padding:.55rem 1.25rem;
border-radius:999px;
font-weight:700;
z-index:999;
box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.skip-link:focus{
transform:translateY(10px);
outline:3px solid #050814;
}
img,video{max-width:100%;height:auto;display:block}

/* Cookie consent */
.cookie-banner[hidden]{display:none}
.cookie-banner{
  position:fixed;
  inset:auto 1rem 1rem 1rem;
  z-index:1000;
  display:flex;
  justify-content:center;
}
.cookie-banner__panel{
  width:min(960px, 100%);
  background:#0f172a;
  color:#e2e8f0;
  border:1px solid #1e293b;
  border-radius:16px;
  padding:1.25rem 1.5rem;
  box-shadow:0 20px 50px rgba(3,7,18,.6);
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
  justify-content:space-between;
}
.cookie-banner__content{
  flex:1 1 320px;
}
.cookie-banner__content strong{
  display:block;
  font-size:1.05rem;
  margin-bottom:.35rem;
}
.cookie-banner__content p{
  margin:0 0 .5rem;
  color:#cbd5f5;
}
.cookie-banner__toggle{
  background:none;
  border:none;
  color:#7dd3fc;
  font-weight:600;
  cursor:pointer;
  padding:0;
}
.cookie-banner__details{
  margin-top:.6rem;
  border-top:1px solid #1e293b;
  padding-top:.6rem;
  font-size:.9rem;
  color:#cbd5f5;
}
.cookie-banner__row{
  display:flex;
  justify-content:space-between;
  gap:.75rem;
  margin-top:.35rem;
}
.cookie-banner__badge{
  background:#1e293b;
  color:#e2e8f0;
  border-radius:999px;
  padding:.1rem .6rem;
  font-size:.75rem;
}
.cookie-banner__actions{
  display:flex;
  gap:.75rem;
  flex:0 0 auto;
}
.cookie-banner__btn{
  border:0;
  border-radius:999px;
  padding:.6rem 1.2rem;
  font-weight:700;
  cursor:pointer;
  background:#38bdf8;
  color:#0b1220;
}
.cookie-banner__btn--ghost{
  background:transparent;
  color:#e2e8f0;
  border:1px solid #334155;
}
.cookie-banner__btn--outline{
  background:transparent;
  color:#7dd3fc;
  border:1px solid #38bdf8;
}
@media (max-width:640px){
  .cookie-banner{
    inset:auto .75rem .75rem .75rem;
  }
  .cookie-banner__panel{
    padding:1rem;
  }
  .cookie-banner__actions{
    width:100%;
    justify-content:flex-end;
  }
}

/* Tipografia fluida */
h1{font-size:clamp(1.8rem, 3.8vw, 3.2rem);
  line-height:1.15;margin:0 0 1rem}
@media (max-width:480px){
  h1{
    font-size: 17px;
    font-weight: 900;
  }

}
h2{font-size:clamp(1.3rem, 2.4vw, 1.8rem);margin:0 0 1rem}
p,li{font-size:clamp(0.98rem, 1.2vw, 1rem)}

/* Container com respiro lateral */
.container{width:min(1120px, 92vw);margin-inline:auto}

/* Toque confortável em mobile */
a, button, input, select, textarea{touch-action:manipulation}
input,select,textarea{font-size:16px} /* evita zoom no iOS */

.btn{
display:inline-flex;gap:.6rem;align-items:center;justify-content:center;
padding:.9rem 1.2rem;border-radius:999px;
background:linear-gradient(135deg, var(--brand-2), var(--brand));
color:#fff;font-weight:800;border:1px solid rgba(123,92,255,.45);
box-shadow:var(--shadow);
transition:transform .15s ease, filter .15s ease;
}
.btn:hover{ filter:brightness(1.07); transform:translateY(-1px) }

.btn-outline{
background:transparent;color:#e9e4ff;border-color:rgba(123,92,255,.55);
}
.btn-outline:hover{ background:rgba(123,92,255,.12) }

.hero{
padding:clamp(3rem, 7vw, 7rem) 0 3rem;
/*background:
    radial-gradient(1200px 600px at 80% -20%, rgba(185,149,255,.18), transparent 60%),
    radial-gradient(800px 400px at -10% 10%, rgba(123,92,255,.14), transparent 60%);*/
}
.cta-row{display:flex;gap:.8rem;flex-wrap:wrap}
.trust{display:flex;gap:1rem;align-items:center;color:var(--muted);margin-top:1.2rem}

/* Sections */
section{padding:3rem 0}
section h2{font-size:1.8rem;margin:0 0 1rem}
.pill{font-size:.8rem;color:var(--muted)}

/* Services */
.services{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.service h3{margin:.4rem 0}

/* Packages */
.packages{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.price{font-size:2rem;font-weight:900}
.badge{background:linear-gradient(135deg,#193042,#0f1923);border:1px solid #2a3542;color:#a8d2ff;padding:.3rem .7rem;border-radius:999px;font-size:.82rem}

/* Gallery */
.gallery{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.gallery img{border-radius:12px}

/* Reviews */
.review q{display:block;font-style:italic;color:#d6e3ef}
.review footer{color:var(--muted);margin-top:.6rem}

/* Contact */
form{display:grid;gap:.8rem}
input,textarea,select{background:#0f141a;border:1px solid #273141;color:var(--ink);padding:.9rem;border-radius:12px}
label{font-size:.9rem;color:var(--muted)}

/* Footer */
footer{padding:2rem 0;border-top:1px solid #1e2630;color:var(--muted)}

/* Sections */
section{padding:clamp(2rem, 4vw, 3rem) 0}
.pill{font-size:.85rem;color:var(--muted)}

/* Cards e listas */
.card{background:var(--card);border:1px solid #1e2630;border-radius:var(--radius);box-shadow:var(--shadow)}

/* Serviços, Pacotes e Galeria: auto-fit para quebrar sozinho */
.grid{display:grid;gap:1.2rem}
.services{grid-template-columns:repeat(auto-fit, minmax(230px,1fr))}
.packages{grid-template-columns:repeat(auto-fit, minmax(260px,1fr))}
.gallery{grid-template-columns:repeat(auto-fit, minmax(160px,1fr))}
.gallery img{border-radius:12px}

/* Contacto: 2 colunas no desktop, 1 no mobile */
#contacto{
position:relative;
}
#contacto .grid{grid-template-columns:1fr;gap:1rem}
@media (min-width: 880px){
#contacto .grid{grid-template-columns:1fr 1fr;gap:1.6rem}
}

/* Sobre + Mapa: 2 colunas no desktop, 1 no mobile */
#sobre .grid{display:grid;gap:1.2rem}
@media (min-width: 960px){
#sobre .grid{grid-template-columns:1.2fr .8fr;align-items:start}
}

/* Form inputs full-width */
form{display:grid;gap:.8rem}
input,textarea,select{
width:100%;background:#0f141a;border:1px solid #273141;
color:var(--ink);padding:.9rem;border-radius:12px
}
label{font-size:.9rem;color:var(--muted)}

/* Sticky Mobile Bar */
.sticky-cta{
position:fixed;bottom:14px;left:50%;transform:translateX(-50%);
width:min(900px, 92vw);display:flex;gap:.6rem;justify-content:space-between;z-index:70;
padding-bottom:env(safe-area-inset-bottom);
}
.sticky-cta .btn{flex:1}

@media (min-width:900px){ .sticky-cta{display:none} }

/* Botão flutuante voltar ao topo (com safe-area) */
.to-top{
position:fixed;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));
width:46px;height:46px;border-radius:999px;
border:1px solid rgba(123,92,255,.45);
background:linear-gradient(135deg,var(--brand-2),var(--brand));
color:#fff;display:none;align-items:center;justify-content:center;
box-shadow:var(--shadow);z-index:90;cursor:pointer;font-weight:900
}
.to-top.show{display:flex}
@media (min-width:900px){ .to-top{ bottom:24px } }

/* Tablet para baixo */
@media (max-width: 880px){
header .wrap{flex-wrap:wrap;gap:.8rem}
nav a{margin-left:.6rem}
.cta-row .btn{flex:1}          /* botões ocupam largura em mobile */
.price{font-size:1.6rem}
iframe[title*="Mapa"]{height:300px}
}

/* Mobile pequeno */
@media (max-width: 480px){
.chip{font-size:.78rem}
.badge{font-size:.78rem}
.hero p{max-width:unset}
nav a{margin-left:.4rem}
.gallery{grid-template-columns:repeat(2, 1fr)} /* 2 colunas em telas bem pequenas */

.cta-row {
display: flex;
gap: 1rem;
flex-wrap: wrap;
flex-direction: column;
}
}

/* Mostra foco apenas quando navega por teclado */
.show-focus :focus-visible{
outline:3px solid rgba(185,149,255,.6);
outline-offset:2px;
}

/* Z-index maior pro header ficar acima dos botões flutuantes */
header.site{ z-index:100; }

/* Botão hamburger (esconde no desktop) */
.menu-toggle{
display:none;background:transparent;border:1px solid #2a3542;
border-radius:12px;padding:.5rem .8rem;color:#e9e4ff
}


/* Nav colapsado em mobile */
@media (max-width:900px){
header .wrap{position:relative}
.menu-toggle{display:inline-flex;align-items:center;gap:.4rem;margin-left:auto}
/* Esconde o nav por padrão em mobile */
header.site nav{
    display:none;position:absolute;top:56px;left:0;right:0;
    background:rgba(11,13,16,.96);padding:.8rem;border-bottom:1px solid #1e2630
}
/* Mostra nav quando header tiver .open */
header.site.open nav{
    display:flex;flex-direction:column;gap:.6rem;
    position:fixed; /* sai do container e cobre a viewport */
    /*top:var(--header-h,64px);*/
    left:0; right:0; width:100vw;
    padding:1rem clamp(1rem,4vw,2rem); /* “encosta” às laterais */
    background:rgba(11,13,16,.96);
    border-bottom:1px solid #1e2630;
}
header.site.open nav a{margin:0}
}

@media (max-width:900px){
footer{ padding-bottom: calc(2.5rem + env(safe-area-inset-bottom)) }
}

/* Grid da galeria: 1 col no mobile, 2 no tablet, 3 no desktop */
.ig-embeds{
display:grid;
gap:1rem;
grid-template-columns: 1fr;
}
@media (min-width: 700px){
.ig-embeds{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 1100px){
.ig-embeds{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}

/* Forçar o embed a respeitar a largura da coluna */
.ig-embeds .instagram-media{
width:100% !important;
max-width:100% !important;
min-width:0 !important;
margin:0 !important;
background:transparent !important; /* combina com o tema escuro */
}

/* O iframe que o Instagram injeta também precisa acompanhar */
.ig-embeds .instagram-media iframe{
width:100% !important;
max-width:100% !important;
}

/* Grade das redes sociais */
.social-grid{
display:grid;
gap:1.2rem;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.social-card{
position:relative;
border-radius:var(--radius);
overflow:hidden;
min-height:220px;
border:1px solid #1e2630;
box-shadow:var(--shadow);
background:#10141a;
color:#fff;
isolation:isolate;
transition:transform .3s ease, box-shadow .3s ease;
}
.social-card::before,
.social-card::after{
content:"";
position:absolute;
inset:0;
background-size:cover;
background-position:center;
opacity:.65;
transition:opacity .4s ease;
z-index:0;
}
.social-card::before{
background-image:var(--social-img, none);
}
.social-card::after{
background-image:var(--social-img-hover, none);
opacity:0;
}
.social-card:hover::before{ opacity:0; }
.social-card:hover::after{ opacity:.85; }
.social-card:hover{
transform:translateY(-6px);
box-shadow:0 18px 38px rgba(0,0,0,.45);
}
.social-card__content{
position:relative;
z-index:1;
padding:1.2rem;
display:flex;
flex-direction:column;
gap:.4rem;
height:100%;
background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.75));
}
.social-card__icon{
font-size:2rem;
display:inline-flex;
width:48px;
height:48px;
align-items:center;
justify-content:center;
border-radius:12px;
background:rgba(0,0,0,.4);
}
.social-card a{
margin-top:auto;
align-self:flex-start;
font-weight:700;
color:var(--brand-2);
text-decoration:none;
}
.social-card a:hover{
text-decoration:underline;
}

/* Formulário flutuante */
.floating-contact{
position:fixed;
right:18px;
bottom:18px;
width:min(420px, 92vw);
background:var(--card);
border:1px solid #1e2630;
border-radius:var(--radius);
box-shadow:var(--shadow);
z-index:120;
overflow:hidden;
backdrop-filter:blur(6px);
transition:transform .25s ease, opacity .25s ease;
}
.floating-contact__header{
width:100%;
display:flex;
align-items:center;
justify-content:space-between;
background:transparent;
border:none;
text-align:left;
padding:1rem;
color:var(--ink);
cursor:pointer;
gap:1rem;
}
.floating-contact__header:focus-visible{
outline:3px solid rgba(185,149,255,.6);
outline-offset:2px;
}
.floating-contact__body{
padding:1rem;
border-top:1px solid #1e2630;
background:rgba(11,13,16,.9);
max-height:calc(70vh - 64px);
overflow:auto;
}
.floating-contact form{
display:grid;
gap:.8rem;
}
.form-consent{
display:flex;
align-items:flex-start;
gap:.5rem;
font-size:.85rem;
color:var(--muted);
margin-top:-.2rem;
}
.form-consent input{
margin-top:.2rem;
}
input[name="consent"]{
width: 20px;
}
.form-consent a{
color:var(--brand-2);
}
.floating-contact.minimized .floating-contact__body{
display:none;
}
.floating-contact__icon{
transition:transform .2s ease;
font-size:1.2rem;
}
.floating-contact.minimized .floating-contact__icon{
transform:rotate(180deg);
}
.floating-contact.minimized .floating-contact__quick{
display:none;
}
@media (max-width:640px){
.floating-contact{
  left:50%;
  right:auto;
  transform:translateX(-50%);
  bottom:calc(90px + env(safe-area-inset-bottom));
  max-height:calc(80vh - 64px);
}
.floating-contact__body{
  padding:.8rem;
}
.floating-contact form{
  gap:.6rem;
}
}

#logo-top {
  width: 10%;
}

@media (max-width:480px) {
  .logo {
    width: 75%;
  }
}

.floating-contact__quick{
  display:flex;
  gap:.6rem;
  padding:1rem;
  border-bottom:1px solid #1e2630;
  background:rgba(11,13,16,.95);
  flex-wrap:wrap;
}
.floating-contact__quick-btn{
  flex:1;
  min-width:140px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  padding:.65rem;
  border-radius:12px;
  border:1px solid #273141;
  background:rgba(255,255,255,.04);
  color:var(--ink);
  font-weight:600;
}
.floating-contact__quick-btn:hover{
  border-color:var(--brand);
  color:#fff;
}
@media (max-width:640px){
  .floating-contact__quick{
    padding:.8rem;
    gap:.5rem;
  }
  .floating-contact__quick-btn{
    flex:1 1 100%;
  }
}
