/* Only the WooCommerce shop used as the front page receives this stylesheet. */
.tsa-home-page {
	--tsa-home-width: 1200px;
	--tsa-home-gutter: clamp(1.25rem, 3vw, 2rem);
	--tsa-home-space: clamp(3rem, 5vw, 4.5rem);
	--tsa-home-ink: #202b27;
	--tsa-home-muted: #52615b;
	--tsa-home-accent: #174f46;
	--tsa-home-border: #dce5df;
	--tsa-home-surface: #f4f7f4;
}

.tsa-home-page .site-content > .col-full {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.tsa-home-page .site-header { margin-bottom: 0; }
.tsa-home-page #primary { width: 100%; float: none; margin: 0; }
.tsa-home-page .site-main { margin: 0; color: var(--tsa-home-ink); overflow-wrap: anywhere; }
.tsa-home-page .site-main *,
.tsa-home-page .site-main *::before,
.tsa-home-page .site-main *::after { box-sizing: border-box; }

.tsa-home-page .tsa-home__container,
.tsa-home-page .site-main > ul.products,
.tsa-home-page .site-main > .storefront-sorting,
.tsa-home-page .site-main > .woocommerce-info,
.tsa-home-page .site-main > .woocommerce-notices-wrapper,
.tsa-home-page .woocommerce-products-header {
	width: calc(100% - var(--tsa-home-gutter) - var(--tsa-home-gutter));
	max-width: var(--tsa-home-width);
	margin-inline: auto;
}

.tsa-home-page .woocommerce-products-header:empty,
.tsa-home-page .storefront-sorting:has(> .woocommerce-notices-wrapper:empty):not(:has(> :not(.woocommerce-notices-wrapper))) { display: none; }
.tsa-home-page .storefront-sorting { margin-bottom: 1.5rem; }

.tsa-home-page .site-main :is(h1, h2, h3) {
	color: var(--tsa-home-ink);
	font-family: inherit;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.025em;
	text-wrap: balance;
}
.tsa-home-page .site-main h1 { margin: 1rem 0 1.5rem; font-size: clamp(2.25rem, 4.2vw, 3.75rem); }
.tsa-home-page .site-main h2 { margin: 0 0 1rem; font-size: clamp(1.75rem, 2.7vw, 2.5rem); }
.tsa-home-page .site-main h3 { margin: 0 0 .75rem; font-size: 1.375rem; }
.tsa-home-page .site-main p { color: var(--tsa-home-muted); line-height: 1.7; }
.tsa-home-page .site-main .tsa-home__eyebrow {
	margin: 0 0 .75rem;
	color: var(--tsa-home-accent);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .065em;
}

.tsa-home-page .tsa-home__hero {
	padding-block: var(--tsa-home-space);
	background: linear-gradient(135deg, #edf4ef, #f7f9f6);
	border-bottom: 1px solid var(--tsa-home-border);
}
.tsa-home-page .tsa-home__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, .85fr);
	align-items: center;
	gap: clamp(1.5rem, 3vw, 3rem);
}
.tsa-home-page .tsa-home__hero-grid > * { min-width: 0; }
.tsa-home-page .tsa-home__hero-copy h1 span { color: var(--tsa-home-accent); }
.tsa-home-page .tsa-home__lead { max-width: 49ch; font-size: clamp(1rem, 1.3vw, 1.125rem); }
.tsa-home-page .tsa-home__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.tsa-home-page .tsa-home__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	min-height: 50px;
	padding: .85rem 1.35rem;
	border: 1px solid var(--tsa-home-accent);
	border-radius: .875rem;
	background: var(--tsa-home-accent);
	color: #fff;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	transition: background-color .18s ease, color .18s ease;
}
.tsa-home-page .tsa-home__button:is(:hover, :focus-visible) { background: #103c35; color: #fff; }
.tsa-home-page .tsa-home__button--secondary { background: #fff; color: var(--tsa-home-accent); }
.tsa-home-page .tsa-home__button--secondary:is(:hover, :focus-visible) { background: #e1eee6; color: #103c35; }
.tsa-home-page .site-main :is(a, button, input, select):focus-visible { outline: 3px solid #1976b9; outline-offset: 4px; }
.tsa-home-page :is(#collections, #occasions) { scroll-margin-top: 3rem; }
.tsa-home-page .tsa-home__details {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.25rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	color: var(--tsa-home-muted);
	font-size: .8125rem;
}
.tsa-home-page .tsa-home__details li::before { content: '✓'; margin-right: .4rem; color: var(--tsa-home-accent); }
.tsa-home-page .tsa-home__featured {
	display: block;
	width: 100%;
	max-width: 480px;
	margin-inline: auto;
	border: 1px solid var(--tsa-home-border);
	border-radius: 1.5rem;
	background: #fff;
	color: var(--tsa-home-ink);
	text-decoration: none;
	box-shadow: 0 16px 48px rgb(32 43 39 / 8%);
}
.tsa-home-page .tsa-home__featured-media { padding: 1rem; }
.tsa-home-page .tsa-home__featured-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	border-radius: .875rem;
}
.tsa-home-page .tsa-home__featured-caption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .25rem 1.5rem 1.5rem; }
.tsa-home-page .tsa-home__featured-caption > div { min-width: 0; }
.tsa-home-page .tsa-home__featured-caption h2 { margin: .5rem 0 0; font-size: 1.125rem; line-height: 1.4; }
.tsa-home-page .tsa-home__featured-arrow { flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #e1eee6; color: var(--tsa-home-accent); font-size: 1.5rem; }
.tsa-home-page .tsa-home__featured:is(:hover, :focus-visible) { border-color: #9bb7a9; }
.tsa-home-page .tsa-home__idea { padding: 2.5rem; border: 1px solid var(--tsa-home-border); border-radius: 1.5rem; background: #e1eee6; text-align: center; }
.tsa-home-page .tsa-home__idea svg { width: 180px; max-width: 100%; color: var(--tsa-home-accent); }
.tsa-home-page .tsa-home__idea p { margin: 1.5rem 0 0; font-size: 1.25rem; }

.tsa-home-page .tsa-home__collection-heading { padding-top: var(--tsa-home-space); text-align: center; }
.tsa-home-page .tsa-home__collection-heading > p:last-child,
.tsa-home-page .tsa-home__section-heading > p:last-child,
.tsa-home-page .tsa-home__custom .tsa-home__container > p:last-of-type { max-width: 64ch; margin-inline: auto; }

/* Keep WooCommerce markup and the category-image plugin's layered images intact. */
.tsa-home-page .site-main > ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	padding: 0;
	margin-block: 2rem var(--tsa-home-space);
	list-style: none;
}
.tsa-home-page .site-main > ul.products::before,
.tsa-home-page .site-main > ul.products::after { display: none; }
.tsa-home-page .site-main ul.products li.product {
	float: none;
	clear: none;
	width: auto;
	min-width: 0;
	height: auto;
	margin: 0;
	padding: 1rem;
	border: 1px solid var(--tsa-home-border);
	border-radius: 1.25rem;
	background: #fff;
	text-align: left;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.tsa-home-page .site-main ul.products li.product:is(:hover, :focus-within) { border-color: #9bb7a9; box-shadow: 0 8px 24px rgb(32 43 39 / 8%); }
.tsa-home-page .site-main ul.products li.product a { color: var(--tsa-home-ink); text-decoration: none; }
.tsa-home-page .site-main ul.products li.product .category-image-4x3 { position: relative; width: 100%; padding: 0; aspect-ratio: 4 / 3; margin: 0 0 1rem; border-radius: .75rem; overflow: hidden; }
.tsa-home-page .site-main ul.products li.product img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; margin: 0 0 1rem; border-radius: .75rem; }
.tsa-home-page .site-main ul.products li.product .category-image-4x3 img { height: 100%; margin: 0; object-fit: contain; }
.tsa-home-page .site-main ul.products li.product .woocommerce-loop-category__title { margin: 0; font-size: 1.0625rem; line-height: 1.5; }
.tsa-home-page .site-main ul.products li.product .woocommerce-loop-category__title mark { display: inline-block; margin-left: .35rem; padding: .1rem .4rem; border-radius: .4rem; background: var(--tsa-home-surface); color: var(--tsa-home-muted); font-size: .8125rem; font-weight: 400; }
.tsa-home-page .site-main ul.products li.product .woocommerce-loop-product__title { font-size: 1.125rem; line-height: 1.4; }
.tsa-home-page .site-main ul.products li.product:not(.product-category) { display: flex; flex-direction: column; }
.tsa-home-page .site-main ul.products li.product .woocommerce-loop-product__link { flex: 1; }
.tsa-home-page .site-main ul.products li.product .price { position: static; padding: 0; background: transparent; color: var(--tsa-home-ink); font-weight: 600; }
.tsa-home-page .site-main ul.products li.product .button,
.tsa-home-page .site-main ul.products li.product .added_to_cart { min-height: 48px; padding: .8rem 1rem; margin-top: .75rem; border-color: var(--tsa-home-accent) !important; border-radius: .75rem; background: var(--tsa-home-accent); color: #fff; text-align: center; white-space: normal; }
.tsa-home-page .site-main ul.products li.product :is(.button, .added_to_cart):is(:hover, :focus-visible) { background: #103c35; color: #fff; }

.tsa-home-page .tsa-home__occasions { padding-block: var(--tsa-home-space); border-top: 1px solid var(--tsa-home-border); }
.tsa-home-page .tsa-home__occasion-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.tsa-home-page .tsa-home__occasion-grid > li { min-width: 0; margin: 0; }
.tsa-home-page .tsa-home__occasion { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: center; gap: .4rem .5rem; height: 100%; min-height: 64px; padding: .875rem 1rem; border: 1px solid var(--tsa-home-border); border-radius: .75rem; background: #fff; color: var(--tsa-home-ink); text-decoration: none; transition: border-color .18s ease, background-color .18s ease; }
.tsa-home-page .tsa-home__occasion:is(:hover, :focus-visible) { border-color: #9bb7a9; background: var(--tsa-home-surface); }
.tsa-home-page .tsa-home__occasion h3 { margin: 0; font-size: 1rem; line-height: 1.35; letter-spacing: normal; text-wrap: wrap; }
.tsa-home-page .tsa-home__occasion-arrow { color: var(--tsa-home-accent); line-height: 1.35; }
.tsa-home-page .tsa-home__occasion p { grid-column: 1 / -1; margin: 0; font-size: .8125rem; line-height: 1.45; white-space: pre-line; }
.tsa-home-page .tsa-home__occasions-empty { max-width: 64ch; margin: 2rem auto 0; text-align: center; }
.tsa-home-page .tsa-home__possibilities { padding-block: var(--tsa-home-space); background: var(--tsa-home-surface); border-block: 1px solid var(--tsa-home-border); }
.tsa-home-page .tsa-home__section-heading { text-align: center; }
.tsa-home-page .tsa-home__paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.tsa-home-page .tsa-home__path { display: flex; flex-direction: column; min-width: 0; padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--tsa-home-border); border-radius: 1.25rem; background: #fff; color: var(--tsa-home-ink); text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease; }
.tsa-home-page .tsa-home__path:is(:hover, :focus-visible) { border-color: #9bb7a9; box-shadow: 0 8px 24px rgb(32 43 39 / 8%); }
.tsa-home-page .tsa-home__path-number { margin-bottom: 1.5rem; color: var(--tsa-home-accent); font-size: .875rem; font-weight: 700; }
.tsa-home-page .tsa-home__path-more { display: flex; justify-content: space-between; gap: .75rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--tsa-home-border); color: var(--tsa-home-accent); font-weight: 600; }
.tsa-home-page .tsa-home__custom { padding-block: var(--tsa-home-space); text-align: center; }
.tsa-home-page .tsa-home__custom h2 { max-width: 28ch; margin-inline: auto; }
.tsa-home-page .tsa-home__custom .tsa-home__actions { justify-content: center; }

@media (max-width: 1199px) {
	.tsa-home-page .site-main > ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tsa-home-page .tsa-home__occasion-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
	.tsa-home-page .tsa-home__hero .tsa-home__actions { flex-wrap: nowrap; gap: .5rem; }
	.tsa-home-page .tsa-home__hero .tsa-home__button { flex-shrink: 0; padding-inline: .8rem; gap: .5rem; font-size: .875rem; white-space: nowrap; }
}
@media (min-width: 768px) and (max-width: 1023px) {
	.tsa-home-page .tsa-home__hero-grid { grid-template-columns: minmax(0, 1fr); }
	.tsa-home-page .tsa-home__hero-copy { max-width: 48rem; margin-inline: auto; text-align: center; }
	.tsa-home-page .tsa-home__lead { margin-inline: auto; }
	.tsa-home-page .tsa-home__hero .tsa-home__actions,
	.tsa-home-page .tsa-home__details { justify-content: center; }
}
@media (max-width: 767px) {
	.tsa-home-page .tsa-home__hero-grid,
	.tsa-home-page .tsa-home__paths { grid-template-columns: minmax(0, 1fr); }
	.tsa-home-page .tsa-home__occasion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
	.tsa-home-page .tsa-home__occasion { grid-template-columns: minmax(0, 1fr); padding: .625rem .75rem; }
	.tsa-home-page .tsa-home__occasion :is(p, .tsa-home__occasion-arrow) { display: none; }
	.tsa-home-page .tsa-home__hero-copy { text-align: center; }
	.tsa-home-page .tsa-home__lead { margin-inline: auto; }
	.tsa-home-page .tsa-home__details { justify-content: center; }
	.tsa-home-page .tsa-home__actions > a { width: 100%; }
	.tsa-home-page .site-main > ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}
@media (max-width: 479px) {
	.tsa-home-page .site-main > ul.products { grid-template-columns: minmax(0, 1fr); }
	.tsa-home-page .tsa-home__occasion h3 { font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) {
	.tsa-home-page .tsa-home__button,
	.tsa-home-page .tsa-home__occasion,
	.tsa-home-page .tsa-home__path,
	.tsa-home-page .site-main ul.products li.product { transition: none; }
}
