/*!
Theme Name: Airfoil 2.0
Author: Kelsey Barmettler
Author URI: https://kelseybarmettler.com
Description: A theme for [website name]
Version: 2.2
GitHub Theme URI: ensignrolaren/af2
GitHub Theme URI: https://github.com/ensignrolaren/af2
*/

/* ################################
# TABLE OF CONTENTS
#
# Search for "# XX." to jump to a section.
#
#	01. RESET
#	02. TYPOGRAPHY
#	03. BASE ELEMENTS
#	04. LINKS
#	05. BUTTONS
#	06. FORMS
#	07. FLUENT FORMS
#	08. LAYOUT
#	09. SIDEBAR LAYOUT
#	10. BEFORE HEADER
#	11. SITE HEADER
#	12. NAVIGATION
#	13. FRONT PAGE
#	14. PAGES
#	15. LANDING PAGES
#	16. POSTS & ARCHIVES
#	17. ARCHIVE NAVIGATION
#	18. BREADCRUMBS
#	19. SEARCH
#	20. COMMENTS
#	21. BLOCK AREAS
#	22. CORE BLOCKS & BLOCK STYLES
#	23. THEME BLOCKS
#	24. WOOCOMMERCE
#	25. MEDIA, EMBEDS & CAPTIONS
#	26. GALLERIES
#	27. ACCESSIBILITY
#	28. SITE FOOTER
#	29. PROJECT OVERRIDES
################################### */

/* debug helper -- uncomment the outline to visualize layout boxes */
* > * {
	/* outline: 1px solid hotpink; */
}

/* ################################
# 01. RESET
# via joshwcomeau.com/css/custom-css-reset/
################################### */
*,
*::before,
*::after {
	box-sizing: border-box;
}
* {
	margin: 0;
}
img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}
input,
button,
textarea,
select {
	font: inherit;
	max-width: 100%;
}
p,
h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
}

/* ################################
# 02. TYPOGRAPHY
################################### */
body,
button,
input,
select,
optgroup,
textarea {
	font-size: clamp(16px, calc(1rem + ((1vw - 3px) * 0.1235)), 18px);
	min-height: 0vw;
	font-family: var(--wp--preset--font-family--system-sans-serif);
	color: var(--wp--preset--color--espresso);
	line-height: 1.5;
}
html {
	font-size: 100%;
}
body {
	line-height: 1.5;
	font-size: 1.125em;
	overflow-x: hidden;
}
/* headings */
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--wp--preset--font-family--system-sans-serif);
	font-weight: bold;
	text-transform: capitalize;
	clear: both;
}
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.12;
}
h1 {
	line-height: 1;
}
.wp-block-heading {
	margin-bottom: .85em;
}
/* paragraphs */
p {
	margin-bottom: 1.5em;
}
/* inline text elements */
dfn,
cite,
em,
i {
	font-style: italic;
}
blockquote {
	margin: 0 1.5em;
}
address {
	margin: 0 0 1.5em;
}
pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}
code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}
abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}
mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}
big {
	font-size: 125%;
}

/* ################################
# 03. BASE ELEMENTS
################################### */
body {
	background: var(--wp--preset--color--parchment);
	border-top: 5px solid var(--wp--preset--color--red-door);
}

hr {
	background-color: var(--wp--preset--color--red-door);
	border: 0;
	height: 2px;
	margin-bottom: 1.5em;
}

/* lists */
ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* make sure embeds and iframes fit their containers */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* ################################
# 04. LINKS
################################### */
a {
	color: var(--wp--preset--color--turquoise);
}

a:visited {
	color: var(--wp--preset--color--turquoise);
}

a:hover,
a:focus,
a:active {
	color: var(--wp--preset--color--red-door);
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* ################################
# 05. BUTTONS
################################### */
.wp-element-button,
.wp-block-button__link {
	padding: .5rem 1rem;
	border-radius: 5px;
	background-color: var(--wp--preset--color--red-door);
	color: var(--wp--preset--color--white);
	text-decoration: none;
	transition: background-color .5s ease;
}
.wp-element-button:hover,
.wp-element-button:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus {
	background-color: var(--wp--preset--color--brick);
	color: var(--wp--preset--color--white);
}
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) {
	padding: .5rem 1rem;
}
.wp-block-button__link:focus,
form.fluent_form_5 .ff-btn-submit:focus {
	outline: .15rem dotted #2f3134;
	outline-offset: .2rem;
}

/* ################################
# 06. FORMS
################################### */
/* form buttons */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc;
	border-radius: 3px;
	background: #f0f0f0;
	line-height: 1;
	padding: 0.5rem 1rem;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa;
}

/* text inputs */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

/* overrides the border above -- was originally declared later in the
   file (comments section), so it must stay after the 1px rule */
input[type="text"],
input[type="email"],
input[type="url"],
textarea {
	border: 2px solid var(--wp--preset--color--sandstone);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/* ################################
# 07. FLUENT FORMS
# stub -- per-project Fluent Forms styles
# (submit button focus style lives in # 05. BUTTONS)
################################### */
.fluentform {
}
.fluentform .ff-btn-submit {
}

/* ################################
# 08. LAYOUT
################################### */
.site-inner,
.block-area {
	padding-left: var(--wp--custom--layout--padding);
	padding-right: var(--wp--custom--layout--padding);
}
/* wrappers */
.wrapper {
	max-width: calc(var(--wp--custom--layout--wide) + 2 * var(--wp--custom--layout--padding));
	margin: 0 auto;
	padding-left: var(--wp--custom--layout--padding);
	padding-right: var(--wp--custom--layout--padding);
}
.wrapper-no-padding {
	max-width: calc(var(--wp--custom--layout--wide));
	margin-left: auto;
	margin-right: auto;
}
/* content width, alignwide, alignfull */
.entry-content > .alignfull:not(:last-child),
.entry-content > .wp-block-separator:not(:last-child),
.block-area > .alignfull:not(:last-child),
.block-area > .wp-block-separator:not(:last-child) {
	margin-bottom: var(--wp--custom--layout--block-gap);
}
.entry-content > .alignfull.has-background + .alignfull,
.entry-content > .alignfull.wp-block-cover + .alignfull,
.block-area > .alignfull.has-background + .alignfull,
.block-area > .alignfull.wp-block-cover + .alignfull {
	margin-top: calc(var(--wp--custom--layout--block-gap) * -1);
}
.entry-content > *,
.block-area > * {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--wp--custom--layout--page);
}
.entry-content > *.alignwide,
.block-area > *.alignwide {
	max-width: var(--wp--custom--layout--wide);
}
.entry-content > *.alignfull,
.block-area > *.alignfull {
	margin-left: calc(-1 * var(--wp--custom--layout--padding));
	margin-right: calc(-1 * var(--wp--custom--layout--padding));
	max-width: 100vw;
}
.alignfull.is-layout-flow > * {
	padding-left: var(--wp--custom--layout--block-gap);
	padding-right: var(--wp--custom--layout--block-gap);
}
.entry-content > .alignfull:not(:first-child),
.entry-content > .wp-block-separator:not(:first-child),
.block-area > .alignfull:not(:first-child),
.block-area > .wp-block-separator:not(:first-child) {
	margin-top: var(--wp--custom--layout--block-gap);
}
.wp-block-cover,
.wp-block-cover-image {
	padding: var(--wp--custom--layout--block-gap) var(--wp--custom--layout--padding);
}
.after-entry,
.entry-comments {
	max-width: var(--wp--custom--layout--page);
	margin-left: auto;
	margin-right: auto;
}
.entry-header,
.entry-footer {
	margin: 0 auto;
}
.alignfull.wp-block-cover > .wp-block-cover__image-background,
.alignfull.wp-block-cover > .wp-block-cover__background {
	max-width: 100vw;
}
/* classic alignments */
.alignleft {
	float: left;
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {
	float: right;
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/* ################################
# 09. SIDEBAR LAYOUT
################################### */
/* full-width entry header band (output by af2_full_width_entry_header
   in inc/loop.php) -- spans the flex row so the sidebar starts level
   with the entry content below it */
.content-area > .entry-header--full-width {
	flex-basis: 100%;
	min-width: 100%;
}
/* content-sidebar (sidebar on the right) */
.content-sidebar .content-area {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--custom--layout--block-gap);
	max-width: var(--wp--custom--layout--wide);
	margin-left: auto;
	margin-right: auto;
}
.content-sidebar .site-main {
	flex-basis: 0;
	flex-grow: 999;
	min-inline-size: 50%;
}
/* NOTE: .sidebar is declared again below with different flex values;
   the later declaration wins. Consolidate when convenient. */
.sidebar {
	flex-basis: 21em;
	flex-grow: 1;
	flex: 1 1 25%;
	min-width: 180px;
}
.block-area-sidebar {
	padding: 0;
}
@media (max-width: 767px) {
	.content-sidebar .content-area {
		flex-direction: column;
	}
}
.content-sidebar .content-area .entry-header,
.content-sidebar .content-area .entry-footer,
.content-sidebar .content-area .after-entry,
.content-sidebar .content-area .entry-comments {
	max-width: unset;
	margin-left: 0;
	margin-right: 0;
}
.content-sidebar .entry-content > * {
	max-width: unset;
	margin-left: 0;
	margin-right: 0;
}
/* sidebar-content (sidebar on the left) */
.sidebar-content .content-area {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	max-width: var(--wp--custom--layout--wide);
	margin-left: auto;
	margin-right: auto;
}
.sidebar-content .site-main {
	flex: 1 1 calc(75% - 2rem);
}
@media (max-width: 767px) {
	.content-sidebar .content-area {
		flex-direction: column;
	}
}
.sidebar-content .content-area .entry-header,
.sidebar-content .content-area .entry-footer,
.sidebar-content .content-area .after-entry,
.sidebar-content .content-area .entry-comments {
	max-width: unset;
	margin-left: 0;
	margin-right: 0;
}
.sidebar-content .entry-content > * {
	max-width: unset;
	margin-left: 0;
	margin-right: 0;
}
/* stack content above sidebar on mobile */
@media (max-width: 767px) {
	.site-main {
		order: 1;
	}
	.sidebar {
		order: 2;
	}
}

/* ################################
# 10. BEFORE HEADER
################################### */
.block-area-before-header > * > * {
	max-width: calc(var(--wp--custom--layout--wide) + 2 * var(--wp--custom--layout--padding));
	margin: 0 auto;
	padding-left: var(--wp--custom--layout--padding);
	padding-right: var(--wp--custom--layout--padding);
}

/* ################################
# 11. SITE HEADER
################################### */
.site-header .wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: var(--wp--custom--layout--block-gap);
	padding-bottom: var(--wp--custom--layout--block-gap);
	gap: 1rem;
	z-index: 2;
}
/* logo -- make sure logo link wraps around logo image */
.custom-logo-link {
	display: inline-block;
}
.site-header__logo img {
	display: block;
	width: 425px;
	max-width: 100%;
	height: auto;
}
/* large screens: nav on its own centered row with a red rule under it */
@media (min-width: 768px) {
	.site-header .wrapper {
		flex-wrap: wrap;
	}
	.site-header .navbar {
		flex-basis: 100%;
		padding-bottom: var(--wp--custom--layout--block-gap);
		border-bottom: 2px solid var(--wp--preset--color--red-door);
	}
	.site-header .navbar-menu {
		justify-content: center;
		gap: 0;
	}
}

/* ################################
# 12. NAVIGATION
################################### */
/* hide menu toggle on large screens */
.menu-toggle,
.close-button {
	display: none;
}
/* primary main navigation menu */
.navbar-menu a {
	display: block;
	text-decoration: none;
	color: var(--wp--preset--color--espresso);
	transition: color 250ms ease;
}
.navbar-menu a:hover,
.navbar-menu a:focus,
.navbar-menu .current-menu-item > a,
.navbar-menu .current-menu-ancestor > a,
.navbar-menu .current_page_parent > a {
	color: var(--wp--preset--color--red-door);
}
.menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 0.75em;
	height: 0.75em;
	margin-left: 0.35em;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 L6 8 L9.5 4.5' fill='none' stroke='%23292421' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
}
.navbar > .navbar-menu > li > a {
	display: inline-block;
}
.navbar-menu {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}
.navbar-menu,
.navbar-menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.navbar-menu li {
	position: relative;
}
.navbar-menu li:hover > ul,
.navbar-menu li:focus-within > ul /* IE11+ only */ {
	display: block;
	visibility: visible;
	opacity: 1;
	transition-delay: 0s;
}
/* large screens only */
@media (min-width: 768px) {

	.navbar > .navbar-menu > li > a {
		padding: .5rem 1em;
	}
	/* child / sub menus */
	.navbar-menu .sub-menu {
		position: absolute;
		left: 0;
		top: 100%;
		z-index: 4;
		visibility: hidden;
		opacity: 0;
		transform: translateY(-1rem);
		width: 260px;
		padding: .5rem 0;
		border-top: 4px solid var(--wp--preset--color--red-door);
		background-color: var(--wp--preset--color--white);
		font-size: var(--wp--preset--font-size--tiny);
		text-align: left;
		transition: opacity .3s ease-in-out, transform .3s ease-in-out, visibility 0s linear .3s;
	}
	.navbar-menu li:hover > .sub-menu,
	.navbar-menu li:focus-within > .sub-menu {
		transform: translateY(0);
		transition-delay: 0s;
	}
	.navbar-menu .sub-menu > li > ul {
		left: 100%;
		top: 0;
	}
	.sub-menu a {
		padding: .25rem 1.5rem;
		line-height: 1.5;
	}
	.sub-menu a:hover,
	.sub-menu a:focus {
		color: var(--wp--preset--color--red-door);
		background-color: var(--wp--preset--color--sandstone);
	}
}
/* small mobile screens only -- slide-out menu */
@media (max-width: 767px) {
	.navbar-menu {
		padding-left: var(--wp--custom--layout--block-gap);
		padding-right: var(--wp--custom--layout--block-gap);
	}
	.navbar-menu a {
		padding: .5rem;
		border-bottom: 1px solid #ccc;
		width: 100%;
	}
	.menu-toggle {
		display: flex;
		align-items: center;
		gap: .5rem;
		border: 0;
		border-radius: 0;
		background: transparent;
		color: var(--wp--preset--color--espresso);
		line-height: 1;
		padding: 0;
	}
	.menu-toggle__icon {
		width: 1.75rem;
		height: 1.75rem;
	}
	.toggled .close-button {
		display: block;
	}
	.close-button {
		position: absolute;
		bottom: 0;
		width: 100%;
		border: none;
		border-radius: 0;
		color: #fff;
		line-height: 1;
		padding: 0.5rem 1rem;
		text-align: right;
		transform: translateX(-1rem);
		background-color: #333;
		background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="%23FFFFFF" width="18" height="18" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>');
		background-repeat: no-repeat;
		background-position: calc(100% - .5rem) .5rem;
		padding-right: 2rem;
		color: #fff;
		border: none;
		cursor: pointer;
	}
	.logged-in .close-button {
		transform: translateY(-46px) translateX(-1rem);
	}
	.navbar-menu {
		position: fixed;
		left: -300px;
		top: 0;
		width: 300px;
		height: 100%;
		transition: all 300ms ease-in-out;
		z-index: 3;
		background-color: #eee;
	}
	.logged-in .navbar-menu {
		top: 46px;
	}
	.toggled .navbar-menu {
		display: block;
		position: fixed;
		left: 0;
		width: 80%;
	}
}

/* ################################
# 13. FRONT PAGE
# stub -- .home body class; site title h1 handled in inc/site-header.php
################################### */
.home {
}

/* ################################
# 14. PAGES
################################### */
.entry-header {
	padding: var(--wp--custom--layout--block-gap-large) 0 calc(var(--wp--custom--layout--block-gap) * 2) 0;
	max-width: calc(var(--wp--custom--layout--wide));
	margin: 0 auto;
}

/* ################################
# 15. LANDING PAGES
# stub -- pages with the landing_page meta hide the nav
# (see inc/site-header.php); per-project landing styles go here
################################### */

/* ################################
# 16. POSTS & ARCHIVES
################################### */
/* single */
.single .entry-header {
	max-width: calc(var(--wp--custom--layout--page));
}
/* after post area */
.block-area-after-post {
	margin-left: calc(-1 * var(--wp--custom--layout--padding));
	margin-right: calc(-1 * var(--wp--custom--layout--padding));
}

/* archives, search results & the posts page (.blog) */
.blog .archive-title,
.archive .archive-title,
.search .archive-title,
.error404 .archive-title {
	margin-top: var(--wp--custom--layout--block-gap);
	margin-bottom: var(--wp--custom--layout--block-gap);
}

.blog .site-inner,
.archive .site-inner,
.search .site-inner {
	margin-bottom: var(--wp--custom--layout--block-gap);
}
/* archive grid */
.blog .site-main,
.archive .site-main,
.search .site-main {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-gap: var(--wp--custom--layout--block-gap);
	max-width: var(--wp--custom--layout--wide);
	margin: 0 auto;
}
/* posts page cards show excerpts, so give them more room */
.blog .site-main {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-row-gap: var(--wp--custom--layout--block-gap-large);
}

.archive .site-main > *,
.search .site-main > * {

}
@media (max-width: 767px) {
	.blog .site-main,
	.archive .site-main,
	.search .site-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 520px) {
	.blog .site-main,
	.archive .site-main,
	.search .site-main {
		grid-template-columns: repeat(1, 1fr);
	}
}
/* query loop block */
.wp-block-query .wp-block-post-template {
	margin: 0;
}
.wp-block-query .wp-block-post-template .wp-block-post-date {
	text-transform: uppercase;
	color:rgba(0, 0, 0, 0.6);
	font-size: var(--wp--preset--font-size--tiny);
	margin-bottom: var(--wp--custom--layout--block-gap);
}
.wp-block-query .wp-block-post-template .wp-block-post-title {
	font-size: var(--wp--preset--font-size--large);
}
/* post summary (archive cards, see partials/archive.php) */
.post-summary .post-summary__image {
	display: block;
	overflow: hidden;
	border-radius: 3px;
}
.post-summary .post-summary__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .3s ease;
}
.post-summary:hover .post-summary__image img {
	transform: scale(1.03);
}
@media (prefers-reduced-motion: reduce) {
	.post-summary .post-summary__image img {
		transition: none;
	}
	.post-summary:hover .post-summary__image img {
		transform: none;
	}
}
.post-summary .entry-category {
	margin-bottom: 0;
	font-size: var(--wp--preset--font-size--small);
}
.post-summary .entry-category a {
	text-decoration: none;
	padding: .5rem 0;
	display: inline-block;
}
.post-summary .post-summary__title {
	font-size: var(--wp--preset--font-size--large);
}
.post-summary .post-summary__title a {
	text-decoration: none;
}
.post-summary .post-summary__title a:hover {
	text-decoration: underline;
}
.post-summary .post-summary__date {
	display: block;
	margin-top: .25rem;
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--letter-spacing--loose);
	color: rgba(0, 0, 0, 0.6);
	font-size: var(--wp--preset--font-size--tiny);
}
.post-summary .post-summary__excerpt {
	margin-top: .5rem;
	margin-bottom: 0;
	font-size: var(--wp--preset--font-size--small);
}

/* ################################
# 17. ARCHIVE NAVIGATION
# stub -- pagination output by inc/archive-navigation.php
# (currently unstyled!)
################################### */
.archive-pagination {
}
.archive-pagination .active {
}
.archive-pagination .pagination-previous,
.archive-pagination .pagination-next {
}
.archive-pagination .pagination-omission {
}

/* ################################
# 18. BREADCRUMBS
################################### */
.breadcrumbs nav {
	margin-top: var(--wp--custom--layout--block-gap);
	margin-bottom: var(--wp--custom--layout--block-gap);
}
nav .breadcrumb {
	font-size: var(--wp--preset--font-size--tiny);
	color: #777;
	text-transform: uppercase;
}

/* ################################
# 19. SEARCH
################################### */
/* appears below the search results template header */
.wp-block-search {
	margin-bottom: var(--wp--custom--layout--block-gap);
}
.wp-block-search__inside-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}
.wp-block-search__input {
	max-width: 100%;
}
.wp-block-search__button {
	background-color: #ddd;
	margin-left: 0 !important;
}

/* ################################
# 20. COMMENTS
################################### */
.entry-comments {
	margin: calc(var(--wp--custom--layout--block-gap) * 2) 0;
	margin-left: auto;
	margin-right: auto;
}
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}
.comments-title {
	font-size: var(--wp--preset--font-size--large);
	margin-bottom: 1rem;
}
.comment-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.comment-meta {
	font-size: var(--wp--preset--font-size--small);
	display: flex;
	align-items: center;
	margin-bottom: .5rem;
}
.comment-meta .avatar {
	border-radius: 100%;
}
.comment-author {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: var(--wp--preset--font-size--small);
}
.comment-content {
	border: 1px solid var(--wp--preset--color--sandstone);
	padding: 1rem;
	font-size: var(--wp--preset--font-size--small);
}
.comment-content p:last-of-type {
	margin: 0;
}

/* ################################
# 21. BLOCK AREAS
################################### */
/* no trailing margin at the end of a block area */
.block-area :last-child {
	margin-bottom: 0;
}
.widget {

}

.widget select {
	max-width: 100%;
}

/* ################################
# 22. CORE BLOCKS & BLOCK STYLES
################################### */
/* stubs for custom block styles registered in editor.js -- style per project */
.no-gap {
	gap: 0 !important;
}
.is-style-trust-bar {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
	align-items: center;
	gap: var(--wp--preset--spacing--40, 1.5rem);
}

.is-style-trust-bar :where(.wp-block-image) {
	display: grid;
	place-items: center;
	margin: 0;
}

.is-style-trust-bar :where(img) {
	width: auto;
	max-width: 100%;
	max-height: 4rem;
	object-fit: contain;
	filter: grayscale(100%);
	transition: filter 200ms ease;
}

.is-style-trust-bar :where(.wp-block-image:hover, .wp-block-image:focus-within) img {
	filter: grayscale(0%);
}
.youtube-embed {
	display: flex;
	justify-content: center;
}
.youtube-embed iframe {
	aspect-ratio: 16 / 9;
	width: 100% !important;
	height: 100% !important;
}
.wp-block-heading.is-style-looks-like-paragraph {
}
p.is-style-looks-like-heading {
}
.is-style-hero {
}
.wp-block-gallery.is-style-no-grow {
}
.wp-block-media-text.is-style-stacked {
}
/* full-link block style -- makes the clickable area of a link fill its parent */
.is-style-full-link a:after {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	content: '';
}
/* stubs for custom rich-text formats registered in editor.js -- style per project */
.is-lead-in {
}
.is-small {
}
/* paragraph block */
p.has-background {
	padding: calc(2 * var(--wp--custom--layout--padding));
}
@media (max-width: 600px) {
	p.has-background {
		padding: var(--wp--custom--layout--padding);
	}
}
/* cover block */
.wp-block-cover,
.wp-block-cover-image {
	padding: var(--wp--custom--layout--block-gap) var(--wp--custom--layout--padding);
}
.alignfull.wp-block-cover > .wp-block-cover__image-background,
.alignfull.wp-block-cover > .wp-block-cover__background {
	max-width: 100vw;
}
/* media & text block */
.wp-block-media-text.has-background .wp-block-media-text__content {
	padding: calc(var(--wp--custom--layout--block-gap) * 2) var(--wp--custom--layout--block-gap);
}
@media (max-width: 600px) {
	.wp-block-media-text.has-background .wp-block-media-text__content {
		padding: var(--wp--custom--layout--block-gap);
	}
	.wp-block-media-text .wp-block-media-text__content :last-child {
		margin-bottom: 0;
	}
}

/* ################################
# 23. THEME BLOCKS
# custom ACF blocks in /blocks/
################################### */
/* social links block */
.social-links {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	line-height: 1;
	font-size: 0;
	margin-bottom: var(--wp--custom--layout--block-gap);
}
.social-links a {
	display: inline-block;
	padding: .5rem;
	font-size: 100%;
}
.social-links img {
	height: 24px;
	width: 24px;
}
.af2-social-link.has-white-color img {
	filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(283deg) brightness(108%) contrast(101%);
}
.social-links.has-text-align-center {
	justify-content: center;
}
.social-links.has-text-align-right {
	justify-content: flex-end;
}
/* faq block -- DEPRECATED, slated for removal */
.af2-faq__faq {
	padding: .5rem;
	margin-bottom: var(--wp--custom--layout--block-gap);
}
.af2-faq__answer :last-child,
.af2-faq__question  :last-child {
	margin-bottom: 0;
}
.af2-faq__question {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
}
.af2-faq__question-inner {
	flex: 1 1 auto;
}

.af2-faq__question::after {
	content: '+';
	color: #000;
	flex:  0 1 1ch;
	position: relative;
	top: 3px;
	width: 1rem;
	margin-right: 0;
	margin-left: 1rem;
}
.af2-faq__faq > .af2-faq__question::-webkit-details-marker {
	display: none;
}
.af2-faq__faq + .af2-faq__faq {
	margin-top: .5rem;
}
.af2-faq__faq[open] .af2-faq__question:after {
	content: '-';
}
.af2-faq__answer {
	padding-top: 1rem;
}
/* testimonial block -- DEPRECATED, slated for removal */
.af2-testimonial__attribution {
	display: flex;
}
.af2-testimonial__image {
	flex: 1 1 140px;
}
.af2-testimonial__text {
	flex-basis: 0;
	flex-grow: 999;
}

/* ################################
# 24. WOOCOMMERCE
# stub -- theme has wrapper templates in /woocommerce/;
# per-project shop styles go here
################################### */
/* WooCommerce's own colors -- no purple, no olive */
:root:root {
	--wc-primary: var(--wp--preset--color--red-door);
	--wc-primary-text: var(--wp--preset--color--white);
	--wc-secondary: var(--wp--preset--color--sandstone);
	--wc-secondary-text: var(--wp--preset--color--espresso);
	--wc-highlight: var(--wp--preset--color--red-door);
	--wc-highligh-text: var(--wp--preset--color--white);
	--wc-subtext: var(--wp--preset--color--ash);
	--wc-form-border-color: var(--wp--preset--color--sandstone);
	--wc-form-border-radius: 0;
	--wc-form-border-width: 2px;
}
/* layout -- shop archives opt out of the blog archive grid in # 16 */
.woocommerce.archive .site-main {
	display: block;
}
.woocommerce .site-main,
.woocommerce-page .site-main {
	max-width: var(--wp--custom--layout--wide);
	margin: 0 auto;
	padding-top: var(--wp--custom--layout--block-gap-large);
	padding-bottom: var(--wp--preset--spacing--70);
}
/* product grids from shortcodes use the wide width, along with the heading right before them */
.entry-content > .woocommerce,
.is-layout-constrained > .woocommerce,
.entry-content > :is(h1, h2, h3, h4, h5, h6):has(+ .woocommerce),
.is-layout-constrained > :is(h1, h2, h3, h4, h5, h6):has(+ .woocommerce) {
	max-width: var(--wp--custom--layout--wide);
}
.woocommerce .woocommerce-breadcrumb {
	margin-bottom: 1.5rem;
	color: var(--wp--preset--color--ash);
	font-size: var(--wp--preset--font-size--tiny);
}
.woocommerce .woocommerce-breadcrumb a {
	color: var(--wp--preset--color--espresso);
	text-decoration: none;
}
.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--wp--preset--color--red-door);
}
.woocommerce-products-header__title {
	margin-bottom: 1rem;
}
.woocommerce .term-description {
	max-width: var(--wp--custom--layout--content);
	margin-bottom: 2rem;
}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 2rem;
	font-size: var(--wp--preset--font-size--tiny);
}
.woocommerce .woocommerce-result-count {
	padding-top: .6rem;
}
.woocommerce .woocommerce-ordering select {
	padding: .5rem;
	border: 2px solid var(--wp--preset--color--sandstone);
	background-color: var(--wp--preset--color--white);
}
/* product grid -- shop, categories, shortcodes, related */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--custom--layout--block-gap-large) 2rem;
	margin: 0 0 2rem;
	clear: both;
}
.woocommerce ul.products.columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.woocommerce ul.products.columns-4,
.woocommerce ul.products.columns-5,
.woocommerce ul.products.columns-6 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	display: flex;
	flex-direction: column;
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	text-align: center;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	color: var(--wp--preset--color--espresso);
	text-decoration: none;
}
.af2-product-card__image {
	margin-bottom: 1rem;
}
.woocommerce ul.products li.product .af2-product-card__image img,
.woocommerce ul.products li.product-category .af2-product-card__image img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	box-shadow: 0 1px 2px rgba(54, 47, 45, .12), 0 4px 8px rgba(54, 47, 45, .12), 0 12px 24px rgba(54, 47, 45, .14), 0 24px 48px rgba(54, 47, 45, .12);
	transition: transform .4s ease, box-shadow .4s ease;
}
.woocommerce ul.products li.product a:hover .af2-product-card__image img,
.woocommerce ul.products li.product a:focus .af2-product-card__image img,
.woocommerce ul.products li.product-category a:hover .af2-product-card__image img,
.woocommerce ul.products li.product-category a:focus .af2-product-card__image img {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px rgba(54, 47, 45, .12), 0 8px 16px rgba(54, 47, 45, .14), 0 20px 40px rgba(54, 47, 45, .16), 0 36px 72px rgba(54, 47, 45, .14);
}
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product-category a:hover .woocommerce-loop-category__title {
	color: var(--wp--preset--color--red-door);
}
/* round paintings -- Happy Day Southwest Collection */
.woocommerce ul.products li.product_cat-happy-day-southwest-collection .af2-product-card__image img,
.woocommerce ul.products li.product-category--happy-day-southwest-collection .af2-product-card__image img,
.woocommerce div.product.product_cat-happy-day-southwest-collection div.images .woocommerce-product-gallery__image img {
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
}
.woocommerce div.product.product_cat-happy-day-southwest-collection div.images .flex-control-thumbs img {
	border-radius: 50%;
}
/* category (series) tiles */
.woocommerce ul.products li.product-category a {
	display: flex;
	flex-direction: column;
	color: var(--wp--preset--color--espresso);
	text-decoration: none;
}
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
	padding: 0;
	margin: 0;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.3;
}
.af2-category-count {
	display: block;
	margin-top: .35rem;
	color: var(--wp--preset--color--red-door);
	font-size: var(--wp--preset--font-size--min);
	font-weight: bold;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	margin-bottom: .5rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.3;
}
.woocommerce ul.products li.product .price {
	margin-top: auto;
	margin-bottom: .5rem;
	color: var(--wp--preset--color--red-door);
	font-weight: bold;
	font-size: var(--wp--preset--font-size--small);
}
.woocommerce ul.products li.product .button {
	align-self: center;
	margin-top: 0;
	padding: .25rem 0;
	border-radius: 0;
	background: none;
	color: var(--wp--preset--color--espresso);
	font-size: var(--wp--preset--font-size--min);
	letter-spacing: .1em;
	text-transform: uppercase;
	border-bottom: 2px solid var(--wp--preset--color--red-door);
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus {
	background: none;
	color: var(--wp--preset--color--red-door);
}
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	min-width: 0;
	min-height: 0;
	padding: .35rem .75rem;
	margin: 0;
	top: 1rem;
	left: 1rem;
	right: auto;
	border-radius: 3px;
	background-color: var(--wp--preset--color--red-door);
	font-size: var(--wp--preset--font-size--min);
	line-height: 1.2;
	text-transform: uppercase;
}
.woocommerce nav.woocommerce-pagination ul {
	border: 0;
}
.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	margin: 0 .25rem;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	padding: .5rem .85rem;
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--espresso);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background-color: var(--wp--preset--color--red-door);
	color: var(--wp--preset--color--white);
}
/* single product */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--wp--custom--layout--block-gap-large) 3rem;
	align-items: start;
}
.woocommerce div.product > * {
	grid-column: 1 / -1;
}
.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin-bottom: 0;
}
.woocommerce div.product div.images {
	grid-column: 1;
}
.woocommerce div.product div.summary {
	grid-column: 2;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image {
	display: flex;
	justify-content: center;
	padding-bottom: 3rem;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	width: auto;
	max-width: 100%;
	max-height: 80vh;
	box-shadow: 0 1px 2px rgba(54, 47, 45, .12), 0 4px 8px rgba(54, 47, 45, .12), 0 12px 24px rgba(54, 47, 45, .14), 0 24px 48px rgba(54, 47, 45, .12);
}
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: .5rem;
	margin-top: .5rem;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	width: 80px;
}
.woocommerce div.product .product_title {
	margin-bottom: .75rem;
	font-size: var(--wp--preset--font-size--huge);
	line-height: 1.1;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin-bottom: 1.5rem;
	color: var(--wp--preset--color--red-door);
	font-weight: bold;
	font-size: var(--wp--preset--font-size--x-large);
}
.woocommerce div.product .af2-product-description {
	margin-bottom: 1.5rem;
}
.woocommerce div.product .af2-product-description > :last-child {
	margin-bottom: 0;
}
.woocommerce div.product .woocommerce-product-details__short-description {
	margin-bottom: 1.5rem;
	padding-top: 1.5rem;
	border-top: 2px solid var(--wp--preset--color--sandstone);
}
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-bottom: 1.5rem;
}
.woocommerce div.product form.variations_form {
	display: block;
}
.woocommerce div.product form.cart table.variations {
	width: 100%;
	margin-bottom: 1rem;
	border: 0;
}
.woocommerce div.product form.cart table.variations tr {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin-bottom: 1rem;
}
.woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	line-height: 1.3;
}
.woocommerce div.product form.cart table.variations th label {
	font-size: var(--wp--preset--font-size--min);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.woocommerce div.product form.cart table.variations select {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: .75rem 2.5rem .75rem .85rem;
	border: 2px solid var(--wp--preset--color--sandstone);
	border-radius: 0;
	background: var(--wp--preset--color--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 L6 8 L9.5 4.5' fill='none' stroke='%23362f2d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .85rem center / .85rem;
	color: var(--wp--preset--color--espresso);
	appearance: none;
	cursor: pointer;
}
.woocommerce div.product form.cart table.variations select:focus {
	border-color: var(--wp--preset--color--red-door);
	outline: 0;
}
.woocommerce div.product form.cart .reset_variations {
	display: inline-block;
	margin-top: .5rem;
	color: var(--wp--preset--color--espresso);
	font-size: var(--wp--preset--font-size--min);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.woocommerce div.product form.cart .single_variation_wrap .woocommerce-variation {
	margin-bottom: 1rem;
}
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}
.woocommerce div.product .stock {
	color: var(--wp--preset--color--espresso);
	font-size: var(--wp--preset--font-size--tiny);
}
.woocommerce div.product .out-of-stock {
	color: var(--wp--preset--color--red-door);
}
.woocommerce div.product form.cart div.quantity {
	float: none;
	margin: 0;
}
.woocommerce .quantity .qty {
	width: 4.5rem;
	padding: .5rem;
	border: 2px solid var(--wp--preset--color--sandstone);
}
.woocommerce div.product form.cart .button {
	float: none;
	flex-grow: 1;
	padding: .85rem 1.5rem;
	border-radius: 0;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.woocommerce div.product form.cart .button.disabled,
.woocommerce div.product form.cart .button:disabled {
	background-color: var(--wp--preset--color--red-door);
	color: var(--wp--preset--color--white);
	opacity: .45;
	cursor: not-allowed;
}
.woocommerce .quantity .qty {
	min-height: 100%;
	text-align: center;
	background-color: var(--wp--preset--color--white);
}
.woocommerce div.product .product_meta {
	padding-top: 1rem;
	border-top: 2px solid var(--wp--preset--color--sandstone);
	font-size: var(--wp--preset--font-size--tiny);
}
.woocommerce div.product .product_meta > span {
	display: block;
	margin-bottom: .25rem;
}
.woocommerce div.product .product_meta a {
	color: var(--wp--preset--color--espresso);
}
.woocommerce div.product .product_meta a:hover {
	color: var(--wp--preset--color--red-door);
}
.woocommerce div.product .woocommerce-product-gallery__trigger {
	background-color: var(--wp--preset--color--white);
	box-shadow: 0 2px 8px rgba(54, 47, 45, .2);
}
/* previous / next */
.af2-product-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	padding-top: var(--wp--custom--layout--block-gap-large);
	border-top: 2px solid var(--wp--preset--color--sandstone);
}
.af2-product-nav__link {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	column-gap: 1rem;
	align-items: center;
	color: var(--wp--preset--color--espresso);
	text-decoration: none;
}
.af2-product-nav__link--next {
	grid-column: 2;
	grid-template-columns: 1fr auto;
	text-align: right;
}
.af2-product-nav__thumb {
	grid-row: 1 / 3;
	width: 80px;
	height: 80px;
	object-fit: cover;
	box-shadow: 0 2px 4px rgba(54, 47, 45, .14), 0 6px 12px rgba(54, 47, 45, .12);
}
.af2-product-nav__link--next .af2-product-nav__thumb {
	grid-column: 2;
}
.af2-product-nav__label {
	align-self: end;
	color: var(--wp--preset--color--red-door);
	font-size: var(--wp--preset--font-size--min);
	font-weight: bold;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.af2-product-nav__title {
	align-self: start;
	font-weight: bold;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.3;
}
.af2-product-nav__link:hover .af2-product-nav__title,
.af2-product-nav__link:focus .af2-product-nav__title {
	color: var(--wp--preset--color--red-door);
}
.af2-product-nav__link--next .af2-product-nav__label,
.af2-product-nav__link--next .af2-product-nav__title {
	grid-column: 1;
}
.woocommerce div.product .woocommerce-tabs {
	padding-top: var(--wp--custom--layout--block-gap-large);
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	padding: 0;
	margin: 0 0 2rem;
	border-bottom: 2px solid var(--wp--preset--color--sandstone);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	margin: 0 0 -2px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: .75rem 1rem;
	color: var(--wp--preset--color--espresso);
	font-weight: bold;
	border-bottom: 4px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--wp--preset--color--red-door);
	border-bottom-color: var(--wp--preset--color--red-door);
}
.woocommerce div.product .woocommerce-tabs .panel {
	max-width: var(--wp--custom--layout--content);
	margin-bottom: 0;
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
	display: none;
}
.woocommerce .related.products,
.woocommerce .upsells.products {
	padding-top: var(--wp--custom--layout--block-gap-large);
	border-top: 4px solid var(--wp--preset--color--espresso);
}
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2 {
	margin-bottom: 1.5rem;
}
.woocommerce-message,
.woocommerce-info {
	border-top-color: var(--wp--preset--color--red-door);
	background-color: var(--wp--preset--color--white);
}
.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--wp--preset--color--red-door);
}
@media (max-width: 900px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 1.25rem;
	}
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
	}
	.woocommerce div.product div.images,
	.woocommerce div.product div.summary {
		grid-column: 1;
	}
}
@media (max-width: 600px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-2,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}
}
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	background-color: var(--wp--preset--color--sandstone);
	color: var(--wp--preset--color--espresso);
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background-color: var(--wp--preset--color--ash);
	color: var(--wp--preset--color--espresso);
}
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background-color: var(--wp--preset--color--red-door);
	color: var(--wp--preset--color--white);
}
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-color: var(--wp--preset--color--brick);
	color: var(--wp--preset--color--white);
}

/* ################################
# 25. MEDIA, EMBEDS & CAPTIONS
################################### */
/* fix svg img thumbnail */
.attachment-266x266, .thumbnail img {
	width: 100% !important;
	height: auto !important;
}
/* fix google maps embeds */
.google-maps {
	position: relative;
	padding-bottom: 75%;
	height: 0;
	overflow: hidden;
}
.google-maps iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
}
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* captions */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {

}

.wp-caption-text {
	text-align: center;
}

/* ################################
# 26. GALLERIES
################################### */
.gallery {

	display: flex;
	flex-wrap: wrap;
	gap: 1em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	flex: 0 1 calc(50% - 1rem)
}

.gallery-columns-3 {
	flex: 0 1 calc(33.333% - 1rem)
}

.gallery-columns-4 {
	flex: 0 1 calc(25% - 1rem)
}

.gallery-columns-5 {
	flex: 0 1 calc(20% - 1rem)
}

.gallery-columns-6 {
	flex: 0 1 calc(16.66666667% - 1rem)
}

.gallery-columns-7 {
	flex: 0 1 calc(14.28571429% - 1rem)
}

.gallery-columns-8 {
	flex: 0 1 calc(12.5% - 1rem)
}

.gallery-columns-9 {
	flex: 0 1 calc(11.11111111% - 1rem)
}

.gallery-caption {
	display: block;
}

/* ################################
# 27. ACCESSIBILITY
################################### */
/* text meant only for screen readers */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* do not show the outline on the skip link target */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* ################################
# 28. SITE FOOTER
################################### */
.site-footer .alignfull .alignwide {
	padding-left: var(--wp--custom--layout--padding);
	padding-right: var(--wp--custom--layout--padding);
}
@media (max-width: 781px) {
	.block-area-site-footer .wp-block-columns .wp-block-column:not(:first-of-type) {
		flex-basis: calc(50% - var(--wp--custom--layout--block-gap)) !important;
	}
}
@media (max-width: 560px) {
	.block-area-site-footer .wp-block-columns .wp-block-column:not(:first-of-type) {
		flex-basis: 100% !important;
	}
}
.site-footer ul {
	padding: 0;
	margin: 0;
	list-style: none;
}
/* copyright bar */
.copyright {
	padding: var(--wp--custom--layout--block-gap) var(--wp--custom--layout--padding);
}
/* footer band and copyright */
.block-area-site-footer,
.block-area-copyright {
	padding-left: 0;
	padding-right: 0;
}
.block-area-site-footer > .alignfull,
.block-area-copyright > .alignfull {
	margin: 0;
}
.site-footer__main {
	border-top: 4px solid rgba(0, 0, 0, .15);
	line-height: 1;
}
.site-footer__main h4 {
	margin-bottom: 1rem;
}
.site-footer__main li {
	padding: .35em 0;
}
.block-area-copyright p {
	margin: 0;
	line-height: 1;
}

/* ################################
# 29. PROJECT OVERRIDES
# per-site, ad-hoc tweaks that don't fit a section above.
# if something here grows past a few rules, promote it to
# its own section and add it to the TOC.
################################### */
/* home intro and collage */
.entry-content > .home-intro {
	max-width: 950px;
}
.entry-content > .home-collage {
	margin-bottom: var(--wp--custom--layout--block-gap-large);
}
.home-collage img {
	display: block;
	width: 100%;
}
.home-pullquote {
	padding-left: 2rem;
	border-left: 10px solid var(--wp--preset--color--red-door);
	font-weight: bold;
}
/* linked headings, e.g. artist names on Browse Galleries */
.wp-block-heading a {
	color: inherit;
	text-decoration: none;
}
.wp-block-heading a:hover,
.wp-block-heading a:focus {
	color: var(--wp--preset--color--red-door);
}
/* artist pages (about + featured artists) */
.artist-subheading {
	margin-top: -.75rem;
	margin-bottom: 2rem;
	font-weight: bold;
	font-size: var(--wp--preset--font-size--large);
	text-transform: uppercase;
}
.about-headshot.alignleft,
.artist-photo.alignleft {
	margin: 0 1rem 1rem 0;
}
.artist-photo.alignright {
	margin: 0 0 1rem 1rem;
}
@media (max-width: 620px) {
	.about-headshot.alignleft,
	.artist-photo.alignleft,
	.artist-photo.alignright {
		float: none;
		margin: 0 auto 1rem;
		text-align: center;
	}
}
/* ===== Product grid + image sizing (append-only, authoritative) ===== */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)) !important;
	gap: 2.5rem 1.5rem !important;
	margin: 0 0 2rem !important;
}
.woocommerce ul.products li.product,
.woocommerce ul.products li.product-category {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product-category > a {
	display: flex !important;
	flex-direction: column !important;
}
.woocommerce ul.products li .af2-product-card__image {
	display: block !important;
	width: 100% !important;
	aspect-ratio: auto !important;
	margin: 0 0 1rem !important;
	padding: 0 !important;
}
.woocommerce ul.products li .af2-product-card__image img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: none !important;
	margin: 0 !important;
}
.woocommerce ul.products li.product_cat-happy-day-southwest-collection .af2-product-card__image img,
.woocommerce ul.products li.product-category--happy-day-southwest-collection .af2-product-card__image img {
	aspect-ratio: 1 !important;
	object-fit: cover !important;
	border-radius: 50% !important;
}