/*
Theme Name: Nouthemes
Theme URI: https://nouthemes.com/
Author: Nouthemes
Author URI: https://nouthemes.com/
Description: With its clean, minimal design and powerful feature set, Nouthemes enables agencies to build stylish and sophisticated WordPress websites. Nouthemes is a masterpiece of design and functionality. It features a range of valuable patterns, including hero and portfolio sections, prominent call-to-action buttons, and customer testimonials. Whether you're building a website for your business, personal brand, or creative project, Nouthemes is perfect for anyone looking to launch quickly and efficiently.
Tags: block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, full-site-editing, one-column, template-editing, threaded-comments, translation-ready, wide-blocks
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 7.4
Version: 2.0.0
License: GNU General Public License v3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: nouthemes
*/


/* Defaults
---------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

a,
button,
input:focus,
input[type="button"],
input[type="submit"],
textarea:focus,
.wp-element-button {
	transition: all 0.2s ease-in-out;
}

a,
a:focus,
a:hover,
a:not(.wp-element-button) {
	text-decoration-thickness: 1px;
}

b,
strong,
th {
	font-weight: var(--wp--custom--font-weight--medium);
}

mark {
	background: linear-gradient(90deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--primary) 100%);
	background-position: 0 85%;
	background-repeat: repeat-x;
	background-size: 100% 15%;
}

/* -- Forms -- */

input,
select,
textarea {
	background-color: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--primary);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: var(--wp--custom--font-weight--light);
	line-height: var(--wp--custom--line-height--body);
	padding: 10px 20px;
	width: 100%;
}

input:focus,
textarea:focus {
	background-color: var(--wp--preset--color--neutral);
	outline: none;
}

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
	width: auto;
}

input[type="button"],
input[type="email"],
input[type="search"],
input[type="submit"],
input[type="text"],
textarea {
	-webkit-appearance: none;
}

::placeholder {
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.5;
}

/* Blocks
---------------------------------------- */

/* -- Code -- */

*:not(.wp-block-code) > code {
	background-color: var(--wp--preset--color--neutral);
	font-size: var(--wp--preset--font-size--small);
	padding: 5px 8px;
}

/* -- Navigation -- */

.wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--custom--spacing--gap);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: var(--wp--custom--spacing--gap);
}

.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-open {
	border: 1px solid currentColor;
	padding: 2px;
}

.has-background .wp-block-navigation__responsive-container-open:focus,
.has-background .wp-block-navigation__responsive-container-open:hover {
	color: var(--wp--preset--color--base);
}

/* -- Navigation Submenu -- */

.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--contrast);
	border: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding: 10px;
}

.wp-block-navigation :where(.wp-block-navigation__submenu-container) a {
	padding: 2px 10px;
}

/* Utility
---------------------------------------- */

/* -- Box Shadow -- */

.is-style-shadow-light {
	box-shadow: var(--wp--preset--shadow--light);
}

.is-style-shadow-solid {
	box-shadow: var(--wp--preset--shadow--solid);
}

/* Media Queries
---------------------------------------- */

@media only screen and (max-width: 600px) {

	/* -- Utility -- */

	.is-style-hidden-mobile {
		display: none !important;
	}

}

@media only screen and (max-width: 782px) {

	/* -- Columns -- */

	.is-style-columns-reverse {
		flex-direction: column-reverse;
	}

}


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

/* -- Skip Link -- */

.skip-link {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--medium);
	left: 0;
	line-height: normal;
	padding: 15px 20px;
	position: fixed;
	text-decoration: none;
	top: -100%;
	z-index: 99999;
}

.skip-link:focus {
	top: 0;
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 2px;
}

/* -- Back to Top -- */

.nouthemes-back-to-top {
	align-items: center;
	background-color: var(--wp--preset--color--contrast);
	border-radius: 50%;
	bottom: 30px;
	color: var(--wp--preset--color--base);
	display: flex;
	height: 44px;
	justify-content: center;
	opacity: 0.8;
	position: fixed;
	right: 30px;
	text-decoration: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
	width: 44px;
	z-index: 9999;
}

.nouthemes-back-to-top:hover {
	opacity: 1;
	transform: translateY(-3px);
}

.nouthemes-back-to-top[hidden] {
	display: none;
}

/* Sticky Header
---------------------------------------- */

/* Sticky Header
   Target both the semantic <header> element and the role attribute to cover
   all WordPress FSE rendering variations.
---------------------------------------- */

/* Base sticky — only when PHP adds .has-sticky-header to <body> */
.has-sticky-header header.wp-block-template-part,
.has-sticky-header .wp-block-template-part[role="banner"] {
	position: sticky;
	top: 0;
	z-index: 1000;
	transition: padding 0.3s ease, box-shadow 0.3s ease, backdrop-filter 0.3s ease, background-color 0.3s ease, transform 0.35s ease;
	/* will-change: transform is intentionally omitted — it creates a new stacking
	   context that traps position:fixed children (e.g. mobile nav overlay) inside
	   the header instead of letting them cover the full viewport. */
}

/* Shadow — always applied when sticky */
.has-sticky-header header.wp-block-template-part.is-sticky,
.has-sticky-header .wp-block-template-part[role="banner"].is-sticky {
	box-shadow: 0 2px 24px rgba(0, 0, 0, 0.07);
}

/* Backdrop blur — only when .sticky-blur is on <body> */
.sticky-blur header.wp-block-template-part.is-sticky,
.sticky-blur .wp-block-template-part[role="banner"].is-sticky {
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	background-color: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent) !important;
}

@supports not (background-color: color-mix(in srgb, white 88%, transparent)) {
	.sticky-blur header.wp-block-template-part.is-sticky,
	.sticky-blur .wp-block-template-part[role="banner"].is-sticky {
		background-color: var(--wp--preset--color--base) !important;
	}
}

/* Shrink padding — only when .sticky-shrink is on <body> */
.sticky-shrink header.wp-block-template-part.is-sticky > .wp-block-group,
.sticky-shrink .wp-block-template-part[role="banner"].is-sticky > .wp-block-group {
	padding-top: 14px !important;
	padding-bottom: 14px !important;
}

/* Hide on scroll down — only when .sticky-hide-scroll is on <body> */
.sticky-hide-scroll header.wp-block-template-part.is-hidden,
.sticky-hide-scroll .wp-block-template-part[role="banner"].is-hidden {
	transform: translateY(-100%);
}

/* Breadcrumbs
---------------------------------------- */

.nouthemes-breadcrumbs {
	font-size: var(--wp--preset--font-size--x-small);
	padding: 15px 0;
}

.nouthemes-breadcrumbs .breadcrumb-list {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nouthemes-breadcrumbs .breadcrumb-item {
	align-items: center;
	display: flex;
	gap: 5px;
}

.nouthemes-breadcrumbs .breadcrumb-separator {
	color: var(--wp--preset--color--contrast);
	opacity: 0.4;
}

.nouthemes-breadcrumbs .breadcrumb-current {
	opacity: 0.6;
}

.nouthemes-breadcrumbs a {
	text-decoration: none;
}

.nouthemes-breadcrumbs a:hover {
	text-decoration: underline;
}
