.elementor-34 .elementor-element.elementor-element-36d1672{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-34 .elementor-element.elementor-element-f51f86a{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-34 .elementor-element.elementor-element-5cdb3c9{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-34 .elementor-element.elementor-element-5cdb3c9:not(.elementor-motion-effects-element-type-background), .elementor-34 .elementor-element.elementor-element-5cdb3c9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-b5aeb33 );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-34 .elementor-element.elementor-element-313189e{text-align:center;font-family:"Montserrat", Sans-serif;font-size:35px;font-weight:400;font-style:italic;color:#6D472D;}.elementor-34 .elementor-element.elementor-element-cc9788b{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-34 .elementor-element.elementor-element-2321c93{--display:flex;}.elementor-34 .elementor-element.elementor-element-ce7cb49{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;}.elementor-34 .elementor-element.elementor-element-7a210ac{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-34 .elementor-element.elementor-element-7a210ac:not(.elementor-motion-effects-element-type-background), .elementor-34 .elementor-element.elementor-element-7a210ac > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-58be983 );}.elementor-34 .elementor-element.elementor-element-2aa1f29{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-34 .elementor-element.elementor-element-4f2d205{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}body.elementor-page-34{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}@media(max-width:767px){.elementor-34 .elementor-element.elementor-element-313189e{font-size:15px;}}/* Start custom CSS for html, class: .elementor-element-f51f86a */.hero-geo {
  --geo-orange: #F7A51D;
  --geo-orange-hover: #E48C02;
  --geo-white: #FFFFFF;

  --geo-serif: "Playfair Display", Georgia, serif;
  --geo-sans: "Inter", Arial, sans-serif;

  /* Ajustes rápidos de enquadramento */
  --hero-image-x: 50%;
  --hero-image-y: 50%;

  position: relative;
  isolation: isolate;

  display: flex;
  align-items: center;

  width: 100%;
  min-height: 100vh;
  min-height: 100svh;

  padding:
    clamp(130px, 12vw, 190px)
    clamp(24px, 8vw, 120px)
    clamp(65px, 8vw, 100px);

  overflow: hidden;

  background-color: #344B41;

  background-image:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.48) 0%,
      rgba(0, 0, 0, 0.24) 50%,
      rgba(0, 0, 0, 0.08) 100%
    ),
    url("https://geohorizont.com/wp-content/uploads/2026/06/geo-horizeont-home.webp");

  background-size: cover;
  background-position:
    center,
    var(--hero-image-x) var(--hero-image-y);
  background-repeat: no-repeat;
}

/* Box sizing isolado */

.hero-geo,
.hero-geo *,
.hero-geo *::before,
.hero-geo *::after {
  box-sizing: border-box;
}

/* ==========================================
   CONTEÚDO
   ========================================== */

.hero-geo .hero-wrapper {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 620px;

  min-width: 0;

  margin: 0;
  padding: 0;

  text-align: left;
}

/* ==========================================
   TÍTULO
   ========================================== */

.hero-geo .hero-title {
  width: 100%;
  max-width: 620px;

  margin: 0 0 24px;
  padding: 0;

  color: var(--geo-white);

  font-family: var(--geo-serif);
  font-size: clamp(42px, 4.5vw, 72px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.025em;

  text-align: left;
  text-transform: uppercase;
  text-wrap: balance;

  overflow-wrap: normal;
  word-break: normal;
}

/* ==========================================
   DESCRIÇÃO
   ========================================== */

.hero-geo .hero-description {
  width: 100%;
  max-width: 460px;

  margin: 0 0 32px;
  padding: 0;

  color: var(--geo-white);

  font-family: var(--geo-sans);
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 400;
  line-height: 1.55;

  text-align: left;
  overflow-wrap: break-word;
}

/* ==========================================
   BOTÃO WHATSAPP
   ========================================== */

.hero-geo .hero-geo-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: min(280px, 100%);
  min-height: 56px;

  margin: 0;
  padding: 14px 24px;

  border: 2px solid transparent;
  border-radius: 999px;

  background: var(--geo-orange);
  color: #302013 !important;

  font-family: var(--geo-sans);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;

  text-align: center;
  text-decoration: none !important;

  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.18);

  cursor: pointer;
  touch-action: manipulation;

  transition:
    background-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

/* Hover apenas para mouse */

@media (hover: hover) and (pointer: fine) {
  .hero-geo .hero-geo-button:hover {
    background: var(--geo-orange-hover);
    color: #24170C !important;

    transform: translateY(-3px);

    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.22);
  }
}

/* Foco acessível */

.hero-geo .hero-geo-button:focus-visible {
  outline: 3px solid #FFFFFF;
  outline-offset: 4px;
}

/* ==========================================
   NOTEBOOKS — ATÉ 1366PX
   ========================================== */

@media (max-width: 1366px) {
  .hero-geo {
    padding-inline: clamp(48px, 6vw, 90px);
  }

  .hero-geo .hero-wrapper {
    max-width: 540px;
  }

  .hero-geo .hero-title {
    font-size: clamp(42px, 4.2vw, 60px);
  }
}

/* ==========================================
   TABLET — 768 A 1024PX
   ========================================== */

@media (min-width: 768px) and (max-width: 1024px) {
  .hero-geo {
    --hero-image-x: 65%;

    min-height: max(620px, 85svh);

    padding:
      150px
      7vw
      80px;

    align-items: center;

    background-image:
      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.52) 0%,
        rgba(0, 0, 0, 0.20) 100%
      ),
      url("https://geohorizont.com/wp-content/uploads/2026/06/geo-horizeont-home.webp");
  }

  .hero-geo .hero-wrapper {
    max-width: 440px;
  }

  .hero-geo .hero-title {
    font-size: clamp(43px, 5.5vw, 56px);
    line-height: 1.06;
    margin-bottom: 22px;
  }

  .hero-geo .hero-description {
    max-width: 400px;
    font-size: 18px;
    margin-bottom: 28px;
  }

  .hero-geo .hero-geo-button {
    width: min(250px, 100%);
    min-height: 54px;
    font-size: 16px;
  }
}

/* ==========================================
   MOBILE — ATÉ 767PX
   ========================================== */

@media (max-width: 767px) {
  .hero-geo {
    --hero-image-x: 62%;
    --hero-image-y: center;

    min-height: 100vh;
    min-height: 100svh;

    align-items: flex-end;

    padding:
      140px
      24px
      max(44px, env(safe-area-inset-bottom));

    background-image:
      linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.10) 0%,
        rgba(0, 0, 0, 0.12) 35%,
        rgba(0, 0, 0, 0.70) 100%
      ),
      url("https://geohorizont.com/wp-content/uploads/2026/06/geo-horizeont-home.webp");
  }

  .hero-geo .hero-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    width: 100%;
    max-width: 460px;

    margin: 0;
    padding: 0;
  }

  .hero-geo .hero-title {
    width: 100%;
    max-width: 100%;

    margin-bottom: 18px;

    font-size: clamp(30px, 8.4vw, 44px);
    line-height: 1.08;
    letter-spacing: -0.02em;

    text-align: left;
  }

  .hero-geo .hero-description {
    max-width: 360px;

    margin-bottom: 26px;

    font-size: clamp(15px, 4vw, 17px);
    line-height: 1.55;
  }

  .hero-geo .hero-geo-button {
    width: min(240px, 100%);
    min-height: 52px;
    padding: 12px 22px;
    font-size: 16px;
  }
}

/* ==========================================
   CELULARES PEQUENOS — ATÉ 420PX
   ========================================== */

@media (max-width: 420px) {
  .hero-geo {
    padding-inline: 20px;
    padding-bottom: max(36px, env(safe-area-inset-bottom));
  }

  /* Permite quebra automática do título */
  .hero-geo .hero-title-break {
    display: none;
  }

  .hero-geo .hero-title {
    font-size: clamp(29px, 8vw, 36px);
    line-height: 1.1;
    letter-spacing: -0.02em;
  }

  .hero-geo .hero-description {
    max-width: 310px;
    font-size: 15px;
    line-height: 1.5;
  }
}

/* ==========================================
   CELULARES MUITO ESTREITOS
   ========================================== */

@media (max-width: 360px) {
  .hero-geo {
    padding-inline: 18px;
  }

  .hero-geo .hero-title {
    font-size: clamp(27px, 8vw, 31px);
  }

  .hero-geo .hero-description {
    font-size: 14px;
    margin-bottom: 22px;
  }

  .hero-geo .hero-geo-button {
    min-height: 50px;
    font-size: 15px;
  }
}

/* ==========================================
   TELAS BAIXAS E CELULARES HORIZONTAIS
   ========================================== */

@media (max-height: 650px) {
  .hero-geo {
    min-height: 560px;
    padding-top: 115px;
    padding-bottom: 36px;
  }
}

@media (max-height: 500px) and (orientation: landscape) {
  .hero-geo {
    min-height: 480px;
    padding-top: 95px;
    padding-bottom: 30px;
  }

  .hero-geo .hero-title {
    font-size: clamp(28px, 4vw, 44px);
    margin-bottom: 14px;
  }

  .hero-geo .hero-description {
    margin-bottom: 18px;
  }
}

/* ==========================================
   ACESSIBILIDADE
   ========================================== */

@media (prefers-reduced-motion: reduce) {
  .hero-geo .hero-geo-button {
    transition: none;
  }
}

@media (forced-colors: active) {
  .hero-geo .hero-geo-button {
    border-color: ButtonText;
    background: ButtonFace;
    color: ButtonText !important;
    box-shadow: none;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-ce7cb49 */.geo-family-section {
    --geo-family-orange: #F7A51D;
    --geo-family-brown: #8B5F3D;
    --geo-family-white: #FFFFFF;

    --geo-family-serif: "Playfair Display", Georgia, serif;
    --geo-family-sans: "Inter", Arial, sans-serif;

    width: 100%;
    max-width: 100%;

    padding: 100px 5%;

    background-color: var(--geo-family-white);
}

/*
Limita o box-sizing somente a esta seção.
Não interfere em outros widgets do Elementor.
*/
.geo-family-section,
.geo-family-section *,
.geo-family-section *::before,
.geo-family-section *::after {
    box-sizing: border-box;
}

/* =========================================================
   CABEÇALHO
========================================================= */

.geo-family-section .geo-family-header {
    width: 100%;
    max-width: 900px;

    margin: 0 auto 70px;

    text-align: center;
}

.geo-family-section .geo-family-title {
    max-width: 100%;

    margin: 0 0 25px;

    font-family: var(--geo-family-serif);
    font-size: clamp(42px, 5vw, 72px);
    font-weight: 700;
    line-height: 1.05;

    color: var(--geo-family-orange);

    text-align: center;

    overflow-wrap: normal;
    word-break: normal;
}

.geo-family-section .geo-family-subtitle {
    width: 100%;
    max-width: 760px;

    margin: 0 auto;

    font-family: var(--geo-family-sans);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;

    color: var(--geo-family-brown);

    text-align: center;

    overflow-wrap: break-word;
}

/* =========================================================
   GRID
========================================================= */

.geo-family-section .geo-family-grid {
    display: grid;

    /*
     Mantém as três colunas iguais.
     minmax(0, 1fr) impede estouros de largura.
    */
    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    width: 100%;
    max-width: 1280px;
    height: 620px;

    margin: 0 auto;

    gap: 35px;
}

.geo-family-section .geo-family-stack {
    display: flex;
    flex-direction: column;

    min-width: 0;
    min-height: 0;

    gap: 35px;
}

/* =========================================================
   CARDS
========================================================= */

.geo-family-section .geo-family-card {
    position: relative;

    display: block;

    min-width: 0;
    min-height: 0;
    max-width: 100%;

    overflow: hidden;

    border-radius: 22px;

    color: var(--geo-family-white);
    text-decoration: none;
    text-decoration-thickness: auto;
}

.geo-family-section .geo-card-large,
.geo-family-section .geo-card-info {
    height: 100%;
}

.geo-family-section .geo-card-half {
    height: calc(50% - 17.5px);
}

/* =========================================================
   IMAGENS
========================================================= */

.geo-family-section .geo-family-card > img {
    display: block;

    width: 100%;
    max-width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    transform: scale(1);

    transition: transform 1s ease;
}

/*
Efeito somente em dispositivos que realmente possuem hover.
Evita estados presos em telas de toque.
*/
@media (hover: hover) and (pointer: fine) {
    .geo-family-section .geo-family-card:hover > img {
        transform: scale(1.06);
    }
}

/* =========================================================
   OVERLAY
========================================================= */

.geo-family-section .geo-family-overlay {
    position: absolute;
    inset: 0;

    display: flex;
    align-items: flex-end;
    justify-content: center;

    padding: 35px;

    background:
        linear-gradient(
            rgba(0, 0, 0, 0.08),
            rgba(0, 0, 0, 0.45)
        );
}

.geo-family-section .geo-family-overlay h3 {
    max-width: 100%;

    margin: 0;

    font-family: var(--geo-family-serif);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.15;

    color: var(--geo-family-white);

    text-align: center;

    overflow-wrap: normal;
    word-break: normal;
}

/* =========================================================
   CARD INFORMATIVO
========================================================= */

.geo-family-section .geo-info-overlay {
    align-items: flex-end;
    justify-content: flex-start;
}

.geo-family-section .geo-info-content {
    width: 100%;
    max-width: 290px;
}

.geo-family-section .geo-info-content h3 {
    margin: 0 0 25px;

    font-size: 32px;

    text-align: left;
}

.geo-family-section .geo-info-content p {
    margin: 0 0 28px;

    font-family: var(--geo-family-sans);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.45;

    color: var(--geo-family-white);

    text-align: left;

    overflow-wrap: break-word;
}

.geo-family-section .geo-family-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 48px;
    padding: 14px 28px;

    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 999px;

    color: var(--geo-family-white);

    font-family: var(--geo-family-sans);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;

    text-align: center;

    transition:
        background-color 0.3s ease,
        color 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
    .geo-family-section .geo-card-info:hover .geo-family-btn {
        background-color: var(--geo-family-white);
        color: #222222;
    }
}

/* =========================================================
   NAVEGAÇÃO POR TECLADO
========================================================= */

.geo-family-section .geo-family-card:focus {
    outline: none;
}

.geo-family-section .geo-family-card:focus-visible {
    outline: 3px solid var(--geo-family-orange);
    outline-offset: 5px;
}

.geo-family-section .geo-family-card:focus-visible > img {
    transform: scale(1.03);
}

.geo-family-section
.geo-card-info:focus-visible
.geo-family-btn {
    background-color: var(--geo-family-white);
    color: #222222;
}

/* =========================================================
   NOTEBOOK
   Mantém o mesmo layout de três colunas
========================================================= */

@media (min-width: 1025px) and (max-width: 1366px) {
    .geo-family-section {
        padding-inline: clamp(40px, 5vw, 68px);
    }

    .geo-family-section .geo-family-grid {
        gap: clamp(24px, 2.5vw, 35px);
    }

    .geo-family-section .geo-family-stack {
        gap: clamp(24px, 2.5vw, 35px);
    }

    .geo-family-section .geo-card-half {
        /*
         Metade da altura considerando o gap fluido.
        */
        height: calc(
            50% - (clamp(24px, 2.5vw, 35px) / 2)
        );
    }
}

/* =========================================================
   TABLET
   Mantém duas colunas e o card informativo abaixo
========================================================= */

@media (max-width: 1024px) {
    .geo-family-section {
        padding:
            clamp(80px, 9vw, 100px)
            clamp(28px, 5vw, 52px);
    }

    .geo-family-section .geo-family-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        height: auto;
    }

    /*
     Mantém o card grande e a pilha com altura equivalente.
    */
    .geo-family-section .geo-card-large,
    .geo-family-section .geo-family-stack {
        height: 620px;
    }

    .geo-family-section .geo-card-info {
        grid-column: span 2;

        width: 100%;
        height: 450px;
    }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
    .geo-family-section {
        padding: 80px 20px;
    }

    .geo-family-section .geo-family-header {
        margin-bottom: 50px;
    }

    .geo-family-section .geo-family-title {
        font-size: 32px;
        line-height: 1.08;
    }

    .geo-family-section .geo-family-subtitle {
        font-size: 16px;
    }

    .geo-family-section .geo-family-grid {
        grid-template-columns: 1fr;

        gap: 35px;
    }

    .geo-family-section .geo-family-stack {
        height: auto;
        gap: 35px;
    }

    .geo-family-section .geo-card-large,
    .geo-family-section .geo-card-half,
    .geo-family-section .geo-card-info {
        grid-column: auto;

        width: 100%;
        height: 350px;
    }

    .geo-family-section .geo-family-overlay {
        padding: clamp(24px, 7vw, 35px);
    }

    .geo-family-section .geo-family-overlay h3 {
        font-size: clamp(24px, 7vw, 28px);
    }

    .geo-family-section .geo-info-content h3 {
        font-size: clamp(28px, 8vw, 32px);
    }

    .geo-family-section .geo-family-btn {
        min-height: 48px;
    }
}

/* =========================================================
   CELULARES ESTREITOS
========================================================= */

@media (max-width: 360px) {
    .geo-family-section {
        padding-inline: 16px;
    }

    .geo-family-section .geo-card-large,
    .geo-family-section .geo-card-half,
    .geo-family-section .geo-card-info {
        height: 330px;
    }

    .geo-family-section .geo-family-overlay {
        padding: 22px;
    }

    .geo-family-section .geo-info-content h3 {
        margin-bottom: 18px;
    }

    .geo-family-section .geo-info-content p {
        margin-bottom: 20px;
        font-size: 15px;
    }

    .geo-family-section .geo-family-btn {
        padding-inline: 22px;
        font-size: 15px;
    }
}

/* =========================================================
   TELAS COM POUCA ALTURA
========================================================= */

@media (max-height: 700px) and (min-width: 768px) {
    .geo-family-section .geo-family-grid {
        height: 560px;
    }

    .geo-family-section .geo-card-large,
    .geo-family-section .geo-family-stack {
        height: 560px;
    }
}

/* =========================================================
   REDUÇÃO DE MOVIMENTO
========================================================= */

@media (prefers-reduced-motion: reduce) {
    .geo-family-section .geo-family-card > img,
    .geo-family-section .geo-family-btn {
        transition: none;
    }

    .geo-family-section .geo-family-card:hover > img,
    .geo-family-section .geo-family-card:focus-visible > img {
        transform: none;
    }
}

/* =========================================================
   ALTO CONTRASTE
========================================================= */

@media (forced-colors: active) {
    .geo-family-section .geo-family-card {
        border: 2px solid LinkText;
    }

    .geo-family-section .geo-family-overlay {
        background: transparent;
    }

    .geo-family-section .geo-family-overlay h3,
    .geo-family-section .geo-info-content p {
        color: CanvasText;
        background: Canvas;
    }

    .geo-family-section .geo-family-btn {
        border-color: ButtonText;
        color: ButtonText;
        background: ButtonFace;
    }

    .geo-family-section .geo-family-card:focus-visible {
        outline-color: Highlight;
    }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-3cd80f6 */.geo-family-fit {
    --geo-fit-orange: #F7A51D;
    --geo-fit-orange-hover: #E48C02;
    --geo-fit-background: #F3E7D1;
    --geo-fit-brown: #8B5F3D;
    --geo-fit-white: #FFFFFF;

    --geo-fit-serif: "Playfair Display", Georgia, serif;
    --geo-fit-sans: "Inter", Arial, sans-serif;

    width: 100%;
    max-width: 100%;

    padding: 100px 5% 120px;

    background-color: var(--geo-fit-background);
}

/*
Mantém os cálculos de largura previsíveis
somente dentro desta seção.
*/
.geo-family-fit,
.geo-family-fit *,
.geo-family-fit *::before,
.geo-family-fit *::after {
    box-sizing: border-box;
}

/* =========================================================
   CABEÇALHO
========================================================= */

.geo-family-fit .geo-family-fit-header {
    width: 100%;
    max-width: 900px;

    margin: 0 auto 55px;

    text-align: center;
}

.geo-family-fit .geo-family-fit-title {
    max-width: 100%;

    margin: 0 0 28px;

    font-family: var(--geo-fit-serif);
    font-size: clamp(48px, 5vw, 78px);
    font-weight: 700;
    line-height: 1.05;

    color: var(--geo-fit-orange);

    text-align: center;

    overflow-wrap: normal;
    word-break: normal;
}

.geo-family-fit .geo-family-fit-subtitle {
    width: 100%;
    max-width: 760px;

    margin: 0 auto;

    font-family: var(--geo-fit-sans);
    font-size: clamp(18px, 1.6vw, 22px);
    font-weight: 400;
    line-height: 1.45;

    color: var(--geo-fit-brown);

    text-align: center;

    overflow-wrap: break-word;
}

/* =========================================================
   CONTAINER DA IMAGEM
========================================================= */

.geo-family-fit .geo-family-fit-image-wrap {
    position: relative;

    width: 100%;
    max-width: 1380px;

    margin: 0 auto;
}

/* =========================================================
   IMAGEM PRINCIPAL
========================================================= */

.geo-family-fit .geo-family-fit-image {
    display: block;

    width: 100%;
    max-width: 100%;
    height: 520px;

    border-radius: 20px;

    object-fit: cover;
    object-position: center center;
}

/* =========================================================
   BOTÃO
========================================================= */

.geo-family-fit .geo-family-fit-btn {
    position: absolute;
    top: -26px;
    left: 50%;
    z-index: 20;

    display: flex;
    align-items: center;
    justify-content: center;

    /*
     Preserva os 320px no desktop e permite que
     o botão encolha apenas quando necessário.
    */
    width: min(320px, calc(100% - 32px));
    min-height: 54px;
    padding: 10px 24px;

    transform: translateX(-50%);

    border: 2px solid transparent !important;
    border-radius: 999px;

    background-color: var(--geo-fit-orange);
    color: var(--geo-fit-white) !important;

    font-family: var(--geo-fit-sans);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.2;

    text-align: center;
    text-decoration: none !important;

    box-shadow: none !important;

    cursor: pointer;

    transition:
        background-color 0.35s ease,
        color 0.35s ease,
        transform 0.35s ease;
}

@media (hover: hover) and (pointer: fine) {
    .geo-family-fit .geo-family-fit-btn:hover {
        background-color: var(--geo-fit-orange-hover);
        color: var(--geo-fit-white) !important;

        transform:
            translateX(-50%)
            translateY(-2px);
    }
}

.geo-family-fit .geo-family-fit-btn:focus {
    outline: none;
}

.geo-family-fit .geo-family-fit-btn:focus-visible {
    outline: 3px solid var(--geo-fit-brown);
    outline-offset: 4px;

    background-color: var(--geo-fit-orange-hover);
    color: var(--geo-fit-white) !important;
}

.geo-family-fit .geo-family-fit-btn:active {
    transform: translateX(-50%);
}

/* =========================================================
   GRADE DOS CARDS
========================================================= */

.geo-family-fit .geo-family-fit-cards {
    position: relative;
    z-index: 10;

    display: grid;

    /*
     Preserva as quatro colunas iguais.
     minmax(0, 1fr) evita que textos alarguem a grade.
    */
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    width: 100%;

    gap: 32px;

    margin-top: -115px;
    padding: 0 60px;
}

/* =========================================================
   CARD
========================================================= */

.geo-family-fit .geo-fit-card {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    min-width: 0;
    max-width: 100%;
    min-height: 225px;

    margin: 0;
    padding: 30px 24px;

    overflow: hidden;

    border-radius: 20px;

    background-color: var(--geo-fit-orange);

    text-align: center;

    box-shadow:
        0 16px 35px rgba(0, 0, 0, 0.18);

    transition:
        transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
        box-shadow 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/*
Aplica hover apenas em dispositivos com mouse.
Em telas de toque, o card não fica preso no estado elevado.
*/
@media (hover: hover) and (pointer: fine) {
    .geo-family-fit .geo-fit-card:hover {
        transform: translateY(-12px);

        box-shadow:
            0 28px 55px rgba(0, 0, 0, 0.24);
    }
}

/* =========================================================
   BRILHO DO CARD
========================================================= */

.geo-family-fit .geo-fit-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: -130%;

    width: 70%;
    height: 100%;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, 0.18),
            transparent
        );

    transition: left 1s ease;
}

@media (hover: hover) and (pointer: fine) {
    .geo-family-fit .geo-fit-card:hover::before {
        left: 140%;
    }
}

/* =========================================================
   ÍCONES
========================================================= */

.geo-family-fit .geo-fit-card img {
    position: relative;
    z-index: 1;

    display: block;

    width: 58px;
    height: 58px;
    max-width: 100%;

    margin: 0 0 20px;

    object-fit: contain;

    transition:
        transform 0.4s ease,
        filter 0.4s ease;
}

@media (hover: hover) and (pointer: fine) {
    .geo-family-fit .geo-fit-card:hover img {
        transform:
            translateY(-4px)
            scale(1.06);

        filter: brightness(1.08);
    }
}

/* =========================================================
   TEXTO DOS CARDS
========================================================= */

.geo-family-fit .geo-fit-card p {
    position: relative;
    z-index: 1;

    width: 100%;
    max-width: 220px;

    margin: 0;

    color: var(--geo-fit-white);

    font-family: var(--geo-fit-sans);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;

    text-align: center;

    overflow-wrap: break-word;
}

/* =========================================================
   NOTEBOOK
   Mantém quatro colunas
========================================================= */

@media (min-width: 1025px) and (max-width: 1366px) {
    .geo-family-fit {
        padding-inline: clamp(40px, 5vw, 68px);
    }

    .geo-family-fit .geo-family-fit-cards {
        gap: clamp(22px, 2.35vw, 32px);
        padding-inline: clamp(30px, 4.4vw, 60px);
    }

    .geo-family-fit .geo-fit-card {
        padding-inline: clamp(18px, 1.75vw, 24px);
    }

    .geo-family-fit .geo-fit-card p {
        font-size: clamp(16px, 1.3vw, 18px);
    }
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1024px) {
    .geo-family-fit {
        padding:
            clamp(80px, 9vw, 100px)
            clamp(28px, 5vw, 52px)
            clamp(90px, 11vw, 120px);
    }

    .geo-family-fit .geo-family-fit-image {
        height: 420px;
    }

    .geo-family-fit .geo-family-fit-cards {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 24px;

        margin-top: 30px;
        padding: 0;
    }

    .geo-family-fit .geo-fit-card {
        min-height: 210px;
    }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
    .geo-family-fit {
        padding: 60px 16px 70px;
    }

    .geo-family-fit .geo-family-fit-header {
        margin-bottom: 30px;
    }

    .geo-family-fit .geo-family-fit-title {
        margin-bottom: 16px;

        font-size: clamp(34px, 8vw, 42px);
        line-height: 1.05;
    }

    .geo-family-fit .geo-family-fit-subtitle {
        font-size: 15px;
        line-height: 1.45;
    }

    /*
     Mantém o botão no fluxo acima da imagem,
     como no layout mobile original.
    */
    .geo-family-fit .geo-family-fit-btn {
        position: relative;
        top: auto;
        left: auto;

        width: min(220px, 100%);
        max-width: 220px;
        min-height: 50px;

        margin: 0 auto 18px;
        padding: 10px 20px;

        transform: none;

        font-size: 15px;
        font-weight: 500;
    }

    .geo-family-fit .geo-family-fit-btn:hover,
    .geo-family-fit .geo-family-fit-btn:active {
        transform: none;
    }

    .geo-family-fit .geo-family-fit-image {
        height: 210px;

        border-radius: 16px;

        object-fit: cover;
        object-position: center center;
    }

    .geo-family-fit .geo-family-fit-cards {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 14px;

        margin-top: 14px;
        padding: 0;
    }

    .geo-family-fit .geo-fit-card {
        min-height: 180px;

        padding: 18px 14px;

        border-radius: 18px;

        box-shadow:
            0 10px 24px rgba(0, 0, 0, 0.14);
    }

    .geo-family-fit .geo-fit-card::before {
        display: none;
    }

    .geo-family-fit .geo-fit-card img {
        width: 40px;
        height: 40px;

        margin-bottom: 12px;
    }

    .geo-family-fit .geo-fit-card p {
        max-width: 100%;

        font-size: 13px;
        line-height: 1.35;
    }
}

/* =========================================================
   CELULARES ESTREITOS
========================================================= */

@media (max-width: 360px) {
    .geo-family-fit {
        padding-inline: 12px;
    }

    .geo-family-fit .geo-family-fit-cards {
        gap: 10px;
    }

    .geo-family-fit .geo-fit-card {
        min-height: 170px;
        padding: 16px 10px;
    }

    .geo-family-fit .geo-fit-card p {
        font-size: 12px;
    }
}

/* =========================================================
   REDUÇÃO DE MOVIMENTO
========================================================= */

@media (prefers-reduced-motion: reduce) {
    .geo-family-fit .geo-family-fit-btn,
    .geo-family-fit .geo-fit-card,
    .geo-family-fit .geo-fit-card::before,
    .geo-family-fit .geo-fit-card img {
        transition: none;
    }

    .geo-family-fit .geo-family-fit-btn:hover,
    .geo-family-fit .geo-fit-card:hover,
    .geo-family-fit .geo-fit-card:hover img {
        transform: none;
    }

    .geo-family-fit .geo-fit-card::before {
        display: none;
    }
}

/* =========================================================
   ALTO CONTRASTE
========================================================= */

@media (forced-colors: active) {
    .geo-family-fit .geo-family-fit-btn {
        border-color: ButtonText !important;

        background: ButtonFace;
        color: ButtonText !important;
    }

    .geo-family-fit .geo-fit-card {
        border: 2px solid CanvasText;

        background: Canvas;
        color: CanvasText;

        box-shadow: none;
    }

    .geo-family-fit .geo-fit-card p {
        color: CanvasText;
    }

    .geo-family-fit .geo-fit-card::before {
        display: none;
    }

    .geo-family-fit .geo-family-fit-btn:focus-visible {
        outline-color: Highlight;
    }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-236f4fb */body.page-id-34 {
    --geo-orange: #F7A51D;
    --geo-orange-hover: #E48C02;
    --geo-brown: #8B5F3D;
    --geo-text: #6E6E6E;
}

/* SEÇÃO */

body.page-id-34 .geo-testimonials {
    width: 100%;
    max-width: 100%;
    background: #FFFFFF;
    padding: clamp(70px, 7vw, 110px) 5%;
    overflow: visible;
}

/* CABEÇALHO */

body.page-id-34 .geo-testimonials-header {
    text-align: center;
    margin-bottom: 80px;
}

body.page-id-34 .geo-testimonials-title {
    margin: 0;
    font-family: "Playfair Display", serif;
    color: var(--geo-orange);
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.1;
    font-weight: 700;
}

/* GRID */

body.page-id-34 .geo-testimonials-grid {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(24px, 3vw, 42px);

    /*
     Espaço para a parte superior dos avatares.
     Não altera a posição original dos cards.
    */
    padding-top: 55px;
}

/* CARD */

body.page-id-34 .geo-testimonial-card {
    position: relative;
    min-width: 0;
    min-height: 320px;
    height: 100%;

    background: #FFFFFF;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 18px;

    padding: 85px 32px 35px;

    text-align: center;
    overflow: visible;

    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);

    transition:
        transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
        box-shadow 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}

body.page-id-34 .geo-testimonial-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 22px 45px rgba(0, 0, 0, 0.12);
}

/* AVATAR */

body.page-id-34 .geo-testimonial-avatar {
    position: absolute;
    top: -55px;
    left: 50%;
    z-index: 2;

    width: 110px;
    height: 110px;
    margin: 0;

    transform: translateX(-50%);

    border-radius: 50%;
    overflow: hidden;
    background: #DDDDDD;

    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

body.page-id-34 .geo-testimonial-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;

    object-fit: cover;
    object-position: center;
}

/* NOME */

body.page-id-34 .geo-testimonial-card h3 {
    position: relative;
    z-index: 1;

    margin: 0 0 18px;

    font-family: "Inter", sans-serif;
    color: var(--geo-orange);
    font-size: 20px;
    line-height: 1.25;
    font-weight: 600;

    transform: none;
}

/* TEXTO */

body.page-id-34 .geo-testimonial-card p {
    margin: 0;

    font-family: "Inter", sans-serif;
    color: var(--geo-brown);
    font-size: clamp(14px, 0.25vw + 12px, 16px);
    line-height: 1.6;

    overflow-wrap: break-word;
}

/* ==================================================
   TABLET
================================================== */

@media (max-width: 1024px) {
    body.page-id-34 .geo-testimonials {
        padding-inline: 32px;
    }

    body.page-id-34 .geo-testimonials-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 820px;
        row-gap: 90px;
    }

    body.page-id-34 .geo-testimonial-card:last-child {
        grid-column: 1 / -1;
        width: min(100%, 398px);
        justify-self: center;
    }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width: 767px) {
    body.page-id-34 .geo-testimonials {
        padding: 70px 16px;
    }

    body.page-id-34 .geo-testimonials-header {
        margin-bottom: 35px;
    }

    body.page-id-34 .geo-testimonials-title {
        font-size: clamp(32px, 8vw, 38px);
    }

    body.page-id-34 .geo-testimonials-grid {
        grid-template-columns: 1fr;
        gap: 80px;
        max-width: 420px;
        padding-top: 45px;
    }

    body.page-id-34 .geo-testimonial-card,
    body.page-id-34 .geo-testimonial-card:last-child {
        grid-column: auto;
        width: 100%;
        min-height: auto;

        padding: 75px 22px 26px;
        border-radius: 16px;
    }

    body.page-id-34 .geo-testimonial-avatar {
        width: 90px;
        height: 90px;
        top: -45px;
    }

    body.page-id-34 .geo-testimonial-card h3 {
        margin-bottom: 12px;
        font-size: 18px;
    }

    body.page-id-34 .geo-testimonial-card p {
        font-size: 14px;
        line-height: 1.55;
    }

    /*
     Hover não deve deslocar o card em telas de toque.
    */
    body.page-id-34 .geo-testimonial-card:hover {
        transform: none;
    }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-102f6da */.geo-grid-family {
    --geo-grid-background: #F3E7D1;
    --geo-grid-brown: #8B5F3D;
    --geo-grid-orange: #F7A51D;
    --geo-grid-orange-hover: #E48C02;
    --geo-grid-white: #FFFFFF;

    --geo-grid-serif: "Playfair Display", Georgia, serif;
    --geo-grid-sans: "Inter", Arial, sans-serif;

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    grid-template-areas:
        "text1 image1"
        "image2 text2";

    width: 100%;
    max-width: 100%;

    margin: 0;
    padding: 0;

    background-color: var(--geo-grid-background);
}

/*
Mantém o cálculo de medidas previsível apenas
dentro desta seção.
*/
.geo-grid-family,
.geo-grid-family *,
.geo-grid-family *::before,
.geo-grid-family *::after {
    box-sizing: border-box;
}

/* =========================================================
   ÁREAS DA GRADE
========================================================= */

.geo-grid-family .area-text-1 {
    grid-area: text1;
}

.geo-grid-family .area-image-1 {
    grid-area: image1;
}

.geo-grid-family .area-image-2 {
    grid-area: image2;
}

.geo-grid-family .area-text-2 {
    grid-area: text2;
}

/* =========================================================
   BLOCOS DE TEXTO
========================================================= */

.geo-grid-family .area-text-1,
.geo-grid-family .area-text-2 {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 0;
    min-height: 620px;

    margin: 0;
    padding: 6vw;

    background-color: var(--geo-grid-background);
}

.geo-grid-family .geo-content {
    width: 100%;
    max-width: 520px;

    margin: 0;
}

/* =========================================================
   TÍTULOS
========================================================= */

.geo-grid-family .geo-content h2 {
    max-width: 100%;

    margin: 0 0 24px;

    font-family: var(--geo-grid-serif);
    font-size: clamp(42px, 4vw, 68px);
    font-weight: 700;
    line-height: 1.02;

    color: var(--geo-grid-brown);

    overflow-wrap: normal;
    word-break: normal;
}

/* =========================================================
   PARÁGRAFOS
========================================================= */

.geo-grid-family .geo-content p {
    max-width: 100%;

    margin: 0;

    font-family: var(--geo-grid-sans);
    font-size: clamp(17px, 1vw, 20px);
    font-weight: 400;
    line-height: 1.5;

    color: var(--geo-grid-brown);

    overflow-wrap: break-word;
}

/* =========================================================
   BOTÃO OPCIONAL
   Mantido para compatibilidade caso seja usado depois
========================================================= */

.geo-grid-family .geo-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: min(250px, 100%);
    min-height: 56px;

    margin-top: 36px;
    padding: 12px 24px;

    border: 2px solid transparent;
    border-radius: 999px;

    background-color: var(--geo-grid-orange);
    color: var(--geo-grid-white) !important;

    font-family: var(--geo-grid-sans);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.2;

    text-align: center;
    text-decoration: none !important;

    cursor: pointer;

    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
    .geo-grid-family .geo-btn:hover {
        background-color: var(--geo-grid-orange-hover);
        color: var(--geo-grid-white) !important;

        transform: translateY(-2px);
    }
}

.geo-grid-family .geo-btn:focus {
    outline: none;
}

.geo-grid-family .geo-btn:focus-visible {
    outline: 3px solid var(--geo-grid-brown);
    outline-offset: 4px;

    background-color: var(--geo-grid-orange-hover);
}

.geo-grid-family .geo-btn:active {
    transform: translateY(0);
}

/* =========================================================
   ÁREAS DAS IMAGENS
========================================================= */

.geo-grid-family .area-image-1,
.geo-grid-family .area-image-2 {
    min-width: 0;
    min-height: 620px;

    margin: 0;
    padding: 0;

    overflow: hidden;

    background-color: var(--geo-grid-background);
}

.geo-grid-family .area-image-1 img,
.geo-grid-family .area-image-2 img {
    display: block;

    width: 100%;
    max-width: 100%;
    height: 100%;

    object-fit: cover;
}

/* Passeio de balão */

.geo-grid-family .area-image-1 img {
    object-position: center center;
}

/* Aeroporto */

.geo-grid-family .area-image-2 img {
    object-position: center center;
}

/* =========================================================
   NOTEBOOK
   Mantém o layout original de duas colunas
========================================================= */

@media (min-width: 1025px) and (max-width: 1366px) {
    .geo-grid-family .area-text-1,
    .geo-grid-family .area-text-2 {
        padding: clamp(55px, 6vw, 82px);
    }

    .geo-grid-family .geo-content h2 {
        font-size: clamp(42px, 4vw, 60px);
    }
}

/* =========================================================
   TABLET — 768px a 1024px
========================================================= */

@media (min-width: 768px) and (max-width: 1024px) {
    .geo-grid-family {
        grid-template-columns: 1fr;

        grid-template-areas:
            "text1"
            "image1"
            "text2"
            "image2";
    }

    .geo-grid-family .area-text-1,
    .geo-grid-family .area-text-2 {
        min-height: auto;

        padding: 70px 50px;

        text-align: center;
    }

    .geo-grid-family .geo-content {
        max-width: 700px;

        margin: 0 auto;
    }

    .geo-grid-family .geo-content h2 {
        margin-bottom: 24px;

        font-size: 56px;
        line-height: 1.05;

        text-align: center;
    }

    .geo-grid-family .geo-content p {
        max-width: 580px;

        margin: 0 auto;

        font-size: 20px;
        line-height: 1.55;

        text-align: center;
    }

    .geo-grid-family .geo-btn {
        width: min(260px, 100%);
        min-height: 58px;

        margin-top: 32px;

        font-size: 18px;
    }

    .geo-grid-family .area-image-1,
    .geo-grid-family .area-image-2 {
        height: 520px;
        min-height: 520px;
    }

    .geo-grid-family .area-image-1 img,
    .geo-grid-family .area-image-2 img {
        width: 100%;
        height: 100%;

        object-fit: cover;
    }

    .geo-grid-family .area-image-1 img,
    .geo-grid-family .area-image-2 img {
        object-position: center center;
    }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
    .geo-grid-family {
        display: flex;
        flex-direction: column;

        width: 100%;
    }

    /*
    Preserva a ordem visual original:
    texto 1, imagem 1, texto 2, imagem 2.
    */
    .geo-grid-family .area-text-1 {
        order: 1;
    }

    .geo-grid-family .area-image-1 {
        order: 2;
    }

    .geo-grid-family .area-text-2 {
        order: 3;
    }

    .geo-grid-family .area-image-2 {
        order: 4;
    }

    .geo-grid-family .area-text-1,
    .geo-grid-family .area-text-2 {
        display: flex;
        align-items: center;
        justify-content: center;

        min-height: auto;

        padding: 50px 28px;

        text-align: center;
    }

    .geo-grid-family .geo-content {
        width: 100%;
        max-width: 100%;
    }

    .geo-grid-family .geo-content h2 {
        margin-bottom: 18px;

        font-size: clamp(36px, 9vw, 44px);
        line-height: 1.08;

        text-align: center;
    }

    .geo-grid-family .geo-content p {
        margin: 0;

        font-size: 18px;
        line-height: 1.55;

        text-align: center;
    }

    .geo-grid-family .geo-btn {
        width: min(260px, 100%);
        min-height: 56px;

        margin: 26px auto 0;

        font-size: 18px;
    }

    .geo-grid-family .area-image-1,
    .geo-grid-family .area-image-2 {
        width: 100%;
        height: 280px;
        min-height: 280px;
    }

    .geo-grid-family .area-image-1 img,
    .geo-grid-family .area-image-2 img {
        width: 100%;
        height: 100%;

        object-fit: cover;
    }

    .geo-grid-family .area-image-1 img {
        object-position: center center;
    }

    .geo-grid-family .area-image-2 img {
        object-position: center top;
    }
}

/* =========================================================
   CELULARES ESTREITOS
========================================================= */

@media (max-width: 360px) {
    .geo-grid-family .area-text-1,
    .geo-grid-family .area-text-2 {
        padding: 44px 20px;
    }

    .geo-grid-family .geo-content h2 {
        font-size: clamp(32px, 9vw, 38px);
    }

    .geo-grid-family .geo-content p {
        font-size: 16px;
        line-height: 1.5;
    }

    .geo-grid-family .area-image-1,
    .geo-grid-family .area-image-2 {
        height: 250px;
        min-height: 250px;
    }
}

/* =========================================================
   REDUÇÃO DE MOVIMENTO
========================================================= */

@media (prefers-reduced-motion: reduce) {
    .geo-grid-family .geo-btn {
        transition: none;
    }

    .geo-grid-family .geo-btn:hover,
    .geo-grid-family .geo-btn:active {
        transform: none;
    }
}

/* =========================================================
   ALTO CONTRASTE
========================================================= */

@media (forced-colors: active) {
    .geo-grid-family .area-text-1,
    .geo-grid-family .area-text-2 {
        background: Canvas;
    }

    .geo-grid-family .geo-content h2,
    .geo-grid-family .geo-content p {
        color: CanvasText;
    }

    .geo-grid-family .geo-btn {
        border-color: ButtonText;

        background: ButtonFace;
        color: ButtonText !important;
    }

    .geo-grid-family .geo-btn:focus-visible {
        outline-color: Highlight;
    }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-63976b5 */.geo-steps {
    --geo-steps-orange: #F7A51D;
    --geo-steps-orange-hover: #E48C02;
    --geo-steps-brown: #8B5F3D;
    --geo-steps-white: #FFFFFF;

    --geo-steps-serif: "Playfair Display", Georgia, serif;
    --geo-steps-sans: "Inter", Arial, sans-serif;

    width: 100%;
    max-width: 100%;

    padding: 100px 5%;

    overflow: hidden;

    background-color: var(--geo-steps-white);
}

/*
Mantém os cálculos de largura previsíveis
somente dentro desta seção.
*/
.geo-steps,
.geo-steps *,
.geo-steps *::before,
.geo-steps *::after {
    box-sizing: border-box;
}

/* =========================================================
   CABEÇALHO
========================================================= */

.geo-steps .geo-steps-header {
    width: 100%;
    max-width: 900px;

    margin: 0 auto 70px;

    text-align: center;
}

.geo-steps .geo-steps-header h2 {
    max-width: 100%;

    margin: 0;

    font-family: var(--geo-steps-serif);
    font-size: clamp(36px, 4vw, 60px);
    font-weight: 700;
    line-height: 1.05;

    color: var(--geo-steps-orange);

    text-align: center;

    overflow-wrap: normal;
    word-break: normal;
}

/* =========================================================
   GRID
========================================================= */

.geo-steps .geo-steps-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        80px
        minmax(0, 1fr)
        80px
        minmax(0, 1fr);

    align-items: start;
    justify-items: center;

    width: 100%;
    max-width: 1280px;

    margin: 0 auto;
}

/* =========================================================
   SETAS
========================================================= */

.geo-steps .geo-step-arrow {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;

    padding-top: 55px;

    color: var(--geo-steps-brown);

    font-family: var(--geo-steps-sans);
    font-size: 42px;
    font-weight: 400;
    line-height: 1;

    opacity: 0.8;

    user-select: none;
    pointer-events: none;
}

/* =========================================================
   CARD
========================================================= */

.geo-steps .geo-step-card {
    width: 100%;
    max-width: 300px;
    min-width: 0;

    margin: 0 auto;

    text-align: center;
}

/* =========================================================
   ÍCONE
========================================================= */

.geo-steps .geo-step-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 130px;
    height: 130px;

    margin: 0 auto 28px;

    border-radius: 50%;

    background-color: var(--geo-steps-orange);

    transition: transform 0.35s ease;
}

.geo-steps .geo-step-icon img {
    display: block;

    width: 64px;
    height: 64px;
    max-width: 100%;

    object-fit: contain;
}

/*
Aplica animação apenas em dispositivos com mouse.
Evita estado preso em telas de toque.
*/
@media (hover: hover) and (pointer: fine) {
    .geo-steps .geo-step-card:hover .geo-step-icon {
        transform: translateY(-6px);
    }
}

/* =========================================================
   TÍTULO DO CARD
========================================================= */

.geo-steps .geo-step-card h3 {
    max-width: 100%;

    margin: 0;

    color: var(--geo-steps-brown);

    font-family: var(--geo-steps-sans);
    font-size: clamp(18px, 1.2vw, 22px);
    font-weight: 700;
    line-height: 1.2;

    text-align: center;

    overflow-wrap: break-word;
}

/* =========================================================
   TEXTO OPCIONAL
   Mantido para compatibilidade caso seja adicionado depois
========================================================= */

.geo-steps .geo-step-card p {
    max-width: 250px;

    margin: 18px auto 0;

    color: var(--geo-steps-brown);

    font-family: var(--geo-steps-sans);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;

    text-align: center;

    overflow-wrap: break-word;
}

/* =========================================================
   BOTÃO
========================================================= */

.geo-steps .geo-steps-btn-wrap {
    width: 100%;

    margin-top: 60px;

    text-align: center;
}

.geo-steps .geo-steps-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: min(250px, 100%);
    min-height: 54px;

    padding: 10px 24px;

    border: 2px solid transparent;
    border-radius: 999px;

    background-color: var(--geo-steps-orange);
    color: var(--geo-steps-white) !important;

    font-family: var(--geo-steps-sans);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.2;

    text-align: center;
    text-decoration: none !important;

    cursor: pointer;

    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
    .geo-steps .geo-steps-btn:hover {
        background-color: var(--geo-steps-orange-hover);
        color: var(--geo-steps-white) !important;

        transform: translateY(-2px);
    }
}

.geo-steps .geo-steps-btn:focus {
    outline: none;
}

.geo-steps .geo-steps-btn:focus-visible {
    outline: 3px solid var(--geo-steps-brown);
    outline-offset: 4px;

    background-color: var(--geo-steps-orange-hover);
    color: var(--geo-steps-white) !important;
}

.geo-steps .geo-steps-btn:active {
    transform: translateY(0);
}

/* =========================================================
   NOTEBOOK
   Mantém os três passos em linha
========================================================= */

@media (min-width: 1025px) and (max-width: 1366px) {
    .geo-steps {
        padding-inline: clamp(40px, 5vw, 68px);
    }

    .geo-steps .geo-steps-grid {
        grid-template-columns:
            minmax(0, 1fr)
            clamp(50px, 5vw, 80px)
            minmax(0, 1fr)
            clamp(50px, 5vw, 80px)
            minmax(0, 1fr);
    }

    .geo-steps .geo-step-card h3 {
        font-size: clamp(18px, 1.45vw, 22px);
    }
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1024px) {
    .geo-steps {
        padding: 80px 40px;
    }

    .geo-steps .geo-steps-grid {
        grid-template-columns:
            minmax(0, 1fr)
            50px
            minmax(0, 1fr)
            50px
            minmax(0, 1fr);
    }

    .geo-steps .geo-step-icon {
        width: 110px;
        height: 110px;
    }

    .geo-steps .geo-step-icon img {
        width: 54px;
        height: 54px;
    }

    .geo-steps .geo-step-arrow {
        padding-top: 45px;

        font-size: 34px;
    }

    .geo-steps .geo-step-card h3 {
        font-size: 18px;
    }

    .geo-steps .geo-step-card p {
        max-width: 200px;

        font-size: 14px;
    }
}

/* =========================================================
   TABLETS ESTREITOS
   Evita aperto excessivo mantendo o layout em linha
========================================================= */

@media (min-width: 768px) and (max-width: 860px) {
    .geo-steps {
        padding-inline: 28px;
    }

    .geo-steps .geo-steps-grid {
        grid-template-columns:
            minmax(0, 1fr)
            34px
            minmax(0, 1fr)
            34px
            minmax(0, 1fr);
    }

    .geo-steps .geo-step-icon {
        width: 96px;
        height: 96px;
    }

    .geo-steps .geo-step-icon img {
        width: 46px;
        height: 46px;
    }

    .geo-steps .geo-step-arrow {
        padding-top: 38px;

        font-size: 28px;
    }

    .geo-steps .geo-step-card h3 {
        font-size: 16px;
        line-height: 1.25;
    }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
    .geo-steps {
        padding: 70px 24px;
    }

    .geo-steps .geo-steps-header {
        margin-bottom: 45px;
    }

    .geo-steps .geo-steps-header h2 {
        font-size: 36px;
    }

    .geo-steps .geo-steps-grid {
        display: flex;
        flex-direction: column;
        align-items: center;

        gap: 32px;
    }

    /*
    As setas são apenas decorativas.
    No mobile são removidas para evitar poluição visual.
    */
    .geo-steps .geo-step-arrow {
        display: none;
    }

    .geo-steps .geo-step-card {
        width: 100%;
        max-width: 100%;
    }

    .geo-steps .geo-step-icon {
        width: 95px;
        height: 95px;

        margin-bottom: 18px;
    }

    .geo-steps .geo-step-icon img {
        width: 44px;
        height: 44px;
    }

    .geo-steps .geo-step-card h3 {
        max-width: 420px;

        margin-inline: auto;

        font-size: 20px;
        line-height: 1.3;
    }

    .geo-steps .geo-step-card p {
        max-width: 280px;

        font-size: 15px;
        line-height: 1.45;
    }

    .geo-steps .geo-steps-btn-wrap {
        margin-top: 40px;
    }

    .geo-steps .geo-steps-btn {
        width: 100%;
        max-width: 320px;
        min-height: 54px;

        font-size: 16px;
    }
}

/* =========================================================
   CELULARES ESTREITOS
========================================================= */

@media (max-width: 360px) {
    .geo-steps {
        padding: 60px 18px;
    }

    .geo-steps .geo-steps-header h2 {
        font-size: 32px;
    }

    .geo-steps .geo-steps-grid {
        gap: 28px;
    }

    .geo-steps .geo-step-card h3 {
        font-size: 18px;
    }

    .geo-steps .geo-steps-btn {
        font-size: 15px;
    }
}

/* =========================================================
   ACESSIBILIDADE — REDUÇÃO DE MOVIMENTO
========================================================= */

@media (prefers-reduced-motion: reduce) {
    .geo-steps .geo-step-icon,
    .geo-steps .geo-steps-btn {
        transition: none;
    }

    .geo-steps .geo-step-card:hover .geo-step-icon,
    .geo-steps .geo-steps-btn:hover,
    .geo-steps .geo-steps-btn:active {
        transform: none;
    }
}

/* =========================================================
   ACESSIBILIDADE — ALTO CONTRASTE
========================================================= */

@media (forced-colors: active) {
    .geo-steps {
        background-color: Canvas;
    }

    .geo-steps .geo-steps-header h2,
    .geo-steps .geo-step-card h3,
    .geo-steps .geo-step-card p,
    .geo-steps .geo-step-arrow {
        color: CanvasText;
    }

    .geo-steps .geo-step-icon {
        border: 2px solid CanvasText;

        background-color: Canvas;
    }

    .geo-steps .geo-steps-btn {
        border-color: ButtonText;

        background-color: ButtonFace;
        color: ButtonText !important;
    }

    .geo-steps .geo-steps-btn:focus-visible {
        outline-color: Highlight;
    }
}/* End custom CSS */