/*
Theme Name: wwh
Version: 1.0
Author: Tony Scialdone for Worldwide Hustle
Description: a custom theme built in 2024
*/


/* Updated 2024 02 01 */

/* RESET */
* { position: relative; margin: 0; padding: 0; box-sizing: border-box;	background-clip: padding-box; max-width: 100%; line-height: calc(1em + 0.5rem); hyphens: auto; }
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; overscroll-behavior: contain; }


:root {
	--seethru: rgba(241,241,241, .95);
	--dark:		#403876;
	--light:	#9a999a;
	--medium:	#005B56;
	--copy:		arial, sans-serif;
	--br-sm:	3px;
	--hover:	all .2s ease-in-out;
	--scale:	scale(1.1);
}

html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	/* font adjust is now available */
}

::-webkit-scrollbar { width: 20px; }
::-webkit-scrollbar-track { background: #444; }
::-webkit-scrollbar-thumb { min-height: 100px; background: #000; border-radius: 10px; }


body { 
	margin: 0;
	padding: 0 0 150px; 
	background-image: url(/wp-content/themes/wwh/images/bg-disco.avif);
	background-repeat: no-repeat;
	background-size: cover;
	font: normal 16px/1.5 sans-serif;
	color: #222;
	hanging-punctuation: first last;
	text-rendering: optimizeSpeed;
	overflow-x: hidden;
	overflow-y: scroll;
	scroll-behavior: smooth;
	background-color: #ccc; 
}


header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height: 175px;
	background-color: #403876;
	background-image:
		url(images/sm-world.png),
		url(images/sm-world.png);
	background-position:
		center right,
		center left;
	background-repeat:
		no-repeat,
		no-repeat;	
}


header a { 
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin: 0; 
	height: 100%;
	font: 500 48px/1 'Fjalla One', sans-serif; 
	color: #fff;
	text-transform: uppercase;
}

header a span { 
	font-size: 80px; 
	line-height: 1; 
}

main {
	margin: 0 auto; 
}

.purpose {
	padding: .5rem 1rem;
	background-color: white;
	border-radius: var(--br-wm);
}

.loc-search {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center; 
}

.loc-search select { 
	margin: 0;
	width: calc(100% - 120px);
	font-size: 1.25rem;
}

.loc-search input[type="submit"] {
	margin: 0 0 0 .5rem; 
	padding: 0 1rem;
	font-size: .9rem;
	text-transform: uppercase;
}

.slider section {
	width: 100%;
}

main.archive {
	display: flex; 
	justify-content: center; 
	flex-wrap: wrap;
	margin: 0 auto;
	padding: 2rem 0;
	max-width: 550px;
}

.newLoc {
	margin: 0 0 1rem;
	padding: 1rem; 
	background-color: var(--dark);
	color: #fff;
	border-radius: var(--br-sm);
}

main.archive section {
	margin: 0 auto 3rem; 
	padding: 2rem; 
	width: 500px;
	background: var(--seethru);
	border-radius: 7px; 
}

h1, h2 { 
	font: normal 2rem/1.5 'Fjalla One', sans-serif;
}

h2 { 
	padding: 0; 
	font-size: 1.5rem; 
}

.home h2 { padding-left: 0; }

h2 + h3 {
	margin: 0 0 .5rem; 
	font: normal 1rem/1.25 var(--copy);
	text-transform: uppercase;
}

.thumb {
	margin-bottom: .5rem;
}

.user-single article, .page article {
	border: 1rem solid #ccc;
}

.bar {
	margin: .5rem 0;
	padding: .25rem 1rem; 
	background-color: #403876; 
	color: #fff;
}

.bar:not(:first-of-type) {
	margin-top: 1rem; 
}

.bar span {
	font-size: .9rem;
	font-family: var(--copy);
}

.usp-pro .usp-input-files {
	font-size: 1rem !important; 
} 

.bar.security + label {
    margin-bottom: .5rem;
}

article {
	margin: 0 auto;
	
}

.homebox {
	display: flex; 
	justify-content: center;
	flex-wrap: wrap;
	gap: 2rem;
	margin: 0 auto; 
	padding: 24px 0 100px;
	width: clamp(300px, 1200px, 100%);
}

section {
	display: flex;
	flex-direction: column;
	padding: 2rem; 
	width: calc(50% - 4rem);
	background: var(--seethru);
	border-radius: 7px;
}



h2, h3, h4, h5, h6 { 
	text-wrap: balance;
	overflow-wrap: break-word;
}

input + h3, textarea + h3 {
	margin-top: 1rem;
}


p, dl, ol, ul, address {
	margin: 0 0 24px;
	text-wrap: pretty;
	overflow-wrap: break-word; 
}

p.note, label span, label.usp_label_custom {
	margin: 0 0 .5rem;
	font-size: .7rem !important;
	color: #777;
	text-transform: uppercase;
}

p:empty { visibility: hidden !important; margin: 0; }

fieldset p.note { margin-bottom: 0; }



.home-group-1 section article {
	margin: 0 0 1rem;
	padding: 4rem 1rem;
	border-radius: 5px;
}

.featured-events-box {
	margin: 0 0 2rem;
}

#user-submitted-posts {
	margin: 0 auto;
	padding: 2rem;
	width: 500px; max-width: 100%;
	background-color: var(--seethru);
}

.citystate {
	display: flex;
	align-items: center; 
	flex-wrap: wrap;
}

.user-single article, .page article {
	display: flex; 
	flex-direction: column;
	margin: 2rem auto;
	padding: 1.5rem;
	width: 600px;
	background-color: #fff;
	border-radius: 7px;
}

.wp-block-preformatted {
	margin: 1rem 0; 
	font: normal 16px/1.5 sans-serif;
}

form {
	display: flex;
	flex-direction: column; 
	width: 600px;
}

.usp-pro .usp-form { padding: 0 !important; }

.parsley-required {
	list-style-type: none;
	margin: 0;
	padding: .5rem 1rem;
	background-color: orange;
	text-align: center;
	border-radius: var(--br-sm);
}


.note.required::after,
has(label + [data-required="true"]) label::after { content: '*'; display: inline-block; margin-left: .25rem; font-weight: bold !important; color: red; }

has(label + :not[data-required="true"]) label::after { content: '!'; display: inline-block; margin-left: .25rem; font-weight: bold; color: red; }

fieldset {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin: .5rem 0 1rem;
}

fieldset > div {
	width: 45%;
}

form label, .usp-pro .usp-label, .usp-fieldset h2 label {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	flex-wrap: wrap;
	font: bold 1rem/1 var(--copy) !important;
}

label i {
	color: red;
}

form h3 {
	width: 100%;
}

form .wide label {
	font-weight: bold;
}

form > div {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 1rem;
}

form input {
	display: block;
}

form > div > * {
	width: 48%; 
}

form div.wide > * {
	width: 100%; 
}

input:not([type="submit"]) {
	display: block; 
	margin: 0 0 .5rem;
	padding: 2px 4px;
	font-size: 14px;
	border-radius: var(--br-sm);
}

input[type="submit"], .add {
	display: inline-block; 
	margin: 0 0 .5rem;
	padding: .5rem 1rem;
	width: fit-content;
	background-color: var(--dark);
	color: #fff !important;
	text-decoration: none;
	border-radius: var(--br-sm);
	cursor: pointer;
}

@media (max-width: 880px) {
	main { flex-direction: column; }
	section { margin: 1rem auto; width: calc(100% - 2rem); }
}


dd, li { 
	margin: 0 0 8px 32px; 
}

.usp-pro-display-posts-wrap, .usp-pro-display-posts-wrap li {
	margin: 0 0 1rem; 
	list-style-type: none;
}

.usp-pro-display-posts-wrap li {
	padding: 1rem 1rem 0; 
	background-color: white;
	text-align: center;
	border-radius: 5px; 
}

.usp-pro-display-posts-wrap li a {
	text-transform: uppercase;
	color: #000 !important;
}

/* Links without a class get default styling. */
a:not([class]) { 
	text-decoration: none; 
	cursor: pointer; 
}

caption, figcaption {
 text-wrap: balance;
}

article a:visited {
	color: purple;
}

img {
 max-width: 100%;
 height: auto;
 vertical-align: middle;
 font-style: italic;
 background-repeat: no-repeat;
 background-size: cover;
}

iframe[src*="youtube"],
iframe[src*="vimeo"] {
 width: 100%;
 max-width: 100%;
 height: auto;
 aspect-ratio: 16 / 9;
}

pre, p { white-space: pre-wrap; }
hr { border: .5px solid; }
blockquote { quotes: none; }
blockquote:before, blockquote:after { content: none; }

/* Layout */

.flex { 				display: flex; gap: 24px; }
.flex-row, .fr { 		flex-direction: row; }
.flex-column, .fc { 	flex-direction: column; }
.justify-center, .jc { 	justify-content: center; }
.justify-around, .ja { 	justify-content: space-around; }
.justify-between, .jb { justify-content: space-between; }
.justify-end, .je { 	justify-content: flex-end; }
.align-center, .ac { 	align-items: center; }
.align-start, .as { 	align-items: flex-start; }
.flex-wrap, .fw { 		flex-wrap: wrap; }







nav { 
	background: #ccc; 
}

nav ul {
	display: flex; 
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 24px;
	list-style: none;
	margin-inline: auto;
	padding: 0;
	width: 100%;
	background: #bbb;
	text-align: center; }

nav li {
	margin: 0; }

nav .menu a {
	display: inline-block;
	padding: 12px 24px;
	color: #fff;
	text-decoration: none;
	border: 0;
	transition: var(--hover);
}

nav .menu a:hover {
 transform: var(--scale);
}

nav .menu:hover a:not(:hover) {
 opacity: 0.5;
}

nav a {
	display: inline-block;
	padding: 12px 24px;
	background: #999;
	text-decoration: none; }

nav a:hover { 
	color: #fff; 
}

footer { 
	position: fixed; bottom: 0; 
	width: 100%; 
	background: darkslateblue; 
}

.copy {
		margin: 0;
		padding: 24px;
		font-size: .75rem;
		color: #fff;
		text-align: center;
		text-transform: uppercase; 
}

#skip-link {
	left: -9999px;
}

#skip-link:focus {
	display: block;
	left: auto;
	margin: 100px auto;
	padding: 4px;
	width: fit-content;
	background-color: red;
	color: #fff;
	text-decoration: none;
	outline: 0; 
}

/* ANCHOR LINKS */

a {
	scroll-margin-top: 3rem;
}

a:target { 
 color: red;
 background-color: yellow; 
}

:has(:target) {
 border-color: red;
}

/* Tables */

table {
	border-collapse: collapse;
	border-spacing: 0; }

		
/* Focus Styles - USE FOCUS-VISIBLE ONLY */

:focus-visible, :focus {
	outline: 2px solid red;
 	outline-offset: 2px; 
}

/* Remove the focus outline */
:focus:not(:focus-visible) {
 outline: none;
}


/* Forms */

label:has(required)::after {
	content: "(Required)";
	color: #ccc;
}

button,
input,
textarea,
select {
 font: inherit;
 letter-spacing: inherit;
 word-spacing: inherit;
}

input,
textarea,
button {
 border: 1px solid gray;
}

option {
	border-radius: 0 !important;
}

.front-page form {
	gap: 0;
}

textarea {
	margin: 0 0 1rem; 
	min-height: 100px;
	white-space: pre-wrap;
}

textarea:last-of-type { margin-bottom: 0; }

label[for="usp-captcha"] { font-weight: bold; }

button:not(.slider-wrapper button) {
	padding: 0;
	min-width: 100px;	
	background: none;
	border: none;
	border-radius: 0;
	text-align: inherit;
	box-shadow: none;
	cursor: pointer;
}

.btn {
 will-change: transform;
}


/* Utility Classes */

.red { color: #f00; }
.alignleft { float: left; margin: 0 24px 24px 0; }
.alignright { float: right; margin: 0 0 24px 24px; }
b, strong { font-weight: bold; }
i, em { font-style: italic; }
.dim { font-size: .75rem; color: #777; text-transform: uppercase; }
.sm { font-size: 50%; }


[hidden], 
[type="hidden"], 
.visually-hidden,
[aria-hidden="true"] {
	border: 0;
	clip: rect(0 0 0 0); 
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap; 
	width: 1px;
}


/* Mobile Nav */

body.menu-open {
	overflow-y: hidden;
}

.m-menu, nav.mobile {
	display: none;
}

nav.mobile {
	align-items: flex-start; 
	position: absolute; top: 0; left: -300px; z-index: 7; 
	height: 100%; 
	width: 300px;
	box-shadow: 0 0 1000px 1000px rgba(0,0,0,.5);
	overflow-y: scroll;
	overflow-x: hidden;
	transition: all .2s ease-in-out;
}

nav.mobile > div {
	width: 100%;
}

nav.mobile li {
	margin: 0 0 4px;
	padding-left: 10px;
}

nav.mobile a {
	padding: 8px 8px 8px 0;
	font-size: 14px;
}

nav.mobile .sub-menu {
	margin: 0 0 0 8px;
}

nav.mobile .sub-menu li {
	padding-left: 0;
}

nav.mobile .sub-menu a::before {
	content: '\00bb';
	margin-right: 8px;
}

nav.mobile .menu-container::-webkit-scrollbar {
 width: 12px;
}

nav.mobile .menu-container::-webkit-scrollbar-track {
 -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
 background-color: #555;
}

nav.mobile .menu-container::-webkit-scrollbar-thumb {
 min-height: 50px;
 background-color: #fc3;
 border-radius: 24px;
 outline: 0 solid slategrey;
}

nav.mobile .menu-container {
 /* for proper scrolling */
 position: absolute; top: 0; left: 0;
	padding: 64px 0;
 height: 100%;
 width: 100%;
 overflow-y: auto;
 -webkit-overflow-scrolling: touch;
}

.close {
 display: grid; 
	align-items: center;
	position: fixed; top: 52px; right: 6px; z-index: 2;
	margin: 0;
 height: 36px;
 width: 36px;
 background-color: var(--grey);
 font: bold 18px/1px var(--copy);
 color: #fff;
 border: 2px solid var(--grey);
 border-radius: 100%;
	transition: transform .2s ease-in-out;
 cursor: pointer;
}

.close img {
	display: block;
	margin: 0 auto;
	height: 20px;
	width: auto;
}

@media print { html #wpadminbar { display: block !important; }}

@media (prefers-reduced-motion: reduce) {
 *,
 *::before,
 *::after {
 animation-duration: 0.01ms !important;
 animation-iteration-count: 1 !important;
 transition-duration: 0.01ms !important;
 scroll-behavior: auto !important;
 }
}


@media (prefers-reduced-motion: no-preference) {
	:has(:target) {
		scroll-behavior: smooth;
		scroll-padding-top: 3rem;
	}
}

 @media (prefers-reduced-transparency: reduce) {
 * { opacity: 1; }
 }

@media (max-width: 1040px) {
	nav.top { display: none; }
	.m-menu { display: flex; justify-content: center; align-items: center; gap: 10px; padding: 8px; font-size: 20px; color: #fff; text-align: center; }
	nav.mobile.show { display: flex; transform: translatex(300px); }
	nav.mobile .menu li,
	nav.mobile .menu li a { display: block; width: 100%; }
}
