/* ============================
Theme Name: HW Heating
Version: 1.0
Description: Theme Description
Author: Edwin
First Update: 26/07/2026
Last Update: 20/10/2026
License: GNU General Public License v2 or later
============================*/

/* ============================
# VARIABLES
============================*/
:root {
	--font-body: "Work Sans", sans-serif;
	--font-heading: "Work Sans", sans-serif;
	--primary-color:#0057A3;
	--secondary-color:#BF1E23;
	--primary-light-color: #F2F8FF;
	--color: #000000;
}

/* ============================
# RESET STYLES
============================*/
html {
	scroll-behavior: smooth;
}
body {
	font-family: var(--font-body);
	font-size: 16px;
	color: var(--color);
}
a,
a:hover,
a:focus {
	text-decoration: none;
	outline: none;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
}

/* =====[COLORS]===== */
.bg-primary-light {
	background-color: var(--primary-light-color)!important;
}

/* =====[BUTTON]===== */
.btn {
	--bs-btn-padding-x: 1.75rem;
	--bs-btn-padding-y: 0.75rem;
	--bs-btn-font-family: var(--font-body);
	--bs-btn-font-size: 1rem;
	--bs-btn-font-weight: 500;
	--bs-btn-border-radius: 0;
	--bs-btn-box-shadow: none;
	--bs-btn-focus-box-shadow: none;
	padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
	font-size: var(--bs-btn-font-size);
	text-transform: uppercase;
}
.btn:focus-visible {
	box-shadow: none;
}
.btn-primary {
	--bs-btn-bg: var(--primary-color);
	--bs-btn-border-color: var(--primary-color);
	--bs-btn-hover-bg: var(--secondary-color);
	--bs-btn-hover-border-color: var(--secondary-color);
	--bs-btn-focus-shadow-rgb: none;
	--bs-btn-active-bg: var(--secondary-color);
	--bs-btn-active-border-color: var(--secondary-color);
	--bs-btn-active-shadow: none;
	--bs-btn-disabled-bg: var(--primary-color);
	--bs-btn-disabled-border-color: var(--primary-color);
}
.btn-outline-primary {
	--bs-btn-color: var(--primary-color);
	--bs-btn-border-color: var(--primary-color);
	--bs-btn-hover-bg: var(--primary-color);
	--bs-btn-hover-border-color: var(--primary-color);
	--bs-btn-focus-shadow-rgb: none;
	--bs-btn-active-bg: var(--primary-color);
	--bs-btn-active-border-color: var(--primary-color);
	--bs-btn-active-shadow: none;
	--bs-btn-disabled-color: var(--primary-color);
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: var(--primary-color);
	--bs-gradient: none;
}
.btn-light {
	--bs-btn-color: var(--primary-color);
	--bs-btn-bg: #FFFFFF;
	--bs-btn-border-color: #FFFFFF;
	--bs-btn-hover-color: var(--primary-color);
	--bs-btn-hover-bg: #FFFFFF;
	--bs-btn-hover-border-color: #FFFFFF;
	--bs-btn-focus-shadow-rgb: none;
	--bs-btn-active-color: var(--primary-color);
	--bs-btn-active-bg: #FFFFFF;
	--bs-btn-active-border-color: #FFFFFF;
	--bs-btn-active-shadow: none;
	--bs-btn-disabled-color: var(--primary-color);
	--bs-btn-disabled-bg: #FFFFFF;
	--bs-btn-disabled-border-color: #FFFFFF;
}
.btn-outline-light {
	--bs-btn-color: #FFFFFF;
	--bs-btn-border-color: #FFFFFF;
	--bs-btn-hover-color: #000;
	--bs-btn-hover-bg: #FFFFFF;
	--bs-btn-hover-border-color: #FFFFFF;
	--bs-btn-focus-shadow-rgb: 248,249,250;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #FFFFFF;
	--bs-btn-active-border-color: #FFFFFF;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #FFFFFF;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #FFFFFF;
	--bs-gradient: none;
}

/* ============================
# UTILITIES
============================*/
/* =====[SCREEN READER TEXT]===== */
/* Hides text visually while leaving it available to screen readers.
   display:none / visibility:hidden would remove it from both. */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip-path: inset(50%);
	word-wrap: normal !important;
}
/* The skip link is the exception: it becomes visible once tabbed to, so a
   keyboard user can see where they are about to jump. */
.screen-reader-text:focus {
	width: auto;
	height: auto;
	clip-path: none;
	display: block;
	top: 0.5rem;
	left: 0.5rem;
	padding: 0.875rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: normal;
	color: #FFFFFF;
	background-color: var(--primary-color);
	text-decoration: none;
	/* Must clear the sticky header, which sits at z-index 1030. */
	z-index: 100000;
}

/* =====[SECTION]===== */
.section {
	padding-block: clamp(3.75rem, 3.083rem + 2.963vw, 5.75rem);
}

/* =====[CONTENT MEDIA/BLOCK]===== */
.content-media { position: relative; }
.content-media img {
	display: block;
	width: 100%;
}
.content-block { position: relative; }
.content-block h2 {
	font-size: clamp(2rem, 1.583rem + 1.852vw, 3.25rem);
	font-weight: 400;
	line-height: 1.1;
	margin-bottom: clamp(1rem, 0.917rem + 0.37vw, 1.25rem);
}
.content-block p { line-height: 1.64; }
.content-block ul { padding-left: 1rem; }
.content-block ul li:not(:last-child) { margin-bottom: 0.5rem; }
.content-block .button-block { margin-top: 1.75rem; }
.content-block .button-block.has-dual-buttons { 
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}
.content-block.primary-heading h2 { color: var(--primary-color); }
.content-block.has-last-paragraph p:last-child { margin-bottom: 0; }

@media (max-width: 767px) {
	.container { padding-inline: 1.125rem; }
}
@media (max-width: 575px) {
	.content-block .button-block.has-dual-buttons .btn {  width: 100%; }
}

/* =====[GALLERY BLOCK]===== */
.gallery-block {
	background-color: #000000;
	position: relative;
	overflow: hidden;
	margin-bottom: 0;
}
.gallery-block .gallery-block-link {
	display: block;
	text-decoration: none;
	outline: none;
}
.gallery-block img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	display: block;
}
.gallery-block .gallery-more { display: none; }
.gallery-block .gallery-more img {
	display: block;
	width: 100%;
}
.gallery-block .gallery-figcaption {
	color: #FFFFFF;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 32px 24px 24px 24px;
	background: linear-gradient(to top, rgba(0,0,0,.92), rgba(0,0,0,.7) 40%, transparent);
	transition: background .4s ease;
	pointer-events: none;
}
.gallery-block .gallery-figcaption h3 {
	font-size: clamp(1.125rem, 1.083rem + 0.185vw, 1.25rem);
	font-weight: 600;
	line-height: 1.2;
	margin: 0;
}
.gallery-block .gallery-figcaption p {
	margin: 0;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height .4s ease, opacity .4s ease, margin .4s ease;
}
.gallery-block:hover .gallery-figcaption,
.gallery-block:focus .gallery-figcaption {
	background: linear-gradient(to top, rgba(0,0,0,.95), rgba(0,0,0,.8) 60%, rgba(0,0,0,.15));
}
.gallery-block:hover .gallery-figcaption p,
.gallery-block:focus .gallery-figcaption p {
	max-height: 200px;
	opacity: 1;
	margin-top: 12px;
}
.gslide-description { display: none !important; }

@media (max-width: 767px) {
	.gallery-block .gallery-figcaption { padding: 32px 20px 20px 20px; }
}

/* ============================
# HEADER
============================*/
/* =====[TOP HEADER]===== */
.top-header {
   color: #FFFFFF;
   padding: 0.5rem 0;
   background: var(--primary-color);
}
.top-header-left {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 1rem;
}
.top-header-left .description {
	font-size: 0.75rem;
	line-height: 1.4;
	text-transform: uppercase;
}
.top-header-left .description a {
	color: #FFFFFF;
	display: inline-block;
}
.top-header-left .description a:hover {
	color: #FFFFFF;
	text-decoration: underline;
}
.top-header-left .divider { line-height: 1.1; }
.header-social-media {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.header-social-media label {
	font-size: 0.75rem;
	line-height: 1.4;
	text-transform: uppercase;
	display: inline-block;
}
.header-social-media .social-icons {
	display: flex;
	align-items: center;
	gap: 0 1rem;
}
.header-social-media .social-icons a {
	color: #FFFFFF;
	display: inline-block;
	line-height: 1;
}
.header-social-media .social-icons a svg {
	width: 14px;
	height: 14px;
}

/* =====[MAIN HEADER]===== */
.main-header {
	position: relative;
	padding: 0.875rem 0;
}
.main-header .container {
	display: flex;
	align-items: center;
	gap: 16px;
}
.site-branding {
	display: flex;
	align-items: center;
}
.site-branding a { display: block; }
.site-branding .custom-logo {
	display: block;
}
.site-branding .custom-logo img {
	display: block;
	width: 100%;
	max-width: 320px;
	height: auto;
}
.site-branding .site-title,
.site-branding .site-description {
	display: none
}
.main-navigation { flex: 1 }
.menubar {
	display: flex;
	align-items: center;
	gap: 1.75rem;
}
.menubar .btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding-inline: 1.5rem;
}
.menubar .btn-primary svg {
	width: 18px;
	height: 18px;
}
.menubar .gas-safe-block { position: relative; }
.menubar .gas-safe-block img {
	display: block;
	width: 50px;
	border-radius: 4px;
}
.menu {
	list-style: none;
	margin: 0 0 0 auto;
	padding: 0;
	display: flex;
	gap: 0 2.5rem;
	align-items: center;
}
.menu .menu-item { position: relative; }
.menu .menu-item a {
	font-family: var(--font-body);
	font-size: 0.938rem;
	font-weight: 600;
	color: var(--color);
	text-decoration: none;
	text-align: center;
	display: block;
	text-transform: uppercase;
	transition: all .10s ease-in-out;
}
.menu .menu-item > a { padding: 0.75rem 0; }
.menu .menu-item:hover > a,
.menu .menu-item.current-menu-item > a {
	color: var(--primary-color);
}
.menu .menu-item.menu-item-has-children { position: relative; }
.menu .menu-item.menu-item-has-children > a {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}
.menu .menu-item.menu-item-has-children > a::after {
	content: '';
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 1.125rem;
	background-position: center;
	display: inline-block;
	width: 1rem;
	height: 1rem;
	position: relative;
	top: 1px;
	transition: all .18s ease-in-out;
}
.menu .menu-item.menu-item-has-children:hover a::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FF4F13' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E");
}
.menu .menu-item .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0.75rem 0.75rem;
	position: absolute;
	left: 0;
	top: 100%;
	min-width: 220px;
	background: #FFFFFF;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: all .20s ease-in-out;
	z-index: 500;
}
.menu .menu-item.menu-item-has-children:hover>.sub-menu,
.menu .menu-item.menu-item-has-children:focus-within>.sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0px);
}
.menu .menu-item .sub-menu .menu-item:not(:last-child) { margin-bottom: 0.25rem; }
.menu .menu-item .sub-menu .menu-item a {
	text-align: left;
	padding: 0.75rem 0.75rem;
	white-space: nowrap;
}
.menu .menu-item .sub-menu .menu-item a:hover,
.menu .menu-item .sub-menu .menu-item.current-menu-item a {
	color: #FFFFFF;
	background: var(--primary-color);
}
.main-nav-header {
	display: none;
	align-items: center;
	justify-content: end;
	margin-bottom: 0.25rem;
}
.menu-toggle,
.main-nav-header .menu-close {
	color: var(--color);
	background: #FFFFFF;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid #D5D5D5;
	padding: 0.5rem 0.75rem;
	margin-left: auto;
	transition: all .30s ease-in-out;
}
.menu-toggle { display: none; }
.menu-toggle:hover,
.main-nav-header .menu-close:hover {
	color: #FFFFFF;
	background: var(--primary-color);
	border-color: var(--primary-color);
}
.menu-toggle svg,
.main-nav-header .menu-close svg {
	width: 24px;
	height: 24px;
}
.main-nav-footer {
   background: #F5F5F6;
   border: 1px solid #D5D5D5;
   padding: 1rem 1rem;
   border-radius: 0.375rem;
   margin-top: 1.25rem;
   display: none;
}
.main-nav-footer hr {
   border-top-color: #D5D5D5;
   margin-block: 0.75rem;
   opacity: 1;
}
.main-nav-footer .footer-block h5 {
   font-size: 0.875rem;
	font-weight: 500;
	color: var(--primary-color);
	text-transform: uppercase;
   margin-bottom: 0.25rem;
}
.main-nav-footer .footer-block a {
   color: var(--color);
   display: inline-block;
}
.main-nav-footer .footer-block a:hover {
   color: var(--primary-color);
   text-decoration: underline;
}
.main-nav-footer .footer-block address {
	display: block;
	margin-bottom: 0;
}

@media (max-width: 1399px) {
	.site-branding .custom-logo img { max-width: 280px; }
	.menubar { gap: 1rem; }
	.menu { gap: 0 1.75rem; }
}
@media (max-width: 1199px) {
	.main-navigation {
		position: fixed;
		top: 0;
		right: 0;
		padding: 1rem 1rem;
		background: #FFFFFF;
		width: 100%;
		height: 100%;
		max-width: 360px;
		opacity: 0;
		transform: translateX(100%);
		box-shadow: var(--bs-box-shadow);
		transition: all .30s ease-in-out;
		z-index: 1000;
	}
	.main-navigation.show {
		opacity: 1;
		transform: translateX(0);
	}
	.menubar {
		flex-direction: column;
		width: 100%;
		gap: 1.25rem;
	}
	.menubar .btn-primary { width: 100%; }
	.menu {
		width: 100%;
		flex-direction: column;
		margin: 0;
	}
	.menu .menu-item { width: 100%; }
	.menu > .menu-item { border-bottom: 1px solid #D5D5D5; }
	.menu .menu-item a { text-align: left; }
	.menu .menu-item.menu-item-has-children > a { justify-content: space-between; }
	.menu .menu-item .sub-menu {
		border-left: 3px solid var(--primary-color);
		margin: 0 0 1rem 0;
		padding: 0.5rem 0.75rem;
		position: relative;
		top: 0;
		min-width: 220px;
		background: #FFFFFF;
		box-shadow: none;
		border-radius: 0;
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		display: none;
	}
	.menu .menu-item .sub-menu.show { display: block; }
	.menu .menu-item .sub-menu .menu-item:not(:last-child) { margin-bottom: 0.125rem; }
	.menu .menu-item .sub-menu .menu-item a {
		padding: 0.5rem 0;
		border-radius: 0;
	}
	.menu .menu-item .sub-menu .menu-item a:hover, 
	.menu .menu-item .sub-menu .menu-item.current-menu-item a {
		color: var(--color-primary);
		background: var(--color-white);
	}
	.main-nav-header { display: flex; }
	.menu-toggle { display: flex; }
	.main-nav-footer { display: block; }
}
@media (max-width: 767px) {
	.site-branding .custom-logo img { max-width: 200px; }
}

/* ============================
# HOME PAGE
============================*/
/* =====[SECTION HERO]===== */
.section-hero {
	position: relative;
	overflow: hidden;
	z-index: 1;
}
.swiper-pagination.hero-carousel-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	bottom: 20px;
	left: 0;
	width: 100%;
	z-index: 2000;
}
.swiper-pagination.hero-carousel-pagination .swiper-pagination-bullet {
	width: 0.75rem;
	height: 0.75rem;
	flex: 0 0 0.75rem;
	opacity: 0.75;
	background: transparent;
	border: 2px solid #FFFFFF;
}
.swiper-pagination.hero-carousel-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background: #FFFFFF;
	border-color: #FFFFFF;
	opacity: 1;
}
.hero-carousel.swiper { position: relative; }
.hero-carousel.swiper .swiper-slide img {
	display: block;
	width: 100%;
	object-fit: cover;
	object-position: center;
	height: clamp(40rem, 37.231rem + 12.308vw, 52rem);
}
.hero-media {
	height: clamp(40rem, 37.231rem + 12.308vw, 52rem);
	position: relative;
	z-index: 1;
}
.hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	position: relative;
	z-index: 1;
}
.hero-overlay {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	bottom: 0;
	padding-block: clamp(4.375rem, 3.75rem + 2.7778vw, 6.25rem);
	background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%);
	z-index: 100;
}
.hero-overlay h1 {
	font-size: clamp(2rem, 1.333rem + 2.963vw, 4rem);
	font-weight: 600;
	color: #FFFFFF;
	line-height: 1.1;
	margin-bottom: clamp(0.75rem, calc(0.667rem + 0.37vw), 1rem);
}
.hero-overlay p {
	font-size: clamp(1rem, 0.958rem + 0.185vw, 1.125rem);
	color: #FFFFFF;
	margin-bottom: 0;
}
.hero-overlay .button-block {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-top: 2rem;
}

@media (max-width: 767px) {
	.hero-media img { object-position: bottom; }
}

/* =====[SECTION SERVICE GRID]===== */
.section-service-grid { background: #F2F8FF; }
.section-service-grid .row-caption { margin-bottom: 40px; }
.section-service-grid .content-block h2 { margin-bottom: 0.375rem;; }
.section-service-grid .content-block p { margin-bottom: 0; }
.service-card-sm {
	background: transparent;
	border-radius: 0;
	border: 0;
}
.service-card-sm .card-media img {
	display: block;
	width: 100%;
}
.service-card-sm .card-body { padding-inline: 0; }
.service-card-sm .card-body h4 {
	font-size: clamp(1.375rem, 1.333rem + 0.185vw, 1.5rem);
	font-weight: 600;
	margin-bottom: 0.8rem;
}
.service-card-sm .card-body p {
	color: var(--color);
	margin-bottom: 0;
}
.service-card-sm .card-footer {
	border: 0;
	background: transparent;
	padding: 0;
}
.service-card-sm .card-link {
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 500;
	color: var(--primary-color);
	text-transform: uppercase;
	display: inline-block;
	padding-right: 26px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23BF1E23' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='lucide lucide-arrow-right-icon lucide-arrow-right'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center right;
	background-size: 22px;
	transition: all .30s ease-in-out;
}
.service-card-sm .card-link:hover {
	color: var(--secondary-color);
	padding-right: 30px;
}

@media (max-width: 991px) {
	.section-service-grid .row-caption { margin-bottom: 34px; }
	.section-service-grid .button-block { margin-top: 32px; }
}

/* =====[SECTION WORK GRID]===== */
.section-work-grid .row-caption { margin-bottom: 40px; }
.section-work-grid .content-block h2 { margin-bottom: 0.375rem;; }
.section-work-grid .content-block p { margin-bottom: 0; }
.section-work-grid .gallery-block img {
	height: 380px;
	aspect-ratio: unset;
}

@media (max-width: 991px) {
	.section-work-grid .row-caption { margin-bottom: 34px; }
	.section-work-grid .button-block { margin-top: 32px; }
}

/* =====[SECTION TESTIMONIALS]===== */
.section-testimonials { border-top: 1px solid #D2D2D2; }

/* =====[SECTION EMERG]===== */
.section-emerg { background: var(--primary-color); }
.section-emerg .col-media { position: relative; }
.section-emerg .col-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.section-emerg .content-block {
	color: #FFFFFF;
	width: 100%;
	max-width: 810px;
	padding-block: clamp(3.75rem, 3.083rem + 2.963vw, 5.75rem);
	padding-left: 60px;
	padding-right: 12px;
}
.section-emerg .content-block h3 {
	font-size: clamp(1.625rem, 1.417rem + 0.926vw, 2.25rem);
	font-weight: 400;
	line-height: 1.1;
	margin-top: 36px;
	margin-bottom: 16px;
}
.section-emerg .content-block ul { padding-left: 1rem; }
.section-emerg .content-block .button-block { margin-top: 3rem; }

@media (min-width: 1200px) {
	.section-emerg .col-media img {
		position: absolute;
		inset: 0;
	}
}
@media (max-width: 1399px) {
	.section-emerg .content-block {
		max-width: 680px;
		padding-left: 50px;
	}
}
@media (max-width: 1199px) {
	.section-emerg .content-block {
		max-width: 960px;
		padding-inline: 12px;
		margin-inline: auto;
	}
	.section-emerg .col-media img { aspect-ratio: 16/9; }
}
@media (max-width: 991px) {
	.section-emerg .content-block { max-width: 720px; }
}
@media (max-width: 767px) {
	.section-emerg .content-block { max-width: 528px; }
}
@media (max-width: 575px) {
	.section-emerg .content-block {
		max-width: 100%;
		padding-inline: 18px;
	}
}

/* =====[SECTION MAP]===== */
.section-map { position: relative; }
.map-frame {
	position: relative;
	height: 400px;
}
.map-frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	inset: 0;
	z-index: 10;
}

@media (max-width: 767px) {
	.map-frame {
		height: 360px;
	}
}

/* =====[SECTION CERTIFICATE]===== */
.section-certificate { padding-block: 4rem; }
.section-certificate .content-block { margin-bottom: 2rem; }
.section-certificate .content-block h3 {
   font-size: 1.5rem;
   font-weight: 600;
   color: var(--primary-color);
   text-transform: uppercase;
   text-align: center;
}
.certificate-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 2rem;
}
.certificate-card {
   border-radius: 0;
   border: 0;
   border-bottom: 4px solid var(--primary-color);
}
.certificate-card .card-body {
   background: var(--primary-light-color);
   text-align: center;
   padding-block: 1.5rem;
}
.certificate-card .card-body h4 {
   font-size: 1.125rem;
   margin: 1rem 0 0 0;
}
.certificate-card .card-body p { margin: 0.5rem 0 0 0; }
.certificate-card .card-body .card-media img {
   width: 100%;
   height: 82px;
   display: block;
   object-fit: contain;
   margin: 0 auto;
}

@media (max-width: 991px) {
   .section-certificate { padding-block: 3rem; }
   .section-certificate .content-block h3 { font-size: 1.25rem; }
   .certificate-grid { gap: 1.25rem; }
   .certificate-card .card-body h4 { font-size: 1rem; }
}
@media (max-width: 767px) {
   .certificate-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 1.25rem;
   }
   .certificate-card .card-body { padding-block: 1rem; }
   .certificate-card .card-body .card-media img { height: 72px; }
}

/* ============================
# FOOTER
============================*/
.site-footer {
	color: #FFFFFF;
	background-color: #001D37;
}
.footer-top-block { padding-block: 5rem; }
.footer-brand-block { position: relative; }
.footer-brand-block img {
	display: block;
	width: 100%;
	max-width: 108px;
}
.footer-brand-block p { margin-block: 1.5rem; }
.footer-brand-block .footer-social-media {
	display: flex;
	gap: 1rem;
}
.footer-brand-block .footer-social-media a {
	width: 36px;
	height: 36px;
	color: #FFFFFF;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all .30s ease-in-out;
}
.footer-brand-block .footer-social-media a svg {
	width: 18px;
	height: 18px;
}
.footer-brand-block .footer-social-media a:hover {
	color: #FFFFFF;
	background: var(--primary-color);
}
.footer-quick-link-block { position: relative; }
.footer-quick-link-block h4 {
	font-weight: 700;
	font-size: 1rem;
	color: #FFFFFF;
	letter-spacing: 3.6px;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
}
.footer-quick-link-block ul {
	margin-bottom: 0;
	padding-left: 0.9rem;
}
.footer-quick-link-block ul li:not(:last-child) { margin-bottom: 0.5rem; }
.footer-quick-link-block ul li a {
	color: #FFFFFF;
	display: inline-block;
}
.footer-quick-link-block ul li:hover a {
	color: #FFFFFF;
	text-decoration: underline;
}
.footer-contact-block { position: relative; }
.footer-contact-block h4 {
	font-weight: 700;
	font-size: 1rem;
	color: #FFFFFF;
	letter-spacing: 3.6px;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
}
.footer-contact-block ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.footer-contact-block ul li {
	position: relative;
	padding-left: 2rem;
}
.footer-contact-block ul li:not(:last-child) { margin-bottom: 1rem; }
.footer-contact-block ul li a {
	color: #FFFFFF;
	display: inline-block;
}
.footer-contact-block ul li svg {
	width: 18px;
	height: 18px;
	display: inline-block;
	position: absolute;
	top: 3px;
	left: 0;
}
.footer-contact-block ul li address {
	display: block;
	margin: 0;
}
.footer-contact-block .footer-safe-badge { margin-top: 2rem; }
.footer-contact-block .footer-safe-badge img {
	width: 55px;
	display: block;
	border-radius: 4px;
}
.footer-bottom-block {
	padding-block: 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-copy-note,
.footer-top-link {
	font-size: 0.875rem;
	font-weight: 400;
	color: #FFFFFF;
	line-height: 1.3;
	letter-spacing: 3px;
	text-transform: uppercase;
}
.footer-top-link { text-align: right; }
.footer-top-link a {
	color: #FFFFFF;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.footer-top-link a:hover {
	color: #FFFFFF;
	text-decoration: underline;
}
.footer-top-link svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 1199px) {
	.footer-top-block { padding-block: 3.5rem; }
	.footer-bottom-block { padding-block: 1.5rem; }
}
@media (max-width: 991px) {
	.footer-quick-link-block { margin-block: 3rem; }
	.footer-copy-note, 
	.footer-top-link {
		text-align: center;
	}
	.footer-top-link { margin-top: 0.75rem; }
}
@media (max-width: 767px) {
	.footer-top-block { padding-block: 2.5rem; }
}
@media (max-width: 575px) {
	.footer-top-block .row .col-lg-3.col-sm-6 .footer-quick-link-block { margin-top: 0; }
	.footer-quick-link-block { margin-block: 2.5rem; }
	.footer-quick-link-block h4 { margin-bottom: 1.15rem; }
	.footer-contact-block h4 { margin-bottom: 1.15rem; }
	.footer-contact-block .footer-safe-badge { margin-top: 1.5rem; }
}

/* ============================
# INNER PAGES
============================*/

/* =====[PAGE BANNER]===== */
.page-banner { position: relative; }
.page-banner-block {
	position: relative;
	overflow: hidden;
}
.page-banner-media {
	position: relative;
	height: clamp(240px, calc(10.9375vw + 205px), 380px);
}
.page-banner-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.page-banner-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: end;
	padding: clamp(30px, 2.5vw, 40px) 0;
	background: linear-gradient(to bottom, rgba(0,0,0,0.1) 40%,rgba(0,0,0,1) 100%);
	z-index: 100;
}
.page-banner-overlay h1,
.page-banner-overlay h2 {
	font-size: clamp(2.5rem, 2rem + 2.222vw, 4rem);
	font-weight: 600;
	color: #FFFFFF;
	line-height: 1.1;
	margin-bottom: 0.5rem;
}
.page-banner-overlay p {
	font-size: clamp(1rem, 0.958rem + 0.185vw, 1.125rem);
	color: #FFFFFF;
	margin-bottom: 0;
}

/* =====[SECTION DUAL]===== */
.section-dual .content-media { 
	position: relative; 
	overflow: hidden;
}

@media (max-width: 991px) {
	.section-dual .content-media { margin-bottom: 2.25rem; }
}
@media (max-width: 767px) {
	.section-dual .content-media { margin-bottom: 1.75rem; }
}

/* =====[SECTION BLOCKQUOTE]===== */
.section-blockquote {
	position: relative;
	background-color: #000000;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	padding-top: clamp(15rem, 10.673rem + 19.231vw, 33.75rem);
	padding-bottom: clamp(1.625rem, 1.423rem + 0.897vw, 2.5rem);
}
.section-blockquote::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.2);
}
.blockquote-lg {
	position: relative;
	z-index: 10;
}
.blockquote-lg img {
	display: block;
	width: clamp(2.75rem, 2.583rem + 0.741vw, 3.25rem);
	margin-bottom: clamp(1.25rem, 1.167rem + 0.37vw, 1.5rem);
}
.blockquote-lg p {
	font-size: clamp(1.25rem, 1.125rem + 0.556vw, 1.625rem);
	color: #FFFFFF;
	line-height: 1.35;
}

/* =====[SECTION FAQ]===== */
.section-faq .content-block { margin-bottom: clamp(3rem, 2.667rem + 1.481vw, 4rem); }
.accordion.accordion-flush .accordion-button {
	font-size: clamp(1.125rem, 1.083rem + 0.185vw, 1.25rem);
	font-weight: 500;
	color: var(--color);
	padding: var(--bs-accordion-btn-padding-y) 0;
	background-color: transparent;
}
.accordion.accordion-flush .accordion-button:focus { box-shadow: none; }
.accordion.accordion-flush .accordion-button:not(.collapsed) {
	color: var(--color);
	background-color: transparent;
	box-shadow: none;
}
.accordion.accordion-flush .accordion-button::after {
	width: clamp(1.5rem, 1.083rem + 0.741vw, 1.75rem);
	height: clamp(1.5rem, 1.083rem + 0.741vw, 1.75rem);
	background-color: var(--primary-color);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='lucide lucide-plus-icon lucide-plus'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E");
	background-position: center;
	background-size: clamp(1.25rem, 1.167rem + 0.37vw, 1.5rem);
	transition: none;
}
.accordion.accordion-flush .accordion-button:not(.collapsed)::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='lucide lucide-minus-icon lucide-minus'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
}
.accordion.accordion-flush .accordion-body {
	padding: var(--bs-accordion-body-padding-y) 0;
	padding-right: 1.75rem;
}
.accordion.accordion-flush .accordion-body p:last-child { margin-bottom: 0; }
.accordion.accordion-flush .accordion-item:first-child .accordion-button { padding-top: 0; }
.accordion.accordion-flush .accordion-item:last-child .accordion-button { padding-bottom: 0; }

/* =====[SECTION CONTACT MAIN]===== */
.contact-details {
	list-style: none;
	margin: clamp(2rem, 1.75rem + 1.111vw, 2.75rem) 0 clamp(2rem, 1.833rem + 0.741vw, 2.5rem) 0;
	padding: 0;
}
.contact-details li {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 0.75rem;
	margin-bottom: 1rem;
}
.contact-details li a {
	font-weight: 700;
	color: var(--color);
	display: inline-block;
}
.contact-details li address {
	font-weight: 700;
	display: block;
	margin-bottom: 0;
	line-height: 1.2;
}
.contact-details li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	color: #FFFFFF;
	background-color: var(--primary-color);
}
.contact-details li span svg {
	width: 18px;
	height: 18px;
}
.contact-details li.ot { align-items: start; }
.contact-details li.ot h5 {
   font-size: 16px;
   font-weight: 700;
}
.contact-details li.ot p { margin-bottom: 0; }

@media (min-width: 1200px) {
	.section-contact-main .col-left { padding-right: 1.5rem; }
	.section-contact-main .col-right {padding-left: 1.5rem; }
}

/* =====[GALLERY FILTER]===== */
.gallery-filter {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1rem clamp(1.5rem, 0.833rem + 2.963vw, 3.5rem);
	margin-bottom: clamp(2.5rem, 2rem + 2.222vw, 4rem);
}
.gallery-filter .btn.gallery-filter-link {
	font-size: 1rem!important;
	font-weight: 500;
	color: #7D7D7D;
	padding: 0.25rem 0.1rem;
	text-transform: uppercase;
	border: 0;
	border-bottom: 0.125rem solid transparent;
}
.gallery-filter .btn.gallery-filter-link:hover {
	color: var(--primary-color);
}
.gallery-filter .btn.gallery-filter-link.is-active {
	color: var(--primary-color);
	border-bottom-color: var(--primary-color);
}
.gallery-load-more-block { margin-top: clamp(2.5rem, 2rem + 2.222vw, 4rem); }


/* =====[WP FORMS]===== */
.wpforms-container .wpforms-field,
.wp-core-ui div.wpforms-container .wpforms-field {
   padding: 8px 0!important;
}
div.wpforms-container-full input[type="date"],
div.wpforms-container-full input[type="datetime"],
div.wpforms-container-full input[type="datetime-local"],
div.wpforms-container-full input[type="email"],
div.wpforms-container-full input[type="month"],
div.wpforms-container-full input[type="number"],
div.wpforms-container-full input[type="password"],
div.wpforms-container-full input[type="range"],
div.wpforms-container-full input[type="search"],
div.wpforms-container-full input[type="tel"],
div.wpforms-container-full input[type="text"],
div.wpforms-container-full input[type="time"],
div.wpforms-container-full input[type="url"],
div.wpforms-container-full input[type="week"],
div.wpforms-container-full select,
div.wpforms-container-full textarea,
.wp-core-ui div.wpforms-container-full input[type="date"],
.wp-core-ui div.wpforms-container-full input[type="datetime"],
.wp-core-ui div.wpforms-container-full input[type="datetime-local"],
.wp-core-ui div.wpforms-container-full input[type="email"],
.wp-core-ui div.wpforms-container-full input[type="month"],
.wp-core-ui div.wpforms-container-full input[type="number"],
.wp-core-ui div.wpforms-container-full input[type="password"],
.wp-core-ui div.wpforms-container-full input[type="range"],
.wp-core-ui div.wpforms-container-full input[type="search"],
.wp-core-ui div.wpforms-container-full input[type="tel"],
.wp-core-ui div.wpforms-container-full input[type="text"],
.wp-core-ui div.wpforms-container-full input[type="time"],
.wp-core-ui div.wpforms-container-full input[type="url"],
.wp-core-ui div.wpforms-container-full input[type="week"],
.wp-core-ui div.wpforms-container-full select,
.wp-core-ui div.wpforms-container-full textarea {
	color: var(--color)!important;
	font-size: 1rem!important;
}
div.wpforms-container-full input,
div.wpforms-container-full select,
.wp-core-ui div.wpforms-container-full input,
.wp-core-ui div.wpforms-container-full select {
	height: 50px!important;
}
div.wpforms-container-full input[type="date"]:focus:invalid,
div.wpforms-container-full input[type="datetime"]:focus:invalid,
div.wpforms-container-full input[type="datetime-local"]:focus:invalid,
div.wpforms-container-full input[type="email"]:focus:invalid,
div.wpforms-container-full input[type="month"]:focus:invalid,
div.wpforms-container-full input[type="number"]:focus:invalid,
div.wpforms-container-full input[type="password"]:focus:invalid,
div.wpforms-container-full input[type="range"]:focus:invalid,
div.wpforms-container-full input[type="search"]:focus:invalid,
div.wpforms-container-full input[type="tel"]:focus:invalid,
div.wpforms-container-full input[type="text"]:focus:invalid,
div.wpforms-container-full input[type="time"]:focus:invalid,
div.wpforms-container-full input[type="url"]:focus:invalid,
div.wpforms-container-full input[type="week"]:focus:invalid,
div.wpforms-container-full select:focus:invalid,
div.wpforms-container-full textarea:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="date"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="datetime"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="datetime-local"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="email"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="month"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="number"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="password"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="range"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="search"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="tel"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="text"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="time"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="url"]:focus:invalid,
.wp-core-ui div.wpforms-container-full input[type="week"]:focus:invalid,
.wp-core-ui div.wpforms-container-full select:focus:invalid,
.wp-core-ui div.wpforms-container-full textarea:focus:invalid {
   border-color: var(--primary-color);
   box-shadow: 0 0 0 1px var(--primary-color), 0px 1px 2px rgba(0, 0, 0, 0.15);
   color: var(--color);
}
div.wpforms-container-full .wpforms-field-label-inline,
.wp-core-ui div.wpforms-container-full .wpforms-field-label-inline {
   color: var(--color);
}
div.wpforms-container-full .wpforms-field-label,
.wp-core-ui div.wpforms-container-full .wpforms-field-label {
   font-weight: 500;
   color: var(--color);
}
div.wpforms-container-full input[type="checkbox"], 
div.wpforms-container-full input[type="radio"] {
	height: calc( 1rem - 2px + calc( var( --wpforms-field-border-size, 1px ) * 2 ))!important;
}
div.wpforms-container-full input[type="checkbox"]:checked::before,
div.wpforms-container-full input[type="radio"]:checked::before {
   border-color: var(--primary-color);
   box-shadow: 0 0 0 1px var(--primary-color), 0px 1px 2px rgba(0, 0, 0, 0.15);
}
div.wpforms-container-full input[type="submit"],
div.wpforms-container-full button[type="submit"],
div.wpforms-container-full .wpforms-page-button,
.wp-core-ui div.wpforms-container-full input[type="submit"],
.wp-core-ui div.wpforms-container-full button[type="submit"],
.wp-core-ui div.wpforms-container-full .wpforms-page-button {
	height: 50px!important;
	width: 100%;
	background-color: var(--primary-color);
	border-radius: 0;
	border: 1px solid var(--primary-color);
	color: #FFFFFF;
	padding: 0 var(--wpforms-button-size-padding-h);
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 1rem;
	text-transform: uppercase;
}
div.wpforms-container-full input[type="submit"]:not(:hover):not(:active),
div.wpforms-container-full button[type="submit"]:not(:hover):not(:active),
div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active),
.wp-core-ui div.wpforms-container-full input[type="submit"]:not(:hover):not(:active),
.wp-core-ui div.wpforms-container-full button[type="submit"]:not(:hover):not(:active),
.wp-core-ui div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active) {
	background-color: var(--primary-color);
	color: #FFFFFF;
}
div.wpforms-container-full input[type="submit"]:hover,
div.wpforms-container-full input[type="submit"]:active,
div.wpforms-container-full button[type="submit"]:hover,
div.wpforms-container-full button[type="submit"]:active,
div.wpforms-container-full .wpforms-page-button:hover,
div.wpforms-container-full .wpforms-page-button:active,
.wp-core-ui div.wpforms-container-full input[type="submit"]:hover,
.wp-core-ui div.wpforms-container-full input[type="submit"]:active,
.wp-core-ui div.wpforms-container-full button[type="submit"]:hover,
.wp-core-ui div.wpforms-container-full button[type="submit"]:active,
.wp-core-ui div.wpforms-container-full .wpforms-page-button:hover,
.wp-core-ui div.wpforms-container-full .wpforms-page-button:active {
	background: var(--secondary-color);
	border-color: var(--secondary-color);
}


/* ============================
# 404 PAGE
============================*/
.section-error-404 {
	background-color: var(--primary-light-color);
}
.section-error-404 .error-404-code {
	display: block;
	font-family: var(--font-heading);
	font-size: clamp(6rem, 3.333rem + 11.852vw, 14rem);
	font-weight: 700;
	line-height: 0.85;
	letter-spacing: -0.03em;
	color: var(--primary-color);
	margin-bottom: clamp(1rem, 0.667rem + 1.481vw, 2rem);
}
/* .content-block styles h2, but this page's heading is the h1. */
.section-error-404 .content-block h1 {
	font-size: clamp(2rem, 1.583rem + 1.852vw, 3.25rem);
	font-weight: 400;
	line-height: 1.1;
	color: var(--primary-color);
	margin-bottom: clamp(1rem, 0.917rem + 0.37vw, 1.25rem);
}
.section-error-404 .content-block p {
	max-width: 34rem;
	margin-inline: auto;
}

/* =====[404]===== */
.error-404-links {
	margin-top: clamp(2.5rem, 2rem + 2.222vw, 4rem);
	padding-top: clamp(2rem, 1.667rem + 1.481vw, 3rem);
	border-top: 1px solid rgba(0, 87, 163, .15);
}
.error-404-links h2 {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color);
	margin-bottom: 1rem;
}
.error-404-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 2rem;
}
.error-404-menu a {
	font-size: 0.9375rem;
	font-weight: 600;
	text-transform: uppercase;
	color: var(--color);
	transition: color .2s ease;
}
.error-404-menu a:hover,
.error-404-menu .current-menu-item > a {
	color: var(--primary-color);
}

@media (max-width: 575px) {
	.section-error-404 .button-block.has-dual-buttons .btn { width: 100%; }
}

/* ============================
# MEDIA QUERIES
============================*/
@media (max-width: 1399px) {}
@media (max-width: 1199px) {}
@media (max-width: 991px) {}
@media (max-width: 767px) {}

@media (min-width: 768px) {}
@media (min-width: 992px) {}
@media (min-width: 1200px) {}
@media (min-width: 1400px) {}