@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&display=swap');

:root {
  /* Cores */
  --color-bg: #0d0b1a;
  --color-surface: #171430;
  --color-surface-2: #1f1b3d;
  --color-gold: #f3cc0c;
  --color-gold-hover: #fcb103;
  --color-text: #f5f1e8;
  --color-text-muted: #b9b3d6;
  --color-border: rgba(243, 204, 12, 0.16);

  /* Tipografia */
  --font-display: 'Cormorant Garamond', serif;
  --font-body: 'Poppins', sans-serif;

  /* Layout */
  --max-width: 1280px;
  --section-padding: 100px 8%;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 28px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--color-bg);
  font-family: var(--font-body);
  color: var(--color-text);
  overflow-x: hidden;
}

img {
  display: block;
}

a {
  color: inherit;
}

section {
  padding: var(--section-padding);
  max-width: var(--max-width);
  margin: 0 auto;
  position: relative;
}

@media screen and (max-width: 768px) {
  section {
    padding: 64px 6%;
  }
}

/* ---------- Utilitários compartilhados ---------- */

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 16px;
}

.eyebrow::before {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--color-gold);
}

.section-title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  color: var(--color-text);
  line-height: 1.15;
  margin-bottom: 18px;
}

.section-title em {
  font-style: italic;
  color: var(--color-gold);
}

.section-subtitle {
  font-size: 1.05rem;
  color: var(--color-text-muted);
  max-width: 560px;
  line-height: 1.7;
}

.section-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: 0 auto 56px;
}

.section-head .section-subtitle {
  max-width: 600px;
}

/* ---------- Botões ---------- */

.btn-default {
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background-color: var(--color-gold);
  color: #19140a;
  border-radius: var(--radius-sm);
  padding: 13px 26px;
  font-weight: 600;
  font-size: 0.95rem;
  font-family: var(--font-body);
  box-shadow: 0 4px 18px rgba(243, 204, 12, 0.22);
  cursor: pointer;
  transition: background-color .25s ease, transform .25s ease;
  white-space: nowrap;
}

.btn-default:hover {
  background-color: var(--color-gold-hover);
  transform: translateY(-2px);
}

.btn-outline {
  border: 1.5px solid var(--color-gold);
  background: transparent;
  color: var(--color-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: var(--radius-sm);
  padding: 13px 26px;
  font-weight: 600;
  font-size: 0.95rem;
  font-family: var(--font-body);
  cursor: pointer;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}

.btn-outline:hover {
  background-color: var(--color-gold);
  color: #19140a;
  transform: translateY(-2px);
}

/* ---------- Redes sociais ---------- */

.social-media-buttons {
  display: flex;
  gap: 16px;
}

.social-media-buttons a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  font-size: 1.2rem;
  border-radius: 50%;
  text-decoration: none;
  color: var(--color-gold);
  transition: background-color .25s ease, transform .25s ease, color .25s ease;
}

.social-media-buttons a:hover {
  background-color: var(--color-gold);
  color: #19140a;
  transform: translateY(-3px);
}

/* ---------- Divisor com facho de luz (assinatura visual) ---------- */

.beam-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: 0 auto 50px;
  width: fit-content;
}

.beam-divider .beam-line {
  width: 70px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-gold));
}

.beam-divider .beam-line.right {
  background: linear-gradient(90deg, var(--color-gold), transparent);
}

.beam-divider i {
  color: var(--color-gold);
  font-size: 0.85rem;
}

/* ---------- Reveal on scroll ---------- */

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---------- Foco visível (acessibilidade) ---------- */

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { transition: none; opacity: 1; transform: none; }
}


/* ========================================================================
   GCR EVENTOS — MOBILE PREMIUM UPGRADE
   Efeitos visuais, carrosséis e interatividade exclusivos para telas
   até 768px. Não interfere na versão desktop.
   ======================================================================== */

@media screen and (max-width: 768px) {

  /* ---------- Fundo com blobs animados (clima "evento") ---------- */
  body {
    position: relative;
  }

  body::before,
  body::after {
    content: '';
    position: fixed;
    z-index: 0;
    width: 60vw;
    height: 60vw;
    border-radius: 50%;
    filter: blur(70px);
    pointer-events: none;
    opacity: 0.35;
  }

  body::before {
    top: -10%;
    left: -20%;
    background: radial-gradient(circle, rgba(243, 204, 12, 0.35), transparent 70%);
    animation: blobFloat 14s ease-in-out infinite;
  }

  body::after {
    bottom: 5%;
    right: -25%;
    background: radial-gradient(circle, rgba(124, 77, 255, 0.28), transparent 70%);
    animation: blobFloat 18s ease-in-out infinite reverse;
  }

  @keyframes blobFloat {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(6vw, 8vw) scale(1.15); }
  }

  header, main, footer, .whatsapp-float, .lightbox {
    position: relative;
    z-index: 1;
  }

  /* ---------- Partículas douradas flutuantes (decorativas) ---------- */
  .gcr-particle {
    position: fixed;
    z-index: 0;
    pointer-events: none;
    border-radius: 50%;
    background: var(--color-gold);
    opacity: 0.5;
    box-shadow: 0 0 8px 1px rgba(243, 204, 12, 0.6);
    animation: particleDrift linear infinite;
  }

  @keyframes particleDrift {
    0%   { transform: translateY(0) translateX(0); opacity: 0; }
    10%  { opacity: 0.6; }
    90%  { opacity: 0.4; }
    100% { transform: translateY(-110vh) translateX(20px); opacity: 0; }
  }

  /* ---------- Header ---------- */
  header {
    padding: 16px 5%;
    transition: padding .3s ease, background-color .3s ease, box-shadow .3s ease;
  }

  header::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
    animation: headerGlow 3.5s ease-in-out infinite;
  }

  @keyframes headerGlow {
    0%, 100% { opacity: 0.25; }
    50% { opacity: 0.8; }
  }

  #nav_logo {
    height: 44px;
    transition: transform .3s ease;
  }

  #mobile_btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(243, 204, 12, 0.08);
    border: 1px solid var(--color-border);
  }

  #mobile_menu {
    background: linear-gradient(165deg, var(--color-surface-2), var(--color-surface));
    backdrop-filter: blur(18px);
  }

  #mobile_nav_list .nav-item {
    opacity: 0;
    transform: translateX(24px);
  }

  #mobile_menu.active #mobile_nav_list .nav-item {
    animation: navItemIn .5s ease forwards;
  }

  #mobile_menu.active #mobile_nav_list .nav-item:nth-child(1) { animation-delay: .05s; }
  #mobile_menu.active #mobile_nav_list .nav-item:nth-child(2) { animation-delay: .12s; }
  #mobile_menu.active #mobile_nav_list .nav-item:nth-child(3) { animation-delay: .19s; }
  #mobile_menu.active #mobile_nav_list .nav-item:nth-child(4) { animation-delay: .26s; }
  #mobile_menu.active #mobile_nav_list .nav-item:nth-child(5) { animation-delay: .33s; }

  @keyframes navItemIn {
    to { opacity: 1; transform: translateX(0); }
  }

  /* ---------- Botões: efeito ripple + brilho ---------- */
  .btn-default,
  .btn-outline {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }

  .btn-default::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.55) 50%, transparent 70%);
    transform: translateX(-120%);
    animation: btnShine 3.2s ease-in-out infinite;
  }

  @keyframes btnShine {
    0%, 60% { transform: translateX(-120%); }
    100% { transform: translateX(120%); }
  }

  .gcr-ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    transform: scale(0);
    animation: rippleAnim .6s ease-out forwards;
    pointer-events: none;
    z-index: 5;
  }

  @keyframes rippleAnim {
    to { transform: scale(2.6); opacity: 0; }
  }

  /* ---------- HERO ---------- */
  #home .hero-bg::after {
    background: linear-gradient(
      180deg,
      rgba(13, 11, 26, 0.72) 0%,
      rgba(13, 11, 26, 0.85) 30%,
      rgba(13, 11, 26, 0.97) 60%,
      rgba(13, 11, 26, 1) 100%
    ) !important;
  }

  #home .hero-bg .hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
  }

  #home .hero-bg img {
    transition: opacity .6s ease;
  }

  #home .hero-bg img {
    animation: kenBurns 16s ease-in-out infinite alternate;
  }

  @keyframes kenBurns {
    0% { transform: scale(1) translate(0,0); }
    100% { transform: scale(1.12) translate(-1%, -2%); }
  }

  #cta .kicker {
    background: rgba(243, 204, 12, 0.1);
    border: 1px solid rgba(243, 204, 12, 0.35);
    padding: 8px 16px;
    border-radius: 999px;
    position: relative;
    overflow: hidden;
    width: fit-content;
  }

  #cta .kicker::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,0.4) 50%, transparent 60%);
    transform: translateX(-150%);
    animation: btnShine 4s ease-in-out infinite;
  }

  #cta .title {
    text-shadow: 0 2px 24px rgba(0,0,0,0.4);
  }

  #home .hero-stats {
    display: flex;
    grid-template-columns: unset;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 14px;
    padding-bottom: 6px;
    padding-top: 20px;
    margin-top: 24px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  #home .hero-stats::-webkit-scrollbar { display: none; }

  #home .hero-stats div {
    scroll-snap-align: start;
    flex: 0 0 auto;
    min-width: 130px;
    background: rgba(23, 20, 48, 0.55);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 16px 18px;
    backdrop-filter: blur(10px);
    opacity: 0;
    transform: translateY(16px);
    animation: statIn .6s ease forwards;
  }

  #home .hero-stats div:nth-child(1) { animation-delay: .1s; }
  #home .hero-stats div:nth-child(2) { animation-delay: .22s; }
  #home .hero-stats div:nth-child(3) { animation-delay: .34s; }
  #home .hero-stats div:nth-child(4) { animation-delay: .46s; }

  @keyframes statIn {
    to { opacity: 1; transform: translateY(0); }
  }

  #home .hero-stats div strong {
    text-shadow: 0 0 14px rgba(243, 204, 12, 0.5);
  }

  /* ---------- Título de seção com destaque mobile ---------- */
  .section-head {
    position: relative;
  }

  .eyebrow {
    background: rgba(243, 204, 12, 0.08);
    border: 1px solid rgba(243, 204, 12, 0.3);
    padding: 6px 14px 6px 10px;
    border-radius: 999px;
  }

  /* ---------- Dots de carrossel (usado nos Serviços) ---------- */
  .carousel-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
  }

  .carousel-dots button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: var(--color-border);
    padding: 0;
    cursor: pointer;
    transition: all .3s ease;
  }

  .carousel-dots button.active {
    width: 22px;
    border-radius: 6px;
    background: var(--color-gold);
    box-shadow: 0 0 10px rgba(243, 204, 12, 0.6);
  }

  /* ---------- SERVIÇOS: carrossel horizontal ---------- */
  #trabalho {
    padding-top: 76px;
  }

  .services-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 18px;
    padding: 10px 4px 14px;
    margin: 0 -6% ;
    padding-left: 6%;
    padding-right: 6%;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .services-grid::-webkit-scrollbar { display: none; }

  .service-card {
    flex: 0 0 82%;
    scroll-snap-align: center;
    transform: scale(0.94);
    opacity: 0.7;
    transition: transform .4s ease, opacity .4s ease, border-color .4s ease;
  }

  .service-card.is-active {
    transform: scale(1);
    opacity: 1;
    border-color: rgba(243, 204, 12, 0.45);
    box-shadow: 0 16px 40px rgba(0,0,0,0.35);
  }

  .service-card .service-icon {
    animation: iconPulse 2.6s ease-in-out infinite;
  }

  @keyframes iconPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(243, 204, 12, 0.35); }
    50% { box-shadow: 0 0 0 10px rgba(243, 204, 12, 0); }
  }

  /* ---------- AVALIAÇÕES ---------- */
  /* ---------- Ícone de play pulsando na galeria ---------- */
  .gallery-item .play-badge {
    animation: iconPulse 2.4s ease-in-out infinite;
  }

  /* ---------- CONTATO: painel com mais destaque ---------- */
  .contact-panel {
    background: linear-gradient(160deg, rgba(31, 27, 61, 0.9), rgba(23, 20, 48, 0.9));
    backdrop-filter: blur(12px);
    border: 1px solid rgba(243, 204, 12, 0.22);
  }

  .contact-form input,
  .contact-form select,
  .contact-form textarea {
    background-color: rgba(13, 11, 26, 0.7);
  }

  .contact-form input:focus,
  .contact-form select:focus,
  .contact-form textarea:focus {
    box-shadow: 0 0 0 3px rgba(243, 204, 12, 0.18);
  }

  .contact-details .contact-row .icon-circle {
    animation: iconPulse 3s ease-in-out infinite;
  }

  /* ---------- WhatsApp flutuante com pulso ---------- */
  .whatsapp-float {
    bottom: 20px;
    right: 20px;
  }

  .whatsapp-float::before {
    content: '';
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 2px solid #25D366;
    opacity: 0.6;
    animation: waPulse 2.2s ease-out infinite;
  }

  @keyframes waPulse {
    0% { transform: scale(1); opacity: 0.6; }
    100% { transform: scale(1.6); opacity: 0; }
  }

  /* ---------- Reveal um pouco mais dramático no mobile ---------- */
  .reveal {
    transform: translateY(36px) scale(0.98);
  }

  @media (prefers-reduced-motion: reduce) {
    body::before, body::after,
    #home .hero-bg img,
    .gcr-particle,
    .btn-default::before,
    #cta .kicker::after,
    .service-card .service-icon,
    .gallery-item .play-badge,
    .contact-details .contact-row .icon-circle,
    .whatsapp-float::before {
      animation: none !important;
    }
  }
}