/* ============================================================
   Site Institucional ArtWeb -- frontend.css
   Identidade visual portada do briefing da Grafica Ipanema.
   Tokens escopados em .aw-inst-pagina (cores + tipografia + spacing).
   Cliente pode sobrescrever via CSS extra no tema do WordPress.
============================================================ */

/* v2.4.2 — Estrategia simplificada: o JS (frontend.js) sempre move
   .aw-inst-pagina direto pro <body>, escapando do widget Elementor.
   Sem isso o break-out via CSS bagunçava em ultrawide (left:50% +
   margin-left:-50vw deslocava o conteudo pra direita).
   Agora o CSS e simples: width:100%. Apos o JS mover, ja fica
   edge-to-edge naturalmente. */
.aw-inst-pagina {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.aw-inst-pagina * { box-sizing: border-box; }

html:has(.aw-inst-pagina),
body:has(.aw-inst-pagina) {
  overflow-x: hidden;
}

/* v2.4.2 — JS sempre move .aw-inst-pagina pro body. Estas regras de
   :has() ficaram aqui só como rede de segurança se o JS falhar. */
.elementor-widget-shortcode:has(.aw-inst-pagina),
.elementor-widget-shortcode:has(.aw-inst-pagina) > .elementor-widget-container {
  overflow: visible !important;
  max-width: none !important;
}

/* ========================================================================
   DESIGN TOKENS — GRÁFICA IPANEMA v1.0
   (escopados em .aw-inst-pagina para não vazarem para o tema/WP-admin)
   ======================================================================== */
.aw-inst-pagina {
  /* Azul marinho — primary */
  --primary-deep: #071021;
  --primary-950: #050B1A;
  --primary-900: #0A1628;
  --primary-800: #0F1E38;
  --primary-700: #162A4A;
  --primary-600: #1E3A5F;
  --primary-500: #2B4A73;
  --primary-400: #4A6B95;
  --primary-300: #7A94B5;
  --primary-200: #B8C6D8;
  --primary-100: #E0E6EF;

  /* Dourado — accent (herdado da embalagem Body Splash) */
  --gold-700: #6B5221;
  --gold-600: #8A6B28;
  --gold-500: #B8933F;
  --gold-400: #C9A961;
  --gold-300: #D9BC7E;
  --gold-200: #E8D4A4;
  --gold-100: #F5E9CF;

  /* Neutros papel + tinta */
  --cream-50:  #FAF8F3;
  --cream-100: #F4F0E6;
  --cream-200: #E8E0CC;
  --cream-300: #D4C9A8;
  --ink-900:   #0B0D12;
  --ink-800:   #1A1D26;
  --ink-700:   #2A2F3C;
  --ink-600:   #3A404E;
  --ink-500:   #5A6070;
  --ink-400:   #8A8F9E;
  --ink-300:   #B0B5C0;

  /* Layout offsets — usados pelas regras gi-* (chrome v2.4.0) */
  --header-h: 72px;
  --topbar-h: 32px;

  /* Tipografia */
  --font-display: 'DM Serif Display', Georgia, serif;
  --font-body: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  /* Escala tipográfica fluida */
  --fs-xs:   0.75rem;
  --fs-sm:   0.875rem;
  --fs-base: 1rem;
  --fs-md:   1.125rem;
  --fs-lg:   1.375rem;
  --fs-xl:   1.75rem;
  --fs-2xl:  clamp(1.75rem, 3vw, 2.5rem);
  --fs-3xl:  clamp(2.25rem, 4vw, 3.25rem);
  --fs-4xl:  clamp(2.5rem, 5vw, 4rem);
  --fs-5xl:  clamp(3rem, 6vw, 5.25rem);

  /* Espaçamento */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* Raios */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 20px;
  --radius-full: 999px;

  /* Container */
  --container: 1280px;
  --container-narrow: 1080px;

  /* Transições */
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ========================================================================
   SCOPED WRAPPER — isola o plugin dentro de page builders / temas hostis
   Garante que cor, tipografia e fundo vivam dentro de .aw-inst-pagina
   mesmo quando o tema (TwentyTwentyFive, Elementor canvas) sobrepõe body.
   ======================================================================== */
.aw-inst-pagina,
.aw-inst-pagina * {
  box-sizing: border-box;
}
.aw-inst-pagina {
  display: block;
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  font-family: var(--font-body, 'Manrope', sans-serif);
  font-size: var(--fs-base, 16px);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  color: var(--ink-800, #1A1D26);
  background: var(--cream-50, #FAF8F3);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.aw-inst-pagina h1,
.aw-inst-pagina h2,
.aw-inst-pagina h3,
.aw-inst-pagina h4,
.aw-inst-pagina h5,
.aw-inst-pagina h6 {
  font-weight: inherit;
  letter-spacing: normal;
  line-height: 1.125;
  color: inherit;
  margin: 0;
}
.aw-inst-pagina p { margin: 0; }
.aw-inst-pagina ul, .aw-inst-pagina ol { margin: 0; padding: 0; list-style: none; }
.aw-inst-pagina a { color: inherit; text-decoration: none; }
.aw-inst-pagina a:hover { text-decoration: none; }
.aw-inst-pagina img, .aw-inst-pagina svg { display: block; max-width: 100%; }
.aw-inst-pagina button { cursor: pointer; font-family: inherit; border: 0; background: none; }
/* Dentro de page-builders (Elementor canvas), position:fixed do header conflita
   com containers que têm transform/overflow. Trocamos pra sticky no escopo. */
.aw-inst-pagina .site-header { position: sticky; }
/* v2.4.4: padding do main zerado. Antes, padding-top:104px no main
   criava uma faixa cream visivel entre o header (que tem fundo escuro)
   e o hero (que tambem tem fundo escuro). Agora a primeira section
   (hero/page-hero) absorve esse offset internamente — fica continuo. */
.aw-inst-pagina .aw-inst-main { padding-top: 0; }
.aw-inst-pagina .aw-inst-main > .aw-inst-section:first-child > .hero,
.aw-inst-pagina .aw-inst-main > .aw-inst-section:first-child > .page-hero,
.aw-inst-pagina .aw-inst-main > .aw-inst-section:first-child > .gi-hero,
.aw-inst-pagina .aw-inst-main > .aw-inst-section:first-child > section {
  padding-top: calc(var(--topbar-h) + var(--header-h) + var(--space-12)) !important;
}

/* ========================================================================
   RESET + BASE
   Regras *, html, body, img, svg, button, a removidas — vazavam para o tema
   WP e quebravam layout fora do plugin. As versões escopadas em
   .aw-inst-pagina img/svg/button/a já vivem acima (linhas ~137-140).
   :root foi movido para .aw-inst-pagina.
   ======================================================================== */

.aw-inst-pagina .container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--space-6);
}
.aw-inst-pagina .container-narrow {
  max-width: var(--container-narrow);
  margin: 0 auto;
  padding: 0 var(--space-6);
}
@media (min-width: 768px) {
  .aw-inst-pagina .container, .aw-inst-pagina .container-narrow { padding: 0 var(--space-8); }
}

/* ========================================================================
   NAVEGAÇÃO (header global)
   ======================================================================== */
.aw-inst-pagina .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: rgba(10, 22, 40, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(201, 169, 97, 0.12);
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .site-header.scrolled {
  background: rgba(5, 11, 26, 0.96);
}
.aw-inst-pagina .nav-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--space-4) var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
}
@media (min-width: 768px) {
  .aw-inst-pagina .nav-inner { padding: var(--space-5) var(--space-8); }
}
.aw-inst-pagina .nav-logo {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--cream-50);
}
.aw-inst-pagina .nav-logo-mark {
  width: 36px;
  height: 36px;
  border: 1.5px solid var(--gold-400);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  padding: 6px;
  border-radius: 2px;
  flex-shrink: 0;
}
.aw-inst-pagina .nav-logo-mark span {
  background: var(--gold-400);
  border-radius: 50%;
}
.aw-inst-pagina .nav-logo-mark span:nth-child(2) { background: transparent; }
.aw-inst-pagina .nav-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.aw-inst-pagina .nav-logo-text small {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  color: var(--gold-300);
  letter-spacing: 0.04em;
}
.aw-inst-pagina .nav-logo-text strong {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 400;
  color: var(--cream-50);
  letter-spacing: 0.02em;
  margin-top: 2px;
}
.aw-inst-pagina .nav-menu {
  display: none;
  gap: var(--space-8);
  list-style: none;
}
@media (min-width: 900px) {
  .aw-inst-pagina .nav-menu { display: flex; }
}
.aw-inst-pagina .nav-menu a {
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--primary-200);
  transition: color 0.2s var(--ease);
  position: relative;
  padding: var(--space-1) 0;
}
.aw-inst-pagina .nav-menu a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--gold-400);
  transition: width 0.3s var(--ease);
}
.aw-inst-pagina .nav-menu a:hover,
.aw-inst-pagina .nav-menu a.active {
  color: var(--gold-300);
}
.aw-inst-pagina .nav-menu a:hover::after,
.aw-inst-pagina .nav-menu a.active::after {
  width: 100%;
}

.aw-inst-pagina .nav-cta {
  display: none;
  padding: 10px 22px;
  background: var(--gold-400);
  color: var(--primary-950);
  border: none;
  border-radius: var(--radius-full);
  font-weight: 600;
  font-size: var(--fs-sm);
  transition: all 0.3s var(--ease);
}
@media (min-width: 700px) {
  .aw-inst-pagina .nav-cta { display: inline-flex; align-items: center; gap: var(--space-2); }
}
.aw-inst-pagina .nav-cta:hover {
  background: var(--gold-300);
  transform: translateY(-1px);
}

.aw-inst-pagina .nav-mobile-toggle {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: transparent;
  border: none;
  padding: 8px;
}
@media (min-width: 900px) {
  .aw-inst-pagina .nav-mobile-toggle { display: none; }
}
.aw-inst-pagina .nav-mobile-toggle span {
  width: 22px;
  height: 1.5px;
  background: var(--cream-50);
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .nav-mobile-toggle.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.aw-inst-pagina .nav-mobile-toggle.open span:nth-child(2) { opacity: 0; }
.aw-inst-pagina .nav-mobile-toggle.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Drawer mobile — display:none por padrão. Estratégia anterior usava
   transform:translateX(100%) pra esconder, mas o Elementor/tema podia
   sobrescrever o transform (containers com transform:none ou
   will-change:transform) deixando o drawer visível no desktop. */
.aw-inst-pagina .nav-mobile-menu {
  display: none;
  position: fixed;
  top: 68px;
  left: 0;
  right: 0;
  bottom: 0;
  /* Hex literal em vez de var(--primary-950) — em alguns contextos
     fixed/animados o custom property nao resolve confiavelmente e o
     drawer aparece transparente. */
  background-color: #050B1A;
  padding: var(--space-8) var(--space-6);
  flex-direction: column;
  gap: var(--space-6);
  /* z-index acima do header (100) pra garantir que o drawer cobre
     o header e nao fica visualmente "atras" dele. */
  z-index: 999;
  box-shadow: -12px 0 40px rgba(0, 0, 0, 0.6);
  border-left: 1px solid rgba(201, 169, 97, 0.25);
  animation: awInstDrawerIn 0.35s var(--ease-out);
}
.aw-inst-pagina .nav-mobile-menu.open { display: flex; }
@media (min-width: 900px) {
  /* Em desktop nunca aparece, mesmo se .open vazou (defesa contra JS bug). */
  .aw-inst-pagina .nav-mobile-menu,
  .aw-inst-pagina .nav-mobile-menu.open { display: none; }
}
@keyframes awInstDrawerIn {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}
.aw-inst-pagina .nav-mobile-menu a {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  color: var(--cream-50);
  padding: var(--space-3) 0;
  border-bottom: 1px solid rgba(201, 169, 97, 0.15);
}
.aw-inst-pagina .nav-mobile-menu a.active { color: var(--gold-400); }
.aw-inst-pagina .nav-mobile-menu .nav-cta { display: inline-flex; width: fit-content; margin-top: var(--space-4); }

/* ========================================================================
   PÁGINAS SPA — sistema de rotas por hash
   ATENÇÃO: WordPress aplica a classe .page no <body> em qualquer page do
   site (body.page page-id-N page-template-default). Sem o escopo
   .aw-inst-pagina, esta regra escondia o site inteiro no frontend (bug
   crítico v2.1.x-v2.2.1).
   ======================================================================== */
.aw-inst-pagina .page { display: none; }
.aw-inst-pagina .page.active { display: block; animation: fadeIn 0.4s var(--ease-out); }

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.aw-inst-pagina main { padding-top: 68px; }

/* ========================================================================
   COMPONENTES GLOBAIS
   ======================================================================== */

/* Pill / eyebrow */
.aw-inst-pagina .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--gold-500);
  margin-bottom: var(--space-5);
}
.aw-inst-pagina .eyebrow-dark { color: var(--gold-300); }
.aw-inst-pagina .eyebrow::before {
  content: '';
  width: 28px;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}

.aw-inst-pagina .pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 8px 16px;
  border-radius: var(--radius-full);
  background: rgba(201, 169, 97, 0.1);
  border: 1px solid rgba(201, 169, 97, 0.3);
  color: var(--gold-300);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.aw-inst-pagina .pill-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 8px var(--gold-400);
}
.aw-inst-pagina .pill-light {
  background: rgba(10, 22, 40, 0.06);
  border-color: rgba(10, 22, 40, 0.12);
  color: var(--primary-700);
}
.aw-inst-pagina .pill-light .pill-dot { background: var(--gold-500); box-shadow: 0 0 6px rgba(201, 169, 97, 0.5); }

/* Botões */
.aw-inst-pagina .btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--fs-base);
  font-weight: 600;
  line-height: 1;
  padding: 16px 28px;
  border-radius: var(--radius-full);
  border: none;
  cursor: pointer;
  transition: all 0.3s var(--ease);
  letter-spacing: 0.01em;
  text-decoration: none;
  white-space: nowrap;
}
.aw-inst-pagina .btn .arrow { transition: transform 0.3s var(--ease); display: inline-block; }
.aw-inst-pagina .btn:hover .arrow { transform: translateX(4px); }

.aw-inst-pagina .btn-primary {
  background: var(--gold-400);
  color: var(--primary-950);
  box-shadow: 0 4px 20px rgba(201, 169, 97, 0.3);
}
.aw-inst-pagina .btn-primary:hover {
  background: var(--gold-300);
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(201, 169, 97, 0.45);
}
.aw-inst-pagina .btn-secondary {
  background: transparent;
  color: var(--primary-900);
  border: 1.5px solid var(--primary-900);
}
.aw-inst-pagina .btn-secondary:hover {
  background: var(--primary-900);
  color: var(--cream-50);
}
.aw-inst-pagina .btn-ghost-light {
  background: transparent;
  color: var(--cream-50);
  border: 1.5px solid rgba(245, 238, 221, 0.3);
}
.aw-inst-pagina .btn-ghost-light:hover {
  background: rgba(245, 238, 221, 0.05);
  border-color: var(--gold-400);
  color: var(--gold-300);
}

/* Títulos de seção */
.aw-inst-pagina .section-title {
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--primary-900);
  margin-bottom: var(--space-4);
}
.aw-inst-pagina .section-title em {
  font-style: italic;
  color: var(--gold-600);
  font-weight: 400;
}
.aw-inst-pagina .section-title-dark { color: var(--cream-50); }
.aw-inst-pagina .section-title-dark em { color: var(--gold-400); }

/* Quebra de título: força wrap quando o texto (ou um <em> longo, ou uma
   palavra sem espaços) não cabe na largura — em vez de estourar horizontal. */
.aw-inst-pagina .section-title,
.aw-inst-pagina .hero-headline,
.aw-inst-pagina .page-hero-title,
.aw-inst-pagina .video-section-title,
.aw-inst-pagina .cta-final-title,
.aw-inst-pagina .prazo-title,
.aw-inst-pagina .produtos-hero-title,
.aw-inst-pagina .pilar-card-title,
.aw-inst-pagina .prazo-block-title,
.aw-inst-pagina .processo-step-title,
.aw-inst-pagina .publico-card-title,
.aw-inst-pagina .valor-bloco h3,
.aw-inst-pagina .emb-product-content h3,
.aw-inst-pagina .contato-form-title,
.aw-inst-pagina .contato-info-title {
  overflow-wrap: break-word;
}

.aw-inst-pagina .section-subtitle {
  font-size: var(--fs-md);
  color: var(--ink-500);
  line-height: 1.7;
  max-width: 640px;
  margin-bottom: var(--space-12);
}
.aw-inst-pagina .section-subtitle-dark { color: var(--primary-200); }

/* Seções base */
.aw-inst-pagina section.hero-section { padding: 0; }
.aw-inst-pagina section.bg-dark,
.aw-inst-pagina section.bg-darker {
  color: var(--cream-50);
  position: relative;
  overflow: hidden;
}
.aw-inst-pagina section.bg-dark { background: var(--primary-900); }
.aw-inst-pagina section.bg-darker { background: var(--primary-950); }
.aw-inst-pagina section.bg-light { background: var(--cream-50); padding: var(--space-20) 0; }
.aw-inst-pagina section.bg-cream { background: var(--cream-100); padding: var(--space-20) 0; }
.aw-inst-pagina section.bg-dark,
.aw-inst-pagina section.bg-darker { padding: var(--space-20) 0; }
@media (min-width: 768px) {
  .aw-inst-pagina section.bg-light,
  .aw-inst-pagina section.bg-cream,
  .aw-inst-pagina section.bg-dark,
  .aw-inst-pagina section.bg-darker { padding: var(--space-24) 0; }
}

/* Halftone pattern — usado em seções escuras */
.aw-inst-pagina .bg-dark::before,
.aw-inst-pagina .bg-darker::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 20%, rgba(201, 169, 97, 0.1) 1px, transparent 1.5px),
    radial-gradient(circle at 30% 70%, rgba(201, 169, 97, 0.07) 1px, transparent 1.5px),
    radial-gradient(circle at 70% 30%, rgba(201, 169, 97, 0.09) 1px, transparent 1.5px),
    radial-gradient(circle at 85% 80%, rgba(201, 169, 97, 0.06) 1px, transparent 1.5px);
  background-size: 180px 180px, 220px 220px, 260px 260px, 200px 200px;
  pointer-events: none;
  opacity: 0.8;
  z-index: 0;
}
.aw-inst-pagina .bg-dark > *, .bg-darker > * { position: relative; z-index: 1; }

/* Fio ornamental separador (signature) */
.aw-inst-pagina .ornament-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin: var(--space-4) 0 var(--space-10);
  color: var(--gold-500);
}
.aw-inst-pagina .ornament-divider::before, .aw-inst-pagina .ornament-divider::after {
  content: '';
  flex: 0 1 120px;
  height: 1px;
  background: currentColor;
  opacity: 0.4;
}
.aw-inst-pagina .ornament-divider-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}

/* ========================================================================
   HERO (bg-darker)
   ======================================================================== */
.aw-inst-pagina .hero {
  background: var(--primary-950);
  min-height: 100vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding: var(--space-24) 0 var(--space-20);
}

/* v2.4.5: hero com video de fundo. Quando .hero ganha .hero--video,
   esconde os pseudo-elementos decorativos pra nao competir com o video,
   e centraliza o conteudo (sem cartucho ao lado). */
.aw-inst-pagina .hero--video::before,
.aw-inst-pagina .hero--video::after { display: none; }
.aw-inst-pagina .hero__bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.aw-inst-pagina .hero__bg-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(5, 11, 26, 0.55) 0%, rgba(5, 11, 26, 0.78) 100%),
    radial-gradient(ellipse 60% 40% at 50% 50%, rgba(201, 169, 97, 0.12), transparent 70%);
  pointer-events: none;
}
.aw-inst-pagina .hero--video .container { position: relative; z-index: 2; }
.aw-inst-pagina .hero-grid--centered {
  grid-template-columns: 1fr !important;
  text-align: center;
  max-width: 880px;
  margin: 0 auto;
}
.aw-inst-pagina .hero-grid--centered .hero-content { max-width: none; }
.aw-inst-pagina .hero-grid--centered .hero-pill,
.aw-inst-pagina .hero-grid--centered .hero-ctas,
.aw-inst-pagina .hero-grid--centered .hero-trust { justify-content: center; }
.aw-inst-pagina .hero-grid--centered .hero-subhead { margin-left: auto; margin-right: auto; }
.aw-inst-pagina .hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(201, 169, 97, 0.18), transparent 70%),
    radial-gradient(ellipse 40% 60% at 15% 30%, rgba(201, 169, 97, 0.08), transparent 60%),
    radial-gradient(ellipse 50% 40% at 100% 50%, rgba(43, 74, 115, 0.4), transparent 70%);
  pointer-events: none;
}
.aw-inst-pagina .hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 20%, rgba(201, 169, 97, 0.14) 1px, transparent 1.5px),
    radial-gradient(circle at 30% 70%, rgba(201, 169, 97, 0.1) 1px, transparent 1.5px),
    radial-gradient(circle at 70% 30%, rgba(201, 169, 97, 0.12) 1px, transparent 1.5px),
    radial-gradient(circle at 85% 80%, rgba(201, 169, 97, 0.08) 1px, transparent 1.5px);
  background-size: 160px 160px, 200px 200px, 240px 240px, 180px 180px;
  pointer-events: none;
  opacity: 0.9;
}
.aw-inst-pagina .hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
  align-items: center;
  position: relative;
  z-index: 2;
}
@media (min-width: 1000px) {
  .aw-inst-pagina .hero-grid { grid-template-columns: 1.2fr 0.8fr; gap: var(--space-16); }
}
.aw-inst-pagina .hero-content { max-width: 640px; }
.aw-inst-pagina .hero-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 8px 18px;
  border-radius: var(--radius-full);
  background: rgba(201, 169, 97, 0.08);
  border: 1px solid rgba(201, 169, 97, 0.25);
  color: var(--gold-300);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  max-width: 100%;
  margin-bottom: var(--space-6);
  opacity: 0;
  animation: slideUp 0.7s var(--ease-out) 0.1s forwards;
}
.aw-inst-pagina .hero-pill-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 10px var(--gold-400);
  animation: pulseGlow 2.5s ease-in-out infinite;
}
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 8px var(--gold-400); }
  50% { box-shadow: 0 0 16px var(--gold-400), 0 0 24px rgba(201, 169, 97, 0.3); }
}

.aw-inst-pagina .hero-headline {
  font-family: var(--font-display);
  font-size: calc(var(--fs-5xl) * 0.7);
  font-weight: 400;
  line-height: 1.05;
  color: #F5EEDD;
  letter-spacing: -0.03em;
  margin-bottom: var(--space-6);
  opacity: 0;
  animation: slideUp 0.8s var(--ease-out) 0.2s forwards;
}
.aw-inst-pagina .hero-headline em {
  font-style: italic;
  color: var(--gold-400);
  font-weight: 400;
}
.aw-inst-pagina .hero-subhead {
  font-size: var(--fs-md);
  color: var(--cream-100);
  line-height: 1.7;
  margin-bottom: var(--space-8);
  max-width: 560px;
  opacity: 0;
  animation: slideUp 0.8s var(--ease-out) 0.3s forwards;
}
.aw-inst-pagina .hero-ctas {
  display: flex;
  gap: var(--space-4);
  flex-wrap: wrap;
  margin-bottom: var(--space-10);
  opacity: 0;
  animation: slideUp 0.8s var(--ease-out) 0.4s forwards;
}
.aw-inst-pagina .hero-trust {
  display: flex;
  gap: var(--space-3) var(--space-6);
  flex-wrap: wrap;
  font-size: var(--fs-sm);
  color: var(--cream-200);
  opacity: 0;
  animation: slideUp 0.8s var(--ease-out) 0.5s forwards;
}
@media (max-width: 600px) {
  .aw-inst-pagina .hero-trust { gap: var(--space-2) var(--space-4); }
}
.aw-inst-pagina .hero-trust-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.aw-inst-pagina .hero-trust-dot {
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--gold-400);
  opacity: 0.7;
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ========================================================================
   SEÇÃO 2 — PILARES (bg-light, claro)
   ======================================================================== */
.aw-inst-pagina .pilares {
  background: var(--cream-50);
  padding: var(--space-20) 0;
  position: relative;
}
@media (min-width: 768px) {
  .aw-inst-pagina .pilares { padding: var(--space-24) 0; }
}
.aw-inst-pagina .pilares-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--space-16);
}
.aw-inst-pagina .pilares-header .section-subtitle {
  margin: var(--space-4) auto 0;
}
/* Flex (não grid) — altura do card acompanha o conteúdo, com tudo
   centralizado na vertical. Mesma lógica das seções "público". */
.aw-inst-pagina .pilares-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-6);
}
.aw-inst-pagina .pilar-card {
  flex: 1 1 260px;
  max-width: 360px;
  background: white;
  padding: var(--space-8);
  border-radius: var(--radius-lg);
  border: 1px solid var(--cream-200);
  transition: all 0.4s var(--ease);
  position: relative;
  overflow: hidden;
}
.aw-inst-pagina .pilar-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: var(--gold-500);
  transition: width 0.4s var(--ease);
}
.aw-inst-pagina .pilar-card:hover::before { width: 100%; }
.aw-inst-pagina .pilar-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(10, 22, 40, 0.08);
  border-color: var(--gold-300);
}
.aw-inst-pagina .pilar-card-icon {
  width: 48px;
  height: 48px;
  background: var(--gold-100);
  color: var(--gold-600);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-5);
}
.aw-inst-pagina .pilar-card-title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: 400;
  color: var(--primary-900);
  line-height: 1.2;
  margin-bottom: var(--space-3);
}
.aw-inst-pagina .pilar-card-desc {
  font-size: var(--fs-base);
  color: var(--ink-500);
  line-height: 1.65;
}

/* ========================================================================
   SEÇÃO 3 — PRODUTOS (bg-dark)
   ======================================================================== */
.aw-inst-pagina .produtos {
  background: var(--primary-900);
}
.aw-inst-pagina .produtos-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto var(--space-16);
}
.aw-inst-pagina .produtos-hero-card {
  background: linear-gradient(135deg, var(--primary-800), var(--primary-950));
  border: 1px solid rgba(201, 169, 97, 0.2);
  border-radius: var(--radius-xl);
  padding: var(--space-10);
  /* margin-top: a imagem do produto transborda o topo do card, então o card
     precisa "descer" pra não cobrir o texto da seção acima. Mobile usa menos
     (espaço de tela escasso); o desktop sobe pra --space-24 no media query. */
  margin-top: var(--space-12);
  margin-bottom: var(--space-8);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
  align-items: center;
  position: relative;
  /* visible: deixa a imagem do produto transbordar as laterais do card.
     A section .bg-dark tem overflow:hidden e segura o scroll horizontal. */
  overflow: visible;
  transition: all 0.4s var(--ease);
}
.aw-inst-pagina .produtos-hero-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-400), transparent);
}
.aw-inst-pagina .produtos-hero-card:hover {
  border-color: rgba(201, 169, 97, 0.4);
  transform: translateY(-4px);
}
@media (min-width: 768px) {
  .aw-inst-pagina .produtos-hero-card {
    grid-template-columns: 1fr 1fr;
    padding: var(--space-12);
    margin-top: var(--space-24);
  }
  /* Respiro entre o texto e a imagem — o texto quebra a linha mais cedo. */
  .aw-inst-pagina .produtos-hero-content { padding-right: var(--space-16); }
}
.aw-inst-pagina .produtos-hero-content .eyebrow { margin-bottom: var(--space-4); }
.aw-inst-pagina .produtos-hero-title {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  color: var(--cream-50);
  line-height: 1.15;
  margin-bottom: var(--space-4);
}
.aw-inst-pagina .produtos-hero-title em { color: var(--gold-400); font-style: italic; }
.aw-inst-pagina .produtos-hero-desc {
  color: var(--primary-200);
  line-height: 1.7;
  margin-bottom: var(--space-6);
  font-size: var(--fs-base);
}
.aw-inst-pagina .produtos-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--gold-300);
  font-weight: 600;
  font-size: var(--fs-sm);
  padding: var(--space-2) 0;
  border-bottom: 1px solid var(--gold-500);
  transition: all 0.3s var(--ease);
  align-self: flex-start;
}
.aw-inst-pagina .produtos-hero-cta:hover {
  color: var(--gold-200);
  border-color: var(--gold-300);
  gap: var(--space-3);
}

.aw-inst-pagina .produtos-hero-visual {
  position: relative;
  min-height: 150px;
  min-width: 0;
}
@media (min-width: 768px) {
  .aw-inst-pagina .produtos-hero-visual { min-height: 240px; }
}
/* A imagem do produto "transborda" o card: posicionada em absolute, mais
   larga que o container (sobra nas laterais), ancorada pela base na borda
   inferior do card e com z-index acima da seção — assim o topo do produto
   sobressai pra fora do card e parece maior em altura que o container. */
.aw-inst-pagina .produtos-hero-image {
  position: absolute;
  left: 50%;
  bottom: calc(-1 * var(--space-12) - 10px);
  transform: translateX(-50%);
  width: 135%;
  max-width: 135%;
  height: auto;
  display: block;
  z-index: 5;
}
@media (min-width: 768px) {
  .aw-inst-pagina .produtos-hero-image { bottom: calc(-1 * var(--space-16) - 10px); }
}

/* Grid de produtos menores */
.aw-inst-pagina .produtos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--space-4);
}
.aw-inst-pagina .produto-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(201, 169, 97, 0.15);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  transition: all 0.3s var(--ease);
  cursor: default;
}
.aw-inst-pagina .produto-card:hover {
  background: rgba(201, 169, 97, 0.06);
  border-color: rgba(201, 169, 97, 0.4);
  transform: translateY(-3px);
}
.aw-inst-pagina .produto-card-icon { margin-bottom: var(--space-4); }
.aw-inst-pagina .produto-card-title {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: 400;
  color: var(--cream-50);
  line-height: 1.2;
  margin-bottom: var(--space-2);
}
.aw-inst-pagina .produto-card-desc {
  font-size: var(--fs-sm);
  color: var(--primary-300);
  line-height: 1.6;
}

/* ========================================================================
   SEÇÃO 4 — PRAZO (bg-light, seção dedicada)
   ======================================================================== */
.aw-inst-pagina .prazo {
  background: var(--cream-50);
  padding: var(--space-20) 0;
  position: relative;
}
@media (min-width: 768px) {
  .aw-inst-pagina .prazo { padding: var(--space-24) 0; }
}
.aw-inst-pagina .prazo-frame {
  position: relative;
  padding: var(--space-16) var(--space-8);
  background: linear-gradient(135deg, var(--cream-100), var(--cream-50));
  border-radius: var(--radius-xl);
  overflow: hidden;
}
.aw-inst-pagina .prazo-frame::before {
  content: '';
  position: absolute;
  inset: 24px;
  border: 1px solid var(--cream-300);
  pointer-events: none;
  border-radius: var(--radius-md);
}
.aw-inst-pagina .prazo-frame::after {
  content: '';
  position: absolute;
  inset: 32px;
  border: 1px solid rgba(201, 169, 97, 0.3);
  pointer-events: none;
  border-radius: var(--radius-md);
}
.aw-inst-pagina .prazo-content {
  position: relative;
  z-index: 1;
  max-width: 960px;
  margin: 0 auto;
}
.aw-inst-pagina .prazo-header {
  text-align: center;
  margin-bottom: var(--space-12);
}
.aw-inst-pagina .prazo-title {
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  font-weight: 400;
  color: var(--primary-900);
  line-height: 1.1;
  margin-bottom: var(--space-4);
  letter-spacing: -0.02em;
}
.aw-inst-pagina .prazo-title em { color: var(--gold-600); font-style: italic; }
.aw-inst-pagina .prazo-subtitle {
  font-size: var(--fs-md);
  color: var(--ink-500);
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.7;
}
.aw-inst-pagina .prazo-blocks {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
  margin: var(--space-12) 0;
}
@media (min-width: 800px) {
  .aw-inst-pagina .prazo-blocks { grid-template-columns: repeat(3, 1fr); }
}
.aw-inst-pagina .prazo-block {
  text-align: center;
  padding: var(--space-6);
  position: relative;
}
.aw-inst-pagina .prazo-block:not(:last-child)::after {
  content: '';
  display: none;
  position: absolute;
  top: 30%;
  right: -12px;
  width: 1px;
  height: 40%;
  background: var(--cream-300);
}
@media (min-width: 800px) {
  .aw-inst-pagina .prazo-block:not(:last-child)::after { display: block; }
}
.aw-inst-pagina .prazo-block-icon {
  width: 56px;
  height: 56px;
  background: var(--gold-100);
  color: var(--gold-600);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--space-5);
}
.aw-inst-pagina .prazo-block-title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  font-weight: 400;
  color: var(--primary-900);
  margin-bottom: var(--space-3);
  line-height: 1.2;
}
.aw-inst-pagina .prazo-block-desc {
  font-size: var(--fs-base);
  color: var(--ink-500);
  line-height: 1.65;
  max-width: 280px;
  margin: 0 auto;
}
.aw-inst-pagina .prazo-closing {
  text-align: center;
  padding-top: var(--space-8);
  border-top: 1px solid var(--cream-300);
}
.aw-inst-pagina .prazo-closing p {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-lg);
  color: var(--primary-800);
  line-height: 1.4;
  max-width: 520px;
  margin: 0 auto;
}
.aw-inst-pagina .prazo-closing p em { color: var(--gold-600); }

/* ========================================================================
   SEÇÃO 5 — PARA QUEM (bg-cream)
   ======================================================================== */
.aw-inst-pagina .publico {
  background: var(--cream-100);
  padding: var(--space-20) 0;
}
@media (min-width: 768px) {
  .aw-inst-pagina .publico { padding: var(--space-24) 0; }
}
.aw-inst-pagina .publico-header { text-align: center; max-width: 700px; margin: 0 auto var(--space-16); }

/* Flex (não grid) pra a altura do card acompanhar o conteúdo — quem tem
   mais texto fica naturalmente um pouco maior — com tudo centralizado
   na vertical. Tira a rigidez da grade de altura forçada igual. */
.aw-inst-pagina .publico-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
}
.aw-inst-pagina .publico-card {
  flex: 1 1 190px;
  max-width: 300px;
  background: var(--cream-50);
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  text-align: center;
  transition: all 0.3s var(--ease);
  border: 1px solid transparent;
}
.aw-inst-pagina .publico-card:hover {
  border-color: var(--gold-300);
  background: white;
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(10, 22, 40, 0.06);
}
.aw-inst-pagina .publico-card-icon {
  width: 48px;
  height: 48px;
  background: var(--gold-100);
  color: var(--gold-600);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--space-4);
}
.aw-inst-pagina .publico-card-title {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  color: var(--primary-900);
  margin-bottom: var(--space-2);
  line-height: 1.2;
  font-weight: 400;
}
.aw-inst-pagina .publico-card-desc {
  font-size: var(--fs-sm);
  color: var(--ink-500);
  line-height: 1.55;
}
/* Card central em destaque (home · seção "público") — layout 2 + 1 + 2:
   fica um pouco maior e mais largo que os 4 ao redor, virando a peça
   central. Tipografia e ícone seguem iguais aos demais. */
.aw-inst-pagina .publico-card--feature {
  flex-basis: 250px;
  max-width: 340px;
  padding: var(--space-8);
  background: white;
  border-color: var(--gold-300);
}

/* ========================================================================
   SEÇÃO 6 — PORTFÓLIO (bg-darker)
   ======================================================================== */
.aw-inst-pagina .portfolio {
  background: var(--primary-950);
}
.aw-inst-pagina .portfolio-header { text-align: center; max-width: 700px; margin: 0 auto var(--space-16); }
.aw-inst-pagina .portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-10);
}
.aw-inst-pagina .portfolio-item {
  background: linear-gradient(135deg, var(--primary-800), var(--primary-900));
  border: 1px solid rgba(201, 169, 97, 0.15);
  border-radius: var(--radius-md);
  aspect-ratio: 3/4;
  position: relative;
  overflow: hidden;
  transition: all 0.4s var(--ease);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.aw-inst-pagina .portfolio-item:hover {
  border-color: rgba(201, 169, 97, 0.5);
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}
.aw-inst-pagina .portfolio-item-label {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-sm);
  color: var(--gold-300);
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s var(--ease);
  z-index: 2;
}
.aw-inst-pagina .portfolio-item:hover .portfolio-item-label {
  opacity: 1;
  transform: translateY(0);
}
.aw-inst-pagina .portfolio-cta { text-align: center; margin-top: var(--space-8); }

/* ========================================================================
   SEÇÃO 7 — COMO FUNCIONA (bg-light)
   ======================================================================== */
.aw-inst-pagina .processo {
  background: var(--cream-50);
  padding: var(--space-20) 0;
}
@media (min-width: 768px) {
  .aw-inst-pagina .processo { padding: var(--space-24) 0; }
}
.aw-inst-pagina .processo-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto var(--space-16);
}
.aw-inst-pagina .processo-steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
  max-width: 920px;
  margin: 0 auto;
}
@media (min-width: 800px) {
  .aw-inst-pagina .processo-steps { grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
}
.aw-inst-pagina .processo-step { text-align: center; position: relative; }
.aw-inst-pagina .processo-step-head {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.aw-inst-pagina .processo-step-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--gold-100);
  color: var(--gold-600);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.aw-inst-pagina .processo-step-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 80px;
  line-height: 1;
  color: var(--gold-400);
  margin-bottom: var(--space-4);
  display: block;
}
.aw-inst-pagina .processo-step-title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  color: var(--primary-900);
  margin-bottom: var(--space-3);
  line-height: 1.2;
  font-weight: 400;
}
.aw-inst-pagina .processo-step-desc {
  color: var(--ink-500);
  line-height: 1.65;
  max-width: 300px;
  margin: 0 auto;
}

/* ========================================================================
   SEÇÃO 8 — FAQ (bg-light)
   ======================================================================== */
.aw-inst-pagina .faq {
  background: var(--cream-100);
  padding: var(--space-20) 0;
}
@media (min-width: 768px) {
  .aw-inst-pagina .faq { padding: var(--space-24) 0; }
}
.aw-inst-pagina .faq-inner { max-width: 800px; margin: 0 auto; }
.aw-inst-pagina .faq-header { text-align: center; margin-bottom: var(--space-12); }
.aw-inst-pagina .faq-list { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.aw-inst-pagina .faq-item {
  background: var(--cream-50);
  border: 1px solid var(--cream-200);
  border-radius: var(--radius-lg);
  overflow: hidden;
  /* min-width:0: sem isso o flex item não encolhe abaixo do conteúdo e a
     pergunta longa empurra a largura em vez de quebrar linha. */
  min-width: 0;
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .faq-item.open {
  border-color: var(--gold-300);
  background: white;
  box-shadow: 0 10px 30px rgba(10, 22, 40, 0.06);
}
.aw-inst-pagina .faq-question {
  padding: var(--space-5) var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  cursor: pointer;
  border: none;
  background: transparent;
  width: 100%;
  text-align: left;
  font-family: var(--font-display);
  font-size: var(--fs-md);
  color: var(--primary-900);
  font-weight: 400;
  line-height: 1.3;
  /* normal: o <button> não pode forçar nowrap, senão a pergunta nunca quebra. */
  white-space: normal;
  min-width: 0;
}
/* O texto da pergunta vai num <span> que precisa poder encolher e quebrar
   linha — sem min-width:0 o flex item não shrinka e a pergunta longa
   estoura a largura no mobile em vez de quebrar em 2+ linhas.
   :not(.faq-toggle) pega o span do texto sem depender da ordem. */
.aw-inst-pagina .faq-question > span:not(.faq-toggle) {
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: break-word;
}
/* Blindagem contra o Elementor que injeta cor de acento (rosa default)
   no :hover de button/a. Sem essas regras, o hover do FAQ pegava
   var(--e-global-color-accent) do Elementor. */
.aw-inst-pagina .faq-question:hover,
.aw-inst-pagina .faq-question:focus,
.aw-inst-pagina .faq-question:focus-visible,
.aw-inst-pagina .faq-question:active {
  color: var(--primary-900);
  background: transparent;
  outline: none;
}
.aw-inst-pagina .faq-question:hover .faq-toggle,
.aw-inst-pagina .faq-question:focus .faq-toggle {
  background: var(--gold-200);
  color: var(--primary-900);
}
.aw-inst-pagina .faq-toggle {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--cream-100);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-600);
  font-family: var(--font-display);
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .faq-item.open .faq-toggle {
  background: var(--gold-400);
  color: var(--primary-900);
  transform: rotate(45deg);
}
.aw-inst-pagina .faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease);
}
.aw-inst-pagina .faq-answer-inner {
  padding: 0 var(--space-6) var(--space-6);
  color: var(--ink-500);
  line-height: 1.7;
  font-size: var(--fs-base);
}
.aw-inst-pagina .faq-item.open .faq-answer { max-height: 400px; }

/* ========================================================================
   SEÇÃO 9 — CTA FINAL (bg-darker)
   ======================================================================== */
.aw-inst-pagina .cta-final {
  background: var(--primary-950);
  padding: var(--space-20) 0;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .aw-inst-pagina .cta-final { padding: var(--space-24) 0; }
}
.aw-inst-pagina .cta-final::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(201, 169, 97, 0.2), transparent 70%);
  pointer-events: none;
}
.aw-inst-pagina .cta-final-inner {
  position: relative;
  z-index: 1;
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}
.aw-inst-pagina .cta-final-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gold-400);
  margin-bottom: var(--space-6);
}
.aw-inst-pagina .cta-final-eyebrow::before, .aw-inst-pagina .cta-final-eyebrow::after {
  content: '';
  width: 32px;
  height: 1px;
  background: currentColor;
  opacity: 0.5;
}
.aw-inst-pagina .cta-final-title {
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: 400;
  color: #F5EEDD;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-5);
}
.aw-inst-pagina .cta-final-title em { color: var(--gold-400); font-style: italic; }
.aw-inst-pagina .cta-final-desc {
  font-size: var(--fs-md);
  color: var(--primary-200);
  line-height: 1.7;
  margin-bottom: var(--space-10);
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}
.aw-inst-pagina .cta-final-button { margin-bottom: var(--space-5); }
.aw-inst-pagina .cta-final-micro {
  font-size: var(--fs-sm);
  color: var(--primary-400);
  font-style: italic;
}

/* ========================================================================
   FOOTER — clean, branco dominante, hierarquia por opacidade
   ======================================================================== */
.aw-inst-pagina .site-footer {
  background: var(--primary-950);
  color: rgba(255, 255, 255, 0.55);
  padding: var(--space-16) 0 var(--space-6);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
}
.aw-inst-pagina .site-footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 1px;
  background: var(--gold-500);
  opacity: 0.4;
}
.aw-inst-pagina .footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  margin-bottom: var(--space-10);
}
@media (min-width: 600px) {
  .aw-inst-pagina .footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .aw-inst-pagina .footer-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--space-10); }
}

.aw-inst-pagina .footer-brand .nav-logo { margin-bottom: var(--space-5); }
.aw-inst-pagina .footer-slogan {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-md);
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: var(--space-3);
  line-height: 1.4;
  font-weight: 400;
}
.aw-inst-pagina .footer-tagline {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.6;
  max-width: 340px;
}

.aw-inst-pagina .footer-col-title {
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: var(--space-4);
}
.aw-inst-pagina .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: var(--space-3); }
.aw-inst-pagina .footer-col a {
  color: rgba(255, 255, 255, 0.55);
  font-size: var(--fs-sm);
  transition: color 0.2s var(--ease);
  font-weight: 400;
}
.aw-inst-pagina .footer-col a:hover { color: rgba(255, 255, 255, 0.95); }

.aw-inst-pagina .footer-contact p {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: var(--space-4);
  line-height: 1.55;
}
.aw-inst-pagina .footer-contact p:last-child { margin-bottom: 0; }
.aw-inst-pagina .footer-contact strong {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
  display: block;
  margin-bottom: 4px;
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.7;
}

.aw-inst-pagina .footer-contact a {
  color: rgba(255, 255, 255, 0.55);
  transition: color 0.2s var(--ease);
}
.aw-inst-pagina .footer-contact a:hover { color: rgba(255, 255, 255, 0.95); }

.aw-inst-pagina .footer-bottom {
  padding-top: var(--space-6);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  align-items: center;
  text-align: center;
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.6;
}
@media (min-width: 700px) {
  .aw-inst-pagina .footer-bottom { flex-direction: row; justify-content: space-between; text-align: left; }
}

/* ========================================================================
   UTILS DE REVEAL (scroll animations)
   ======================================================================== */
.aw-inst-pagina .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
.aw-inst-pagina .reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.aw-inst-pagina .reveal-delay-1 { transition-delay: 0.1s; }
.aw-inst-pagina .reveal-delay-2 { transition-delay: 0.2s; }
.aw-inst-pagina .reveal-delay-3 { transition-delay: 0.3s; }
.aw-inst-pagina .reveal-delay-4 { transition-delay: 0.4s; }

/* ========================================================================
   PLACEHOLDER PAGES (Quem somos, Embalagens, Promocional, Contato)
   — Infra pronta pra receber as páginas no próximo passo
   ======================================================================== */
.aw-inst-pagina .page-placeholder {
  min-height: calc(100vh - 68px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream-50);
  padding: var(--space-16) 0;
  text-align: center;
}
.aw-inst-pagina .page-placeholder-inner {
  max-width: 640px;
  padding: var(--space-12);
}
.aw-inst-pagina .page-placeholder h1 {
  font-family: var(--font-display);
  font-size: var(--fs-3xl);
  color: var(--primary-900);
  margin-bottom: var(--space-4);
  line-height: 1.1;
}
.aw-inst-pagina .page-placeholder h1 em { color: var(--gold-600); font-style: italic; }
.aw-inst-pagina .page-placeholder p {
  color: var(--ink-500);
  font-size: var(--fs-md);
  line-height: 1.7;
  margin-bottom: var(--space-6);
}
.aw-inst-pagina .page-placeholder-ornament {
  display: flex;
  justify-content: center;
  gap: var(--space-3);
  margin: var(--space-6) 0;
  color: var(--gold-500);
  opacity: 0.6;
}
.aw-inst-pagina .page-placeholder-ornament::before, .aw-inst-pagina .page-placeholder-ornament::after {
  content: '';
  width: 40px;
  height: 1px;
  background: currentColor;
  align-self: center;
}

/* ========================================================================
   PÁGINAS INTERNAS — estilos compartilhados
   ======================================================================== */

/* Hero das páginas internas — menor que o da home, mais pausado */
.aw-inst-pagina .page-hero {
  background: var(--primary-950);
  padding: var(--space-20) 0 var(--space-16);
  position: relative;
  overflow: hidden;
}
.aw-inst-pagina .page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 40% at 50% 100%, rgba(201, 169, 97, 0.12), transparent 70%),
    radial-gradient(ellipse 40% 60% at 15% 30%, rgba(201, 169, 97, 0.05), transparent 60%);
  pointer-events: none;
}
.aw-inst-pagina .page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 20%, rgba(201, 169, 97, 0.1) 1px, transparent 1.5px),
    radial-gradient(circle at 70% 30%, rgba(201, 169, 97, 0.08) 1px, transparent 1.5px);
  background-size: 180px 180px, 220px 220px;
  pointer-events: none;
  opacity: 0.7;
}
.aw-inst-pagina .page-hero-inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 820px;
  margin: 0 auto;
}
.aw-inst-pagina .page-hero-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 8px 18px;
  border-radius: var(--radius-full);
  background: rgba(201, 169, 97, 0.08);
  border: 1px solid rgba(201, 169, 97, 0.25);
  color: var(--gold-300);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  max-width: 100%;
  margin-bottom: var(--space-5);
}
.aw-inst-pagina .page-hero-pill-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 8px var(--gold-400);
}
.aw-inst-pagina .page-hero-title {
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: 400;
  line-height: 1.05;
  color: #F5EEDD;
  letter-spacing: -0.025em;
  margin-bottom: var(--space-5);
}
.aw-inst-pagina .page-hero-title em { font-style: italic; color: var(--gold-400); }
.aw-inst-pagina .page-hero-subtitle {
  font-size: var(--fs-md);
  color: var(--primary-200);
  line-height: 1.65;
  max-width: 680px;
  margin: 0 auto;
}

/* ========================================================================
   PÁGINA QUEM SOMOS — estilos específicos
   ======================================================================== */
.aw-inst-pagina .video-section {
  background: var(--cream-50);
  padding: var(--space-20) 0;
}
.aw-inst-pagina .video-section-header {
  text-align: center;
  margin-bottom: var(--space-10);
}
.aw-inst-pagina .video-section-title {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  color: var(--primary-900);
  margin-bottom: var(--space-3);
}
.aw-inst-pagina .video-section-title em { color: var(--gold-600); font-style: italic; }
.aw-inst-pagina .video-section-sub {
  color: var(--ink-500);
  font-size: var(--fs-md);
  max-width: 560px;
  margin: 0 auto;
}

/* Player de vídeo MP4 — capa + botão de play custom sobre os controles
   nativos do <video>. JS troca .is-playing pra esconder a capa. */
.aw-inst-pagina .gi-video-player {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: var(--primary-950);
}
.aw-inst-pagina .gi-video-player__el {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Botão de capa — seletor de especificidade alta (.gi-video-player +
   button.) + !important pra vencer o fundo rosa que o Elementor/tema
   injeta em <button> nos estados hover/focus/active. */
.aw-inst-pagina .gi-video-player button.gi-video-player__cover {
  position: absolute;
  inset: 0;
  -webkit-appearance: none;
  appearance: none;
  border: none !important;
  box-shadow: none !important;
  outline: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse at center, rgba(5, 11, 26, 0.15), rgba(5, 11, 26, 0.55)) !important;
  transition: opacity 0.45s var(--ease);
}
.aw-inst-pagina .gi-video-player button.gi-video-player__cover:hover,
.aw-inst-pagina .gi-video-player button.gi-video-player__cover:focus,
.aw-inst-pagina .gi-video-player button.gi-video-player__cover:active {
  background: radial-gradient(ellipse at center, rgba(5, 11, 26, 0.15), rgba(5, 11, 26, 0.55)) !important;
  box-shadow: none !important;
}
.aw-inst-pagina .gi-video-player.is-playing .gi-video-player__cover {
  opacity: 0;
  pointer-events: none;
}
.aw-inst-pagina .gi-video-player__play {
  position: relative;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: var(--gold-500);
  color: var(--primary-950);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  transition: transform 0.25s var(--ease), background 0.25s var(--ease);
}
.aw-inst-pagina .gi-video-player__play svg {
  width: 34px;
  height: 34px;
  margin-left: 4px;
}
.aw-inst-pagina .gi-video-player__play::before {
  content: '';
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 2px solid var(--gold-400);
  opacity: 0.7;
  animation: gi-video-pulse 2.4s ease-out infinite;
}
.aw-inst-pagina .gi-video-player__cover:hover .gi-video-player__play {
  transform: scale(1.08);
  background: var(--gold-400);
}
@keyframes gi-video-pulse {
  0%   { transform: scale(1);   opacity: 0.7; }
  70%  { transform: scale(1.45); opacity: 0; }
  100% { transform: scale(1.45); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .aw-inst-pagina .gi-video-player__play::before { animation: none; }
}
.aw-inst-pagina .video-player {
  max-width: 960px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, var(--primary-800), var(--primary-950));
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 30px 80px rgba(10, 22, 40, 0.15);
}
.aw-inst-pagina .video-player::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 30% 40%, rgba(201, 169, 97, 0.15), transparent 50%),
    radial-gradient(circle at 70% 60%, rgba(201, 169, 97, 0.1), transparent 50%);
  pointer-events: none;
}
.aw-inst-pagina .video-play-btn {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: var(--gold-400);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-950);
  transition: all 0.3s var(--ease);
  box-shadow: 0 10px 40px rgba(201, 169, 97, 0.4);
  position: relative;
  z-index: 1;
}
.aw-inst-pagina .video-play-btn:hover {
  transform: scale(1.08);
  background: var(--gold-300);
}
.aw-inst-pagina .video-play-btn svg {
  margin-left: 6px;
}
.aw-inst-pagina .video-placeholder-text {
  position: absolute;
  bottom: var(--space-6);
  left: 0; right: 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.5);
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-sm);
  z-index: 1;
}

/* Seção história */
.aw-inst-pagina .historia {
  background: var(--cream-50);
  padding: var(--space-20) 0;
}
.aw-inst-pagina .historia-inner {
  max-width: 760px;
  margin: 0 auto;
}
.aw-inst-pagina .historia-header {
  text-align: center;
  margin-bottom: var(--space-12);
}
.aw-inst-pagina .historia p {
  font-size: var(--fs-md);
  color: var(--ink-600);
  line-height: 1.8;
  margin-bottom: var(--space-6);
}
.aw-inst-pagina .historia p:first-of-type::first-letter {
  font-family: var(--font-display);
  font-size: 4em;
  float: left;
  line-height: 1;
  margin: 0 12px 0 0;
  color: var(--gold-600);
  font-weight: 400;
}

/* Seção valores */
.aw-inst-pagina .valores {
  background: var(--cream-100);
  padding: var(--space-20) 0;
}
/* Flex (não grid) — altura do card acompanha o conteúdo, centralizado
   na vertical. Mesma lógica das seções "público". */
.aw-inst-pagina .valores-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-6);
  max-width: 960px;
  margin: 0 auto;
}
.aw-inst-pagina .valor-bloco {
  flex: 1 1 280px;
  max-width: 400px;
  background: white;
  padding: var(--space-8);
  border-radius: var(--radius-lg);
  border-top: 3px solid var(--gold-500);
  transition: all 0.4s var(--ease);
}
.aw-inst-pagina .valor-bloco:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(10, 22, 40, 0.08);
}
.aw-inst-pagina .valor-bloco-icon {
  width: 48px;
  height: 48px;
  background: var(--gold-100);
  color: var(--gold-600);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-5);
}
.aw-inst-pagina .valor-bloco h3 {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  color: var(--primary-900);
  margin-bottom: var(--space-3);
  line-height: 1.2;
  font-weight: 400;
}
.aw-inst-pagina .valor-bloco h3 em { font-style: italic; color: var(--gold-600); }
.aw-inst-pagina .valor-bloco p {
  color: var(--ink-500);
  line-height: 1.7;
  font-size: var(--fs-base);
}

/* Instagram grid */
.aw-inst-pagina .instagram-section {
  background: var(--primary-950);
  padding: var(--space-20) 0;
  position: relative;
  overflow: hidden;
}
.aw-inst-pagina .instagram-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 30% 40%, rgba(201, 169, 97, 0.08) 1px, transparent 1.5px);
  background-size: 200px 200px;
  opacity: 0.5;
  pointer-events: none;
}
.aw-inst-pagina .instagram-section > * { position: relative; z-index: 1; }
.aw-inst-pagina .instagram-header { text-align: center; margin-bottom: var(--space-12); }
.aw-inst-pagina .instagram-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-10);
}
.aw-inst-pagina .ig-item {
  aspect-ratio: 1;
  background: linear-gradient(135deg, var(--primary-800), var(--primary-900));
  border: 1px solid rgba(201, 169, 97, 0.15);
  border-radius: var(--radius-md);
  position: relative;
  overflow: hidden;
  transition: all 0.3s var(--ease);
  cursor: pointer;
}
.aw-inst-pagina .ig-item:hover {
  border-color: rgba(201, 169, 97, 0.5);
  transform: scale(1.03);
}
.aw-inst-pagina .ig-item svg { width: 100%; height: 100%; }
.aw-inst-pagina .ig-item-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 22, 40, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s var(--ease);
  color: var(--gold-400);
}
.aw-inst-pagina .ig-item:hover .ig-item-overlay { opacity: 1; }
.aw-inst-pagina .instagram-cta { text-align: center; }

/* ========================================================================
   PÁGINA EMBALAGENS
   ======================================================================== */
.aw-inst-pagina .emb-features {
  background: var(--cream-50);
  padding: var(--space-20) 0;
}
.aw-inst-pagina .emb-features-intro {
  max-width: 760px;
  margin: 0 auto var(--space-12);
  text-align: center;
}
.aw-inst-pagina .emb-features-intro p {
  font-size: var(--fs-md);
  color: var(--ink-600);
  line-height: 1.75;
}
.aw-inst-pagina .emb-products-list {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.aw-inst-pagina .emb-product-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
  padding: var(--space-6);
  background: white;
  border-radius: var(--radius-lg);
  border: 1px solid var(--cream-200);
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .emb-product-item:hover {
  border-color: var(--gold-300);
  transform: translateX(6px);
}
.aw-inst-pagina .emb-product-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: var(--gold-100);
  color: var(--gold-600);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.aw-inst-pagina .emb-product-content h3 {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  color: var(--primary-900);
  margin-bottom: 4px;
  font-weight: 400;
}
.aw-inst-pagina .emb-product-content p {
  color: var(--ink-500);
  line-height: 1.6;
  font-size: var(--fs-base);
}

.aw-inst-pagina .emb-procedimentos {
  background: var(--primary-900);
}
.aw-inst-pagina .emb-checks {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  max-width: 760px;
  margin: 0 auto;
}
@media (min-width: 700px) {
  .aw-inst-pagina .emb-checks { grid-template-columns: repeat(2, 1fr); }
}
.aw-inst-pagina .emb-check-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(201, 169, 97, 0.15);
  border-radius: var(--radius-md);
}
.aw-inst-pagina .emb-check-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--gold-400);
  color: var(--primary-950);
  display: flex;
  align-items: center;
  justify-content: center;
}
.aw-inst-pagina .emb-check-item p {
  color: var(--primary-100);
  font-size: var(--fs-base);
  line-height: 1.55;
}

.aw-inst-pagina .emb-publico {
  background: var(--cream-100);
  padding: var(--space-20) 0;
}
@media (min-width: 768px) {
  .aw-inst-pagina .emb-publico { padding: var(--space-24) 0; }
}

/* Grid visual de cartuchos — página embalagens */
.aw-inst-pagina .emb-portfolio {
  background: var(--primary-950);
  padding: var(--space-20) 0;
  position: relative;
  overflow: hidden;
}
.aw-inst-pagina .emb-portfolio::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 30% 40%, rgba(201, 169, 97, 0.08) 1px, transparent 1.5px);
  background-size: 200px 200px;
  opacity: 0.5;
  pointer-events: none;
}
.aw-inst-pagina .emb-portfolio > * { position: relative; z-index: 1; }

/* ========================================================================
   PÁGINA PROMOCIONAL
   ======================================================================== */
.aw-inst-pagina .prom-producao {
  background: var(--cream-50);
  padding: var(--space-20) 0;
}
.aw-inst-pagina .prom-producao-intro {
  max-width: 760px;
  margin: 0 auto var(--space-12);
  text-align: center;
}
.aw-inst-pagina .prom-producao-intro p {
  font-size: var(--fs-md);
  color: var(--ink-600);
  line-height: 1.75;
}
.aw-inst-pagina .prom-types {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
}
.aw-inst-pagina .prom-type {
  background: white;
  border: 1px solid var(--cream-200);
  border-radius: var(--radius-md);
  text-align: center;
  font-family: var(--font-display);
  color: var(--primary-900);
  font-weight: 400;
  transition: all 0.3s var(--ease);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
}
.aw-inst-pagina .prom-type-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--gold-100);
  color: var(--gold-600);
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .prom-type--big {
  flex: 1 1 200px;
  max-width: 260px;
  padding: var(--space-8) var(--space-6);
  font-size: var(--fs-lg);
}
.aw-inst-pagina .prom-type--big .prom-type-icon { width: 56px; height: 56px; }
.aw-inst-pagina .prom-type--small {
  flex: 0 1 150px;
  padding: var(--space-6) var(--space-4);
  font-size: var(--fs-base);
}
.aw-inst-pagina .prom-type--small .prom-type-icon { width: 44px; height: 44px; }
.aw-inst-pagina .prom-type:hover {
  background: var(--primary-900);
  color: var(--cream-50);
  border-color: var(--primary-900);
  transform: translateY(-4px);
}
.aw-inst-pagina .prom-type:hover .prom-type-icon {
  background: rgba(201, 169, 97, 0.18);
  color: var(--gold-300);
}
@media (max-width: 600px) {
  .aw-inst-pagina .prom-type--big,
  .aw-inst-pagina .prom-type--small { flex: 1 1 130px; max-width: none; }
}

.aw-inst-pagina .prom-qualidade {
  background: var(--primary-900);
}
.aw-inst-pagina .prom-qualidade-list {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.aw-inst-pagina .prom-qualidade-item {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5);
  border-bottom: 1px solid rgba(201, 169, 97, 0.12);
}
.aw-inst-pagina .prom-qualidade-item:last-child { border-bottom: none; }
.aw-inst-pagina .prom-qualidade-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-xl);
  color: var(--gold-400);
  min-width: 40px;
}
.aw-inst-pagina .prom-qualidade-item p {
  color: var(--primary-100);
  font-size: var(--fs-md);
  line-height: 1.5;
}

.aw-inst-pagina .prom-beneficios {
  background: var(--cream-50);
}
.aw-inst-pagina .prom-beneficios-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}
@media (min-width: 600px) {
  .aw-inst-pagina .prom-beneficios-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1000px) {
  .aw-inst-pagina .prom-beneficios-grid { grid-template-columns: repeat(4, 1fr); }
}
.aw-inst-pagina .prom-beneficio-card {
  background: white;
  padding: var(--space-8) var(--space-6);
  border-radius: var(--radius-lg);
  border: 1px solid var(--cream-200);
  text-align: center;
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .prom-beneficio-card:hover {
  transform: translateY(-6px);
  border-color: var(--gold-300);
  box-shadow: 0 20px 40px rgba(10, 22, 40, 0.08);
}
.aw-inst-pagina .prom-beneficio-card svg { margin: 0 auto var(--space-4); }
.aw-inst-pagina .prom-beneficio-card h3 {
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  color: var(--primary-900);
  margin-bottom: var(--space-2);
  font-weight: 400;
  line-height: 1.2;
}
.aw-inst-pagina .prom-beneficio-card p {
  color: var(--ink-500);
  font-size: var(--fs-sm);
  line-height: 1.55;
}

/* ========================================================================
   PÁGINA CONTATO
   ======================================================================== */
.aw-inst-pagina .contato-section {
  background: var(--cream-50);
  padding: var(--space-20) 0;
}
.aw-inst-pagina .contato-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
}
@media (min-width: 900px) {
  .aw-inst-pagina .contato-grid { grid-template-columns: 1.3fr 1fr; gap: var(--space-12); }
}

/* Formulário */
.aw-inst-pagina .contato-form-wrap {
  background: white;
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  border: 1px solid var(--cream-200);
  box-shadow: 0 20px 60px rgba(10, 22, 40, 0.05);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  margin: 0 auto;
}
@media (min-width: 600px) {
  .aw-inst-pagina .contato-form-wrap { padding: var(--space-8); }
}
@media (min-width: 900px) {
  .aw-inst-pagina .contato-form-wrap { padding: var(--space-10); }
}
.aw-inst-pagina .contato-form-title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  color: var(--primary-900);
  margin-bottom: var(--space-2);
  font-weight: 400;
}
.aw-inst-pagina .contato-form-title em { color: var(--gold-600); font-style: italic; }
.aw-inst-pagina .contato-form-sub {
  color: var(--ink-500);
  font-size: var(--fs-sm);
  margin-bottom: var(--space-8);
  line-height: 1.6;
}
.aw-inst-pagina .form-field { margin-bottom: var(--space-5); min-width: 0; }
.aw-inst-pagina .form-field-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}
@media (min-width: 600px) {
  .aw-inst-pagina .form-field-row { grid-template-columns: 1fr 1fr; }
}
.aw-inst-pagina .form-label {
  display: block;
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-800);
  margin-bottom: var(--space-2);
}
.aw-inst-pagina .form-label .required {
  color: var(--gold-600);
  margin-left: 2px;
}
.aw-inst-pagina .form-input,
.aw-inst-pagina .form-select,
.aw-inst-pagina .form-textarea {
  width: 100%;
  min-width: 0;
  padding: 12px 14px;
  font-family: var(--font-body);
  font-size: var(--fs-base);
  color: var(--ink-900);
  background: var(--cream-50);
  border: 1.5px solid var(--cream-200);
  border-radius: var(--radius-md);
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.aw-inst-pagina .form-input:focus,
.aw-inst-pagina .form-select:focus,
.aw-inst-pagina .form-textarea:focus {
  outline: none;
  border-color: var(--gold-400);
  background: white;
  box-shadow: 0 0 0 3px rgba(201, 169, 97, 0.15);
}
.aw-inst-pagina .form-textarea { resize: vertical; min-height: 100px; }
.aw-inst-pagina .form-helper {
  font-size: var(--fs-xs);
  color: var(--ink-400);
  margin-top: var(--space-2);
  line-height: 1.5;
}
.aw-inst-pagina .form-submit {
  width: 100%;
  justify-content: center;
  margin-top: var(--space-4);
}
.aw-inst-pagina .form-disclaimer {
  text-align: center;
  margin-top: var(--space-4);
  font-size: var(--fs-xs);
  color: var(--ink-400);
}
/* v2.4.6: wrapper pra form externo (CF7/WPForms/etc). Garante que
   o form do plugin externo nao estoura o card e fica responsivo. */
.aw-inst-pagina .aw-inst-form-externo {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}
.aw-inst-pagina .aw-inst-form-externo input,
.aw-inst-pagina .aw-inst-form-externo select,
.aw-inst-pagina .aw-inst-form-externo textarea {
  max-width: 100%;
  box-sizing: border-box;
}

/* Painel de contato lateral */
.aw-inst-pagina .contato-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  min-width: 0;
}
.aw-inst-pagina .contato-info-title {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  color: var(--primary-900);
  margin-bottom: var(--space-2);
  font-weight: 400;
}
.aw-inst-pagina .contato-info-title em { color: var(--gold-600); font-style: italic; }
.aw-inst-pagina .contato-info-sub {
  color: var(--ink-500);
  font-size: var(--fs-sm);
  line-height: 1.6;
  margin-bottom: var(--space-6);
}
.aw-inst-pagina .contato-info-card {
  background: white;
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  border: 1px solid var(--cream-200);
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  transition: all 0.3s var(--ease);
}
.aw-inst-pagina .contato-info-card:hover {
  border-color: var(--gold-300);
  transform: translateX(4px);
}
.aw-inst-pagina .contato-info-card-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--primary-900);
  color: var(--gold-400);
  display: flex;
  align-items: center;
  justify-content: center;
}
.aw-inst-pagina .contato-info-card h4 {
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-400);
  margin-bottom: 4px;
  font-weight: 600;
}
.aw-inst-pagina .contato-info-card p {
  font-family: var(--font-display);
  color: var(--primary-900);
  font-size: var(--fs-md);
  line-height: 1.3;
  font-weight: 400;
}
.aw-inst-pagina .contato-info-card a {
  color: var(--primary-900);
  transition: color 0.2s var(--ease);
}
.aw-inst-pagina .contato-info-card a:hover { color: var(--gold-600); }
.aw-inst-pagina .contato-info-card small {
  display: block;
  color: var(--ink-500);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  margin-top: 2px;
  font-style: italic;
}

/* Mensagem de sucesso */
.aw-inst-pagina .form-success {
  display: none;
  padding: var(--space-6);
  background: rgba(45, 122, 74, 0.08);
  border: 1px solid rgba(45, 122, 74, 0.25);
  border-radius: var(--radius-md);
  color: #2D7A4A;
  font-size: var(--fs-base);
  line-height: 1.6;
  margin-top: var(--space-5);
}
.aw-inst-pagina .form-success.visible { display: block; animation: fadeIn 0.5s var(--ease-out); }
.aw-inst-pagina .form-success strong { display: block; margin-bottom: var(--space-2); font-weight: 700; }

/* ========================================================================
   PLACEHOLDER PAGES (não usado mais, mas mantido se necessário)
   ======================================================================== */

/* ========================================================================
   SISTEMA gi-* (v2.4.0) — Chrome novo do protótipo Gráfica Ipanema.
   Substitui .site-header / .site-footer / .nav-mobile-* (que ficam por
   compat até v2.5). Tudo escopado em .aw-inst-pagina.
   ======================================================================== */

/* ---------- TOPBAR EDITORIAL (32px) ---------- */
.aw-inst-pagina .gi-topbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 101;
  background: var(--primary-deep);
  border-bottom: 1px solid rgba(201, 169, 97, 0.08);
  height: var(--topbar-h);
  display: flex;
  align-items: center;
}
.aw-inst-pagina .gi-topbar__inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--space-5);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
@media (min-width: 768px) {
  .aw-inst-pagina .gi-topbar__inner { padding: 0 var(--space-8); }
}
/* v2.4.7 — carrossel vertical da topbar (slide vertical entre frases) */
.aw-inst-pagina .gi-topbar__viewport {
  position: relative;
  height: var(--topbar-h);
  overflow: hidden;
  display: flex;
  /* flex-start (não center): o rotator tem N linhas empilhadas; centralizar
     mostraria o meio dele em repouso. Top-align faz translateY(0) = frase 1. */
  align-items: flex-start;
  justify-content: center;
}
.aw-inst-pagina .gi-topbar__rotator {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* default: 2 frases (cobre o caso comum) */
  animation: gi-topbar-rotate 8s ease-in-out infinite;
}
.aw-inst-pagina .gi-topbar__viewport[data-aw-tb-count="1"] .gi-topbar__rotator { animation: none; }
.aw-inst-pagina .gi-topbar__viewport[data-aw-tb-count="3"] .gi-topbar__rotator { animation-name: gi-topbar-rotate-3; animation-duration: 12s; }
.aw-inst-pagina .gi-topbar__line {
  flex: 0 0 var(--topbar-h);
  height: var(--topbar-h);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1;
  white-space: nowrap;
  padding: 0 var(--space-4);
}
@keyframes gi-topbar-rotate {
  0%, 45%   { transform: translateY(0); }
  50%, 95%  { transform: translateY(calc(-1 * var(--topbar-h))); }
  100%      { transform: translateY(calc(-2 * var(--topbar-h))); }
}
@keyframes gi-topbar-rotate-3 {
  0%, 28%    { transform: translateY(0); }
  33%, 61%   { transform: translateY(calc(-1 * var(--topbar-h))); }
  66%, 94%   { transform: translateY(calc(-2 * var(--topbar-h))); }
  100%       { transform: translateY(calc(-3 * var(--topbar-h))); }
}
@media (max-width: 380px) {
  .aw-inst-pagina .gi-topbar__line { font-size: 10px; letter-spacing: 0.14em; }
}
/* Respeita preferencia de reduzir movimento */
@media (prefers-reduced-motion: reduce) {
  .aw-inst-pagina .gi-topbar__rotator { animation: none !important; }
}

/* ---------- HEADER PRINCIPAL ---------- */
.aw-inst-pagina .gi-header {
  position: fixed;
  top: var(--topbar-h);
  left: 0;
  right: 0;
  z-index: 100;
  background: rgba(7, 16, 33, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(201, 169, 97, 0.12);
  transition: background 0.3s var(--ease);
}
.aw-inst-pagina .gi-header.is-scrolled { background: var(--primary-deep); }
.aw-inst-pagina .gi-header__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 14px var(--space-5);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
  position: relative;
}
@media (min-width: 768px) {
  .aw-inst-pagina .gi-header__inner { padding: 18px var(--space-8); }
}
.aw-inst-pagina .gi-header__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--cream-50);
  flex-shrink: 0;
  transition: opacity 0.2s var(--ease);
}
.aw-inst-pagina .gi-header__logo:hover { opacity: 0.85; }
.aw-inst-pagina .gi-header__logo-mark {
  width: 36px;
  height: 36px;
  border: 1.5px solid var(--gold-400);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  padding: 6px;
  border-radius: 2px;
  flex-shrink: 0;
}
.aw-inst-pagina .gi-header__logo-mark span {
  background: var(--gold-400);
  border-radius: 50%;
}
.aw-inst-pagina .gi-header__logo-mark span.empty { background: transparent; }
.aw-inst-pagina .gi-header__logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.aw-inst-pagina .gi-header__logo-text small {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: var(--gold-300);
  letter-spacing: 0.04em;
}
.aw-inst-pagina .gi-header__logo-text strong {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 400;
  color: var(--cream-50);
  letter-spacing: 0.02em;
  margin-top: 2px;
}
.aw-inst-pagina .gi-header__right {
  display: none;
  align-items: center;
  gap: var(--space-8);
}
@media (min-width: 900px) {
  .aw-inst-pagina .gi-header__right { display: flex; }
}
.aw-inst-pagina .gi-header__menu {
  display: flex;
  gap: 28px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.aw-inst-pagina .gi-header__menu a {
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  position: relative;
  padding: 6px 0;
  transition: color 0.2s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-header__menu a:hover { color: var(--gold-300); }
.aw-inst-pagina .gi-header__menu a::before {
  content: '';
  position: absolute;
  top: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold-400);
  opacity: 0;
  transition: opacity 0.3s var(--ease);
}
.aw-inst-pagina .gi-header__menu a.is-active { color: var(--gold-300); }
.aw-inst-pagina .gi-header__menu a.is-active::before { opacity: 1; }
.aw-inst-pagina .gi-header__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  background: var(--gold-400);
  color: var(--primary-950);
  border-radius: 999px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 13px;
  transition: all 0.3s var(--ease);
  flex-shrink: 0;
  white-space: nowrap;
  text-decoration: none;
}
.aw-inst-pagina .gi-header__cta:hover {
  background: var(--gold-300);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(201, 169, 97, 0.3);
}
.aw-inst-pagina .gi-header__cta-arrow { transition: transform 0.3s var(--ease); }
.aw-inst-pagina .gi-header__cta:hover .gi-header__cta-arrow { transform: translateX(3px); }
.aw-inst-pagina .gi-header__burger {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 6px;
  flex-shrink: 0;
  background: transparent;
  border: none;
  cursor: pointer;
}
@media (min-width: 900px) {
  .aw-inst-pagina .gi-header__burger { display: none; }
}
.aw-inst-pagina .gi-header__burger span {
  width: 22px;
  height: 1.5px;
  background: var(--cream-50);
  transition: all 0.3s var(--ease);
  display: block;
}
.aw-inst-pagina .gi-header__burger.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.aw-inst-pagina .gi-header__burger.is-open span:nth-child(2) { opacity: 0; }
.aw-inst-pagina .gi-header__burger.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 899px) {
  .aw-inst-pagina .gi-header__logo {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
  .aw-inst-pagina .gi-header__logo-mark { width: 30px; height: 30px; padding: 5px; }
  .aw-inst-pagina .gi-header__logo-text small { font-size: 10px; }
  .aw-inst-pagina .gi-header__logo-text strong { font-size: 14px; }
}
.aw-inst-pagina .gi-header__mobile-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--gold-400);
  color: var(--primary-950);
  flex-shrink: 0;
  transition: all 0.3s var(--ease);
  box-shadow: 0 2px 8px rgba(201, 169, 97, 0.3);
  text-decoration: none;
}
.aw-inst-pagina .gi-header__mobile-cta:hover { background: var(--gold-300); transform: scale(1.05); }
@media (min-width: 900px) {
  .aw-inst-pagina .gi-header__mobile-cta { display: none; }
}

/* ---------- DRAWER MOBILE + OVERLAY ---------- */
.aw-inst-pagina .gi-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(5, 11, 26, 0.55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s var(--ease), visibility 0.3s var(--ease);
  z-index: 199;
}
.aw-inst-pagina .gi-drawer-overlay.is-open { opacity: 1; visibility: visible; }
.aw-inst-pagina .gi-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 88%;
  max-width: 360px;
  background: var(--primary-deep);
  z-index: 200;
  transform: translateX(100%);
  transition: transform 0.4s var(--ease-out);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.aw-inst-pagina .gi-drawer.is-open { transform: translateX(0); }
.aw-inst-pagina .gi-drawer-header {
  padding: var(--space-6) var(--space-6) var(--space-4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.aw-inst-pagina .gi-drawer-header .gi-header__logo {
  position: static;
  transform: none;
}
.aw-inst-pagina .gi-drawer-header .gi-header__logo-mark { width: 32px; height: 32px; padding: 5px; }
.aw-inst-pagina .gi-drawer-header .gi-header__logo-text small { font-size: 10px; }
.aw-inst-pagina .gi-drawer-header .gi-header__logo-text strong { font-size: 14px; }
/* Botão de fechar do drawer — seletor de especificidade alta (.gi-drawer
   + button.) + !important pra vencer o fundo rosa que o Elementor/tema
   injeta em <button> (base e estados hover/focus/active). */
.aw-inst-pagina .gi-drawer button.gi-drawer__close {
  width: 36px;
  height: 36px;
  min-width: 36px;
  flex-shrink: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.6);
  transition: background 0.2s var(--ease), color 0.2s var(--ease);
  -webkit-appearance: none;
  appearance: none;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
.aw-inst-pagina .gi-drawer button.gi-drawer__close svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.aw-inst-pagina .gi-drawer button.gi-drawer__close:hover,
.aw-inst-pagina .gi-drawer button.gi-drawer__close:focus,
.aw-inst-pagina .gi-drawer button.gi-drawer__close:active {
  background: rgba(255, 255, 255, 0.08) !important;
  color: var(--cream-50);
  box-shadow: none !important;
}
.aw-inst-pagina .gi-drawer button.gi-drawer__close:focus-visible {
  box-shadow: 0 0 0 2px var(--gold-400) !important;
}
.aw-inst-pagina .gi-drawer__body {
  flex: 1;
  padding: var(--space-6);
  overflow-y: auto;
}
.aw-inst-pagina .gi-drawer__section-label {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: var(--space-3);
  margin-top: var(--space-6);
  display: block;
}
.aw-inst-pagina .gi-drawer__section-label:first-of-type { margin-top: 0; }
.aw-inst-pagina .gi-drawer__nav { display: flex; flex-direction: column; }
.aw-inst-pagina .gi-drawer__nav a {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.2;
  color: rgba(255, 255, 255, 0.9);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition: color 0.2s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-drawer__nav a:last-child { border-bottom: none; }
.aw-inst-pagina .gi-drawer__nav a:hover { color: var(--cream-50); }
.aw-inst-pagina .gi-drawer__nav a.is-active { color: var(--gold-300); }
.aw-inst-pagina .gi-drawer__chevron {
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.2s var(--ease);
  flex-shrink: 0;
}
.aw-inst-pagina .gi-drawer__nav a:hover .gi-drawer__chevron { color: rgba(255, 255, 255, 0.6); }
.aw-inst-pagina .gi-drawer__nav a.is-active .gi-drawer__chevron { color: var(--gold-300); }
.aw-inst-pagina .gi-drawer__contact-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.7);
  padding: var(--space-3) 0;
  transition: color 0.2s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-drawer__contact-item:hover { color: var(--cream-50); }
.aw-inst-pagina .gi-drawer__contact-item svg {
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.5);
  flex-shrink: 0;
}
.aw-inst-pagina .gi-drawer__contact-item:hover svg { color: rgba(255, 255, 255, 0.8); }
.aw-inst-pagina .gi-drawer__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: calc(100% - var(--space-12));
  margin: var(--space-8) var(--space-6) var(--space-6);
  padding: 16px 28px;
  border-radius: 999px;
  background: var(--gold-400);
  color: var(--primary-950);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--fs-base);
  box-shadow: 0 4px 16px rgba(201, 169, 97, 0.3);
  transition: all 0.3s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-drawer__cta:hover { background: var(--gold-300); transform: translateY(-1px); }

/* ---------- STICKY BUTTONS LATERAIS ---------- */
.aw-inst-pagina .gi-sticky {
  position: fixed;
  right: 20px;
  bottom: 24px;
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.aw-inst-pagina .gi-sticky-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  transition: all 0.3s var(--ease);
  text-decoration: none;
  border: none;
  cursor: pointer;
}
.aw-inst-pagina .gi-sticky-btn--quote {
  background: var(--gold-400);
  color: var(--primary-950);
  box-shadow: 0 4px 16px rgba(201, 169, 97, 0.35);
}
.aw-inst-pagina .gi-sticky-btn--quote:hover {
  background: var(--gold-300);
  transform: scale(1.05);
  box-shadow: 0 8px 24px rgba(201, 169, 97, 0.5);
}
.aw-inst-pagina .gi-sticky-btn--top {
  background: rgba(7, 16, 33, 0.9);
  color: var(--cream-50);
  border: 1px solid rgba(201, 169, 97, 0.3);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
}
.aw-inst-pagina .gi-sticky-btn--top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.aw-inst-pagina .gi-sticky-btn--top:hover {
  background: var(--primary-deep);
  border-color: var(--gold-400);
  transform: translateY(-2px);
}

/* ---------- OFFSET PRA O CONTEUDO NAO COLAR NO HEADER FIXED ---------- */
.aw-inst-pagina .gi-main-offset {
  padding-top: calc(var(--topbar-h) + var(--header-h));
}

/* ---------- FOOTER ---------- */
.aw-inst-pagina .gi-footer {
  background: var(--primary-deep);
  color: var(--cream-50);
  padding: var(--space-16) 0 var(--space-8);
}
.aw-inst-pagina .gi-footer__container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--space-6);
}
@media (min-width: 768px) {
  .aw-inst-pagina .gi-footer__container { padding: 0 var(--space-8); }
}
.aw-inst-pagina .gi-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1.3fr 1fr;
  gap: var(--space-12);
  margin-bottom: var(--space-12);
}
@media (max-width: 900px) {
  .aw-inst-pagina .gi-footer__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-8);
  }
}
@media (max-width: 600px) {
  .aw-inst-pagina .gi-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }
}
.aw-inst-pagina .gi-footer__brand-logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: var(--space-5);
  text-decoration: none;
}
.aw-inst-pagina .gi-footer__brand-logo-mark {
  width: 34px;
  height: 34px;
  border: 1.5px solid var(--gold-400);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  padding: 5px;
  border-radius: 2px;
  flex-shrink: 0;
}
.aw-inst-pagina .gi-footer__brand-logo-mark span {
  background: var(--gold-400);
  border-radius: 50%;
}
.aw-inst-pagina .gi-footer__brand-logo-mark span.empty { background: transparent; }
.aw-inst-pagina .gi-footer__brand-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.aw-inst-pagina .gi-footer__brand-logo-text small {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 11px;
  color: var(--gold-300);
}
.aw-inst-pagina .gi-footer__brand-logo-text strong {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 400;
  color: var(--cream-50);
  letter-spacing: 0.02em;
  margin-top: 2px;
}
.aw-inst-pagina .gi-footer__slogan {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 400;
  font-size: var(--fs-md);
  color: var(--cream-50);
  line-height: 1.3;
  margin-bottom: var(--space-3);
}
.aw-inst-pagina .gi-footer__tagline {
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
  max-width: 300px;
}
.aw-inst-pagina .gi-footer__col-title {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--fs-base);
  color: rgba(255, 255, 255, 0.95);
  margin-bottom: var(--space-4);
}
.aw-inst-pagina .gi-footer__col ul {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}
.aw-inst-pagina .gi-footer__col a {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.55);
  transition: color 0.2s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-footer__col a:hover { color: rgba(255, 255, 255, 0.95); }
.aw-inst-pagina .gi-footer__contact-item { margin-bottom: var(--space-4); }
.aw-inst-pagina .gi-footer__contact-item:last-child { margin-bottom: 0; }
.aw-inst-pagina .gi-footer__contact-label {
  display: block;
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 4px;
}
.aw-inst-pagina .gi-footer__contact-value,
.aw-inst-pagina .gi-footer__contact-item a {
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.55;
  transition: color 0.2s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-footer__contact-item a:hover { color: rgba(255, 255, 255, 0.95); }
.aw-inst-pagina .gi-footer__bottom {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--space-6);
  padding-top: var(--space-6);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-size: var(--fs-xs);
  line-height: 1.6;
}
.aw-inst-pagina .gi-footer__bottom-left {
  text-align: left;
  color: rgba(255, 255, 255, 0.55);
}
.aw-inst-pagina .gi-footer__bottom-left a {
  color: rgba(255, 255, 255, 0.55);
  transition: color 0.2s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-footer__bottom-left a:hover { color: rgba(255, 255, 255, 0.95); }
.aw-inst-pagina .gi-footer__bottom-sep {
  color: rgba(255, 255, 255, 0.35);
  margin: 0 4px;
}
.aw-inst-pagina .gi-footer__bottom-center {
  text-align: center;
  color: rgba(255, 255, 255, 0.45);
}
.aw-inst-pagina .gi-footer__cnpj {
  color: rgba(255, 255, 255, 0.35);
  margin-top: 2px;
}
.aw-inst-pagina .gi-footer__bottom-right {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  justify-content: flex-end;
  color: rgba(255, 255, 255, 0.35);
  transition: color 0.2s var(--ease);
  text-decoration: none;
}
.aw-inst-pagina .gi-footer__bottom-right:hover { color: rgba(255, 255, 255, 0.7); }
.aw-inst-pagina .gi-footer__credits-label {
  font-size: var(--fs-xs);
  white-space: nowrap;
}
.aw-inst-pagina .gi-footer__credits-logo {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--fs-xs);
  letter-spacing: 0.02em;
}
.aw-inst-pagina .gi-footer__credits-logo svg { width: 14px; height: 14px; }
.aw-inst-pagina .gi-footer__credits-logo-img {
  display: inline-block;
  height: 18px;
  width: auto;
  max-width: 100px;
  object-fit: contain;
  opacity: 0.7;
  transition: opacity 0.2s var(--ease);
  vertical-align: middle;
  /* Força a logo a renderizar branca no rodapé escuro, independente
     do fill interno do SVG ou de uma versão antiga em cache. */
  filter: brightness(0) invert(1);
}
.aw-inst-pagina .gi-footer__bottom-right:hover .gi-footer__credits-logo-img { opacity: 1; }

/* ---------- COOKIE CONSENT BANNER ---------- */
.aw-inst-pagina .gi-cookie {
  position: fixed;
  left: 16px;
  bottom: 16px;
  max-width: 340px;
  background: var(--primary-deep);
  border: 1px solid rgba(201, 169, 97, 0.3);
  border-radius: 12px;
  padding: 20px;
  z-index: 95;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
  transform: translateY(120%);
  transition: transform 0.4s var(--ease-out);
  color: var(--cream-50);
}
.aw-inst-pagina .gi-cookie.is-visible { transform: translateY(0); }
.aw-inst-pagina .gi-cookie__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.aw-inst-pagina .gi-cookie__icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(201, 169, 97, 0.15);
  color: var(--gold-400);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.aw-inst-pagina .gi-cookie__title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 400;
  color: var(--cream-50);
  margin: 0;
}
.aw-inst-pagina .gi-cookie__text {
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin: 0 0 14px;
}
.aw-inst-pagina .gi-cookie__text a {
  color: var(--gold-300);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.aw-inst-pagina .gi-cookie__text a:hover { color: var(--gold-200); }
.aw-inst-pagina .gi-cookie__actions {
  display: flex;
  gap: 8px;
}
.aw-inst-pagina .gi-cookie__btn {
  flex: 1;
  padding: 9px 14px;
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s var(--ease);
  border: none;
}
.aw-inst-pagina .gi-cookie__btn--primary {
  background: var(--gold-400);
  color: var(--primary-950);
}
.aw-inst-pagina .gi-cookie__btn--primary:hover { background: var(--gold-300); }
.aw-inst-pagina .gi-cookie__btn--secondary {
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.aw-inst-pagina .gi-cookie__btn--secondary:hover {
  background: rgba(255, 255, 255, 0.05);
  color: var(--cream-50);
}
@media (max-width: 600px) {
  .aw-inst-pagina .gi-cookie {
    left: 8px;
    right: 8px;
    bottom: 8px;
    max-width: none;
  }
}
@media (max-width: 700px) {
  .aw-inst-pagina .gi-footer__bottom {
    grid-template-columns: 1fr;
    gap: var(--space-3);
    text-align: center;
  }
  .aw-inst-pagina .gi-footer__bottom-left,
  .aw-inst-pagina .gi-footer__bottom-right {
    text-align: center;
    justify-content: center;
  }
}

/* ---------- LOGO IMG (header / drawer / footer) ---------- */
.aw-inst-pagina .gi-header__logo-img {
  display: block;
  height: 44px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
}
@media (max-width: 899px) {
  .aw-inst-pagina .gi-header__logo-img { height: 36px; max-width: 160px; }
}
.aw-inst-pagina .gi-drawer-header .gi-header__logo-img { height: 36px; }
.aw-inst-pagina .gi-footer__brand-logo-img {
  display: block;
  height: 48px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
}

/* ---------- PORTFOLIO MARQUEE (carrossel infinito) ---------- */
.aw-inst-pagina .gi-portfolio {
  --gi-portfolio-speed: 45s;
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 16px 0;
}
/* No mobile o carrossel ficava lento demais — quase metade do tempo de
   loop, pra dar uma sensação mais fluida e dinâmica em tela pequena. */
@media (max-width: 768px) {
  .aw-inst-pagina .gi-portfolio { --gi-portfolio-speed: 24s; }
}
.aw-inst-pagina .gi-portfolio__track {
  display: flex;
  gap: 24px;
  width: max-content;
  animation: gi-portfolio-scroll var(--gi-portfolio-speed) linear infinite;
  will-change: transform;
}
@keyframes gi-portfolio-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-50% - 12px)); }
}
.aw-inst-pagina .gi-portfolio:hover .gi-portfolio__track { animation-play-state: paused; }
.aw-inst-pagina .gi-portfolio__card {
  flex: 0 0 280px;
  aspect-ratio: 4 / 5;
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  cursor: pointer;
  transition: transform 0.4s var(--ease-out);
  background: var(--cream-100);
  box-shadow: 0 8px 24px rgba(10, 22, 40, 0.06);
}
.aw-inst-pagina .gi-portfolio__card:hover {
  transform: scale(1.05);
  z-index: 2;
  box-shadow: 0 16px 40px rgba(10, 22, 40, 0.15);
}
.aw-inst-pagina .gi-portfolio__image-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.aw-inst-pagina .gi-portfolio__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out);
  display: block;
}
.aw-inst-pagina .gi-portfolio__card:hover .gi-portfolio__image { transform: scale(1.03); }
.aw-inst-pagina .gi-portfolio__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px 20px 18px;
  background: linear-gradient(to bottom, transparent 0%, rgba(10, 22, 40, 0.65) 60%, rgba(10, 22, 40, 0.92) 100%);
  color: var(--cream-50);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
  pointer-events: none;
}
.aw-inst-pagina .gi-portfolio__card:hover .gi-portfolio__overlay {
  opacity: 1;
  transform: translateY(0);
}
.aw-inst-pagina .gi-portfolio__segment {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-300);
  margin-bottom: 4px;
}
.aw-inst-pagina .gi-portfolio__name {
  display: block;
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--cream-50);
}
@media (max-width: 768px) {
  .aw-inst-pagina .gi-portfolio__card { flex: 0 0 220px; }
  .aw-inst-pagina .gi-portfolio__overlay {
    opacity: 1;
    transform: translateY(0);
    padding: 18px 14px 12px;
  }
  .aw-inst-pagina .gi-portfolio__name { font-size: 17px; }
}

/* Carrossel arrastável — o JS adiciona .gi-portfolio--drag (progressive
   enhancement: sem JS, segue o marquee CSS puro com overflow:hidden). */
.aw-inst-pagina .gi-portfolio--drag {
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
}
.aw-inst-pagina .gi-portfolio--drag::-webkit-scrollbar { display: none; }
.aw-inst-pagina .gi-portfolio--drag.is-grabbing { cursor: grabbing; }
.aw-inst-pagina .gi-portfolio--drag .gi-portfolio__track { animation: none; }

/* Lightbox do portfólio — modal de imagem ampliada com navegação. */
.aw-inst-pagina .gi-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
  background: rgba(5, 11, 26, 0.92);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s var(--ease), visibility 0.3s var(--ease);
}
.aw-inst-pagina .gi-lightbox.is-open { opacity: 1; visibility: visible; }
.aw-inst-pagina .gi-lightbox__figure {
  margin: 0;
  max-width: min(900px, 92vw);
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}
.aw-inst-pagina .gi-lightbox__img {
  max-width: 100%;
  max-height: 72vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
  display: block;
}
.aw-inst-pagina .gi-lightbox__caption { text-align: center; }
.aw-inst-pagina .gi-lightbox__segment {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-300);
  margin-bottom: 4px;
}
.aw-inst-pagina .gi-lightbox__name {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  color: var(--cream-50);
}
.aw-inst-pagina .gi-lightbox__close,
.aw-inst-pagina .gi-lightbox__nav {
  position: absolute;
  -webkit-appearance: none;
  appearance: none;
  border: none !important;
  box-shadow: none !important;
  background: rgba(255, 255, 255, 0.2) !important;
  color: var(--cream-50);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s var(--ease);
}
.aw-inst-pagina .gi-lightbox__close:hover,
.aw-inst-pagina .gi-lightbox__nav:hover { background: rgba(255, 255, 255, 0.42) !important; }
.aw-inst-pagina .gi-lightbox__close { top: var(--space-5); right: var(--space-5); width: 48px; height: 48px; }
.aw-inst-pagina .gi-lightbox__nav { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; }
.aw-inst-pagina .gi-lightbox__nav--prev { left: var(--space-5); }
.aw-inst-pagina .gi-lightbox__nav--next { right: var(--space-5); }
.aw-inst-pagina .gi-lightbox__close svg,
.aw-inst-pagina .gi-lightbox__nav svg { width: 24px; height: 24px; }
@media (max-width: 600px) {
  .aw-inst-pagina .gi-lightbox__close { top: 12px; right: 12px; width: 46px; height: 46px; }
  .aw-inst-pagina .gi-lightbox__nav { width: 48px; height: 48px; }
  .aw-inst-pagina .gi-lightbox__nav--prev { left: 10px; }
  .aw-inst-pagina .gi-lightbox__nav--next { right: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .aw-inst-pagina .gi-lightbox { transition: none; }
}

/* ---------- INSTAGRAM GRID ---------- */
.aw-inst-pagina .gi-instagram { width: 100%; padding: 0; }
.aw-inst-pagina .gi-instagram__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}
.aw-inst-pagina .gi-instagram__item {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 8px;
  aspect-ratio: 1 / 1;
  background: var(--cream-100);
}
.aw-inst-pagina .gi-instagram__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s var(--ease-out), filter 0.4s var(--ease-out);
}
.aw-inst-pagina .gi-instagram__item:hover .gi-instagram__image {
  transform: scale(1.08);
  filter: brightness(0.5);
}
.aw-inst-pagina .gi-instagram__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
  pointer-events: none;
  padding: 16px;
}
.aw-inst-pagina .gi-instagram__item:hover .gi-instagram__overlay {
  opacity: 1;
  transform: translateY(0);
}
.aw-inst-pagina .gi-instagram__icon-wrap {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--gold-400);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(201, 169, 97, 0.4);
  color: var(--primary-950);
}
.aw-inst-pagina .gi-instagram__cta-text {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cream-50);
  text-align: center;
}
@media (max-width: 768px) {
  .aw-inst-pagina .gi-instagram__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .aw-inst-pagina .gi-instagram__overlay { opacity: 1; transform: translateY(0); }
  .aw-inst-pagina .gi-instagram__item:not(:hover) .gi-instagram__image { filter: brightness(0.75); }
  .aw-inst-pagina .gi-instagram__icon-wrap { width: 44px; height: 44px; }
}
