/* Global reset, controls, buttons and shared layout utilities. */

@font-face {
	font-family: "Spectral";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/Spectral-Regular.ttf") format("truetype");
}

@font-face {
	font-family: "Spectral";
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/Spectral-Italic.ttf") format("truetype");
}

@font-face {
	font-family: "Spectral";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../fonts/Spectral-Medium.ttf") format("truetype");
}

@font-face {
	font-family: "Spectral";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/Spectral-SemiBold.ttf") format("truetype");
}

@font-face {
	font-family: "Spectral";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/Spectral-Bold.ttf") format("truetype");
}

@font-face {
	font-family: "Roxborough CF";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/Roxborough-CF-Regular.ttf") format("truetype");
}

:root {
	--ugolini-header-height: 76px;
	--ugolini-announcement-height: 32px;
	--ugolini-control-height: 48px;
	--ugolini-container: 1392px;
	--ugolini-gutter: 24px;
	--ugolini-tan: #cda47f;
	--ugolini-transition: 250ms ease;
	--ugolini-transition-slow: 500ms cubic-bezier(0.22, 1, 0.36, 1);
	--ugolini-shadow-overlay: 0 18px 50px rgb(23 23 20 / 12%);
}

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

html {
	scroll-behavior: smooth;
}
.ugolini-scroll-top { position: fixed; z-index: 90; right: max(1rem, var(--ugolini-gutter)); bottom: max(1rem, var(--ugolini-gutter)); width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; background: rgb(247 243 238 / 94%); color: var(--wp--preset--color--text); box-shadow: 0 8px 30px rgb(0 0 0 / 14%); cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity 180ms ease, transform 180ms ease; }
.ugolini-scroll-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.ugolini-scroll-top svg { width: 21px; height: 21px; }

body {
	overflow-x: clip;
}

/* WordPress adds root padding and block-gap margins that the static source
 * does not have. Custom full-width sections own their spacing explicitly. */
.wp-site-blocks > *,
.wp-site-blocks main > *,
.wp-site-blocks .wp-block-post-content > * { margin-block-start: 0 !important; }
.wp-block-group.alignfull[class*="ugolini-"] { padding-inline: 0; }
:where(
	.ugolini-header-inner,
	.ugolini-trust-grid,
	.ugolini-discovery-grid,
	.ugolini-audience-grid,
	.ugolini-collection-grid,
	.ugolini-quality-grid,
	.ugolini-value-grid,
	.ugolini-story-products,
	.ugolini-cooking-grid,
	.ugolini-related-grid
) > * { margin-block: 0; }

/* WordPress flow layouts add a block gap to sibling cards. Grids own their
 * gap, so that extra margin would offset every card after the first. */
.ugolini-trust-grid > *,
.ugolini-discovery-grid > *,
.ugolini-audience-grid > *,
.ugolini-value-grid > *,
.ugolini-wholesale-more__grid > * { margin-block-start: 0 !important; }

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

a {
	text-underline-offset: 0.2em;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--brand);
	outline-offset: 3px;
}

:where(button, input, select, textarea, .wp-element-button) {
	font: inherit;
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	min-height: var(--ugolini-control-height);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 2px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--text);
	padding: 0.75rem 1rem;
}

textarea {
	min-height: 8rem;
}

.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ugolini-control-height);
	padding-inline: 1.75rem;
	border: 1px solid var(--wp--preset--color--text);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--interface);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color var(--ugolini-transition), color var(--ugolini-transition), border-color var(--ugolini-transition);
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	border-color: var(--wp--preset--color--brand-dark);
	background: var(--wp--preset--color--brand-dark);
	color: var(--wp--preset--color--white);
}

.is-style-outline > .wp-block-button__link,
.is-style-outline-dark > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--text);
}

.is-style-outline > .wp-block-button__link:hover,
.is-style-outline-dark > .wp-block-button__link:hover {
	background: var(--wp--preset--color--text);
	color: var(--wp--preset--color--white);
}

.is-style-outline-light > .wp-block-button__link {
	border-color: var(--wp--preset--color--white);
	background: transparent;
	color: var(--wp--preset--color--white);
}

.is-style-outline-light > .wp-block-button__link:hover,
.is-style-outline-light > .wp-block-button__link:focus-visible {
	border-color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--text);
}

:where(.ugolini-hero, .ugolini-featured-collection, .ugolini-campaign-split, .ugolini-catalogue-panel, .ugolini-dark-feature, .ugolini-page-hero--dark, .ugolini-page-hero--image) .has-white-background-color.wp-block-button__link,
:where(.ugolini-hero, .ugolini-featured-collection, .ugolini-campaign-split, .ugolini-catalogue-panel, .ugolini-dark-feature, .ugolini-page-hero--dark, .ugolini-page-hero--image) .has-white-background-color.wp-element-button {
	border-color: var(--wp--preset--color--white);
	background: transparent !important;
	color: var(--wp--preset--color--white) !important;
}

:where(.ugolini-hero, .ugolini-featured-collection, .ugolini-campaign-split, .ugolini-catalogue-panel, .ugolini-dark-feature, .ugolini-page-hero--dark, .ugolini-page-hero--image) .has-white-background-color.wp-block-button__link:hover,
:where(.ugolini-hero, .ugolini-featured-collection, .ugolini-campaign-split, .ugolini-catalogue-panel, .ugolini-dark-feature, .ugolini-page-hero--dark, .ugolini-page-hero--image) .has-white-background-color.wp-element-button:hover {
	background: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--text) !important;
}

:where(.wp-element-button, .wp-block-button__link)[aria-disabled="true"],
:where(.wp-element-button, .wp-block-button__link):disabled {
	cursor: not-allowed;
	opacity: 0.5;
}

.ugolini-section {
	padding-block: var(--wp--preset--spacing--section);
}

.ugolini-section > .alignwide,
.ugolini-page-hero > .alignwide,
.ugolini-site-header > .alignwide,
.ugolini-site-footer > .alignwide,
.ugolini-product-page > .alignwide,
.ugolini-product-information > .alignwide,
.ugolini-transaction-page > .alignwide,
.ugolini-transaction-page > .wp-block-post-content,
.ugolini-product-list.alignwide {
	width: min(calc(100% - (2 * var(--ugolini-gutter))), var(--ugolini-container));
	max-width: var(--ugolini-container);
	margin-inline: auto;
}

.ugolini-section--compact {
	padding-block: var(--wp--preset--spacing--section-compact);
}

.ugolini-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 2rem;
	margin-bottom: clamp(2rem, 4vw, 4rem);
}

.ugolini-section-heading > :first-child,
.ugolini-section-heading > .wp-block-group {
	max-width: none !important;
}

.ugolini-section-heading > .wp-block-group > * {
	max-width: none !important;
	margin-inline: 0 !important;
	margin-block-start: 0 !important;
}

.ugolini-section-heading h2 {
	margin-bottom: 0;
	font-size: clamp(3rem, 5vw, 5rem);
	line-height: 1.02;
}

.ugolini-eyebrow {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--interface);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ugolini-editorial-link a {
	font-family: var(--wp--preset--font-family--interface);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.ugolini-editorial-link a::before {
	content: "";
	display: inline-block;
	width: 1.8rem;
	margin-right: 0.65rem;
	border-top: 1px solid currentColor;
	vertical-align: middle;
}

.ugolini-editorial-link a::after {
	content: " \2192";
}

.ugolini-editorial-link a:hover {
	text-decoration: none;
}

:where(header, footer, nav, .wp-block-buttons, .ugolini-editorial-link, .ugolini-product-card, .ugolini-related-card) a,
:where(header, footer, nav, .wp-block-buttons, .ugolini-editorial-link, .ugolini-product-card, .ugolini-related-card) a:hover {
	text-decoration: none;
}

.ugolini-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
