/*
 Theme Name: Lavandaria Oliveira
 Theme URI: http://blisq.pt
 Author: blisq
 Author URI: http://blisq.pt
 Description: Tema desenvolvido para uso exclusivo da Blisq Creative
 Version: V7.0
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Tags: blisq
 Text Domain: blisq
 */

/* FONTES */
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

/* VARIAVEIS E RESETS */
:root {
	--white: #FFFFFF;
	--black: #000000;
	--red: #C91F2D;
	--shadow: #161616;
	--light-grey: #D9D9D9;
	--bg-grey: #f2f2f2;
}

::selection {
	background-color: #D9D9D9;
	color: #000;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	overflow-x: hidden;
	scroll-behavior: smooth;
}

body {
	font-family: "Roboto", sans-serif;
	color: var(--black);
	background-color: var(--white);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}
/* TABELA CLEAN + RESPONSIVE (sem classes) */
table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	color: #1f2937;
	background: #fff;
	border: 1px solid #e6e6e6;
	overflow: hidden; 
	margin-bottom: 20px;
}

caption {
	text-align: left;
	font-weight: 600;
	padding: 10px 12px;
	color: #111827;
}

thead th {
	text-align: left;
	font-weight: 600;
	color: #111827;
	padding: 12px 14px;
	border-bottom: 1px solid #e6e6e6;
	white-space: nowrap;
	position: sticky; /* opcional */
	top: 0; /* opcional */
	z-index: 1; /* opcional */
}

tbody td {
	padding: 12px 14px;
	border-bottom: 1px solid #f0f0f0;
	vertical-align: top;
}

tbody tr:nth-child(even) {
	background: #fcfcfd;
}

tbody tr:hover {
	background: #f3f4f6;
}

tbody tr:last-child td {
	border-bottom: 0;
}

/* Links dentro da tabela */
table a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Pequenos ecrãs: torna-se "scrollável" horizontalmente sem mexer no HTML */
@media (max-width: 720px) {
	table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		white-space: nowrap; /* evita esmagar colunas */
	}
	thead th, tbody td {
		padding: 10px 12px;
	}
}

/* Se houver várias tabelas, dá um espaçamento entre elas */
table + table {
	margin-top: 16px;
}

.mg-top-15 {
	margin-top: 15px;
}
.block {
	display: block;
}

/* CLASSES UTILITÁRIAS GLOBAIS */
.section-title {
	color: var(--shadow);
	font-size: 16px;
	font-style: normal;
	font-weight: 300;
	line-height: 24px;
	position: relative;
	padding-left: 13px;
	margin-right: auto;
}

.section-title::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 4px;
	height: 24px;
	background-color: var(--light-grey);
}

/* ========== MENU ========== */
.menu-container {
	position: absolute;
	width: 100%;
	z-index: 1000;
}

.menu {
	max-width: 1512px;
	margin: 60px auto 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Logo */
.logo img {
	max-height: 111px;
	width: auto;
}

.logo a {
	text-decoration: none;
}

/* Menu items */
.menu-top {
	display: flex;
	list-style: none;
	gap: 60px;
	align-items: center;
}

.menu-top li a {
	color: var(--shadow);
	font-weight: 500;
	font-size: 1rem;
	position: relative;
	padding: 0.5 rem 0;
	display: block;
	padding: 19px 20px;
	line-height: 12px;
}

.menu-top li a:hover {
	color: var(--red);
}

.menu-top li:last-child a {
	background-color: var(--shadow);
	color: var(--white);
	border-radius: 10px;
	padding: 20px;
	transition: all 0.3s ease;
}

.menu-top li:last-child a:hover {
	background-color: var(--red);
}

/* ========== HERO ========== */
.hero {
	min-height: 100dvh;
	width: 100%;
	position: relative;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 250px 0;
	background-attachment: fixed;
}

.hero .container {
	max-width: 1512px;
	margin: 0 auto;
	width: 100%;
}

.hero-content {
	position: relative;
	z-index: 1;
	max-width: 900px;
	color: var(--black);
	display: flex;
	flex-wrap: wrap;
	row-gap: 40px;
}

.hero h1 {
	text-align: left;
	font-weight: 400;
	font-size: 80px;
	text-wrap: balance;
	line-height: 1;
}

.hero h1 strong {
	font-weight: 600;
}

.hero p {
	display: flex;
	font-size: 20px;
	flex-direction: column;
	align-items: flex-start;
	gap: 40px;
}

/* Container dos botões do hero */
.hero-buttons {
	display: flex;
	gap: 20px;
	width: 100%;
}

/* Estilo base para ambos os botões */
.hero-btn {
	display: inline-block;
	padding: 19px 20px;
	font-weight: 600;
	font-size: 16px;
	text-align: center;
	border-radius: 10px;
	text-decoration: none;
	transition: all 0.3s ease;
	line-height: 12px;
}

/* Botão Contactos */
.btn-contacts {
	background-color: var(--white);
	color: var(--black);
}

.btn-contacts:hover {
	background-color: var(--shadow);
	color: var(--white);
}

/* Botão Serviços */
.btn-services {
	background-color: var(--shadow);
	color: var(--white);
	border-color: var(--shadow);
}

.btn-services:hover {
	background-color: var(--red);
	color: var(--white);
	border-color: var(--red);
}

/* ========== ABOUT US SECTION ========== */
.about-section {
	padding: 150px 0;
	background-color: var(--bg-grey);
}

.about-section .container {
	max-width: 1512px;
	margin: 0 auto;
}

.about-content {
	display: grid;
	grid-template-columns: 38.5% 1fr;
	gap: 10%;
	align-items: stretch;
}

.about-section h2 {
	color: var(--shadow);
	font-size: 16px;
	font-style: normal;
	font-weight: 300;
	line-height: normal;
}

.about-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.about-text h2 {
	margin-bottom: 40px;
	text-align: left;
	color: var(--shadow);
	font-size: 16px;
	font-style: normal;
	font-weight: 300;
	line-height: 24px;
	position: relative;
	padding-left: 13px;
}

.about-text h2::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 4px;
	height: 24px;
	background-color: var(--light-grey);
	display: flex;
	align-items: center;
	height: 24px;
}

.about-text p.paragraph-1 {
	color: var(--shadow);
	font-size: 30px;
	font-style: normal;
	font-weight: 400;
	line-height: 130%;
	margin-bottom: 40px;
}

.about-text p.paragraph-1 span {
	font-weight: 700;
}

.about-text p.paragraph-2 {
	color: var(--shadow);
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 160%;
}

.about-text p:last-child {
	margin-bottom: 0;
}

.about-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 20px;
	display: block;
}

/* ========== SERVICES SECTION ========== */
.services-section {
	padding: 150px 0;
	background-color: var(--white);
}

.services-section .container {
	max-width: 1512px;
	margin: 0 auto;
}

.services-header {
	text-align: left;
}

.services-title-row {
	display: flex;
	align-items: center;
	width: 100%;
}

/* Container dos botões SVG */
.services-icons {
	display: flex;
	gap: 20px;
	align-items: center;
	margin-left: auto;
}

.svg-btn {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	cursor: pointer;
	transition: all 0.3s ease;
	padding: 8px;
}

.svg-btn.prev {
	scale: -1;
}

.svg-btn:hover {
	opacity: 0.4;
}

.svg-btn img {
	width: 20px;
	height: 20px;
	display: block;
}

.services-description {
	font-size: 30px;
	color: var(--shadow);
	line-height: 1.3;
	padding: 40px 0;
	max-width: 743px;
	font-weight: 400;
}

.services-description span {
	font-weight: 700;
}

.services-contact-btn {
	display: inline-block;
	background-color: var(--shadow);
	color: var(--white);
	padding: 20px 23.1px;
	border-radius: 10px;
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
	transition: all 0.3s ease;
	line-height: 10px;
}

.services-contact-btn:hover {
	background-color: var(--red);
}

.services-images {
	display: flex;
	gap: 40px;
	margin-top: 40px;
	overflow: hidden;
	padding-left: calc((100vw - 1512px) /2 );
}

.service-item {
	flex: 0 0 355px;
	position: relative;
	overflow: hidden;
}

.service-item::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 67.02%, #000 100%);
	border-radius: 16px;
	pointer-events: none;
	z-index: 1;
}

.service-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 16px;
	display: block;
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.10);
	user-select: none;
	-webkit-user-drag: none;
}

/* Texto por cima da imagem */
.service-label {
	position: absolute;
	bottom: 30px;
	left: 30px;
	color: var(--white);
	font-family: "Poppins", sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 600;
	line-height: normal;
	z-index: 2;
}

/* ========== CTA SECTION ========== */
.cta-section {
	padding: 200px 0 61px;
	background-color: var(--bg-grey);
}

.cta-section .container {
	max-width: 1512px;
	margin: 0 auto;
}

.cta-content {
	display: flex;
	align-items: center;
	background-color: var(--white);
	padding: 67px 0px 67px 138px;
	position: relative;
	border-radius: 20px;
}

.cta-content:hover .cta-image {
	scale: 1.05;
}

.cta-text {
	position: relative;
	z-index: 1;
}

.cta-text .cta-title {
	color: var(--shadow);
	font-size: 60px;
	font-weight: 400;
	line-height: 110%;
}

.cta-text .cta-title strong {
	font-weight: 700;
	display: block;
}

.cta-text .cta-description {
	font-size: 20px;
	font-weight: 400;
	line-height: 140%;
	margin: 20px 0px;
	max-width: 504px;
	color: var(--shadow);
}

.cta-btn {
	display: inline-block;
	background-color: var(--shadow);
	color: var(--white);
	padding: 20px;
	border-radius: 10px;
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
	transition: all 0.3s ease;
	border: none;
	cursor: pointer;
}

.cta-btn:hover {
	background-color: var(--light-grey);
	color: var(--black);
}

.cta-image {
	height: 475px;
	display: flex;
	width: fit-content;
	position: absolute;
	bottom: 0;
	right: 0;
	transform-origin: bottom;
	transition: all .2s;
}

.cta-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 20px;
	display: block;
}

/* ========== BENEFITS SECTION ========== */
.benefits-section {
	padding-top: 90px;
	padding-bottom: 150px;
	background-color: var(--bg-grey);
}

.benefits-section .container {
	max-width: 1512px;
	margin: 0 auto;
}

.benefits-header {
	text-align: left;
	margin-bottom: 40px;
}

.benefits-title-row {
	display: flex;
	align-items: center;
	width: 100%;
}

.benefits-subtitle {
	margin-bottom: 40px;
}

.benefits-subtitle p {
	color: var(--shadow);
	font-size: 30px;
	font-weight: 400;
	line-height: normal;
}

.benefits-subtitle p strong {
	font-weight: 700;
}

.benefits-cards {
	gap: 40px 25px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

.benefit-card {
	background-color: var(--white);
	border-radius: 20px;
	padding: 40px 80px;
	text-align: left;
	flex: 0 0 calc(33.33% - 20px);
}

.card-icon {
	width: 72px;
	aspect-ratio: 1;
	display: flex;
	margin-bottom: 30px;
}

.card-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.benefit-card h3 {
	font-size: 24px;
	font-weight: 700;
	line-height: normal;
	padding-bottom: 5px;
}

.benefit-card p {
	color: var(--shadow);
	font-size: 20px;
	font-weight: 400;
	line-height: 140%;
	margin: 0;
}

/* ========== FOOTER SECTION ========== */
.footer-section {
	background-color: var(--white);
	color: var(--shadow);
	padding: 80px 0 25px;
}

.footer-section .container {
	max-width: 1512px;
	margin: 0 auto;
}

.footer-content {
	display: grid;
	grid-template-columns: repeat(5, auto);
	gap: 6.5%;
	padding-right: 13%;
}

.footer-column {
	display: flex;
	flex-direction: column;
}

.footer-title {
	font-size: 16px;
	font-weight: 300;
	margin-bottom: 20px;
}

.footer-text {
	font-size: 14px;
	line-height: normal;
	font-weight: 500;
	margin-bottom: 8px;
}

.footer-text-address {
	font-size: 14px;
	line-height: 162.5%;
	font-weight: 500;
	margin-bottom: 12px;
}

.menu-bottom {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.menu-bottom a {
	margin-bottom: 20px;
	font-size: 14px;
	line-height: normal;
	font-weight: 500;
	color: var(--shadow);
	text-decoration: none;
	transition: color 0.3s ease;
}

.menu-bottom a:hover {
	color: var(--red);
}

.footer-subtext {
	font-size: 12px;
	font-weight: 300;
	margin-bottom: 8px;
	line-height: normal;
}

.social-icons {
	display: flex;
	gap: 20px;
}

.social-icon {
	width: 30px;
	height: 30px;
	display: block;
	transition: all 0.3s ease;
}

.social-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.social-icon:hover svg path {
	fill: #C91F2D;
}

.footer-divider {
	height: 1px;
	background-color: var(--light-grey);
	width: 100%;
	margin: 40px 0;
}

.footer-bottom {
	display: flex;
	justify-content: flex-end;
}

.blisq-logo {
	width: 30px;
	height: 11px;
	object-fit: contain;
}

/* ========== POLITICA PRIVACIDADE PAGE========== */

.common-page {
	background-color: var(--bg-grey);
	padding: 278px 0 150px 0;
}

.common-container {
	max-width: 1512px;
	margin: 0 auto;
}

.common-content {
	background-color: var(--white);
	border-radius: 20px;
	padding: 105px 141px 105px 153px;
}

.common-content h1 {
	color: var(--shadow);
	font-size: clamp(24px, 2.5vw, 60px);
	font-style: normal;
	font-weight: 400;
	line-height: 110%;
	margin-bottom: 40px;
}

.common-content h2 {
	color: var(--shadow);
	font-size: 30px;
	font-style: normal;
	font-weight: 400;
	line-height: 130%;
	margin-top: 30px;
	margin-bottom: 20px;
}

.common-content > p {
	color: var(--shadow);
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 160%;
	margin-bottom: 20px;
}

.common-content ul {
	color: var(--shadow);
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 160%;
	margin-bottom: 20px;
	list-style: none;
}

.common-content ul li {
	margin-bottom: 15px;
	position: relative;
	padding-left: 25px;
}

.common-content ul li::before {
	content: "•";
	color: var(--shadow);
	font-size: 24px;
	position: absolute;
	left: 0;
	top: 0;
}

.common-content ol {
	color: var(--shadow);
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 160%;
	margin-bottom: 20px;
	padding-left: 25px;
}

.common-content ol li {
	margin-bottom: 15px;
	position: relative;
	padding-left: 25px;
}

/* ========== MEDIA QUERIES ========== */

@media screen and (max-width: 1680px) {
	.menu-top {
		gap: 48px;
	}

	.menu, .common-container, .hero .container, .about-section .container, .services-section .container, .benefits-section .container, .cta-section .container, .footer-section .container {
		padding: 0 5%;
	}

	.about-section, .services-section {
		padding: 120px 0;
	}
	.about-text p.paragraph-1 {
		font-size: 24px;
	}

	.about-text p.paragraph-2 {
		font-size: 17px;
		line-height: 1.6;
	}

	.services-description {
		font-size: 26px;
	}
	.services-images {
		padding-left: calc((100vw - 1512px) /2  + 5% );
		padding-right: 5%;
	}

	.footer-text, .footer-text-address, .menu-bottom a {
		font-size: 14px;
	}

	.menu-bottom {
		gap: 13px;
	}

	.benefits-section {
		padding: 60px 0 90px 0;
	}

	.benefit-card h3 {
		font-size: 20px;
	}

	.benefit-card p {
		font-size: 18px;
	}

	/* ========== CTA ========== */
	.cta-section {
		padding: 120px 0 61px;
	}

	.cta-content {
		padding: 70px 50px;
	}

	.cta-text .cta-title {
		font-size: 44px;
	}

	.cta-text .cta-description {
		font-size: 18px;
		max-width: 480px;
	}

	.cta-image {
		height: 420px;
		right: 30px;
		transform: scale(0.95);
	}

	.cta-btn {
		padding: 18px 28px;
		font-size: 17px;
	}
}

@media screen and (max-width: 1540px) {
	.menu {
		margin: 30px auto 0 auto;
	}

	.hero h1 {
		font-size: 65px;
	}

	.hero-content {
		transform: translateY(60px);
	}

	.benefit-card {
		padding: 40px 55px;
	}

	.benefits-subtitle p {
		font-size: 28px;
	}

	.services-images {
		padding: 0 5%
	}

	.common-page {
		background-color: var(--bg-grey);
		padding: 200px 0 120px 0;
	}
}

@media screen and (max-width: 1440px) {
	.cta-content {
		padding: 60px 40px;
	}

	.cta-text .cta-title {
		font-size: 50px;
	}

	.cta-text .cta-description {
		font-size: 18px;
		max-width: 420px;
	}

	.cta-image {
		height: 380px;
		right: 20px;
	}

	.cta-btn {
		padding: 17px 32px;
		font-size: 16.5px;
	}

	.card-icon {
		width: 65px;
		margin-bottom: 20px;
	}

	.footer-content {
		gap: 50px;
	}
}

@media screen and (max-width: 1313px) {
	.hero h1 {
		font-size: 50px;
	}

	.hero-content {
		max-width: 700px;
	}

	.benefits-cards {
		gap: 25px;
		width: 100%;
	}

	.benefit-card {
		padding: 40px;
	}

	.benefits-header {
		margin-bottom: 30px;
	}

	.benefits-subtitle p {
		font-size: 26px;
	}

	.about-content {
		grid-template-columns: 1fr 1fr;
	}

	.footer-content {
		padding-right: 8%;
	}
}

/* Ajustes para portáteis / tablets na horizontal */
@media screen and (max-width: 1200px) {
	.menu-top {
		gap: 30px;
	}

	.hero p {
		max-width: 70%;
	}

	.benefit-card h3 {
		font-size: 20px;
	}

	/* ========== SERVICES QUERIES SECTION ========== */
	.services-images {
		gap: 30px;
	}

	.service-item {
		flex: 0 0 300px;
	}

	.services-description {
		font-size: 24px;
		max-width: 600px;
	}

	/* ========== FOOTER QUERIES SECTION ========== */
	.footer-section .container {
		padding: 0 10%;
	}

	.footer-content {
		grid-template-columns: repeat(3, auto);
		gap: 30px 60px;
		padding: 0;
	}

	.footer-section {
		padding: 50px 0 25px 0;
	}

	.cta-content {
		padding: 50px 30px;
	}

	.cta-text .cta-title {
		font-size: 45px;
	}

	.cta-text .cta-description {
		font-size: 17px;
		max-width: 380px;
	}

	.cta-image {
		height: 360px;
		right: 10px;
	}

	.cta-btn {
		padding: 16px 30px;
		font-size: 16px;
	}

	.common-content {
		padding: 90px 120px 90px 130px;
	}

	.common-content p, .common-content ul {
		font-size: 19px;
	}

	.common-content h2 {
		font-size: 28px;
	}
}

@media screen and (max-width: 1024px) {
	.hero {
		min-height: 80dvh;
	}

	.hero-btn {
		line-height: 5px;
	}

	.menu-top {
		gap: 40px;
	}

	.menu-top li:last-child a {
		padding: 18px;
		line-height: 5px;
	}

	.about-image {
		position: sticky;
		top: 20px;
		height: fit-content;
		margin-top: 65px;
	}

	.cta-content {
		padding: 40px 25px;
	}

	.cta-text .cta-title {
		font-size: 40px;
	}

	.cta-text .cta-description {
		font-size: 16px;
		max-width: 350px;
	}

	.cta-image {
		height: 300px;
		right: 0;
	}

	.cta-section {
		padding: 60px 0;
	}

	.cta-btn {
		padding: 15px 28px;
		font-size: 15.5px;
	}

	.benefit-card {
		flex: 0 0 calc(50% - 12.5px);
	}

	.benefits-subtitle p {
		font-size: 24px;
	}

	.benefits-section {
		padding: 0 0 60px 0;
	}

	.footer-section .container {
		padding: 0 5%;
	}

	.common-content {
		padding: 75px 100px 75px 110px;
	}

	.common-content > p, .common-content ul {
		font-size: 18px;
	}

	.common-content h2 {
		font-size: 26px;
	}
}

/* Ajustes para tablets e telemóveis */
@media screen and (max-width: 890px) {

	/* ========== MENU ========== */
	.menu-top {
		gap: 20px;
	}

	.card-icon {
		width: 65px;
	}

	/* ========== HERO QUERIES SECTION ========== */
	.hero-content {
		transform: translateY(25px);
		row-gap: 20px;
	}

	.hero h1 {
		font-size: 45px;
	}

	.hero p {
		font-size: 18px;
	}

	/* ========== ABOUT US QUERIES SECTION ========== */
	.about-section {
		padding: 80px 0;
	}

	.about-content {
		grid-template-columns: 100%;
		gap: 20px;
	}

	.about-image {
		position: relative;
		top: 0;
		margin-top: 0;
	}

	.about-text h2 {
		text-align: left;
		margin-bottom: 25px;
	}

	.about-text p.paragraph-1 {
		font-size: 24px;
		line-height: 1.3;
		margin-bottom: 25px;
	}

	/* ========== SERVICES QUERIES SECTION ========== */
	.services-section {
		padding: 100px 0;
	}

	.services-header {
		text-align: left;
	}

	.services-title-row {
		justify-content: flex-start;
		text-align: left;
	}

	.services-description {
		font-size: 24px;
		padding: 30px 0;
	}

	.services-contact-btn {
		margin-left: 0;
	}

	.services-images {
		padding: 0 2rem;
		margin: 30px 0;
		gap: 20px;
	}

	.service-item {
		flex: 0 0 280px;
	}

	/* ========== CTA QUERIES SECTION ========== */
	.cta-section .container {
		padding: 0 12%;
	}

	.cta-content {
		flex-direction: column;
		padding: 50px 50px 0 50px;
		align-items: flex-start;
	}

	.cta-text .cta-description {
		font-size: 18px;
		margin: 20px 0;
		max-width: 100%;
	}

	.cta-image {
		position: relative;
		order: 2;
		height: 350px;
		width: 100%;
		right: auto;
		bottom: auto;
	}

	.cta-image img {
		width: 100%;
		height: 100%;
		object-fit: contain;
		object-position: center bottom;
		border-radius: 16px;
	}

	.cta-content:hover .cta-image {
		scale: 1.02;
	}

	.common-content {
		padding: 60px 80px 60px 90px;
	}

	.common-content > p, .common-content ul {
		font-size: 17px;
	}

	.common-content h2 {
		font-size: 24px;
	}
}

@media screen and (max-width: 768px) {
	.menu-top {
		gap: 5px;
	}

	.menu-top li a {
		font-size: 14px;
	}

	.footer-content {
		gap: 0;
		display: block;
		columns: 2;
	}

	.footer-column {
		margin-bottom: 10px;
	}

	.cta-section .container {
		padding: 0 6%;
	}

}

/* Ajustes específicos para telemóveis pequenos */
@media screen and (max-width: 640px) {

	/* ========== MENU QUERIES SECTION ========== */
	.logo img {
		max-height: 80px;
	}

	.menu-top {
		display: none;
	}

	/* ========== HERO QUERIES SECTION ========== */
	.hero h1 {
		font-size: 40px;
	}

	.hero-btn {
		padding: 15px 25px;
		font-size: 14px;
	}

	.hero-buttons {
		gap: 15px;
	}

	/* ========== ABOUT US QUERIES SECTION ========== */
	.about-section {
		padding: 60px 0;
	}

	.about-content {
		gap: 40px;
	}

	.about-text {
		padding: 0 10px;
	}

	.about-text p.paragraph-1 {
		font-size: 22px;
	}

	.about-text p.paragraph-2 {
		font-size: 16px;
	}

	.about-image img {
		border-radius: 10px;
	}

	/* ========== SERVICES QUERIES SECTION ========== */
	.services-section {
		padding: 60px 0;
	}

	.svg-btn {
		display: none;
	}

	.service-label {
		line-height: 1.3;
	}

	.services-title-row {
		flex-direction: row;
		justify-content: flex-start;
	}

	.services-description {
		font-size: 20px;
		padding: 20px 0;
	}

	.services-images {
		padding: 0 1.5 rem;
		margin: 30px 0;
	}

	.service-item {
		flex: 0 0 260px;
	}

	/* ========== CTA QUERIES SECTION ========== */
	.cta-section {
		padding: 50px 0;
	}

	.cta-content {
		padding: 40px 40px 0 39px;
	}

	.cta-text .cta-title {
		font-size: 34px;
	}

	.cta-text .cta-description {
		font-size: 16px;
		margin: 15px 0 25px;
	}

	.cta-btn {
		padding: 15px 30px;
	}

	.cta-image {
		height: 290px;
	}

	/* ========== BENEFITS QUERIES SECTION ========== */
	.benefit-card {
		padding: 30px;
	}

	.benefits-section {
		padding: 0 0 60px 0;
	}

	.benefits-subtitle p {
		font-size: 22px;
	}

	.benefit-card h3 {
		font-size: 19px;
	}

	.benefit-card p {
		font-size: 16px;
	}

	.benefits-cards {
		flex-direction: column;
	}

	.benefit-card {
		padding: 30px;
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 30px;
	}

	.card-icon {
		grid-row: span 2;
	}

	/* ========== FOOTER QUERIES SECTION ========== */
	.footer-column {
		margin-bottom: 0;
	}

	.footer-content {
		grid-template-columns: 1fr;
		gap: 20px;
		display: grid;
		text-align: center;
	}

	.footer-column:nth-child(5) {
		grid-column: 1;
	}

	.footer-section {
		padding: 40px 0 20px;
	}

	.footer-title {
		font-size: 14px;
		margin-bottom: 15px;
	}

	.footer-text, .footer-text-address {
		margin-bottom: 5px;
	}

	.menu-bottom a {
		font-size: 11px;
	}

	.footer-subtext {
		font-size: 11px;
		margin-bottom: 5px;
	}

	.social-icons {
		justify-content: center;
		gap: 15px;
	}

	.social-icon {
		width: 25px;
		height: 25px;
	}

	.blisq-logo {
		width: 25px;
		height: 9px;
	}

	.footer-divider {
		margin: 20px 0;
	}

	.footer-column.ft-col-contact {
		order: 2;
	}

	.footer-column.ft-col-address {
		order: 3;
	}

	.footer-column.ft-col-hour {
		order: 4;
	}

	.footer-column.ft-col-help {
		order: 5;
		flex-direction: row;
		column-gap: 20px;
		justify-content: space-evenly;
	}

	.footer-column.ft-col-media {
		order: 1;
	}

	.footer-column.ft-col-help .footer-title {
		display: none;
	}

	.common-page {
		padding: 150px 0 100px 0;
	}

	.common-content {
		padding: 50px 40px 50px 45px;
	}

	.common-content > p, .common-content ul {
		font-size: 16px;
	}

	.common-content h2 {
		font-size: 22px;
	}

	.common-content ul li {
		padding-left: 20px;
	}

	.common-content ul li::before {
		font-size: 20px;
		left: 0;
	}
}

/* Ajustes específicos para telemóveis mais pequenos */
@media screen and (max-width: 480px) {

	/* ========== HERO SECTION ========== */
	.hero p {
		max-width: 100%;
		text-wrap: balance;
	}

	.hero h1 {
		font-size: 52px;
	}

	.hero {
		min-height: auto;
	}

	/* ========== ABOUT SECTION ========== */
	.about-text p.paragraph-1 {
		font-size: 20px;
	}

	.about-text p.paragraph-2 {
		font-size: 15px;
	}

	/* ========== SERVICE SECTION ========== */
	.services-images {
		gap: 12px;
	}

	.services-description {
		font-size: 18px;
	}

	/* ========== CTA SECTION ========== */
	.cta-content {
		padding: 30px 30px 0 30px;
	}

	.cta-text .cta-title {
		font-size: 28px;
	}

	.cta-text .cta-description {
		font-size: 15px;
	}

	.cta-btn {
		padding: 14px 28px;
		font-size: 15px;
	}

	.cta-image {
		height: 200px;
	}

	.cta-text {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
		margin-bottom: 20px;
	}

	/* ========== FOOTER SECTION ========== */
	.footer-column.ft-col-help .footer-title {
		display: block;
	}

	.footer-column.ft-col-help {
		display: grid;
		grid-template-columns: 100%;
	}

	.footer-text-help {
		font-size: 13px;
	}

	.common-page {
		padding-top: 150px;
	}

	.common-content {
		padding: 40px 25px 40px 30px;
		border-radius: 16px;
	}

	.common-content > p, .common-content ul {
		font-size: 13px;
		line-height: 160%;
	}

	.common-content h2 {
		font-size: 20px;
		line-height: 130%;
	}

	.common-content ul li {
		padding-left: 18px;
		margin-bottom: 12px;
	}

	.common-content ul li::before {
		font-size: 14px;
	}
	.common-content h2 {
		font-size: 18px;
	}	
}

@media screen and (max-width: 420px) {
	.hero h1 {
		font-size: 48px;
	}

	.cta-text .cta-title {
		font-size: 26px;
	}

	.card-icon {
		width: 55px;
	}
}

@media screen and (max-width: 375px) {
	.hero-content {
		transform: translateY(0);
	}

	.hero {
		padding: 195px 0 120px 0;
	}

	.cta-text .cta-title {
		font-size: 22px;
	}
}