/*
Theme Name: Galvaza
Theme URI: https://galvaza.pt
Author: Metalogalva – Marketing
Description: Reconstrução do site da Galvaza com o aspeto do tema original (Brooklyn), sem WPBakery nem Revolution Slider. Compatível com WPML e PHP 8.3.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 8.0
License: Proprietary
Text Domain: galvaza
*/

/* ==========================================================================
   Fontes (alojadas no tema): Roboto e Font Awesome 4.7
   ========================================================================== */
@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("assets/fonts/roboto-latin-wght-normal.woff2") format("woff2-variations");
}
@font-face {
	font-family: "FontAwesome";
	font-style: normal;
	font-weight: normal;
	font-display: block;
	src: url("assets/fonts/fontawesome-webfont.woff2") format("woff2");
}

/* ==========================================================================
   Valores do tema original
   ========================================================================== */
:root {
	--gz-accent: #c7342c;
	--gz-red: #bf2424;
	--gz-dark: #151515;
	--gz-text: #787d85;
	--gz-icon: #292e36;
	--gz-line: #dddddd;
	--gz-border: 40px;
	--gz-wrap: 1200px;
	--gz-gap: 40px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: #fff; }
body {
	margin: 0;
	padding: 0 var(--gz-border);
	font-family: "Roboto", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 300;
	line-height: 24px;
	letter-spacing: .5px;
	color: var(--gz-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--gz-accent); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--gz-dark); }
strong, b { font-weight: 700; }
p { margin: 0 0 20px; }
p:last-child { margin-bottom: 0; }
h1, h2, h3, h4 { color: var(--gz-dark); font-family: "Roboto", Helvetica, Arial, sans-serif; margin: 0 0 20px; letter-spacing: .5px; }
h3 { font-size: 20px; line-height: 25px; font-weight: 400; }
h4 { font-size: 16px; line-height: 24px; font-weight: 700; }
:focus-visible { outline: 2px solid var(--gz-accent); outline-offset: 2px; }
.gz-skip { position: absolute; left: 8px; top: -60px; z-index: 1000; background: var(--gz-dark); color: #fff; padding: 10px 16px; }
.gz-skip:focus { top: 8px; }

/* Moldura branca de 40px à volta do site (como no Brooklyn) */
.gz-border { position: fixed; z-index: 90; background: #fff; }
.gz-border--top, .gz-border--bottom { left: 0; right: 0; height: var(--gz-border); }
.gz-border--top { top: 0; }
.gz-border--bottom { bottom: 0; }
.gz-border--left, .gz-border--right { top: 0; bottom: 0; width: var(--gz-border); }
.gz-border--left { left: 0; }
.gz-border--right { right: 0; }
.admin-bar .gz-border--top { top: 32px; }

/* ==========================================================================
   Cabeçalho: logótipo à esquerda, menu "hambúrguer" à direita
   ========================================================================== */
.gz-header {
	position: relative;
	z-index: 100;
	height: 120px;
	margin-top: var(--gz-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.gz-header .gz-logo img { width: 141px; height: auto; }
.gz-hamburger {
	position: relative;
	width: 40px;
	height: 40px;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.gz-hamburger__box { display: block; position: relative; width: 22px; height: 16px; margin: 0 auto; }
.gz-hamburger__inner, .gz-hamburger__inner::before, .gz-hamburger__inner::after {
	position: absolute; left: 0; width: 22px; height: 2px; background: var(--gz-dark); border-radius: 1px; transition: transform .2s ease;
}
.gz-hamburger__inner { top: 7px; }
.gz-hamburger__inner::before, .gz-hamburger__inner::after { content: ""; }
.gz-hamburger__inner::before { top: -7px; }
.gz-hamburger__inner::after { top: 7px; }
.gz-hamburger:hover .gz-hamburger__inner::before { transform: translateY(-1px); }
.gz-hamburger:hover .gz-hamburger__inner::after { transform: translateY(1px); }

/* Menu em ecrã completo */
.gz-overlay {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: rgba(21, 24, 26, .95);
	display: flex;
	flex-direction: column;
	padding: var(--gz-border);
	opacity: 0;
	transition: opacity .3s ease;
	overflow-y: auto;
}
.gz-overlay[hidden] { display: none; }
.gz-overlay.is-open { opacity: 1; }
.gz-overlay__top { height: 120px; flex: none; display: flex; align-items: center; justify-content: space-between; }
.gz-overlay__top .gz-logo img { width: 141px; height: auto; }
.gz-close { width: 40px; height: 40px; background: none; border: 0; cursor: pointer; position: relative; }
.gz-close::before, .gz-close::after { content: ""; position: absolute; left: 9px; top: 19px; width: 22px; height: 2px; background: #fff; }
.gz-close::before { transform: rotate(45deg); }
.gz-close::after { transform: rotate(-45deg); }
.gz-overlay__nav { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px 0; }
.gz-menu, .gz-menu ul { list-style: none; margin: 0; padding: 0; }
.gz-menu > li > a {
	display: inline-block;
	font-size: 35px;
	line-height: 1.6;
	font-weight: 900;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: #fff;
}
.gz-menu .sub-menu { margin: 4px 0 10px; }
.gz-menu .sub-menu a {
	display: inline-block;
	font-size: 16px;
	line-height: 2.3;
	font-weight: 500;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
}
.gz-menu a:hover { color: var(--gz-accent); }
.gz-overlay__copy { flex: none; margin: 0; font-size: 9px; line-height: 12px; text-transform: uppercase; color: rgba(255, 255, 255, .8); }
body.gz-menu-open { overflow: hidden; }

/* ==========================================================================
   Conteúdo
   ========================================================================== */
.gz-content { padding-bottom: 80px; }
.gz-content > * { max-width: var(--gz-wrap); margin-left: auto; margin-right: auto; }
.gz-content > .alignfull { max-width: none; }
.gz-content > * + * { margin-top: var(--gz-gap); }
.gz-content > .gz-section { margin-top: 80px; }
.gz-content > .gz-row--first, .gz-content > .gz-section:first-child { margin-top: 160px; }
.has-hero .gz-content { padding-bottom: 0; }

:where(.wp-block-group, .wp-block-columns, .wp-block-image, .wp-block-video, .wp-block-cover) { margin: 0; }
.gz-content .wp-block-image img { width: 100%; height: auto; }
.gz-row { display: flex !important; flex-wrap: nowrap; gap: var(--gz-gap) !important; align-items: flex-start !important; }
.gz-row > .wp-block-column { flex: 1 1 0; min-width: 0; }
.gz-row > .wp-block-column[style*="flex-basis"] { flex-grow: 0; flex-shrink: 1; }
.gz-row > .wp-block-column[style*="66.66"] { flex-basis: calc(66.66% - var(--gz-gap) / 3) !important; }
.gz-row > .wp-block-column[style*="33.33"] { flex-basis: calc(33.33% - var(--gz-gap) * 2 / 3) !important; }

/* Etiqueta vermelha (breadcrumb) */
.gz-crumb { margin: 0 0 40px; font-size: 12px; line-height: 12px; }
.gz-crumb span {
	display: inline-block;
	background: var(--gz-red);
	color: #fff;
	padding: 5px 10px;
	font-weight: 300;
	letter-spacing: .5px;
}

/* Títulos de secção */
.gz-title {
	font-size: 35px;
	line-height: 50px;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--gz-dark);
	letter-spacing: .5px;
	margin: 0 0 20px;
}
.gz-title--small { font-size: 30px; line-height: 40px; }
.gz-lead { font-size: 18px; line-height: 28px; font-weight: 400; color: var(--gz-dark); margin-bottom: 30px; }
.gz-small-title { margin-bottom: 10px; }
.gz-small-title strong { color: var(--gz-text); text-transform: uppercase; }
.gz-content h4 { margin-top: 30px; }

/* Imagens em par */
.gz-duo .wp-block-image { overflow: hidden; }
.gz-duo img { aspect-ratio: 3 / 2; object-fit: cover; }

/* Galeria de 3 imagens (largura total da moldura) */
.gz-gallery { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gz-gallery .wp-block-image { box-shadow: 0 10px 30px rgba(0, 0, 0, .12); overflow: hidden; }
.gz-gallery img { aspect-ratio: 3 / 2; object-fit: cover; }

/* Imagem fixa em ecrã inteiro (parallax) */
.gz-content > .gz-parallax { margin-top: 80px; }
.gz-parallax.wp-block-cover { min-height: calc(100vh - 2 * var(--gz-border)) !important; padding: 0; }
.gz-parallax .wp-block-cover__image-background { background-attachment: fixed; background-size: cover; background-position: center; }
.gz-parallax .wp-block-cover__background { opacity: 0 !important; }

/* Serviços com ícone redondo vermelho */
.gz-services .wp-block-column > * + * { margin-top: 30px; }
.gz-service { position: relative; padding-left: 68px; min-height: 48px; }
.gz-service::before {
	position: absolute; left: 0; top: 0;
	width: 48px; height: 48px; border-radius: 50%;
	background: var(--gz-accent); color: #fff;
	font: normal 24px/48px FontAwesome; text-align: center;
}
.gz-service h3 { margin-bottom: 15px; }

/* Caixa de documento (ícone cinzento, vermelho ao passar) */
.gz-iconbox { position: relative; padding-top: 92px; }
.gz-iconbox::before {
	position: absolute; left: 0; top: 0;
	width: 62px; height: 62px; border-radius: 50%;
	background: #ccc; color: #fff;
	font: normal 26px/62px FontAwesome; text-align: center;
	transition: background .2s ease, box-shadow .2s ease;
}
.gz-iconbox:hover::before { background: var(--gz-red); box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--gz-red); }
.gz-iconbox h3 { margin-bottom: 15px; }
.gz-iconbox h3 a { color: var(--gz-dark); }
.gz-iconbox h3 a::after { content: ""; position: absolute; inset: 0; }
.gz-iconbox:hover h3 a { color: var(--gz-red); }
.gz-iconboxes { margin-top: 80px !important; }

/* Ícones Font Awesome */
.gz-ico-file-pdf-o::before { content: "\f1c1"; }
.gz-ico-flask::before { content: "\f0c3"; }
.gz-ico-user::before { content: "\f007"; }
.gz-ico-wrench::before { content: "\f0ad"; }
.gz-ico-cogs::before { content: "\f085"; }
.gz-ico-truck::before { content: "\f0d1"; }

/* Ligação a PDF (Condições gerais de venda) */
.gz-pdflink { font-weight: 700; text-transform: capitalize; color: var(--gz-accent); }
.gz-pdflink::before { content: "\f1c1"; font: normal 14px/1 FontAwesome; margin-right: 8px; }
.gz-cgv { align-items: center !important; }

/* Certificações */
.gz-certlogo { margin-top: 20px; }

/* Vídeo */
.wp-block-video video { width: 100%; background: #000; }
.gz-row--first .wp-block-video { margin-bottom: 40px; }

/* ==========================================================================
   Contactos
   ========================================================================== */
.gz-contact-title { font-size: 18px; line-height: 28px; font-weight: 400; margin: 40px 0 10px; }
.gz-crumb + .gz-contact-title { margin-top: 0; }
.gz-fancy { list-style: none; margin: 0; padding: 0; }
.gz-fancy li { position: relative; padding-left: 26px; color: var(--gz-icon); font-size: 13px; line-height: 24px; }
.gz-fancy li::before { position: absolute; left: 0; top: 0; width: 18px; text-align: center; font: normal 14px/24px FontAwesome; color: var(--gz-icon); }
.gz-fancy li.gz-i-none { padding-left: 0; }
.gz-fancy a { color: var(--gz-icon); }
.gz-fancy a:hover { color: #c6c6c6; }
.gz-i-home::before { content: "\f015"; }
.gz-i-envelope-o::before { content: "\f003"; }
.gz-i-phone::before { content: "\f095"; }
.gz-i-fax::before { content: "\f1ac"; }
.gz-i-external-link::before { content: "\f08e"; }
.gz-i-share::before { content: "\f064"; }
.gz-vigent { margin-top: 30px; }
.gz-content .gz-vigent img { width: 100px; }

/* Formulário (Contact Form 7) */
.wpcf7 { margin-top: 40px; }
.wpcf7 label { display: block; font-size: 14px; font-weight: 300; color: var(--gz-text); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea {
	display: block; width: 100%; margin-top: 4px;
	padding: 8px 12px;
	font: 300 14px/20px "Roboto", Helvetica, Arial, sans-serif;
	color: var(--gz-dark);
	background: #fff;
	border: 1px solid var(--gz-line);
	border-radius: 0;
}
.wpcf7 input:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--gz-dark); }
.wpcf7 textarea { height: 160px; resize: vertical; }
.wpcf7 form > p { margin-bottom: 15px; }
.wpcf7-submit, .gz-btn {
	display: inline-block;
	padding: 14px 30px;
	background: var(--gz-dark);
	color: #fff;
	border: 0;
	border-radius: 0;
	font: 700 12px/1 "Roboto", Helvetica, Arial, sans-serif;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s ease;
}
.wpcf7-submit:hover, .gz-btn:hover { background: var(--gz-accent); color: #fff; }
.wpcf7-not-valid-tip { font-size: 12px; color: var(--gz-red); }

/* Páginas legais */
.gz-legal h3 { font-size: 18px; font-weight: 700; margin-top: 30px; }
.gz-legal h4 { font-size: 15px; margin-top: 24px; margin-bottom: 10px; }
.gz-legal ul { margin: 0 0 20px; padding-left: 18px; }

/* ==========================================================================
   Página inicial: slider em ecrã completo
   ========================================================================== */
.gz-hero {
	position: relative;
	overflow: hidden;
	height: calc(100vh - 120px - 2 * var(--gz-border));
	min-height: 480px;
	background: #e7e7e7;
}
.gz-hero .gz-slide {
	position: absolute !important;
	inset: 0;
	min-height: 0 !important;
	padding: 0 !important;
	display: flex;
	align-items: center;
	transition: transform .9s cubic-bezier(.7, 0, .3, 1);
}
.gz-hero:not(.is-ready) .gz-slide:not(:first-child) { display: none; }
.gz-hero.is-ready .gz-slide { transform: translateX(100%); z-index: 1; }
.gz-hero.is-ready .gz-slide.is-active { transform: none; z-index: 3; }
.gz-hero.is-ready .gz-slide.is-prev { transform: translateX(-100%); z-index: 2; }
.gz-hero.is-ready.no-anim .gz-slide { transition: none; }
.gz-slide .wp-block-cover__image-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.gz-slide .wp-block-cover__background { position: absolute; inset: 0; z-index: 1; background: #000 !important; opacity: .15 !important; }
.gz-slide .wp-block-cover__inner-container {
	position: relative; z-index: 2;
	width: 100%;
	max-width: var(--gz-wrap);
	margin: 0 auto;
	padding: 0 20px;
	color: #fff;
}
.gz-slide__title {
	color: #fff;
	font-size: 60px;
	line-height: 70px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0;
	max-width: 12em;
	margin: 0;
}
.gz-slide__title::after { content: ""; display: block; width: 40px; height: 4px; background: var(--gz-accent); margin: 30px 0 14px; }
.gz-slide__text { font-size: 16px; line-height: 26px; font-weight: 400; color: #fff; margin: 0; }
.gz-slide .wp-block-buttons { margin-top: 14px; }
.gz-slide .wp-block-button__link {
	display: inline-block;
	padding: 10px 30px;
	background: #fff;
	color: #c8342c;
	border: 2px solid #fff;
	border-radius: 0;
	font-size: 14px;
	line-height: 24px;
	font-weight: 500;
	letter-spacing: .5px;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
}
.gz-slide .wp-block-button__link:hover { background: rgba(21, 21, 21, .3); color: #fff; }
.gz-hero__nav { position: absolute; z-index: 5; left: 0; right: 0; bottom: 24px; display: flex; justify-content: center; gap: 10px; }
.gz-hero__dot { width: 12px; height: 12px; padding: 0; border-radius: 50%; border: 2px solid #fff; background: transparent; cursor: pointer; }
.gz-hero__dot.is-active { background: #fff; }
@media (min-width: 1400px) {
	.gz-slide__title { font-size: 80px; line-height: 80px; }
}

/* ==========================================================================
   Rodapé
   ========================================================================== */
.gz-footer { padding: 40px 30px calc(var(--gz-border) + 20px); }
.gz-footer__inner {
	border-top: 1px solid var(--gz-line);
	padding-top: 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.gz-p2020 img { width: 290px; height: auto; }
.gz-footer__links, .gz-footer__copy, .gz-langs {
	margin: 0;
	font-size: 9px;
	line-height: 13px;
	font-weight: 400;
	text-transform: uppercase;
	color: var(--gz-dark);
}
.gz-footer__links { margin-top: 14px; }
.gz-footer a { color: var(--gz-dark); }
.gz-footer a:hover { color: var(--gz-accent); }
.gz-langs a { color: var(--gz-accent); }
.gz-langs a[aria-current] { font-weight: 700; }
.gz-footer__vigent img { width: 60px; height: auto; }

/* ==========================================================================
   Ecrãs pequenos
   ========================================================================== */
@media (max-width: 1024px) {
	.gz-title { font-size: 30px; line-height: 40px; }
	.gz-slide__title { font-size: 48px; line-height: 52px; }
}
@media (max-width: 767px) {
	:root { --gz-border: 0px; --gz-gap: 30px; }
	body { padding: 0 20px; }
	.gz-border { display: none; }
	.gz-header { height: 90px; }
	.gz-overlay { padding: 0 20px 20px; }
	.gz-overlay__top { height: 90px; }
	.gz-menu > li > a { font-size: 24px; letter-spacing: 2px; }
	.gz-menu .sub-menu a { font-size: 13px; line-height: 2.1; }
	.gz-row { flex-direction: column; }
	.gz-row > .wp-block-column { flex-basis: auto !important; width: 100%; }
	.gz-title { font-size: 26px; line-height: 34px; }
	.gz-content > .gz-row--first, .gz-content > .gz-section:first-child { margin-top: 30px; }
	.gz-gallery { grid-template-columns: 1fr; gap: 20px; }
	.gz-parallax .wp-block-cover__image-background { background-attachment: scroll; }
	.gz-parallax.wp-block-cover { min-height: 60vh !important; }
	.gz-hero { height: calc(100vh - 90px); margin: 0 -20px; }
	.gz-slide .wp-block-cover__inner-container { text-align: center; }
	.gz-slide__title { font-size: 34px; line-height: 38px; margin: 0 auto; }
	.gz-slide__title::after { margin: 20px auto 12px; }
	.gz-slide .wp-block-buttons { justify-content: center; }
	.gz-footer { padding: 30px 0 20px; }
	.gz-footer__inner { flex-direction: column; align-items: flex-start; }
	.gz-p2020 img { width: 240px; }
}
@media (prefers-reduced-motion: reduce) {
	.gz-hero .gz-slide { transition: none; }
}
