/*=====
Theme Name: Name
Author: Pedro Gris
Author URI: https://pedrogris.com/
Description: A custom WordPress theme developed with ♥ by Pedro Gris, specifically designed for the Pánico website. All rights reserved. This theme is not intended for redistribution, modification, or resale.
Version: 1.0.0
Requires at least: 5.0
Tested up to: 6.6.1
Requires PHP: 7.0
License: Proprietary - All Rights Reserved
License URI: https://pedrogris.com/
Text Domain: panico
Tags: custom, modern, responsive, SEO-friendly, accessible
=======*/



/* FONT */
@font-face {
	font-family: 'Monument Extended';
	src: url('/wp-content/themes/panico/assets/fonts/MonumentExtended-Bold.woff2') format('woff2'),
	url('/wp-content/themes/panico/assets/fonts/MonumentExtended-Bold.woff') format('woff');
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Input Sans';
	src: url('/wp-content/themes/panico/assets/fonts/InputSans-Regular.woff2') format('woff2'),
	url('/wp-content/themes/panico/assets/fonts/InputSans-Regular.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Input Sans';
	src: url('/wp-content/themes/panico/assets/fonts/InputSans-Medium.woff2') format('woff2'),
	url('/wp-content/themes/panico/assets/fonts/InputSans-Medium.woff') format('woff');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}



/* BASIC */

:root {
	@media (prefers-reduced-motion: no-preference) {
		interpolate-size: allow-keywords;
	}
	--black: #000;
	--white: #FCFCFB;
	--yellow: #FFC214;
	--red: #FF1A1F;
	--blue: #09399E;
	--light-blue: #E5F2F8;
	--green: #035C41;
	--cubic-bezier: cubic-bezier(0.25, 1, 0.5, 1);
	--cubic-bezier-bounce: cubic-bezier(0.4, 0, 0.2, 1.5);
}

::-moz-selection {
	color: var(--white);
	background: var(--black);
}
  
::selection {
	color: var(--white);
	background: var(--black);
}

.nojq  {
	display: none;
}

* {
	/* Designer mode */
	/* outline: 1px solid blue; */
	margin: 0;
	padding: 0;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
}

html {
	scrollbar-gutter: stable;
	interpolate-size: allow-keywords;
}

html.lenis,
html.lenis body {
	height: auto;
}

.lenis.lenis-smooth {
	scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}

.lenis.lenis-stopped {
	overflow: hidden;
}

.lenis.lenis-smooth iframe {
	pointer-events: none;
}

body,
html {
	overflow-x:hidden;
}

body {
	width: 100%;
	height: 100%;
	font-family: 'Monument Extended', sans-serif;
	color: var(--black);
	background-color: var(--white);
	font-size: 14px;
	font-weight: 400;
	margin: 0;
	padding: 0;
	min-block-size: 100svh;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 700;
}

h1 {
	font-size: 78.54px;
}

h2 {
	font-size: 58.92px;
}

h3 {  
	font-size: 44.2px;  
}

h4 {  
	font-size: 33.16px;  
}

h5 {  
	font-size: 24.88px;  
}

h6 {  
	font-size: 18.66px;  
}

p {
	font-size: 14px;
}

a {
	text-decoration: none;
	color: var(--black);
}

b {
	font-weight: 700;
}

.placeholder {
	height: 150svh;
}

.loader {
	position: fixed;
	inset: 0;
	background-color: var(--green);
	z-index: 9999;
	display: grid;
	place-items: center;
	overflow: hidden;

	.word {
		grid-area: 1 / 1;
		font-size: 10vw;
		line-height: 1.3;
		padding: 0.15em 0.1em;
		color: var(--yellow);
		text-transform: uppercase;
		opacity: 0;
		will-change: transform, opacity;
	}
}

nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	margin-inline: auto;
	box-sizing: border-box;
	width: 100%;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding: 10px 20px;
	border-radius: 0px;
	background-color: transparent;
	transition: background-color 0.5s var(--cubic-bezier);
	z-index: 1000;

	.logo {
		display: block;
		width: 65px;
		height: 65px;
	}

	.main-nav {
		display: flex;
		flex-direction: row;
		gap: 20px;

		.menu-item {
			width: fit-content;
			height: fit-content;
			font-size: 18px;
			font-weight: 700;
			line-height: 100%;
			padding: 12px 12px 10px;
			text-transform: uppercase;
			display: inline-flex;
			align-items: center;
			box-sizing: border-box;
			overflow: hidden;
			--bw: 3px;
			box-shadow: inset 0 0 0 var(--bw) var(--bc, transparent);
			transition: background-color 0.3s var(--cubic-bezier),
				color 0.3s var(--cubic-bezier);

			.text,
			.text-mobile {
				display: inline-block;
				white-space: nowrap;
				overflow: hidden;
			}

			.text {
				width: auto;
				opacity: 1;
				text-align: right;
				transform-origin: right center;
			}

			.text-mobile {
				width: 0;
				opacity: 0;
				text-align: left;
				transform-origin: left center;
			}

			&.yellow {
				--bc: var(--green);
				background-color: var(--yellow);
				color: var(--green);
			}

			&.whitered {
				--bc: var(--red);
				background-color: var(--white);
				color: var(--red);
			}

			&.blue {
				--bc: var(--blue);
				background-color: var(--blue);
				color: var(--white);
			}

			&.red {
				--bc: var(--red);
				background-color: var(--red);
				color: var(--white);
			}

			@media (min-width: 768px) {
				&.yellow:hover {
					background-color: var(--green);
					color: var(--yellow);
				}

				&.whitered:hover {
					background-color: var(--red);
					color: var(--white);
				}

				&.blue:hover {
					background-color: var(--white);
					color: var(--blue);
				}

				&.red:hover {
					background-color: var(--white);
					color: var(--red);
				}
			}
		}
	}

	&.scrolled {
		top: 20px;
		gap: 10px;
		width: fit-content;
		padding: 10px;
		border-radius: 50px;
		background-color: var(--light-blue);

		.logo {
			width: 45px;
			height: 45px;
		}

		.main-nav {
			gap: 10px;

			.menu-item {
				/* font-size: 14px; */
				width: 45px;
				height: 45px;
				padding: 0;
				--bw: 2px;
				border-radius: 30px;

				.text {
					width: 0;
					opacity: 0;
				}

				.text-mobile {
					width: auto;
					opacity: 1;
					margin: auto;
				}

				&.expand {
					width: fit-content;
					height: 45px;
					padding: 7px 12px 5px;
					--bw: 3px;
					border-radius: 0;

					.text {
						width: auto;
						opacity: 1;
					}

					.text-mobile {
						width: 0;
						opacity: 0;
					}
				}
			}
		}
	}
}

.blur-overlay {
	position: fixed;
	inset: 0;
	backdrop-filter: blur(8px);
	opacity: 0;
	pointer-events: none;
	z-index: 999;
	transition: opacity 0.6s var(--cubic-bezier);

	&.active {
		opacity: 1;
		pointer-events: auto;
	}
}

.banner {
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
	width: calc(100% - 40px);
	height: calc(100svh - 40px);
	padding: 20px;
	position: relative;
	overflow: hidden;
	color: var(--white);
	background-color: var(--black);

	video {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		z-index: 0;
	}

	&::after {
		content: '';
		position: absolute;
		inset: 0;
		background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 100%);
		opacity: var(--overlay-opacity, 0.5);
		z-index: 1;
	}

	.main-content {
		--theme-color: var(--yellow);
		width: 100%;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		gap: 20px;
		color: var(--theme-color);
		font-family: 'Input Sans', sans-serif;
		z-index: 2;

		.banner-logo {
			display: block;
			width: 15vw;
			height: fit-content;
			overflow: visible;

			path {
				fill: var(--theme-color);
				transform: translateY(-11px);
			}
		}

		.horizontal-line {
			height: 3.5px;
			width: 10vw;
			background-color: var(--theme-color);
		}

		h1 {
			font-size: 15px;
			width: 25vw;
			text-wrap: balance;
			font-weight: 400;
		}

		.transversal-line {
			height: 3.5px;
			width: 25px;
			background-color: var(--theme-color);
			transform: rotate(-45deg);
			transform-origin: top right;
		}

		h2 {
			font-size: 15px;
			width: 10vw;
			text-wrap: balance;
			text-transform: uppercase;
			font-weight: 400;
		}

		.theme-toggle {
			display: block;
			width: 36px;
			height: 36px;
			cursor: pointer;

			path {
				stroke: var(--theme-color);
			}

			circle {
				fill: var(--theme-color);
			}
		}

		&.yellow {
			--theme-color: var(--yellow);
		}

		&.light-blue {
			--theme-color: var(--light-blue);
		}

		&.red {
			--theme-color: var(--red);
		}
	}
}

.brand-statement {
	--theme-bg: var(--yellow);
	--theme-color: var(--green);
	--theme-btn-text: var(--green);
	--theme-logo: var(--white);
	display: flex;
	flex-direction: column;
	gap: 100px;
	background-color: var(--theme-bg);
	padding: 100px 20px;

	.text-content {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		color: var(--theme-color);

		.tags {
			display: flex;
			flex-direction: column;

			.tag {
				font-size: clamp(30px, 8vw, 100px);
				line-height: 90%;
				text-transform: uppercase;
			}
		}

		.small-text {
			font-family: 'Input Sans', sans-serif;
			text-align: right;
		}
	}

	.actionable {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;

		.button {
			--bc: var(--theme-color);
			color: var(--theme-btn-text);
			background-color: var(--white);
			width: fit-content;
			height: fit-content;
			font-size: 18px;
			font-weight: 700;
			line-height: 100%;
			padding: 12px 12px 10px;
			text-transform: uppercase;
			display: inline-flex;
			align-items: center;
			box-sizing: border-box;
			overflow: hidden;
			--bw: 3px;
			box-shadow: inset 0 0 0 var(--bw) var(--bc, transparent);
			transition: background-color 0.2s var(--cubic-bezier),
				color 0.2s var(--cubic-bezier),
				box-shadow 0.2s var(--cubic-bezier);
		}

		.transversal-line {
			height: 3.5px;
			width: 25px;
			background-color: var(--theme-color);
			transform: rotate(-45deg);
			transform-origin: center;
		}

		svg {
			path:first-of-type {
				fill: var(--theme-logo);
			}

			path:not(:first-of-type) {
				fill: var(--theme-color);
			}
		}
	}

	&.yellow {
		--theme-bg: var(--yellow);
		--theme-color: var(--green);
		--theme-btn-text: var(--green);
		--theme-logo: var(--white);
	}

	&.red {
		--theme-bg: var(--light-blue);
		--theme-color: var(--red);
		--theme-btn-text: var(--red);
		--theme-logo: var(--white);
	}

	&.light-blue {
		--theme-bg: var(--red);
		--theme-color: var(--light-blue);
		--theme-btn-text: var(--red);
		--theme-logo: var(--red);
	}
}

.main-content,
.main-content .banner-logo path,
.main-content .horizontal-line,
.main-content .transversal-line,
.main-content .theme-toggle path,
.main-content .theme-toggle circle,
.brand-statement,
.brand-statement .text-content,
.brand-statement .actionable .transversal-line,
.brand-statement .actionable svg path {
	transition: color 0.2s var(--cubic-bezier),
		background-color 0.2s var(--cubic-bezier),
		fill 0.2s var(--cubic-bezier),
		stroke 0.2s var(--cubic-bezier);
}