.btn.btn-deep-green {
	background: #263228;
	border-color: #263228;
	color: #ffffff;
}
.btn.btn-deep-green:hover, 
.btn.btn-deep-gree:focus {
    background: transparent; 
    border-color: #263228; 
    color: #263228; 
    outline: none;
}

.pofo-button-largura-total {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box;
  text-align: center;
}

/* Campos do Contact Form 7 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  border: 1px solid #263228 !important;
  border-radius: 8px !important;
  background-color: #ffffff;
  color: #263228;
  padding: 16px 20px;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Altura dos campos normais */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select {
  min-height: 54px;
}

/* Campo de mensagem */
.wpcf7 textarea {
  min-height: 120px;
  resize: vertical;
}

/* Campo dropdown */
.wpcf7 select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  background-image:
    linear-gradient(45deg, transparent 50%, #263228 50%),
    linear-gradient(135deg, #263228 50%, transparent 50%);
  background-position:
    calc(100% - 22px) 50%,
    calc(100% - 16px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;

  padding-right: 48px;
  cursor: pointer;
}

/* Foco ao clicar */
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  border-color: #f2910a !important;
  box-shadow: 0 0 0 2px rgba(242, 145, 10, 0.15);
}

/* Placeholder */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: #6d746f;
  opacity: 1;
}
/* Área do botão */
.wpcf7 form .col-md-12:last-of-type {
  position: relative;
  text-align: center;
}

/* Botão centrado */
.wpcf7 form .wpcf7-submit {
  display: inline-block;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Spinner sem ocupar espaço */
.wpcf7 form .wpcf7-spinner {
  position: absolute;
  top: 50%;
  margin: 0 0 0 10px;
  transform: translateY(-50%);
}


/* ==================================================
   HEAD COM EFEITO DE FOGO
   Classe a adicionar à row: head-fogo-baixo
================================================== */

.head-fogo-baixo {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

/* Garante que o conteúdo da head fica sobre o fogo */
.head-fogo-baixo > *:not(.head-fogo-canvas) {
    position: relative;
    z-index: 2;
}

/* Canvas criado automaticamente pelo JavaScript */
.head-fogo-baixo .head-fogo-canvas {
    position: absolute;
    z-index: 1;

    left: 0;
    bottom: -2px;

    width: 100%;
    height: 135px;

    display: block;
    pointer-events: none;

    /* Suaviza ligeiramente a zona superior das chamas */
    -webkit-mask-image: linear-gradient(
        to top,
        rgba(0, 0, 0, 1) 0%,
        rgba(0, 0, 0, 1) 60%,
        rgba(0, 0, 0, 0) 100%
    );

    mask-image: linear-gradient(
        to top,
        rgba(0, 0, 0, 1) 0%,
        rgba(0, 0, 0, 1) 60%,
        rgba(0, 0, 0, 0) 100%
    );
}

/* Tablets */
@media (max-width: 991px) {
    .head-fogo-baixo .head-fogo-canvas {
        height: 110px;
    }
}

/* Telemóveis */
@media (max-width: 767px) {
    .head-fogo-baixo .head-fogo-canvas {
        height: 80px;
        bottom: -1px;
    }
}

/* Desativa a animação para utilizadores que reduzam movimento */
@media (prefers-reduced-motion: reduce) {
    .head-fogo-baixo .head-fogo-canvas {
        display: none;
    }
}




/* Contentor do SVG Esperamos po si */
.svg-escrita-wrapper {
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .svg-escrita-wrapper {
    max-width: 320px;
  }
}

/* SVG responsivo */
.svg-escrita {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

/* Aspeto original dos traços */
.svg-escrita .st0 {
  fill: none;
  stroke: #f2910a;
  stroke-width: 3px;
  stroke-linecap: round;
  stroke-linejoin: round;

  /* Evita que o desenho apareça antes do JS preparar os paths */
  opacity: 0;

  will-change: stroke-dashoffset;
}

/* Mostra os paths depois de preparados */
.svg-escrita.is-ready .st0 {
  opacity: 1;
}

/* Estado final da animação */
.svg-escrita.active .st0 {
  stroke-dashoffset: 0 !important;
}

/* Ajuste opcional para telemóvel */
@media only screen and (max-width: 767px) {
  .svg-escrita-wrapper {
    max-width: 100%;
  }

  .svg-escrita .st0 {
    stroke-width: 2.4px;
  }
}

/* Acessibilidade: remove a animação quando solicitado pelo utilizador */
@media (prefers-reduced-motion: reduce) {
  .svg-escrita .st0 {
    opacity: 1 !important;
    stroke-dasharray: none !important;
    stroke-dashoffset: 0 !important;
    transition: none !important;
  }
}




.strong-color-head strong{
    color: #f2910a;
}

/* ========================================
   SLOGAN COM EFEITO DE ESCRITA
======================================== */

.row-slogan-escrever .slogan-escrever {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.row-slogan-escrever .slogan-escrever__texto {
    display: inline;
    position: relative;

    font-size: 52px;
    font-weight: 600;
    line-height: 1.15;
    color: #ffffff;
    text-align: center;

    white-space: normal;
}

/* Cursor */

.row-slogan-escrever .slogan-escrever__texto::after {
    content: "";
    display: inline-block;

    width: 2px;
    height: 0.9em;
    margin-left: 7px;

    background-color: currentColor;
    vertical-align: -0.05em;

    opacity: 0;
}

.row-slogan-escrever
.slogan-escrever__texto.esta-a-escrever::after {
    opacity: 1;
    animation: slogan-cursor 0.7s steps(1) infinite;
}

.row-slogan-escrever
.slogan-escrever__texto.escrita-concluida::after {
    animation: slogan-cursor-final 0.7s steps(1) 4;
}

@keyframes slogan-cursor {
    0%,
    49% {
        opacity: 1;
    }

    50%,
    100% {
        opacity: 0;
    }
}

@keyframes slogan-cursor-final {
    0%,
    49% {
        opacity: 1;
    }

    50%,
    100% {
        opacity: 0;
    }
}

/* Tablet */

@media (max-width: 991px) {
    .row-slogan-escrever .slogan-escrever__texto {
        font-size: 40px;
    }
}

/* Telemóvel */

@media (max-width: 767px) {
    .row-slogan-escrever .slogan-escrever__texto {
        font-size: 30px;
        line-height: 1.25;
    }
}









/* ==========================================
   JOÃO DOS LEITÕES — LOGÓTIPO E FOGO
========================================== */

.joao-fire-section {
    position: relative;
    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 140px 20px 0;

    background: transparent;
    overflow: visible;

    box-sizing: border-box;
}


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

.joao-fire-logo {
    position: relative;

    width: min(430px, 78vw);

    margin: 0 0 -40px;

    z-index: 3;

    pointer-events: none;
}

.joao-fire-logo img {
    display: block;

    width: 100%;
    height: auto;

    margin: 0 auto;
}


/* ==========================================
   ÁREA DO FOGO
========================================== */

#joao-fire-canvas {
    position: relative;

    width: min(1200px, 100%);
    aspect-ratio: 1200 / 600;

    background: transparent !important;

    z-index: 2;
    pointer-events: none;
    overflow: visible;
}


/* ==========================================
   CANVAS CRIADO PELO THREE.JS
========================================== */

#joao-fire-canvas canvas {
    display: block;

    width: 100% !important;
    height: 100% !important;

    background: transparent !important;

    filter:
        drop-shadow(0 0 12px rgba(255, 160, 0, 0.8))
        drop-shadow(0 0 30px rgba(255, 80, 0, 0.55));
}


/* ==========================================
   GARANTIR QUE O POFO NÃO CORTA O EFEITO
========================================== */

.joao-fire-section,
.joao-fire-section .wpb_wrapper,
.joao-fire-section .vc_column-inner,
.joao-fire-section .vc_column_container {
    overflow: visible !important;
}


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

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

    .joao-fire-section {
        padding: 35px 15px 0;
    }

    .joao-fire-logo {
        width: min(370px, 78vw);

        margin-bottom: -35px;
    }

    #joao-fire-canvas {
        width: min(760px, 100%);

        aspect-ratio: 760 / 260;
    }
}


/* ==========================================
   TELEMÓVEL
========================================== */

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

    .joao-fire-section {
        padding: 25px 10px 0;
    }

    .joao-fire-logo {
        width: min(300px, 82vw);

        margin-bottom: -25px;
    }

    #joao-fire-canvas {
        width: min(560px, 100%);

        aspect-ratio: 560 / 220;
    }

    #joao-fire-canvas canvas {
        filter:
            drop-shadow(0 0 8px rgba(255, 160, 0, 0.75))
            drop-shadow(0 0 20px rgba(255, 80, 0, 0.5));
    }
}


/* ==========================================
   TELEMÓVEIS PEQUENOS
========================================== */

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

    .joao-fire-section {
        padding: 20px 5px 0;
    }

    .joao-fire-logo {
        width: min(260px, 84vw);

        margin-bottom: -20px;
    }

    #joao-fire-canvas {
        width: 100%;

        aspect-ratio: 480 / 210;
    }
}








/* ==================================================
   PARTÍCULAS DE FOGO APLICADAS ATRAVÉS DE UMA CLASSE
================================================== */

/*
 * A row passa a servir como referência
 * para o posicionamento das partículas.
 */
.fire-sparks-row {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

/*
 * Garante que o conteúdo original da row
 * fica acima das partículas.
 */
.fire-sparks-row > .container,
.fire-sparks-row > .container-fluid,
.fire-sparks-row > .vc_row,
.fire-sparks-row > .vc_column_container,
.fire-sparks-row .vc_column-inner {
    position: relative;
    z-index: 2;
}

/*
 * Camada criada automaticamente pelo JavaScript.
 */
.fire-sparks-layer {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 1;

    overflow: hidden;
    pointer-events: none;

    background: transparent;
}

/*
 * Cada partícula.
 */
.fire-sparks-layer .fire-spark {
    position: absolute;

    left: 0;
    top: 0;

    width: 4px;
    height: 4px;

    border-radius: 35%;

    background-color: #de4a00;

    box-shadow:
        0 0 5px #ab000b,
        0 0 10px rgba(255, 92, 0, 0.65);

    visibility: hidden;

    will-change:
        transform,
        opacity;
}

/*
 * Variações ligeiras no aspeto das partículas.
 */
.fire-sparks-layer .fire-spark:nth-child(3n) {
    width: 3px;
    height: 3px;
}

.fire-sparks-layer .fire-spark:nth-child(4n) {
    background-color: #ff8a00;

    box-shadow:
        0 0 6px #e73500,
        0 0 12px rgba(255, 145, 0, 0.75);
}

.fire-sparks-layer .fire-spark:nth-child(7n) {
    width: 5px;
    height: 5px;

    background-color: #ffb000;
}

/*
 * Nos dispositivos móveis reduzimos ligeiramente
 * o brilho para melhorar o desempenho.
 */
@media screen and (max-width: 767px) {
    .fire-sparks-layer .fire-spark {
        box-shadow:
            0 0 4px #ab000b,
            0 0 8px rgba(255, 92, 0, 0.55);
    }
}

/*
 * Respeita a preferência do utilizador
 * por menos movimento.
 */
@media (prefers-reduced-motion: reduce) {
    .fire-sparks-layer {
        display: none;
    }
}






/* head com o texto em baixo em modo container */
.texto-fundo > .container,
.texto-fundo > .container > .row {
    min-height: 800px;
}

.texto-fundo > .container > .row {
    display: flex;
    align-items: flex-end;
}
/* Mini desktop / portátil */
@media (max-width: 1199px) {
    .texto-fundo,
    .texto-fundo > .container,
    .texto-fundo > .container > .row {
        min-height: 700px;
    }
}
/* Mobile */
@media (max-width: 767px) {
    .texto-fundo,
    .texto-fundo > .container,
    .texto-fundo > .container > .row {
        min-height: 500px;
    }
}
/* VIDEO BACKGROUND — CENTER / BOTTOM */
.texto-fundo.pofo-video-wrapper {
    position: relative !important;
    overflow: hidden !important;
}

.texto-fundo.pofo-video-wrapper > video.html-video {
    position: absolute !important;

    top: auto !important;
    right: auto !important;
    bottom: 0 !important;
    left: 50% !important;

    width: 100% !important;
    height: 100% !important;

    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;

    object-fit: cover !important;
    object-position: 50% 100% !important;

    transform: translateX(-50%) !important;
    margin: 0 !important;
}

.center-logo {
	max-width: 180px;
	width: 180px;
}

/* gradiente footer */
.gradient-footer{
background: linear-gradient(
    to bottom,
    #263228 0%,
    #1c2b1e 10%,
    #102012 30%,
    #102012 70%,
    #1c2b1e 90%,
    #263228 100%
);}

#colophon {
    padding: 0 60px 60px;
    border-radius: .94rem;
}
.pofo-footer.bg-extra-dark-gray {
	background-color: #ede6d9;
}
.pofo-footer-bottom { border-radius: 0 0 20px 20px}
.cantos-redondos-top{ border-radius: 20px 20px 0px 0px}
.cantos-redondos-bottom{ border-radius: 0px 0px 20px 20px}
.border-background { border: 20px solid rgb(38, 50, 40);}

.page-id-22521 .footer-widget-area,
.page-id-22519 .footer-widget-area,
.page-id-22517 .footer-widget-area
{
    border-radius: 20px 20px 0 0;
}

/* ----------------  botão class orange */
.btn.btn-deep-orange {
	background: transparent;
	border-color: #f2910a;
	color: #f2910a;
    opacity: 1 !important;
}
.btn.btn-deep-orange:hover, .btn.btn-deep-orange:focus {
	background: #f2910a;
	border-color: #f2910a;
	color: #263228;
	outline: none;
}    

/* cruz elemento gráfico */
.quote__icons {
	display: flex;
	justify-content: center;
	left: 0.5rem;
	position: absolute;
	top: 0;
	width: 100%;
}

.quote__icon {
	position: relative;
	display: block;
	width: 11px;
	height: 11px;
	background-color: transparent;
	border: 1px solid #f58220;
	border-radius: 50%;
	box-sizing: border-box;
}

.quote__icon::before,
.quote__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 32px;
	height: 1px;
	background-color: #f58220;
	transform-origin: center;
}

.quote__icon::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.quote__icon::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.text-middle-line::before {
  border-bottom: 1px solid;
  position: absolute;
  content: "";
  width: 100%;
  top: 53%;
  opacity: 0.35;
  left: 0;
}

/*fill text scroll*/
.scroll-fill-title {
  --progress: 0%;
  background: linear-gradient(
    90deg,
    #ffffff var(--progress),
    rgba(255,255,255,0.15) var(--progress)
  );

  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
	display:inline;
}