/*
Theme Name: Twenty Twenty-Four
Theme URI: https://wordpress.org/themes/twentytwentyfour/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4.
Requires at least: 6.4
Tested up to: 6.4
Requires PHP: 7.0
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfour
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

:root {
	--global-font-size-base: 16px;
}

.wp-block-post-excerpt__excerpt {
	text-wrap: wrap;
	text-wrap: pretty;
}

.wp-block-tiptip-hyperlink-group-block {
	text-decoration: none;
	display: contents;
}

html {
	scroll-behavior: smooth;
	font-size: var(--global-font-size-base);
}

h1,
h2,
h3,
h4,
h5,
h6,
div[id] {
	scroll-margin-top: 6.5rem; /* header height */
}

footer {
	box-shadow: 0 50vh 0 50vh var(--wp--preset--color--contrast);
}

.bounce {
	animation-name: bounce;
	animation-iteration-count: infinite;
	animation-timing-function: cubic-bezier(0.45, 0.05, 0.55, 0.95);
	animation-duration: 2.5s;
}

.scroll>table {
	overflow: auto;
}

.scroll>table th {
	text-wrap: nowrap;
}

.arrow-hr {
	color: currentcolor;
	background-color: inherit;
	position: relative;
	overflow: visible;
	border: unset;
	border-top: 2px solid;
}

.arrow-hr::before {
	content: "";
	position: absolute;
	top: -3px;
	left: 50%;
	translate: -50% -50%;
	color: inherit;
	background-color: inherit;
	rotate: 45deg;
	width: 2rem;
	aspect-ratio: 1;
	box-shadow: 2.5px 2.5px;
}

.arrow-hr.up::before {
	top: 1px;
	box-shadow: -2.5px -2.5px;
}

.wavy {
	position: relative;
}

.wavy::before {
	--mask:
		radial-gradient(4.47rem at 50% 6rem, #000 99%, #0000 101%) calc(50% - 4rem) 0/8rem 100%,
		radial-gradient(4.47rem at 50% -4rem, #0000 99%, #000 101%) 50% 2rem/8rem 100% repeat-x;
	-webkit-mask: var(--mask);
	mask: var(--mask);
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 2.5rem;
	background-color: inherit;
	z-index: 1;
}

input[type=submit],
input[type=button] button {
	cursor: pointer;
}

.no-overflow {
	overflow: hidden;
}

/* smartslider add-ons */

.hide-on-hover,
.n2-ss-slide-background-color {
	transition: opacity 0.3s linear;
}

.hide-on-hover:hover,
.n2-ss-slide-background-color:hover {
	opacity: 0;
}

.is-style-fa {
	padding-left: 0 ! important;
}

.is-style-fa li {
	list-style: none;
}

.is-style-fa li:before {
	font-family: 'Font Awesome 6 Free';
	content: "\f058";
	margin-right: 0.5em;
	color: var(--wp--preset--color--accent-2);
}

/* wave parallax */

#waves {
	isolation: isolate;
	position: relative;
	margin-bottom: -0.5rem;
	padding-top: 2rem;
}

#waves>svg {
	position: absolute;
	bottom: 100%;
	left: 0;
	inline-size: 100%;
	block-size: 4rem;
}

.parallax>use {
	animation-name: move-forever;
	animation-iteration-count: infinite;
	animation-timing-function: cubic-bezier(.55, .5, .45, .5);
}

.parallax>use:nth-child(1) {
	animation-delay: -4s;
	animation-duration: 4.5s;
}

.parallax>use:nth-child(2) {
	animation-delay: -3s;
	animation-duration: 3.6s;
}

.parallax>use:nth-child(3) {
	animation-delay: -2s;
	animation-duration: 3.2s;
}

.parallax>use:nth-child(4) {
	animation-delay: -1s;
	animation-duration: 2.5s;
}

.parallax>use:nth-child(5) {
	animation-duration: 2s;
}

.variable-bg {
	background-color: var(--wp--preset--color--contrast) ! important;
}

/* gutena tabs overrides */
.gutena-tabs-block>.gutena-tabs-content>.gutena-tab-block,
.gutena-tabs-block>.gutena-tabs-tab>.gutena-tab-title,
.gutena-tabs-block>.gutena-tabs-tab>.gutena-tab-title:active,
.gutena-tabs-block>.gutena-tabs-tab>.gutena-tab-title:hover {
	background: unset ! important;
	/* just inherit from the page, it's not that hard! */
	color: unset ! important;
}

button.fullscreen-button {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 999;
	font-size: 1.5rem;
	cursor: pointer;
	border: 0;
	border-radius: 0.25rem;
	box-shadow: 2px 2px 10px 2px rgba(0, 0, 0, 0.3);
	width: 40px;
	aspect-ratio: 1;
	text-align: center;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.contains-html-form .wp-block-cover__background {
    transition: opacity 0.5s ease;
}

.contains-html-form.wp-block-cover:has(*:focus) > .wp-block-cover__background {
    opacity: .95 ! important;
}

.polaroid {
	padding: 1rem 1rem 2.5rem 1rem;
	background-color: var(--wp--preset--color--white);
}

.polaroid > .backdrop {
	background-color: var(--wp--preset--color--black);
}

.wp-block-search__input:focus-visible {
	outline: none;
}

.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper {
	justify-content: flex-end;
}

.wp-block-search.wp-block-search__button-only .wp-block-search__input {
	transition: none;
}

.wp-block-search.wp-block-search__button-only .wp-block-search__button {
	padding: 0;
	aspect-ratio: 1;
	width: 40px;
	align-items: center;
}

.wp-block-navigation__responsive-container-content .wp-block-search {
	width: 100%;
}

:where(.wp-block-file__button):is(a):active, :where(.wp-block-file__button):is(a):focus, :where(.wp-block-file__button):is(a):hover, :where(.wp-block-file__button):is(a):visited {
	color: var(--wp--preset--color--base) ! important;
}

/* ninja forms style overrides */

.nf-field-element input[type=checkbox] + label {
	cursor: pointer;
}

.checkbox-wrap .nf-field-element label.nf-checked-label:before,
.checkbox-wrap .nf-field-label label.nf-checked-label:before,
.listcheckbox-wrap .nf-field-element label.nf-checked-label:before,
.listcheckbox-wrap .nf-field-label label.nf-checked-label:before,
.checkbox-wrap .nf-field-element label.nf-checked-label:after,
.checkbox-wrap .nf-field-label label.nf-checked-label:after,
.listcheckbox-wrap .nf-field-element label.nf-checked-label:after,
.listcheckbox-wrap .nf-field-label label.nf-checked-label:after,
.checkbox-wrap .nf-field-element label:after,
.checkbox-wrap .nf-field-label label:after,
.listcheckbox-wrap .nf-field-element label:after,
.listcheckbox-wrap .nf-field-label label:after,
.checkbox-wrap .nf-field-element label:before,
.checkbox-wrap .nf-field-label label:before,
.listcheckbox-wrap .nf-field-element label:before,
.listcheckbox-wrap .nf-field-label label:before {
	/* ninja forms can go jump */
	transition: unset ! important;
}

input[type=checkbox]:focus+label:after {
	box-shadow: 0 0 0 3px var(--wp--preset--color--accent);
}

.nf-field-description {
	margin-bottom: 0.25em;
}

.nf-form-content {
	padding: 0 ! important;
}

.nf-before-form-content {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
	margin-bottom: 1rem;
	padding-bottom: 0.25rem;
}

.nf-pass.field-wrap .nf-field-element:after,
.nf-error.field-wrap .nf-field-element:after {
	transition: none ! important;
}

.nf-form-content hr.ninja-forms-field {
	margin-block: 1rem;
}

.checkbox-container.label-right .field-wrap {
	display: block ! important; /* enforce block for checkboxes */
}

.checkbox-container.label-right .nf-field-description {
	margin-inline: unset ! important;
	margin-block: 0.5em;
}

.nf-form-content {
	padding: 0 ! important;
	margin-top: 2rem ! important;
}

.nf-field-container.html-container {
	margin-bottom: 0 ! important;
}

.nf-help {
	color: revert ! important;
}

.jBox-content {
	color: #2b2b2b ! important; /* always make it grey */
}

.nf-form-content input[type=submit] {
	transition: unset ! important;
	background-color: var(--wp--preset--color--contrast);
	border: 1px solid;
	color: var(--wp--preset--color--base);
	border-radius: 0.25rem;
}

.nf-form-content h2 {
	margin: 0;
}

.frm-fluent-form .choices__list {
	color: #2b2b2b ! important; /* always make it grey */
}

.fluentform .ff-el-tooltip svg {
	fill: var(--wp--preset--color--contrast);
}

.frm-fluent-form .choices__list--dropdown .choices__list {
	overflow: unset;
}

@keyframes move-forever {
	0% {
		transform: translate3d(-90px, 0, 0);
	}

	100% {
		transform: translate3d(85px, 0, 0);
	}
}

@keyframes bounce {
	0% {
		translate: 0 0;
	}

	50% {
		translate: 0 var(--vert, 1rem);
	}

	100% {
		translate: 0 0;
	}
}

@media (prefers-reduced-motion) {
	html {
		scroll-behavior: unset;
	}

	.bounce {
		animation: none;
	}

	#wave-wrapper {
		display: none;
	}
}

@media screen and (max-width: 800px) {
	:root {
		--global-font-size-base: 14px;
	}
	
	.bounce {
		animation: none;
	}

	#wave-wrapper {
		display: none;
	}

	.contact-form .nf-field-container .nf-field-label {
		margin-bottom: unset ! important;
		/* I hate ninjaforms defaults >___< */
	}

	.contact-form .nf-field [class^="nf-"]:empty {
		display: none;
	}

	.contact-form .label-left .field-wrap {
		flex-direction: column;
	}

	.contact-form .nf-after-form-content,
	.contact-form .label-left .nf-after-field {
		margin-left: unset ! important;
	}

	button.fullscreen-button {
		display: none;
	}
	
	html .view--desktop {
		display: none;
	}
}

@media screen and (min-width: 801px) {
	html .view--mobile {
		display: none;
	}
}

@media (prefers-color-scheme: dark) {
	body {
		--wp--preset--color--base: #2b2b2b;
		--wp--preset--color--contrast: #ffffff;
	}

	.is-light-theme {
		display: none;
	}

	.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
		background-color: var(--wp--preset--color--contrast-2);
	}
}

@media (prefers-color-scheme: light) {
	.is-dark-theme {
		display: none;
	}

	.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
		background-color: var(--wp--preset--color--contrast-3);
	}
}