/* Solar GVSoftwares - landing page (Bootstrap-first)
   Estrutura pensada para manutenção futura. */

:root{
  --brand: #0EA5E9;
  --brand2:#22C55E;
  --ink:#0F172A;
  --muted:#475569;
  --bg:#0B1220;
  --card:#0F172A;
  --wa:#25D366;
}

html { scroll-behavior: auto; } /* JS faz smooth scroll com controle */
body{
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color: var(--ink);
}

a { text-decoration: none; }
.section{
  padding: 5rem 0;
}
.section-sm{
  padding: 3.5rem 0;
}
.kicker{
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  font-size: .8rem;
  color: var(--brand);
}
.display-hero{
  font-weight: 800;
  letter-spacing: -0.03em;
}
.text-muted-2{ color: var(--muted) !important; }

/* Navbar */
.navbar{
  transition: box-shadow .2s ease, background-color .2s ease, backdrop-filter .2s ease;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(10px);
}
.navbar.navbar-scrolled{
  box-shadow: 0 8px 28px rgba(2,6,23,.12);
}

/* Hero */
.hero{
  position: relative;
  min-height: 86vh;
  display:flex;
  align-items: center;
  overflow: hidden;
  background: radial-gradient(1200px 600px at 10% 10%, rgba(14,165,233,.20), transparent 60%),
              radial-gradient(900px 500px at 90% 30%, rgba(34,197,94,.16), transparent 55%),
              #ffffff;
}
.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero-media img{
  width:100%;
  height:100%;
  object-fit: cover;
  filter: saturate(1.05) contrast(1.05);
  transform: scale(1.02);
}
.hero-media img.hero-focus-panels{
  object-position: center 18%;
  transform: scale(1.0);
}

.hero-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(11,18,32,.74) 0%, rgba(11,18,32,.54) 35%, rgba(11,18,32,.10) 70%, rgba(11,18,32,0) 100%);
  z-index:1;
}
.hero .container{
  position:relative;
  z-index:2;
  /* Compensa o navbar fixed-top (evita cortar o badge no desktop) */
  padding-top: 92px;
  padding-bottom: 14px;
}

@media (max-width: 991px){
  .hero .container{
    padding-top: 76px;
    padding-bottom: 10px;
  }
}
.hero-card{
  max-width: 640px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 1.25rem;
  padding: 2rem;
  box-shadow: 0 20px 60px rgba(2,6,23,.30);
  color: #fff;
}
.hero-card p{ color: rgba(255,255,255,.85); }

.badge-soft{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding: .4rem .7rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.92);
  font-weight: 600;
  font-size: .9rem;
}

/* Buttons */
.btn-brand{
  /* Integra com Bootstrap (evita sumir no hover) */
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--brand);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-bg: var(--brand);
  --bs-btn-active-border-color: transparent;
  --bs-btn-focus-shadow-rgb: 14,165,233;

  background-image: linear-gradient(135deg, var(--brand), var(--brand2));
  background-color: var(--brand);
  border: 0;
  font-weight: 800;
  letter-spacing: -0.01em;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.btn-brand:hover{
  filter: brightness(1.02);
  transform: translateY(-1px);
  box-shadow: 0 18px 44px rgba(2,6,23,.14);
}
.btn-brand:active{ transform: translateY(0); box-shadow: 0 10px 26px rgba(2,6,23,.10); }

.btn-wa{
  /* Integra com Bootstrap (evita sumir no hover) */
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--wa);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--wa);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-bg: var(--wa);
  --bs-btn-active-border-color: transparent;
  --bs-btn-focus-shadow-rgb: 34,197,94;

  background-color: var(--wa);
  border: 0;
  color: #fff;
  font-weight: 900;
  letter-spacing: -0.01em;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.btn-wa:hover{
  filter: brightness(1.02);
  transform: translateY(-1px);
  box-shadow: 0 18px 44px rgba(2,6,23,.14);
}
.btn-wa:active{ transform: translateY(0); box-shadow: 0 10px 26px rgba(2,6,23,.10); }

/* Cards and "vazado" image frame */
.card-lift{
  border: 1px solid rgba(2,6,23,.08);
  border-radius: 1.25rem;
  box-shadow: 0 14px 36px rgba(2,6,23,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}
.card-lift:hover{
  transform: translateY(-2px);
  box-shadow: 0 22px 52px rgba(2,6,23,.12);
}
.cutout{
  position: relative;
  border-radius: 1.25rem;
  overflow: hidden;
}
.cutout::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(circle at 20% 15%, rgba(14,165,233,.45), transparent 55%),
    radial-gradient(circle at 85% 35%, rgba(34,197,94,.35), transparent 55%),
    radial-gradient(circle at 40% 85%, rgba(245,158,11,.25), transparent 55%);
  mix-blend-mode: overlay;
  pointer-events:none;
  z-index:2;
  opacity:.75;
}
.cutout img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transform: scale(1.01);
}
.cutout.diagonal{
  clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
}

/* Reveal */
[data-reveal]{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .5s ease, transform .5s ease;
}
[data-reveal].is-visible{
  opacity: 1;
  transform: translateY(0);
}

/* Floating dock (logo + WhatsApp) */
.float-dock{
  position: fixed;
  left: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 1030;
  display:flex;
  align-items:center;
  gap:.65rem;
  padding: .55rem .7rem;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(2,6,23,.10);
  box-shadow: 0 18px 50px rgba(2,6,23,.18);
  backdrop-filter: blur(10px);
}
.float-logo{
  display:flex;
  align-items:center;
}
.float-logo img{ height: 30px; width: auto; display:block; }
.float-dock .wa-pill{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding: .55rem .8rem;
  border-radius: 999px;
  background: var(--wa);
  color: #fff;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
.float-dock .wa-pill svg{ width: 18px; height: 18px; }

@media (max-width: 420px){
  .float-dock{ left: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); padding:.45rem .55rem; }
  .float-dock .wa-pill span{ display:none; }
}

/* Footer */
.footer{
  background: #0B1220;
  color: rgba(255,255,255,.78);
}
.footer a{ color: rgba(255,255,255,.86); }
.footer a:hover{ color: #fff; }

/* Form */
.form-control, .form-select{
  border-radius: .9rem;
  border-color: rgba(2,6,23,.14);
}
.form-control:focus, .form-select:focus{
  box-shadow: 0 0 0 .25rem rgba(14,165,233,.18);
  border-color: rgba(14,165,233,.65);
}


/* Hero carousel */
.hero-media .carousel,
.hero-media .carousel-inner,
.hero-media .carousel-item{
  height: 100%;
}
.hero-media .carousel-item picture,
.hero-media .carousel-item img{
  height: 100%;
}
.hero-media .carousel-indicators{
  margin: 0;
  justify-content: flex-end;
  right: 18px;
  left: auto;
  bottom: 18px;
}
@media (prefers-reduced-motion: reduce){
  .carousel-fade .carousel-item{
    transition: none !important;
  }
}

/* Social buttons (cores oficiais) */
.btn-social{
  border: 0;
  color: #fff !important;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.btn-social:hover{ filter: brightness(0.96); }
.btn-facebook{ background: #1877F2; }
.btn-instagram{
  background: radial-gradient(circle at 30% 107%,
    #fdf497 0%, #fdf497 5%,
    #fd5949 45%, #d6249f 60%, #285AEB 90%);
}



/* Icons: alinhamento consistente em botões/links */
.icon-inline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 1.1rem;
  height: 1.1rem;
  line-height: 0;
}
.icon-inline svg{ width:100%; height:100%; display:block; }

/* Logo: usa imagem real com fundo escuro para contraste (logo tem elementos brancos) */
.brand-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: .32rem .50rem;
  border-radius: 999px;
  background: rgba(11,18,32,.92);
  box-shadow: 0 10px 26px rgba(2,6,23,.18);
}
.navbar .brand-badge img{
  height: 34px;
  width: auto;
  display:block;
}

/* Floating dock: logo em badge */
.float-logo .logo-badge{
  display:flex;
  align-items:center;
  justify-content:center;
  padding: .22rem .36rem;
  border-radius: 999px;
  background: rgba(11,18,32,.92);
  box-shadow: 0 10px 26px rgba(2,6,23,.18);
}
.float-logo img.logo-img{ height: 30px; width:auto; display:block; }

/* Social (cards) */
.social-links{
  display:grid;
  gap:.75rem;
}
.social-card{
  display:flex;
  align-items:center;
  gap:.85rem;
  padding:.75rem .85rem;
  border-radius: 1.1rem;
  background:#fff;
  border: 1px solid rgba(2,6,23,.10);
  box-shadow: 0 14px 34px rgba(2,6,23,.08);
  text-decoration:none;
  color: var(--ink);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.social-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 44px rgba(2,6,23,.12);
  border-color: rgba(2,6,23,.18);
}
.social-ico{
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  flex: 0 0 46px;
}
.social-ico .icon-svg{ width:22px; height:22px; display:block; }

.social-txt{ line-height: 1.1; }
.social-name{ font-weight: 800; }
.social-handle{ opacity: .72; font-weight: 600; font-size: .95rem; }

.social-facebook .social-ico{ background: #1877F2; }
.social-instagram .social-ico{
  background: radial-gradient(circle at 30% 107%,
    #fdf497 0%, #fdf497 5%,
    #fd5949 45%, #d6249f 60%, #285AEB 90%);
}

/* Social (ícones no rodapé) */
.social-icon-btn{
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:#fff;
  border: 1px solid rgba(255,255,255,.14);
}
.social-icon-btn .icon-svg{ width:18px; height:18px; display:block; }
.footer .social-icon-btn.social-facebook{ background:#1877F2; }
.footer .social-icon-btn.social-instagram{
  background: radial-gradient(circle at 30% 107%,
    #fdf497 0%, #fdf497 5%,
    #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
.footer .social-icon-btn:hover{ filter: brightness(.98); border-color: rgba(255,255,255,.22); }
.footer .footer .footer .social-icon-btn:hover{ filter: brightness(.98); border-color: rgba(255,255,255,.22); }


/* Ajuste fino de alinhamento dos ícones dentro de botões */
.btn .icon-inline{ vertical-align: -0.12em; }
.btn .icon-inline svg{ display:block; }
/* Quando o rodapé aparece, sobe o atalho para não cobrir informações */
.float-dock{
  /* Transição curta para não “ficar alto” por tempo perceptível no mobile */
  transition: bottom .12s ease-out, transform .12s ease-out, box-shadow .12s ease-out;
  will-change: bottom;
}
.float-dock.dock-up{
  bottom: calc(120px + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 576px){
  .float-dock.dock-up{ bottom: calc(170px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 420px){
  .float-dock.dock-up{ bottom: calc(190px + env(safe-area-inset-bottom, 0px)); }
}

/* Evita que o dock flutuante encoste no botão do formulário em telas pequenas */
@media (max-width: 576px){
  #contato{ padding-bottom: calc(6.25rem + env(safe-area-inset-bottom, 0px)); }
}

/* Rodapé mais legível */
.footer .small{
  color: rgba(255,255,255,.92);
  font-size: .95rem;
}

/* Hero focal adjustment for wide screens: keep panels visible */
.hero-media img.hero-focus-panels{
  object-position: center 22%;
  transform: scale(1.01);
}
@media (min-aspect-ratio: 2/1){
  .hero-media img.hero-focus-panels{
    object-position: center 18%;
    transform: scale(1.005);
  }
}
