/*
Theme Name: FacePlus
Theme URI: https://faceplus.com.au
Author: vCore Digital
Author URI: https://vcore.au
Description: FacePlus Aesthetics theme for WordPress
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 8.2
Version: 1.1.5
Text Domain: faceplus
Tags: block-theme, fse, full-site-editing, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, block-styles, wide-blocks, translation-ready
*/

html {
	overscroll-behavior-y: none;
	scroll-behavior: smooth;
}

body {
	overscroll-behavior-y: none;
}

/* Disable smooth scrolling for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/**
 * Navigation
 */

.wp-block-navigation__container .wp-block-navigation-item:not(:last-child)::after,
.wp-block-page-list .wp-block-navigation-item:not(:last-child)::after {
	content: '|';
	margin-left: 1.2rem;
}

/**
 * Social icons
 */
.wp-block-social-links .wp-block-social-link-anchor {
	align-items: center;
	border: 1px solid var(--wp--preset--color--secondary);
	border-radius: 9999px;
	display: flex;
	height: 3rem;
	justify-content: center;
	transition: background-color 150ms ease-in-out, color 150ms ease-in-out, border-color 150ms ease-in-out;
	width: 3rem;
}

.wp-block-social-links .wp-social-link a,
.wp-block-social-links .wp-social-link a:hover {
	border-bottom: 1px solid var(--wp--preset--color--secondary);
}

.wp-block-social-link:hover {
	transform: none;
}

.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover {
	background-color: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--background);
}

.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg {
	fill: var(--wp--preset--color--background);
	height: 1.5rem;
	transition: fill 150ms ease-in-out, stroke 150ms ease-in-out;
	width: 1.5rem;
}

.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover svg,
.wp-block-social-links .wp-block-social-link.wp-social-link.wp-social-link-tiktok .wp-block-social-link-anchor svg,
.wp-block-social-links .wp-block-social-link.wp-social-link.wp-social-link-linkedin .wp-block-social-link-anchor svg {
	fill: var(--wp--preset--color--secondary);
}

.wp-block-social-links .wp-block-social-link.wp-social-link.wp-social-link-tiktok .wp-block-social-link-anchor:hover svg,
.wp-block-social-links .wp-block-social-link.wp-social-link.wp-social-link-linkedin .wp-block-social-link-anchor:hover svg {
	fill: var(--wp--preset--color--background);
}

@media (max-width: 783px) {
	.wp-block-social-links .wp-block-social-link-anchor {
		height: 1.5rem;
		width: 1.5rem;
	}
}

/**
 * Read more button
 */
.wp-block-read-more,
.is-style-more > .wp-element-button,
.more-link {
	position: relative;
	transition: color 150ms ease-in-out;
}

.wp-block-read-more:hover,
.is-style-more > .wp-element-button:hover,
.more-link:hover {
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
}

.wp-block-read-more::before,
.is-style-more > .wp-element-button:before,
.more-link::before {
	background-color: var(--wp--preset--color--border);
	content: "";
	height: 0.9em;
	position: absolute;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
}

.wp-block-read-more::after,
.is-style-more > .wp-element-button::after,
.more-link::after {
	content: "→";
	font-size: 1.5rem;
	position: absolute;
	right: -10px;
	top: 44%;
	transform: translate(0, -50%);
	transition: transform 150ms ease-in-out;
}

.wp-block-read-more:hover::after,
.is-style-more > .wp-element-button:hover::after,
.more-link:hover::after {
	transform: translate(0.25rem, -50%);
}

/**
 * Helper classes
 */
.has-hover-images .wp-block-image {
	overflow: hidden;
	position: relative;
}

.has-hover-images .wp-block-image > img {
	transform: scale(1);
	transition: transform 500ms ease;
}

.has-hover-images .wp-block-image::after {
	background-color: oklab(0 0 0 / 0.3);
	content: "";
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity 250ms ease;
}

.has-hover-images .wp-block-image:hover::after {
	opacity: 1;
}

.has-hover-images .wp-block-image:hover > img {
	transform: scale(1.05);
}

.has-hover-images p:has(svg) {
	align-items: center;
	display: flex;
	gap: 9px;
}

.has-hover-images p:has(svg) svg {
	color: var(--wp--preset--color--secondary);
}

/**
 * Before/after section
 */
.before-after-section {
	overflow: hidden;
	position: relative;
}

.before-after-section:has(> .wp-block-columns > .wp-block-column:last-child .wp-block-image)::before {
	background-position: left;
	margin-left: 100px;
	margin-right: 0;
}

.before-after-section > .wp-block-columns {
	position: relative;
	z-index: 1;
}

@media (min-width: 782px) {
	.before-after-section .wp-block-columns > .wp-block-column:has(> .wp-block-group) > .wp-block-group {
		max-width: 55rem;
		z-index: 1;
	}

	.before-after-section .wp-block-columns > .wp-block-column:first-child:has(> .wp-block-group) > .wp-block-group {
		margin-left: auto;
		margin-right: -12% !important;
	}

	.before-after-section .wp-block-columns > .wp-block-column:last-child:has(> .wp-block-group) > .wp-block-group {
		margin-left: -12% !important;
	}
}

@media (max-width: 783px) {
	.out-of-town .wp-block-group > .wp-block-columns:first-of-type,
	.before-after-section .wp-block-image {
		display: none;
	}

	.before-after-section .wp-block-group.animate {
		box-shadow: none !important;
	}
}


@media (min-width: 1200px) {
	.before-after-section .wp-block-columns > .wp-block-column:has(.wp-block-image) .wp-block-image {
		max-height: 700px;
	}

	.before-after-section .wp-block-columns > .wp-block-column:has(.wp-block-image) .wp-block-image img {
		height: 100%;
		width: 100%;
	}
}

/**
 * Grid helpers
 */
.grid-four-elements {
	grid-template-columns: 1fr;
}

@media (min-width: 782px) {
	.grid-four-elements {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.grid-four-elements {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/**
 * Logo
 */
@media (max-width: 783px) {
	.company-logo img {
		height: 40px !important;
	}
}

.company-logo img {
	filter: grayscale(100%);
	transition: filter 0.3s ease;
}

.company-logo img:hover {
	filter: grayscale(0);
}

/**
 * Meet the surgeon styles
 */
.meet-the-surgeon .wp-block-columns > .wp-block-column:nth-child(odd) {
	display: none;
}

@media (min-width: 782px) {
	.meet-the-surgeon .wp-block-columns > .wp-block-column:nth-child(odd) {
		display: block;
	}
}

/**
 * Top Banner
 */
.banner-top {
	font-weight: 400;
	letter-spacing: 0;
	opacity: 1;
	overflow: hidden;
	transition: opacity 300ms ease, transform 300ms ease, max-height 300ms ease;
}

.banner-top.is-hidden {
	max-height: 0;
	opacity: 0;
	transform: translateY(-100%);
}

.banner-top__contact-link {
	align-items: center;
	display: flex;
	gap: 0.25rem;
	transition: color 150ms ease;
}

.banner-top svg {
	flex-shrink: 0;
	height: 0.75rem;
	width: 0.75rem;
}

.banner-top__contacts.is-layout-flex {
	display: none;
}

@media (min-width: 782px) {
	.banner-top__contacts.is-layout-flex {
		display: flex;
	}
}

@media (max-width: 1349px) {
	.banner-top__contacts {
		gap: 0;
	}
}

/**
 * Navigation
 */
.site-header > .wp-block-group > nav {
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
}

.wp-block-navigation__container .wp-block-navigation-item:not(:last-child)::after {
	color: var(--wp--preset--color--border);
}

body > .wp-site-blocks > header:has(.site-header.white) {
	position: sticky;
	top: 0;
	z-index: 50;
}

.site-header:not(.white) {
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 50;
}

.site-header {
	transition: all 300ms ease;
}

@media (max-width: 783px) {
	.site-header {
		padding: var(--wp--preset--spacing--12) !important;
	}

	.site-logo {
		max-width: 200px;
	}
}

@media (max-width: 500px) {
	.site-logo {
		max-width: 150px;
	}
}

@media (max-width: 1023px) {
	.site-header > .wp-block-group > nav.wp-block-navigation:first-of-type {
		display: none;
	}
}

.site-header .wp-block-navigation__responsive-container-open svg rect {
	transition: fill 200ms ease;
}

.site-header:not(.is-scrolled) > .wp-block-group > nav.wp-block-navigation:first-of-type a {
	color: var(--wp--preset--color--background);
	text-decoration: none;
}

.site-header:not(.is-scrolled) > .wp-block-group > nav.wp-block-navigation:first-of-type a:hover {
	color: color-mix(in srgb, var(--wp--preset--color--background) 70%, transparent);
}

.site-header.is-scrolled .flyout-menu__button > span {
	color: var(--wp--preset--color--primary);
}

.site-header.is-scrolled {
	background-color: var(--wp--preset--color--background);
	box-shadow: var(--wp--preset--shadow--default);
	top: 0;
}

.site-header.is-scrolled > div {
	margin-top: 0;
}

/**
 * White header variant
 */
.site-header.white {
	background-color: var(--wp--preset--color--background);
}

.site-header.white.is-scrolled {
	top: 0;
}

.site-header.white > .wp-block-group > nav.wp-block-navigation:first-of-type a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

.site-header.white > .wp-block-group > nav.wp-block-navigation:first-of-type a:hover {
	color: var(--wp--preset--color--secondary);
}

.site-header.white .flyout-menu__button > span {
	color: var(--wp--preset--color--primary);
}

.site-header.white .flyout-menu__button svg rect {
	fill: var(--wp--preset--color--primary);
}

/**
 * Scroll animations
 */
:root {
	--animation-duration: .9s;
	--animation-shift: 40px;
	--animation-transform: cubic-bezier(0, 1.1, .985, .985);
}

/* Base animation class */
.animate {
	opacity: 0;
	transition: opacity var(--animation-duration), transform var(--animation-duration) var(--animation-transform);
}

.editor-styles-wrapper .animate {
	opacity: 1;
}

.animate.in-view {
	opacity: 1;
}

/* Fade up animation */
.animate.fade-up {
	transform: translateY(var(--animation-shift));
}

.animate.fade-up.in-view {
	transform: translateY(0px);
}

/* Animation delays */
.delay-1,
.delay-2,
.delay-3,
.delay-4 {
	transition-delay: 0s;
}

.in-view.delay-1 {
	transition-delay: 0.1s;
}

.in-view.delay-2 {
	transition-delay: 0.2s;
}

.in-view.delay-3 {
	transition-delay: 0.3s;
}

.in-view.delay-4 {
	transition-delay: 0.4s;
}

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
	.animate {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/**
 * Adjust core list block.
 */
.wp-block-list {
	list-style: none;
	margin-left: 0;
	padding-left: 0;
}

.wp-block-list li {
	align-items: flex-start;
	display: flex;
}

.wp-block-list li::before {
	color: var(--wp--preset--color--secondary-hover);
	content: "•";
	display: inline-block;
	font-size: 1.5rem;
	line-height: 1.5rem;
	margin-right: 0.75rem;
}

/**
 * Fix Gravity Forms styles
 */
.gform-body input,
.gform-body select,
.gform-body textarea {
	--gf-local-bg-color: transparent !important;
	--gf-local-outline-color: var(--wp--preset--color--background) !important;
}

.ginput_counter,
.gform-field-label {
	color: var(--wp--preset--color--background) !important;
}

.gfield_required_text {
	display: none !important;
}

.gform-body input:not([type="checkbox"]),
.gform-body select {
	border-width: 0 !important;
	border-bottom-width: 1px !important;
}

.gform-footer {
	justify-content: center !important;
}

.gform_button {
	background-color: var(--wp--preset--color--secondary) !important;
	letter-spacing: 0.1em !important;
	padding: 20px 40px !important;
	text-transform: uppercase !important;
}

/**
 * Floating CTA buttons
 */
.floating-cta {
	bottom: var(--wp--preset--spacing--32);
	position: fixed;
	right: var(--wp--preset--spacing--32);
	z-index: 40;
}

.floating-cta .wp-element-button {
	align-items: center;
	display: flex;
	gap: var(--wp--preset--spacing--8);
}

@media (max-width: 600px) {
	.floating-cta {
		bottom: var(--wp--preset--spacing--12);
		left: 0;
		margin-inline: auto;
		right: 0;
		width: max-content;
	}

	.floating-cta .wp-block-button:last-of-type {
		display: none;
	}
}
