/* =========================================================================
   FarmaRimedio v0.2 - Design system "Agrumeto Etneo"
   Verde foglia, rosso tarocco, arancio sanguinello, fondi crema.
   Firma visiva: spicchio d'arancia CSS, aura ring, profilo dell'Etna.
   ========================================================================= */

/* ------------------------------------------------------------------------
   Font self-hosted: Fraunces per i titoli (fallback Georgia/serif).
   ---------------------------------------------------------------------- */
@font-face {
	font-family: 'Fraunces';
	src: url('../fonts/fraunces-500.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Fraunces';
	src: url('../fonts/fraunces-600.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Fraunces';
	src: url('../fonts/fraunces-italic-500.woff2') format('woff2');
	font-weight: 500;
	font-style: italic;
	font-display: swap;
}

/* ------------------------------------------------------------------------
   Variabili (sovrascrivibili dal Customizer)
   ---------------------------------------------------------------------- */
:root {
	--fr-green: #1e5c3f;
	--fr-green-deep: #123c29;
	--fr-green-night: #0d2b1e;
	--fr-green-ink: #16281f;
	--fr-green-sage: #2e7a54;
	--fr-red: #c8342b;
	--fr-red-dark: #a52820;
	--fr-orange: #e05c2a;
	--fr-orange-soft: #ffe9db;
	--fr-cream: #faf6ee;
	--fr-cream-card: #fffdf8;
	--fr-cream-2: #f2ecdf;
	--fr-border: #e5ddcc;
	--fr-text: #22302a;
	--fr-text-soft: #5a6a5e;
	--fr-muted: #8a8574;

	--fr-display: 'Fraunces', Georgia, 'Times New Roman', serif;
	--fr-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

	--fr-radius: 14px;
	--fr-radius-sm: 9px;
	--fr-radius-pill: 999px;
	--fr-container: 1200px;

	--fr-shadow-sm: 0 1px 3px rgba(18, 60, 41, .07);
	--fr-shadow-md: 0 10px 28px rgba(18, 60, 41, .10);
	--fr-shadow-lg: 0 18px 48px rgba(18, 60, 41, .14);
}

/* ------------------------------------------------------------------------
   Base
   ---------------------------------------------------------------------- */
body {
	font-family: var(--fr-body);
	color: var(--fr-text);
	background: var(--fr-cream);
	font-size: 16px;
	line-height: 1.6;
}

h1, h2, h3, h4 {
	font-family: var(--fr-display);
	color: var(--fr-green-ink);
	font-weight: 500;
	line-height: 1.12;
	margin: 0 0 .5em;
	letter-spacing: -.01em;
}

a { text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--fr-red); }

::selection { background: var(--fr-orange-soft); color: var(--fr-red-dark); }

.fr-container {
	max-width: var(--fr-container);
	margin-inline: auto;
	padding-inline: 20px;
	width: 100%;
}

.fr-icon { display: inline-block; vertical-align: -.15em; }

/* Pallino verde "live" e pallino eyebrow */
.fr-dot {
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--fr-green);
	margin-right: 7px;
	vertical-align: 1px;
}
.fr-dot--live {
	background: #2fae61;
	box-shadow: 0 0 0 0 rgba(47, 174, 97, .5);
	animation: fr-ping 2s ease-out infinite;
	margin-right: 0;
}
@keyframes fr-ping {
	0% { box-shadow: 0 0 0 0 rgba(47, 174, 97, .45); }
	70% { box-shadow: 0 0 0 8px rgba(47, 174, 97, 0); }
	100% { box-shadow: 0 0 0 0 rgba(47, 174, 97, 0); }
}

/* Scroll reveal */
.fr-reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.fr-reveal.is-in { opacity: 1; transform: none; }

/* ------------------------------------------------------------------------
   Bottoni
   ---------------------------------------------------------------------- */
.fr-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--fr-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	padding: 12px 22px;
	border-radius: var(--fr-radius-pill);
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform .14s ease, background-color .15s ease, box-shadow .15s ease, color .15s ease;
	text-align: center;
}
.fr-btn .fr-icon { transition: transform .18s ease; }
.fr-btn:hover { transform: translateY(-2px); }
.fr-btn:hover .fr-icon--arrow { transform: translateX(3px); }
.fr-btn:active { transform: translateY(0); }
.fr-btn--lg { padding: 15px 28px; font-size: 15px; }

.fr-btn--primary {
	background: var(--fr-red);
	color: #fff;
	box-shadow: 0 6px 16px rgba(200, 52, 43, .28);
}
.fr-btn--primary:hover { background: var(--fr-red-dark); color: #fff; box-shadow: 0 10px 22px rgba(200, 52, 43, .32); }

.fr-btn--ghost { background: var(--fr-cream-card); color: var(--fr-green); border-color: var(--fr-border); }
.fr-btn--ghost:hover { background: var(--fr-cream-2); color: var(--fr-green-deep); }

.fr-btn--wa { background: var(--fr-orange); color: #fff; box-shadow: 0 6px 16px rgba(224, 92, 42, .30); }
.fr-btn--wa:hover { background: #c94f22; color: #fff; }

.fr-btn--cream { background: var(--fr-cream); color: var(--fr-red-dark); }
.fr-btn--cream:hover { background: #fff; color: var(--fr-red-dark); }

/* ------------------------------------------------------------------------
   Topbar
   ---------------------------------------------------------------------- */
.fr-topbar {
	background: var(--fr-green-deep);
	color: #e8f2ea;
	font-size: 12.5px;
	letter-spacing: .02em;
}
.fr-topbar__inner { display: flex; justify-content: center; padding: 8px 20px; }
.fr-topbar__msg { text-align: center; }

/* ------------------------------------------------------------------------
   Header
   ---------------------------------------------------------------------- */
.fr-header {
	background: var(--fr-cream-card);
	border-bottom: 1px solid var(--fr-border);
}
.fr-header__inner { display: flex; align-items: center; gap: 22px; padding-block: 20px; min-height: calc(var(--fr-logo-h, 76px) + 30px); }
.fr-header__logo { flex: 0 0 auto; }
.fr-header__logo img, .fr-logo img { display: block; max-height: var(--fr-logo-h, 76px); width: auto; }
/* La ricerca cede spazio al logo: resta comoda ma non domina più. */
.fr-header__search { flex: 1 1 auto; min-width: 0; max-width: 520px; margin-inline: auto; }

.fr-search {
	display: flex;
	align-items: center;
	background: var(--fr-cream-2);
	border: 1px solid transparent;
	border-radius: var(--fr-radius-pill);
	padding: 4px 4px 4px 18px;
	transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.fr-search:focus-within {
	background: #fff;
	border-color: var(--fr-green);
	box-shadow: 0 0 0 3px rgba(30, 92, 63, .12);
}
.fr-search__input { flex: 1; min-width: 0; border: 0; background: transparent; font-size: 14.5px; color: var(--fr-text); outline: none; padding: 10px 0; }
.fr-search__input::placeholder { color: var(--fr-muted); }
.fr-search__btn {
	border: 0;
	background: var(--fr-green);
	color: #fff;
	width: 46px;
	height: 46px;
	border-radius: var(--fr-radius-pill);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	transition: background-color .15s ease, transform .12s ease;
}
.fr-search__btn:hover { background: var(--fr-green-deep); transform: scale(1.05); }

.fr-header__actions { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.fr-header__action {
	color: var(--fr-green);
	width: 52px;
	height: 52px;
	border-radius: var(--fr-radius-pill);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	background: transparent;
	border: 0;
	cursor: pointer;
	transition: background-color .15s ease;
}
.fr-header__action:hover { background: var(--fr-cream-2); color: var(--fr-green-deep); }
.fr-header__checkout { color: var(--fr-red); }
.fr-header__checkout:hover { background: rgba(200, 52, 43, .08); color: var(--fr-red); }
.fr-header__cart-count {
	position: absolute;
	top: 6px;
	right: 4px;
	background: var(--fr-red);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	min-width: 17px;
	height: 17px;
	line-height: 17px;
	text-align: center;
	border-radius: var(--fr-radius-pill);
	padding: 0 4px;
	box-shadow: 0 2px 6px rgba(200, 52, 43, .4);
}
.fr-header__burger { display: none; }

/* ------------------------------------------------------------------------
   Navigazione (sticky con ombra allo scroll)
   ---------------------------------------------------------------------- */
.fr-nav {
	background: rgba(255, 253, 248, .92);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--fr-border);
	position: sticky;
	top: 0;
	z-index: 500;
	transition: box-shadow .2s ease;
}
.fr-nav.is-stuck { box-shadow: var(--fr-shadow-md); }
.fr-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 24px;
	list-style: none;
	margin: 0;
	padding: 11px 0;
	font-size: 13.5px;
	font-weight: 500;
}
.fr-nav__list a { color: var(--fr-text); padding: 4px 0; display: inline-block; position: relative; }
.fr-nav__list a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 100%;
	height: 2px;
	background: var(--fr-orange);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s ease;
}
.fr-nav__list a:hover { color: var(--fr-green); }
.fr-nav__list a:hover::after { transform: scaleX(1); }
.fr-nav__list .current-menu-item > a,
.fr-nav__list .current-menu-ancestor > a { color: var(--fr-green); font-weight: 700; }
.fr-nav__list .current-menu-item > a::after,
.fr-nav__list .current-menu-ancestor > a::after { transform: scaleX(1); background: var(--fr-green); }

/* --- Sottomenu a tendina ------------------------------------------------
   Il tema non aveva alcuna regola per .sub-menu: i secondi livelli
   venivano stampati in cascata dentro la barra, uno sotto l'altro e
   sempre visibili. Qui diventano tendine che si aprono al passaggio del
   mouse e al focus da tastiera.
   --------------------------------------------------------------------- */
.fr-nav__list li { position: relative; }

/* Freccetta sulle voci che hanno figli */
.fr-nav__list .menu-item-has-children > a { padding-right: 16px; }
.fr-nav__list .menu-item-has-children > a::before {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	opacity: .55;
	transition: transform .2s ease, opacity .2s ease;
}
.fr-nav__list .menu-item-has-children:hover > a::before,
.fr-nav__list .menu-item-has-children:focus-within > a::before {
	opacity: 1;
	transform: rotate(225deg);
	margin-top: -1px;
}

.fr-nav__list .sub-menu {
	position: absolute;
	left: -14px;
	top: 100%;
	z-index: 70;
	min-width: 230px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: #fff;
	border: 1px solid var(--fr-border);
	border-radius: 14px;
	box-shadow: 0 16px 36px rgba(18, 60, 41, .18);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
/* Ponte invisibile: il puntatore non "cade" nello spazio fra voce e tendina */
.fr-nav__list .sub-menu::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -12px;
	height: 12px;
}
.fr-nav__list li:hover > .sub-menu,
.fr-nav__list li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: opacity .18s ease, transform .18s ease, visibility 0s;
}

.fr-nav__list .sub-menu li { border: 0; }
.fr-nav__list .sub-menu a {
	display: block;
	padding: 9px 14px;
	border-radius: 9px;
	font-size: 14px;
	font-weight: 500;
	color: var(--fr-text);
	transition: background-color .15s ease, color .15s ease;
}
.fr-nav__list .sub-menu a::after { display: none; }
.fr-nav__list .sub-menu a:hover { background: var(--fr-cream); color: var(--fr-green); }
.fr-nav__list .sub-menu .current-menu-item > a { background: var(--fr-cream); color: var(--fr-green); font-weight: 700; }

/* Terzo livello: si apre di lato */
.fr-nav__list .sub-menu .sub-menu { left: calc(100% + 6px); top: -8px; }

/* ------------------------------------------------------------------------
   Hero v2
   ---------------------------------------------------------------------- */
.fr-hero {
	position: relative;
	padding: 56px 0 96px;
	overflow: hidden;
	background:
		radial-gradient(560px 380px at 86% 18%, rgba(224, 92, 42, .12), transparent 65%),
		radial-gradient(480px 360px at 6% 82%, rgba(30, 92, 63, .10), transparent 65%),
		radial-gradient(rgba(30, 92, 63, .05) 1px, transparent 1.5px);
	background-size: auto, auto, 26px 26px;
}
.fr-hero__inner { display: flex; align-items: center; gap: 40px; position: relative; z-index: 2; }
.fr-hero__content { flex: 1.35; }

.fr-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	color: var(--fr-green);
	font-size: 12px;
	font-weight: 600;
	padding: 7px 16px;
	border-radius: var(--fr-radius-pill);
	margin-bottom: 18px;
	box-shadow: var(--fr-shadow-sm);
}

.fr-hero__title { font-size: clamp(32px, 4.6vw, 54px); margin-bottom: 16px; }
.fr-hero__title-a { color: var(--fr-green-ink); display: block; }
.fr-hero__title-b { color: var(--fr-red); display: block; font-style: italic; }

.fr-hero__text { font-size: clamp(15px, 1.4vw, 17px); color: var(--fr-text-soft); max-width: 440px; margin: 0 0 26px; }

.fr-hero__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }

/* Composizione artistica: capsule/compresse o foto reparto + aura + chip */
.fr-hero__art { flex: 1.1; display: flex; justify-content: center; min-width: 0; }
/* Sulle slide reparto il testo è breve: l'immagine si prende più spazio. */
.fr-slide--reparto .fr-hero__content { flex: 1; }
.fr-slide--reparto .fr-hero__art { flex: 1.45; }
.fr-art-wrap { position: relative; width: 450px; max-width: 100%; height: 450px; display: flex; align-items: center; justify-content: center; }

.fr-art-pills {
	width: 100%;
	height: auto;
	filter: drop-shadow(0 24px 46px rgba(18, 60, 41, .18));
	animation: fr-pills-in .7s cubic-bezier(.22, .8, .3, 1) both;
}
@keyframes fr-pills-in {
	from { opacity: 0; transform: scale(.94) rotate(-3deg); }
	to { opacity: 1; transform: none; }
}

/* Slide reparto: la foto sostituisce l'illustrazione, stesso ingombro. */
.fr-art-wrap--photo { width: 700px; height: 420px; }
.fr-slide__img {
	position: relative;
	z-index: 1;
	max-width: 100%;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 22px 40px rgba(18, 60, 41, .16));
}
.fr-art-wrap--photo .fr-aura { width: 380px; height: 380px; inset: 50% auto auto 50%; margin: -190px 0 0 -190px; }

.fr-aura {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 1.5px solid rgba(224, 92, 42, .45);
	animation: fr-aura 3.6s ease-out infinite;
}
.fr-aura--2 { animation-delay: 1.8s; border-color: rgba(30, 92, 63, .40); }
@keyframes fr-aura {
	0% { transform: scale(.86); opacity: 0; }
	35% { opacity: .8; }
	100% { transform: scale(1.16); opacity: 0; }
}

.fr-chip {
	position: absolute;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius-pill);
	box-shadow: var(--fr-shadow-md);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--fr-green-ink);
	padding: 10px 16px;
	white-space: nowrap;
	animation: fr-float 6s ease-in-out infinite alternate;
}
.fr-chip .fr-icon { color: var(--fr-green); }
.fr-chip { z-index: 3; }
.fr-chip--1 { top: 18px; right: -26px; }
.fr-chip--2 { bottom: 26px; left: -34px; animation-delay: 2.4s; }
@keyframes fr-float {
	from { transform: translateY(-6px); }
	to { transform: translateY(8px); }
}

.fr-hero__etna {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	width: 100%;
	height: 72px;
	display: block;
	z-index: 1;
}

/* ------------------------------------------------------------------------
   Sezioni generiche
   ---------------------------------------------------------------------- */
.fr-section-head { margin-bottom: 22px; }
.fr-section-head--row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.fr-section-title { font-size: clamp(22px, 2.6vw, 28px); position: relative; display: inline-block; }
.fr-section-title::after {
	content: '';
	display: block;
	width: 44px;
	height: 3px;
	border-radius: 3px;
	background: var(--fr-orange);
	margin-top: 8px;
}
.fr-section-link { color: var(--fr-green); font-size: 13.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.fr-section-link:hover .fr-icon--arrow { transform: translateX(3px); }
.fr-section-link .fr-icon { transition: transform .18s ease; }

/* ------------------------------------------------------------------------
   Testate di sezione centrate
   ---------------------------------------------------------------------- */
.fr-section-head--center { text-align: center; margin-bottom: 34px; }
.fr-section-head--center .fr-section-title::after { display: none; }

.fr-eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--fr-orange);
	margin-bottom: 10px;
}

.fr-section-title--lg {
	font-size: clamp(27px, 3.4vw, 40px);
	line-height: 1.12;
	letter-spacing: -.012em;
	color: var(--fr-green-ink);
	display: block;
}

.fr-section-title--xl {
	font-size: clamp(32px, 4.6vw, 54px);
	line-height: 1.08;
	letter-spacing: -.015em;
	color: var(--fr-green-ink);
	display: block;
	max-width: 18ch;
	margin-inline: auto;
}
.fr-mappa .fr-section-title--xl { max-width: 24ch; }

/* Filetto ornamentale con la croce di farmacia al centro */
.fr-ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 16px;
	color: var(--fr-green);
}
.fr-ornament i {
	display: block;
	width: clamp(40px, 9vw, 88px);
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, var(--fr-orange));
}
.fr-ornament i:last-child { background: linear-gradient(90deg, var(--fr-orange), transparent); }
.fr-ornament svg { opacity: .9; }

/* ------------------------------------------------------------------------
   Reparti — tessere a tutta immagine
   Il gradiente rosso e' gia' impresso nelle foto: il velo qui sotto lo
   prolunga soltanto, per garantire il contrasto del testo bianco su tutte
   e sei senza sovrapporre due sfumature diverse.
   ---------------------------------------------------------------------- */
.fr-reparti { padding: 56px 0 20px; background: var(--fr-cream-card); }
.fr-reparti__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding-bottom: 48px; }

.fr-reparto {
	position: relative;
	display: block;
	aspect-ratio: 580 / 374;
	border-radius: 20px;
	overflow: hidden;
	isolation: isolate;
	background: var(--fr-cream-2);
	box-shadow: 0 6px 22px rgba(18, 60, 41, .12);
	transition: transform .3s cubic-bezier(.22, .8, .3, 1), box-shadow .3s ease;
}
.fr-reparto:hover,
.fr-reparto:focus-visible {
	transform: translateY(-8px);
	box-shadow: 0 20px 44px rgba(18, 60, 41, .26);
	color: #fff;
}

.fr-reparto__img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fr-reparto__velo {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(70, 12, 10, 0) 45%, rgba(70, 12, 10, .30) 72%, rgba(58, 8, 6, .62) 100%);
	transition: opacity .3s ease;
}
.fr-reparto:hover .fr-reparto__velo { opacity: .82; }

/* Lampo di luce diagonale al passaggio del mouse */
.fr-reparto__lampo {
	position: absolute;
	top: -60%;
	left: -75%;
	width: 45%;
	height: 220%;
	transform: rotate(18deg);
	background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.30), rgba(255,255,255,0));
	transition: left .65s cubic-bezier(.22, .8, .3, 1);
	pointer-events: none;
}
.fr-reparto:hover .fr-reparto__lampo { left: 130%; }

.fr-reparto__body {
	position: absolute;
	left: 22px;
	right: 74px;
	bottom: 18px;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.fr-reparto__label {
	font-family: var(--fr-display);
	font-size: clamp(18px, 1.9vw, 23px);
	font-weight: 600;
	line-height: 1.2;
	color: #fff;
	text-shadow: 0 2px 10px rgba(40, 6, 4, .5);
}
.fr-reparto__count {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, .88);
	text-shadow: 0 1px 6px rgba(40, 6, 4, .5);
}

.fr-reparto__go {
	position: absolute;
	right: 18px;
	bottom: 18px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: rgba(255, 255, 255, .18);
	border: 1px solid rgba(255, 255, 255, .55);
	backdrop-filter: blur(3px);
	transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}
.fr-reparto:hover .fr-reparto__go {
	background: var(--fr-orange);
	border-color: var(--fr-orange);
	transform: translateX(4px) scale(1.06);
}

/* ------------------------------------------------------------------------
   Mappa dei reparti
   ---------------------------------------------------------------------- */
.fr-mappa { padding: 58px 0 64px; background: var(--fr-cream); }
/* Consigli del farmacista: ultimo slider prima dei valori, sfondo scuro */
.fr-pslider--consigli { background: var(--fr-cream-card); }
.fr-mappa__claim {
	font-family: var(--fr-display);
	font-size: clamp(17px, 1.9vw, 22px);
	font-style: italic;
	color: var(--fr-red);
	margin-top: 12px;
}
.fr-mappa__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 26px;
	margin-top: 8px;
}
.fr-mappa__col {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 16px;
	padding: 20px 18px 18px;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.fr-mappa__col:hover { border-color: var(--fr-orange); box-shadow: var(--fr-shadow-md); transform: translateY(-3px); }

.fr-mappa__titolo {
	font-size: 16px;
	line-height: 1.25;
	margin: 0 0 12px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--fr-border);
}
.fr-mappa__titolo a { color: var(--fr-green-ink); }
.fr-mappa__titolo a:hover { color: var(--fr-orange); }

.fr-mappa__lista { list-style: none; margin: 0; padding: 0; }
.fr-mappa__lista li + li { margin-top: 7px; }
.fr-mappa__lista a {
	display: flex;
	align-items: baseline;
	gap: 9px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--fr-text-soft);
	transition: color .16s ease, transform .16s ease;
}
.fr-mappa__lista a:hover { color: var(--fr-green); transform: translateX(3px); }

.fr-mappa__punto {
	flex: 0 0 auto;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--fr-orange);
	opacity: .55;
	transition: opacity .16s ease, transform .16s ease;
}
.fr-mappa__lista a:hover .fr-mappa__punto { opacity: 1; transform: scale(1.35); }

/* ------------------------------------------------------------------------
   Prodotti (griglia WooCommerce)
   ---------------------------------------------------------------------- */
.fr-featured { padding: 44px 0; }
ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; list-style: none; margin: 0; padding: 0; }
/* Nel catalogo si sta più larghi: quattro per riga */
.fr-shop ul.products { grid-template-columns: repeat(4, 1fr); gap: 16px; }
/* Le soglie sono le stesse degli slider: il sito respira allo stesso modo. */
/*
 * WooCommerce assegna alle card larghezza percentuale, float e margini
 * per il suo layout a colonne flottanti:
 *   .woocommerce ul.products li.product { float:left; width:22.05%; margin:0 3.8% ... }
 * Dentro una griglia quel 22,05% si calcola sulla singola traccia e non sul
 * contenitore: una colonna da 285px produceva una card da 63px, con titoli
 * spezzati e il pulsante ridotto a coriandoli.
 * La regola qui sotto ha specificità piu' alta (3 classi + 3 elementi) e
 * vince a prescindere dall'ordine di caricamento dei fogli di stile.
 */
/*
 * woocommerce-general applica a ul.products un clearfix classico:
 *   .woocommerce ul.products::before/::after { content: " "; display: table; }
 * In un contenitore flottante è invisibile, ma dentro una griglia quei due
 * pseudo-elementi diventano CELLE a tutti gli effetti: da qui la prima
 * casella vuota nelle categorie e nei prodotti correlati.
 */
body.woocommerce ul.products::before,
body.woocommerce ul.products::after,
body.woocommerce-page ul.products::before,
body.woocommerce-page ul.products::after {
	content: none;
	display: none;
}

body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
	width: 100%;
	max-width: 100%;
	float: none;
	clear: none;
	margin: 0;
	padding: 16px;
	text-align: left;
}

/*
 * woocommerce-general resta caricato per avvisi, tabelle e form: qui
 * riportiamo sotto il nostro controllo le poche cose che tocca dentro
 * la card (titolo e prezzo), con specificità superiore alla sua.
 */
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
	font-size: 13.5px;
	padding: 0;
	margin: 4px 0;
}
body.woocommerce ul.products li.product .price,
body.woocommerce-page ul.products li.product .price {
	font-size: 17px;
	font-weight: 700;
	color: var(--fr-green-ink);
	margin: 0;
}
body.woocommerce ul.products li.product .price del,
body.woocommerce-page ul.products li.product .price del {
	font-size: 13px;
	font-weight: 400;
	color: var(--fr-muted);
	opacity: 1;
}
body.woocommerce ul.products li.product .price ins,
body.woocommerce-page ul.products li.product .price ins {
	font-weight: 700;
	color: var(--fr-red);
	text-decoration: none;
	background: transparent;
}
body.woocommerce ul.products li.product .button,
body.woocommerce-page ul.products li.product .button {
	margin: 0;
}
body.woocommerce ul.products li.product a img,
body.woocommerce-page ul.products li.product a img {
	margin: 0 0 12px;
}

ul.products li.product {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius);
	padding: 16px;
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	text-align: left;
	transition: transform .18s ease, box-shadow .18s ease;
}
ul.products li.product:hover { transform: translateY(-5px); box-shadow: var(--fr-shadow-lg); }
/*
 * Immagine normalizzata a un quadrato: le foto del gestionale hanno
 * proporzioni diverse fra loro e senza un rapporto fisso ogni card
 * assumeva un'altezza sua, sfalsando prezzi e pulsanti di tutta la riga.
 * object-fit: contain non taglia il prodotto, lo centra.
 */
ul.products li.product a img {
	aspect-ratio: 1 / 1;
	width: 100%;
	height: auto;
	object-fit: contain;
	padding: 6px;
	border-radius: var(--fr-radius-sm);
	background: #fff;
	margin-bottom: 12px;
}
ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--fr-body);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--fr-text);
	line-height: 1.4;
	padding: 0;
	margin: 4px 0;
	/* Due righe esatte: i titoli lunghi si troncano invece di allungare la card */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-clamp: 2;
	overflow: hidden;
	min-height: 2.8em;
}
ul.products li.product .price { color: var(--fr-green-ink); font-weight: 700; font-size: 17px; }
ul.products li.product .price del { color: var(--fr-muted); font-weight: 400; font-size: 13px; }
ul.products li.product .price ins { text-decoration: none; color: var(--fr-red); }

.fr-product__ean { display: block; font-size: 11px; color: var(--fr-muted); margin: 2px 0 6px; letter-spacing: .02em; }
/*
 * In colonne strette prezzo e pulsante affiancati si schiacciavano:
 * impilati restano leggibili a qualsiasi larghezza.
 */
.fr-product__footer {
	margin-top: auto;
	padding-top: 12px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
}

.fr-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	font-size: 11px;
	font-weight: 700;
	padding: 4px 10px;
	border-radius: var(--fr-radius-pill);
	color: #fff;
	letter-spacing: .02em;
}
.fr-badge--sale { background: var(--fr-red); box-shadow: 0 4px 10px rgba(200, 52, 43, .35); }

ul.products li.product .button,
ul.products li.product .added_to_cart {
	background: var(--fr-green);
	color: #fff;
	border-radius: var(--fr-radius-pill);
	font-size: 13px;
	font-weight: 600;
	padding: 11px 16px;
	border: 0;
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	text-align: center;
	transition: background-color .15s ease, transform .12s ease, box-shadow .15s ease;
}
ul.products li.product .button:hover {
	background: var(--fr-green-deep);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(18, 60, 41, .25);
}

/* ------------------------------------------------------------------------
   Shop / archivi
   ---------------------------------------------------------------------- */
.fr-shop { display: block; padding: 28px 0 48px; }
.woocommerce-products-header { margin-bottom: 18px; }

/* ------------------------------------------------------------------------
   Banda promo (Outlet)
   ---------------------------------------------------------------------- */
.fr-promo { padding: 52px 0 56px; background: var(--fr-cream); }
.fr-promo__band {
	position: relative;
	overflow: hidden;
	border-radius: 20px;
	background: linear-gradient(128deg, var(--fr-red) 8%, var(--fr-orange) 92%);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 34px 40px;
	box-shadow: 0 18px 44px rgba(200, 52, 43, .28);
}
.fr-promo__ring {
	position: absolute;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .22);
	pointer-events: none;
}
.fr-promo__ring--1 { width: 300px; height: 300px; right: -80px; top: -140px; }
.fr-promo__ring--2 { width: 200px; height: 200px; right: 60px; bottom: -110px; border-style: dashed; }
.fr-promo__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.fr-promo__title { font-size: clamp(24px, 3vw, 34px); color: #fff; font-style: italic; margin: 6px 0 6px; }
.fr-promo__text { font-size: 14px; margin: 0; opacity: .92; max-width: 460px; }
.fr-promo__band .fr-btn { position: relative; z-index: 2; flex: 0 0 auto; }

/* ------------------------------------------------------------------------
   Valori
   ---------------------------------------------------------------------- */
.fr-valori { padding: 54px 0 58px; background: var(--fr-cream); }
.fr-valori__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.fr-valore {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius);
	padding: 26px 24px;
	transition: transform .18s ease, box-shadow .18s ease;
}
.fr-valore:hover { transform: translateY(-4px); box-shadow: var(--fr-shadow-md); }
.fr-valore__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: 14px;
	margin-bottom: 14px;
}
.fr-valore__icon--green { background: #e8f2ea; color: var(--fr-green); }
.fr-valore__icon--orange { background: var(--fr-orange-soft); color: var(--fr-orange); }
.fr-valore__icon--blue { background: #eaf0f7; color: #2c5a86; }
.fr-valore__title { font-size: 17px; margin-bottom: 8px; }
.fr-valore__text { font-size: 13.5px; color: var(--fr-text-soft); margin: 0; }

/* ------------------------------------------------------------------------
   Blog in home + card articolo
   ---------------------------------------------------------------------- */
.fr-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fr-card-post {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius);
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease;
}
.fr-card-post:hover { transform: translateY(-4px); box-shadow: var(--fr-shadow-md); }
.fr-card-post__media { display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--fr-cream-2); }
.fr-card-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.fr-card-post:hover .fr-card-post__media img { transform: scale(1.06); }
.fr-card-post__body { display: block; padding: 16px 18px 20px; }
.fr-card-post__date { font-size: 12px; color: var(--fr-green); font-weight: 600; }
.fr-card-post__title { display: block; font-family: var(--fr-display); font-size: 17.5px; color: var(--fr-green-ink); margin-top: 5px; line-height: 1.3; }

/* ------------------------------------------------------------------------
   Banda invito al contatto
   ---------------------------------------------------------------------- */
.fr-cta-wa { background: var(--fr-green-deep); position: relative; overflow: hidden; }
.fr-cta-wa::before {
	content: '';
	position: absolute;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	border: 2px dashed rgba(232, 242, 234, .12);
	right: -70px;
	top: -110px;
}
.fr-cta-wa__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 32px 0; position: relative; }
.fr-cta-wa__title { font-family: var(--fr-display); font-size: clamp(22px, 2.4vw, 28px); line-height: 1.2; color: #f4efe2; margin: 0; }
.fr-cta-wa__sub { font-size: clamp(14px, 1.4vw, 16px); color: #b9d2c1; margin: 7px 0 0; }

/* ------------------------------------------------------------------------
   Reassurance bar
   ---------------------------------------------------------------------- */
.fr-reassure { background: var(--fr-cream-card); border-top: 1px solid var(--fr-border); }
.fr-reassure__inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 26px 0 30px; }

.fr-reassure__item {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 22px;
	border-radius: 16px;
	background: var(--fr-cream);
	border: 1px solid var(--fr-border);
	transition: transform .22s cubic-bezier(.22, .8, .3, 1), box-shadow .22s ease, border-color .22s ease;
}
.fr-reassure__item:hover { transform: translateY(-4px); box-shadow: var(--fr-shadow-md); }

.fr-reassure__icon {
	flex: 0 0 auto;
	width: 54px;
	height: 54px;
	border-radius: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: transform .22s ease;
}
.fr-reassure__item:hover .fr-reassure__icon { transform: rotate(-6deg) scale(1.06); }

.fr-reassure__item--verde .fr-reassure__icon { background: linear-gradient(140deg, #2e7a54, var(--fr-green)); }
.fr-reassure__item--arancio .fr-reassure__icon { background: linear-gradient(140deg, #ef8a54, var(--fr-orange)); }
.fr-reassure__item--tarocco .fr-reassure__icon { background: linear-gradient(140deg, #d9483f, var(--fr-red)); }
.fr-reassure__item--verde:hover { border-color: var(--fr-green); }
.fr-reassure__item--arancio:hover { border-color: var(--fr-orange); }
.fr-reassure__item--tarocco:hover { border-color: var(--fr-red); }

.fr-reassure__testo { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fr-reassure__title { font-size: clamp(16px, 1.6vw, 18px); font-weight: 700; color: var(--fr-green-ink); line-height: 1.25; }
.fr-reassure__sub { font-size: clamp(13.5px, 1.35vw, 15px); color: var(--fr-text-soft); line-height: 1.45; }

/* ------------------------------------------------------------------------
   Footer verde profondo
   ---------------------------------------------------------------------- */
.fr-footer { background: var(--fr-green-night); color: #cfe0d4; }
.fr-footer__cols { display: grid; grid-template-columns: 1.4fr 1.2fr 1fr 1fr; gap: 30px; padding: 46px 20px 32px; }
.fr-footer__logo { display: inline-block; margin-bottom: 14px; }
.fr-footer__logo img { display: block; max-height: 72px; width: auto; }
/*
 * Senza un logo dedicato usiamo quello del sito e lo rendiamo bianco:
 * brightness(0) appiattisce tutto a nero, invert(1) lo ribalta in bianco.
 * Funziona con qualsiasi logo monocromatico su sfondo trasparente.
 */
.fr-footer__logo--auto img { filter: brightness(0) invert(1); opacity: .96; }
.fr-footer__brand img { max-height: 40px; width: auto; display: block; }
.fr-footer__tagline { font-size: 13px; line-height: 1.6; color: #a8c4b0; max-width: 330px; }
.fr-footer__title { font-size: 14px; color: #f4efe2; margin-bottom: 14px; letter-spacing: .04em; text-transform: uppercase; font-family: var(--fr-body); font-weight: 700; }
.fr-footer__contacts { list-style: none; margin: 0; padding: 0; font-size: 13px; color: #a8c4b0; }
.fr-footer__contacts li { display: flex; gap: 9px; align-items: flex-start; margin-bottom: 10px; }
.fr-footer__contacts .fr-icon { color: var(--fr-orange); flex: 0 0 auto; margin-top: 2px; }
.fr-footer__contacts a { color: #cfe0d4; }
.fr-footer__contacts a:hover { color: var(--fr-orange); }
.fr-footer__menu { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.fr-footer__menu li { margin-bottom: 9px; }
.fr-footer__menu a { color: #a8c4b0; }
.fr-footer__menu a:hover { color: var(--fr-orange); }

.fr-footer__bottom { border-top: 1px solid rgba(232, 242, 234, .12); }
.fr-footer__bottom-inner {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 20px;
	font-size: 12px;
	color: #7fa38c;
	flex-wrap: wrap;
}

/* ------------------------------------------------------------------------
   Pagine / prosa / breadcrumb
   ---------------------------------------------------------------------- */
.fr-page { padding: 30px 20px 52px; }
.fr-breadcrumb { font-size: 12.5px; color: var(--fr-muted); margin-bottom: 20px; }
.fr-breadcrumb a { color: var(--fr-green); }
.fr-breadcrumb__sep { margin: 0 6px; color: var(--fr-border); }
.fr-page__title { font-size: clamp(26px, 3.2vw, 38px); margin-bottom: 20px; }
.fr-prose { font-size: 15.5px; color: var(--fr-text); line-height: 1.75; }
.fr-prose h2 { font-size: 21px; margin-top: 1.5em; }
.fr-prose h3 { font-size: 17.5px; margin-top: 1.3em; color: var(--fr-green); }
/* I pulsanti dentro la prosa non sono link da sottolineare in rosso:
   qui è nato il testo tarocco sul grigio dei pulsanti a blocchi. */
.fr-prose a:not([class*="button"]):not([class*="wc-block"]):not([class*="wp-element"]) {
	color: var(--fr-red);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Articolo singolo */


/* ------------------------------------------------------------------------
   Contatti / form / mappa
   ---------------------------------------------------------------------- */
.fr-contatti__top { display: flex; gap: 36px; margin-bottom: 40px; flex-wrap: wrap; }
.fr-contatti__info { flex: 1 1 320px; }
.fr-contatti__map { flex: 1 1 380px; }
.fr-contatti__lead { color: var(--fr-text-soft); }
.fr-contatti__list { list-style: none; margin: 22px 0 0; padding: 0; }
.fr-contatti__list li { display: flex; gap: 10px; align-items: center; margin-bottom: 13px; font-size: 14px; }
.fr-contatti__list .fr-icon { color: var(--fr-green); }

.fr-map-facade {
	position: relative;
	aspect-ratio: 4 / 3;
	background: var(--fr-cream-2);
	border-radius: var(--fr-radius);
	overflow: hidden;
	cursor: pointer;
	border: 1px solid var(--fr-border);
	transition: box-shadow .18s ease;
}
.fr-map-facade:hover { box-shadow: var(--fr-shadow-md); }
.fr-map-facade__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--fr-green);
	font-size: 13px;
	font-weight: 600;
}
.fr-map-facade iframe { width: 100%; height: 100%; border: 0; display: block; }

.fr-form { max-width: 660px; }
.fr-field { margin-bottom: 18px; }
.fr-field label { display: block; font-size: 13px; font-weight: 500; color: var(--fr-text-soft); margin-bottom: 7px; }
.fr-field input[type="text"],
.fr-field input[type="email"],
.fr-field textarea {
	width: 100%;
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius-sm);
	background: var(--fr-cream-card);
	padding: 12px 15px;
	font-size: 14px;
	font-family: var(--fr-body);
	color: var(--fr-text);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.fr-field input:focus,
.fr-field textarea:focus { outline: none; border-color: var(--fr-green); box-shadow: 0 0 0 3px rgba(30, 92, 63, .12); }
.fr-field--honeypot { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.fr-field--checkbox label { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; }
.fr-field--checkbox input { margin-top: 3px; }

.fr-captcha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fr-captcha__img { border-radius: var(--fr-radius-sm); border: 1px solid var(--fr-border); }
.fr-captcha__reload {
	border: 1px solid var(--fr-border);
	background: var(--fr-cream-card);
	border-radius: var(--fr-radius-sm);
	width: 42px;
	height: 42px;
	cursor: pointer;
	font-size: 18px;
	color: var(--fr-green);
	transition: background-color .15s ease;
}
.fr-captcha__reload:hover { background: var(--fr-cream-2); }
.fr-captcha input { flex: 1; min-width: 120px; }

.fr-notice { border-radius: var(--fr-radius-sm); padding: 13px 17px; margin-bottom: 20px; font-size: 14px; }
.fr-notice--success { background: #e8f2ea; color: var(--fr-green-deep); border: 1px solid #bfe0cc; }
.fr-notice--error { background: #fbeceb; color: #8f241d; border: 1px solid #f0c8c4; }
.fr-notice ul { margin: 0; padding-left: 18px; }

/* ------------------------------------------------------------------------
   Cookie banner
   ---------------------------------------------------------------------- */
.fr-cookie {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 9999;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius);
	box-shadow: var(--fr-shadow-lg);
	max-width: 720px;
	margin-inline: auto;
}
.fr-cookie__inner { display: flex; align-items: center; gap: 18px; padding: 18px 22px; flex-wrap: wrap; }
.fr-cookie__body { flex: 1 1 300px; }
.fr-cookie__title { font-weight: 700; color: var(--fr-green-ink); margin: 0 0 4px; font-size: 14px; }
.fr-cookie__text { font-size: 12.5px; color: var(--fr-text-soft); margin: 0; }
.fr-cookie__text a { color: var(--fr-green); text-decoration: underline; }
.fr-cookie__actions { display: flex; gap: 10px; }

/* ------------------------------------------------------------------------
   Paginazione
   ---------------------------------------------------------------------- */
.fr-pagination, .woocommerce-pagination { margin-top: 32px; }
.page-numbers { list-style: none; display: flex; gap: 6px; padding: 0; justify-content: center; flex-wrap: wrap; }
.page-numbers a, .page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border-radius: var(--fr-radius-sm);
	border: 1px solid var(--fr-border);
	background: var(--fr-cream-card);
	color: var(--fr-text);
	font-size: 14px;
	transition: background-color .15s ease, color .15s ease;
}
.page-numbers a:hover { background: var(--fr-cream-2); }
.page-numbers .current { background: var(--fr-green); color: #fff; border-color: var(--fr-green); }

/* ------------------------------------------------------------------------
   Responsive
   ---------------------------------------------------------------------- */
@media (max-width: 980px) {
	.fr-footer__cols { grid-template-columns: 1fr 1fr; }
	ul.products, .fr-post-grid, .fr-valori__grid { grid-template-columns: repeat(2, 1fr); }
	.fr-reparti__grid { grid-template-columns: repeat(2, 1fr); }
	.fr-mappa__grid { grid-template-columns: repeat(3, 1fr); }
	.fr-promo__band { flex-direction: column; align-items: flex-start; }
	.fr-chip--1 { right: -8px; }
	.fr-chip--2 { left: -8px; }
}

@media (max-width: 760px) {
	.fr-mappa__grid { grid-template-columns: repeat(2, 1fr); }
	.fr-header__inner { flex-wrap: wrap; gap: 12px; }
	.fr-header__search { order: 3; flex-basis: 100%; }
	.fr-header__burger { display: inline-flex; }

	.fr-nav { display: none; position: static; }
	.fr-nav.is-open { display: block; }
	.fr-nav__list { flex-direction: column; gap: 0; }
	.fr-nav__list li { border-bottom: 1px solid var(--fr-border); }
	.fr-nav__list a { padding: 13px 0; display: block; }
	.fr-nav__list a::after { display: none; }

	/* Su telefono niente tendine: elenco rientrato sempre visibile */
	.fr-nav__list .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		min-width: 0;
		padding: 0 0 8px 16px;
		margin: 0;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: transparent;
		transition: none;
	}
	.fr-nav__list .sub-menu::before { content: none; }
	.fr-nav__list .sub-menu a { padding: 9px 0; font-size: 14px; color: var(--fr-text-soft); }
	.fr-nav__list .sub-menu a::before { content: '– '; opacity: .5; }
	.fr-nav__list .menu-item-has-children > a::before { display: none; }
	.fr-nav__list .sub-menu .sub-menu { left: auto; padding-left: 16px; }

	.fr-hero { padding: 40px 0 84px; }
	.fr-hero__inner { flex-direction: column-reverse; text-align: center; }
	.fr-hero__text { margin-inline: auto; }
	.fr-hero__actions { justify-content: center; }
	.fr-art-wrap { width: 360px; height: 360px; }
	.fr-art-wrap--photo { width: 100%; max-width: 560px; height: auto; }

	.fr-cta-wa__inner { flex-direction: column; text-align: center; }
	.fr-reassure__inner { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
	.fr-reparti__grid { grid-template-columns: 1fr; gap: 14px; }
	.fr-mappa__grid { grid-template-columns: 1fr; gap: 12px; }
	.fr-reparto__body { left: 16px; right: 66px; bottom: 14px; }
	.fr-reparto__go { width: 38px; height: 38px; right: 14px; bottom: 14px; }
	ul.products, .fr-post-grid, .fr-valori__grid { grid-template-columns: 1fr; }
	.fr-footer__cols { grid-template-columns: 1fr; }
	.fr-promo__band { padding: 28px 24px; }
	.fr-chip--1, .fr-chip--2 { position: static; margin-top: 10px; animation: none; }
	.fr-art-wrap { width: 270px; height: 270px; }
	.fr-art-wrap--photo { width: 100%; max-width: 380px; height: auto; }
	.fr-aura { display: none; }
}

/* ------------------------------------------------------------------------
   Accessibilita': rispetta prefers-reduced-motion
   ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	* { animation-duration: .001ms !important; transition-duration: .001ms !important; }
	.fr-reveal { opacity: 1; transform: none; }
}

/* EAN in scheda prodotto */
.fr-single-ean { display: block; font-size: 12.5px; color: var(--fr-muted); margin-top: 4px; }


/* ------------------------------------------------------------------------
   Slider home
   Le slide si impilano nella stessa cella di griglia: l'altezza è quella
   della più alta, senza calcoli JS e senza salti al cambio slide.
   ---------------------------------------------------------------------- */
.fr-slider { position: relative; }
.fr-slider__track { display: grid; }
.fr-slide > .fr-container { width: 100%; }
.fr-slide {
	grid-area: 1 / 1;
	/* Le slide occupano tutta l'altezza della cella (che è quella della slide
	   più alta): il flex centra il contenuto invece di lasciarlo in cima. */
	display: flex;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .55s ease, transform .55s cubic-bezier(.22, .8, .3, 1), visibility 0s linear .55s;
	pointer-events: none;
}
.fr-slide.is-active {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity .55s ease, transform .55s cubic-bezier(.22, .8, .3, 1), visibility 0s;
	pointer-events: auto;
}

/* Slide reparto: entrambe le righe del titolo in verde, sottotitolo rosso
   (è l'impostazione cromatica del sito storico). */
.fr-hero__title--dept .fr-hero__title-a { color: var(--fr-green); font-style: normal; }
.fr-hero__title--dept { font-size: clamp(38px, 5.4vw, 68px); line-height: 1.08; margin-bottom: 20px; }
.fr-hero__text--dept {
	color: var(--fr-red);
	font-size: clamp(17px, 1.9vw, 23px);
	line-height: 1.45;
	max-width: 460px;
	margin-bottom: 30px;
}

/* Frecce */
.fr-slider__nav {
	position: absolute;
	top: calc(50% - 30px);
	transform: translateY(-50%);
	z-index: 5;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid var(--fr-border);
	background: var(--fr-cream-card);
	color: var(--fr-green);
	box-shadow: var(--fr-shadow-md);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	opacity: .55;
	transition: opacity .18s ease, background-color .18s ease, transform .18s ease;
}
.fr-slider:hover .fr-slider__nav,
.fr-slider__nav:focus-visible { opacity: 1; }
.fr-slider__nav:hover { background: var(--fr-green); color: #fff; transform: translateY(-50%) scale(1.06); }
.fr-slider__nav--prev { left: 14px; }
.fr-slider__nav--next { right: 14px; }

/* Indicatori */
.fr-slider__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 74px;
	z-index: 5;
	display: flex;
	justify-content: center;
	gap: 9px;
}
.fr-slider__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid rgba(30, 92, 63, .35);
	background: rgba(255, 255, 255, .7);
	cursor: pointer;
	transition: background-color .18s ease, width .25s ease, border-color .18s ease;
}
.fr-slider__dot:hover { border-color: var(--fr-green); }
.fr-slider__dot.is-active {
	width: 30px;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-green);
	border-color: var(--fr-green);
}

@media (max-width: 860px) {
	.fr-slider__nav { display: none; }
	.fr-slider__dots { bottom: 58px; }
	.fr-hero__text--dept { margin-inline: auto; }
}

/* Chi ha chiesto meno animazioni riceve meno animazioni: niente
   dissolvenze, niente aure, niente autoplay (gestito anche in JS). */
@media (prefers-reduced-motion: reduce) {
	.fr-slide { transition: none; }
	.fr-art-pills { animation: none; }
	.fr-aura { animation: none; opacity: 0; }
	.fr-chip { animation: none; }
}

/* ------------------------------------------------------------------------
   Slider prodotti (Ultimi arrivi, Più venduti)

   Scorrimento nativo con scroll-snap: senza JavaScript funziona lo stesso
   (trascinamento, swipe, rotellina orizzontale). Il JS aggiunge solo le
   frecce e il loro stato disabilitato.
   ---------------------------------------------------------------------- */
.fr-pslider {
	--fr-fade: var(--fr-cream-card);
	padding: 46px 0 30px;
	background: var(--fr-cream-card);
}
.fr-pslider + .fr-pslider { padding-top: 8px; }

.fr-pslider__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
.fr-pslider__heading .fr-eyebrow { margin-bottom: 4px; }
.fr-pslider__tools { display: flex; align-items: center; gap: 16px; }
.fr-pslider__arrows { display: flex; gap: 8px; }

.fr-pslider__arrow {
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid var(--fr-border);
	background: var(--fr-cream);
	color: var(--fr-green);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, opacity .18s ease;
}
.fr-pslider__arrow:hover:not(:disabled) { background: var(--fr-green); color: #fff; border-color: var(--fr-green); }
.fr-pslider__arrow:disabled { opacity: .32; cursor: default; }

.fr-pslider__viewport { position: relative; }

ul.products.fr-pslider__track {
	/* Numero di colonne visibili: da qui dipende tutto il resto */
	--fr-cols: 4;
	--fr-gap: 18px;

	display: flex;
	gap: var(--fr-gap);
	margin: 0;
	padding: 4px 2px 8px;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	/* Le frecce bastano: la barra grigia sotto la fila è solo rumore */
	scrollbar-width: none;
	-ms-overflow-style: none;
}
ul.products.fr-pslider__track::-webkit-scrollbar { display: none; }

/*
 * Colonne visibili per formato: 4 desktop, 3 tablet orizzontale,
 * 2 tablet verticale, 1 telefono.
 * ATTENZIONE ALL'ORDINE: queste regole hanno la stessa specificità della
 * dichiarazione qui sopra, quindi devono stare DOPO. Scritte prima (com'era)
 * venivano semplicemente sovrascritte da --fr-cols: 4 e su telefono si
 * vedevano quattro card schiacciate.
 */
@media (max-width: 1100px) {
	ul.products.fr-pslider__track { --fr-cols: 3; }
}
@media (max-width: 820px) {
	ul.products.fr-pslider__track { --fr-cols: 2; --fr-gap: 14px; }
}
@media (max-width: 560px) {
	ul.products.fr-pslider__track { --fr-cols: 1; }
}
ul.products.fr-pslider__track::before,
ul.products.fr-pslider__track::after { content: none; }

/*
 * La card occupa esattamente 1/N della larghezza visibile, gap compresi:
 * così l'ultima colonna finisce al bordo e non resta mai un prodotto
 * tagliato a metà da recuperare con la barra di scorrimento.
 */
body ul.products.fr-pslider__track > li.product {
	flex: 0 0 calc((100% - (var(--fr-cols) - 1) * var(--fr-gap)) / var(--fr-cols));
	width: auto;
	margin: 0;
	scroll-snap-align: start;
}

/* ------------------------------------------------------------------------
   Banda spedizione gratuita — "il biglietto affrancato"
   ---------------------------------------------------------------------- */
.fr-sped { padding: 52px 0 56px; background: var(--fr-cream); }

.fr-sped__ticket {
	position: relative;
	display: flex;
	align-items: center;
	gap: 30px;
	padding: 30px 42px;
	border-radius: 24px;
	overflow: hidden;
	color: var(--fr-cream);
	background:
		radial-gradient(circle at 16% 18%, rgba(122, 182, 72, .18), transparent 58%),
		linear-gradient(135deg, var(--fr-green-deep), var(--fr-green));
	box-shadow: 0 18px 44px rgba(18, 60, 41, .28);
}
/* Trama a puntini: dà consistenza di carta senza pesare */
.fr-sped__ticket::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: .16;
	background-image: radial-gradient(rgba(250, 246, 238, .9) 1.1px, transparent 1.1px);
	background-size: 22px 22px;
}

/* Dentellature laterali del tagliando */
.fr-sped__dente {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--fr-cream);
	transform: translateY(-50%);
}
.fr-sped__dente--sx { left: -15px; }
.fr-sped__dente--dx { right: -15px; }

/* Timbro postale */
.fr-sped__timbro {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	transform: rotate(-7deg);
	filter: drop-shadow(0 10px 20px rgba(0, 0, 0, .3));
}
.fr-sped__timbro svg { display: block; width: 152px; height: 152px; }
.fr-sped__cifra {
	font-family: var(--fr-display);
	font-size: var(--fr-cifra, 46px);
	font-weight: 600;
	fill: var(--fr-green-ink);
}

.fr-sped__body {
	position: relative;
	z-index: 1;
	flex: 1 1 auto;
	min-width: 0;
	padding-left: 30px;
	border-left: 2px dashed rgba(250, 246, 238, .3);
}
.fr-sped__eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(250, 246, 238, .68);
	margin-bottom: 7px;
}
.fr-sped__title {
	font-size: clamp(28px, 3.5vw, 44px);
	line-height: 1.04;
	color: #fff;
	margin: 0 0 9px;
}
.fr-sped__title em { font-style: normal; color: var(--fr-orange); }
.fr-sped__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	max-width: 46ch;
	color: rgba(250, 246, 238, .86);
}
.fr-sped__text strong { color: #fff; font-weight: 700; }

/* Rotta tratteggiata verso il pacco */
.fr-sped__rotta {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	color: rgba(250, 246, 238, .6);
}
.fr-sped__linea { animation: fr-rotta 1.1s linear infinite; }
@keyframes fr-rotta { to { stroke-dashoffset: -21; } }

.fr-sped__pacco { animation: fr-pacco 2.8s ease-in-out infinite; }
@keyframes fr-pacco {
	0%, 100% { transform: translate(196px, 8px); }
	50% { transform: translate(196px, 1px); }
}

.fr-sped__cta { position: relative; z-index: 1; flex: 0 0 auto; }

@media (max-width: 1180px) {
	.fr-sped__rotta { display: none; }
}
@media (max-width: 860px) {
	.fr-sped__ticket { flex-direction: column; text-align: center; gap: 20px; padding: 30px 24px; }
	.fr-sped__body { padding-left: 0; padding-top: 20px; border-left: 0; border-top: 2px dashed rgba(250, 246, 238, .3); }
	.fr-sped__text { margin-inline: auto; }
	.fr-sped__timbro svg { width: 128px; height: 128px; }
	.fr-sped__dente { top: auto; bottom: -15px; transform: none; }
	.fr-sped__dente--sx { left: 24px; }
	.fr-sped__dente--dx { right: 24px; }
	.fr-pslider__head { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.fr-sped__linea, .fr-sped__pacco { animation: none; }
	ul.products.fr-pslider__track { scroll-behavior: auto; }
}

/* ------------------------------------------------------------------------
   Blog di salute — impaginato editoriale
   Un articolo grande a sinistra, due di spalla a destra in orizzontale.
   ---------------------------------------------------------------------- */
.fr-home-blog { padding: 52px 0 60px; background: var(--fr-cream-card); }

.fr-blog-grid {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 20px;
}

.fr-post {
	background: var(--fr-cream);
	border: 1px solid var(--fr-border);
	border-radius: 18px;
	overflow: hidden;
	display: flex;
	transition: transform .24s cubic-bezier(.22, .8, .3, 1), box-shadow .24s ease, border-color .24s ease;
}
.fr-post:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(18, 60, 41, .16); border-color: var(--fr-orange); }

.fr-post--grande { grid-row: span 2; flex-direction: column; }
.fr-post--spalla { flex-direction: row; align-items: stretch; }

.fr-post__media {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--fr-cream-2);
	flex: 0 0 auto;
}
.fr-post--grande .fr-post__media { aspect-ratio: 16 / 9; }
.fr-post--spalla .fr-post__media { width: 40%; min-height: 100%; }
.fr-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fr-post__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--fr-green);
	opacity: .22;
	background: linear-gradient(140deg, var(--fr-cream-2), var(--fr-cream));
}

.fr-post__cat {
	position: absolute;
	left: 12px;
	top: 12px;
	z-index: 2;
	padding: 5px 12px;
	border-radius: var(--fr-radius-pill);
	background: rgba(18, 60, 41, .88);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .04em;
	backdrop-filter: blur(3px);
}

.fr-post__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 20px 20px;
	flex: 1 1 auto;
	min-width: 0;
}
.fr-post--grande .fr-post__body { padding: 22px 24px 24px; gap: 10px; }

.fr-post__meta {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 12px;
	color: var(--fr-text-soft);
}
.fr-post__lettura { display: inline-flex; align-items: center; gap: 4px; }
.fr-post__lettura .fr-icon { opacity: .7; }
.fr-post__sep { opacity: .5; }

.fr-post__title {
	font-size: 17px;
	line-height: 1.28;
	margin: 0;
}
.fr-post--grande .fr-post__title { font-size: clamp(21px, 2.3vw, 27px); line-height: 1.2; }
.fr-post__title a { color: var(--fr-green-ink); }
.fr-post:hover .fr-post__title a { color: var(--fr-green); }

.fr-post__excerpt { margin: 0; font-size: 14px; line-height: 1.55; color: var(--fr-text-soft); }
.fr-post--grande .fr-post__excerpt { font-size: 15px; }

.fr-post__more {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--fr-red);
}
.fr-post__more .fr-icon { transition: transform .2s ease; }
.fr-post:hover .fr-post__more .fr-icon { transform: translateX(4px); }

.fr-blog-tutti { text-align: center; margin-top: 30px; }

@media (max-width: 980px) {
	.fr-blog-grid { grid-template-columns: 1fr; grid-template-rows: none; }
	.fr-post--grande { grid-row: auto; }
}
@media (max-width: 560px) {
	.fr-post--spalla { flex-direction: column; }
	.fr-post--spalla .fr-post__media { width: 100%; aspect-ratio: 16 / 9; min-height: 0; }
}

/* ------------------------------------------------------------------------
   Articolo singolo
   Testata centrata a tutta larghezza, testo in colonna stretta e leggibile,
   immagine in evidenza a chiusura del pezzo.
   ---------------------------------------------------------------------- */
.fr-single__header {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, var(--fr-cream-card), var(--fr-cream));
	border-bottom: 1px solid var(--fr-border);
	padding: 26px 0 44px;
	text-align: center;
}
/* Cerchio tratteggiato in filigrana: stessa firma della banda contatti */
.fr-single__header::before {
	content: '';
	position: absolute;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	border: 2px dashed rgba(30, 92, 63, .10);
	right: -110px;
	top: -150px;
	pointer-events: none;
}
.fr-single__header .fr-breadcrumb { text-align: center; margin-bottom: 18px; }

.fr-single__cat {
	display: inline-block;
	padding: 6px 15px;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-green);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	margin-bottom: 16px;
}
.fr-single__cat:hover { background: var(--fr-orange); color: #fff; }

.fr-single__title {
	font-size: clamp(30px, 4.4vw, 52px);
	line-height: 1.08;
	letter-spacing: -.015em;
	color: var(--fr-green-ink);
	max-width: 20ch;
	margin: 0 auto;
}

.fr-single__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin-top: 16px;
	font-size: 14px;
	color: var(--fr-text-soft);
}
.fr-single__lettura { display: inline-flex; align-items: center; gap: 5px; }
.fr-single__sep { opacity: .5; }

.fr-single__content {
	max-width: 72ch;
	margin: 44px auto 0;
	font-size: 17px;
	line-height: 1.78;
}
.fr-single__content > p:first-of-type {
	font-size: 19.5px;
	line-height: 1.62;
	color: var(--fr-green-ink);
}
.fr-single__content h2 { font-size: clamp(22px, 2.4vw, 27px); margin-top: 1.6em; }
.fr-single__content h3 { font-size: clamp(18px, 2vw, 21px); }
.fr-single__content blockquote {
	margin: 1.8em 0;
	padding: 4px 0 4px 22px;
	border-left: 4px solid var(--fr-orange);
	font-family: var(--fr-display);
	font-size: 19px;
	font-style: italic;
	color: var(--fr-green-ink);
}

/* Immagine in evidenza, a chiusura */
.fr-single__media {
	max-width: 900px;
	margin: 48px auto 0;
	border-radius: var(--fr-radius);
	overflow: hidden;
	box-shadow: 0 18px 44px rgba(18, 60, 41, .18);
}
.fr-single__media img { display: block; width: 100%; height: auto; }
.fr-single__media figcaption {
	padding: 12px 18px;
	background: var(--fr-cream-card);
	font-size: 13px;
	color: var(--fr-text-soft);
	text-align: center;
}

.fr-single__foot {
	max-width: 900px;
	margin: 34px auto 0;
	padding-top: 24px;
	border-top: 1px solid var(--fr-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.fr-single__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.fr-single__tags a {
	padding: 5px 12px;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	font-size: 12.5px;
	color: var(--fr-text-soft);
}
.fr-single__tags a:hover { border-color: var(--fr-orange); color: var(--fr-orange); }

/* Articoli correlati */
.fr-correlati { padding: 54px 0 60px; background: var(--fr-cream-card); margin-top: 56px; }
.fr-correlati__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fr-correlati .fr-post--grande { grid-row: auto; }
.fr-correlati .fr-post__media { aspect-ratio: 16 / 9; }

@media (max-width: 860px) {
	.fr-correlati__grid { grid-template-columns: 1fr; }
	.fr-single__content { font-size: 16px; }
	.fr-single__content > p:first-of-type { font-size: 18px; }
}

/* ------------------------------------------------------------------------
   Seguici sui social

   A riposo le tessere restano nella palette di casa; al passaggio del mouse
   si riempiono del colore della rete, che compare da un livello sovrapposto
   in dissolvenza (i gradienti non si possono animare direttamente).
   ---------------------------------------------------------------------- */
.fr-social { padding: 56px 0 64px; background: var(--fr-cream); }

.fr-social__intro {
	max-width: 62ch;
	margin: 0 auto 34px;
	text-align: center;
	font-size: 16px;
	line-height: 1.6;
	color: var(--fr-text-soft);
}

.fr-social__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 22px;
	max-width: 900px;
	margin-inline: auto;
}

.fr-social__card {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 26px 28px;
	border-radius: 20px;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	box-shadow: 0 6px 18px rgba(18, 60, 41, .07);
	transition: transform .26s cubic-bezier(.22, .8, .3, 1), box-shadow .26s ease, border-color .26s ease;
}
/* Il velo colorato: sta sotto al contenuto e sale in opacità all'hover */
.fr-social__card::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0;
	transition: opacity .3s ease;
	background: var(--fr-marchio);
}
.fr-social__card--facebook { --fr-marchio: linear-gradient(135deg, #1877f2, #0b4fbd); --fr-tinta: #1877f2; }
.fr-social__card--instagram { --fr-marchio: linear-gradient(135deg, #833ab4, #e1306c 55%, #fcaf45); --fr-tinta: #e1306c; }

.fr-social__card:hover,
.fr-social__card:focus-visible {
	transform: translateY(-6px);
	border-color: transparent;
	box-shadow: 0 20px 42px rgba(18, 60, 41, .24);
}
.fr-social__card:hover::before,
.fr-social__card:focus-visible::before { opacity: 1; }

.fr-social__icon {
	flex: 0 0 auto;
	width: 58px;
	height: 58px;
	border-radius: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: var(--fr-marchio);
	transition: background .3s ease, color .3s ease, transform .3s ease;
}
.fr-social__card:hover .fr-social__icon {
	background: #fff;
	color: var(--fr-tinta);
	transform: rotate(-6deg) scale(1.06);
}

.fr-social__testo { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fr-social__rete {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--fr-tinta);
	transition: color .3s ease;
}
.fr-social__handle {
	font-family: var(--fr-display);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--fr-green-ink);
	transition: color .3s ease;
}
.fr-social__claim {
	font-size: 13.5px;
	line-height: 1.4;
	color: var(--fr-text-soft);
	transition: color .3s ease;
}

.fr-social__card:hover .fr-social__rete,
.fr-social__card:hover .fr-social__handle { color: #fff; }
.fr-social__card:hover .fr-social__claim { color: rgba(255, 255, 255, .88); }

.fr-social__go {
	margin-left: auto;
	flex: 0 0 auto;
	color: var(--fr-muted);
	transition: color .3s ease, transform .26s ease;
}
.fr-social__card:hover .fr-social__go { color: #fff; transform: translateX(5px); }

@media (max-width: 720px) {
	.fr-social__grid { grid-template-columns: 1fr; }
	.fr-social__card { padding: 22px; gap: 15px; }
	.fr-social__icon { width: 52px; height: 52px; }
}

/* Icone social compatte nel footer */
.fr-footer__social { display: flex; gap: 8px; margin-top: 16px; }
.fr-footer__social-link {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #e8f2ea;
	background: rgba(232, 242, 234, .10);
	border: 1px solid rgba(232, 242, 234, .18);
	transition: background-color .2s ease, transform .2s ease, border-color .2s ease, color .2s ease;
}
.fr-footer__social-link:hover { transform: translateY(-3px); color: #fff; border-color: transparent; }
.fr-footer__social-link--facebook:hover { background: #1877f2; }
.fr-footer__social-link--instagram:hover { background: linear-gradient(135deg, #833ab4, #e1306c 55%, #fcaf45); }

@media (prefers-reduced-motion: reduce) {
	.fr-social__card, .fr-social__icon, .fr-social__go, .fr-footer__social-link { transition: none; }
}

/* ------------------------------------------------------------------------
   Catalogo — testata
   ---------------------------------------------------------------------- */
.fr-shophero {
	position: relative;
	/*
	 * NIENTE overflow: hidden qui. Ritagliava la tendina della ricerca
	 * rapida, che deve poter uscire dal bordo inferiore della fascia.
	 * A contenere le decorazioni ci pensa .fr-shophero__deco.
	 */
	padding: 26px 0 58px;
	background:
		radial-gradient(circle at 88% 10%, rgba(224, 92, 42, .10), transparent 55%),
		linear-gradient(180deg, var(--fr-cream-card), var(--fr-cream-2));
	border-bottom: 1px solid var(--fr-border);
}
.fr-shophero__deco {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}
.fr-shophero__deco::before {
	content: '';
	position: absolute;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	border: 2px dashed rgba(30, 92, 63, .09);
	left: -160px;
	bottom: -230px;
}
.fr-shophero__inner { position: relative; z-index: 2; display: flex; align-items: center; gap: 40px; }
.fr-shophero__testo { flex: 1 1 auto; min-width: 0; }
.fr-shophero__title {
	font-size: clamp(32px, 4.6vw, 54px);
	line-height: 1.06;
	letter-spacing: -.015em;
	color: var(--fr-green-ink);
	margin: 0;
}
.fr-shophero__descr { margin-top: 14px; max-width: 62ch; color: var(--fr-text-soft); font-size: 15.5px; line-height: 1.6; }
.fr-shophero__descr p:last-child { margin-bottom: 0; }

.fr-shophero__strumenti { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 24px; }

.fr-shophero__search {
	position: relative;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 1 1 380px;
	max-width: 520px;
	padding: 6px 6px 6px 16px;
	background: #fff;
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius-pill);
	box-shadow: 0 4px 14px rgba(18, 60, 41, .07);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.fr-shophero__search:focus-within { border-color: var(--fr-green); box-shadow: 0 6px 20px rgba(30, 92, 63, .16); }
.fr-shophero__search .fr-icon { color: var(--fr-muted); flex: 0 0 auto; }
.fr-shophero__search input[type="search"] {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	font-size: 15px;
	color: var(--fr-text);
	outline: none;
	padding: 9px 0;
}
.fr-shophero__search button {
	flex: 0 0 auto;
	border: 0;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-green);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	padding: 11px 22px;
	cursor: pointer;
	transition: background-color .18s ease;
}
.fr-shophero__search button:hover { background: var(--fr-green-deep); }

.fr-shophero__conta {
	flex: 0 0 auto;
	padding: 8px 16px;
	border-radius: var(--fr-radius-pill);
	background: rgba(30, 92, 63, .09);
	color: var(--fr-green);
	font-size: 13.5px;
	font-weight: 700;
}

.fr-shophero__foto { position: relative; flex: 0 0 auto; width: 230px; height: 230px; display: flex; align-items: center; justify-content: center; }
.fr-shophero__foto img { position: relative; z-index: 1; width: 190px; height: 190px; object-fit: contain; filter: drop-shadow(0 16px 30px rgba(18, 60, 41, .2)); }

.fr-shophero__onda { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 60px; display: block; }

/* ------------------------------------------------------------------------
   Catalogo — vetrina categorie
   ---------------------------------------------------------------------- */
.fr-shopcat { margin: 0 0 34px; }
.fr-shopcat__head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.fr-shopcat__title { font-size: clamp(19px, 2.1vw, 24px); margin: 0; color: var(--fr-green-ink); white-space: nowrap; }
.fr-shopcat__filo { flex: 1; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--fr-orange), transparent); }

.fr-shopcat__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }

.fr-shopcat__card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 12px 14px;
	border-radius: 16px;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	transition: transform .22s cubic-bezier(.22, .8, .3, 1), box-shadow .22s ease, border-color .22s ease, background-color .22s ease;
}
.fr-shopcat__card:hover {
	transform: translateY(-4px);
	border-color: var(--fr-green);
	background: #fff;
	box-shadow: 0 14px 30px rgba(18, 60, 41, .16);
}

.fr-shopcat__media {
	flex: 0 0 auto;
	width: 66px;
	height: 66px;
	border-radius: 13px;
	overflow: hidden;
	background: var(--fr-cream-2);
	display: flex;
	align-items: center;
	justify-content: center;
}
.fr-shopcat__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fr-shopcat__iniziale {
	font-family: var(--fr-display);
	font-size: 25px;
	font-weight: 600;
	color: var(--fr-green);
	opacity: .55;
}
.fr-shopcat__card--senza-foto .fr-shopcat__media { background: linear-gradient(140deg, var(--fr-cream-2), #e8e0cd); }

.fr-shopcat__testo { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fr-shopcat__nome {
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--fr-green-ink);
}
.fr-shopcat__conta { font-size: 12px; color: var(--fr-muted); }

.fr-shopcat__go { margin-left: auto; flex: 0 0 auto; color: var(--fr-border); transition: color .2s ease, transform .2s ease; }
.fr-shopcat__card:hover .fr-shopcat__go { color: var(--fr-orange); transform: translateX(3px); }

/* ------------------------------------------------------------------------
   Catalogo — barra strumenti e griglia
   ---------------------------------------------------------------------- */
.fr-shoptools {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 14px 18px;
	margin-bottom: 26px;
	border-radius: 14px;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
}
.fr-shoptools .woocommerce-result-count { margin: 0; font-size: 13.5px; color: var(--fr-text-soft); }
.fr-shoptools .woocommerce-ordering { margin: 0; }
.fr-shoptools .woocommerce-ordering select {
	padding: 9px 34px 9px 14px;
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius-pill);
	background-color: #fff;
	font-size: 13.5px;
	color: var(--fr-text);
	cursor: pointer;
}
.fr-shoptools .woocommerce-ordering select:focus { outline: 2px solid var(--fr-green); outline-offset: 1px; }

/* ------------------------------------------------------------------------
   Catalogo — nessun risultato
   ---------------------------------------------------------------------- */
.fr-shopvuoto {
	text-align: center;
	max-width: 560px;
	margin: 20px auto 40px;
	padding: 44px 30px;
	border-radius: 20px;
	background: var(--fr-cream-card);
	border: 1px dashed var(--fr-border);
}
.fr-shopvuoto__icona {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: rgba(30, 92, 63, .08);
	color: var(--fr-green);
	margin-bottom: 18px;
}
.fr-shopvuoto__title { font-size: clamp(21px, 2.4vw, 27px); margin: 0 0 10px; color: var(--fr-green-ink); }
.fr-shopvuoto__testo { font-size: 15px; line-height: 1.6; color: var(--fr-text-soft); margin: 0 auto 22px; max-width: 46ch; }
.fr-shopvuoto__azioni { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

@media (max-width: 1100px) {
	.fr-shop ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 820px) {
	.fr-shop ul.products { grid-template-columns: repeat(2, 1fr); }
	.fr-shophero__foto { display: none; }
	.fr-shopcat__grid { grid-template-columns: repeat(2, 1fr); }
	.fr-shophero { padding-bottom: 46px; }
}
@media (max-width: 560px) {
	.fr-shop ul.products { grid-template-columns: 1fr; }
	.fr-shopcat__grid { grid-template-columns: 1fr; }
	.fr-shoptools { justify-content: center; }
	.fr-shophero__search { flex-basis: 100%; }
}


/* ------------------------------------------------------------------------
   Raccordo fra sezioni
   Le fasce si alternano crema chiaro / crema scuro. Un filo sfumato in cima
   ammorbidisce il passaggio, così lo stacco non è una linea netta.
   ---------------------------------------------------------------------- */
.fr-pslider,
.fr-sped,
.fr-promo,
.fr-valori,
.fr-mappa,
.fr-home-blog,
.fr-social { position: relative; }

.fr-pslider::before,
.fr-sped::before,
.fr-promo::before,
.fr-valori::before,
.fr-mappa::before,
.fr-home-blog::before,
.fr-social::before {
	content: '';
	position: absolute;
	inset: 0 0 auto 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--fr-border) 18%, var(--fr-border) 82%, transparent);
	pointer-events: none;
}
/* Il banner spedizione arriva subito dopo uno slider dello stesso tono:
   lì il filo non serve, lo stacco lo fa già il tagliando verde. */
.fr-sped::before { opacity: .5; }

/* ------------------------------------------------------------------------
   Ricerca rapida — tendina dei suggerimenti
   ---------------------------------------------------------------------- */
.fr-livesearch { position: relative; }

.fr-live {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 8px);
	z-index: 60;
	max-height: 62vh;
	overflow-y: auto;
	background: #fff;
	border: 1px solid var(--fr-border);
	border-radius: 16px;
	box-shadow: 0 18px 40px rgba(18, 60, 41, .20);
	overscroll-behavior: contain;
}
.fr-live__lista { list-style: none; margin: 0; padding: 6px; }
.fr-live__lista li + li { border-top: 1px solid var(--fr-cream-2); }

.fr-live__lista a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 10px;
	border-radius: 11px;
	color: var(--fr-text);
	transition: background-color .14s ease;
}
.fr-live__lista a:hover,
.fr-live__lista li.is-scelto a { background: var(--fr-cream); }

.fr-live__img {
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border-radius: 9px;
	overflow: hidden;
	background: var(--fr-cream-2);
	display: flex;
	align-items: center;
	justify-content: center;
}
.fr-live__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.fr-live__vuota { width: 100%; height: 100%; background: linear-gradient(140deg, var(--fr-cream-2), #e8e0cd); }

.fr-live__testo { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.fr-live__titolo {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--fr-green-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-clamp: 2;
	overflow: hidden;
}
.fr-live__meta { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--fr-muted); }
.fr-live__esaurito { color: var(--fr-red); font-weight: 700; }

.fr-live__prezzo {
	flex: 0 0 auto;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--fr-green-ink);
	white-space: nowrap;
}

.fr-live__vuoto { margin: 0; padding: 18px; text-align: center; font-size: 14px; color: var(--fr-text-soft); }

.fr-live__tutti {
	display: block;
	padding: 12px;
	text-align: center;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--fr-green);
	background: var(--fr-cream-card);
	border-top: 1px solid var(--fr-border);
}
.fr-live__tutti:hover { background: var(--fr-green); color: #fff; }

@media (max-width: 560px) {
	.fr-live { max-height: 54vh; }
	.fr-live__prezzo { font-size: 13.5px; }
}

/* ------------------------------------------------------------------------
   Impaginazioni WooCommerce riscritte

   Abbiamo disattivato woocommerce-layout.css (colonne a float in percentuale)
   e woocommerce-smallscreen.css (che sotto i 768px rimetteva tutto in due
   colonne flottanti). Qui riscriviamo con Grid e Flexbox le impaginazioni
   che quel foglio forniva e che servono davvero.
   ---------------------------------------------------------------------- */
.woocommerce img,
.woocommerce-page img { max-width: 100%; height: auto; }

/* --- Scheda prodotto: galleria a sinistra, riepilogo a destra --- */
body.woocommerce div.product,
body.woocommerce-page div.product {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0 44px;
}
body.woocommerce div.product > *,
body.woocommerce-page div.product > * { flex: 0 0 100%; max-width: 100%; }

/*
 * Le due colonne devono sommare 100% MENO il gap, altrimenti la riga
 * trabocca: 46% + 50% + 44px su un contenitore da 900px fa 908px, la pagina
 * prende a scorrere in orizzontale e il margine sinistro sparisce.
 * Con calc() il gap è scontato dalle basi e i conti tornano sempre.
 */
body.woocommerce div.product .woocommerce-product-gallery,
body.woocommerce-page div.product .woocommerce-product-gallery {
	flex: 0 0 calc(46% - 22px);
	max-width: calc(46% - 22px);
	margin-bottom: 32px;
}
body.woocommerce div.product .summary,
body.woocommerce-page div.product .summary {
	flex: 1 1 calc(54% - 22px);
	max-width: calc(54% - 22px);
	margin-bottom: 32px;
}

/* Recensioni: elenco e modulo affiancati */
body.woocommerce #reviews #comments { flex: 1 1 46%; max-width: 48%; }
body.woocommerce #reviews #review_form_wrapper { flex: 1 1 46%; max-width: 48%; }

/* --- Coppie di colonne (indirizzi, checkout classico) --- */
.woocommerce .col2-set,
.woocommerce-page .col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	width: 100%;
}
.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: auto; }

/* --- Righe di modulo affiancate --- */
.woocommerce form .form-row,
.woocommerce-page form .form-row { display: block; float: none; width: 100%; margin: 0 0 16px; }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last,
.woocommerce-page form .form-row-first,
.woocommerce-page form .form-row-last { width: 100%; }

@media (min-width: 600px) {
	.woocommerce form .form-row-first,
	.woocommerce-page form .form-row-first { width: calc(50% - 8px); float: left; }
	.woocommerce form .form-row-last,
	.woocommerce-page form .form-row-last { width: calc(50% - 8px); float: right; }
	.woocommerce form .clear,
	.woocommerce-page form .clear { clear: both; }
}

/* --- Carrello: totali accanto ai correlati --- */
.woocommerce .cart-collaterals,
.woocommerce-page .cart-collaterals {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
	gap: 32px;
	width: 100%;
	margin-top: 34px;
}
.woocommerce .cart-collaterals > *,
.woocommerce-page .cart-collaterals > * { width: auto; float: none; }

/* --- Area cliente: menu laterale e contenuto --- */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }

/*
 * La griglia a due colonne vale SOLO nell'area riservata, cioè a utente
 * autenticato (body.logged-in). Applicata anche alla pagina di accesso
 * infilava #customer_login nella prima colonna da 250px, e la scheda
 * accesso/registrazione si riduceva a due colonnine da un centinaio di
 * pixel con le parole spezzate.
 *
 * Le posizioni sono esplicite: qualunque elemento inatteso (avvisi
 * WooCommerce, per esempio) occupa tutta la riga invece di infilarsi
 * in una colonna e sfasare tutto il resto.
 */
@media (min-width: 820px) {
	body.logged-in.woocommerce-account .woocommerce {
		display: grid;
		grid-template-columns: 262px minmax(0, 1fr);
		gap: 32px;
		align-items: start;
	}
	body.logged-in.woocommerce-account .woocommerce > * { grid-column: 1 / -1; }
	body.logged-in.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; }
	body.logged-in.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; }
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--fr-border);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 11px 4px;
	font-size: 14.5px;
	color: var(--fr-text);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--fr-green); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--fr-green); font-weight: 700; }

@media (max-width: 900px) {
	body.woocommerce div.product .woocommerce-product-gallery,
	body.woocommerce-page div.product .woocommerce-product-gallery,
	body.woocommerce div.product .summary,
	body.woocommerce-page div.product .summary { flex: 0 0 100%; max-width: 100%; }
	body.woocommerce #reviews #comments,
	body.woocommerce #reviews #review_form_wrapper { flex: 0 0 100%; max-width: 100%; }
	.woocommerce .col2-set,
	.woocommerce-page .col2-set { grid-template-columns: 1fr; }
	.woocommerce .cart-collaterals,
	.woocommerce-page .cart-collaterals { grid-template-columns: 1fr; }
}

/* Prezzo nella tendina della ricerca rapida */
.fr-live__prezzo { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.25; }
.fr-live__pieno { font-size: 11.5px; font-weight: 400; color: var(--fr-muted); text-decoration: line-through; }
.fr-live__ora { font-size: 14.5px; font-weight: 700; color: var(--fr-green-ink); }

/* ------------------------------------------------------------------------
   Scheda prodotto
   ---------------------------------------------------------------------- */
body.woocommerce div.product .product_title {
	font-size: clamp(25px, 3.2vw, 38px);
	line-height: 1.12;
	color: var(--fr-green-ink);
	margin: 0 0 14px;
}

/* Prezzo: il numero che conta grande, quello barrato piccolo sopra */
body.woocommerce div.product p.price,
body.woocommerce div.product span.price {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	line-height: 1.05;
	margin: 0 0 10px;
}
/* Prezzo pieno (nessuno sconto) */
body.woocommerce div.product p.price > .woocommerce-Price-amount {
	font-size: clamp(30px, 3.8vw, 44px);
	font-weight: 700;
	color: var(--fr-green-ink);
}
/* In offerta: il prezzo buono grande in tarocco... */
body.woocommerce div.product p.price ins {
	order: 1;
	font-size: clamp(30px, 3.8vw, 44px);
	font-weight: 700;
	color: var(--fr-red);
	text-decoration: none;
	background: transparent;
}
/* ...e il vecchio dentro una targhetta, con la riga tracciata da noi
   leggermente inclinata: si legge meglio del line-through di serie. */
body.woocommerce div.product p.price del {
	order: 2;
	position: relative;
	font-size: 19px;
	font-weight: 500;
	color: var(--fr-muted);
	opacity: 1;
	text-decoration: none;
	padding: 5px 14px;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
}
body.woocommerce div.product p.price del::after {
	content: '';
	position: absolute;
	left: 9px;
	right: 9px;
	top: 50%;
	height: 2px;
	border-radius: 2px;
	background: var(--fr-red);
	opacity: .8;
	transform: rotate(-5deg);
}

.fr-risparmio {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14px;
	color: var(--fr-text-soft);
	margin: 0 0 16px;
}
.fr-risparmio strong { color: var(--fr-red); }
.fr-risparmio__pill {
	display: inline-block;
	padding: 4px 11px;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-red);
	color: #fff;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .02em;
}

body.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--fr-text-soft);
	padding-bottom: 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--fr-border);
}

/* Disponibilità come pastiglia */
body.woocommerce div.product .stock {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 14px;
	border-radius: var(--fr-radius-pill);
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 16px;
}
body.woocommerce div.product .stock::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}
body.woocommerce div.product .stock.in-stock { background: rgba(30, 92, 63, .1); color: var(--fr-green); }
body.woocommerce div.product .stock.out-of-stock { background: rgba(200, 52, 43, .1); color: var(--fr-red); }

/* Quantità e pulsante d'acquisto */
body.woocommerce div.product form.cart {
	display: flex;
	align-items: stretch;
	gap: 12px;
	flex-wrap: wrap;
	margin: 0 0 20px;
}
body.woocommerce div.product form.cart .quantity { flex: 0 0 auto; }
body.woocommerce div.product form.cart .quantity input.qty {
	width: 84px;
	height: 100%;
	min-height: 52px;
	padding: 10px 8px;
	text-align: center;
	font-size: 16px;
	font-weight: 600;
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius-pill);
	background: #fff;
	color: var(--fr-text);
}
body.woocommerce div.product form.cart .quantity input.qty:focus {
	outline: none;
	border-color: var(--fr-green);
	box-shadow: 0 0 0 3px rgba(30, 92, 63, .14);
}
body.woocommerce div.product form.cart button.single_add_to_cart_button {
	flex: 1 1 220px;
	min-height: 52px;
	padding: 14px 30px;
	border: 0;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-red);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .18s ease, transform .12s ease, box-shadow .18s ease;
}
body.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
	background: #a92a22;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(200, 52, 43, .3);
}

/* Rassicurazioni */
.fr-prassicura { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 9px; }
.fr-prassicura li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--fr-text-soft); }
.fr-prassicura .fr-icon { color: var(--fr-green); flex: 0 0 auto; }

/* Codici e tassonomie */
.fr-pmeta { border-top: 1px solid var(--fr-border); padding-top: 18px; }
.fr-pmeta__codici { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.fr-codice {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 11px;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	font-size: 14px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--fr-green-ink);
}
.fr-codice small {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--fr-orange);
}

.fr-pmeta__riga { display: flex; gap: 12px; font-size: 13.5px; margin-bottom: 9px; align-items: baseline; }
.fr-pmeta__et {
	flex: 0 0 88px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fr-muted);
}
.fr-pmeta__val { flex: 1; min-width: 0; color: var(--fr-text-soft); }
.fr-pmeta__val a { color: var(--fr-green); }
.fr-pmeta__val a:hover { color: var(--fr-orange); }

.fr-pmeta__cats { display: flex; flex-wrap: wrap; gap: 6px; }
.fr-pmeta__cats a {
	padding: 4px 11px;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	font-size: 12.5px;
	color: var(--fr-text-soft);
}
.fr-pmeta__cats a:hover { border-color: var(--fr-green); color: var(--fr-green); }
.fr-pmeta__altre { align-self: center; font-size: 12.5px; color: var(--fr-muted); font-style: italic; }

/* Galleria */
body.woocommerce div.product .woocommerce-product-gallery__wrapper { border-radius: var(--fr-radius); overflow: hidden; }
body.woocommerce div.product .woocommerce-product-gallery img { border-radius: var(--fr-radius); background: #fff; }
body.woocommerce div.product .flex-control-thumbs { display: flex; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
body.woocommerce div.product .flex-control-thumbs li { width: 74px; }
body.woocommerce div.product .flex-control-thumbs img {
	border: 1px solid var(--fr-border);
	border-radius: 10px;
	opacity: .7;
	transition: opacity .16s ease, border-color .16s ease;
}
body.woocommerce div.product .flex-control-thumbs img:hover,
body.woocommerce div.product .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--fr-green); }

/* Schede informative */
body.woocommerce div.product .woocommerce-tabs { margin-top: 8px; }
body.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 22px;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--fr-border);
	list-style: none;
}
body.woocommerce div.product .woocommerce-tabs ul.tabs::before,
body.woocommerce div.product .woocommerce-tabs ul.tabs::after { content: none; display: none; }
body.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: var(--fr-radius-pill);
}
body.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
body.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; display: none; }
body.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 10px 20px;
	border-radius: var(--fr-radius-pill);
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	font-size: 14px;
	font-weight: 600;
	color: var(--fr-text-soft);
}
body.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
body.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	background: var(--fr-green);
	border-color: var(--fr-green);
	color: #fff;
}
body.woocommerce div.product .woocommerce-tabs .panel {
	max-width: none;
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--fr-text);
}
body.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 21px; color: var(--fr-green-ink); }

/* Correlati e up-sell */
body.woocommerce .related > h2,
body.woocommerce .up-sells > h2,
body.woocommerce .cross-sells > h2 {
	font-size: clamp(21px, 2.4vw, 27px);
	color: var(--fr-green-ink);
	margin: 0 0 20px;
}
body.woocommerce .related,
body.woocommerce .up-sells { margin-top: 44px; padding-top: 36px; border-top: 1px solid var(--fr-border); }

@media (max-width: 560px) {
	/* Quantità stretta accanto al pulsante invece che impilata:
	   il pulsante a tutta pagina e alto 52px risultava sproporzionato. */
	body.woocommerce div.product form.cart { flex-wrap: nowrap; gap: 10px; }
	body.woocommerce div.product form.cart .quantity input.qty { width: 68px; min-height: 46px; font-size: 15px; }
	body.woocommerce div.product form.cart button.single_add_to_cart_button {
		flex: 1 1 auto;
		min-height: 46px;
		padding: 12px 18px;
		font-size: 15px;
	}
	body.woocommerce div.product p.price ins,
	body.woocommerce div.product p.price > .woocommerce-Price-amount { font-size: 30px; }
	body.woocommerce div.product p.price del { font-size: 16px; }
	.fr-pmeta__riga { flex-direction: column; gap: 5px; }
	.fr-pmeta__et { flex: none; }
}

/* ------------------------------------------------------------------------
   Card prodotto negli slider e nel catalogo: titolo e prezzo più decisi
   ---------------------------------------------------------------------- */
ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
	font-size: 14.5px;
	font-weight: 700;
	color: var(--fr-green-ink);
	line-height: 1.35;
	min-height: 2.7em;
}

/* Prezzo impilato: il vecchio piccolo sopra, quello buono grande sotto */
ul.products li.product .price,
body.woocommerce ul.products li.product .price,
body.woocommerce-page ul.products li.product .price {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1px;
	line-height: 1.15;
	margin: 0;
}
ul.products li.product .price del,
body.woocommerce ul.products li.product .price del,
body.woocommerce-page ul.products li.product .price del {
	font-size: 12.5px;
	font-weight: 500;
	color: var(--fr-muted);
	opacity: 1;
	text-decoration-color: var(--fr-red);
	text-decoration-thickness: 1.5px;
}
ul.products li.product .price ins,
body.woocommerce ul.products li.product .price ins,
body.woocommerce-page ul.products li.product .price ins {
	font-size: 20px;
	font-weight: 800;
	color: var(--fr-red);
	text-decoration: none;
	background: transparent;
	letter-spacing: -.01em;
}
/* Prodotto non in offerta: prezzo unico, in verde scuro */
ul.products li.product .price > .woocommerce-Price-amount,
body.woocommerce ul.products li.product .price > .woocommerce-Price-amount {
	font-size: 20px;
	font-weight: 800;
	color: var(--fr-green-ink);
	letter-spacing: -.01em;
}

/* ------------------------------------------------------------------------
   Pulsanti WooCommerce

   Il foglio di serie li colora del viola di WooCommerce (#a46497) e del
   grigio chiaro: qui passano tutti alla palette Agrumeto. Il prefisso body
   alza la specificità quel tanto che basta per vincere senza !important.
   ---------------------------------------------------------------------- */
body.woocommerce a.button,
body.woocommerce button.button,
body.woocommerce input.button,
body.woocommerce #respond input#submit,
body.woocommerce-page a.button,
body.woocommerce-page button.button,
body.woocommerce-page input.button,
body.woocommerce-page #respond input#submit {
	background-color: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius-pill);
	color: var(--fr-green-ink);
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.2;
	padding: 12px 24px;
	text-shadow: none;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .12s ease, box-shadow .18s ease;
}
body.woocommerce a.button:hover,
body.woocommerce button.button:hover,
body.woocommerce input.button:hover,
body.woocommerce #respond input#submit:hover,
body.woocommerce-page a.button:hover,
body.woocommerce-page button.button:hover,
body.woocommerce-page input.button:hover {
	background-color: #fff;
	border-color: var(--fr-green);
	color: var(--fr-green);
}

/* Azioni principali */
body.woocommerce a.button.alt,
body.woocommerce button.button.alt,
body.woocommerce input.button.alt,
body.woocommerce #respond input#submit.alt,
body.woocommerce-page a.button.alt,
body.woocommerce-page button.button.alt,
body.woocommerce-page input.button.alt {
	background-color: var(--fr-green);
	border-color: var(--fr-green);
	color: #fff;
}
body.woocommerce a.button.alt:hover,
body.woocommerce button.button.alt:hover,
body.woocommerce input.button.alt:hover,
body.woocommerce #respond input#submit.alt:hover,
body.woocommerce-page a.button.alt:hover,
body.woocommerce-page button.button.alt:hover,
body.woocommerce-page input.button.alt:hover {
	background-color: var(--fr-green-deep);
	border-color: var(--fr-green-deep);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(30, 92, 63, .26);
}

/* Passi conclusivi dell'acquisto: tarocco, per distinguerli da tutto il resto */
body.woocommerce .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-page .wc-proceed-to-checkout a.checkout-button,
body.woocommerce #place_order,
body.woocommerce-page #place_order {
	display: block;
	width: 100%;
	background-color: var(--fr-red);
	border-color: var(--fr-red);
	color: #fff;
	font-size: 16.5px;
	padding: 16px 28px;
	text-align: center;
}
body.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-page .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce #place_order:hover,
body.woocommerce-page #place_order:hover {
	background-color: #a92a22;
	border-color: #a92a22;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(200, 52, 43, .3);
}

body.woocommerce a.button.disabled,
body.woocommerce button.button:disabled,
body.woocommerce input.button:disabled { opacity: .5; transform: none; box-shadow: none; }

/* ------------------------------------------------------------------------
   Carrello e pagamento
   ---------------------------------------------------------------------- */
body.woocommerce-cart .fr-page__title,
body.woocommerce-checkout .fr-page__title,
body.woocommerce-account .fr-page__title {
	font-size: clamp(30px, 4vw, 46px);
	line-height: 1.1;
	color: var(--fr-green-ink);
	text-align: center;
	margin-bottom: 6px;
}
body.woocommerce-cart .fr-page__title::after,
body.woocommerce-checkout .fr-page__title::after,
body.woocommerce-account .fr-page__title::after {
	content: '';
	display: block;
	width: 76px;
	height: 3px;
	margin: 16px auto 26px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--fr-orange), var(--fr-red));
}

body.woocommerce table.shop_table,
body.woocommerce-page table.shop_table {
	border: 1px solid var(--fr-border);
	border-radius: 16px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: #fff;
}
body.woocommerce table.shop_table th {
	background: var(--fr-cream-card);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--fr-green-ink);
	padding: 15px 16px;
	border: 0;
}
body.woocommerce table.shop_table td {
	padding: 16px;
	border-top: 1px solid var(--fr-border);
	border-left: 0;
	border-right: 0;
	color: var(--fr-text);
}
body.woocommerce table.shop_table .product-thumbnail img {
	width: 68px;
	height: 68px;
	object-fit: contain;
	border-radius: 10px;
	background: #fff;
	border: 1px solid var(--fr-border);
}
body.woocommerce table.cart td.product-name a { color: var(--fr-green-ink); font-weight: 600; }
body.woocommerce table.cart td.product-name a:hover { color: var(--fr-green); }
body.woocommerce a.remove {
	color: var(--fr-red);
	font-weight: 700;
	line-height: 1.4;
}
body.woocommerce a.remove:hover { background: var(--fr-red); color: #fff; }

body.woocommerce .cart_totals h2,
body.woocommerce .cross-sells h2,
body.woocommerce-checkout #order_review_heading {
	font-size: 21px;
	color: var(--fr-green-ink);
	margin: 0 0 16px;
}
body.woocommerce .cart_totals,
body.woocommerce-checkout #order_review {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 18px;
	padding: 24px;
}
body.woocommerce .cart_totals table.shop_table,
body.woocommerce-checkout #order_review table.shop_table { border: 0; background: transparent; }
body.woocommerce .cart_totals table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table th { background: transparent; padding-left: 0; }
body.woocommerce .cart_totals table.shop_table td,
body.woocommerce-checkout #order_review table.shop_table td { padding-right: 0; }
body.woocommerce .cart_totals .order-total .woocommerce-Price-amount {
	font-size: 22px;
	font-weight: 800;
	color: var(--fr-red);
}

/* Campi modulo (coupon, checkout) */
body.woocommerce form .form-row input.input-text,
body.woocommerce form .form-row textarea,
body.woocommerce form .form-row select,
body.woocommerce-page form .form-row input.input-text,
body.woocommerce-page form .form-row textarea,
body.woocommerce-page form .form-row select {
	width: 100%;
	padding: 12px 15px;
	border: 1px solid var(--fr-border);
	border-radius: 11px;
	background: #fff;
	font-size: 15px;
	color: var(--fr-text);
}
body.woocommerce form .form-row input.input-text:focus,
body.woocommerce form .form-row textarea:focus,
body.woocommerce form .form-row select:focus {
	outline: none;
	border-color: var(--fr-green);
	box-shadow: 0 0 0 3px rgba(30, 92, 63, .14);
}
body.woocommerce form .form-row label { font-size: 13.5px; font-weight: 600; color: var(--fr-text-soft); margin-bottom: 5px; display: block; }

body.woocommerce .coupon { display: flex; gap: 10px; flex-wrap: wrap; }
body.woocommerce .coupon input.input-text {
	flex: 1 1 200px;
	padding: 12px 16px;
	border: 1px solid var(--fr-border);
	border-radius: var(--fr-radius-pill);
	background: #fff;
	font-size: 14.5px;
}

/* Avvisi */
body.woocommerce .woocommerce-message,
body.woocommerce .woocommerce-info,
body.woocommerce .woocommerce-error {
	border-top: 0;
	border-left: 4px solid var(--fr-green);
	border-radius: 12px;
	background: var(--fr-cream-card);
	color: var(--fr-text);
	padding: 16px 20px;
}
body.woocommerce .woocommerce-message::before,
body.woocommerce .woocommerce-info::before { color: var(--fr-green); }
body.woocommerce .woocommerce-error { border-left-color: var(--fr-red); }
body.woocommerce .woocommerce-error::before { color: var(--fr-red); }

@media (max-width: 900px) {
	body.woocommerce div.product .woocommerce-product-gallery,
	body.woocommerce-page div.product .woocommerce-product-gallery,
	body.woocommerce div.product .summary,
	body.woocommerce-page div.product .summary { flex: 0 0 100%; max-width: 100%; }
}

/* ------------------------------------------------------------------------
   Carrello e pagamento a BLOCCHI

   I blocchi Carrello e Checkout di WooCommerce non usano le classi del
   carrello classico (.woocommerce a.button): hanno le proprie,
   .wc-block-components-button e .wp-element-button. Senza uno stile
   dichiarato per i pulsanti nel theme.json, WordPress applicava il proprio
   grigio di serie (#32373c) e il testo prendeva il colore dei link.
   ---------------------------------------------------------------------- */
.wp-element-button,
.wc-block-components-button,
.wc-block-components-button:not(.is-link) {
	border-radius: var(--fr-radius-pill);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	padding: 14px 28px;
	border: 1px solid transparent;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .12s ease, box-shadow .18s ease;
}

body .wc-block-components-button:not(.is-link),
body .wp-element-button {
	background-color: var(--fr-green);
	border-color: var(--fr-green);
	color: #fff;
}
body .wc-block-components-button:not(.is-link):hover,
body .wp-element-button:hover {
	background-color: var(--fr-green-deep);
	border-color: var(--fr-green-deep);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(30, 92, 63, .26);
}
body .wc-block-components-button:not(.is-link) .wc-block-components-button__text { color: inherit; }

/* I due passi che concludono l'acquisto: tarocco e a tutta larghezza */
body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button {
	width: 100%;
	background-color: var(--fr-red);
	border-color: var(--fr-red);
	color: #fff;
	font-size: 17px;
	padding: 17px 28px;
}
body .wc-block-cart__submit-button:hover,
body .wc-block-components-checkout-place-order-button:hover {
	background-color: #a92a22;
	border-color: #a92a22;
	box-shadow: 0 12px 26px rgba(200, 52, 43, .3);
}

/* Pulsanti "di contorno" (applica coupon, modifica indirizzo) */
body .wc-block-components-button.is-link,
body .wc-block-components-button.outlined {
	background: transparent;
	border-color: var(--fr-border);
	color: var(--fr-green);
	box-shadow: none;
}
body .wc-block-components-button.is-link { padding: 0; border: 0; text-decoration: underline; text-underline-offset: 2px; }
body .wc-block-components-button.is-link:hover { color: var(--fr-orange); background: transparent; transform: none; box-shadow: none; }

/* Riquadri e titoli dei blocchi */
.wp-block-woocommerce-cart-order-summary-block,
.wc-block-components-sidebar .wc-block-cart__totals-title,
.wc-block-components-totals-wrapper { font-family: var(--fr-body); }

.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title {
	font-family: var(--fr-display) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	letter-spacing: .01em !important;
	color: var(--fr-green-ink);
}

.wc-block-components-sidebar .wc-block-components-panel,
.wp-block-woocommerce-cart-order-summary-block {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 18px;
	padding: 22px;
}

.wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--fr-green-ink);
	font-weight: 700;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 23px;
	color: var(--fr-red);
}

/* Campi dei blocchi */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-address-form input,
.wc-block-components-form .wc-block-components-text-input input {
	border-radius: 11px;
	border-color: var(--fr-border);
	font-size: 15px;
}
.wc-block-components-text-input.is-active input:focus,
.wc-block-components-text-input input:focus {
	outline: none;
	border-color: var(--fr-green);
	box-shadow: 0 0 0 3px rgba(30, 92, 63, .14);
}

/* Prodotti nel carrello a blocchi */
.wc-block-cart-item__product .wc-block-components-product-name {
	font-weight: 700;
	color: var(--fr-green-ink);
}
.wc-block-cart-item__product .wc-block-components-product-name:hover { color: var(--fr-green); }
.wc-block-cart-item__image img {
	border-radius: 10px;
	border: 1px solid var(--fr-border);
	background: #fff;
}
.wc-block-components-product-price__value.is-discounted { color: var(--fr-red); font-weight: 700; }

@media (max-width: 560px) {
	body .wc-block-cart__submit-button,
	body .wc-block-components-checkout-place-order-button { font-size: 16px; padding: 15px 22px; }
}

/* ------------------------------------------------------------------------
   Pagina Contatti — testo a sinistra, form a destra, mappa a tutta larghezza
   ---------------------------------------------------------------------- */
.fr-contatti__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 46px;
	align-items: start;
	margin-bottom: 46px;
}
.fr-contatti__lead { font-size: 16.5px; line-height: 1.62; color: var(--fr-text-soft); max-width: 46ch; margin: 0 0 26px; }

.fr-contatti__list { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 14px; }
.fr-contatti__list li { display: flex; align-items: flex-start; gap: 14px; font-size: 15px; color: var(--fr-text); }
.fr-contatti__list li > span:last-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fr-contatti__list strong {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fr-muted);
}
.fr-contatti__ic {
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	color: var(--fr-green);
}

.fr-contatti__social { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fr-contatti__sociallab { font-size: 13px; color: var(--fr-text-soft); margin-right: 2px; }
.fr-contatti__social-link {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	color: var(--fr-green);
	transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
.fr-contatti__social-link:hover { transform: translateY(-3px); color: #fff; border-color: transparent; }
.fr-contatti__social-link--facebook:hover { background: #1877f2; }
.fr-contatti__social-link--instagram:hover { background: linear-gradient(135deg, #833ab4, #e1306c 55%, #fcaf45); }

.fr-contatti__form {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 20px;
	padding: 30px;
	box-shadow: 0 10px 30px rgba(18, 60, 41, .08);
}
.fr-contatti__formtitle { font-size: 24px; color: var(--fr-green-ink); margin: 0 0 4px; }
.fr-contatti__formsub { font-size: 14px; color: var(--fr-text-soft); margin: 0 0 20px; }

.fr-contatti__mapwrap { margin-top: 8px; }
.fr-contatti__mapwrap .fr-map-facade { border-radius: 0; min-height: 380px; }
.fr-contatti__mapwrap .fr-map-facade__overlay small {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	opacity: .8;
}

@media (max-width: 900px) {
	.fr-contatti__top { grid-template-columns: 1fr; gap: 32px; }
	.fr-contatti__mapwrap .fr-map-facade { min-height: 280px; }
}

/* ------------------------------------------------------------------------
   Blog: testata e griglia
   ---------------------------------------------------------------------- */
.fr-bloghero {
	position: relative;
	padding: 26px 0 54px;
	text-align: center;
	background:
		radial-gradient(circle at 82% 12%, rgba(224, 92, 42, .10), transparent 55%),
		linear-gradient(180deg, var(--fr-cream-card), var(--fr-cream-2));
	border-bottom: 1px solid var(--fr-border);
}
.fr-bloghero__deco { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.fr-bloghero__deco::before {
	content: '';
	position: absolute;
	width: 380px;
	height: 380px;
	border-radius: 50%;
	border: 2px dashed rgba(30, 92, 63, .09);
	left: -140px;
	top: -190px;
}
.fr-bloghero__inner { position: relative; z-index: 1; }
.fr-bloghero .fr-breadcrumb { text-align: center; margin-bottom: 16px; }
.fr-bloghero__title {
	font-size: clamp(30px, 4.4vw, 50px);
	line-height: 1.08;
	letter-spacing: -.015em;
	color: var(--fr-green-ink);
	max-width: 22ch;
	margin: 0 auto;
}
.fr-bloghero__descr {
	max-width: 62ch;
	margin: 16px auto 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--fr-text-soft);
}
.fr-bloghero__onda { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 60px; display: block; }

.fr-blog { padding: 40px 0 60px; }
.fr-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fr-blog__grid .fr-post--grande { grid-row: auto; }
.fr-blog__grid .fr-post__media { aspect-ratio: 16 / 10; }

.fr-pagination { margin-top: 44px; }
.fr-pagination .nav-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.fr-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	justify-content: center;
	border-radius: var(--fr-radius-pill);
	border: 1px solid var(--fr-border);
	background: var(--fr-cream-card);
	font-size: 14px;
	font-weight: 600;
	color: var(--fr-text);
}
.fr-pagination .page-numbers:hover { border-color: var(--fr-green); color: var(--fr-green); }
.fr-pagination .page-numbers.current { background: var(--fr-green); border-color: var(--fr-green); color: #fff; }

@media (max-width: 980px) { .fr-blog__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .fr-blog__grid { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------------
   Il mio account
   ---------------------------------------------------------------------- */
.woocommerce-account .fr-page { padding-top: 24px; }

/* Accesso e registrazione: due schede affiancate */
.woocommerce-account #customer_login.col2-set,
.woocommerce-account .u-columns#customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
	width: 100%;
	max-width: 940px;
	margin-inline: auto;
	float: none;
}
/* WooCommerce assegna alle due colonne larghezze percentuali e float:
   dentro la griglia vanno annullate, o tornano strette. */
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 {
	width: auto;
	max-width: none;
	float: none;
	margin: 0;
}
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 20px;
	padding: 30px;
	box-shadow: 0 10px 28px rgba(18, 60, 41, .07);
}
.woocommerce-account #customer_login h2 {
	font-size: 23px;
	color: var(--fr-green-ink);
	margin: 0 0 6px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--fr-border);
}
.woocommerce-account #customer_login form.login,
.woocommerce-account #customer_login form.register { border: 0; padding: 18px 0 0; margin: 0; border-radius: 0; }
.woocommerce-account #customer_login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.woocommerce-account #customer_login .woocommerce-LostPassword { margin-top: 14px; font-size: 14px; }
.woocommerce-account #customer_login .woocommerce-LostPassword a { color: var(--fr-green); }
.woocommerce-account #customer_login button.button { width: 100%; margin-top: 6px; }

/* Area riservata: menu laterale a scheda */
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 18px;
	padding: 10px;
	position: sticky;
	top: 96px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li { border: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 15px;
	border-radius: 12px;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--fr-text);
	transition: background-color .16s ease, color .16s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a::after {
	content: '›';
	font-size: 18px;
	color: var(--fr-border);
	transition: transform .16s ease, color .16s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--fr-cream);
	color: var(--fr-green);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover::after { color: var(--fr-orange); transform: translateX(3px); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--fr-green);
	color: #fff;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a::after { color: rgba(255, 255, 255, .7); }
.woocommerce-account .woocommerce-MyAccount-navigation li--customer-logout a { color: var(--fr-red); }

.woocommerce-account .woocommerce-MyAccount-content {
	background: #fff;
	border: 1px solid var(--fr-border);
	border-radius: 18px;
	padding: 30px;
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 { color: var(--fr-green-ink); }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 14px;
	padding: 20px;
}
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address { width: auto; float: none; }

@media (max-width: 820px) {
	.woocommerce-account #customer_login.col2-set { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-MyAccount-navigation { position: static; margin-bottom: 22px; }
}

/* ------------------------------------------------------------------------
   Traccia ordine
   ---------------------------------------------------------------------- */
.woocommerce form.track_order {
	max-width: 720px;
	margin: 26px auto 0;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	border-radius: 20px;
	padding: 30px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	box-shadow: 0 10px 28px rgba(18, 60, 41, .07);
}
.woocommerce form.track_order p { margin: 0; }
.woocommerce form.track_order .form-row-first,
.woocommerce form.track_order .form-row-last { width: 100%; float: none; }
.woocommerce form.track_order .form-row-wide,
.woocommerce form.track_order p.form-row:last-of-type { grid-column: 1 / -1; }
.woocommerce form.track_order button.button { width: 100%; }

@media (max-width: 620px) {
	.woocommerce form.track_order { grid-template-columns: 1fr; padding: 22px; }
}

/* ------------------------------------------------------------------------
   Testo introduttivo della pagina negozio
   (sulle categorie la descrizione sta nella testata: qui è il contenuto
   della pagina, e merita di respirare sopra la vetrina dei reparti)
   ---------------------------------------------------------------------- */
.fr-shop .term-description,
.fr-shop .woocommerce-product-archive-description,
.fr-shop > .page-description {
	max-width: 78ch;
	margin: 0 0 30px;
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--fr-text-soft);
}
.fr-shop .term-description p:last-child { margin-bottom: 0; }

/* Il contenuto della pagina negozio esce senza contenitore proprio:
   gli diamo lo stesso respiro delle altre sezioni del catalogo. */
.fr-shop__main > p,
.fr-shop__main > .woocommerce-products-header + p {
	max-width: 78ch;
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--fr-text-soft);
}

/* Contatti senza mappa: il blocco respira di più in fondo */
.fr-contatti { padding-bottom: 56px; }

/* ------------------------------------------------------------------------
   Marchi — vetrina nel catalogo e pagina dedicata
   ---------------------------------------------------------------------- */
.fr-marchi { margin: 0 0 36px; }
.fr-marchi__head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.fr-marchi__title { font-size: clamp(19px, 2.1vw, 24px); margin: 0; color: var(--fr-green-ink); white-space: nowrap; }
.fr-marchi__filo { flex: 1; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--fr-green), transparent); }

.fr-marchi__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 14px;
}

.fr-marchio {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 16px 12px 14px;
	text-align: center;
	border-radius: 16px;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	transition: transform .22s cubic-bezier(.22, .8, .3, 1), box-shadow .22s ease, border-color .22s ease, background-color .22s ease;
}
.fr-marchio:hover {
	transform: translateY(-4px);
	background: #fff;
	border-color: var(--fr-green);
	box-shadow: 0 14px 30px rgba(18, 60, 41, .15);
}

.fr-marchio__box {
	width: 100%;
	aspect-ratio: 3 / 2;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 11px;
	background: #fff;
	border: 1px solid var(--fr-border);
	overflow: hidden;
	padding: 8px;
}
.fr-marchio__box img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }

/*
 * Targhetta tipografica per i marchi senza logo: sono la maggioranza in un
 * catalogo di farmacia, e un riquadro vuoto farebbe peggio di una sigla.
 */
.fr-marchio--testo .fr-marchio__box {
	background: linear-gradient(140deg, var(--fr-cream), #ece3d1);
	border-color: transparent;
}
.fr-marchio__sigla {
	font-family: var(--fr-display);
	font-size: clamp(20px, 2.4vw, 27px);
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--fr-green);
	opacity: .72;
}
.fr-marchio:hover .fr-marchio__sigla { opacity: 1; }

.fr-marchio__nome {
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--fr-green-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-clamp: 2;
	overflow: hidden;
}
.fr-marchio__conta { font-size: 11.5px; color: var(--fr-muted); }

/* Pagina dedicata */
.fr-marchipag { padding: 34px 0 60px; }

.fr-alfabeto {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	padding: 16px;
	margin-bottom: 34px;
	border-radius: 16px;
	background: var(--fr-cream-card);
	border: 1px solid var(--fr-border);
	position: sticky;
	top: 88px;
	z-index: 20;
}
.fr-alfabeto a,
.fr-alfabeto span {
	min-width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	font-size: 14px;
	font-weight: 700;
}
.fr-alfabeto a { color: var(--fr-green); background: #fff; border: 1px solid var(--fr-border); }
.fr-alfabeto a:hover { background: var(--fr-green); border-color: var(--fr-green); color: #fff; }
.fr-alfabeto span { color: var(--fr-border); }

.fr-marchigruppo { margin-bottom: 40px; scroll-margin-top: 150px; }
.fr-marchigruppo__lettera {
	font-size: 26px;
	color: var(--fr-green-ink);
	margin: 0 0 16px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--fr-border);
	position: relative;
}
.fr-marchigruppo__lettera::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 54px;
	height: 2px;
	background: var(--fr-orange);
}

@media (max-width: 1100px) { .fr-marchi__grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 760px)  { .fr-marchi__grid { grid-template-columns: repeat(3, 1fr); } .fr-alfabeto { position: static; } }
@media (max-width: 480px)  { .fr-marchi__grid { grid-template-columns: repeat(2, 1fr); } }
