@media (max-width: 1023.98px) {
	.tasta-desktop-nav-links,
	.tasta-desktop-nav-actions {
		display: none !important;
	}

	[data-testid='mobile-menu-container'] {
		position: fixed !important;
		inset: 0 !important;
		z-index: 50 !important;
		width: 100vw !important;
		height: 100vh !important;
		overflow: hidden !important;
	}

	[data-testid='mobile-menu-container'] > div {
		width: 100% !important;
		height: 100% !important;
	}

	[data-testid='mobile-menu-container'] > div > div {
		position: fixed !important;
		inset: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
	}

	[data-testid='mobile-menu-panel'] {
		transition: opacity 200ms ease-out;
	}

	[data-testid='mobile-search-section'] {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		z-index: 50;
		transform: translateY(0);
		transition:
			opacity 200ms ease-out,
			transform 200ms ease-out;
	}

	[data-testid='mobile-search-section'][aria-hidden='true'] {
		pointer-events: none;
		opacity: 0;
		transform: translateY(-0.5rem);
	}

	[data-testid='mobile-search-section'][aria-hidden='false'] {
		pointer-events: auto;
		opacity: 1;
		transform: translateY(0);
	}

	[data-testid='mobile-hamburger-button'] {
		position: relative;
		z-index: 60;
	}
}

@media (min-width: 1024px) {
	.tasta-mobile-nav-actions,
	[data-testid='mobile-search-section'] {
		display: none !important;
	}
}

/* Prevent the WP admin bar from overlapping the fixed header/banner */
body.admin-bar .fixed[role='banner'],
body.admin-bar div[role='banner'].fixed {
	top: 32px !important;
}

/* On small screens WP admin bar is taller */
@media screen and (max-width: 782px) {
	body.admin-bar .fixed[role='banner'],
	body.admin-bar div[role='banner'].fixed {
		top: 46px !important;
	}
}

.tasta-cf7-form p {
	margin: 0;
}

.tasta-cf7-form br {
	display: none;
}

.tasta-cf7-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	height: 100%;
}

.tasta-cf7-form textarea {
	height: 100% !important;
	min-height: unset !important;
	resize: none !important;
}

.tasta-cf7-form .wpcf7-form-control-wrap[data-name='marketingCommunications'] {
	position: absolute;
	left: 0;
	top: 0.125rem;
	display: block;
	width: 0.875rem;
	height: 0.875rem;
}

.tasta-cf7-form .wpcf7-list-item {
	display: block;
	margin: 0;
}

.tasta-cf7-form .wpcf7-list-item label {
	display: block;
}

.tasta-cf7-form label:has(input[name='marketingCommunications']:checked) > span.absolute {
	border-color: var(--color-cta-default);
	background: var(--color-cta-default);
}

.tasta-cf7-form label:has(input[name='marketingCommunications']:checked) > span.absolute::after {
	position: relative;
	left: 4px;
	top: 0.5px;
	display: block;
	width: 4.5px;
	height: 9px;
	border-right: 1.5px solid var(--color-cta-text-primary);
	border-bottom: 1.5px solid var(--color-cta-text-primary);
	content: '';
	transform: rotate(45deg);
}

.tasta-cf7-form label:has(input[name='marketingCommunications']:focus) > span.absolute {
	border-color: var(--color-cta-default);
}

.tasta-cf7-form label:has(input[name='marketingCommunications']:disabled) > span.absolute {
	opacity: 0.5;
}

/* Position the form relatively to act as the boundary for the overlay spinner */
.tasta-cf7-form .wpcf7-form {
	position: relative;
}

/* Turn the CF7 spinner into a full-form glassmorphic overlay */
.tasta-cf7-form .wpcf7-spinner {
	box-sizing: border-box !important;
	visibility: hidden;
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 0 !important;
	position: absolute !important;
	inset: -0.5rem !important; /* slightly extend to perfectly cover input card padding */
	background: rgba(91, 18, 38, 0.5) !important; /* deep brand red-brown tint for a warm overlay */
	backdrop-filter: blur(4px);
	z-index: 50 !important;
	border: none !important;
	border-radius: 1rem !important;
	pointer-events: auto !important; /* blocks clicks on underlying form fields */
	opacity: 0;
	transition: opacity 200ms ease;
}

/* Show the overlay spinner when form is submitting */
.tasta-cf7-form .wpcf7-form.submitting .wpcf7-spinner {
	visibility: visible !important;
	opacity: 1;
}

/* Beautiful custom CSS spinner centered in the overlay */
.tasta-cf7-form .wpcf7-spinner::after {
	box-sizing: border-box !important;
	content: '' !important;
	display: block !important;
	width: 48px !important;
	height: 48px !important;
	border: 4px solid rgba(255, 255, 255, 0.25) !important;
	border-top-color: #fff !important;
	border-radius: 50% !important;
	animation: tasta-spin 0.6s linear infinite !important;
}

@keyframes tasta-spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

/* Disable interaction with the form elements when submitting */
.tasta-cf7-form .wpcf7-form.submitting {
	pointer-events: none !important;
}

.tasta-cf7-submit {
	min-width: 148px;
	min-height: 52px;
	width: 15.375rem;
	margin-top: 0.5rem;
	border: 0;
	border-radius: 9999px;
	padding: 0.875rem 1.5rem;
	background: var(--color-cta-default);
	color: var(--color-cta-text-primary);
	font-family: var(--font-body-bold), sans-serif;
	cursor: pointer;
	transition:
		background-color 150ms ease,
		color 150ms ease;
}

.tasta-cf7-submit:hover {
	background: var(--color-cta-hover);
}

.tasta-cf7-submit:active {
	background: var(--color-cta-press);
}

.tasta-cf7-submit:focus-visible {
	outline: 2px solid var(--color-decorative-primary);
	outline-offset: 2px;
}

@media (min-width: 768px) {
	.tasta-cf7-submit {
		min-width: 172px;
		min-height: 60px;
		padding: 1rem 1.75rem;
	}
}

@media (min-width: 1280px) {
	.tasta-cf7-submit {
		min-width: 164px;
		min-height: 64px;
	}
}

.tasta-detail-hero-bg {
	height: 608px !important;
}

@media (min-width: 768px) {
	.tasta-detail-hero-bg {
		height: 512px !important;
	}
}

@media (min-width: 1024px) {
	.tasta-detail-hero-bg {
		height: 576px !important;
	}
}

@media (min-width: 1280px) {
	.tasta-detail-hero-bg {
		height: 720px !important;
	}
}

/* Custom Response Output Notifications for CF7 */
.tasta-cf7-form .wpcf7-response-output {
	box-sizing: border-box !important;
	margin: 1.5rem 0 0 !important;
	padding: 1rem 1.5rem !important;
	border-radius: 0.75rem !important;
	font-family: var(--font-body-bold), sans-serif !important;
	font-size: 0.9375rem !important;
	line-height: 1.5 !important;
	text-align: center !important;
	transition: all 0.3s ease-in-out !important;
}

/* 1. Success State */
.tasta-cf7-form .wpcf7-response-output.wpcf7-mail-sent-ok {
	background-color: #14532d !important; /* Premium deep forest green */
	color: #fff !important;
	border: 2px solid #22c55e !important;
}

/* 2. Validation Errors / Warnings State */
.tasta-cf7-form .wpcf7-response-output.wpcf7-validation-errors,
.tasta-cf7-form .wpcf7-response-output.wpcf7-acceptance-missing {
	background-color: #5b1226 !important; /* Cohesive deep brand red-brown matching the button */
	color: #fff !important;
	border: 2px solid #ee5e2c !important; /* Vibrant brand orange border */
}

/* 3. General Failure / Spam State */
.tasta-cf7-form .wpcf7-response-output.wpcf7-mail-sent-ng,
.tasta-cf7-form .wpcf7-response-output.wpcf7-spam-blocked {
	background-color: #7f1d1d !important; /* Solid deep crimson */
	color: #fff !important;
	border: 2px solid #ef4444 !important;
}

/* Headline overrides */
.headline-3 {
	font-size: 4rem;
	line-height: 1.1;
}

.headline-4 {
	font-size: 3rem;
	line-height: 1.1;
}

.headline-5 {
	font-size: 2rem;
	line-height: 1.25;
}

.headline-6 {
	font-size: 1.5rem;
	line-height: 1.25;
}

@media (max-width: 767.98px) {
	.headline-3 {
		font-size: 3.5rem;
	}

	.headline-4 {
		font-size: 2.5rem;
	}

	.headline-5 {
		font-size: 1.5rem;
	}

	.headline-6 {
		font-size: 1rem;
	}
}

/* Rich text / WYSIWYG content (e.g. career job description) */
.tasta-rich-text {
	color: var(--color-text-primary);
	font-family: var(--font-body-regular), sans-serif;
	font-size: 1rem;
	line-height: 1.6;
}

.tasta-rich-text p {
	margin-bottom: 0.625em;
	color: var(--color-text-primary);
	font-family: var(--font-body-regular), sans-serif;
	font-size: inherit;
	line-height: 1.6;
}

.tasta-rich-text h2 {
	margin-top: 1.5em;
	margin-bottom: 0.6em;
	color: var(--color-headline-primary);
	font-family: var(--font-title), sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.25;
}

.tasta-rich-text h3 {
	margin-top: 1.25em;
	margin-bottom: 0.5em;
	color: var(--color-headline-primary);
	font-family: var(--font-title), sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
}

.tasta-rich-text h4 {
	margin-top: 1em;
	margin-bottom: 0.5em;
	color: var(--color-headline-primary);
	font-family: var(--font-title), sans-serif;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.25;
}

.tasta-rich-text ul {
	list-style: disc;
	margin-bottom: 0.625em;
	padding-left: 1.5em;
}

.tasta-rich-text ol {
	list-style: decimal;
	margin-bottom: 0.625em;
	padding-left: 1.5em;
}

.tasta-rich-text li {
	margin-bottom: 0.25em;
	color: var(--color-text-primary);
}

.tasta-rich-text a {
	color: var(--color-text-primary);
	font-family: var(--font-body-semibold), sans-serif;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.tasta-rich-text a:hover {
	color: var(--color-text-tertiary);
}

.tasta-rich-text strong {
	font-family: var(--font-body-bold), sans-serif;
	font-weight: 700;
}

.tasta-rich-text em {
	font-style: italic;
}

.tasta-rich-text blockquote {
	margin: 0.875em 0;
	border-left: 3px solid var(--color-stroke-secondary);
	padding-left: 1.25em;
	color: var(--color-text-secondary);
	font-family: var(--font-body-regular), sans-serif;
	font-style: italic;
}

.tasta-rich-text hr {
	margin: 1.25em 0;
	border: 0;
	border-top: 1px solid var(--color-stroke-primary);
}

@media (min-width: 768px) {
	.tasta-rich-text,
	.tasta-rich-text p,
	.tasta-rich-text li {
		font-size: 1.125rem;
	}

	.tasta-rich-text h2 {
		font-size: 1.75rem;
	}

	.tasta-rich-text h3 {
		font-size: 1.375rem;
	}

	.tasta-rich-text h4 {
		font-size: 1.25rem;
	}
}

@media (min-width: 1280px) {
	.tasta-rich-text,
	.tasta-rich-text p,
	.tasta-rich-text li {
		font-size: 1.25rem;
	}
}

/* Custom Utility Classes for Dynamic Aspect Ratios */
.aspect-\[16\/10\] {
	aspect-ratio: 16/10;
}

.aspect-\[16\/9\] {
	aspect-ratio: 16/9;
}

.grid-cols-1 {
	grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tasta-recipe-detail-grid {
	grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 768px) {
	.md\:grid-cols-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.md\:grid-cols-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.lg\:grid-cols-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.tasta-recipe-detail-grid {
		column-gap: 6%;
		grid-template-columns: minmax(0, 34%) minmax(0, 60%);
	}
}

@media (min-width: 1280px) {
	.xl\:grid-cols-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1536px) {
	.2xl\:grid-cols-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.max-w-3xl {
	max-width: 48rem;
}

.max-w-4xl {
	max-width: 56rem;
}

.tasta-rich-text img {
	max-width: 100%;
	height: auto;
	border-radius: 1rem;
	margin: 1.5rem auto;
	display: block;
}

.tasta-rich-text figure {
	margin: 1.5rem 0;
}

.tasta-rich-text figure.aligncenter,
.tasta-rich-text img.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.tasta-rich-text figure.alignleft,
.tasta-rich-text img.alignleft {
	float: left;
	margin-right: 1.5rem;
	margin-bottom: 1rem;
}

.tasta-rich-text figure.alignright,
.tasta-rich-text img.alignright {
	float: right;
	margin-left: 1.5rem;
	margin-bottom: 1rem;
}

.tasta-rich-text iframe,
.tasta-rich-text video {
	max-width: 100%;
	border-radius: 1rem;
	margin: 1.5rem auto;
	display: block;
}

/* Missing Tailwind Spacing & Layout Utilities */
.-mt-12 {
	margin-top: -3rem !important;
}

.mb-12 {
	margin-bottom: 3rem !important;
}

.min-h-screen {
	min-height: 100vh !important;
}

/* Missing Tailwind Shadow Utilities */
.shadow-sm {
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
}

.shadow-md {
	box-shadow:
		0 4px 6px -1px rgba(0, 0, 0, 0.08),
		0 2px 4px -2px rgba(0, 0, 0, 0.04) !important;
}

/* Archive & Single Detail Header Red Background Heights */
.h-\[500px\] {
	height: 500px !important;
}

.h-\[608px\] {
	height: 608px !important;
}

@media (min-width: 768px) {
	.md\:h-\[450px\] {
		height: 450px !important;
	}

	.md\:h-\[512px\] {
		height: 512px !important;
	}
}

@media (min-width: 1024px) {
	.lg\:h-\[480px\] {
		height: 480px !important;
	}

	.lg\:h-\[576px\] {
		height: 576px !important;
	}
}

@media (min-width: 1280px) {
	.xl\:h-\[550px\] {
		height: 550px !important;
	}

	.xl\:h-\[720px\] {
		height: 720px !important;
	}
}

/* Card Legibility Overrides */
.theme-new-deep-red h3,
.theme-new-deep-red .text-skin-headline-primary {
	color: #fef1dd !important;
}

.theme-new-white figcaption h3 {
	color: #fff !important;
}

.theme-new-white figcaption p {
	color: #e5e5e5 !important;
}

.theme-new-white figcaption span {
	color: #ccc !important;
}

.theme-new-deep-red p.text-skin-secondary,
.theme-new-deep-red .text-skin-secondary {
	color: #fcedef !important;
}

.theme-new-deep-red p.text-skin-tertiary,
.theme-new-deep-red .text-skin-tertiary {
	color: #f7cfd4 !important;
}

.theme-new-deep-red .text-skin-tertiary span {
	color: #f7cfd4 !important;
}

.theme-new-deep-red h3:hover,
.theme-new-deep-red a:hover h3 {
	color: #fff9f1 !important;
}

.theme-new-white figcaption p.uppercase {
	color: #fef1dd !important;
}

.theme-new-white figcaption p.flex,
.theme-new-white figcaption p.flex span {
	color: #ccc !important;
}

/* Career Card: Primary Background Override */
.theme-new-deep-red {
	--color-bg-primary: #5b1226 !important;
}

/* Post Card: Legibility Dark Gradient Overlay */
.post-card-gradient-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.9) 0%,
		rgba(0, 0, 0, 0.45) 50%,
		rgba(0, 0, 0, 0.1) 100%
	) !important;
	z-index: 5;
	transition: background 0.3s ease-in-out;
	pointer-events: none;
}

.group:hover .post-card-gradient-overlay {
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.95) 0%,
		rgba(0, 0, 0, 0.55) 50%,
		rgba(0, 0, 0, 0.15) 100%
	) !important;
}

#tasta-mobile-menu .cta-nav-link {
	font-size: 1.5rem;
}

/* Products */
.card-products:hover .image-container {
	transform: rotate(-12deg);
	transition: transform 300ms ease;
}

/* Product size selector — active (selected) state */
[data-tasta-product-size][aria-pressed='true'] {
	border-width: 2px;
	border-color: var(--color-stroke-secondary, currentcolor);
	font-weight: 700;
}
