/* 
    Document   : txt
    Created on : 17/Setembro/2026, 17:20:00
    Author     : garedesign
    Description:
        Purpose of the stylesheet follows.
*/

/* =========================
   🔧 RESET GLOBAL MODERNO
========================= */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    vertical-align: baseline;
}
strong {
    font-weight: bold;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
html {
    box-sizing: border-box;
    scroll-behavior: smooth;
}
*, *:before, *:after {
    box-sizing: inherit;
}


/* =========================
   🌸 VARIÁVEIS GLOBAIS
========================= */
:root {
    --font-body: "Manrope", sans-serif;
    --font-title: "Cormorant Garamond", Georgia, serif;

    /*TAMANHOS*/
    --container-max: 1400px;
    --container-max2: 1800px;
    --gutter: 1rem;

    --text-xxs: clamp(12px, 0.8rem, 13px);
    --text-xs: clamp(13px, 0.85rem, 14px);
    --text-sm: clamp(14px, 1rem + 0.1vw, 16px);
    --text-base: clamp(16px, 1.1rem + 0.2vw, 17.6px);
    --line-base: 1.6;

    /* Hero / destaques */
    --tit1: clamp(38px, 3rem + 2.6vw, 72px);   /* ~4.5rem */
    --tit2: clamp(34px, 2.6rem + 2.2vw, 62px); /* ~3.9rem */

    /* Headings principais */
    --h1: clamp(30px, 2.2rem + 1.6vw, 56px);   /* ~3.3rem */
    --h2: clamp(26px, 1.8rem + 1.3vw, 46px);   /* ~2.6rem */
    --h3: clamp(22px, 1.4rem + 1vw, 36px);    /* ~2.1rem */
    --h4: clamp(19px, 1.2rem + 0.7vw, 30px);  /* ~1.75rem */
    --h5: clamp(18px, 1.1rem + 0.5vw, 24px); /* ~1.5rem */
    --h6: clamp(16px, 1rem + 0.3vw, 20px); /* ~1.25rem */

    /*ESPAÇOS*/
    --space-xs: 0.5rem;  /* 8px */
    --space-sm: 1rem;    /* 16px */
    --space-md: 1.5rem;  /* 24px */
    --space-lg: 2.5rem;  /* 40px */
    --space-xl: 4rem;    /* 64px */
    --space-2xl: 5rem;   /* 80px */
    --space-3xl: 7.5rem; /* 120px */

    /*CORES*/
    --color-text: #25251f;
    --color-text-soft: #74736c;

    --color-bg: #f7f4ed;
    --color-bg-light: #fcfaf6;
    --color-dark: #20211d;

    --color-gold: #c3a06b;

    --color-border: rgba(37, 37, 31, 0.12);

}


/* =========================
   🧱 BASE
========================= */
html, body {
    font-size: var(--text-base);
    line-height: var(--line-base);
    color: var(--color-text);
    font-family: var(--font-body);
    background-color: var(--color-bg);
}

h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }
h4 { font-size: var(--h4); }
h5 { font-size: var(--h5); }
h6 { font-size: var(--h6); }

/* =========================
   ✍️ HEADINGS
========================= */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-title);
    font-weight: 500;
    margin-bottom: var(--space-sm);
    margin-top: var(--space-xs);
}

/*h1 { margin-top: var(--space-xl); }
h2 { margin-top: var(--space-lg); }
h3 { margin-top: var(--space-md); }
h4 { margin-top: var(--space-sm); }
h5 { margin-top: var(--space-sm); }
h6 { margin-top: var(--space-xs); }*/

h1 + p,
h2 + p,
h3 + p {
    margin-top: var(--space-sm);
}

p {
    margin-bottom: var(--space-sm);
    line-height: 1.6;
}


/* =========================
   Links
========================= */
a{
    color: var(--color-text);
    font-weight: 400;
    text-decoration: none;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    transition: all 0.3s;
}
a:hover, a:active {
    color: var(--color-text);
    text-decoration: none;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    transition: all 0.3s;
}


/* Estrutura INICIO */

/* Define grid areas */
.hg-header {
    grid-area: header;
}
.hg-pesq {
    grid-area: pesq;
}
.hg-main {
    grid-area: main;
}
.hg-left {
    grid-area: esq;
}
.hg-right {
    grid-area: dir;
}
.hg-footer {
    grid-area: footer;
}

.hg {
    display: grid;
    grid-template-areas:
        "header header header"
        "pesq pesq pesq"
        "esq main dir"
        "footer footer footer";

    grid-template-columns: auto 1fr auto;

    grid-template-rows:
        auto
        auto
        1fr
        auto;

    min-height: 100vh;
}

.headermaster, .hg-main{
    padding: 0 2%;
}
.hg-header{
}
.hg-pesq{
}
.hg-main{
}
.hg-left{
}
.hg-right{
}
.hg-footer{
}

/* Estrutura FIM */

.hg-main{
    position: relative;
}
.txt-master{
    width: 100%;
    max-width: var(--container-max);
    margin: 140px auto 0 auto;
    padding: 20px 1%;
}
.hg:has(.slideshowck) .txt-master {
    margin-top: 0;
}

.meio-master{
    clear: both;
}

.header2 {
    width: 100%;
    max-width: var(--container-max);
    height: 100%;

    margin: 0 auto;
    padding: 8px 1%;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.right-group {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
}

/*.logosite {
    display: block;
    position: relative;
    z-index: 2;
    
    width: 200px;
    height: 90px;
    margin-right: 16px;
    
    background: url(../images/logo.svg) no-repeat center center;
    background-size: 200px auto;
    transition: background-size 0.3s ease;
}
 Só aplica hover em dispositivos com rato 
@media (hover: hover) and (pointer: fine) {
    .logosite:hover {
        background-size: 180px auto;
    }
}*/



/* ==================================================
   LOGÓTIPO
================================================== */

.logosite {
    display: block;
    position: relative;
    z-index: 2;

    width: 200px;
    height: 90px;
    margin-right: 16px;
    margin-top: 10px; 
    margin-bottom: 10px;
}

/* Duas versões sobrepostas */
.logosite::before,
.logosite::after {
    content: "";
    position: absolute;
    inset: 0;

    background-repeat: no-repeat;
    background-position: center center;
    background-size: 200px auto;

    pointer-events: none;

    transition:
        opacity 0.35s ease,
        background-size 0.3s ease;
}

/* Branco — topo sobre o hero */
.logosite::before {
    background-image: url("../images/logo-b.svg");
    opacity: 1;
}

/* Preto — header claro */
.logosite::after {
    background-image: url("../images/logo.svg");
    opacity: 0;
}

/* Quando o header tem fundo */
#headermaster.scrolled .logosite::before {
    opacity: 0;
}

#headermaster.scrolled .logosite::after {
    opacity: 1;
}

/* Hover apenas em rato */
@media (hover: hover) and (pointer: fine) {

    .logosite:hover::before,
    .logosite:hover::after {
        background-size: 180px auto;
    }
}





/*### Topo Opacidade ###*/
/*.banner{
    width: 100%;
    height: 100vh;
    overflow: hidden;
    position: relative;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transform: translatez(0);
    transform: translatez(0);
}
.full-opacity{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(17, 0, 8);
    opacity: 0;
}*/

.gradient-footer{
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 200px;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(17,0,8,0) 30%, #110008 100%);
    z-index: 1;
}

.videotopmaster, .paginimaster{
    position: relative;
}
.videotop{
    position: relative;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    object-fit: cover;
}
.videotop video{
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}


/*### Slideshow CK Pag. Inicial ###*/
.slidepagini{
    height: 100vh !important;
}
.slidepagini img{
/*    width: auto;
    height: 100vh !important;
    object-fit: cover;
    margin: auto !important;*/
}
/*.cameraSlide::before{
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg,rgba(37,20,12,0) 83%,#25140c 111.44%);
    z-index: 1;
}*/
.cameraSlide::after{
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(16, 18, 15, 0.58) 0%,
            rgba(16, 18, 15, 0.30) 38%,
            rgba(16, 18, 15, 0.08) 68%,
            rgba(16, 18, 15, 0.02) 100%
        );
}
/*.slidepagini .camera_target{opacity: 0.8;}*/

.slidepagini .camera_caption{
    position: absolute;
    bottom: 15vh;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: var(--container-max2);
}
.slidepagini .camera_caption > div{
    background-color: rgba(0, 0, 0, 0);
}
.slidepagini .camera_caption > div div.camera_caption_title{
    font-family: var(--font-title);
    line-height: .9;
    letter-spacing: -0.035em;
    text-shadow: none;
    max-width: 850px;
    
    color: #ffffff;
    text-align: left;
    font-size: var(--tit1);
    text-shadow: 0 0 40px rgba(0, 0, 0, 1);
    transition: all 0.3s;
    margin-bottom: 10px;
    font-weight: normal;
}
.slidepagini .camera_caption > div div.camera_caption_title a{
    font-size: var(--text-base);
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    padding: 16px 34px;
    border-radius: 4px;
    margin-left: 2%;
    vertical-align: middle;
    letter-spacing:initial;
    border: 1px solid rgba(255, 255, 255, 0.5);
    
    display: inline-block;
    line-height: 1;
    white-space: nowrap;
}
.camera_wrap a.camera-button{
    font-size: var(--text-base);
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
    padding: 10px 40px;
    border-radius: 4px;
    margin-top: 20px;
    vertical-align: middle;
    letter-spacing:initial;
    line-height: 1;
}
.slidepagini .camera_caption > div div.camera_caption_title a:hover, .camera_wrap a.camera-button:hover{
    background-color: var(--color-dark);
    color: #fff;
}
.slidepagini .camera_caption > div div.camera_caption_desc{
    text-align: left;
    font-size: var(--h5);
    font-weight: 300;
    text-shadow: 0 0 10px rgba(0, 0, 0, 1);
    position: relative;
    max-width: 600px;
}

/*.slidepagini .camera_caption > div div.camera_caption_desc:before, 
.slidepagini .camera_caption > div div.camera_caption_desc:after, 
.topotextodesc:before, .topotextodesc:after{
    content: "";
    position: absolute;
    width: 50px;
    height: 5px;
    border-top: 1px solid white;
    border-bottom: 1px solid white;
    top:8px;
}
.slidepagini .camera_caption > div div.camera_caption_desc:before, .topotextodesc:before{margin-left: -60px;}
.slidepagini .camera_caption > div div.camera_caption_desc:after, .topotextodesc:after{margin-left: 10px;}*/

.slidepagini .camera_caption > div div.camera_caption_desc a{
    color:#e86f75;
}


/*### Slideshow CK OUTROS ###*/
.slidepagini-outros .camera_target{
    opacity: 0.8;
}

.slidepagini-outros .camera_caption{
    position: absolute;
    bottom: 60px;
}
.slidepagini-outros .camera_caption > div{
    background-color: rgba(0, 0, 0, 0);
}
.slidepagini-outros .camera_caption > div div.camera_caption_title{
    color: #ffffff;
    text-align: center;
    font-size: 2.5rem;
    text-transform: uppercase;
    text-shadow: 0 0 10px rgba(0, 0, 0, 1);
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    transition: all 0.3s;
    padding-bottom: 5px;
    letter-spacing: 3px;
    font-weight: normal;
}
.slidepagini-outros .camera_caption > div div.camera_caption_desc{
    text-align: center;
    font-size: 1.1rem;
    text-transform: lowercase;
    font-weight: 300;
    text-shadow: 0 0 10px rgba(0, 0, 0, 1);
    position: relative;
}
.slidepagini-outros .camera_caption > div div.camera_caption_desc:before,
.slidepagini-outros .camera_caption > div div.camera_caption_desc:after{
    content: "";
    position: absolute;
    width: 50px;
    height: 5px;
    border-top: 1px solid white;
    border-bottom: 1px solid white;
    top:8px;
}
.slidepagini-outros .camera_caption > div div.camera_caption_desc:before{
    margin-left: -60px;
}
.slidepagini-outros .camera_caption > div div.camera_caption_desc:after{
    margin-left: 10px;
}

.slidepagini-outros .camera_caption > div div.camera_caption_desc a{
    color:#e86f75;
}


/*### Topo Rato Scroll ###*/
.toporatomaster {
  position: absolute;
  bottom: -95vh;
  left: 0;
  right: 0;
  z-index: 1;
  width: 30px;
  margin: 0 auto;
}

.scroll-downs {
  width: 28px;
  height: auto;
  margin: 0 auto;
}

.scroll-downs a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}

/* Rato */
.mousey {
  width: 3px;
  height: 32px;
  padding: 3px 8px;
  border: 2px solid #fff;
  border-radius: 25px;
  opacity: 0.85;
  box-sizing: content-box;
}

.scroller {
  width: 3px;
  height: 9px;
  border-radius: 25px;
  background-color: #fff;
  animation: mouseScroll 2s cubic-bezier(.15, .41, .69, .94) infinite;
}

/* Seta */
.seta {
  display: flex;
  justify-content: center;
  width: 100%;
  animation: arrowFloat 1.65s ease-in-out infinite;
}

.setadown {
  width: 9px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0.9;
}

/* Animação do scroll dentro do rato */
@keyframes mouseScroll {
  0% {
    transform: translateY(-2px);
    opacity: 0;
  }

  18% {
    opacity: 1;
  }

  75% {
    transform: translateY(15px);
    opacity: 0;
  }

  100% {
    transform: translateY(15px);
    opacity: 0;
  }
}

/* Animação da seta */
@keyframes arrowFloat {
  0%,
  100% {
    transform: translateY(0);
    opacity: 0.45;
  }

  45% {
    transform: translateY(8px);
    opacity: 1;
  }
}


/* ==================================================
   HEADER
================================================== */

.headermaster {
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.58) 0%,
        rgba(0, 0, 0, 0.30) 55%,
        rgba(0, 0, 0, 0) 100%
    );
}
#headermaster:not(.scrolled) .menu a {
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}
#headermaster.scrolled .menu a {
    text-shadow: none;
}

#headermaster {
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;
    z-index: 3;

    transition:
        transform 0.4s cubic-bezier(.4, 0, .2, 1),
        background 0.4s ease,
        backdrop-filter 0.4s ease,
        box-shadow 0.4s ease;
}


/* ESCONDER AO DESCER */
#headermaster.hide {
    transform: translateY(-100%);
}


/* DEPOIS DO SCROLL */
#headermaster.scrolled {
    background: rgba(248, 245, 239, 0.96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    box-shadow: 0 1px 0 rgba(31, 31, 28, 0.08);
}




/****** MENU ******/
.menu a{
    padding: 0 6px;
}
.menu a, .dj-mobile-light a{
    font-family: var(--font-body);
    font-size: var(--text-base) !important;
    font-weight: 500;
    
    color: white !important;
}

/* Depois do scroll */
#headermaster.scrolled .menu a {
    color: var(--color-text) !important;
}

/* Submenus */
.menu li ul > li > a,
#headermaster.scrolled .menu li ul > li > a {
    color: var(--color-text) !important;
}

/* Ativo / hover */
.menu a.active, .dj-mobileitem.active > a, .menu a:hover{
    color: #d4b782 !important;
}
#headermaster.scrolled .menu a.active {
    color: var(--color-gold) !important;
}

.menu .dj-mobile-open-btn, 
.menu .dj-mobile-open-btn.active{
    background:none !important;
}
.menu .dj-mobile-open-btn span{
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    transform: scaleY(0.7);
    transition: color 0.3s ease;
    color: rgba(226, 227, 228, 1);
}
.menu .dj-mobile-open-btn span:hover{
    color: rgba(198, 199, 201, 1);
    background: none;
}

.dj-megamenu-modern li ul.dj-submenu > li > a:hover, .dj-megamenu-modern li ul.dj-submenu > li > a.active{
    background: none;
    border-radius: 1rem;
}
.dj-megamenu-modern li div.dj-subwrap .dj-subwrap-in{
    border-radius: 1rem;
}

.dj-megamenu-modern li a.dj-up_a{
    padding-left: 10px;
    padding-right: 20px;
}
.dj-megamenu-modern li a.dj-up_a > span.dj-drop{
    padding-right: 15px;
}

.dj-megamenu-modern li a.dj-up_a.destaque > span span.name{
    font-size: var(--text-xs);
    padding: .35em .65em;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: .25em;
    background-color: rgba(255, 250, 201, 1);
    color: rgba(3, 3, 3, 1);
}


/* ==================================================
   CTA DO MENU — PEDIR PROPOSTA
================================================== */

.dj-megamenu-modern li a.dj-up_a span.dj-badge, 
.dj-megamenu-modern li ul > li > a span.dj-badge, 
ul.dj-mobile-light li.dj-mobileitem > a span.dj-badge{
    display: inline-block;
    font-size: var(--text-base);
    vertical-align: top;
    font-weight: 600;
    text-transform: none;
    margin-left: 14px;
    padding: 12px 22px;
    border-radius: 999px;
    transition: all 0.3s;
/*    rgba(195, 160, 107, 1)
    rgba(240, 184, 74, 1)*/
}

/* Hover desktop */
@media (hover: hover) and (pointer: fine) {

    .dj-megamenu-modern li a.dj-up_a:hover span.dj-badge {
        background-color: #ffffff !important;
        color: var(--color-text) !important;
        transform: translateY(-1px);
    }
}

/*.dj-megamenu-modern li a.dj-up_a span.dj-badge:hover, 
.dj-megamenu-modern li ul > li > a span.dj-badge:hover, 
ul.dj-mobile-light li.dj-mobileitem > a span.dj-badge:hover{
    background: #ffffff;
    border-color: #ffffff;
    color: var(--color-text) !important;
    transform: translateY(-1px);
}*/


/* Header claro */
#headermaster.scrolled .dj-megamenu-modern li a.dj-up_a.destaque {
    background: var(--color-dark);
    border-color: var(--color-dark);
    color: #ffffff !important;
}

/* Hover depois do scroll */
@media (hover: hover) and (pointer: fine) {

    #headermaster.scrolled .dj-megamenu-modern li a.dj-up_a.destaque:hover {
        background: var(--color-gold);
        border-color: var(--color-gold);
        color: #ffffff !important;
    }
}


/* reset nos badges */
.menu a .dj-badge {
    color: initial;
}

ul.dj-mobile-light ul li.dj-mobileitem > a{
    background: initial;
    border-top-color: #e4e4e4;
}

/*### FOOTER ###*/
.footer-master {
    display: flex;
    flex-direction: row;
    width: 100%;
    padding: 40px 36px;
    background-color: var(--color-dark);
    color: #fff;
    margin-top: var(--space-3xl);
}
.footer-esq {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.footer-esq1 {
    display: flex;
    flex-direction: row;
    gap: 20px;
    flex: 1;
}
.footer-esq1 div:first-of-type {
    background-image: url("../images/logo-b.svg");
    background-repeat: no-repeat;
    background-position: left top;
    background-size: 160px auto;
}
.footer-esq1 div:last-of-type{
    font-size: var(--tit1);
    font-weight: 600;
    line-height: 0.9;
    letter-spacing: -0.05em;
    color: #fff;
    flex: 1;
}

/*### Menu do Fundo ###*/
.menudofundo {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin-bottom: 50px;
}
.menudofundo ul li{margin: 0 40px 15px 0;}
.menudofundo a{color: #fff;}
.menudofundo a:hover{text-decoration: underline; color: var(--color-gold);}
.menudofundo li.active a{text-decoration: underline; color: var(--color-gold);}

/*### FUNDO FAB ###*/
.footer-fab{
    display: flex;
}
.footer-fab-icon{
    display: flex;
}

/*### Blog Items ###*/
.item-content, .ini-secao{
    position: relative;
}
.item-content .item-title{
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50px;
    line-height: initial;
}
.item-content h1, .item-content h2, .item-content h3, .page-header{
    margin-bottom: 20px;
}



/* ==================================================
   CONTEUDO NAS PAGINAS
================================================== */

/* ==================================================
   CONTEÚDO GLOBAL — ARTIGOS / SECÇÕES
================================================== */

.gc-section {
    width: 100%;
    padding: clamp(80px, 9vw, 140px) 0;
}


/* Fundos */

.gc-section--light {
    background-color: var(--color-bg-light);
}

.gc-section--dark {
    background-color: var(--color-dark);
    color: #ffffff;
}


/* ==================================================
   CONTAINER
================================================== */

.gc-container {
    width: min(94%, var(--container-max));
    margin: 0 auto;
}


/* Container mais estreito para zonas de texto */

.gc-container--narrow {
    max-width: 1000px;
}


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

.gc-grid {
    display: grid;

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

    gap: clamp(45px, 7vw, 110px);

    align-items: center;
}


/* Imagem à direita */

.gc-grid--reverse .gc-media {
    order: 2;
}

.gc-grid--reverse .gc-content {
    order: 1;
}


/* ==================================================
   CONTEÚDO DE TEXTO
================================================== */

.gc-content {
    max-width: 620px;
}

.gc-content > *:first-child {
    margin-top: 0;
}

.gc-content > *:last-child {
    margin-bottom: 0;
}


/* Parágrafos */

.gc-content p {
    margin: 0 0 22px;

    font-size: var(--text-base);
    line-height: 1.8;

    color: var(--color-text-soft);
}


/* Texto em fundo escuro */

.gc-section--dark .gc-content p {
    color: rgba(255, 255, 255, 0.72);
}


/* ==================================================
   IMAGEM / MEDIA
================================================== */

.gc-media {
    position: relative;

    width: 100%;

    overflow: hidden;
}

.gc-media img {
    display: block;

    width: 100%;
    height: auto;

    object-fit: cover;
}


/* Imagem vertical */

.gc-media--portrait img {
    aspect-ratio: 4 / 5;
}


/* Imagem horizontal */

.gc-media--landscape img {
    aspect-ratio: 16 / 10;
}


/* Imagem quadrada */

.gc-media--square img {
    aspect-ratio: 1 / 1;
}


/* ==================================================
   LINK EDITORIAL
================================================== */

.gc-link {
    display: inline-flex;

    align-items: center;
    gap: 12px;

    padding-bottom: 5px;

    font-size: var(--text-sm);
    font-weight: 600;

    line-height: 1.3;

    color: var(--color-text);

    border-bottom: 1px solid var(--color-gold);

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

.gc-link span {
    display: inline-block;

    transition: transform 0.3s ease;
}


@media (hover: hover) and (pointer: fine) {

    .gc-link:hover {
        color: var(--color-gold);
    }

    .gc-link:hover span {
        transform: translateX(5px);
    }

}


/* Link em fundo escuro */

.gc-section--dark .gc-link {
    color: #ffffff;
}


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

.gc-btn {
    display: inline-flex;

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

    gap: 10px;

    min-height: 52px;

    padding: 13px 26px;

    font-size: var(--text-sm);
    font-weight: 600;

    line-height: 1;

    color: #ffffff;

    background-color: var(--color-dark);

    border: 1px solid var(--color-dark);
    border-radius: 999px;

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


@media (hover: hover) and (pointer: fine) {

    .gc-btn:hover {
        background-color: var(--color-gold);
        border-color: var(--color-gold);

        color: #ffffff;

        transform: translateY(-2px);
    }

}


/* Botão claro */

.gc-btn--light {
    background-color: #ffffff;
    border-color: #ffffff;

    color: var(--color-dark);
}


/* Botão transparente */

.gc-btn--outline {
    background-color: transparent;

    border-color: currentColor;

    color: var(--color-text);
}

.gc-section--dark .gc-btn--outline {
    color: #ffffff;
}


/* === ALINHAMENTOS === */

.gc-align-center {
    text-align: center;
}

.gc-align-center > * {
    margin-left: auto;
    margin-right: auto;
}


/* === ESPAÇAMENTOS === */

.gc-no-top {
    padding-top: 0;
}

.gc-no-bottom {
    padding-bottom: 0;
}




/* ==================================================
   HOME — ABERTURA DESDE 1990
================================================== */

.gc-opening {
    padding:
        clamp(90px, 10vw, 160px)
        0
        clamp(100px, 12vw, 180px);

    background: var(--color-bg);
}


/* === BLOCO SUPERIOR === */

.gc-opening__top {
    display: grid;

    grid-template-columns:
        minmax(120px, .45fr)
        minmax(420px, 1.55fr)
        minmax(280px, .75fr);

    gap: clamp(35px, 5vw, 90px);

    align-items: end;

    margin-bottom: clamp(60px, 7vw, 110px);
}


/* === DESDE 1990 === */

.gc-opening__since {
    display: flex;
    flex-direction: column;

    align-self: start;

    padding-top: 10px;
}

.gc-opening__since span {
    margin-bottom: 4px;

    font-size: var(--text-xs);
    font-weight: 600;

    text-transform: uppercase;
    letter-spacing: .16em;

    color: var(--color-text-soft);
}

.gc-opening__since strong {
    font-family: var(--font-title);

    font-size: clamp(52px, 5vw, 82px);
    font-weight: 400;

    line-height: .9;
    letter-spacing: -.04em;

    color: var(--color-text);
}


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

.gc-opening__title {
    margin: 0;

    font-family: var(--font-title);

    font-size: clamp(52px, 5.7vw, 92px);
    font-weight: 400;

    line-height: .93;
    letter-spacing: -.035em;

    color: var(--color-text);
}


/* === TEXTO === */

.gc-opening__text {
    max-width: 410px;
}

.gc-opening__text p {
    margin: 0 0 30px;

    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.75;

    color: var(--color-text-soft);
}


/* === IMAGEM === */

.gc-opening__media {
    position: relative;

    width: 100%;

    overflow: hidden;
}

.gc-opening__media img {
    display: block;

    width: 100%;
    height: clamp(500px, 54vw, 800px);

    object-fit: cover;

    transition: transform 1.4s cubic-bezier(.2, .7, .2, 1);
}

.gc-opening__media::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 70%,
        rgba(0, 0, 0, .10) 100%
    );

    pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {

    .gc-opening__media:hover img {
        transform: scale(1.018);
    }

}

@media (max-width: 1050px) {

    .gc-opening__top {
        grid-template-columns: 160px 1fr;
    }

    .gc-opening__text {
        grid-column: 2;

        max-width: 600px;
    }

}

@media (max-width: 700px) {

    .gc-opening {
        padding:
            75px
            0
            90px;
    }

    .gc-opening__top {
        display: block;

        margin-bottom: 50px;
    }

    .gc-opening__since {
        margin-bottom: 38px;
    }

    .gc-opening__since strong {
        font-size: 58px;
    }

    .gc-opening__title {
        margin-bottom: 35px;

        font-size: clamp(46px, 13vw, 64px);
    }

    .gc-opening__text {
        max-width: 520px;
    }

    .gc-opening__media img {
        height: 520px;
    }

}

@media (max-width: 480px) {

    .gc-opening__media img {
        height: 440px;
    }

}



/* ==================================================
   HOME — CELEBRAÇÕES
================================================== */

.gc-celebrations {
    width: 100%;
    padding: 0 0 clamp(110px, 12vw, 190px);
    background: var(--color-bg);
}


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

.gc-celebrations__head {
    display: grid;

    grid-template-columns:
        minmax(0, 1.3fr)
        minmax(280px, .7fr);

    gap: clamp(40px, 8vw, 140px);

    align-items: end;

    margin-bottom: clamp(55px, 7vw, 100px);
}

.gc-celebrations__head h2 {
    margin: 0;

    font-family: var(--font-title);
    font-size: clamp(52px, 6vw, 96px);
    font-weight: 400;

    line-height: .92;
    letter-spacing: -.04em;

    color: var(--color-text);
}

.gc-celebrations__head p {
    max-width: 480px;
    margin: 0;

    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.75;

    color: var(--color-text-soft);
}


/* === MOSAICO === */

.gc-celebrations__grid {
    display: grid;

    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-auto-rows: clamp(230px, 19vw, 340px);

    gap: clamp(10px, 1.2vw, 20px);

    min-width: 0;
}


/* Casamentos */

.gc-celebration--wedding {
    grid-column: 1 / 8;
    grid-row: span 2;
}


/* Batizados / Comunhões */

.gc-celebration--family {
    grid-column: 8 / 13;
}


/* Aniversários */

.gc-celebration--birthday {
    grid-column: 8 / 13;
}


/* Empresas */

.gc-celebration--company {
    grid-column: 1 / 5;
}


/* Eventos sociais */

.gc-celebration--social {
    grid-column: 5 / 9;
}


/* Catering */

.gc-celebration--catering {
    grid-column: 9 / 13;
}


/* === ITEM === */

.gc-celebration {
    position: relative;
    display: block;

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

    overflow: hidden;

    background: var(--color-dark);
}

.gc-celebration img {
    position: absolute;
    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 1.2s cubic-bezier(.2, .7, .2, 1),
        opacity .5s ease;
}


/* Overlay */

.gc-celebration::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, .02) 35%,
            rgba(0, 0, 0, .60) 100%
        );

    pointer-events: none;

    transition: background .4s ease;
}


/* === TEXTO SOBRE FOTO === */

.gc-celebration__content {
    position: absolute;

    z-index: 2;

    left: clamp(20px, 2.5vw, 38px);
    right: clamp(20px, 2.5vw, 38px);
    bottom: clamp(20px, 2.5vw, 34px);

    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 20px;
}

.gc-celebration__content h3 {
    margin: 0;

    font-family: var(--font-title);
    font-size: clamp(28px, 2.6vw, 46px);
    font-weight: 400;

    line-height: 1;

    color: #ffffff;
}

.gc-celebration__content span {
    flex: 0 0 auto;

    font-size: 22px;
    line-height: 1;

    color: #ffffff;

    transform: translate(0, 0);

    transition: transform .3s ease;
}


/* === HOVER === */

@media (hover: hover) and (pointer: fine) {

    .gc-celebration:hover img {
        transform: scale(1.04);
    }

    .gc-celebration:hover::after {
        background:
            linear-gradient(
                180deg,
                rgba(0, 0, 0, .04) 30%,
                rgba(0, 0, 0, .68) 100%
            );
    }

    .gc-celebration:hover .gc-celebration__content span {
        transform: translate(4px, -4px);
    }

}



/* ==================================================
   CELEBRAÇÕES — TABLET
================================================== */

@media (max-width: 1000px) {

    .gc-celebrations__head {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .gc-celebrations__head p {
        max-width: 650px;
    }


    /* Mosaico passa para 2 colunas */

    .gc-celebrations__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        grid-auto-rows: auto;

        gap: 14px;
    }


    /* Retirar posicionamentos do desktop */

    .gc-celebration--wedding,
    .gc-celebration--family,
    .gc-celebration--birthday,
    .gc-celebration--company,
    .gc-celebration--social,
    .gc-celebration--catering {
        grid-column: auto;
        grid-row: auto;
    }


    /* Casamentos em destaque */

    .gc-celebration--wedding {
        grid-column: 1 / -1;

        aspect-ratio: 16 / 8;
    }


    /* Restantes */

    .gc-celebration--family,
    .gc-celebration--birthday,
    .gc-celebration--company,
    .gc-celebration--social {
        aspect-ratio: 4 / 5;
    }


    /* Último ocupa largura completa */

    .gc-celebration--catering {
        grid-column: 1 / -1;

        aspect-ratio: 16 / 7;
    }

}


/* ==================================================
   CELEBRAÇÕES — MOBILE
================================================== */

@media (max-width: 650px) {

    .gc-celebrations {
        padding-bottom: 90px;
    }


    /* Cabeçalho */

    .gc-celebrations__head {
        margin-bottom: 45px;
    }

    .gc-celebrations__head h2 {
        font-size: clamp(44px, 12vw, 60px);
    }

    .gc-celebrations__head p {
        font-size: 16px;
    }


    /* Uma coluna */

    .gc-celebrations__grid {
        grid-template-columns: 1fr;

        gap: 12px;
    }


    /* Todos os blocos iguais no mobile */

    .gc-celebration--wedding,
    .gc-celebration--family,
    .gc-celebration--birthday,
    .gc-celebration--company,
    .gc-celebration--social,
    .gc-celebration--catering {
        grid-column: 1;
        grid-row: auto;

        width: 100%;
        height: auto;

        aspect-ratio: 4 / 5;
    }


    /* Texto */

    .gc-celebration__content {
        left: 22px;
        right: 22px;
        bottom: 22px;
    }

    .gc-celebration__content h3 {
        font-size: clamp(30px, 9vw, 40px);
    }

}




/* ==================================================
   HOME — GASTRONOMIA
================================================== */

.gc-gastronomy {
    position: relative;

    width: 100%;
    min-height: clamp(650px, 82vh, 920px);

    overflow: hidden;

    background: var(--color-dark);
}


/* === IMAGEM === */

.gc-gastronomy__image {
    position: absolute;
    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* Overlay */

.gc-gastronomy::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(14, 15, 13, .76) 0%,
            rgba(14, 15, 13, .52) 38%,
            rgba(14, 15, 13, .12) 72%,
            rgba(14, 15, 13, .04) 100%
        );

    pointer-events: none;
}


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

.gc-gastronomy__inner {
    position: relative;
    z-index: 2;

    min-height: clamp(650px, 82vh, 920px);

    display: flex;

    align-items: flex-end;

    padding-top: clamp(80px, 8vw, 130px);
    padding-bottom: clamp(70px, 8vw, 120px);
}


/* === LABEL VERTICAL === */

.gc-gastronomy__label {
    position: absolute;

    top: 50%;
    right: 0;

    transform:
        translateY(-50%)
        rotate(180deg);

    writing-mode: vertical-rl;

    font-size: 11px;
    font-weight: 600;

    letter-spacing: .28em;
    text-transform: uppercase;

    color: rgba(255, 255, 255, .62);
}


/* === TEXTO === */

.gc-gastronomy__content {
    width: min(100%, 760px);
}

.gc-gastronomy__content h2 {
    margin: 0 0 clamp(30px, 4vw, 50px);

    font-family: var(--font-title);

    font-size: clamp(64px, 8vw, 128px);
    font-weight: 400;

    line-height: .84;
    letter-spacing: -.045em;

    color: #ffffff;
}

.gc-gastronomy__content p {
    width: min(100%, 520px);

    margin: 0 0 34px;

    font-size: clamp(16px, 1.15vw, 18px);
    line-height: 1.75;

    color: rgba(255, 255, 255, .80);
}


/* Link desta secção */

.gc-gastronomy .gc-link {
    color: #ffffff;
    border-color: rgba(255, 255, 255, .55);
}

@media (hover: hover) and (pointer: fine) {

    .gc-gastronomy .gc-link:hover {
        color: #ffffff;
        border-color: #ffffff;
    }

}


/* ==================================================
   GASTRONOMIA — TABLET
================================================== */

@media (max-width: 900px) {

    .gc-gastronomy,
    .gc-gastronomy__inner {
        min-height: 720px;
    }

    .gc-gastronomy::after {
        background:
            linear-gradient(
                90deg,
                rgba(14, 15, 13, .72) 0%,
                rgba(14, 15, 13, .42) 65%,
                rgba(14, 15, 13, .12) 100%
            );
    }

    .gc-gastronomy__content {
        width: min(85%, 650px);
    }

}


/* ==================================================
   GASTRONOMIA — MOBILE
================================================== */

@media (max-width: 600px) {

    .gc-gastronomy,
    .gc-gastronomy__inner {
        min-height: 680px;
    }

    .gc-gastronomy__inner {
        align-items: flex-end;

        padding-top: 90px;
        padding-bottom: 65px;
    }

    .gc-gastronomy::after {
        background:
            linear-gradient(
                180deg,
                rgba(14, 15, 13, .16) 0%,
                rgba(14, 15, 13, .32) 40%,
                rgba(14, 15, 13, .82) 100%
            );
    }

    .gc-gastronomy__content {
        width: 100%;
    }

    .gc-gastronomy__content h2 {
        font-size: clamp(58px, 18vw, 84px);
    }

    .gc-gastronomy__content p {
        max-width: 100%;
    }

    .gc-gastronomy__label {
        display: none;
    }

}




/* ==================================================
   HOME — EXPERIÊNCIA / CONFIANÇA
================================================== */

.gc-proof {
    width: 100%;

    padding:
        clamp(100px, 11vw, 180px)
        0
        clamp(100px, 11vw, 180px);

    background: var(--color-bg-light);
}


/* === INTRO === */

.gc-proof__intro {
    display: grid;

    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(280px, .55fr);

    gap: clamp(50px, 9vw, 150px);

    align-items: end;

    padding-bottom: clamp(60px, 7vw, 100px);

    border-bottom: 1px solid rgba(37, 37, 31, .14);
}


.gc-proof__intro h2 {
    margin: 0;

    font-family: var(--font-title);

    font-size: clamp(54px, 6.5vw, 104px);
    font-weight: 400;

    line-height: .91;
    letter-spacing: -.045em;

    color: var(--color-text);
}


.gc-proof__intro p {
    max-width: 460px;

    margin: 0 0 8px;

    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.8;

    color: var(--color-text-soft);
}


/* === NÚMEROS === */

.gc-proof__stats {
    display: grid;

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

    margin-top: clamp(55px, 6vw, 90px);
}


.gc-proof__stat {
    min-width: 0;

    padding:
        0
        clamp(30px, 4vw, 70px)
        15px;

    border-right: 1px solid rgba(37, 37, 31, .14);
}


.gc-proof__stat:first-child {
    padding-left: 0;
}


.gc-proof__stat:last-child {
    padding-right: 0;

    border-right: 0;
}


/* Número */

.gc-proof__stat strong {
    display: block;

    margin-bottom: 24px;

    font-family: var(--font-title);

    font-size: clamp(70px, 8vw, 126px);
    font-weight: 400;

    line-height: .8;
    letter-spacing: -.055em;

    color: var(--color-text);
}


.gc-proof__stat strong span {
    font-size: .48em;

    vertical-align: top;

    margin-left: 3px;

    color: var(--color-gold);
}


/* Texto */

.gc-proof__stat p {
    max-width: 300px;

    margin: 0;

    font-size: var(--text-sm);
    line-height: 1.65;

    color: var(--color-text-soft);
}


/* ==================================================
   EXPERIÊNCIA — TABLET
================================================== */

@media (max-width: 900px) {

    .gc-proof__intro {
        grid-template-columns: 1fr;

        gap: 35px;
    }

    .gc-proof__intro p {
        max-width: 620px;
    }

}


/* ==================================================
   EXPERIÊNCIA — MOBILE
================================================== */

@media (max-width: 700px) {

    .gc-proof {
        padding:
            85px
            0
            90px;
    }


    .gc-proof__intro {
        padding-bottom: 55px;
    }

    .gc-proof__intro h2 {
        font-size: clamp(46px, 13vw, 66px);
    }


    .gc-proof__stats {
        grid-template-columns: 1fr;

        margin-top: 0;
    }


    .gc-proof__stat,
    .gc-proof__stat:first-child,
    .gc-proof__stat:last-child {
        padding:
            45px
            0;

        border-right: 0;
        border-bottom: 1px solid rgba(37, 37, 31, .14);
    }


    .gc-proof__stat:last-child {
        padding-bottom: 0;

        border-bottom: 0;
    }


    .gc-proof__stat strong {
        margin-bottom: 18px;

        font-size: clamp(72px, 22vw, 105px);
    }


    .gc-proof__stat p {
        max-width: 360px;
    }

}




/* ==================================================
   HOME — CATERING NO SEU ESPAÇO
================================================== */

.gc-anywhere {
    width: 100%;

    padding:
        clamp(110px, 12vw, 190px)
        0;

    background: var(--color-bg);
}


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

.gc-anywhere__top {
    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(280px, .65fr);

    gap: clamp(50px, 9vw, 150px);

    align-items: end;

    margin-bottom: clamp(70px, 8vw, 120px);
}


.gc-anywhere__top h2 {
    margin: 0;

    font-family: var(--font-title);

    font-size: clamp(56px, 7vw, 110px);
    font-weight: 400;

    line-height: .9;
    letter-spacing: -.045em;

    color: var(--color-text);
}


/* === TEXTO === */

.gc-anywhere__text {
    max-width: 500px;
}


.gc-anywhere__text p {
    margin: 0 0 22px;

    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.8;

    color: var(--color-text-soft);
}


.gc-anywhere__text .gc-link {
    margin-top: 10px;
}


/* === COMPOSIÇÃO DE IMAGENS === */

.gc-anywhere__visual {
    display: grid;

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

    align-items: end;

    gap: clamp(14px, 2vw, 30px);

    width: 100%;
    min-width: 0;
}


/* Imagem principal */

.gc-anywhere__image--main {
    grid-column: 1 / 9;
}


/* Imagem secundária */

.gc-anywhere__image--detail {
    grid-column: 8 / 13;

    position: relative;
    z-index: 2;

    margin-bottom: clamp(45px, 7vw, 110px);
}


/* === IMAGENS === */

.gc-anywhere__image {
    overflow: hidden;

    min-width: 0;
}


.gc-anywhere__image img {
    display: block;

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

    object-fit: cover;

    transition: transform 1.2s cubic-bezier(.2, .7, .2, 1);
}


.gc-anywhere__image--main img {
    aspect-ratio: 16 / 10;
}


.gc-anywhere__image--detail img {
    aspect-ratio: 4 / 5;
}


/* === HOVER === */

@media (hover: hover) and (pointer: fine) {

    .gc-anywhere__image:hover img {
        transform: scale(1.025);
    }

}


/* ==================================================
   CATERING NO SEU ESPAÇO — TABLET
================================================== */

@media (max-width: 900px) {

    .gc-anywhere__top {
        grid-template-columns: 1fr;

        gap: 35px;
    }


    .gc-anywhere__text {
        max-width: 650px;
    }


    .gc-anywhere__visual {
        grid-template-columns: repeat(10, minmax(0, 1fr));
    }


    .gc-anywhere__image--main {
        grid-column: 1 / 9;
    }


    .gc-anywhere__image--detail {
        grid-column: 6 / 11;

        margin-top: -60px;
        margin-bottom: 0;
    }

}


/* ==================================================
   CATERING NO SEU ESPAÇO — MOBILE
================================================== */

@media (max-width: 650px) {

    .gc-anywhere {
        padding:
            90px
            0;
    }


    .gc-anywhere__top {
        margin-bottom: 50px;
    }


    .gc-anywhere__top h2 {
        font-size: clamp(46px, 13vw, 66px);
    }


    .gc-anywhere__visual {
        display: block;
    }


    .gc-anywhere__image--main {
        width: 100%;
    }


    .gc-anywhere__image--detail {
        width: 72%;

        margin:
            14px
            0
            0
            auto;
    }


    .gc-anywhere__image--main img {
        aspect-ratio: 4 / 3;
    }


    .gc-anywhere__image--detail img {
        aspect-ratio: 4 / 5;
    }

}




/* ==================================================
   HOME — TESTEMUNHOS
================================================== */

.gc-voices {
    width: 100%;

    padding:
        clamp(100px, 11vw, 180px)
        0;

    background: var(--color-dark);

    color: #ffffff;
}


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

.gc-voices__head {
    display: grid;

    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(280px, .6fr);

    gap: clamp(50px, 9vw, 150px);

    align-items: end;

    margin-bottom: clamp(80px, 9vw, 140px);
}


.gc-voices__head h2 {
    margin: 0;

    font-family: var(--font-title);

    font-size: clamp(54px, 6.5vw, 104px);
    font-weight: 400;

    line-height: .9;
    letter-spacing: -.045em;

    color: #ffffff;
}


.gc-voices__head p {
    max-width: 440px;

    margin: 0;

    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.8;

    color: rgba(255, 255, 255, .62);
}


/* === TESTEMUNHO PRINCIPAL === */

.gc-voices__featured {
    display: grid;

    grid-template-columns:
        minmax(90px, .25fr)
        minmax(0, 1.75fr);

    gap: clamp(30px, 5vw, 80px);

    padding-bottom: clamp(70px, 8vw, 120px);

    border-bottom: 1px solid rgba(255, 255, 255, .15);
}


/* Aspas */

.gc-voices__mark {
    font-family: var(--font-title);

    font-size: clamp(110px, 12vw, 190px);
    font-weight: 400;

    line-height: .7;

    color: var(--color-gold);
}


/* Quote */

.gc-voices__featured blockquote {
    max-width: 1100px;

    margin: 0;
}


.gc-voices__featured blockquote > p {
    margin: 0 0 clamp(40px, 5vw, 70px);

    font-family: var(--font-title);

    font-size: clamp(38px, 4.6vw, 72px);
    font-weight: 400;

    line-height: 1.04;
    letter-spacing: -.025em;

    color: #ffffff;
}


/* Autor */

.gc-voices__featured footer {
    display: flex;
    flex-wrap: wrap;

    align-items: center;

    gap: 8px 20px;
}


.gc-voices__featured footer strong {
    font-size: var(--text-sm);
    font-weight: 600;

    color: #ffffff;
}


.gc-voices__featured footer span {
    font-size: var(--text-xs);

    text-transform: uppercase;
    letter-spacing: .14em;

    color: rgba(255, 255, 255, .45);
}


/* === TESTEMUNHOS SECUNDÁRIOS === */

.gc-voices__more {
    display: grid;

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

    margin-top: clamp(55px, 7vw, 100px);
}


.gc-voices__item {
    padding-right: clamp(35px, 6vw, 90px);
}


.gc-voices__item + .gc-voices__item {
    padding-left: clamp(35px, 6vw, 90px);
    padding-right: 0;

    border-left: 1px solid rgba(255, 255, 255, .15);
}


.gc-voices__item > p {
    max-width: 520px;

    margin: 0 0 35px;

    font-family: var(--font-title);

    font-size: clamp(25px, 2.4vw, 36px);
    font-weight: 400;

    line-height: 1.25;

    color: rgba(255, 255, 255, .88);
}


.gc-voices__item div {
    display: flex;
    flex-direction: column;

    gap: 5px;
}


.gc-voices__item strong {
    font-size: var(--text-sm);
    font-weight: 600;

    color: #ffffff;
}


.gc-voices__item span {
    font-size: var(--text-xs);

    text-transform: uppercase;
    letter-spacing: .12em;

    color: rgba(255, 255, 255, .42);
}


/* === LINK === */

.gc-voices__bottom {
    margin-top: clamp(55px, 6vw, 85px);
}


.gc-voices .gc-link {
    color: #ffffff;
    border-color: rgba(255, 255, 255, .45);
}


@media (hover: hover) and (pointer: fine) {

    .gc-voices .gc-link:hover {
        color: #ffffff;
        border-color: #ffffff;
    }

}


/* ==================================================
   TESTEMUNHOS — TABLET
================================================== */

@media (max-width: 900px) {

    .gc-voices__head {
        grid-template-columns: 1fr;

        gap: 30px;
    }


    .gc-voices__head p {
        max-width: 620px;
    }


    .gc-voices__featured {
        grid-template-columns: 70px minmax(0, 1fr);

        gap: 25px;
    }

}


/* ==================================================
   TESTEMUNHOS — MOBILE
================================================== */

@media (max-width: 650px) {

    .gc-voices {
        padding:
            85px
            0
            90px;
    }


    .gc-voices__head {
        margin-bottom: 65px;
    }


    .gc-voices__head h2 {
        font-size: clamp(46px, 13vw, 66px);
    }


    .gc-voices__featured {
        display: block;

        padding-bottom: 55px;
    }


    .gc-voices__mark {
        margin-bottom: 20px;

        font-size: 100px;
    }


    .gc-voices__featured blockquote > p {
        font-size: clamp(34px, 10vw, 48px);

        line-height: 1.08;
    }


    .gc-voices__more {
        grid-template-columns: 1fr;

        margin-top: 0;
    }


    .gc-voices__item,
    .gc-voices__item + .gc-voices__item {
        padding:
            45px
            0;

        border-left: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .15);
    }


    .gc-voices__item:last-child {
        border-bottom: 0;
    }


    .gc-voices__bottom {
        margin-top: 30px;
    }

}




/* ==================================================
   HOME — CTA FINAL
================================================== */

.gc-final {
    position: relative;

    width: 100%;
    min-height: clamp(650px, 85vh, 950px);

    overflow: hidden;

    background: var(--color-dark);
}


/* === IMAGEM === */

.gc-final__image {
    position: absolute;
    inset: 0;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* Overlay */

.gc-final::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(15, 16, 14, .78) 0%,
            rgba(15, 16, 14, .52) 42%,
            rgba(15, 16, 14, .14) 75%,
            rgba(15, 16, 14, .04) 100%
        );

    pointer-events: none;
}


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

.gc-final__inner {
    position: relative;
    z-index: 2;

    min-height: clamp(650px, 85vh, 950px);

    display: flex;
    align-items: center;
}


.gc-final__content {
    width: min(100%, 820px);
}


/* Pequena frase */

.gc-final__pretitle {
    margin: 0 0 28px;

    font-size: clamp(15px, 1vw, 17px);
    font-weight: 500;

    letter-spacing: .03em;

    color: rgba(255, 255, 255, .72);
}


/* Título */

.gc-final__content h2 {
    margin: 0 0 clamp(30px, 4vw, 48px);

    font-family: var(--font-title);

    font-size: clamp(60px, 7.5vw, 118px);
    font-weight: 400;

    line-height: .88;
    letter-spacing: -.045em;

    color: #ffffff;
}


/* Texto */

.gc-final__text {
    width: min(100%, 520px);

    margin: 0 0 40px;

    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.75;

    color: rgba(255, 255, 255, .78);
}


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

.gc-final__button {
    display: inline-flex;

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

    gap: 18px;

    min-height: 58px;

    padding: 16px 30px;

    font-size: var(--text-sm);
    font-weight: 600;

    color: var(--color-dark);

    background: #ffffff;

    border: 1px solid #ffffff;
    border-radius: 999px;

    transition:
        background-color .3s ease,
        border-color .3s ease,
        color .3s ease,
        transform .3s ease;
}


.gc-final__button span {
    display: inline-block;

    transition: transform .3s ease;
}


@media (hover: hover) and (pointer: fine) {

    .gc-final__button:hover {
        background: var(--color-gold);
        border-color: var(--color-gold);

        color: #ffffff;

        transform: translateY(-2px);
    }

    .gc-final__button:hover span {
        transform: translateX(5px);
    }

}


/* ==================================================
   CTA FINAL — TABLET
================================================== */

@media (max-width: 900px) {

    .gc-final,
    .gc-final__inner {
        min-height: 720px;
    }

    .gc-final::after {
        background:
            linear-gradient(
                90deg,
                rgba(15, 16, 14, .74) 0%,
                rgba(15, 16, 14, .45) 65%,
                rgba(15, 16, 14, .12) 100%
            );
    }

}


/* ==================================================
   CTA FINAL — MOBILE
================================================== */

@media (max-width: 600px) {

    .gc-final,
    .gc-final__inner {
        min-height: 680px;
    }


    .gc-final::after {
        background:
            linear-gradient(
                180deg,
                rgba(15, 16, 14, .18) 0%,
                rgba(15, 16, 14, .34) 35%,
                rgba(15, 16, 14, .86) 100%
            );
    }


    .gc-final__inner {
        align-items: flex-end;

        padding-top: 90px;
        padding-bottom: 70px;
    }


    .gc-final__content h2 {
        font-size: clamp(52px, 15vw, 76px);
    }


    .gc-final__text {
        max-width: 100%;
    }


    .gc-final__button {
        width: 100%;
    }

}




/* ==================================================
   PRÉMIOS
================================================== */

.gc-awards {
    padding: clamp(70px, 7vw, 110px) 0 0;

    background: var(--color-bg);
}


.gc-awards__top {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 40px;

    margin-bottom: 42px;
}


.gc-awards__top h2 {
    margin: 0 0 10px;

    font-family: var(--font-title);

    font-size: clamp(38px, 4vw, 60px);
    font-weight: 400;

    line-height: 1;

    color: var(--color-text);
}


.gc-awards__top p {
    max-width: 500px;

    margin: 0;

    color: var(--color-text-soft);
}


/* === RESUMO DOS PRÉMIOS === */

.gc-awards__summary {
    display: flex;

    align-items: flex-end;

    gap: clamp(25px, 3vw, 45px);
}


.gc-awards__summary > strong {
    display: block;

    font-family: var(--font-title);

    font-size: clamp(82px, 9vw, 140px);
    font-weight: 400;

    line-height: .72;
    letter-spacing: -.055em;

    color: var(--color-text);
}


.gc-awards__summary > div {
    padding-bottom: 4px;
}


.gc-awards__summary span {
    display: block;

    margin-bottom: 5px;

    font-size: 12px;
    font-weight: 600;

    text-transform: uppercase;
    letter-spacing: .16em;

    color: var(--color-gold);
}


.gc-awards__summary h2 {
    margin: 0 0 6px;

    font-family: var(--font-title);

    font-size: clamp(34px, 3.4vw, 54px);
    font-weight: 400;

    line-height: 1;

    color: var(--color-text);
}


.gc-awards__summary p {
    margin: 0;

    font-size: var(--text-sm);

    color: var(--color-text-soft);
}


/* === SETAS === */

.gc-awards__arrows {
    display: flex;

    gap: 8px;

    flex: 0 0 auto;
}


.gc-awards__arrow {
    display: flex;

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

    width: 46px;
    height: 46px;

    padding: 0;

    font-size: 19px;

    color: var(--color-text);

    background: transparent;

    border: 1px solid rgba(37, 37, 31, .22);
    border-radius: 50%;

    cursor: pointer;

    transition:
        background-color .3s ease,
        border-color .3s ease,
        color .3s ease;
}


@media (hover: hover) and (pointer: fine) {

    .gc-awards__arrow:hover {
        background: var(--color-dark);
        border-color: var(--color-dark);

        color: #ffffff;
    }

}


/* === CARROSSEL === */

.gc-awards__viewport {
    width: 100%;

    overflow: hidden;
}


.gc-awards__track {
    display: flex;

    gap: 10px;

    overflow-x: auto;

    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;

    scrollbar-width: none;
}


.gc-awards__track::-webkit-scrollbar {
    display: none;
}


/* === PRÉMIO === */

.gc-awards__item {
    flex: 0 0 calc((100% - 112px) / 5);

    min-width: 0;

    scroll-snap-align: start;

    display: flex;

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

    height: 150px;

    padding: 6px;
}


.gc-awards__item img {
    display: block;

    width: auto;
    max-width: 100%;

    height: auto;
    max-height: 115px;

    object-fit: contain;

    opacity: .78;

    transition:
        opacity .3s ease,
        transform .3s ease;
}


@media (hover: hover) and (pointer: fine) {

    .gc-awards__item:hover img {
        opacity: 1;

        transform: scale(1.04);
    }

}



@media (max-width: 900px) {

    .gc-awards__item {
        flex-basis: calc((100% - 50px) / 3);

        height: 140px;
    }

}


@media (max-width: 600px) {

    .gc-awards {
        padding: 65px 0 0;
    }


    .gc-awards__top {
        align-items: flex-end;

        gap: 20px;
    }


    .gc-awards__top p {
        display: none;
    }


    .gc-awards__item {
        flex-basis: calc((100% - 20px) / 2);

        height: 125px;
    }


    .gc-awards__item img {
        max-height: 95px;
    }
    
    
    .gc-awards__summary {
        align-items: flex-start;

        gap: 18px;
    }


    .gc-awards__summary > strong {
        font-size: 76px;
    }


    .gc-awards__summary h2 {
        font-size: 30px;
    }


    .gc-awards__summary p {
        display: none;
    }


    .gc-awards__summary span {
        font-size: 10px;
    }

}




/* ==================================================
   FOOTER
================================================== */

.gc-footer {
    width: 100%;

    padding:
        clamp(65px, 7vw, 100px)
        0
        28px;

    overflow: hidden;

    background: var(--color-dark);
    color: #ffffff;
}


/* Conteúdo principal */

.gc-footer__main {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 50px;

    padding-bottom: clamp(55px, 6vw, 85px);
}


/* Marca */

.gc-footer__brand img {
    display: block;

    width: clamp(130px, 10vw, 170px);
    height: auto;

    margin-bottom: 24px;
}


.gc-footer__brand p {
    margin: 0;

    font-family: var(--font-title);

    font-size: clamp(24px, 2vw, 32px);
    font-weight: 400;

    line-height: 1.15;

    color: rgba(255, 255, 255, .82);
}


/* Contactos */

.gc-footer__contact {
    display: flex;
    flex-direction: column;

    align-items: flex-end;

    gap: 9px;
}


.gc-footer__contact a {
    font-size: var(--text-sm);

    color: rgba(255, 255, 255, .68);

    transition: color .3s ease;
}


@media (hover: hover) and (pointer: fine) {

    .gc-footer__contact a:hover {
        color: #ffffff;
    }

}


/* GÉMEOS gigante */

.gc-footer__word {
    width: 100%;

    margin-bottom: clamp(25px, 3vw, 40px);

    font-family: var(--font-body);

    font-size: clamp(90px, 17vw, 280px);
    font-weight: 600;

    line-height: .72;
    letter-spacing: -.065em;

    white-space: nowrap;

    color: rgba(255, 255, 255, .055);

    user-select: none;
}


/* Linha inferior */

.gc-footer__bottom {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 25px;

    padding-top: 24px;

    border-top: 1px solid rgba(255, 255, 255, .12);
}


.gc-footer__bottom p {
    margin: 0;

    font-size: var(--text-xs);

    color: rgba(255, 255, 255, .38);
}


.gc-footer__bottom div {
    display: flex;

    gap: 22px;
}


.gc-footer__bottom a {
    font-size: var(--text-xs);

    color: rgba(255, 255, 255, .38);
}



@media (max-width: 700px) {

    .gc-footer__main {
        flex-direction: column;
        align-items: flex-start;

        gap: 45px;
    }
    
    .gc-footer__brand img {
        width: 140px;
    }

    .gc-footer__contact {
        align-items: flex-start;
    }

    .gc-footer__word {
        font-size: clamp(78px, 25vw, 130px);
    }

    .gc-footer__bottom {
        flex-direction: column;
        align-items: flex-start;

        gap: 12px;
    }

}




/* ==================================================
   FOOTER — REDES SOCIAIS
================================================== */

.gc-footer__social {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-top: 35px;
}


.gc-footer__social a {
    display: flex;

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

    width: 44px;
    height: 44px;

    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;

    color: rgba(255, 255, 255, .78);

    transition:
        color .3s ease,
        background-color .3s ease,
        border-color .3s ease,
        transform .3s ease;
}


.gc-footer__social i {
    font-size: 17px;
}


@media (hover: hover) and (pointer: fine) {

    .gc-footer__social a:hover {
        color: var(--color-dark);

        background-color: #ffffff;
        border-color: #ffffff;

        transform: translateY(-3px);
    }

}

.footer-contact-whatsapp {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.footer-contact-whatsapp small {
    font-size: var(--text-xxs);
    color: rgba(255, 255, 255, .42);
}

.footer-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    color: rgba(255, 255, 255, .78);

    transition:
        color .3s ease,
        transform .3s ease;
}

.footer-contact-link i {
    font-size: 30px;
}

@media (hover: hover) and (pointer: fine) {

    .footer-contact-link:hover {
        color: #ffffff;
        transform: translateX(3px);
    }

}