/*
@theme Name: sanctuary-barrel-co
@Description: This site was built by Central States Marketing. For more information about the site or this custom WordPress theme, you can contact Central States Marketing at: info@centralstatesmedia.com or call us at: 309-693-2345.
@Author: Central States Marketing
@Author URI: http://www.centralstatesmarketing.com/
@Version: 1.0
@Date: August 2024
@charset "utf-8";
*/

/* === CSS Custom Properties === */
:root {
	--blue-base: 57.04% 0.103 219.66;
	--red-base: 46.84% 0.188 28.63;
	--white-base: 100% 0 0;
	--black-base: 20% 0 0;

	--primary: oklch(var(--blue-base));
	--secondary: oklch(var(--red-base));
	--white: oklch(var(--white-base));
	--black: oklch(var(--black-base));
	--gray-25: oklch(95% 0 0);
	--gray-50: oklch(60% 0 0);
	--gray-75: oklch(30% 0 0);

	--shadow-color: oklch(var(--black-base) / 0.8);
	--shadow-color-hover: oklch(var(--black-base) / 0.4);

	--shadow: 0 4px 12px var(--shadow-color);
	--shadow-hover: 0 0 10px var(--shadow-color-hover);

	--gutter: 2rem;
	--max-w-max: 125rem;
	--max-w-content: 75rem;
	--max-w-text: 50rem;

	--font: 'Karla', sans-serif;

	--fs-sm: clamp(0.73rem, 0.11vi + 0.7rem, 0.8rem);
	--fs-base: clamp(0.88rem, 0.29vi + 0.8rem, 1.06rem);
	--fs-md: clamp(1.05rem, 0.56vi + 0.91rem, 1.41rem);
	--fs-lg: clamp(1.26rem, 0.95vi + 1.02rem, 1.88rem);
	--fs-xl: clamp(1.51rem, 1.52vi + 1.13rem, 2.5rem);
	--fs-2xl: clamp(1.81rem, 2.32vi + 1.23rem, 3.32rem);
	--fs-3xl: clamp(2.18rem, 3.45vi + 1.31rem, 4.42rem);
	--fs-4xl: clamp(2.5rem, 4.05vi + 1.41rem, 5.5rem);
	--fs-5xl: clamp(2.81rem, 4.55vi + 1.51rem, 6.6rem);

	--transition: all 200ms ease-out;
}

/* === Reset === */
*,
*::before,
*::after {
	box-sizing: border-box;
}
html,
body {
	padding: 0;
	margin: 0;
	font-family: var(--font);
	font-optical-sizing: auto;
	font-style: normal;
	font-size: var(--fs-base);
	line-height: 1.5;
	scroll-behavior: smooth;
}
img,
picture,
iframe {
	max-width: 100%;
	display: block;
}
input,
button,
textarea,
select {
	font: inherit;
}
ul,
ol {
	list-style-position: inside;
}
p {
	text-wrap: pretty;
}
@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
#slider .caption-wrap {
	position: unset;
	bottom: unset;
	left: unset;
	background: unset;
	color: unset;
	opacity: unset;
	margin: unset;
	display: unset;
	width: unset;
	line-height: unset;
}
:where(.menu, .sub-menu) {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* === Template Specific === */
.post-edit-link {
	display: block;
	width: fit-content;
	color: limegreen;
	text-transform: uppercase;
	border: 3px solid limegreen;
	padding: 0.5em 1em;
	border-radius: 0.5em;
	margin: 0 auto;
	text-decoration: none;
	&:hover {
		color: white;
		background-color: limegreen;
	}
}
.sorry {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	background-color: var(--primary);
	color: var(--white-base);
}

/* === Globals === */
:where(h1, h2, h3, h4, h5, h6) {
	--color: var(--black);
	font-weight: 400;
	color: var(--color);
	font-family: var(--font);
	line-height: 1;
	margin-block: 0.5em;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-wrap: pretty;
}
h1 {
	--color: var(--primary);
	font-size: var(--fs-xl);
}
h2 {
	font-size: var(--fs-lg);
}
h3 {
	--color: var(--primary);
	font-size: var(--fs-md);
}
h4 {
	font-size: var(--fs-md);
}
h5 {
	--color: var(--primary);
	font-size: var(--fs-base);
}
h6 {
	--color: var(--gray-75);
	font-size: var(--fs-base);
}
hr {
	width: 100%;
	height: 2px;
	border: none;
	margin: 2em 0;
	background-color: var(--gray-25);
}
svg {
	fill: currentColor;
}
a:has(svg) {
	display: flex;
}
.btn, .gform_button {
	--btn-color: var(--primary);
	display: inline-block;
	background-color: var(--btn-color);
	padding: 0.5rem 1.5rem;
	border-radius: 0.25rem;
	color: var(--white);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 2px;
	outline: none;
	border: none;
}
.btn__alt {
	--btn-color: var(--white);
	color: var(--black);
}
.btn:hover, .gform_button:hover {
	background-color: color-mix(in oklch, var(--btn-color) 80%, transparent 20%);
}

/* === Utils === */
.wrapper-max {
	max-width: var(--max-w-max);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.wrapper-content {
	max-width: var(--max-w-content);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.wrapper-text {
	max-width: var(--max-w-text);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.fs-sm {
	font-size: var(--fs-sm);
}
.fs-base {
	font-size: var(--fs-base);
}
.fs-md {
	font-size: var(--fs-md);
}
.fs-lg {
	font-size: var(--fs-lg);
}
.fs-xl {
	font-size: var(--fs-xl);
}
.fs-xxl {
	font-size: var(--fs-xxl);
}
.fs-xxxl {
	font-size: var(--fs-xxxl);
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* === Navigation === */
.site-header {
	position: relative;
	z-index: 1000;
}

/* .site-header.is-locked {
	box-shadow: var(--shadow);
} */

.site-header {
	background-color: var(--primary);
}

.site-header__wrapper {
	padding: 1rem var(--gutter);
	background-color: var(--primary);
	position: relative;
	z-index: 1000;
}

.main-navigation {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;

	.menu {
		display: flex;
		gap: 2rem;
	}

	.menu-item a {
		color: var(--white);
		text-decoration: none;
		text-transform: uppercase;
		font-weight: 700;
	}
}

.site-header .menu {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.menu-item {
	position: relative;
}

.sub-menu {
	display: none;
	position: absolute;
	align-items: center;
}

.site-header .menu-item:has(.sub-menu):hover .sub-menu {
	display: flex;
	flex-direction: column;
}

.right-menu {
	justify-self: end;
}

.right-menu .menu {
	justify-content: end;
}

@media (width > 950px) {
	.menu-toggle {
		display: none;
	}
}

@media (width <= 950px) {
	.site-branding svg {
		max-width: 180px;
		max-height: 70px;
	}
	.main-navigation {
		grid-template-columns: 1fr auto;
	}
	.menu-container {
		display: none;
	}
}

/* === Drawer === */
.drawer {
	position: absolute;
	top: calc(100% - 1px);
	right: 0;
	width: 100%;
	background-color: var(--primary);
	z-index: 999;
	transform: translateY(-150%);
	box-shadow: var(--shadow);
	transition: var(--transition);
}

.drawer.is-open {
	transform: translateY(0px);
}

.drawer__wrapper {
	display: flex;
	flex-direction: column;
	align-items: end;
	justify-content: space-between;
	height: 100%;
	padding: 2rem var(--gutter) 4rem;
}

.drawer__nav {
	width: 100%;
	height: 100%;
	overflow-y: auto;
}

.drawer .menu-main-menu-container {
	height: 100%;
}

.drawer .menu {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.drawer .menu-item a {
	display: block;
	font-size: var(--fs-lg);
	padding-block: 1rem;
	font-weight: 700;
	color: var(--white);
	text-transform: uppercase;
	text-decoration: none;
}

.drawer .sub-menu .menu-item a {
	padding: 0.5rem 0;
}

.drawer .sub-menu {
	display: none;
}

.drawer .sub-menu .menu-item a {
	font-size: var(--fs-md);
}

.menu-toggle {
	background: none;
	border: none;
}

.menu-toggle svg {
	color: var(--white);
}

/* === Hero === */
.hero {
	position: relative;
}
#slider .caption-wrap {
	position: absolute;
	top: 50%;
	left: calc(var(--gutter) * 3);
	transform: translateY(-50%);

	.caption__title,
	.caption__title strong {
		color: var(--white);
		display: block;
		font-size: var(--fs-xl);
		font-weight: 400;
		text-transform: uppercase;
		letter-spacing: 0.5em;
	}

	.caption__title strong {
		font-size: var(--fs-3xl);
		font-weight: 800;
		letter-spacing: 0.4em;
	}

	.caption__title strong:last-of-type {
		margin-block-end: 0.3em;
	}

	@media (width < 950px) {
		left: var(--gutter);
	}
}

/* === Front Page === */
.intro {
	padding: 4rem var(--gutter);
}
.intro__wrapper {
	max-width: var(--max-w-text);
	margin-inline: auto;
}
.intro__text {
	text-align: center;
}
.intro__text p {
	text-align: justify;
}

.color-block {
	padding: 4rem var(--gutter);
	background-color: var(--secondary);
}

:is(.color-block__wrapper, .white-block__wrapper) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4rem;
	max-width: var(--max-w-content);
	margin-inline: auto;
	align-items: center;

	@media (width < 950px) {
		grid-template-columns: 1fr;
	}
}

:is(.color-block__image, .white-block__image) {
	width: 100%;
	height: 100%;
	aspect-ratio: 7 / 6;
	border-radius: 1rem;
	overflow: clip;

	& img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

.color-block__text {
	color: var(--white);

	h3 {
		color: var(--white);
	}

	@media (width < 950px) {
		grid-row: 1 / 2;
	}
}

.white-block {
	padding: 4rem var(--gutter);
}

.white-block__text h3 {
	color: var(--black);
}

figure.wp-block-kadence-image {
	margin: 0;
}
/* === Banner === */
.banner img {
	width: 100%;
}

/* === Footer === */
.site-footer {
	padding: 6rem var(--gutter) 1rem;
	background-color: var(--primary);
	text-transform: uppercase;
}
.site-footer a {
	color: var(--white);
}
.site-footer__wrapper {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	max-width: var(--max-w-content);
	margin-inline: auto;
	padding-block-end: 3rem;
	color: var(--white);

	& a {
		text-decoration: none;
	}

	@media (width < 950px) {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
		gap: 2rem;
	}
}
.site-footer__logo {
	align-items: center;
	margin-block-start: -2rem;
	align-items: start;
}
.site-footer__socials {
	display: flex;
	align-items: center;
	gap: 1rem;

	@media (width < 950px) {
		justify-content: center;
	}
}
.site-footer__socials a {
	display: flex;
	align-items: start;
	color: var(--primary);
	background-color: var(--white);
	padding: 0.33rem;
	border-radius: 9999px;
	transition: background-color 200ms ease-out, color 200ms ease-out;

	&:hover {
		background-color: color-mix(in oklch, var(--white) 80%, transparent 20%);
	}
}
.site-footer__copyright {
	text-align: center;
	color: var(--white);
	font-size: var(--fs-sm);
}

/* === Inside Pages === */
.featured {
	padding-block: 2rem;
	background-color: var(--gray-25);
}
.featured__title {
	max-width: var(--max-w-content);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.content {
	padding-block: 2rem;
}
.content a:not(.btn, .post-edit-link) {
	color: var(--primary);
	text-decoration: underline;
	text-decoration-thickness: 2px;
}
.content a:not(.btn, .post-edit-link):hover {
	text-underline-offset: 3px;
}

/* === Keyframes === */

/* === Live Fixes === */
