/*
 * Ótica Guria Bonita — camada de modernização visual
 * Escopo: frontend. O markup, o conteúdo e os componentes Elementor permanecem intactos.
 */

@font-face {
  font-family: "GB Cormorant";
  src: url("./fonts/cormorant-garamond-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
}

@font-face {
  font-family: "GB Manrope";
  src: url("./fonts/manrope-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  --gb-modern-blue: #0349a9;
  --gb-modern-blue-deep: #00337c;
  --gb-modern-orange: #ec7c36;
  --gb-modern-ink: #191c1d;
  --gb-modern-muted: #434652;
  --gb-modern-surface: #f8fafb;
  --gb-modern-border: #d7dbe4;
  --gb-modern-font-display: "GB Cormorant", Georgia, serif;
  --gb-modern-font-sans: "GB Manrope", Arial, sans-serif;
  --gb-modern-radius: 16px;
  --gb-modern-radius-large: 24px;
  --gb-modern-shadow: 0 18px 50px rgba(0, 51, 124, 0.09);
  --gb-modern-shadow-hover: 0 24px 64px rgba(0, 51, 124, 0.14);
  --gb-modern-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --gb-modern-transition: 680ms var(--gb-modern-ease);
}

body.gb-modern-enabled {
  color: var(--gb-modern-ink);
  font-family: var(--gb-modern-font-sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.gb-modern-enabled :is(button, input, select, textarea) {
  font-family: var(--gb-modern-font-sans);
}

body.gb-modern-enabled .elementor :is(h1, h2, h3),
body.gb-modern-enabled .elementor-widget-heading .elementor-heading-title {
  font-family: var(--gb-modern-font-display);
  font-weight: 600;
  text-wrap: balance;
}

body.gb-modern-enabled .elementor :is(p, li) {
  text-wrap: pretty;
}

/* Hierarquia editorial: títulos principais ganham presença sem mudar a semântica. */
body.gb-modern-enabled :is(
  .gb-hero-title,
  .gb-about-hero-title,
  .gb-stores-hero-title,
  .gb-services-hero-title,
  .gb-contact-title
) {
  font-family: var(--gb-modern-font-display);
  font-size: clamp(3.4rem, 6vw, 5.35rem);
  font-weight: 600;
  line-height: 0.98;
  letter-spacing: -0.045em;
}

body.gb-modern-enabled :is(
  .gb-selecao-title,
  .gb-home-dif-title,
  .gb-home-und-title,
  .gb-home-cta-title,
  .gb-about-essence-title,
  .gb-about-service-title,
  .gb-about-final-title,
  .gb-stores-list-title,
  .gb-stores-final-cta-title,
  .gb-services-intro-title,
  .gb-services-row-title,
  .gb-services-process-title,
  .gb-services-faq-title,
  .gb-services-final-cta-title,
  .gb-contact-form-title
) {
  font-family: var(--gb-modern-font-display);
  font-size: clamp(2.7rem, 4.7vw, 4.55rem);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.038em;
}

body.gb-modern-enabled :is(
  .gb-card-title,
  .gb-home-dif-card-title,
  .gb-home-und-card-title,
  .gb-about-essence-highlight-item,
  .gb-about-service-highlight-item,
  .gb-services-intro-card-title,
  .gb-services-row-card-title,
  .gb-services-process-step-title,
  .gb-contact-channel-title
) {
  font-family: var(--gb-modern-font-sans);
  letter-spacing: -0.018em;
}

body.gb-modern-enabled :is(
  .gb-hero-desc,
  .gb-selecao-subtitle,
  .gb-home-dif-subtitle,
  .gb-home-und-subtitle,
  .gb-home-cta-text,
  .gb-about-hero-desc,
  .gb-about-essence-text,
  .gb-about-service-text,
  .gb-stores-hero-desc,
  .gb-services-hero-desc,
  .gb-services-intro-text,
  .gb-services-faq-subtitle,
  .gb-contact-intro-main,
  .gb-contact-intro-sub
) {
  font-family: var(--gb-modern-font-sans);
  font-size: clamp(1rem, 1.15vw, 1.125rem);
  line-height: 1.78;
}

/* Espaçamento compartilhado e largura editorial. */
body.gb-modern-enabled :is(
  .gb-selecao,
  .gb-home-dif,
  .gb-home-und,
  .gb-about-essence,
  .gb-about-service,
  .gb-stores-list,
  .gb-services-intro,
  .gb-services-row-section,
  .gb-services-process,
  .gb-services-care,
  .gb-services-faq,
  .gb-contact-section
) {
  padding-block: clamp(5.5rem, 9vw, 8.75rem);
}

body.gb-modern-enabled :is(
  .gb-selecao-container,
  .gb-home-dif-container,
  .gb-home-und-container,
  .gb-about-essence-container,
  .gb-about-service-container,
  .gb-stores-list-container,
  .gb-services-intro-container,
  .gb-services-row-container,
  .gb-services-process-container,
  .gb-services-care-container,
  .gb-services-faq-container,
  .gb-contact-container
) {
  max-width: 1240px;
}

/* Header preservado: apenas tratamento visual e estado após o scroll. */
body.gb-modern-enabled .elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 999;
}

body.gb-modern-enabled .elementor-location-header .elementor-element-a53804e {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 8px 28px rgba(0, 51, 124, 0.08);
  backdrop-filter: saturate(120%) blur(12px);
  transition: background-color 480ms var(--gb-modern-ease), box-shadow 480ms var(--gb-modern-ease);
}

body.gb-modern-enabled .elementor-location-header .elementor-element-92f7d83 img {
  transition: height 480ms var(--gb-modern-ease), transform 480ms var(--gb-modern-ease);
}

body.gb-modern-enabled .elementor-location-header .elementor-element-4158bb7 .elementor-nav-menu .elementor-item,
body.gb-modern-enabled .elementor-location-header .elementor-button {
  font-family: var(--gb-modern-font-sans);
  letter-spacing: -0.01em;
}

body.gb-modern-enabled .elementor-location-header.gb-header-scrolled .elementor-element-a53804e {
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 12px 36px rgba(0, 51, 124, 0.13);
}

body.gb-modern-enabled .elementor-location-header.gb-header-scrolled .elementor-element-92f7d83 img {
  height: 68px;
  transform: scale(0.94);
}

body.admin-bar.gb-modern-enabled .elementor-location-header {
  top: 32px;
}

/* Superfícies e imagens: profundidade contida, sem transformar o layout. */
body.gb-modern-enabled :is(
  .gb-selecao-card,
  .gb-home-dif-card,
  .gb-home-und-card,
  .gb-contact-channel-card,
  .gb-contact-form-card,
  .gb-services-intro-card,
  .gb-services-row-card,
  .gb-services-care-block,
  .gb-stores-list-item-block
) {
  border-radius: var(--gb-modern-radius);
  transition: transform 560ms var(--gb-modern-ease), box-shadow 560ms var(--gb-modern-ease), border-color 560ms var(--gb-modern-ease);
}

body.gb-modern-enabled :is(
  .gb-selecao-card,
  .gb-home-und-card,
  .gb-contact-form-card,
  .gb-services-intro-card,
  .gb-services-row-card,
  .gb-stores-list-item-block
):hover {
  box-shadow: var(--gb-modern-shadow-hover);
}

body.gb-modern-enabled :is(
  .gb-card-image-wrapper,
  .gb-home-und-photo,
  .gb-about-essence-photo,
  .gb-about-service-photo,
  .gb-stores-hero-photo,
  .gb-stores-list-photo,
  .gb-services-row-thumb
) {
  overflow: hidden;
  border-radius: var(--gb-modern-radius);
}

body.gb-modern-enabled :is(
  .gb-card-image,
  .gb-home-und-photo img,
  .gb-about-essence-photo img,
  .gb-about-service-photo img,
  .gb-stores-hero-photo img,
  .gb-stores-list-photo img,
  .gb-services-row-thumb img
) {
  transition: transform 760ms var(--gb-modern-ease), filter 760ms var(--gb-modern-ease);
}

body.gb-modern-enabled :is(
  .gb-selecao-card,
  .gb-home-und-card,
  .gb-about-essence-photo-wrap,
  .gb-about-service-photo-wrap,
  .gb-stores-hero-photo-wrap,
  .gb-stores-list-item-block,
  .gb-services-row-card
):hover :is(img, .gb-card-image) {
  transform: scale(1.045);
}

/* Botões e links: microinterações táteis e foco visível. */
body.gb-modern-enabled :is(
  .gb-btn,
  .gb-card-btn,
  .gb-home-und-btn,
  .gb-home-und-cta-btn,
  .gb-home-cta-btn,
  .gb-about-hero-btn,
  .gb-about-essence-cta,
  .gb-about-service-cta,
  .gb-about-final-btn,
  .gb-stores-hero-btn,
  .gb-stores-list-btn,
  .gb-stores-final-cta-btn,
  .gb-services-hero-btn,
  .gb-services-row-btn,
  .gb-services-final-cta-btn,
  .gb-contact-channel-btn,
  .gb-contact-submit
) {
  font-family: var(--gb-modern-font-sans);
  transition: transform 420ms var(--gb-modern-ease), box-shadow 420ms var(--gb-modern-ease), background-color 420ms var(--gb-modern-ease), color 420ms var(--gb-modern-ease), border-color 420ms var(--gb-modern-ease);
}

body.gb-modern-enabled :is(
  .gb-btn,
  .gb-card-btn,
  .gb-home-und-btn,
  .gb-home-und-cta-btn,
  .gb-home-cta-btn,
  .gb-about-hero-btn,
  .gb-about-essence-cta,
  .gb-about-service-cta,
  .gb-about-final-btn,
  .gb-stores-hero-btn,
  .gb-stores-list-btn,
  .gb-stores-final-cta-btn,
  .gb-services-hero-btn,
  .gb-services-row-btn,
  .gb-services-final-cta-btn,
  .gb-contact-channel-btn,
  .gb-contact-submit
):hover {
  transform: translateY(-4px);
}

body.gb-modern-enabled :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(3, 73, 169, 0.3);
  outline-offset: 4px;
}

/* Observer global usado apenas onde não há reveal local pré-existente. */
.gb-modern-js body.gb-modern-enabled .gb-modern-reveal {
  opacity: 0;
  transform: translate3d(0, 30px, 0);
  transition: opacity var(--gb-modern-transition), transform var(--gb-modern-transition);
  transition-delay: var(--gb-reveal-delay, 0ms);
}

.gb-modern-js body.gb-modern-enabled .gb-modern-reveal.gb-is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.gb-modern-js body.gb-modern-enabled .gb-modern-reveal-image {
  clip-path: inset(12% 0 0 0 round var(--gb-modern-radius));
}

.gb-modern-js body.gb-modern-enabled .gb-modern-reveal-image.gb-is-visible {
  clip-path: inset(0 0 0 0 round var(--gb-modern-radius));
  transition-property: opacity, transform, clip-path;
}

/* Experiência especial: fotografia da página Sobre amplia com o scroll. */
body.gb-modern-enabled .gb-scroll-expand {
  border-radius: var(--gb-expand-radius, 28px);
  transform: scaleX(var(--gb-expand-scale, 0.92));
  transform-origin: center;
  will-change: transform;
}

/* Parallax fotográfico discreto, limitado às Heros internas selecionadas. */
body.gb-modern-enabled .gb-parallax-photo {
  transform: translate3d(0, var(--gb-parallax-y, 0), 0) scale(1.055);
  transform-origin: center;
  will-change: transform;
}

/* Tilt é ativado por JS em somente dois cards estratégicos. */
body.gb-modern-enabled .gb-card-3d {
  transform-style: preserve-3d;
  will-change: transform;
}

body.gb-modern-enabled .gb-card-3d > * {
  transform: translateZ(8px);
}

@media (max-width: 1024px) {
  /*
   * O template aprovado do cabeçalho preserva 1280px no container interno
   * entre os breakpoints desktop e tablet. Limitamos somente essa largura
   * para impedir scroll horizontal, sem alterar widgets ou menu.
   */
  body.gb-modern-enabled .elementor-location-header .elementor-element-5401a93 {
    --width: 100%;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
  }

  body.gb-modern-enabled .elementor-location-header .elementor-element-b6cd453,
  body.gb-modern-enabled .elementor-location-header .elementor-element-4158bb7 {
    --width: auto;
    width: auto;
    max-width: none;
    flex: 0 0 auto;
    position: static;
  }

  body.gb-modern-enabled .elementor-location-header .elementor-menu-toggle {
    margin-inline: 0;
  }

  body.gb-modern-enabled .elementor-location-header .elementor-nav-menu--dropdown {
    position: absolute;
    inset: 100% 0 auto;
    width: 100%;
    max-width: none;
    z-index: 20;
    overflow: hidden auto;
    box-shadow: 0 18px 34px rgba(7, 25, 52, 0.12);
  }

  body.gb-modern-enabled :is(
    .gb-selecao,
    .gb-home-dif,
    .gb-home-und,
    .gb-about-essence,
    .gb-about-service,
    .gb-stores-list,
    .gb-services-intro,
    .gb-services-row-section,
    .gb-services-process,
    .gb-services-care,
    .gb-services-faq,
    .gb-contact-section
  ) {
    padding-block: clamp(4.75rem, 9vw, 6.75rem);
  }

  body.gb-modern-enabled .gb-card-3d,
  body.gb-modern-enabled .gb-parallax-photo {
    transform: none;
  }
}

@media (max-width: 767px) {
  body.gb-modern-enabled :is(
    .gb-hero-title,
    .gb-about-hero-title,
    .gb-stores-hero-title,
    .gb-services-hero-title,
    .gb-contact-title
  ) {
    font-size: clamp(2.7rem, 12vw, 3.65rem);
    line-height: 1.01;
  }

  body.gb-modern-enabled :is(
    .gb-selecao-title,
    .gb-home-dif-title,
    .gb-home-und-title,
    .gb-home-cta-title,
    .gb-about-essence-title,
    .gb-about-service-title,
    .gb-about-final-title,
    .gb-stores-list-title,
    .gb-stores-final-cta-title,
    .gb-services-intro-title,
    .gb-services-row-title,
    .gb-services-process-title,
    .gb-services-faq-title,
    .gb-services-final-cta-title,
    .gb-contact-form-title
  ) {
    font-size: clamp(2.25rem, 10vw, 3rem);
    line-height: 1.04;
  }

  body.gb-modern-enabled .elementor-location-header.gb-header-scrolled .elementor-element-92f7d83 img {
    height: 48px;
    transform: scale(0.96);
  }

  body.admin-bar.gb-modern-enabled .elementor-location-header {
    top: 46px;
  }

  body.gb-modern-enabled .gb-scroll-expand {
    border-radius: var(--gb-modern-radius);
    transform: none;
  }
}

@media (max-width: 480px) {
  body.gb-modern-enabled :is(
    .gb-selecao,
    .gb-home-dif,
    .gb-home-und,
    .gb-about-essence,
    .gb-about-service,
    .gb-stores-list,
    .gb-services-intro,
    .gb-services-row-section,
    .gb-services-process,
    .gb-services-care,
    .gb-services-faq,
    .gb-contact-section
  ) {
    padding-block: 4.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.gb-modern-enabled *,
  body.gb-modern-enabled *::before,
  body.gb-modern-enabled *::after {
    scroll-behavior: auto;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
    transition-duration: 0.01ms;
  }

  .gb-modern-js body.gb-modern-enabled .gb-modern-reveal,
  body.gb-modern-enabled .gb-modern-reveal-image,
  body.gb-modern-enabled .gb-scroll-expand,
  body.gb-modern-enabled .gb-parallax-photo,
  body.gb-modern-enabled .gb-card-3d {
    opacity: 1;
    clip-path: none;
    transform: none;
  }
}
