/* Mazouri Hospitality — brand layer
   Loaded after theme + Elementor. Presentation only. */

:root {
	--mz-ink: #222222;
	--mz-night: #1b1b1a;
	--mz-stone: #55524c;
	--mz-ivory: #f8f6f2;
	--mz-line: #e5e0d8;
	--mz-bronze: #8a6a3e;      /* text + buttons on light (AA) */
	--mz-gold: #c9a46c;        /* accents on dark (AA) */
	--mz-serif: "Marcellus", Georgia, "Times New Roman", serif;
	--mz-sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	--mz-logo: url("/wp-content/uploads/2026/10/Gemini_Generated_Image_ht6k8bht6k8bht6k-removebg-preview-e1792264083569.png");
}

/* Base type — where Elementor does not set its own fonts
   (shop, product, category, legal and account pages) */
body {
	font-family: var(--mz-sans);
	color: var(--mz-stone);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4,
.woocommerce-products-header__title,
.product_title {
	font-family: var(--mz-serif);
	font-weight: 400;
	color: var(--mz-ink);
	letter-spacing: 0;
}

h5, h6 {
	font-family: var(--mz-sans);
	color: var(--mz-ink);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.elementor-button:focus-visible {
	outline: 2px solid var(--mz-bronze);
	outline-offset: 3px;
}

::selection {
	background: #eadfcd;
	color: var(--mz-ink);
}

/* Header — logo lockup. The theme's fallback header prints the site name
   as text; we show the official logo in its place and keep the name for
   screen readers. */
header.main-header {
	background: #fff;
	border-bottom: 1px solid var(--mz-line);
}

header.main-header .header-padding {
	padding-top: 14px;
	padding-bottom: 14px;
}

.fixed-header-box .logo-wrapper .logo-tagline {
	display: flex;
	align-items: center;
	gap: 18px;
}

.fixed-header-box .logo-wrapper .logo.text-logo {
	display: block;
	flex: 0 0 auto;
	width: 94px;
	height: 72px;
	margin-left: -7px; /* file has ~7px clear space on the left at this size */
	background: var(--mz-logo) left center / contain no-repeat;
	color: transparent;
	font-size: 16px;
	white-space: nowrap;
	overflow: hidden;
	text-indent: 100%;
}

.fixed-header-box .logo-wrapper .site-tagline {
	display: block;
	max-width: 170px;
	padding: 4px 0 4px 18px;
	border-left: 1px solid var(--mz-line);
	font-family: var(--mz-sans);
	font-size: 10.5px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-align: start;
	color: var(--mz-stone);
}

#main-menu .menu > .menu-item > a {
	font-family: var(--mz-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mz-ink);
}

#main-menu .menu > .menu-item > a:hover,
#main-menu .menu > .menu-item.current-menu-item > a,
#main-menu .menu > .menu-item.current-menu-ancestor > a {
	color: var(--mz-bronze);
}

#main-menu .menu .sub-menu a {
	font-family: var(--mz-sans);
	font-size: 13.5px;
	color: var(--mz-ink);
}

#main-menu .menu .sub-menu a:hover {
	color: var(--mz-bronze);
}

@media (max-width: 959px) {
	header.main-header .header-padding {
		padding-top: 0;
		padding-bottom: 0;
	}
	.responsive-layout header.main-header .first-row {
		min-height: 76px;
	}
	.responsive-layout header.main-header .logo-wrapper {
		padding: 11px 0;
	}
	.responsive-layout header.main-header .first-row .logo-wrapper .logo.text-logo,
	.fixed-header-box .logo-wrapper .logo.text-logo {
		width: 70px;
		height: 54px;
		max-height: none;
		margin-left: -5px;
		font-size: 16px;
		line-height: 1;
	}
	.fixed-header-box .logo-wrapper .logo-tagline {
		gap: 14px;
	}
	.responsive-layout header.main-header .first-row .logo-wrapper .site-tagline,
	.fixed-header-box .logo-wrapper .site-tagline {
		max-width: 150px;
		padding: 3px 0 3px 14px;
		font-size: 9.5px;
		letter-spacing: .12em;
	}
}

/* Catalogue (WooCommerce) */
.woocommerce-products-header,
.elementor-page-title .meta-header {
	text-align: center;
}

.woocommerce-products-header__title.page-title,
.woocommerce .page-title {
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.15;
	margin: 10px 0 14px;
}

.woocommerce-products-header .page-description,
.woocommerce-products-header .term-description {
	max-width: 680px;
	margin: 0 auto;
	font-size: 15px;
	line-height: 1.8;
	color: var(--mz-stone);
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering select {
	font-family: var(--mz-sans);
	font-size: 13px;
	color: var(--mz-stone);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
	font-family: var(--mz-serif);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--mz-ink);
	padding-top: 14px;
}

.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
	color: var(--mz-bronze);
}

.woocommerce ul.products li.product a img {
	background: var(--mz-ivory);
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	font-family: var(--mz-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
	background-color: var(--mz-bronze);
	border: 1px solid var(--mz-bronze);
	border-radius: 0;
	padding: 14px 26px;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	color: #fff;
	background-color: var(--mz-ink);
	border-color: var(--mz-ink);
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	font-family: var(--mz-sans);
	font-size: 13px;
	color: var(--mz-ink);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	color: #fff;
	background: var(--mz-ink);
}

.single-product .product_title {
	font-size: clamp(28px, 3.4vw, 40px);
	line-height: 1.15;
}

.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-Tabs-panel {
	font-size: 15px;
	line-height: 1.85;
}

.single-product .product_meta {
	font-size: 13px;
	color: var(--mz-stone);
}

.single-product .product_meta a {
	color: var(--mz-bronze);
}

/* Legal + plain WordPress pages */
.page:not(.elementor-page) #main .entry-content,
.page:not(.elementor-page) #main .page-content {
	font-size: 16px;
	line-height: 1.85;
}

.page:not(.elementor-page) #main .entry-content a {
	color: var(--mz-bronze);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Footer */
.mz-footer {
	background: var(--mz-night);
	color: #bdb7ac;
	font-family: var(--mz-sans);
	font-size: 14px;
	line-height: 1.85;
}

.mz-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 80px 24px 0;
}

.mz-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.25fr;
	gap: 48px;
}

.mz-footer__brand img {
	display: block;
	width: 138px;
	height: auto;
	margin: 0 0 22px -10px;
}

.mz-footer__brand p {
	max-width: 290px;
	margin: 0;
	font-size: 13.5px;
}

.mz-footer__title {
	margin: 6px 0 18px;
	font-family: var(--mz-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--mz-gold);
}

.mz-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mz-footer li {
	margin: 0 0 6px;
}

.mz-footer a {
	color: #e9e5dd;
	text-decoration: none;
	transition: color .2s ease;
}

.mz-footer a:hover {
	color: var(--mz-gold);
}

.mz-footer a:focus-visible {
	outline-color: var(--mz-gold);
}

.mz-footer address {
	font-style: normal;
	margin: 0 0 10px;
}

.mz-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 32px;
	margin-top: 64px;
	padding: 26px 0 30px;
	border-top: 1px solid rgba(255, 255, 255, .09);
	font-size: 12px;
	color: #a9a49a;
}

.mz-footer__bottom p {
	margin: 0;
}

.mz-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 24px;
}

.mz-footer__legal a {
	color: #a9a49a;
}

@media (max-width: 1023px) {
	.mz-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 44px 32px;
	}
}

@media (max-width: 600px) {
	.mz-footer__inner {
		padding-top: 60px;
	}
	.mz-footer__grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.mz-footer__bottom {
		flex-direction: column;
		margin-top: 48px;
	}
}
/* --- Specificity fixes (theme + kit heading/list rules) --- */
footer.mz-footer h2.mz-footer__title {
	margin: 6px 0 18px;
	font-family: var(--mz-sans);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--mz-gold);
}

footer.mz-footer .mz-footer__grid ul,
footer.mz-footer .mz-footer__grid li {
	list-style: none;
	margin-left: 0;
	padding-left: 0;
}

footer.mz-footer .mz-footer__grid li {
	margin-bottom: 6px;
}

footer.mz-footer p {
	color: inherit;
}

body .fixed-header-box .logo-wrapper .site-tagline {
	max-width: 215px;
}

@media (max-width: 959px) {
	body.responsive-layout header.main-header .first-row .logo-wrapper .site-tagline {
		max-width: 165px;
		padding: 3px 0 3px 14px;
		font-size: 9.5px;
		line-height: 1.6;
		letter-spacing: .12em;
	}
}

/* Elementor global typography defaults.
   The theme sets body/heading fonts from these variables, but Elementor only
   prints them on Elementor-built pages. Without them the shop, product and
   legal pages fall back to Times. Values mirror the Elementor kit; on
   Elementor pages the kit's own declarations take precedence. */
:root {
	--e-global-typography-vamtam_primary_font-font-family: "Montserrat";
	--e-global-typography-vamtam_primary_font-font-weight: 400;
	--e-global-typography-vamtam_primary_font-font-style: normal;
	--e-global-typography-vamtam_primary_font-font-size: 14px;
	--e-global-typography-vamtam_primary_font-line-height: 1.3em;
	--e-global-typography-vamtam_primary_font-text-transform: none;
	--e-global-typography-vamtam_h1-font-family: "Marcellus";
	--e-global-typography-vamtam_h1-font-weight: 400;
	--e-global-typography-vamtam_h1-font-style: normal;
	--e-global-typography-vamtam_h1-font-size: 48px;
	--e-global-typography-vamtam_h1-line-height: 1.1em;
	--e-global-typography-vamtam_h1-text-transform: none;
	--e-global-typography-vamtam_h2-font-family: "Marcellus";
	--e-global-typography-vamtam_h2-font-weight: 400;
	--e-global-typography-vamtam_h2-font-style: normal;
	--e-global-typography-vamtam_h2-font-size: 32px;
	--e-global-typography-vamtam_h2-line-height: 1.1em;
	--e-global-typography-vamtam_h2-text-transform: none;
	--e-global-typography-vamtam_h3-font-family: "Marcellus";
	--e-global-typography-vamtam_h3-font-weight: 400;
	--e-global-typography-vamtam_h3-font-style: normal;
	--e-global-typography-vamtam_h3-font-size: 24px;
	--e-global-typography-vamtam_h3-line-height: 1.1em;
	--e-global-typography-vamtam_h3-text-transform: none;
	--e-global-typography-vamtam_h4-font-family: "Marcellus";
	--e-global-typography-vamtam_h4-font-weight: 400;
	--e-global-typography-vamtam_h4-font-style: normal;
	--e-global-typography-vamtam_h4-font-size: 20px;
	--e-global-typography-vamtam_h4-line-height: 1.1em;
	--e-global-typography-vamtam_h4-text-transform: none;
	--e-global-typography-vamtam_h5-font-family: "Montserrat";
	--e-global-typography-vamtam_h5-font-weight: 600;
	--e-global-typography-vamtam_h5-font-style: normal;
	--e-global-typography-vamtam_h5-font-size: 14px;
	--e-global-typography-vamtam_h5-line-height: 1.15em;
	--e-global-typography-vamtam_h5-text-transform: none;
	--e-global-typography-vamtam_h6-font-family: "Montserrat";
	--e-global-typography-vamtam_h6-font-weight: 400;
	--e-global-typography-vamtam_h6-font-style: normal;
	--e-global-typography-vamtam_h6-font-size: 12px;
	--e-global-typography-vamtam_h6-line-height: 1.2em;
	--e-global-typography-vamtam_h6-text-transform: uppercase;
}
@media (max-width: 1024px) {
	:root {
		--e-global-typography-vamtam_h1-font-size: 38px;
		--e-global-typography-vamtam_h1-line-height: 1.1em;
		--e-global-typography-vamtam_h2-font-size: 26px;
		--e-global-typography-vamtam_h3-font-size: 21px;
		--e-global-typography-vamtam_h3-line-height: 1.1em;
		--e-global-typography-vamtam_h4-font-size: 19px;
	}
}
@media (max-width: 767px) {
	:root {
		--e-global-typography-vamtam_h1-font-size: 26px;
		--e-global-typography-vamtam_h1-line-height: 1.1em;
		--e-global-typography-vamtam_h2-font-size: 21px;
		--e-global-typography-vamtam_h3-font-size: 19px;
		--e-global-typography-vamtam_h3-line-height: 1.2em;
		--e-global-typography-vamtam_h4-font-size: 18px;
	}
}

/* --- Catalogue refinements --- */
body.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 0;
	padding-top: 14px;
}

body.single-product div.product a.button.mazouri-quote-btn {
	display: inline-block;
	margin: 10px 0 14px;
	padding: 16px 34px;
	font-family: var(--mz-sans);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-indent: 0;
	color: #fff;
	background-color: var(--mz-bronze);
	border: 1px solid var(--mz-bronze);
	border-radius: 0;
	transition: background-color .2s ease, border-color .2s ease;
}

body.single-product div.product a.button.mazouri-quote-btn:hover,
body.single-product div.product a.button.mazouri-quote-btn:focus-visible {
	color: #fff;
	background-color: var(--mz-ink);
	border-color: var(--mz-ink);
}

body.single-product .mazouri-contact-links {
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--mz-stone);
}

body.single-product .mazouri-contact-links a {
	color: var(--mz-bronze);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- Legal and plain pages: comfortable reading measure --- */
body.page:not(.elementor-page) article.page .page-content {
	max-width: 780px;
	margin: 0 auto 40px;
	font-size: 16px;
	line-height: 1.85;
}

body.page:not(.elementor-page) article.page .page-content p {
	margin: 0 0 1.1em;
}

body.page:not(.elementor-page) article.page .page-content h2 {
	margin: 1.9em 0 .55em;
	font-size: 26px;
	line-height: 1.25;
}

body.page:not(.elementor-page) article.page .page-content h3 {
	margin: 1.6em 0 .5em;
	font-size: 20px;
	line-height: 1.3;
}

body.page:not(.elementor-page) article.page .page-content a {
	color: var(--mz-bronze);
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.page:not(.elementor-page) article.page .page-content ul,
body.page:not(.elementor-page) article.page .page-content ol {
	margin: 0 0 1.1em 1.2em;
}
/* Mobile menu: current item on a light tint so bronze text stays legible */
@media (max-width: 959px) {
	body.responsive-layout #main-menu .menu > .menu-item.current-menu-item > a,
	body.responsive-layout #main-menu .menu > .menu-item.current-menu-ancestor > a {
		background-color: var(--mz-ivory);
		color: var(--mz-bronze);
	}
}

/* Breadcrumb trail (printed by mazouri-breadcrumbs.php) */
.mz-breadcrumb {
	font-family: var(--mz-sans);
	font-size: 13px;
	line-height: 1.6;
	color: var(--mz-stone);
	margin: 0 0 24px;
	overflow-wrap: anywhere;
}
.mz-breadcrumb a {
	color: var(--mz-bronze);
	text-decoration: none;
}
.mz-breadcrumb a:hover,
.mz-breadcrumb a:focus {
	text-decoration: underline;
}
.mz-breadcrumb .breadcrumb_last {
	color: var(--mz-ink);
}
@media (max-width: 600px) {
	.mz-breadcrumb {
		font-size: 12px;
		margin-bottom: 16px;
	}
}

/* Shop page: introduction and category cards */
.mz-shop-intro {
	margin: 0 0 40px;
}

.mz-shop-intro > p {
	max-width: 720px;
	margin: 0 0 20px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--mz-stone);
}

.mz-shop-intro > p a {
	color: var(--mz-bronze);
}

.mz-shop-intro .mz-cat-grid ul {
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 16px;
}

.mz-shop-intro .mz-cat-grid li {
	display: flex;
	margin: 0;
	padding: 0;
}

.mz-shop-intro .mz-cat-grid a {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 8px;
	box-sizing: border-box;
	padding: 22px 24px;
	background: var(--mz-ivory);
	border: 1px solid var(--mz-line);
	text-decoration: none;
	transition: border-color 0.2s ease;
}

.mz-shop-intro .mz-cat-grid a:hover,
.mz-shop-intro .mz-cat-grid a:focus-visible {
	border-color: var(--mz-bronze);
}

.mz-cat-grid__title {
	font-family: var(--mz-serif);
	font-size: 20px;
	line-height: 1.3;
	color: var(--mz-ink);
}

.mz-cat-grid__text {
	font-size: 14px;
	line-height: 1.6;
	color: var(--mz-stone);
}

.mz-cat-grid__count {
	margin-top: auto;
	padding-top: 8px;
	font-size: 13px;
	letter-spacing: 0.02em;
	color: var(--mz-bronze);
}

@media (max-width: 600px) {
	.mz-shop-intro > p {
		font-size: 16px;
	}

	.mz-shop-intro .mz-cat-grid ul {
		grid-template-columns: 1fr;
	}

	.mz-shop-intro .mz-cat-grid a {
		padding: 18px 20px;
	}
}

/* Category and brand archives: description below the product grid */
.mz-term-description {
	max-width: 820px;
	margin: 56px 0 0;
	padding-top: 32px;
	border-top: 1px solid var(--mz-line);
}

.mz-term-description p {
	margin: 0 0 16px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--mz-stone);
}

.mz-term-description strong {
	font-weight: 600;
	color: var(--mz-ink);
}

@media (max-width: 600px) {
	.mz-term-description {
		margin-top: 40px;
		padding-top: 24px;
	}
}

/* Shop intro: links in running text carry an underline, not colour alone. */
.mz-shop-intro > p a { text-decoration: underline; text-underline-offset: 3px; }

/* Product gallery: WooCommerce hides it (opacity 0) until its script runs, which delays the main image (LCP). Show single-image galleries at once. Galleries with thumbnails are left alone because the slider changes their height when it starts. */
.single-product .woocommerce-product-gallery:not(:has(.woocommerce-product-gallery__image ~ .woocommerce-product-gallery__image)) { opacity: 1 !important; }


/* Agency credit */
footer.mz-footer .mz-footer__credit {
	margin: 0;
	color: #8f8a80;
	letter-spacing: .02em;
}

footer.mz-footer .mz-footer__credit a {
	color: #c9c3b8;
	border-bottom: 1px solid rgba(201, 162, 39, .35);
	padding-bottom: 1px;
	transition: color .2s ease, border-color .2s ease;
}

footer.mz-footer .mz-footer__credit a:hover,
footer.mz-footer .mz-footer__credit a:focus-visible {
	color: var(--mz-gold);
	border-bottom-color: var(--mz-gold);
}

footer.mz-footer .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
