/*
Theme Name: QF Theme Foundation
Theme URI: https://jergrafsgaard.com/
Author: Jer Grafsgaard
Author URI: https://jergrafsgaard.com/
Description: Standalone, mobile-first WordPress theme foundation built around native WooCommerce compatibility. Brand and component enhancements remain subject to separate requirements assessment.
Version: 0.2.0
Requires at least: 6.6
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: qf-theme-foundation
Tags: e-commerce, custom-logo, custom-menu, featured-images, translation-ready
*/

/* Foundation */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	color: #1f2933;
	background: #fff;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.5;
}

img,
picture,
svg,
video {
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	max-width: 100%;
	font: inherit;
}

button,
.button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	min-height: 2.75rem;
}

:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	top: 0.5rem;
	left: 0.5rem;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	background: #fff;
	color: #000;
}

.site-header,
.site-main,
.site-footer {
	width: min(100% - 2rem, 90rem);
	margin-inline: auto;
}

.site-header,
.site-footer {
	padding-block: 1rem;
}

.site-main {
	display: block;
	padding-block: 1.5rem 3rem;
}

.site-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-content,
.entry-summary,
.woocommerce-product-details__short-description {
	overflow-wrap: anywhere;
}

.store-section + .store-section {
	margin-top: 3rem;
}

.store-section__header,
.store-section__footer {
	margin-block: 0 1.25rem;
}

/* WooCommerce: shared compatibility */
.woocommerce img,
.woocommerce-page img,
.wc-block-components-product-image img {
	display: block;
	max-width: 100%;
	height: auto;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	width: 100%;
	min-height: 2.75rem;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	max-width: 100%;
	overflow-wrap: anywhere;
}

.woocommerce-error {
	margin-left: 0;
}

/* Product and category loops: mobile-first */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	min-width: 0;
}

.woocommerce ul.products li.product a img {
	width: 100%;
}

/* Single product */
.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: 100%;
}

.woocommerce div.product form.cart,
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .single_variation_wrap {
	max-width: 100%;
}

.woocommerce div.product form.cart .variations select {
	width: 100%;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	clear: both;
}

/* Classic cart and checkout */
.woocommerce-cart-form,
.woocommerce .shop_table_responsive,
.woocommerce table.shop_table {
	max-width: 100%;
}

.woocommerce-cart-form,
.woocommerce .shop_table_responsive {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.woocommerce table.shop_table {
	width: 100%;
}

.woocommerce .col2-set,
.woocommerce-page .col2-set {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
}

.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 {
	float: none;
	width: 100%;
}

#order_review,
#order_review_heading {
	max-width: 100%;
}

/* Cart and Checkout blocks */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wc-block-cart,
.wc-block-checkout {
	max-width: 100%;
}

.wc-block-components-sidebar-layout {
	gap: 1.5rem;
}

/* My Account */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	min-width: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 36rem) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce ul.products.columns-1,
	.woocommerce-page ul.products.columns-1 {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (min-width: 48rem) {
	.woocommerce .col2-set,
	.woocommerce-page .col2-set {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-product div.product {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.85fr);
		gap: 2rem;
		align-items: start;
	}

	.single-product div.product > .woocommerce-tabs,
	.single-product div.product > .related,
	.single-product div.product > .upsells {
		grid-column: 1 / -1;
	}

	.woocommerce-account .woocommerce {
		grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
	}
}

@media (min-width: 64rem) {
	.woocommerce ul.products.columns-1,
	.woocommerce-page ul.products.columns-1 {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce ul.products.columns-2,
	.woocommerce-page ul.products.columns-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce ul.products.columns-3,
	.woocommerce-page ul.products.columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.woocommerce ul.products.columns-4,
	.woocommerce-page ul.products.columns-4,
	.woocommerce ul.products:not([class*="columns-"]),
	.woocommerce-page ul.products:not([class*="columns-"]) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.woocommerce ul.products.columns-5,
	.woocommerce-page ul.products.columns-5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

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