/*
 * Theme Name:  SpindleStack — FAOSA Eyewear
 * Template:    spindlestack
 * Description: Child theme for FAOSA Eyewear.
 * Version:     1.3.20
 * Author:      SpindleStack
 */

:root {
	--color-primary: #6b6b00;
	--color-primary-dark: #4a4a00;
	--color-primary-light: #8c8c1a;
	--color-accent: #c8a84b;
	--color-accent-warm: #d4914a;
	--color-dark: #1a1812;
	--color-dark-mid: #2b2620;
	--color-light: #f5f0e8;
	--color-cream: #f5f0e8;
	--color-text: #2a2318;
	--color-text-muted: #7a6e5f;
	--font-heading: 'Yeseva One', serif;
	--font-accent: 'Rye', cursive;
	--font-quote: 'Libre Baskerville', serif;
	--font-body: 'DM Sans', sans-serif;
	--nav-height: 68px;
	--transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--ss-color-primary: #6b6b00;
	--ss-color-primary-dark: #4a4a00;
	--ss-color-accent: #c8a84b;
	--ss-color-dark: #1a1812;
	--ss-color-light: #f5f0e8;
	--ss-color-cream: #f5f0e8;
	--ss-color-text: #2a2318;
	--ss-font-heading: 'Yeseva One', serif;
	--ss-font-body: 'DM Sans', sans-serif;
}

:root,
[data-bs-theme='light'] {
	--faosa-focus-color: var(--color-accent);
	--faosa-focus-ring: 0 0 0 3px rgba(200, 168, 75, 0.35);
	--bs-primary: #6b6b00;
	--bs-primary-rgb: 107, 107, 0;
	--bs-link-color: #6b6b00;
	--bs-link-hover-color: #4a4a00;
	--bs-focus-ring-color: rgba(200, 168, 75, 0.45);
	--bs-focus-ring-opacity: 1;
}

/* Global focus — FAOSA palette instead of Bootstrap blue */
:focus-visible {
	outline-color: var(--color-accent);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.input-text:focus,
textarea.input-text:focus,
select:focus,
input[type='text']:focus,
input[type='email']:focus,
input[type='tel']:focus,
input[type='number']:focus,
input[type='password']:focus,
input[type='search']:focus,
input[type='url']:focus,
textarea:focus {
	border-color: var(--faosa-focus-color);
	box-shadow: var(--faosa-focus-ring);
	outline: none;
}

.btn:focus-visible,
.btn-check:focus-visible + .btn {
	box-shadow: var(--faosa-focus-ring);
	outline: none;
}

a:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.site-nav .nav-link:focus-visible,
a.btn-faosa:focus-visible,
.btn-faosa:focus-visible,
.btn-faosa-primary:focus-visible,
.btn-faosa-outline:focus-visible {
	outline: none;
}

body.loom-source-site .ss-main.ss-main--loom,
body.loom-source-site #main.ss-main--loom {
	display: block !important;
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

body.loom-source-site #loom-root {
	width: 100%;
}

body.loom-source-site #loom-root .home-hero__headline,
body.loom-source-site #loom-root .inner-hero__title,
body.loom-source-site #loom-root .utility-hero__title {
	font-family: var(--font-heading);
}

body.loom-source-site #loom-root .eyebrow--rye,
body.loom-source-site #loom-root .eyebrow-label,
body.loom-source-site #loom-root .quote-eyebrow {
	font-family: var(--font-accent);
}

html,
body {
	max-width: 100% !important;
	overflow-x: hidden;
}

/* Navigation (from source) */
.site-nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1050;
	padding: 0.65rem 0;
	background: var(--color-dark);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
}

.site-nav .navbar-brand img,
.site-nav .custom-logo {
	height: 44px;
	width: auto;
}

.site-nav .brand-wordmark {
	font-family: var(--font-heading);
	color: var(--color-cream);
	font-size: 1.25rem;
}

.site-nav .nav-link {
	font-family: var(--font-body);
	font-size: 0.85rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-cream) !important;
	padding: 0.5rem 1rem 0.5rem 1.65rem !important;
	position: relative;
	text-decoration: none;
}

.site-nav .nav-link:hover,
.site-nav .nav-link:focus,
.site-nav .nav-link:focus-visible,
.site-nav .nav-link.active,
.site-nav .nav-link[aria-current="page"] {
	text-decoration: none !important;
}

.site-nav .navbar-brand,
.site-nav .navbar-brand:hover,
.site-nav .navbar-brand:focus {
	text-decoration: none !important;
}

.site-nav .nav-link::before {
	content: '';
	position: absolute;
	left: 0.25rem;
	top: 50%;
	width: 14px;
	height: 8px;
	transform: translateY(-50%);
	opacity: 0;
	transition: opacity 0.3s ease;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cline x1='1' y1='3' x2='1' y2='5' stroke='%23c8a84b' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='3' y1='1.5' x2='3' y2='6.5' stroke='%23c8a84b' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='5' y1='2.5' x2='5' y2='5.5' stroke='%23c8a84b' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='7' y1='0.5' x2='7' y2='7.5' stroke='%23c8a84b' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='9' y1='2' x2='9' y2='6' stroke='%23c8a84b' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='11' y1='1' x2='11' y2='7' stroke='%23c8a84b' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='13' y1='3.5' x2='13' y2='4.5' stroke='%23c8a84b' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.site-nav .nav-link:hover::before,
.site-nav .nav-link.active::before,
.site-nav .nav-link[aria-current="page"]::before {
	opacity: 1;
}

.site-nav .nav-link.active,
.site-nav .nav-link[aria-current="page"] {
	color: var(--color-accent) !important;
}

.navbar-toggler {
	border: 1px solid rgba(245, 240, 232, 0.4);
}

.navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28245, 240, 232, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ============================================
   FAOSA Nav Cart Button
   ============================================ */

.site-nav .nav-item-cart {
	display: flex;
	align-items: center;
	align-self: center;
	flex-shrink: 0;
}

.site-nav a.cart-contents {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 14px 8px 16px;
	background: #7a7a00;
	border: none;
	border-radius: 2px;
	color: #1c1c0e !important;
	text-decoration: none;
	line-height: 1;
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: none;
	letter-spacing: normal;
	transition: background 0.2s ease, transform 0.15s ease;
}

.site-nav a.cart-contents::before {
	content: none;
	display: none;
}

.site-nav a.cart-contents .bi {
	font-size: 17px;
	line-height: 1;
	color: #1c1c0e;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.site-nav a.cart-contents .cart-contents-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	color: #1c1c0e;
	border-radius: 0;
	font-size: 11px;
	font-weight: 700;
	padding: 0;
	letter-spacing: 0.04em;
	line-height: 1;
	min-width: 0;
	text-align: center;
}

.site-nav a.cart-contents:hover,
.site-nav a.cart-contents:focus-visible {
	background: #a0a000;
	color: #1c1c0e !important;
	transform: scale(1.04);
	text-decoration: none;
}

@media (max-width: 991.98px) {
	.site-nav .nav-item-cart {
		margin-top: 0.35rem;
	}
}

.ss-main {
	padding-top: var(--nav-height);
}

#scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 6px;
	z-index: 9999;
	overflow: hidden;
	pointer-events: none;
}

#scroll-wave {
	width: 100%;
	height: 6px;
	transform: translateX(-100%);
	transition: transform 0.05s linear;
}

/* Footer (from source) */
.site-footer {
	background: var(--color-dark);
	color: rgba(245, 240, 232, 0.8);
	padding: 4rem 0 0;
	margin-top: 0;
}

.site-footer__logo.brand-lockup {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	margin-bottom: 0;
	text-decoration: none;
}

.site-footer__logo .custom-logo-link,
.site-footer__logo > a {
	display: block;
	line-height: 0;
	text-decoration: none;
}

.site-footer__logo img,
.site-footer .custom-logo-link img,
.site-footer .custom-logo {
	height: 48px;
	width: auto;
	display: block;
	margin-bottom: 0.35rem;
}

.site-footer .brand-wordmark {
	font-family: var(--font-heading);
	font-size: 1.5rem;
	color: var(--color-accent);
	line-height: 1.1;
	margin-bottom: 0.35rem;
}

.site-footer .brand-lockup__sub {
	font-size: 0.68rem;
	max-width: 18rem;
	color: rgba(245, 240, 232, 0.8);
	margin-bottom: 1rem;
}

.site-footer__tagline {
	font-style: italic;
	font-size: 0.9rem;
	max-width: 280px;
	margin-bottom: 2rem;
}

.site-footer__contact-note {
	font-size: 0.85rem;
	color: rgba(245, 240, 232, 0.8);
	margin-top: 1rem;
	margin-bottom: 0;
	line-height: 1.5;
}

.site-footer ul li {
	margin-bottom: 0.5rem;
}

.site-footer .nav-item-cart {
	display: none !important;
}

.site-footer__heading {
	font-family: var(--font-body);
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--color-accent);
	margin-bottom: 1rem;
}

.site-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-footer a {
	color: rgba(245, 240, 232, 0.8);
	font-size: 0.9rem;
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--color-cream);
}

.site-footer__bottom {
	border-top: 1px solid rgba(245, 240, 232, 0.1);
	margin-top: 3rem;
	padding: 1.25rem 0;
	font-size: 0.8rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
}

.site-footer__credit {
	opacity: 0.4;
	font-size: 0.75rem;
}

/* WooCommerce — product grid */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.woocommerce ul.products li.product {
	background: rgba(107, 107, 0, 0.09);
	border: 1px solid rgba(107, 107, 0, 0.16);
	border-radius: 2px;
	padding: 1.75rem;
	text-align: center;
	margin: 0 !important;
	width: 100% !important;
	float: none !important;
}

.woocommerce ul.products li.product::before {
	content: '';
	display: block;
	height: 3px;
	background: linear-gradient(90deg, rgba(107, 107, 0, 0.55) 0%, rgba(107, 107, 0, 0.1) 100%);
	margin: -1.75rem -1.75rem 1.25rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-heading);
	font-size: 1.75rem;
	color: var(--color-primary-dark);
}

.woocommerce ul.products li.product .price {
	font-family: var(--font-heading);
	color: var(--color-primary-dark);
	font-size: 1.5rem;
}

.woocommerce ul.products li.product img {
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(107, 107, 0, 0.14);
	border-radius: 2px;
	padding: 1rem;
}

/* Buttons (WooCommerce only — Loom blocks use source .btn-faosa styles) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .btn-faosa-primary,
.button.alt,
.woocommerce .button.checkout-button {
	background: var(--ss-color-primary) !important;
	color: var(--color-cream) !important;
	border: none !important;
	border-radius: 2px !important;
	font-family: var(--font-body) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	padding: 0.9rem 1.75rem !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:focus,
.woocommerce button.button:focus,
.woocommerce input.button:focus {
	background: var(--color-primary-dark) !important;
	color: var(--color-cream) !important;
	text-decoration: none !important;
}

.btn-faosa-outline,
.woocommerce a.button.alt {
	background: transparent !important;
	color: var(--ss-color-primary) !important;
	border: 2px solid var(--ss-color-primary) !important;
}

/* Single product — skip on FAOSA product pages (layout handled in wc-faosa.css). */
body:not(.page-product) .woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}

.woocommerce div.product .product_title {
	font-family: var(--font-heading);
	color: var(--color-cream);
	font-size: clamp(2rem, 4vw, 2.75rem);
}

.woocommerce div.product p.price {
	font-family: var(--font-heading);
	color: var(--color-accent);
	font-size: 1.5rem;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: rgba(245, 240, 232, 0.8);
}

.woocommerce div.product div.images {
	background: rgba(0, 0, 0, 0.15);
	border: 1px solid rgba(200, 168, 75, 0.15);
	padding: 1rem;
}

.woocommerce span.onsale {
	background: var(--ss-color-accent);
	color: var(--color-dark);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	border-radius: 2px;
}

.woocommerce .star-rating span::before {
	color: var(--ss-color-accent);
}

/* Cart / checkout */
.cart-layout,
.checkout-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

.cart-table th,
.cart-table td {
	padding: 1rem 0.75rem;
	border-bottom: 1px solid rgba(42, 35, 24, 0.1);
}

.cart-table th {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ss-color-primary);
}

.order-summary,
.cart-collaterals .cart_totals,
.woocommerce-checkout-review-order {
	background: rgba(107, 107, 0, 0.09);
	border: 1px solid rgba(107, 107, 0, 0.16);
	border-radius: 2px;
	padding: 1.75rem;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select {
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(107, 107, 0, 0.14);
	border-radius: 2px;
	padding: 0.75rem 0.85rem;
}

.woocommerce-checkout .form-row label,
.woocommerce form .form-row label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
}

/* Account */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	color: var(--ss-color-primary);
	text-decoration: none;
	font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--color-light);
	padding: 2rem;
	border: 1px solid rgba(107, 107, 0, 0.14);
}

.woocommerce-order-received .woocommerce-order {
	text-align: center;
}

.woocommerce-order-received .woocommerce-order-overview {
	list-style: none;
	padding: 0;
	max-width: 480px;
	margin: 0 auto 2rem;
	text-align: left;
}

@media (min-width: 768px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
	}

	body:not(.page-product) .woocommerce div.product {
		grid-template-columns: 1fr 1fr;
	}

	.cart-layout,
	.checkout-layout {
		grid-template-columns: 1.4fr 0.6fr;
	}
}
