/*
Theme Name: Creative Marching Solutions
Theme URI: https://creativemarchingsolutions.com/
Description: A custom Wordpress theme developed for Creative Solutions.
Version: 1.0
Author: Mathew Smith
Author URI: https://mathewsmithstudio.com/
Tags: blue, gray, white, two-columns, fixed-width
*/

/*
font-family: "Bebas Neue", sans-serif;
font-family: "Oswald", sans-serif;
font-family: "Anton", sans-serif;
font-family: "Inter", sans-serif;
*/

/* ========================================
   Fonts
======================================== */

@font-face {
	font-family: "Gunterz";
	src: url('assets/css/gunterz-bold-webfont.woff2') format('woff2'), url('assets/css/gunterz-bold-webfont.woff') format('woff');
	font-weight: 700;
	font-style: normal;
}

@font-face {
	font-family: "Grift";
	src: url('assets/css/grift-regular-webfont.woff2') format('woff2'), url('assets/css/grift-regular-webfont.woff') format('woff');
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: "Grift";
	src: url('assets/css/grift-bold-webfont.woff2') format('woff2'), url('assets/css/grift-bold-webfont.woff') format('woff');
	font-weight: 700;
	font-style: normal;
}

/* ========================================
   Global
======================================== */

:root {
	--white: #ffffff;
	--black: #000000;
	--teal: #2f8a8a;
	--teal-dark: #2b6060;
	--deep-teal: #274040;
	--nav-dark: #242e2e;
	--yellow: #ece74a;
	--light-gray: #f5f5f5;
	--gray: #eeeeee;
	--border: #dddddd;
	--bs-border-color: var(--border);
	--body-font: "Grift", sans-serif;
	--heading-font: "Gunterz", sans-serif;
	--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

body {
	font-family: var(--body-font);
	line-height: 1.8;
}

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
	font-family: var(--heading-font);
	font-weight: 700;
	margin: 0;
}

a {
	color: var(--teal);
	text-decoration: none;
	transition: all .15s ease-in-out;
}

a:hover {
	color: var(--teal);
}

.btn {
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 0.8125rem;
	line-height: 1;
	text-transform: uppercase;
	border: none;
	padding: 18px 24px 16px;
}

.btn-primary {
	color: var(--white);
	background-color: var(--teal);
}

.btn-primary:hover, .btn-primary:active {
	background-color: var(--teal-dark) !important;
}

input:focus, select:focus, textarea:focus, button:focus {
	outline: none;
}

.page-link, .page-link:hover {
	color: var(--teal);
}

.active > .page-link, .page-link.active {
	background-color: var(--teal);
	border-color: var(--teal);
}

/* ========================================
   Header
======================================== */

.top-bar {
	background-color: var(--nav-dark);
	padding: 12px 0;
}

.top-bar .form-group {
	position: relative;
}

.top-bar .form-group i {
	color: rgba(255, 255, 255, 0.5);
	position: absolute;
	top: 11px;
	right: 11px;
	z-index: 2;
}

.top-bar .form-control {
	color: var(--white);
	background-color: transparent;
	border-color: rgba(255, 255, 255, 0.35);
	padding-right: 34px;
}

.top-bar .form-control::placeholder {
	color: var(--white);
	opacity: 0.25;
}

.top-bar .nav-link {
	color: var(--white);
}

.top-bar .nav-link:hover {
	color: var(--yellow);
}

.top-bar .nav-link.disabled {
	opacity: 0.5;
}

header:not(#fc-cart header):not(.woocommerce-Address-title) {
	background-color: var(--deep-teal);
	position: relative;
	box-shadow: 0px 0px 50px rgba(0, 0, 0, 0.5);
	padding: 10px 0;
	z-index: 999;
}

.navbar-brand img {
	width: 250px;
}

.navbar-toggler {
	border: none;
	border-radius: 0;
}

.navbar-nav {
	margin-top: 20px;
}

.navbar-nav .nav-link {
	color: var(--white);
	font-family: "Grift", sans-serif;
	font-weight: 700;
	font-size: 1.125rem;
}

.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active, body.archive .nav-item-22 .nav-link, body.search .nav-item-22 .nav-link, body.single-post .nav-item-22 .nav-link {
	color: var(--yellow);
}

.dropdown-toggle::after {
	width: 0.35em;
	height: 0.35em;
	border-right: 0.125em solid;
	border-top: 0.125em solid;
	border-left: 0;
	transform: rotate(135deg);
	margin-left: 0.3em;
}

.dropdown-menu h6 {
	font-size: 0.925rem;
	line-height: 1.8;
	margin-top: 6px;
}

.dropdown-divider {
	margin: 12px 0;
}

/* ========================================
   Homepage
======================================== */

.home-slideshow {
	border-bottom: 10px solid var(--teal);
}

.home-slideshow .carousel .overlay {
	background: url(assets/images/black_overlay.svg) no-repeat center center;
	background-size: cover;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.home-slideshow .carousel-caption {
	bottom: 10%;
}

.home-slideshow .carousel-caption h2 {
	color: var(--yellow);
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 1.5rem;
}

.home-slideshow .carousel-caption p {
	font-size: 1.125rem;
	display: none;
	margin-top: 20px;
}

.home-slideshow .carousel-caption p a {
	color: var(--yellow);
}

.home-content {
	padding: 50px 0;
}

.home-collections .heading {
	margin-bottom: 30px;
}

.home-collections h2 {
	color: var(--teal-dark);
	text-transform: uppercase;
}

.home-collections .slider, .page-content-left .slider {
	padding: 0 40px;
}

.home-collections .slide, .page-content-left .slide {
	text-align: center;
	padding: 0 12px;
}

.home-collections .slide .logo, .page-content-left .slide .logo {
	position: relative;
	border: 1px solid var(--border);
	padding: 6px;
}

.home-collections .slide img, .page-content-left .slide img {
	width: 100%;
	height: auto;
}

.home-collections .slide .overlay, .page-content-left .slide .overlay {
	background-color: rgba(39, 64, 64, 0.85);
	opacity: 0;
	text-align: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: opacity 0.2s ease-in-out;
}

.home-collections .slide:hover .overlay, .page-content-left .slide:hover .overlay {
	opacity: 1;
}

.home-collections .slide .links, .page-content-left .slide .links {
	text-align: center;
	position: absolute;
	top: 50%;
	width: 100%;
	transform: translateY(-50%);
}

.home-collections .slide .links a, .page-content-left .slide .links a {
	color: var(--yellow);
	transition: color 0.2s ease-in-out;
	padding: 8px;
}

.home-collections .slide .links a:hover, .page-content-left .slide .links a:hover {
	color: white;
}

.home-collections .slide h3, .page-content-left .slide h3 {
	font-size: 1rem;
	margin-top: 16px;
}

.home-collections .slide p, .page-content-left .slide p {
	margin-bottom: 0;
}

.home-collections .slick-next, .home-collections .slick-prev, .page-content-left .slick-next, .page-content-left .slick-prev {
	opacity: 0.5;
	top: 0;
	width: 32px;
	height: 236px;
	-webkit-transform: none;
	-ms-transform: none;
	transform: none;
	transition: opacity .15s ease;
}

.page-content-left .slick-next, .page-content-left .slick-prev {
	height: 196px;
}

.home-collections .slick-prev, .page-content-left .slick-prev {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: center center;
	left: 0;
}

.home-collections .slick-next, .page-content-left .slick-next {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: center center;
	right: 0;
}

.home-collections .slick-prev::before, .home-collections .slick-next::before, .page-content-left .slick-prev::before, .page-content-left .slick-next::before {
	display: none;
}

.home-collections .slick-prev:hover, .home-collections .slick-next:hover, .page-content-left .slick-prev:hover, .page-content-left .slick-next:hover {
	opacity: 1;
}

.home-collections .slick-disabled, .page-content-left .slick-disabled {
	display: none !important;
}

.page-header {
	background-color: var(--teal);
	position: relative;
	padding: 100px 0 20px;
}

.page-header .overlay {
	background: url(assets/images/black_overlay.svg) no-repeat bottom center;
	background-size: cover;
	opacity: 0.5;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.page-header h1 {
	color: var(--yellow);
	font-size: 2rem;
}

.page-content {
	padding: 50px 0;
}

.page-content-left .show-list-title {
	margin-bottom: 30px;
}

.page-content-left .new-title {
	background-color: var(--gray);
	padding: 8px 10px 5px;
	margin-bottom: 30px;
}

.page-content-left .slider-container {
	border-bottom: 12px solid var(--gray);
	padding-bottom: 20px;
	margin-bottom: 30px;
}

.page-content-left .slider {
	margin-bottom: 0px;
}

.page-content-left .shows-grid .show, .page-content-left .music-grid .music {
	text-align: center;
}

.page-content-left .shows-grid .show .logo {
	position: relative;
	border: 1px solid var(--border);
	padding: 6px;
}

.page-content-left .music-grid .music .logo {
	position: relative;
}

.page-content-left .shows-grid .show img {
	width: 100%;
	height: auto;
}

.page-content-left .music-grid .music img {
	width: auto;
	height: 200px;
}

.page-content-left .shows-grid .show .badge, .page-content-left .music-grid .music .badge {
	color: #212529;
	background-color: var(--yellow);
	font-size: 1.125rem;
	position: absolute;
	top: -10px;
	left: -10px;
	padding-top: 0.45em;
}

.page-content-left .shows-grid .show .overlay, .page-content-left .music-grid .music .overlay {
	background-color: rgba(39, 64, 64, 0.85);
	opacity: 0;
	text-align: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: opacity 0.2s ease-in-out;
}

.page-content-left .shows-grid .show:hover .overlay, .page-content-left .music-grid .music:hover .overlay {
	opacity: 1;
}

.page-content-left .shows-grid .show .links, .page-content-left .music-grid .music .links {
	text-align: center;
	position: absolute;
	top: 50%;
	width: 100%;
	transform: translateY(-50%);
}

.page-content-left .shows-grid .show .links a, .page-content-left .music-grid .music .links a {
	color: var(--yellow);
	transition: color 0.2s ease-in-out;
	padding: 8px;
}

.page-content-left .shows-grid .show .links a:hover, .page-content-left .music-grid .music .links a:hover {
	color: white;
}

.page-content-left .shows-grid .show h3, .page-content-left .music-grid .music h3 {
	font-size: 1rem;
	margin-top: 16px;
}

.page-content-left .shows-grid .show p, .page-content-left .music-grid .music p {
	margin-bottom: 0;
}

.page-content-left .table .badge {
	color: #212529;
	background-color: var(--yellow);
	padding-top: 0.45em;
}

.page-content-left .show-header {
	margin-top: 30px;
}

.page-content-left .show-header .logo-left {
	border: 1px solid var(--border);
	padding: 6px;
}

.page-content-left .show-header h2 {
	margin-top: 30px;
}

.page-content-left .show-header .price {
	margin-top: 10px;
}

.page-content-left .music-list {
	margin-top: 30px;
}

.page-content-left .music-list h4 {
	background-color: var(--gray);
	padding: 10px 12px 5px;
	margin-bottom: 20px;
}

.page-content-left .drill-video {
	margin-top: 30px;
}

.page-content-left .drill-list {
	margin-top: 40px;
}

.page-content-left .drill-list h4 {
	background-color: var(--gray);
	padding: 10px 12px 5px;
	margin-bottom: 20px;
}

.page-content-left .visual-package {
	margin-top: 20px;
}

.page-content-left .visual-package h4 {
	background-color: var(--gray);
	padding: 10px 12px 5px;
	margin-bottom: 30px;
}

.page-content-left .options-table {
	margin-top: 30px;
}

.page-content-left .options-table h4 {
	background-color: var(--gray);
	padding: 10px 12px 5px;
	margin-bottom: 20px;
}

.page-content-left .options-list a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 20px 10px;
}

.page-content-left .options-list a i {
	line-height: 1;
}

.page-content-left .options-list a p {
	line-height: 1.3;
	margin: 10px 0 0;
}

.page-content-left .calculator {
	background-color: var(--gray);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 20px;
}

.page-content-left .about-content h3 {
	margin: 1.5rem 0;
}

.page-content-left .designer-list h3 {
	margin-bottom: 1.5rem;
}

.page-content-left .designer-list img {
	border: 1px solid var(--border);
	padding: 6px;
}

.page-content-left .selections-list .no-border td {
	border-bottom: none;
}

.page-content-left .music-purchase .variations, .page-content-left .music-purchase .variations tbody, .page-content-left .music-purchase .variations tr, .page-content-left .music-purchase .variations th, .page-content-left .music-purchase .variations td {
	display: block;
	width: 100%;
}

.page-content-left .music-purchase .variations th.label {
	padding: 0 0 5px;
}

.page-content-left .music-purchase .variations td.value {
	padding: 0;
}

.page-content-left .music-purchase .woocommerce-variation-add-to-cart, .page-content-left .music-purchase form.cart:not(.variations_form) {
	display: flex;
	align-items: center;
	gap: 10px;
}

.page-content-left .music-purchase .quantity {
	flex: 0 0 auto;
	margin: 0;
}

.page-content-left .music-purchase .quantity input.qty {
	width: 65px;
	min-width: 65px;
}

.page-content-left .single_add_to_cart_button.button {
	color: var(--white);
	background-color: var(--teal);
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 0.8125rem;
	line-height: 1;
	text-transform: uppercase;
	border: none;
	border-radius: 0.375rem;
	transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
	padding: 18px 24px 16px;
}

.page-content-left .single_add_to_cart_button.button:hover {
	background-color: var(--teal-dark);
}

.page-content-right .sort-box, .page-content-right .search-box {
	background-color: var(--gray);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 20px;
}

.page-content-right .sort-box .form-select {
	margin-bottom: 10px;
}

.page-content-right .sort-box .form-check:last-of-type {
	margin-bottom: 10px;
}

.page-content-right .sort-box .btn {
	width: 100%;
}

.page-content-right h4 {
	margin-bottom: 20px;
}

.page-content-right h5 {
	margin-bottom: 20px;
}

.page-content-right h5:not(:first-of-type) {
	margin-top: 30px;
}

.page-content-right .features-list, .page-content-right .show-sidebar-content {
	margin-top: 40px;
}

.custom-design h2, .about-content h2, .general-content h2 {
	margin-bottom: 20px;
}

.about-content h3, .general-content h3 {
	margin: 30px 0 20px;
}

#mc_embed_signup div.response {
	color: #cececd;
	margin-left: 0px;
	margin-bottom: 0px;
	margin-right: 0px;
	margin-top: 16px;
}

#mc_embed_signup div.response a {
	color: #e4552d;
}

#mc_embed_signup div.mce_inline_error {
	color: red;
	font-weight: bold;
	margin-left: 0px;
	margin-bottom: 0px;
	margin-right: 0px;
	margin-top: 16px;
}

.modal-header {
	padding: 20px 24px;
}

.modal-title {
	line-height: 1.2;
	transform: translateY(3px);
}

.modal-body {
	padding: 24px;
}

.modal-body h3 {
	margin-bottom: 20px;
}

.modal-body p:last-of-type {
	margin-bottom: 0;
}

.modal-body .youTubeVideo {
	float: right;
	margin: 0 0 20px 30px;
}

.modal-body .calculator {
	background-color: var(--gray);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 20px;
}

.modal-body .mejs__container {
	margin-top: 20px;
}

#modal-instrumentation .modal-body p {
	columns: 2;
	column-gap: 30px;
}

/* ========================================
   Footer
======================================== */

footer {
	overflow: hidden;
}

.footer {
	color: var(--white);
	background-color: var(--deep-teal);
	border-top: 10px solid var(--teal);
	box-shadow: 0px 0px 50px rgba(0, 0, 0, 0.5);
	padding: 50px 0;
	position: relative;
}

.footer h4 {
	color: var(--teal);
	font-size: 1.25rem;
	margin-bottom: 24px;
}

.footer .col1 img {
	margin: 0 30px;
}

.footer .col4 .link-list .nav-item {
	margin-bottom: 2px;
}

.footer .col4 .link-list .nav-link {
	color: var(--white);
	padding: 0;
}

.footer .col4 .link-list .nav-link:hover {
	color: var(--yellow);
}

.footer .col4 .social-list .nav-item {
	margin-right: 20px;
}

.footer .col4 .social-list .nav-link {
	color: var(--yellow);
	padding: 0;
}

.footer .col4 .social-list .nav-link:hover {
	color: var(--yellow);
}

.copyright {
	color: var(--white);
	background-color: var(--nav-dark);
	padding: 24px 0;
}

.copyright p {
	color: rgba(255, 255, 255, 0.5);
	margin-bottom: 0;
}

.audio-player-wrap {
	background: rgba(0, 0, 0, 0.8);
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: 9999999999;
	display: none;
	width: 100%;
}

.audio-player-wrap.show {
	display: block;
}

.audio-close {
	color: var(--yellow);
	font-size: 24px;
	text-decoration: none;
	position: absolute;
	display: block;
	top: 20px;
	right: 20px;
}

.audio-close:hover {
	color: var(--white);
}

.sample.audio-player, .sample.audio-player div, .sample.audio-player h1, .sample.audio-player a, .sample.audio-player img, .sample.audio-player span, .sample.audio-player button {
	border: none;
	outline: none;
	margin: 0;
	padding: 0;
}

.sample.audio-player {
	background-color: var(--black);
	position: relative;
	width: 600px;
	height: 110px;
	margin: 0 auto;
}

.sample.audio-player .title {
	color: #cececd;
	position: absolute;
	top: 26px;
	left: 180px;
	z-index: 5;
}

.sample.audio-player .buttons {
	position: absolute;
	top: 20px;
	right: 20px;
	z-index: 10;
}

.sample.audio-player .buttons .product-link {
	background-color: var(--teal);
	color: var(--white);
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	text-decoration: none;
	display: inline-block;
	border-radius: 0.375rem;
	padding: 10px 20px 8px;
}

.sample.audio-player .buttons .product-link:hover {
	background-color: var(--teal-dark);
}

.sample.audio-player .buttons .far, .sample.audio-player .buttons .fas {
	color: var(--white);
	font-size: 30px;
	vertical-align: middle;
	cursor: pointer;
		margin-right: 5px;
}

.sample.audio-player .cover {
	position: absolute;
	top: 0;
	left: 0;
	height: 110px;
	width: auto;
	max-width: 110px;
}

.sample .mejs__container {
	background: transparent;
}

.sample .mejs__controls {
	height: 110px;
}

.sample .mejs__controls .mejs__button button {
	text-indent: -9999px;
	display: block;
	position: absolute;
	cursor: pointer;
}

.sample .mejs__controls .mejs__play button, .sample .mejs__controls .mejs__pause button {
	background-color: transparent;
	background-image: url(assets/images/play-pause.png);
	background-position: top center;
	background-size: 40px 80px;
	top: 14px;
	left: 125px;
	z-index: 10;
	width: 40px;
	height: 40px;
}

.sample .mejs__controls .mejs__pause button {
	background-position: bottom center;
}

.sample .mejs__controls .mejs__mute button, .sample .mejs__controls .mejs__unmute button {
	background-color: transparent;
	background-image: url(assets/images/mute-unmute.png);
	background-position: top center;
	background-size: 25px 50px;
	top: 68px;
	left: 100px;
	z-index: 10;
	width: 25px;
	height: 25px;
}

.sample .mejs__controls .mejs__unmute button {
	background-position: bottom center;
}

.sample .mejs__controls .mejs__horizontal-volume-slider {
	position: absolute;
	top: 60px;
	left: 165px;
	cursor: pointer;
}

.sample .mejs__controls .mejs__horizontal-volume-slider .mejs__horizontal-volume-total {
	background: #333333;
	width: 150px;
	height: 8px;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
}

.sample .mejs__controls .mejs__horizontal-volume-slider .mejs__horizontal-volume-current {
	background-color: var(--yellow);
	position: absolute;
	top: 1px;
	left: 1px;
	width: 0;
	height: 6px;
	-webkit-border-radius: 6px;
	-moz-border-radius: 6px;
	border-radius: 6px;
}

.sample .mejs__controls div.mejs__time-rail {
	width: 400px; position: absolute;
}

.sample .mejs__controls .mejs__time-rail span {
	position: absolute;
	display: block;
	left: 0;
	top: -5px;
	width: 600px;
	height: 5px;
	cursor: pointer;
	-webkit-border-radius: 2px 2px 0px 0px;
	-moz-border-radius: 2px 2px 0px 0px;
	border-radius: 2px 2px 0px 0px;
}

.sample .mejs__controls .mejs__time-rail .mejs__time-total {
	background: var(--yellow);
}

.sample .mejs__controls .mejs__time-rail .mejs__time-loaded {
	background: #cccccc;
	width: 0;
}

.sample .mejs__controls .mejs__time-rail .mejs__time-current {
	background: #64b44c;
	width: 0;
}

.sample .mejs__controls .mejs__time-rail .mejs__time-handle, .sample .mejs__controls .mejs__horizontal-volume-slider .mejs__horizontal-volume-handle {
	background-color: var(--black);
	position: absolute;
	display: block;
	top: -8px;
	width: 8px;
	height: 20px;
	border-radius: 5px;
	border: 2px solid var(--yellow);
}

.sample .mejs__controls .mejs__horizontal-volume-slider .mejs__horizontal-volume-handle {
	top: -6px;
}

.sample .mejs__controls .mejs__time-rail .mejs__time-float {
	background: url(../graphics/time-box.png);
	position: absolute;
	display: none;
	top: -26px;
	width: 33px;
	height: 23px;
	margin-left: -17px;
}

.sample .mejs__controls .mejs__time-rail .mejs__time-float-current {
	color: #666666;
	font-family: Helvetica, Arial, sans-serif;
	font-size: 10px;
	font-weight: bold;
	text-align: center;
	display: block;
	left: 0;
	top: 4px;
	width: 33px;
}

.sample .mejs__controls .mejs__time-rail .mejs__time-handle-content {
	display: none;
}

.sample .mejs__offscreen {
	display: none;
}

/* ========================================
   WooCommerce / Cart Drawer
======================================== */

#fc-cart {
	line-height: 1.3;
}

.grecaptcha-badge {
	visibility: hidden;
}

/* ========================================
   WooCommerce Cart
======================================== */

.cms-cart .shop_table {
	width: 100%;
}

.cms-cart .shop_table th, .cms-cart .shop_table td {
	vertical-align: middle;
	border-bottom: 1px solid var(--border);
	padding: 15px 10px;
}

.cms-cart .shop_table th {
	font-size: 0.875rem;
}

.cms-cart .product-remove {
	width: 30px;
	padding-left: 0 !important;
}

.cms-cart .product-remove .remove {
	font-size: 1.5rem;
	line-height: 1;
}

.cms-cart .product-thumbnail {
	width: 80px;
}

.cms-cart .product-thumbnail img {
	max-width: 70px;
	height: auto;
}

.cms-cart .product-name {
	min-width: 190px;
}

.cms-cart .product-quantity .qty {
	width: 65px;
	padding: 8px;
}

.cms-cart .cms-cart-meta dl.variation {
	line-height: 1.5;
	display: block;
	margin: 6px 0 0;
}

.cms-cart .cms-cart-meta dl.variation dt, .cms-cart .cms-cart-meta dl.variation dd, .cms-cart .cms-cart-meta dl.variation p {
	margin: 0;
}

.cms-cart .cms-cart-summary .cart_totals {
	width: 100%;
}

.cms-cart .cms-cart-summary h2 {
	font-size: 1.5rem;
	margin-bottom: 20px;
}

.cms-cart .cms-cart-summary .shop_table th, .cms-cart .cms-cart-summary .shop_table td {
	padding: 12px 0;
}

.cms-cart .cms-cart-summary .shop_table td {
	text-align: right;
}

.cms-cart .cms-cart-summary .wc-proceed-to-checkout .checkout-button {
	color: var(--white);
	background: var(--teal);
	text-align: center;
	font-family: var(--heading-font);
	text-transform: uppercase;
	display: block;
	width: 100%;
	border-radius: 0.375rem;
	padding: 18px 24px 16px;
}

.cms-cart .cms-cart-summary .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--teal-dark);
}

.cms-cart .coupon .form-control {
	width: 150px;
}

/* Table header */
.cms-cart .shop_table.cart thead th {
	background-color: var(--gray);
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	padding: 15px 12px 12px;
}

.cms-cart .cms-cart-meta dl.variation dt, .cms-cart .cms-cart-meta dl.variation dd {
	line-height: 1.5;
	display: inline;
	float: none;
	margin: 0;
	padding: 0;
}

.cms-cart .cms-cart-meta dl.variation dd p {
	line-height: inherit;
	display: inline;
	margin: 0;
}

.cms-cart .cms-cart-meta dl.variation dd::after {
	display: block;
	content: "";
}

/* ========================================
   WooCommerce Checkout Layout
======================================== */

.woocommerce-checkout form.checkout::after {
	display: table;
	clear: both;
	content: "";
}

.woocommerce-checkout .col2-set {
	width: 100%;
}

.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 {
	flex: none;
	width: auto;
	max-width: none;
	padding: 0;
	margin-bottom: 30px;
}

.woocommerce-checkout form.checkout h3 {
	font-size: 2rem;
	margin-bottom: 20px;
}

.woocommerce-checkout #order_review_heading {
	background-color: transparent;
	padding: 0;
}

.woocommerce-checkout #order_review {
	background-color: var(--light-gray);
	width: 100%;
	padding: 30px;
	margin: 0 0 30px;
}

/* Checkout Order Summary */

.woocommerce-checkout #order_review table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 30px;
}

.woocommerce-checkout #order_review th, .woocommerce-checkout #order_review td {
	vertical-align: top;
	border-bottom: 1px solid var(--border);
	padding: 12px 0;
}

.woocommerce-checkout #order_review th:last-child, .woocommerce-checkout #order_review td:last-child {
	text-align: right;
}

/* Checkout Button */

.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
}

/* WooCommerce Buttons */

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce input[type="submit"], .woocommerce #respond input#submit, .woocommerce .button {
	color: var(--white);
	background-color: var(--teal);
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 0.875rem;
	line-height: 1;
	font-weight: 700;
	text-transform: uppercase;
	text-align: center;
	display: inline-block;
	border: none;
	border-radius: 0.375rem;
	transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
	padding: 18px 24px 16px;
}

.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce input[type="submit"]:hover, .woocommerce #respond input#submit:hover, .woocommerce .button:hover {
	color: var(--white);
	background-color: var(--teal-dark);
}

/* Checkout Billing Fields */

/* WooCommerce SelectWoo */
.cms-select-container {
	font-family: inherit;
	text-align: left;
	width: 100% !important;
}

.cms-select-container.select2-container--default .select2-selection--single {
	background-color: var(--white);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	display: block;
	position: relative;
	width: 100%;
	height: auto !important;
	min-height: 0 !important;
	box-sizing: border-box;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: 0.375rem;
	cursor: pointer;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
	padding: 6px 48px 6px 12px;
	margin: 0;
}

.cms-select-container.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: inherit;
	font: inherit;
	line-height: inherit !important;
	display: block;
	padding: 0 !important;
	margin: 0;
}

.cms-select-container.select2-container--default .select2-selection--single .select2-selection__arrow {
	position: absolute;
	top: 0;
	right: 0;
	width: 38px;
	height: 100% !important;
}

.cms-select-container.select2-container--default .select2-selection--single .select2-selection__arrow b {
	display: none;
}

.cms-select-container.select2-container--default .select2-selection--single .select2-selection__arrow::after {
	background-image: var(--bs-form-select-bg-img);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 12px;
	position: absolute;
	inset: 0;
	content: "";
	pointer-events: none;
}

/* SelectWoo hover and focus */
.cms-select-container.select2-container--default:hover .select2-selection--single, .cms-select-container.select2-container--default.select2-container--focus .select2-selection--single, .cms-select-container.select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--teal);
	outline: 0;
}

.cms-select-container.select2-container--default.select2-container--focus .select2-selection--single, .cms-select-container.select2-container--default.select2-container--open .select2-selection--single {
	box-shadow: 0 0 0 0.25rem rgba(47, 138, 138, 0.15);
}

/* SelectWoo dropdown */
.select2-container--default .select2-dropdown {
	background-color: var(--white);
	font-family: inherit;
	overflow: hidden;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: 0.375rem;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
}

.select2-container--default .select2-results__option {
	color: inherit;
	background-color: var(--white);
	font-size: 1rem;
	line-height: 1.5;
	cursor: pointer;
	padding: 10px 12px;
}

/* SelectWoo highlighted options */
.select2-container--default .select2-results__option--highlighted, .select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable, .select2-container--default .select2-results__option--highlighted[aria-selected="true"], .select2-container--default .select2-results__option--highlighted[aria-selected="false"] {
	color: var(--white) !important;
	background-color: var(--teal) !important;
}

/* SelectWoo selected option */
.select2-container--default .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted), .select2-container--default .select2-results__option--selected:not(.select2-results__option--highlighted) {
	color: #151515;
	background-color: var(--light-gray);
}

/* Purchase Order payment fields */
.woocommerce-checkout .payment_box p {
	margin-bottom: 15px;
}

.woocommerce-checkout .payment_box input[type="text"], .woocommerce-checkout .payment_box input[type="email"] {
	color: var(--bs-body-color);
	background-color: var(--white);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	display: block;
	width: 100%;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: 0.375rem;
	box-shadow: none;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
	padding: 6px 12px;
}

/* Checkout text fields and textarea hover */
.woocommerce-checkout .form-control:hover, .woocommerce-checkout .payment_box input[type="text"]:hover, .woocommerce-checkout .payment_box input[type="email"]:hover {
	border-color: var(--teal);
}

/* Checkout text fields and textarea focus */
.woocommerce-checkout .form-control:focus, .woocommerce-checkout .payment_box input[type="text"]:focus, .woocommerce-checkout .payment_box input[type="email"]:focus {
	border-color: var(--teal);
	outline: 0;
	box-shadow: 0 0 0 0.25rem rgba(47, 138, 138, 0.15);
}

/* WooCommerce payment methods */
.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
}

.woocommerce-checkout #payment ul.payment_methods > li {
	list-style: none;
	padding: 0;
	margin-bottom: 15px;
}

.woocommerce-checkout #payment ul.payment_methods > li::marker {
	content: "";
}

.woocommerce-checkout #payment ul.payment_methods input[type="radio"] {
	accent-color: var(--teal);
	vertical-align: middle;
	margin-right: 8px;
}

.woocommerce-checkout #payment ul.payment_methods > li > label {
	font-weight: 700;
	vertical-align: middle;
	cursor: pointer;
}

/* ========================================
   WooCommerce Thank You Page
======================================== */

/* Order confirmation */
.woocommerce-order-received .woocommerce-order {
	width: 100%;
}

.woocommerce-order-received .woocommerce-notice--success {
	color: var(--teal);
	background-color: #f0f7f7;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5;
	border-left: 4px solid var(--teal);
	padding: 20px 25px;
	margin-bottom: 30px;
}

/* Order overview */
.woocommerce-order-received ul.woocommerce-order-overview {
	background-color: var(--light-gray);
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 20px 30px;
	padding: 25px 30px;
	margin: 0 0 40px;
}

.woocommerce-order-received ul.woocommerce-order-overview li {
	font-size: 0.875rem;
	line-height: 1.5;
	list-style: none;
	flex: 1 1 150px;
	margin: 0;
}

.woocommerce-order-received ul.woocommerce-order-overview li strong {
	font-size: 1rem;
	font-weight: 700;
	display: block;
	margin-top: 5px;
}

/* Section headings */
.woocommerce-order-received .woocommerce-order h2 {
	font-size: 2rem;
	margin-bottom: 20px;
}

/* Order details */
.woocommerce-order-received .woocommerce-order-details {
	margin-bottom: 40px;
}

.woocommerce-order-received .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 0;
}

.woocommerce-order-received .woocommerce-table--order-details th, .woocommerce-order-received .woocommerce-table--order-details td {
	font-size: 1rem;
	line-height: 1.5;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--border);
	padding: 15px;
}

.woocommerce-order-received .woocommerce-table--order-details thead th {
	font-weight: 700;
	border-bottom: 2px solid var(--border);
}

.woocommerce-order-received .woocommerce-table--order-details th:last-child, .woocommerce-order-received .woocommerce-table--order-details td:last-child {
	text-align: right;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot th, .woocommerce-order-received .woocommerce-table--order-details tfoot td {
	font-weight: 700;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child th, .woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child td {
	border-bottom: 0;
}

/* Product links */
.woocommerce-order-received .woocommerce-table--order-details a {
	color: var(--teal);
	text-decoration: none;
}

.woocommerce-order-received .woocommerce-table--order-details a:hover {
	color: var(--teal-dark);
}

/* Customer details */
.woocommerce-order-received .woocommerce-customer-details {
	margin-bottom: 40px;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
	flex: 1 1 300px;
	float: none;
	width: auto;
	padding: 0;
}

.woocommerce-order-received .woocommerce-customer-details address {
	background-color: var(--light-gray);
	font-size: 1rem;
	font-style: normal;
	line-height: 1.8;
	border: 0;
	border-radius: 0;
	padding: 25px 30px;
	margin: 0;
}

.woocommerce-order-received .woocommerce-customer-details address p {
	margin-bottom: 5px;
}

/* Payment instructions */
.woocommerce-order-received .woocommerce-bacs-bank-details, .woocommerce-order-received .woocommerce-order > p:not(.woocommerce-notice) {
	margin-bottom: 30px;
}

/* ========================================
   WooCommerce Login / Register
======================================== */

/* Layout: WooCommerce column classes conflict with Bootstrap grid classes. */
.woocommerce-account .woocommerce .u-columns.col2-set {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	width: 100%;
}

.woocommerce-account .woocommerce .u-columns.col2-set .u-column1, .woocommerce-account .woocommerce .u-columns.col2-set .u-column2 {
	float: none;
	flex: 1 1 280px;
	width: auto;
	max-width: none;
	min-width: 0;
	padding: 0;
}

.woocommerce-account .woocommerce .u-columns.col2-set h2 {
	margin-bottom: 20px;
}

.woocommerce-account .woocommerce .u-columns.col2-set .form-row {
	float: none;
	width: 100%;
	margin: 0 0 20px;
	padding: 0;
}

.woocommerce-account .woocommerce .u-columns.col2-set .form-row > label:not(.form-check-label) {
	display: block;
	margin-bottom: 6px;
}

/* WooCommerce password visibility button: Bootstrap styles the input itself. */
.woocommerce-account .woocommerce .password-input {
	position: relative;
	display: block;
	width: 100%;
}

.woocommerce-account .woocommerce .password-input input {
	padding-right: 45px;
}

.woocommerce-account .woocommerce .show-password-input {
	background: transparent;
	position: absolute;
	top: 50%;
	right: 12px;
	bottom: auto;
	left: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 0;
	transform: translateY(-50%);
	cursor: pointer;
	margin: 0;
	padding: 0;
}

.woocommerce-account .woocommerce .show-password-input::before {
	color: #686868;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 14px;
	content: "\f06e";
}

.woocommerce-account .woocommerce .show-password-input.display-password::before {
	content: "\f070";
}

/* Layout-only spacing; Bootstrap styles the checkbox and fields. */
.woocommerce-account .woocommerce .u-columns.col2-set .woocommerce-form-login__submit, .woocommerce-account .woocommerce .u-columns.col2-set .woocommerce-form-register__submit {
	white-space: nowrap;
	margin-top: 20px;
}

.woocommerce-account .woocommerce .u-columns.col2-set .woocommerce-form-login, .woocommerce-account .woocommerce .u-columns.col2-set .woocommerce-form-register {
	margin-bottom: 30px;
}

/* WooCommerce My Account */
.woocommerce-account .woocommerce-MyAccount-content {
	min-width: 0;
}

.woocommerce-account .woocommerce-MyAccount-content p {
	margin-bottom: 20px;
}

/* Account details and address forms */
.woocommerce-account .woocommerce-MyAccount-content form .form-row {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0 0 20px;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-content form .form-row label {
	font-weight: 500;
	display: block;
	margin-bottom: 6px;
}

.woocommerce-account .woocommerce-MyAccount-content form input.input-text, .woocommerce-account .woocommerce-MyAccount-content form textarea, .woocommerce-account .woocommerce-MyAccount-content form select {
	color: var(--bs-body-color);
	background-color: var(--white);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 0;
	box-sizing: border-box;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: 0.375rem;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
	padding: 6px 12px;
}

.woocommerce-account .woocommerce-MyAccount-content form input.input-text:hover, .woocommerce-account .woocommerce-MyAccount-content form textarea:hover, .woocommerce-account .woocommerce-MyAccount-content form select:hover {
	border-color: var(--teal);
}

.woocommerce-account .woocommerce-MyAccount-content form input.input-text:focus, .woocommerce-account .woocommerce-MyAccount-content form textarea:focus, .woocommerce-account .woocommerce-MyAccount-content form select:focus {
	border-color: var(--teal);
	outline: 0;
	box-shadow: 0 0 0 0.25rem rgba(47, 138, 138, 0.15);
}

/* Account details */
.woocommerce-account .woocommerce-EditAccountForm .form-row-first, .woocommerce-account .woocommerce-EditAccountForm .form-row-last {
	width: 100%;
}

.woocommerce-account .woocommerce-EditAccountForm #account_display_name_description {
	color: #686868;
	font-size: 0.875rem;
	display: block;
	margin-top: 6px;
}

.woocommerce-account .woocommerce-EditAccountForm fieldset {
	min-width: 0;
	border: 0;
	margin: 30px 0 10px;
	padding: 0;
}

.woocommerce-account .woocommerce-EditAccountForm legend {
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	text-transform: uppercase;
	float: none;
	width: 100%;
	margin-bottom: 20px;
}

/* Billing and shipping addresses */
.woocommerce-account .woocommerce-Addresses {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	margin-top: 25px;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
	flex: 1 1 220px;
	min-width: 0;
}

.woocommerce-account .woocommerce-Address-title {
	position: static;
	margin-bottom: 15px;
}

.woocommerce-account .woocommerce-Address-title h2 {
	font-size: 1.25rem;
	margin-bottom: 10px;
}

.woocommerce-account .woocommerce-Address address {
	font-style: normal;
	line-height: 1.8;
	overflow-wrap: anywhere;
	border: 0;
	padding: 0;
	margin: 0;
}

/* Orders and downloads tables */
.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0 30px;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table th, .woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid var(--border);
	padding: 15px 12px;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead th {
	background-color: #f1f3f4;
	font-weight: 700;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody tr:nth-child(even) {
	background-color: #f8f8f8;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
	overflow-wrap: anywhere;
}

/* Buttons */
.woocommerce-account .woocommerce-MyAccount-content .button {
	color: var(--white);
	background-color: var(--teal);
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 0.875rem;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	display: inline-block;
	border: 1px solid var(--teal);
	border-radius: 0.375rem;
	cursor: pointer;
	transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
	padding: 10px 20px;
}

.woocommerce-account .woocommerce-MyAccount-content .button:hover {
	color: var(--white);
	background-color: var(--teal-dark);
	border-color: var(--teal-dark);
}

/* Empty states and notices */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message, .woocommerce-account .woocommerce-MyAccount-content .woocommerce-message, .woocommerce-account .woocommerce-MyAccount-content .woocommerce-info {
	background-color: #eef6f6;
	border-left: 3px solid var(--teal);
	margin-bottom: 25px;
	padding: 20px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message .button {
	margin: 0 15px 10px 0;
}

/* ========================================
   WooCommerce Notices
======================================== */

/* Shared notice appearance */
.woocommerce .woocommerce-info, .woocommerce .woocommerce-message, .woocommerce .woocommerce-error {
	background-color: #edf5f5;
	color: #212529;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.6;
	list-style: none;
	border: 0;
	border-left: 3px solid var(--teal);
	border-radius: 0;
	padding: 20px;
	margin: 0 0 30px;
}

/* Remove WooCommerce default notice icons */
.woocommerce .woocommerce-info::before, .woocommerce .woocommerce-message::before, .woocommerce .woocommerce-error::before {
	display: none;
}

/* Success notices */
.woocommerce .woocommerce-message {
	background-color: #edf5f5;
	border-left-color: var(--teal);
}

/* Error notices */
.woocommerce .woocommerce-error {
	background-color: #fff0ee;
	border-left-color: #c0392b;
}

/* Notices containing action buttons */
.woocommerce .woocommerce-info:has(> .button), .woocommerce .woocommerce-message:has(> .button) {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.woocommerce .woocommerce-info > .button, .woocommerce .woocommerce-message > .button {
	float: none;
	flex-shrink: 0;
	order: 1;
	margin: 0;
}

/* Error list spacing */
.woocommerce .woocommerce-error li {
	margin: 0 0 5px;
}

.woocommerce .woocommerce-error li:last-child {
	margin-bottom: 0;
}

/* ========================================
   WooCommerce My Account - Orders
======================================== */

/* Order detail section headings */
.woocommerce-account.woocommerce-view-order .woocommerce-MyAccount-content h2 {
	font-size: 1.5rem;
	margin-bottom: 20px;
}

/* Mobile-first layout defaults */
.cms-cart .shop_table {
	min-width: 680px;
}

.woocommerce-order-received ul.woocommerce-order-overview {
	display: block;
	padding: 20px;
}

.woocommerce-order-received ul.woocommerce-order-overview li {
	border-bottom: 1px solid var(--border);
	padding: 12px 0;
}

.woocommerce-order-received ul.woocommerce-order-overview li:first-child {
	padding-top: 0;
}

.woocommerce-order-received ul.woocommerce-order-overview li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.woocommerce-order-received .woocommerce-table--order-details th, .woocommerce-order-received .woocommerce-table--order-details td {
	padding: 12px 8px;
}

.woocommerce-order-received .woocommerce-customer-details address {
	padding: 20px;
}

.woocommerce-account .woocommerce .u-columns.col2-set {
	display: block;
}

.woocommerce-account .woocommerce .u-columns.col2-set .u-column1, .woocommerce-account .woocommerce .u-columns.col2-set .u-column2 {
	width: 100%;
	margin-bottom: 40px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
	display: block;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
	width: 100%;
	margin-bottom: 20px;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
	display: block;
	overflow-x: auto;
}

.woocommerce .woocommerce-info:has(> .button), .woocommerce .woocommerce-message:has(> .button) {
	flex-direction: column;
	align-items: flex-start;
}

/* ========================================
   Availability - Customer Pages
======================================== */

.woocommerce .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-navigation {
	display: block !important;
	float: left !important;
	width: 24% !important;
	margin: 0 0 28px !important;
	box-sizing: border-box;
}

.woocommerce .woocommerce-MyAccount-content, .woocommerce-MyAccount-content {
	display: block !important;
	float: right !important;
	width: 72% !important;
	min-width: 0;
	box-sizing: border-box;
}

.woocommerce-MyAccount-navigation ul, .woocommerce-MyAccount-navigation ul li {
	list-style: none !important;
}

.woocommerce-MyAccount-navigation ul li::marker {
	content: "";
}

.woocommerce-MyAccount-navigation ul li a {
	color: #305269;
}

.woocommerce-MyAccount-navigation-link--my-reservations.is-active a {
	color: #1d3d49;
}

.woocommerce-MyAccount-navigation {
	float: left;
	width: 23%;
	margin-bottom: 24px;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid #dedede;
	border-radius: 6px;
	overflow: hidden;
}

.woocommerce-MyAccount-navigation li {
	list-style: none;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid #e8e8e8;
}

.woocommerce-MyAccount-navigation li:last-child {
	border-bottom: 0;
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 13px 16px;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation .is-active a {
	font-weight: 700;
	background: #f3f5f6;
	border-left: 3px solid #305269;
}

.woocommerce-MyAccount-content {
	float: right;
	width: 73%;
	min-width: 0;
}

.cms-reservations h2 {
	font-size: 1.65rem;
	margin: 0 0 20px;
}

.cms-reservations-table-wrap {
	width: 100%;
	overflow-x: auto;
}

.cms-reservations-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: auto;
}

.cms-reservations-table th, .cms-reservations-table td {
	padding: 13px 12px;
	text-align: left;
	vertical-align: middle;
	border-bottom: 1px solid #e4e6e8;
}

.cms-reservations-table th {
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .03em;
	white-space: nowrap;
	background: #f3f5f6;
}

.cms-reservations-table tbody tr:nth-child(even) {
	background: #fafafa;
}

.cms-reservations-table .cms-show-name {
	font-weight: 600;
}

.cms-reservations-table a.cms-show-name {
	color: #2f8a8a;
	text-decoration: none;
}

.cms-reservations-table a.cms-show-name:hover {
	color: #2b6060;
	text-decoration: underline;
}

.cms-reservations-table .cms-request-number {
	display: block;
	color: #666;
	font-size: .8rem;
}

.cms-reservations-table .cms-status {
	display: inline-block;
	padding: 5px 9px;
	border-radius: 20px;
	font-size: .78rem;
	font-weight: 600;
	white-space: nowrap;
	background: #eee;
	color: #444;
}

.cms-reservations-table .cms-status-hold {
	background: #e2f3e9;
	color: #176338;
}

.cms-reservations-table .cms-status-pending_hold {
	background: #fff2d7;
	color: #795300;
}

.cms-reservations-table .cms-status-purchased {
	background: #dfeeff;
	color: #164f82;
}

.cms-reservations-table .cms-status-rejected {
	background: #fde7e7;
	color: #8b2929;
}

.cms-reservations-table .cms-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.cms-reservations-table .cms-release-button {
	background: none;
	border: 0;
	padding: 0;
	color: #9a3030;
	text-decoration: underline;
	cursor: pointer;
	font: inherit;
}

.cms-signature-purchase-options .cms-signature-option-link {
	display: inline;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: 700;
	line-height: inherit;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

.cms-signature-purchase-options .cms-signature-option-link:hover, .cms-signature-purchase-options .cms-signature-option-link:focus-visible {
	color: inherit;
	text-decoration: underline;
}

.cms-signature-purchase-options .cms-signature-option-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.cms-signature-purchase-options .cms-signature-option-link .cms-signature-info-icon {
	font-size: .8em;
	font-weight: 400;
	margin-left: .3em;
	opacity: .65;
}

.cms-competition-summary {
	cursor: pointer;
	list-style-position: inside;
}

.cms-signature-quantity {
	width: 75px;
}

/* ========================================
   Responsive
======================================== */

@media (min-width: 576px) {
	.home-slideshow .carousel-caption h2 {
		font-size: 2rem;
	}

	.footer .col1 img {
		margin: 0 20px 0 0;
	}

	.woocommerce-checkout #billing_first_name_field, .woocommerce-checkout #billing_last_name_field {
		float: left;
		width: calc(50% - 10px);
	}

	.woocommerce-checkout #billing_first_name_field {
		margin-right: 20px;
	}

	.woocommerce-checkout #billing_last_name_field {
		float: right;
	}

	.woocommerce-account .woocommerce-EditAccountForm .form-row-first {
		float: left;
		width: 48%;
	}

	.woocommerce-account .woocommerce-EditAccountForm .form-row-last {
		float: right;
		width: 48%;
	}
}

@media (min-width: 768px) {
	.home-slideshow .carousel-caption h2 {
		font-size: 3rem;
	}

	.home-slideshow .carousel-caption p {
		display: block;
	}

	.home-content {
		padding: 100px 0;
	}

	.page-content {
		padding: 100px 0;
	}

	.page-header h1 {
		font-size: 4rem;
	}

	.page-content-left .show-title {
		font-size: 2.5rem;
	}

	.footer {
		padding: 100px 0;
	}

	.cms-cart .shop_table {
		min-width: 0;
	}

	.woocommerce-order-received ul.woocommerce-order-overview {
		display: flex;
		padding: 25px 30px;
	}

	.woocommerce-order-received ul.woocommerce-order-overview li {
		border-bottom: 0;
		padding: 0;
	}

	.woocommerce-order-received ul.woocommerce-order-overview li:first-child {
		padding-top: 0;
	}

	.woocommerce-order-received ul.woocommerce-order-overview li:last-child {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.woocommerce-order-received .woocommerce-table--order-details th, .woocommerce-order-received .woocommerce-table--order-details td {
		padding: 15px;
	}

	.woocommerce-order-received .woocommerce-customer-details address {
		padding: 25px 30px;
	}

	.woocommerce-account .woocommerce .u-columns.col2-set {
		display: flex;
	}

	.woocommerce-account .woocommerce .u-columns.col2-set .u-column1, .woocommerce-account .woocommerce .u-columns.col2-set .u-column2 {
		width: auto;
		margin-bottom: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
		display: flex;
	}

	.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
		width: auto;
		margin-bottom: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
		display: table;
		overflow-x: visible;
	}

	.woocommerce .woocommerce-info:has(> .button), .woocommerce .woocommerce-message:has(> .button) {
		flex-direction: row;
		align-items: center;
	}
}

@media (min-width: 992px) {
	.home-slideshow .carousel-caption h2 {
		font-size: 4rem;
	}

	.woocommerce-checkout .col2-set {
		float: left;
		width: 54%;
		margin-right: 4%;
	}

	.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review {
		float: right;
		clear: right;
		width: 42%;
	}

	.woocommerce-checkout form.checkout h3 {
		text-align: left;
	}
}

@media (min-width: 1200px) {
	.navbar-nav {
		margin-top: 0;
	}

	.navbar-nav .nav-link {
		padding: 16px 24px !important;
	}

	.dropdown .dropdown-menu {
		display: none;
	}

	.dropdown:hover > .dropdown-menu {
		display: block;
	}

	.dropdown-menu {
		padding: 12px 0;
	}

	.dropdown-item {
		padding: 0 20px;
	}

	.dropdown-item:focus, .dropdown-item:hover {
		color: var(--yellow);
		background-color: transparent;
	}

	.home-slideshow .carousel-caption h2 {
		font-size: 5rem;
	}

	.home-slideshow .carousel-caption p {
		padding: 0 200px;
	}

	.footer .col1 img {
		margin: 0 50px 0 0;
	}
}

@media (min-width: 1400px) {
	.navbar-brand img {
		width: 280px;
	}
}

/* Availability responsive overrides (preserved from plugin) */

@media (max-width:900px) {
	.woocommerce .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-navigation, .woocommerce .woocommerce-MyAccount-content, .woocommerce-MyAccount-content {
		float: none !important;
		width: 100% !important;
	}
}

@media (max-width:900px) {
	.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content {
		float: none;
		width: 100%;
	}
}

@media (max-width:640px) {
	.cms-reservations-table thead {
		display: none;
	}

	.cms-reservations-table, .cms-reservations-table tbody, .cms-reservations-table tr, .cms-reservations-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	.cms-reservations-table tr {
		border: 1px solid #e4e6e8;
		border-radius: 6px;
		margin-bottom: 14px;
		padding: 8px 12px;
	}

	.cms-reservations-table td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		text-align: right;
		border-bottom: 1px solid #eee;
		padding: 9px 0;
	}

	.cms-reservations-table td:last-child {
		border-bottom: 0;
	}

	.cms-reservations-table td:before {
		content: attr(data-title);
		font-weight: 600;
		text-align: left;
		flex: 0 0 35%;
	}

	.cms-reservations-table .cms-actions {
		justify-content: flex-end;
	}
}