/*!
Theme Name: Placc
Theme URI: https://www.wado.sk/
Author: wado
Author URI: https://www.wado.sk/
Description: Placc Custom Theme
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: placc
Tags: custom-background, custom-logo, custom-menu, featured-images

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Placc is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments
# Media Queries

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 32px;
	margin: 10px 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 16px;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 16px;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -4px;
}

sup {
	top: -8px;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
	max-width: 100%;
	height: auto;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
	appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 6px 12px 10px;
}

label {
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 10px;
}
label span {
	color: var(--tertiary-color)
}
.form-control,
.form-select {
	border-radius: 0;
	border: 1px solid #E1E1E1;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	--bs-form-check-bg: var(--bs-body-bg);
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	margin-top: 8px;
	vertical-align: top;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-color: var(--bs-form-check-bg);
	background-image: var(--bs-form-check-bg-image);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	border: var(--bs-border-width) solid var(--bs-border-color);
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

[type="radio"] {
	border-radius: 50%;
}
[type="radio"]:checked {
	background-color: var(--tertiary-color);
	border-color: var(--tertiary-color);
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}
[type="checkbox"]:checked {
	background-color: var(--tertiary-color);
	border-color: var(--tertiary-color);
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* General Styles */
:root {
	--primary-color: #EA5B0C;
	--secondary-color: #858585;
	--tertiary-color: #B0B0B0;
	--text-color: #000; 
	--color-white: #fff;
}

/* Typography
--------------------------------------------- */
@font-face {
    font-family: 'DIN Next LT Pro';
    src: url('assets/fonts/DINNEXTLTPRO-LIGHT.OTF') format('opentype');
    font-weight: 300;
    font-style: normal;
}
@font-face {
    font-family: 'DIN Next LT Pro';
    src: url('assets/fonts/DINNEXTLTPRO-REGULAR.OTF') format('opentype');
    font-weight: 400;
    font-style: normal;
}
@font-face {
    font-family: 'DIN Next LT Pro';
    src: url('assets/fonts/DINNEXTLTPRO-MEDIUM.OTF') format('opentype');
    font-weight: 500;
    font-style: normal;
}
@font-face {
    font-family: 'DIN Next LT Pro';
    src: url('assets/fonts/DINNEXTLTPRO-BOLD.OTF') format('opentype');
    font-weight: 700;
    font-style: normal;
}
@font-face {
    font-family: 'DIN Next LT Pro';
    src: url('assets/fonts/DINNEXTLTPRO-CONDENSED.OTF') format('opentype');
    font-weight: 400;
    font-stretch: condensed;
    font-style: normal;
}

body {
	color: var(--text-color);
	font-family: "DIN Next LT Pro", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "DIN Next LT Pro", sans-serif;
	clear: both;
	font-weight: 700;
}
.section-title {
	font-size: 44px;
	font-weight: 700;
	color: var(--primary-color);
	margin-bottom: 48px;
}

p {
	line-height: 1.8;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 24px;
}

/* Links
--------------------------------------------- */
.btn {
	padding: 22px 34px;
	border-radius: 0;
	font-weight: 500;
	min-width: 220px;
	text-align: center;
	font-size: 22px;
	transition: all 0.3s ease;
}

.btn-primary {
	background-color: var(--primary-color);
	border-color: var(--primary-color);
	color: var(--color-white);
}

.btn-primary:hover {
	background-color: var(--tertiary-color);
	border-color: var(--tertiary-color);
}

.btn-secondary {
	background-color: transparent;
	border: 1px solid var(--color-white);
	color: var(--color-white);
}

.btn-secondary:hover {
	background-color: var(--primary-color);
	color: var(--light-text);
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/* Header Styles */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	width: 100%;
	background-color: var(--text-color);
	padding: 0;
	color: var(--color-white);
	font-size: 22px;
	font-weight: 400;
	text-decoration: none;
	transition: all 0.3s ease;
}
.navbar-brand {
	padding: 0;
}
.navbar-brand img {
	max-height: 80px;
}
.navbar-toggler {
	color: var(--color-white);
}
.menu-wrapper {
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	width: 212px;
	background-color: var(--text-color);
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
	z-index: 250;
}
.menu-wrapper .logo-wrapper {
	position: relative;
	height: 178px;
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	align-items: center;
	width: 100%;
	background-color: var(--primary-color);
}
.menu-wrapper .menu-list-wrapper {
	padding-bottom: 12px;
	height: -webkit-calc(71.42857143%);
	height: calc(71.42857143%);
}
.menu-wrapper .menu-list-wrapper .wrapper-menu-list {
	height: 100%;
	display: flex;
	justify-content: space-around;
	flex-direction: column;
	align-items: center;
	padding-left: 0;
}
.menu-wrapper .menu-list-wrapper .wrapper-menu-list li {
	width: 100%;
	border-bottom: 1px solid #2A2A2A;
	height: -webkit-calc(100% / 5);
	height: calc(100% / 5);
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: auto;
}
.wpml-ls-legacy-list-horizontal a {
	font-size: 22px;
	font-weight: 400;
	color: var(--secondary-color);
	text-decoration: none;
	transition: all 0.3s ease;
}
.wpml-ls-legacy-list-horizontal .wpml-ls-item.wpml-ls-current-language a {
	color: var(--color-white);
}
.menu-wrapper .menu-lang-wrapper {
	position: absolute;
	bottom: 10px;
	left: 0;
	right: 0;
	text-align: center;
	color: var(--color-white);
}
.btn-close {
	background-image: unset;
	color: var(--color-white);
	opacity: 1;
}
.mobile-menu li {
	width: 100%;
	border-bottom: 1px solid #2A2A2A;
	height: -webkit-calc(100% / 5);
	height: calc(100% / 5);
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: auto;
}
.mobile-canvas {
	background-color: var(--text-color);
}
.mobile-canvas .offcanvas-header {
	padding-top: 0;
	padding-left: 0;
}
.mobile-canvas .offcanvas-header img {
	max-height: 80px;
}
.mobile-canvas .menu-lang-wrapper {
	text-align: center;
}
.hero-section video {
	position: absolute;
	right: 0;
	bottom: 0;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	background-size: cover;
	overflow: hidden;
}
.bistro-icon {
	max-height: 28px;
}
.absolute-logo {
	position: absolute;
	left: 87px;
}
.home-navbar {
	position: absolute;
	width: 100%;
	z-index: 100;
	background-color: transparent;
	padding: 45px 0;
}
.navbar {
	padding: 21px 0;
}
.nav-link {
	color: var(--color-white);
	font-size: 22px;
	font-weight: 400;
	position: relative;
	padding: 0 15px;
	transition: all 0.3s ease;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	text-decoration: none;
	transition: all 0.3s ease;
	
}
.nav-link:hover {
	background-color: var(--primary-color);
}
.navbar-expand-lg .navbar-nav .nav-link {
	padding-right: 15px;
	padding-left: 15px;
}
.navbar-nav .nav-link.active,
.navbar-nav .nav-link.show {
	font-weight: 700;
}
.navbar-nav .nav-link:after {
	content: '';
	position: absolute;
	width: 47px;
	height: 1px;
	background-color: transparent;
	bottom: -10px;
	left: 50%;
	transform: translate(-50%, 0);
	transition: all 0.3s ease;
}
.navbar-nav .nav-link.active:after,
.navbar-nav .nav-link.show:after,
.navbar-nav .nav-link:hover:after {
	background-color: var(--tertiary-color);
}

/* Hero Section */
.home .site {
	position: relative;
	overflow: hidden;
}
.hero-section {
	padding: 187px 0 202px;
	position: relative;
	min-height: 100vh;
}
.hero-content {
	position: relative;
	z-index: 1;
	color: var(--color-white);
	font-size: 24px;
}
.hero-content p {
	margin-bottom: 88px;
}
.hero-title {
	font-size: 108px;
	font-weight: 700;
	margin-bottom: 50px;
}

/* Services Section */
.services-section {
	padding: 100px 0;
}
.service-item {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin-bottom: 15px;
	text-decoration: none;
	transition: all 0.3s ease;
}
.service-icon {
	width: 124px;
	height: 124px;
	transition: all 0.3s ease;
}
.service-icon img {
	max-width: 124px;
	max-height: 124px;
}
.service-title {
	font-size: 22px;
	font-weight: 500;
	margin-top: 20px;
	color: var(--primary-color);
}
.service-item:hover .service-icon {
	background-color: var(--secondary-color);
}

/* About Section */
.about-section {
	padding: 140px 0;
}
.about-section .section-title {
	margin-bottom: 25px;
}
.about-features {
	list-style: none;
	padding: 0;
	margin: 0 0 60px;
}
.about-features li {
	padding-left: 30px;
	position: relative;
	margin-bottom: 10px;
	font-weight: 400;
}
.about-features li::before {
	font-family: "Font Awesome 6 Pro";
	content: '\f04b';
	position: absolute;
	left: 0;
	color: var(--tertiary-color);
	font-weight: bold;
}
.about-text {
	font-size: 22px;
	font-weight: 300;
	margin-bottom: 36px;
	color: var(--text-color);
}
.about-image {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-around;
}
.about-image img {
	max-height: 100%;
	object-fit: cover;
}
.good-luck-image {
	position: absolute;
	top: 420px;
	right: 85px;
	max-width: 25%;
}
.italian-image {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-around;
}
.italian-image-items {
	display: flex;
	height: 100%;
	flex-flow: column nowrap;
	align-self: flex-start;
	justify-content: space-around;
}
.italian-image-items img {
	max-height: 100%;
	object-fit: cover;
}
.italian-image img {
	max-height: 100%;
	object-fit: cover;
}

/* Quote Section */
.quote-section {
	padding: 129px 0;
	background-image: url('./img/banner.jpg');
	background-color: var(--secondary-color);
	background-repeat: no-repeat;
	background-position: center right;
	background-size: 50% auto;
}
.quote-section .section-title {
	margin-bottom: 34px;
}
.quote-section .section-title i {
	font-size: 40px;
	color: var(--tertiary-color);
}
.quote-text {
	margin-bottom: 30px;
}

/* References Section */
.references-section {
	padding: 100px 0 86px;
	background-color: var(--primary-color);
	background-image: url('./img/bg.png');
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100% auto;
}
.references-section .section-subtitle {
	font-size: 33px;
	color: var(--tertiary-color);
}
.references-section .section-title {
	color: var(--bs-white);
	margin-bottom: 60px;
}
.reference-item {
	position: relative;
	overflow: hidden;
	display: block;
	margin-bottom: 66px;
	transition: all 0.3s ease;
}
.reference-item:hover {
	transform: translateY(-10px);
	box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}
.reference-overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 134px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-direction: column;
	color: var(--bs-white);
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, var(--tertiary-color) 100%, var(--tertiary-color));
}
.references-section .btn-primary {
	color: var(--bs-white);
}

.logos-section {
	background-color: var(--secondary-color);
	padding: 116px 0;
}
.logo-item {
	display: inline-block;
}
.logo-item img {
	opacity: 0.3;
}

/* Products Section */
.products-section {
	padding: 134px 0;
}
.products-section .products-tab {
	margin-bottom: 80px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.products-section .section-title {
	color: var(--primary-color);
	font-size: 44px;
	font-weight: 700;
	margin-bottom: 0;
}
.products-tab-wrapper {
	overflow: auto;
	border: 1px solid var(--tertiary-color);
	padding: 0 24px;
}
.products-section .products-tab ul {
	display: flex;
	flex-direction: row;
	width: max-content;
}
.products-section .products-tab ul .nav-link {
	padding: 25px 24px 19px;
	border: none;
	color: #858585;
	font-size: 22px;
	font-weight: 400;
	transition: all 0.3s ease;
}
.products-section .products-tab ul .nav-link:hover {
	background-color: transparent;
	color: var(--text-color);
}
.products-section .products-tab ul .nav-link.active {
	color: var(--text-color);
	font-weight: 700;
}
.products-section .products-tab ul .nav-link.active::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 6px;
	background-color: var(--primary-color);
}
.reservation-content {
	font-size: 22px;
	font-weight: 300;
	color: var(--text-color);
}
.reservation-badge {
	margin: 85px 0;
}
.reservation-form {
	position: relative;
	background-color: #EDEDED;
	padding: 94px 113px;
	width: 100%;
	height: 100%;
}
.reservation-form::after {
	content: '';
	position: absolute;
	top: 0;
	right: -100vw;
	width: 100vw;
	height: 100%;
	background-color: #EDEDED;
}
.reservation-form input,
.reservation-form select {
	height: 70px;
	border: 1px solid #D9D9D9;
	border-radius: 0;
	padding: 20px 24px;
	font-size: 22px;
	font-weight: 300;
	color: var(--text-color);
	background-color: #fff;
	transition: all 0.3s ease;
}
/* Reservation Form Icons */
.input-icon-wrapper {
	position: relative;
}

.input-icon-wrapper input,
.input-icon-wrapper select {
	padding-left: 56px;
	/* Space for the icon */
}

.input-icon-wrapper::before {
	font-family: "Font Awesome 6 Pro";
	font-weight: 700;
	/* Regular style */
	position: absolute;
	top: 50%;
	left: 24px;
	transform: translateY(-50%);
	color: #D9D9D9;
	font-size: 22px;
	z-index: 2;
	pointer-events: none;
	/* Let clicks pass through to input */
}

/* Specific Icons */
.icon-user::before {
	content: "\f007";
	/* fa-user */
}

.icon-email::before {
	content: "\f0e0";
	/* fa-envelope */
}

.icon-people::before {
	content: "\f0c0";
	/* fa-users */
}

.icon-date::before {
	content: "\f133";
	/* fa-calendar */
}

.icon-time::before {
	content: "\f017";
	/* fa-clock */
}
.icon-note::before {
	content: "\f249";
	/* fa-comment-lines / fa-rectangle-list */
	top: 24px;
	transform: none;
}

.input-icon-wrapper textarea {
	padding-left: 56px;
}
.contact {
	position: relative;
	padding: 170px 0 95px;
	background-color: var(--text-color);
	color: var(--bs-white);
}
.contact .section-title {
	color: var(--bs-white);
	margin-bottom: 86px;
}
.contact-address {
	color: var(--bs-white);
	font-size: 22px;
	font-weight: 300;
}
.contact .phone {
	display: inline-block;
	color: var(--bs-white);
	font-size: 22px;
	font-weight: 300;
	text-decoration: none;
	margin-bottom: 16px;
}
.contact .email {
	display: inline-block;
	color: var(--bs-white);
	font-size: 22px;
	font-weight: 300;
	text-decoration: none;
}
.contact-hours-title {
	color: var(--bs-white);
	font-size: 22px;
	font-weight: 700;
	margin-bottom: 35px;
}
.contact-hours-text {
	color: var(--bs-white);
	font-size: 22px;
	font-weight: 300;
}
.contact-social {
	margin-top: 86px;
}
.contact-social-item {
	display: inline-flex;
	width: 66px;
	height: 66px;
	margin-right: 24px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	color: var(--bs-white);
	font-size: 22px;
	text-decoration: none;
}
.contact-social-item:hover {
	background-color: var(--bs-white);
	color: var(--text-color);
}
.contact-map {
	height: 100%;
	min-height: 400px;
	position: absolute;
	top: 0;
	right: 0;
	width: 49.3%;
}
/* Map Dark Mode & Custom Marker */
.leaflet-container {
	background: #222;
}

.dark-map-tiles {
	filter: grayscale(100%) invert(90%) brightness(80%) contrast(130%);
}

.custom-map-marker {
	background: transparent !important;
	border: none !important;
}

/* Image Hover Effects */
.about-image img,
.italian-image img {
	transition: transform 0.5s ease;
}

.about-image img:hover,
.italian-image img:hover {
	transform: scale(1.05);
}

.about-image,
.italian-image {
	overflow: hidden;
}

/* Smooth Scrolling */
html {
	scroll-behavior: smooth;
}
/* Footer Styles */
.site-footer {
	background-color: var(--text-color);
	color: rgba(255, 255, 255, 0.5);
	padding: 36px 0;
}
.breadcrumb {
	font-size: 13px;
	color: var(--bs-black);
}
.breadcrumb a {
	color: var(--bs-black);
	text-decoration: none;
	opacity: 0.5;
}
.breadcrumb a:hover {
	color: var(--tertiary-color);
	opacity: 1;
}
.breadcrumb i {
	margin: 0 .4rem;
}
.page-header {
	padding: 120px 0;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	margin-bottom: 60px;
}
.page-header h1 {
	display: inline-block;
	color: var(--bs-white);
	background-color: var(--primary-color);
	padding: 10px 25px;
	margin: 0;
	font-size: 54px;
	font-weight: 700;
}
.contact-form-wrapper {
	padding: 48px 45px 40px;
	background-color: var(--secondary-color);
}
.contact-form-wrapper h4 {
	margin-bottom: 35px;
}
.contact-page .quote-section {
	background-color: var(--primary-color);
	color: var(--bs-white);
	margin-top: 150px;
}
.contact-page .quote-section .btn-primary,
.product-consultation-section .btn-primary,
.product-cta-section .btn-primary {
	color: var(--bs-white);
}
.contact-page .section-title {
	margin-bottom: 55px;
}
.contact-page .contact-box i {
	font-size: 38px;
	width: 38px;
	color: var(--tertiary-color);
}
.contact-page .contact-box h5 {
	font-size: 18px;
	font-weight: 600;
}
.contact-page .contact-box p {
	font-size: 14px;
}
.contact-page .contact-box a {
	font-size: 14px;
	color: var(--bs-black);
	text-decoration: none;
}
.contact-page .contact-box a:hover {
	color: var(--tertiary-color);
}
.contact-page .contact-box-row {
	margin-bottom: 75px;
}
.quote-page {
	padding-bottom: 130px;
}
.quote-form-fieldset-top {
	padding: 50px 48px 42px;
	background-color: var(--primary-color);
	color: var(--bs-white);
}
.quote-form-fieldset-bottom {
	padding: 37px 48px;
	background-color: #013248;
	color: var(--bs-white);
}
.quote-page .wpcf7-form-control-wrap label span {
	color: var(--bs-white);
	font-weight: 400;
}
.quote-page .wpcf7-list-item {
	margin: 0 0 0 30px;
}
.quote-page .wpcf7-list-item.first {
	margin: 0;
}

/* References Archive Page */
.references-archive-section {
	padding: 80px 0;
}

/* Single Reference Page */
.reference-single-section {
	padding: 80px 0;
}

.reference-featured-image {
	overflow: hidden;
	margin-bottom: 30px;
}

.reference-content {
	margin-bottom: 50px;
}

.reference-gallery {
	margin-top: 40px;
	margin-bottom: 30px;
}

.gallery-item {
	display: block;
	overflow: hidden;
	position: relative;
	transition: all 0.3s ease;
}

.gallery-item:hover {
	transform: translateY(-5px);
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.gallery-item img {
	width: 100%;
	height: 200px;
	object-fit: cover;
}

.reference-sidebar {
	background-color: var(--secondary-color);
	padding: 30px;
}

.reference-info h5 {
	color: var(--primary-color);
	font-size: 18px;
	margin-bottom: 10px;
}

.related-reference {
	margin-bottom: 20px;
}

.related-reference a {
	display: flex;
	align-items: center;
	text-decoration: none;
	color: var(--text-color);
	transition: all 0.3s ease;
}

.related-reference a:hover {
	color: var(--tertiary-color);
}

.related-thumb {
	width: 70px;
	height: 70px;
	overflow: hidden;
	margin-right: 15px;
}

.related-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.section-subtitle {
	color: var(--tertiary-color);
	font-size: 28px;
	margin-bottom: 20px;
}

/* Products Archive Page */
.products-intro-section {
	padding: 80px 0;
	background-color: #fff;
}

.products-category-section {
	padding: 80px 0;
	background-color: var(--secondary-color);
}

.product-feature-item {
	display: flex;
	align-items: flex-start;
	margin-bottom: 15px;
}

.product-feature-item i {
	color: var(--tertiary-color);
	margin-right: 10px;
	font-size: 20px;
}

.product-category-item {
	background-color: #fff;
	overflow: hidden;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
	height: 100%;
	transition: all 0.3s ease;
}

.product-category-item:hover {
	transform: translateY(-10px);
	box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}

.product-category-image {
	height: 220px;
	overflow: hidden;
}

.product-category-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.5s ease;
}

.product-category-item:hover .product-category-image img {
	transform: scale(1.1);
}

.product-category-content {
	padding: 25px;
	text-align: center;
}

.product-section {
	padding: 60px 0;
}

.product-section-title {
	font-size: 32px;
	font-weight: 600;
	margin-bottom: 30px;
	padding-bottom: 15px;
	position: relative;
	color: var(--primary-color);
}

.product-section-title:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 50px;
	height: 3px;
	background-color: var(--tertiary-color);
}
/* Product Subcategory Sections */
.product-subcategory {
	margin-bottom: 60px;
}
.subcategory-title {
	font-size: 32px;
	font-weight: 700;
	color: var(--primary-color);
	margin-bottom: 40px;
	padding-bottom: 15px;
	border-bottom: 1px solid var(--tertiary-color);
}
.product-item {
	display: flex;
	align-items: flex-start;
	margin-bottom: 48px;
}
.product-item .product-image {
	margin-right: 78px;
}
.product-item .product-image img {
	max-width: 228px;
}
.product-item .product-content {
	max-width: 870px;
	width: 100%;
	margin-right: 76px;
}
.product-item.no-image .product-content {
	margin-right: 0;
}
.product-item .product-content .product-title {
	font-size: 30px;
	font-weight: 700;
	color: var(--text-color);
	margin-bottom: 0;
}
.product-item .product-content .product-title-price {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}
.product-item .product-content .product-price {
	font-size: 22px;
	font-weight: 700;
}
.product-item .product-content .product-description {
	font-size: 22px;
	font-weight: 300;
	max-width: 735px;
	color: var(--text-color);
	margin-bottom: 0;
}

.product-consultation-section {
	padding: 100px 0;
	background-color: var(--primary-color);
	color: #fff;
}

.consultation-text {
	font-size: 18px;
	max-width: 600px;
}
.consultation-image {
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* Single Product Page */
.product-single-section {
	padding: 80px 0;
}

.product-main-image {
	overflow: hidden;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.product-gallery-thumbs img {
	transition: all 0.3s ease;
}

.product-gallery-thumbs img:hover {
	transform: scale(1.05);
}

.product-title {
	font-size: 32px;
	font-weight: 700;
	margin-bottom: 10px;
	color: var(--primary-color);
}

.product-subtitle {
	font-size: 20px;
	color: var(--tertiary-color);
	margin-bottom: 20px;
}

.product-features-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.product-features-list li {
	padding: 5px 0;
	display: flex;
	align-items: flex-start;
}

.product-features-list li i {
	color: var(--tertiary-color);
	margin-right: 10px;
	margin-top: 5px;
}

.product-contact {
	margin-top: 30px;
	padding: 15px;
	background-color: var(--secondary-color);
}
.product-contact p {
	margin: 0;
}
.product-contact a {
	color: var(--tertiary-color);
	text-decoration: none;
}
.product-contact i {
	color: var(--tertiary-color);
	margin-right: 10px;
}

.product-specs-table {
	margin-bottom: 40px;
}

.product-specs-table th {
	background-color: var(--primary-color);
	color: #fff;
}

.product-variant-item {
	background-color: var(--secondary-color);
	overflow: hidden;
	height: 100%;
	transition: all 0.3s ease;
}

.product-variant-item:hover {
	transform: translateY(-5px);
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.variant-image {
	height: 480px;
	overflow: hidden;
}

.variant-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.variant-content {
	padding: 20px;
}

.variant-content h4 {
	font-size: 18px;
	color: var(--primary-color);
	margin-bottom: 10px;
}

.related-product-item {
	background-color: #fff;
	overflow: hidden;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
	height: 100%;
	transition: all 0.3s ease;
}

.related-product-item:hover {
	transform: translateY(-5px);
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.related-product-image {
	height: 150px;
	overflow: hidden;
}

.related-product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.related-product-content {
	padding: 20px;
}

.related-product-content h4 {
	font-size: 18px;
	color: var(--primary-color);
	margin-bottom: 10px;
}

.product-cta-section {
	padding: 100px 0;
	background-color: var(--primary-color);
	color: #fff;
}

.cta-image {
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 14px;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 24px;
	margin-bottom: 24px;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 24px;
	margin-bottom: 24px;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 24px;
}

/** Light color-scheme **/
:root {
	--cc-bg: #fff;
	--cc-text: #18252D;
	--cc-btn-primary-bg: var(--primary-color);
	--cc-btn-primary-text: var(--cc-bg);
	--cc-btn-primary-hover-bg: var(--primary-color);
	--cc-btn-secondary-bg: #eaeff2;
	--cc-btn-secondary-text: var(--cc-text);
	--cc-btn-secondary-hover-bg: #d8e0e6;
	--cc-toggle-bg-off: #919ea6;
	--cc-toggle-bg-on: var(--cc-btn-primary-bg);
	--cc-toggle-bg-readonly: #d5dee2;
	--cc-toggle-knob-bg: #fff;
	--cc-toggle-knob-icon-color: #ecf2fa;
	--cc-block-text: var(--cc-text);
	--cc-cookie-category-block-bg: #f0f4f7;
	--cc-cookie-category-block-bg-hover: #e9eff4;
	--cc-section-border: #f1f3f5;
	--cc-cookie-table-border: #e9edf2;
	--cc-overlay-bg: rgba(4, 6, 8, .85);
	--cc-webkit-scrollbar-bg: #cfd5db;
	--cc-webkit-scrollbar-bg-hover: #9199a0;
	--cc-btn-border-radius: 0;
}

.c-settings-btn {
	position: fixed;
	left: 10px;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3px;
	background-color: var(--cc-btn-primary-bg);
	color: var(--cc-bg);
	font-size: 0.8rem;
	border: none;
	transition: all .2s ease-in-out;
	z-index: 100;
}

.c-settings-btn:hover {
	background-color: var(--cc-btn-primary-hover-bg);
}

/*--------------------------------------------------------------
# Media Queries
--------------------------------------------------------------*/
@media (max-width: 1760px) {
	.home .site {
		padding-left: 212px;
	}
}
/* 1680 x 1050 */
@media (max-width: 1680px) {
	.good-luck-image {
		right: 0;
	}
	.about-image-high {
		max-width: 50%;
	}
}

/* 1536 x 864 */
@media (max-width: 1536px) {

}

/* 1440 x 900 */
@media (max-width: 1440px) {
	.hero-section {
		padding: 120px 0;
	}
	.hero-title {
		font-size: 62px;
	}
	.italian-image-high {
		max-width: 50%;
	}
	.reservation-form {
		padding: 54px 70px;
	}
}

/* 1366 x 768 */
@media (max-width: 1366px) {
	.product-section,
	.products-section {
		padding: 60px 0;
	}
	.quote-page .wpcf7-list-item {
		margin: 0 0 0 10px;
	}
	.about-section {
		padding: 60px 0;
	}
}

/* 1280 x 800 */
@media (max-width: 1280px) {

}

/* >= 1200px Extra Large */
@media (max-width: 1200px) {
    .section-title {
        font-size: 36px;
    }
    .hero-title {
        font-size: 48px;
    }
    .hero-subtitle {
        font-size: 30px;
		margin-bottom: 30px;
    }
    .services-section, 
    .logos-section, 
    .references-section {
        padding: 80px 0;
    }
    .quote-section {
        padding: 100px 0;
    }
	.product-section-title {
		font-size: 28px;
	}
	.reservation-form {
		padding: 54px 20px;
	}
}

/* 1024 x 768 */
@media (max-width: 1024px) {
    .navbar {
        padding: 0;
    }
    .service-icon {
        width: 100px;
        height: 100px;
    }
    .service-icon img {
        max-width: 100px;
        max-height: 100px;
    }
    .service-title {
        font-size: 20px;
    }
    .quote-section {
        background-size: 40% auto;
    }
    .reference-item {
        margin-bottom: 40px;
    }
    .footer-logo {
        margin-top: -30px;
        margin-bottom: 40px;
    }
    .site-footer {
        padding-top: 80px;
    }
}

/* >= 992px Large */
@media (max-width: 992px) {
	.hero-section {
		padding: 60px 0;
		min-height: unset;
	}
	.bistro-icon {
		max-height: 20px;
		filter: brightness(0.1);
	}
	.hero-section .btn-secondary {
		color: var(--text-color);
		border-color: var(--text-color);
	}
	.hero-section video {
		min-width: unset;
		min-height: unset;
		width: -webkit-fill-available;
		top: 79px;
		bottom: unset;
	}
	.hero-content {
		margin-top: 490px;
		color: var(--text-color);
	}
	.home .site {
		padding-left: 0;
	}
	.home-navbar {
		background-color: var(--primary-color);
	}
	.absolute-logo {
		position: relative;
		left: 0;
		top: 0;
	}
	.menu-wrapper {
		width: 180px;
	}
    .section-title {
        font-size: 32px;
		margin-bottom: 20px;
    }
    .hero-title {
        font-size: 42px;
		margin-bottom: 35px;
    }
    .hero-subtitle {
        font-size: 26px;
        margin-bottom: 40px;
    }
	.hero-content p {
		margin-bottom: 50px;
		font-size: 20px;
	}
	.about-text {
		font-size: 18px;
		margin-bottom: 28px;
	}
	.italian-section {
		margin-top: 60px;
	}
	.products-section {
		padding: 100px 0;
	}
	.products-section .products-tab {
		margin-bottom: 60px;
	}
	.reservation-form::after {
		display: none;
	}
	.reservation-content {
		font-size: 20px;
	}
	.reservation-badge {
		margin: 60px 0;
	}
	.reservation-form {
		padding: 70px 80px;
	}
	.reservation-form input,
	.reservation-form select {
		height: 60px;
		font-size: 20px;
		padding: 18px 22px;
	}
	.input-icon-wrapper input,
	.input-icon-wrapper select {
		padding-left: 52px;
	}
	.input-icon-wrapper::before {
		font-size: 20px;
		left: 22px;
	}
	.contact {
		padding: 140px 0 80px;
	}
	.contact .section-title {
		margin-bottom: 70px;
	}
	.contact-address,
	.contact .phone,
	.contact .email,
	.contact-hours-title,
	.contact-hours-text {
		font-size: 20px;
	}
	.contact-social {
		margin-top: 70px;
	}
    .services-section, 
    .logos-section, 
    .references-section {
        padding: 60px 0;
    }
    .navbar-toggler {
        border: none;
        padding: 0;
    }
	.home-navbar .navbar-toggler i {
		font-size: 24px;
		color: var(--bs-white);
	}
    .navbar-toggler:focus {
        box-shadow: none;
    }
    .navbar-collapse {
        padding: 20px 0;
    }
    .navbar-nav .nav-link {
        padding: 10px 0;
    }
    .navbar-nav .nav-link:after {
        display: none;
    }
    .quote-section {
        padding: 80px 0;
        background-size: 57% auto;
    }
    .page-header {
        padding: 80px 0;
        margin-bottom: 40px;
    }
    .page-header h1 {
        font-size: 42px;
    }
    .contact-form-wrapper {
        padding: 30px 25px;
    }
    .btn {
        padding: 12px 25px;
        min-width: 180px;
    }
	.references-archive-section,
	.reference-single-section {
		padding: 60px 0;
	}
	.gallery-item img {
		height: 180px;
	}
	.products-intro-section,
	.products-category-section,
	.product-single-section {
		padding: 60px 0;
	}
	.product-section {
		padding: 40px 0;
	}
	.product-category-image {
		height: 180px;
	}
	.product-category-content {
		padding: 20px;
	}
	.product-consultation-section {
		padding: 80px 0;
	}
	.consultation-image {
		margin-top: 30px;
	}
	.product-title {
		font-size: 28px;
	}
	.product-subtitle {
		font-size: 18px;
	}
	.product-cta-section {
		padding: 60px 0;
	}
	.cta-image {
		margin-top: 30px;
	}
	.quote-form-fieldset-top,
	.quote-form-fieldset-bottom {
		padding: 25px 20px 25px;
	}
	.contact-address,
	.contact .phone,
	.contact .email,
	.contact-hours-title,
	.contact-hours-text {
		font-size: 18px;
	}
	.contact-social-item {
		width: 56px;
		height: 56px;
		font-size: 20px;
		margin-right: 20px;
	}
}
/* >= 768px Medium */
@media (max-width: 768px) {
    body {
        font-size: 15px;
    }
	.menu-wrapper {
		display: none;
	}
    .section-title {
        font-size: 30px;
    }
    .hero-title {
        font-size: 36px;
		margin-bottom: 30px;
    }
    .hero-subtitle {
        font-size: 22px;
        margin-bottom: 30px;
    }
	.hero-content p {
		margin-bottom: 40px;
		font-size: 18px;
	}
	.btn {
		font-size: 18px;
		padding: 18px 28px;
		min-width: 200px;
	}
	.about-section {
		padding: 80px 0;
	}
	.about-text {
		font-size: 18px;
		margin-bottom: 24px;
	}
	.about-image,
	.italian-image {
		margin-top: 30px;
	}
	.good-luck-image {
		top: unset;
		bottom: -95px;
		max-width: 45%;
	}
	.products-section {
		padding: 80px 0;
	}
	.products-section .products-tab {
		margin-bottom: 40px;
		flex-wrap: wrap;
	}
	.products-section .section-title {
		margin-bottom: 30px;
	}
	.products-section .products-tab ul .nav-link {
		font-size: 18px;
	}
	.subcategory-title {
		font-size: 26px;
		margin-bottom: 30px;
	}
	.product-subcategory {
		margin-bottom: 50px;
	}
	.product-item {
		flex-direction: column;
		margin-bottom: 40px;
	}
	.product-item .product-image {
		margin-right: auto;
		margin-bottom: 20px;
	}
	.product-item .product-content {
		margin-right: 0;
	}
	.product-item .product-content .product-title {
		font-size: 24px;
	}
	.product-item .product-content .product-description {
		font-size: 18px;
	}
	.product-item .product-content .product-price {
		font-size: 20px;
	}
	.reservation-content {
		font-size: 18px;
	}
	.reservation-badge {
		margin: 50px 0;
		max-width: 200px;
	}
	.reservation-form {
		padding: 50px 40px;
		margin-top: 30px;
	}
	.reservation-form input,
	.reservation-form select {
		height: 55px;
		font-size: 18px;
		padding: 16px 20px;
	}
	.input-icon-wrapper input,
	.input-icon-wrapper select {
		padding-left: 48px;
	}
	.input-icon-wrapper::before {
		font-size: 18px;
		left: 20px;
	}
	.contact {
		padding: 80px 0 60px;
	}
	.contact .section-title {
		margin-bottom: 50px;
	}
	.contact-social {
		margin-top: 50px;
	}
	.contact-map {
		position: relative;
		width: 100%;
		margin-top: 40px;
		min-height: 350px;
	}
    .services-section, 
    .logos-section, 
    .references-section {
        padding: 50px 0;
    }
    .quote-section {
        padding: 40px 0;
		background-image: none;
    }
    .about-section {
        margin-bottom: 60px;
		padding-bottom: 0;
    }
    .about-features {
        margin-bottom: 40px;
    }
    .reference-overlay {
        height: 100px;
    }
    .references-section .section-title {
        margin-bottom: 40px;
    }
    .references-section .section-subtitle {
        font-size: 28px;
    }
    .contact-page .contact-box-row {
        margin-bottom: 40px;
    }
    .contact-page .section-title {
        margin-bottom: 40px;
    }
    .quote-form-fieldset-top,
    .quote-form-fieldset-bottom {
        padding: 30px 25px;
    }
    .contact-page .quote-section {
        margin-top: 80px;
    }
    .footer-heading {
        margin-top: 30px;
    }
    .site-footer {
        padding-top: 60px;
    }
    .footer-bottom {
        margin-top: 40px;
    }
	.references-archive-section,
	.reference-single-section {
		padding: 50px 0;
	}
	.gallery-item img {
		height: 160px;
	}
	.section-subtitle {
		font-size: 24px;
	}
	.products-intro-section,
	.products-category-section,
	.product-single-section {
		padding: 50px 0;
	}
	.product-category-image {
		height: 160px;
	}
	.product-category-content {
		padding: 15px;
	}
	.product-section-title {
		font-size: 24px;
	}
	.product-consultation-section {
		padding: 60px 0;
	}
	.consultation-text {
		font-size: 16px;
	}
	.product-cta-section {
		padding: 50px 0;
	}
	.contact-form-wrapper {
		margin-top: 25px;
		padding: 20px 15px;
	}
	.quote-page .wpcf7-list-item {
		margin: 0;
		display: block;
	}
	.about-image-small, .about-image-high, .italian-image-items, .italian-image-high {
		max-width: 48%;
	}
}

/* >= 576px Small */
@media (max-width: 576px) {
    .section-title {
        font-size: 28px;
		margin-bottom: 30px;
    }
    .hero-title {
        font-size: 30px;
		margin-bottom: 25px;
    }
    .hero-subtitle {
        font-size: 20px;
        margin-bottom: 25px;
    }
	.hero-content p {
		margin-bottom: 30px;
		font-size: 16px;
	}
	.btn {
		font-size: 16px;
		padding: 16px 24px;
		min-width: 180px;
	}
	.about-section {
		padding: 60px 0;
	}
	.about-text {
		font-size: 16px;
		margin-bottom: 20px;
	}
	.products-section {
		padding: 60px 0;
	}
	.products-section .products-tab {
		margin-bottom: 40px;
	}
	.products-section .products-tab ul .nav-link {
		padding: 18px 16px 14px;
		font-size: 16px;
	}
	.product-item {
		margin-bottom: 35px;
	}
	.product-item .product-content .product-title {
		font-size: 22px;
	}
	.product-item .product-content .product-description {
		font-size: 16px;
	}
	.product-item .product-content .product-price {
		font-size: 18px;
	}
	.product-item .product-content .product-title-price {
		margin-bottom: 16px;
	}
	.reservation-content {
		font-size: 16px;
	}
	.reservation-badge {
		margin: 40px 0;
		max-width: 180px;
	}
	.reservation-form {
		padding: 40px 30px;
	}
	.reservation-form input,
	.reservation-form select {
		height: 50px;
		font-size: 16px;
		padding: 14px 18px;
	}
	.input-icon-wrapper input,
	.input-icon-wrapper select {
		padding-left: 44px;
	}
	.input-icon-wrapper::before {
		font-size: 16px;
		left: 18px;
	}
	.contact {
		padding: 60px 0 50px;
	}
	.contact .section-title {
		margin-bottom: 40px;
	}
	.contact-address,
	.contact .phone,
	.contact .email {
		font-size: 16px;
		margin-bottom: 12px;
	}
	.contact-hours-title {
		font-size: 16px;
		font-weight: 700;
		margin-bottom: 20px;
		margin-top: 30px;
	}
	.contact-hours-text {
		font-size: 16px;
	}
	.contact-social {
		margin-top: 40px;
	}
	.contact-social-item {
		width: 50px;
		height: 50px;
		font-size: 18px;
		margin-right: 16px;
	}
	.contact-map {
		min-height: 300px;
	}
    .services-section, 
    .logos-section, 
    .references-section {
        padding: 40px 0;
    }
    .service-item {
        margin-bottom: 40px;
    }
    .quote-section {
        padding: 50px 0;
    }
    .about-section {
        margin-bottom: 40px;
    }
    .page-header {
        padding: 60px 0;
        margin-bottom: 30px;
    }
    .page-header h1 {
        font-size: 32px;
        padding: 10px 20px;
    }
    .btn {
        padding: 10px 20px;
        min-width: 160px;
        font-size: 14px;
    }
    .site-footer {
        padding-top: 50px;
        text-align: center;
    }
    .footer-contact p {
        justify-content: center;
    }
    .footer-logo {
        margin-top: 0;
        margin-bottom: 30px;
    }
    .contact-page .quote-section {
        margin-top: 60px;
    }
    .quote-page {
        padding-bottom: 60px;
    }
	.references-archive-section,
	.reference-single-section {
		padding: 40px 0;
	}
	.reference-item {
		margin-bottom: 0;
	}
	.references-section .btn-primary {
		margin-top: 20px;
	}
	.about-section .about-image {
		margin-bottom: 20px;
	}
	.gallery-item img {
		height: 140px;
	}
	.reference-title {
		font-size: 20px;
	}
	.reference-sidebar {
		padding: 20px;
	}

	.reference-info h5 {
		font-size: 16px;
	}

	.section-subtitle {
		font-size: 22px;
	}
	.products-intro-section,
	.products-category-section,
	.product-single-section {
		padding: 40px 0;
	}

	.product-feature-item {
		margin-bottom: 10px;
	}

	.product-category-image {
		height: 140px;
	}
	.product-section-title {
		font-size: 22px;
	}

	.product-consultation-section {
		padding: 50px 0;
	}

	.product-title {
		font-size: 24px;
	}

	.product-subtitle {
		font-size: 16px;
	}
	.related-product-image {
		height: 130px;
	}

	.product-cta-section {
		padding: 40px 0;
	}
}

/* 480 x 800 */
@media (max-width: 480px) {
    .hero-title {
        font-size: 28px;
		margin-bottom: 20px;
    }
    .hero-subtitle {
        font-size: 18px;
    }
	.hero-content p {
		margin-bottom: 25px;
		font-size: 15px;
	}
    .section-title {
        font-size: 26px;
		margin-bottom: 25px;
    }
	.btn {
		font-size: 15px;
		padding: 14px 20px;
		min-width: 160px;
	}
	.about-section,
	.italian-section {
		padding: 50px 0;
	}
	.about-text {
		font-size: 15px;
		margin-bottom: 18px;
	}
	.products-section {
		padding: 50px 0;
	}
	.products-section .products-tab {
		margin-bottom: 35px;
	}
	.products-section .products-tab ul .nav-link {
		padding: 16px 14px 12px;
		font-size: 15px;
	}
	.product-item {
		margin-bottom: 30px;
	}
	.product-item .product-content .product-title {
		font-size: 20px;
	}
	.product-item .product-content .product-description,
	.product-item .product-content .product-price {
		font-size: 15px;
	}
	.subcategory-title {
		font-size: 22px;
		margin-bottom: 20px;
	}
	.product-subcategory {
		margin-bottom: 40px;
	}
	.reservation-content {
		font-size: 15px;
	}
	.reservation-badge {
		margin: 35px 0;
		max-width: 160px;
	}
	.reservation-form {
		padding: 35px 25px;
	}
	.reservation-form input,
	.reservation-form select {
		height: 48px;
		font-size: 15px;
		padding: 12px 16px;
	}
	.input-icon-wrapper input,
	.input-icon-wrapper select {
		padding-left: 42px;
	}
	.input-icon-wrapper::before {
		font-size: 15px;
		left: 16px;
	}
	.contact {
		padding: 50px 0 40px;
	}
	.contact .section-title {
		margin-bottom: 35px;
	}
	.contact-address,
	.contact .phone,
	.contact .email,
	.contact-hours-title,
	.contact-hours-text {
		font-size: 15px;
	}
	.contact-social {
		margin-top: 35px;
	}
	.contact-social-item {
		width: 48px;
		height: 48px;
		font-size: 16px;
		margin-right: 14px;
	}
	.contact-map {
		min-height: 280px;
	}
    .quote-section {
        background-image: none;
    }
    .services-section, 
    .logos-section, 
    .references-section {
        padding: 30px 0;
    }
    .about-section {
        margin-bottom: 30px;
    }
    .about-text,
    .quote-text,
    .product-text {
        margin-bottom: 25px;
    }
    .about-features li {
        padding-left: 25px;
    }
    .footer-bottom {
        margin-top: 30px;
        padding: 20px 0;
        font-size: 12px;
    }
}

/* 360 x 640 */
@media (max-width: 360px) {
    body {
        font-size: 14px;
    }
    .hero-title {
        font-size: 24px;
		margin-bottom: 18px;
    }
    .hero-subtitle {
        font-size: 16px;
    }
	.hero-content p {
		margin-bottom: 20px;
		font-size: 14px;
	}
    .section-title {
        font-size: 22px;
		margin-bottom: 20px;
    }
	.btn {
		min-width: 140px;
		font-size: 14px;
		padding: 12px 18px;
	}
	.about-section,
	.italian-section {
		padding: 40px 0;
	}
	.about-text {
		font-size: 14px;
		margin-bottom: 16px;
	}
	.products-section {
		padding: 40px 0;
	}
	.products-section .products-tab {
		margin-bottom: 30px;
	}
	.products-section .section-title {
		font-size: 22px;
	}
	.products-section .products-tab ul .nav-link {
		padding: 14px 12px 10px;
		font-size: 14px;
	}
	.product-item {
		margin-bottom: 25px;
	}
	.product-item .product-content .product-title {
		font-size: 18px;
	}
	.product-item .product-content .product-description,
	.product-item .product-content .product-price {
		font-size: 14px;
	}
	.subcategory-title {
		font-size: 20px;
		margin-bottom: 18px;
	}
	.product-subcategory {
		margin-bottom: 35px;
	}
	.reservation-content {
		font-size: 14px;
	}
	.reservation-badge {
		margin: 30px 0;
		max-width: 140px;
	}
	.reservation-form {
		padding: 30px 20px;
	}
	.reservation-form input,
	.reservation-form select {
		height: 46px;
		font-size: 14px;
		padding: 10px 14px;
	}
	.input-icon-wrapper input,
	.input-icon-wrapper select {
		padding-left: 40px;
	}
	.input-icon-wrapper::before {
		font-size: 14px;
		left: 14px;
	}
	.contact {
		padding: 40px 0 35px;
	}
	.contact .section-title {
		margin-bottom: 30px;
	}
	.contact-address,
	.contact .phone,
	.contact .email,
	.contact-hours-title,
	.contact-hours-text {
		font-size: 14px;
	}
	.contact-social {
		margin-top: 30px;
	}
	.contact-social-item {
		width: 44px;
		height: 44px;
		font-size: 15px;
		margin-right: 12px;
	}
	.contact-map {
		min-height: 250px;
	}
    .service-title {
        font-size: 18px;
    }
    .page-header h1 {
        font-size: 26px;
        padding: 8px 15px;
    }
    .footer-heading {
        font-size: 18px;
    }
}
