/* ============================================================
   Landolfi Elementor — stili condivisi dei widget
   I valori qui sono i DEFAULT. Ogni widget espone controlli
   nella tab "Stile" che li sovrascrivono via {{WRAPPER}}.
   ============================================================ */

:root {
	--lnd-marrone: #3c1b12;
	--lnd-sabbia:  #d4c59e;
	--lnd-beige:   #fffcf1;
	--lnd-beige2:  #f7f3e4;
	--lnd-black:   #1d1d1b;
	--lnd-f-serif: 'Cormorant Garamond', Georgia, serif;
	--lnd-f-sans:  'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	--lnd-ease:     cubic-bezier(0.76, 0, 0.24, 1);
	--lnd-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/* --- Reset locale ai soli widget Landolfi --- */
[class^="lnd-"] *,
[class^="lnd-"] *::before,
[class^="lnd-"] *::after { box-sizing: border-box; }

/* Sfondo beige per le pagine fullbleed (home + chi siamo) — riempie le aree
   tra sezioni Elementor non colorate (es. wrapper del titolo "featured intro"). */
body.landolfi-hero-page,
body.page-fullbleed { background: var(--lnd-beige); }
/* Pagine "interne": bg beige (no padding-top, contenuto fullbleed sotto navbar). */
body.landolfi-inner-page { background: var(--lnd-beige); }
/* Padding reserva-navbar solo per single post (testo) e pagine non Elementor. */
body.landolfi-inner-page.single-post,
body.landolfi-inner-page.page-template-default:not(.elementor-page) { padding-top: 72px; }

/* ============================================================
   Sistema scroll-reveal
   ============================================================ */
.lnd-reveal        { opacity: 0; transform: translateY(64px); }
.lnd-reveal-left   { opacity: 0; transform: translateX(-64px); }
.lnd-reveal-right  { opacity: 0; transform: translateX(64px); }
.lnd-reveal-scale  { opacity: 0; transform: scale(0.94); }
.lnd-reveal,
.lnd-reveal-left,
.lnd-reveal-right,
.lnd-reveal-scale {
	transition: opacity 1s var(--lnd-ease-out), transform 1s var(--lnd-ease-out);
	transition-delay: var(--lnd-d, 0s);
	will-change: opacity, transform;
}
.lnd-reveal.is-visible,
.lnd-reveal-left.is-visible,
.lnd-reveal-right.is-visible,
.lnd-reveal-scale.is-visible { opacity: 1 !important; transform: none !important; }

/* Reveal immagine a tendina */
.lnd-reveal-img { position: relative; overflow: hidden; }
.lnd-reveal-img::after {
	content: ''; position: absolute; inset: 0; z-index: 2;
	background: var(--lnd-beige); transform-origin: top; transform: scaleY(1);
	transition: transform 1.2s var(--lnd-ease);
}
.lnd-reveal-img.is-visible::after { transform: scaleY(0); }

/* ============================================================
   Sistema CTA (riempimento da sinistra)
   ============================================================ */
.lnd-cta {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	padding: 18px 48px; overflow: hidden; cursor: pointer;
	font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 400;
	letter-spacing: 2.8px; text-transform: uppercase; text-decoration: none;
	border: 1px solid var(--lnd-marrone); background: transparent; color: var(--lnd-marrone);
	transition: color .5s var(--lnd-ease);
}
.lnd-cta::before {
	content: ''; position: absolute; inset: 0; z-index: 0;
	background: var(--lnd-marrone); transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--lnd-ease);
}
.lnd-cta > span { position: relative; z-index: 1; }
.lnd-cta:hover { color: var(--lnd-beige); }
.lnd-cta:hover::before { transform: scaleX(1); }

/* Variante chiara (su sfondo scuro) */
.lnd-cta--light { border-color: rgba(255,255,255,0.6); color: rgba(255,255,255,0.85); }
.lnd-cta--light::before { background: #fff; }
.lnd-cta--light:hover { color: var(--lnd-marrone); }

/* Variante piena (sabbia) */
.lnd-cta--solid { border-color: var(--lnd-sabbia); background: var(--lnd-sabbia); color: var(--lnd-marrone); }
.lnd-cta--solid::before { background: var(--lnd-marrone); }
.lnd-cta--solid:hover { color: var(--lnd-beige); }

/* ============================================================
   1. HERO
   ============================================================ */
.lnd-hero {
	position: relative; width: 100%; min-height: 680px; height: 100vh;
	overflow: hidden; background: #0e0704;
}
.lnd-hero__bg {
	position: absolute; inset: 0; width: 100%; height: 110%;
	object-fit: cover; object-position: center; will-change: transform; z-index: 0;
}
.lnd-hero__overlay {
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(180deg, rgba(10,5,2,.25) 0%, rgba(10,5,2,.15) 50%, rgba(10,5,2,.5) 100%);
}
.lnd-hero__content {
	position: relative; z-index: 2; height: 100%;
	display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
	gap: 24px; padding: 0 200px 2vh;
}
.lnd-hero__title { margin: 0; }
.lnd-hero__line { overflow: hidden; }
.lnd-hero__line-inner {
	display: block; transform: translateY(100%);
	transition: transform 1.2s var(--lnd-ease-out);
	font-family: var(--lnd-f-serif); font-weight: 300; line-height: 1.15;
	font-size: clamp(48px, 7vw, 104px); letter-spacing: -2px; color: #fff;
}
.lnd-hero__sub, .lnd-hero__cta-wrap { overflow: hidden; }
.lnd-hero__sub-inner, .lnd-hero__cta-inner {
	display: block; transform: translateY(100%);
	transition: transform 1s var(--lnd-ease-out);
}
.lnd-hero__sub-inner {
	max-width: 520px; font-family: var(--lnd-f-sans); font-size: 15px;
	font-weight: 300; line-height: 1.7; letter-spacing: .3px;
	color: rgba(255,255,255,.75);
}
.lnd-hero.is-ready .lnd-hero__line-inner,
.lnd-hero.is-ready .lnd-hero__sub-inner,
.lnd-hero.is-ready .lnd-hero__cta-inner { transform: translateY(0); }
.lnd-hero.is-ready .lnd-hero__line:nth-child(2) .lnd-hero__line-inner { transition-delay: .12s; }
.lnd-hero.is-ready .lnd-hero__sub-inner { transition-delay: .4s; }
.lnd-hero.is-ready .lnd-hero__cta-inner { transition-delay: .55s; }
.lnd-hero__scroll {
	position: absolute; bottom: 40px; right: 100px; z-index: 2;
	display: flex; flex-direction: column; align-items: center; gap: 14px;
	opacity: 0; transition: opacity 1s ease 1.5s;
}
.lnd-hero.is-ready .lnd-hero__scroll { opacity: 1; }
.lnd-hero__scroll-line { position: relative; width: 1px; height: 60px; background: rgba(255,255,255,.25); overflow: hidden; }
.lnd-hero__scroll-line::after {
	content: ''; position: absolute; left: 0; top: -100%; width: 100%; height: 100%;
	background: #fff; animation: lnd-scrolldrop 1.8s var(--lnd-ease) infinite;
}
@keyframes lnd-scrolldrop { to { top: 100%; } }
.lnd-hero__scroll span {
	writing-mode: vertical-rl; font-family: var(--lnd-f-sans);
	font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: #fff;
}

/* ============================================================
   2. MARQUEE PARTNER
   ============================================================ */
.lnd-marquee { width: 100%; overflow: hidden; padding: 52px 0; background: var(--lnd-beige); border-bottom: 1px solid rgba(60,27,18,.06); }
.lnd-marquee__track { display: flex; width: max-content; gap: 80px; animation: lnd-marquee 30s linear infinite; }
.lnd-marquee__item { flex: none; display: flex; align-items: center; }
.lnd-marquee__item img {
	display: block; width: auto; height: 30px;
	filter: grayscale(1); opacity: .4; pointer-events: none;
}
@keyframes lnd-marquee { to { transform: translateX(-50%); } }

/* ============================================================
   3. FEATURED SLIDER PRODOTTI
   ============================================================ */
.lnd-fslider { position: relative; display: flex; align-items: center; gap: 40px; padding: 80px 160px; background: var(--lnd-beige); overflow: hidden; }
.lnd-fslider__deco { position: absolute; inset: 0; z-index: 0; opacity: .1; background-size: cover; background-position: center; mix-blend-mode: multiply; pointer-events: none; }
.lnd-fslider__col { position: relative; z-index: 1; }
.lnd-fslider__left  { flex: 0 0 38%; display: flex; flex-direction: column; gap: 20px; }
.lnd-fslider__mid   { flex: 0 0 28%; display: flex; justify-content: center; }
.lnd-fslider__right { flex: 0 0 34%; display: flex; justify-content: flex-end; }
.lnd-fslider__counter { font-family: var(--lnd-f-sans); font-size: 12px; letter-spacing: 2px; color: rgba(60,27,18,.55); }
.lnd-fslider__counter b { font-size: 20px; color: var(--lnd-marrone); }
.lnd-fslider__name { font-family: var(--lnd-f-serif); font-size: 38px; font-weight: 300; line-height: 1.1; color: var(--lnd-marrone); margin: 0; }
.lnd-fslider__desc { font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300; line-height: 1.7; color: rgba(60,27,18,.7); }
.lnd-fslider__img { width: 200px; height: 360px; object-fit: contain; }
.lnd-fslider__arrows { display: flex; gap: 12px; align-items: center; margin-top: 12px; }
button.lnd-fslider__arrow,
.lnd-fslider__arrow {
	width: 36px !important;
	height: 36px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: 1px solid rgba(60,27,18,.2) !important;
	border-radius: 50% !important;
	box-shadow: none !important;
	outline: none;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: var(--lnd-marrone) !important;
	cursor: pointer;
	font-size: 0 !important;
	line-height: 1 !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	transition: background .25s var(--lnd-ease), color .25s var(--lnd-ease), border-color .25s var(--lnd-ease), transform .25s var(--lnd-ease) !important;
}
.lnd-fslider__arrow:hover {
	background: var(--lnd-marrone) !important;
	color: var(--lnd-beige) !important;
	border-color: var(--lnd-marrone) !important;
}
.lnd-fslider__arrow svg {
	width: 16px !important;
	height: 16px !important;
	stroke: currentColor !important;
	fill: none !important;
	display: block !important;
}
.lnd-fslider__arrow--prev:hover { transform: translateX(-3px) !important; }
.lnd-fslider__arrow--next:hover { transform: translateX(3px) !important; }
.lnd-fslider__fade { transition: opacity .3s var(--lnd-ease), transform .3s var(--lnd-ease); }
.lnd-fslider.is-swapping .lnd-fslider__fade { opacity: 0; transform: translateY(-14px); }

/* ============================================================
   4. FAN — LE LINEE
   ============================================================ */
.lnd-fan-sec { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 40px; min-height: 680px; padding: 0 120px; background: var(--lnd-beige2); }
.lnd-fan-sec__txt { display: flex; flex-direction: column; gap: 18px; }
.lnd-fan-sec__txt--right { align-items: flex-start; }
.lnd-fan-sec__eyebrow { font-family: var(--lnd-f-sans); font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: rgba(60,27,18,.6); }
.lnd-fan-sec__title { font-family: var(--lnd-f-serif); font-weight: 300; font-size: clamp(34px,3.6vw,52px); line-height: 1.15; letter-spacing: -.5px; color: var(--lnd-marrone); margin: 0; }
.lnd-fan-sec__title em { font-style: italic; }
.lnd-fan-sec__desc { font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300; line-height: 1.7; color: rgba(60,27,18,.7); max-width: 320px; }
.lnd-fan { position: relative; width: 240px; height: 360px; }
.lnd-fan__card {
	position: absolute; left: 50%; bottom: 0; width: 240px; height: 360px;
	transform: translateX(-50%); transform-origin: center bottom;
	transition: transform .8s var(--lnd-ease-out);
}
.lnd-fan__card img { width: 100%; height: 100%; object-fit: contain; }
.lnd-fan__card:nth-child(1) { z-index: 3; }
.lnd-fan__card:nth-child(2) { z-index: 2; }
.lnd-fan__card:nth-child(3) { z-index: 1; }
.lnd-fan:hover .lnd-fan__card:nth-child(2) { transform: translate(-50%,-60px) rotate(28deg); }
.lnd-fan:hover .lnd-fan__card:nth-child(3) { transform: translate(-50%,-60px) rotate(-28deg); }

/* ============================================================
   5. LPROD — SLIDER A TAB
   ============================================================ */
.lnd-lprod { display: flex; flex-direction: column; height: calc(100vh - 72px); min-height: 620px; }
.lnd-lprod__stage { position: relative; flex: 1; overflow: hidden; }
.lnd-lprod__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: left; }
.lnd-lprod__content {
	position: absolute; right: 8%; top: 50%; transform: translateY(-50%); z-index: 2;
	max-width: 380px; display: flex; flex-direction: column; gap: 18px;
}
.lnd-lprod__eyebrow { font-family: var(--lnd-f-sans); font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: rgba(60,27,18,.6); }
.lnd-lprod__name { font-family: var(--lnd-f-serif); font-size: 40px; font-weight: 300; line-height: 1.1; color: var(--lnd-marrone); margin: 0; }
.lnd-lprod__desc { font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300; line-height: 1.7; color: rgba(60,27,18,.75); }
.lnd-lprod__stage--dark .lnd-lprod__name { color: #fff; }
.lnd-lprod__stage--dark .lnd-lprod__desc { color: rgba(255,255,255,.75); }
.lnd-lprod__stage--dark .lnd-lprod__eyebrow { color: rgba(255,255,255,.6); }
.lnd-lprod__stage--dark .lnd-cta { border-color: #fff; color: #fff; }
.lnd-lprod__stage--dark .lnd-cta::before { background: #fff; }
.lnd-lprod__stage--dark .lnd-cta:hover { color: var(--lnd-marrone); }
button.lnd-lprod__nav,
.lnd-lprod__nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 3 !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border: 1px solid rgba(60,27,18,.2) !important;
    background: transparent !important;
    color: var(--lnd-marrone) !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    font-size: 0 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition: background .25s var(--lnd-ease), color .25s var(--lnd-ease), border-color .25s var(--lnd-ease), transform .25s var(--lnd-ease) !important;
}
.lnd-lprod__nav svg {
    width: 16px !important;
    height: 16px !important;
    stroke-width: 1.8 !important;
    stroke: currentColor !important;
    fill: none !important;
    display: block !important;
}
.lnd-lprod__nav:hover {
    background: var(--lnd-marrone) !important;
    color: var(--lnd-beige) !important;
    border-color: var(--lnd-marrone) !important;
}
.lnd-lprod__nav--prev { left: 28px; }
.lnd-lprod__nav--next { right: 28px; }
.lnd-lprod__nav--prev:hover { transform: translateY(-50%) translateX(-3px) !important; }
.lnd-lprod__nav--next:hover { transform: translateY(-50%) translateX(3px) !important; }
/* Variante dark: invertire — outline bianco su sfondo scuro. */
.lnd-lprod__stage--dark .lnd-lprod__nav {
    border-color: rgba(255,255,255,.45) !important;
    color: #fff !important;
}
.lnd-lprod__stage--dark .lnd-lprod__nav:hover {
    background: #fff !important;
    color: var(--lnd-marrone) !important;
    border-color: #fff !important;
}
.lnd-lprod__fade { transition: opacity .45s var(--lnd-ease), transform .45s var(--lnd-ease); }
.lnd-lprod.is-swapping .lnd-lprod__fade { opacity: 0; transform: translateY(10px); }
.lnd-lprod__tabs { display: flex; border-top: 1px solid rgba(60,27,18,.1); background: var(--lnd-beige); }
.lnd-lprod__tab {
    flex: 1;
    padding: 22px 12px !important;
    border: none !important;
    background: transparent;
    font-family: var(--lnd-f-sans);
    font-size: 11px !important;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(60,27,18,.55) !important;
    border-top: 2px solid transparent;
    margin-top: -1px;
    transition: color .3s !important;
}
button.lnd-lprod__tab.is-active { color: var(--lnd-marrone); border-top-color: var(--lnd-marrone); }
button.lnd-lprod__tab.is-active {
    border-top: 2px solid black !important;
    border-radius: 0px;
    color: black !important;
	font-weight: 500;}
button.lnd-lprod__tab:hover,button.lnd-lprod__tab:focus{
	background:transparent !important;
}
/* ============================================================
   6. BOX DEGUSTAZIONE — card parallax
   ============================================================ */
.lnd-boxes { display: flex; flex-direction: column; align-items: center; gap: 64px; padding: 140px 160px; background: var(--lnd-beige); }
.lnd-boxes__title { font-family: var(--lnd-f-serif); font-weight: 300; font-size: 40px; line-height: 1.15; color: var(--lnd-marrone); text-align: center; margin: 0; }
.lnd-boxes__title em { font-style: italic; }
.lnd-boxes__grid { display: flex; gap: 16px; width: 100%; }
.lnd-box { position: relative; flex: 1; }
.lnd-box::before { content: ''; position: absolute; inset: 0; z-index: 3; border: 2px solid #000; opacity: 0; transition: opacity .5s var(--lnd-ease); pointer-events: none; }
.lnd-box:hover::before { opacity: 1; }
.lnd-box__mask { position: relative; height: 560px; overflow: hidden; clip-path: polygon(0% 100%,100% 100%,100% 100%,0% 100%); transition: clip-path 1s var(--lnd-ease); }
.lnd-box__mask.is-revealed { clip-path: polygon(0% 0%,100% 0%,100% 100%,0% 100%); }
.lnd-box__img-inner { position: absolute; top: -10%; bottom: -10%; left: 0; right: 0; will-change: transform; }
.lnd-box__bg { width: 100%; height: 100%; object-fit: cover; }
.lnd-box__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(10,5,2,.65) 0%, rgba(10,5,2,0) 60%); }
.lnd-box__content { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 40px; display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.lnd-box__name { font-family: var(--lnd-f-serif); font-style: italic; font-weight: 300; font-size: 34px; line-height: 1.1; color: #fff; margin: 0; }

/* ============================================================
   7. NEWS
   ============================================================ */
.lnd-news { display: flex; flex-direction: column; align-items: center; gap: 64px; padding: 140px 160px; background: var(--lnd-beige2); }
.lnd-news__title { font-family: var(--lnd-f-serif); font-weight: 300; font-size: 40px; line-height: 1.15; color: var(--lnd-marrone); text-align: center; max-width: 900px; margin: 0; }
.lnd-news__title em { font-style: italic; }
.lnd-news__grid { display: flex; gap: 24px; width: 100%; }
.lnd-news-card { flex: 1; display: flex; flex-direction: column; gap: 28px; cursor: pointer; }
.lnd-news-card__img { height: 280px; overflow: hidden; position: relative; }
.lnd-news-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--lnd-ease); }
.lnd-news-card:hover .lnd-news-card__img img { transform: scale(1.06); }
.lnd-news-card__divider { width: 100%; height: 1px; background: rgba(60,27,18,.12); }
.lnd-news-card__label { font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400; letter-spacing: 2.5px; text-transform: uppercase; color: rgba(60,27,18,.45); margin: 0; }
.lnd-news-card__name { font-family: var(--lnd-f-serif); font-size: 26px; font-weight: 300; line-height: 1.35; color: var(--lnd-marrone); margin: 0; }

/* ============================================================
   8. RECENSIONI
   ============================================================ */
.lnd-reviews { display: flex; flex-direction: column; align-items: center; gap: 72px; padding: 140px 160px; background: var(--lnd-beige); }
.lnd-reviews__title { font-family: var(--lnd-f-serif); font-style: italic; font-weight: 300; font-size: 40px; line-height: 1.15; color: var(--lnd-marrone); text-align: center; margin: 0; }
.lnd-reviews__grid { display: flex; gap: 24px; width: 100%; }
.lnd-review { flex: 1; display: flex; flex-direction: column; gap: 24px; border: 1px solid rgba(60,27,18,.12); padding: 48px 36px; transition: border-color .4s var(--lnd-ease), transform .5s var(--lnd-ease); }
.lnd-review:hover { border-color: var(--lnd-sabbia); transform: translateY(-6px); }
.lnd-review__name { font-family: var(--lnd-f-serif); font-size: 24px; font-weight: 300; line-height: 1.3; color: var(--lnd-marrone); margin: 0; }
.lnd-review__stars { display: flex; gap: 3px; align-items: center; color: var(--lnd-sabbia); font-size: 22px; }
.lnd-review__text { font-family: var(--lnd-f-sans); font-size: 12px; font-weight: 300; line-height: 1.2; color: rgba(60,27,18,.55); margin: 0; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1200px) {
	.lnd-hero__content { padding: 0 80px 100px; }
	.lnd-fslider { padding: 80px 80px; }
	.lnd-fan-sec, .lnd-boxes, .lnd-news, .lnd-reviews { padding-left: 80px; padding-right: 80px; }
}
@media (max-width: 900px) {
	.lnd-hero__scroll { display: none; }
	.lnd-fslider { flex-direction: column; gap: 24px; padding: 60px 40px; text-align: center; align-items: center; }
	.lnd-fslider__left, .lnd-fslider__mid, .lnd-fslider__right { flex: 1 1 100%; width: 100%; }
	.lnd-fslider__left { order: 1; align-items: center; }
	.lnd-fslider__mid  { order: 2; }
	.lnd-fslider__right { order: 3; justify-content: center; }
	.lnd-fslider__name { font-size: clamp(26px, 5vw, 32px); }
	.lnd-fslider__desc { font-size: 14px; max-width: 480px; margin: 0 auto; }
	.lnd-fslider__img  { width: 160px; height: 260px; }
	.lnd-fslider__arrows { justify-content: center; }
	.lnd-fan-sec { grid-template-columns: 1fr; min-height: 0; gap: 48px; padding: 80px 40px; }
	.lnd-fan { margin: 0 auto; }
	.lnd-lprod { height: auto; }
	.lnd-lprod__stage { height: 70vh; }
	.lnd-lprod__content { position: static; transform: none; right: auto; max-width: none; padding: 32px 40px; }
	.lnd-boxes__grid, .lnd-news__grid, .lnd-reviews__grid { flex-direction: column; }
}
@media (max-width: 600px) {
	.lnd-hero__content { padding: 0 24px 80px; }
	.lnd-fslider, .lnd-fan-sec, .lnd-boxes, .lnd-news, .lnd-reviews { padding-left: 24px; padding-right: 24px; }
	.lnd-fslider { padding: 48px 20px; }
	.lnd-fslider__name { font-size: clamp(22px, 7vw, 28px); }
	.lnd-fslider__desc { font-size: 13px; }
	.lnd-fslider__img  { width: 140px; height: 220px; }
	.lnd-fslider__arrow,
	.lnd-fslider__arrow svg { width: 36px !important; height: 36px !important; }
	.lnd-fslider__counter { font-size: 11px; }
	.lnd-fslider__counter b { font-size: 16px; }
	.lnd-cta { padding: 16px 28px; font-size: 10px; letter-spacing: 2px; }
}

/* ============================================================
   9. BRAND STORY
   ============================================================ */
.lnd-brand { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 80px; padding: 200px 200px 140px; margin-top: 130px; background: var(--lnd-beige) url('/wp-content/uploads/2026/05/back.png') center center / contain no-repeat; }
.lnd-brand__logo { height: 54px; width: auto; object-fit: contain; }
.lnd-brand__title { font-family: var(--lnd-f-serif); font-weight: 300; font-size: 40px; line-height: 1.15; letter-spacing: -.5px; color: var(--lnd-marrone); max-width: 940px; margin: 0; }
.lnd-brand__title em { font-style: italic; }
.lnd-brand__cols { display: flex; align-items: stretch; justify-content: center; gap: 0; max-width: 860px; width: 100%; }
.lnd-brand__col { flex: 1; padding: 0 40px; display: flex; flex-direction: column; align-items: center; gap: 10px; border-right: 1px solid rgba(60,27,18,.12); }
.lnd-brand__col:last-child { border-right: none; }
.lnd-brand__col-title { font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400; letter-spacing: 3px; text-transform: uppercase; color: var(--lnd-marrone); }
.lnd-brand__col-text { font-family: var(--lnd-f-serif); font-style: italic; font-size: 20px; font-weight: 300; line-height: 1.4; color: var(--lnd-marrone); text-align: center; }
.lnd-brand__desc { font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300; line-height: 1.2; color: rgba(60,27,18,.58); max-width: 800px; }

/* ============================================================
   10. PASSIONE
   ============================================================ */
.lnd-passione { width: 100%; }
.lnd-passione__img { width: 100%; height: 580px; }
.lnd-passione__img img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.lnd-passione__text { display: grid; grid-template-columns: 1fr 1fr; gap: 120px; padding: 100px 160px; align-items: start; }
.lnd-passione__title { font-family: var(--lnd-f-serif); font-style: italic; font-weight: 300; font-size: clamp(36px,3.8vw,56px); line-height: 1.1; color: var(--lnd-marrone); margin: 0; }
.lnd-passione__body { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.lnd-passione__body p { font-family: var(--lnd-f-sans); font-size: 14px; font-weight: 300; line-height: 1.8; color: rgba(60,27,18,.72); margin: 0; }

@media (max-width: 1200px) {
	.lnd-brand { padding: 100px 80px; }
	.lnd-passione__text { padding: 80px 80px; gap: 60px; }
}
@media (max-width: 900px) {
	.lnd-brand { padding: 80px 40px; }
	.lnd-brand__cols { flex-direction: column; }
	.lnd-brand__col { border-right: none; border-bottom: 1px solid rgba(60,27,18,.12); padding: 22px 0; }
	.lnd-brand__col:last-child { border-bottom: none; }
	.lnd-passione__img { height: 380px; }
	.lnd-passione__text { grid-template-columns: 1fr; gap: 32px; padding: 64px 40px; }
}
@media (max-width: 600px) {
	.lnd-brand { padding: 64px 24px; }
	.lnd-passione__text { padding: 48px 24px; }
}

/* ============================================================
   NAVBAR (header fullbleed)
   ============================================================ */
.navbar {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	height: 88px; display: flex; align-items: center;
	background: transparent;
	border-bottom: 1px solid transparent;
	transition: background .4s var(--lnd-ease), height .4s var(--lnd-ease), border-color .4s var(--lnd-ease);
}
.navbar.scrolled,
.navbar.navbar--solid {
	background: var(--lnd-beige);
	height: 72px;
	border-bottom-color: rgba(60,27,18,.12);
}
.navbar__inner {
	width: 100%; padding: 0 60px;
	display: grid; grid-template-columns: 1fr auto 1fr;
	align-items: center; gap: 0; position: relative;
}
.navbar__menu { display: flex; }
.navbar__menu--left { justify-content: flex-end; }
.navbar__menu--right { justify-content: flex-start; }
.navbar__list { display: flex; gap: 56px; list-style: none; margin: 0; padding: 0; }
.navbar__list li { position: relative; }
.navbar__list li a {
	position: relative; display: inline-block; padding-bottom: 6px;
	font-family: var(--lnd-f-sans); font-size: 12px; font-weight: 400;
	letter-spacing: 2px; text-transform: uppercase; text-decoration: none;
	color: #fff; opacity: 1; transition: color .3s var(--lnd-ease);
}
#navbar.navbar.scrolled .navbar__list li a,
#navbar.navbar.navbar--solid .navbar__list li a { color: var(--lnd-marrone) !important; }
.navbar__list li a::after {
	content: ''; position: absolute; left: 0; bottom: 0;
	width: 100%; height: 2px; background: currentColor;
	transform: scaleX(0); transform-origin: left;
	transition: transform .4s var(--lnd-ease);
	pointer-events: none;
}
.navbar__list li a:hover::after,
.navbar__list li.current-menu-item > a::after,
.navbar__list li.current_page_item > a::after,
.navbar__list li.current-menu-ancestor > a::after,
.navbar__list li.current-page-ancestor > a::after { transform: scaleX(1); }
.navbar__list li.current-menu-item > a::after,
.navbar__list li.current_page_item > a::after,
.navbar__list li.current-menu-ancestor > a::after,
.navbar__list li.current-page-ancestor > a::after { transition: none; }
.navbar__logo { display: block; height: 56px; position: relative; transition: height .4s var(--lnd-ease); margin: 0 64px; }
.navbar__logo img { display: block; height: 100%; width: auto; transition: opacity .4s var(--lnd-ease); }
.navbar__logo .nav-logo-dark { position: absolute; inset: 0; opacity: 0; }
.navbar__logo .nav-logo-white { filter: brightness(0) invert(1); }
#navbar.navbar.scrolled .navbar__logo .nav-logo-dark,
#navbar.navbar.navbar--solid .navbar__logo .nav-logo-dark { filter: none; }
#navbar.navbar.scrolled .navbar__logo .nav-logo-white,
#navbar.navbar.navbar--solid .navbar__logo .nav-logo-white { opacity: 0; }
#navbar.navbar.scrolled .navbar__logo .nav-logo-dark,
#navbar.navbar.navbar--solid .navbar__logo .nav-logo-dark  { opacity: 1; }
#navbar.navbar.scrolled .navbar__logo,
#navbar.navbar.navbar--solid .navbar__logo { height: 44px; }
.navbar__cart {
	position: absolute; right: 60px; top: 50%; transform: translateY(-50%);
	display: flex; align-items: center;
}
.navbar__cart .cart-icon { color: #fff; position: relative; display: inline-flex; cursor: pointer; }
.navbar.scrolled .navbar__cart .cart-icon,
.navbar.navbar--solid .navbar__cart .cart-icon { color: var(--lnd-marrone); }
/* Override esplicito quando navbar è trasparente (hero, no scroll). */
body.navbar-transparent .navbar__cart .cart-icon { color: #fff !important; }
body.navbar-transparent .navbar__cart .cart-icon svg { stroke: #fff !important; }
.navbar__cart .cart-count {
	position: absolute; top: -6px; right: -10px; min-width: 18px; height: 18px;
	padding: 0 5px; border-radius: 9px; background: var(--lnd-marrone); color: #fff;
	font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 600;
	display: inline-flex; align-items: center; justify-content: center;
}
.navbar.scrolled .navbar__cart .cart-count,
.navbar.navbar--solid .navbar__cart .cart-count { background: var(--lnd-marrone); color: var(--lnd-beige); }
.navbar__burger {
	display: none; position: absolute; left: 24px; top: 50%; transform: translateY(-50%);
	width: 36px; height: 36px; background: transparent; border: 0; padding: 6px; cursor: pointer;
}
.navbar__burger span {
	display: block; height: 2px; width: 100%; background: #fff; margin: 5px 0;
	transition: transform .35s var(--lnd-ease), opacity .25s var(--lnd-ease), background .3s var(--lnd-ease);
}
.navbar.scrolled .navbar__burger span,
.navbar.navbar--solid .navbar__burger span { background: var(--lnd-marrone); }
.navbar__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.navbar__burger.is-open span:nth-child(2) { opacity: 0; }
.navbar__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.navbar__drawer {
	position: fixed; top: 0; left: 0; width: min(82vw, 360px); height: 100vh;
	background: var(--lnd-beige); z-index: 99; padding: 96px 32px 32px;
	transform: translateX(-100%); transition: transform .5s var(--lnd-ease);
	box-shadow: 0 0 40px rgba(0,0,0,.12); overflow-y: auto;
}
.navbar__drawer .navbar__drawer-close,
button.navbar__drawer-close {
	position: absolute !important;
	top: 24px !important;
	right: 24px !important;
	left: auto !important;
	width: 36px !important;
	height: 36px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: transparent !important;
	border: 1px solid rgba(60,27,18,.2) !important;
	border-radius: 50% !important;
	padding: 0 !important;
	margin: 0 !important;
	cursor: pointer !important;
	color: var(--lnd-marrone) !important;
	font-size: 0 !important;
	line-height: 1 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	transition: background .25s var(--lnd-ease), color .25s var(--lnd-ease), border-color .25s var(--lnd-ease), transform .25s var(--lnd-ease) !important;
}
.navbar__drawer-close svg {
	width: 16px !important;
	height: 16px !important;
	display: block !important;
	stroke: currentColor !important;
	fill: none !important;
}
.navbar__drawer-close:hover {
	background: var(--lnd-marrone) !important;
	color: var(--lnd-beige) !important;
	border-color: var(--lnd-marrone) !important;
	transform: rotate(90deg) !important;
}
.navbar__drawer-close:focus-visible {
	outline: 2px solid var(--lnd-marrone) !important;
	outline-offset: 3px !important;
}
.navbar__drawer.is-open { transform: translateX(0); }
.navbar__drawer-list { list-style: none; margin: 0 0 16px; padding: 0; }
.navbar__drawer-list a {
	display: block; padding: 14px 0; color: var(--lnd-marrone); text-decoration: none;
	font-family: var(--lnd-f-sans); font-size: 13px; letter-spacing: 2px; text-transform: uppercase;
	border-bottom: 1px solid rgba(60,27,18,.08);
}
body.nav-drawer-open { overflow: hidden; }

@media (max-width: 1200px) {
	.navbar__inner { padding: 0 32px; }
	.navbar__cart { right: 32px; }
}
@media (max-width: 900px) {
	.navbar { height: 72px; }
	.navbar__menu { display: none; }
	.navbar__inner { grid-template-columns: 1fr; justify-items: center; padding: 0 24px; }
	.navbar__cart { right: 24px; }
	.navbar__burger { display: block; left: 24px; }
}

/* ============================================================
   CHI-SIAMO — hero (image bg, eyebrow, scroll indicator)
   ============================================================ */
.cs-hero {
	position: relative; width: 100%; height: 100vh; min-height: 640px;
	display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end;
	padding: 0 100px 100px; overflow: hidden; background: #1a0c06;
}
.cs-hero-bg {
	position: absolute; left: 0; top: -15%; width: 100%; height: 135%;
	object-fit: cover; object-position: center; will-change: transform; z-index: 0;
}
.cs-hero-overlay {
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(to top, rgba(20,8,4,.75) 0%, rgba(20,8,4,.1) 100%);
}
.cs-hero-content { position: relative; z-index: 2; max-width: 900px; }
.cs-hero-eyebrow {
	display: inline-block; font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 400;
	letter-spacing: 3px; text-transform: uppercase; color: rgba(255,255,255,.7);
	margin-bottom: 28px; opacity: 0; transform: translateY(40px);
}
.cs-hero-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(64px, 7vw, 108px); line-height: 1.02; letter-spacing: -2px; color: #fff;
	opacity: 0; transform: translateY(40px);
}
.cs-hero-title em { font-style: italic; font-weight: 400; }
.cs-hero.hero-ready .cs-hero-eyebrow { animation: lnd-heroLineUp .9s var(--lnd-ease-out) .4s forwards; }
.cs-hero.hero-ready .cs-hero-title   { animation: lnd-heroLineUp 1.2s var(--lnd-ease-out) .55s forwards; }
@keyframes lnd-heroLineUp { to { opacity: 1; transform: translateY(0); } }
.cs-hero-scroll {
	position: absolute; bottom: 40px; right: 100px; z-index: 2;
	display: flex; flex-direction: column; align-items: center; gap: 14px;
	opacity: 0;
}
.cs-hero.hero-ready .cs-hero-scroll { animation: lnd-fadeIn .8s ease 1.8s forwards; }
@keyframes lnd-fadeIn { to { opacity: 1; } }
.cs-hero-scroll-line { position: relative; width: 1px; height: 60px; background: rgba(255,255,255,.25); overflow: hidden; }
.cs-hero-scroll-line::after {
	content: ''; position: absolute; left: 0; top: -100%; width: 100%; height: 100%;
	background: #fff; animation: lnd-scrolldrop 1.8s var(--lnd-ease-out) 2s infinite;
}
.cs-hero-scroll span {
	writing-mode: vertical-rl; font-family: var(--lnd-f-sans);
	font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: #fff;
}

/* ============================================================
   CHI-SIAMO — intro
   ============================================================ */
.cs-intro { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; }
.cs-intro-text {
	padding: 120px 80px 120px 100px; background: var(--lnd-beige);
	display: flex; flex-direction: column; justify-content: center; gap: 28px;
}
.cs-intro-label {
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 3px;
	text-transform: uppercase; color: rgba(60,27,18,.6);
}
.cs-intro-title {
	margin: 0; font-family: var(--lnd-f-serif); font-style: italic; font-weight: 400;
	font-size: clamp(48px, 4.5vw, 72px); line-height: 1.08; color: var(--lnd-marrone);
}
.cs-intro-title em { font-style: italic; }
.cs-intro-body {
	font-family: var(--lnd-f-sans); font-size: 15px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.7); max-width: 480px;
}
.cs-intro-img { position: relative; min-height: 600px; overflow: hidden; background: #fffcf1}
.cs-intro-img img {
	position: absolute; inset: 0; width: 100%; height: 100% !important;
	object-fit: contain; object-position: right top;
}

/* ============================================================
   CHI-SIAMO — quote
   ============================================================ */
.cs-quote { padding: 140px 100px; background: var(--lnd-marrone); position: relative; }
.cs-quote-number {
	font-family: var(--lnd-f-serif); font-size: clamp(64px, 7vw, 96px);
	color: rgba(255,255,255,.3); margin-bottom: 32px; display: block; line-height: 1;
}
.cs-quote-text {
	margin: 0; font-family: var(--lnd-f-serif); font-style: italic; font-weight: 300;
	font-size: clamp(48px, 5.5vw, 88px); line-height: 1.12; color: var(--lnd-sabbia);
	max-width: 1200px;
}
.cs-quote-sub {
	margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1);
	font-family: var(--lnd-f-sans); font-size: 12px; letter-spacing: 3px;
	text-transform: uppercase; color: rgba(255,255,255,.4);
}

/* ============================================================
   CHI-SIAMO — story chapters
   ============================================================ */
.cs-chapter {
	display: grid; grid-template-columns: 1fr 1fr; align-items: stretch;
	background: var(--lnd-beige); position: relative;
}
.cs-chapter--sabbia { background: var(--lnd-sabbia); }
.cs-chapter--rev .cs-chapter-text { order: 2; }
.cs-chapter--rev .cs-chapter-img  { order: 1; }
.cs-chapter-text {
	position: sticky; top: 0; height: 100vh;
	display: flex; flex-direction: column; justify-content: center;
	padding: 120px 100px; gap: 28px; position: relative;
}
.cs-chapter-num {
	position: absolute; top: 40px; left: 60px;
	font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(120px, 12vw, 180px); line-height: 1;
	color: rgba(60,27,18,.06); pointer-events: none;
}
.cs-chapter-label {
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 3px;
	text-transform: uppercase; color: rgba(60,27,18,.6); position: relative; z-index: 1;
}
.cs-chapter-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(40px, 3.8vw, 58px); line-height: 1.1; color: var(--lnd-marrone);
	position: relative; z-index: 1;
}
.cs-chapter-title em { font-style: italic; }
.cs-chapter-body {
	font-family: var(--lnd-f-sans); font-size: 14px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.7);
	max-width: 480px; position: relative; z-index: 1;
}
.cs-chapter-img { min-height: 100vh; position: relative; overflow: hidden; }
.cs-chapter-img img {
	position: absolute; left: 0; top: -5%; width: 100%; height: 110% !important;
	object-fit: cover; object-position: center;
}
.cs-divider { height: 1px; margin: 0 100px; background: rgba(60,27,18,.1); }
.cs-chapter--sabbia .lnd-reveal-img::after { background: var(--lnd-sabbia); }

/* ============================================================
   CHI-SIAMO — career timeline
   ============================================================ */
.cs-career {
	height: calc(100vh - 88px); display: flex; flex-direction: column;
	background: var(--lnd-beige); overflow: hidden; padding-top: 64px;
}
.cs-career-filter {
	display: flex; gap: 48px; padding: 0 100px 32px;
	overflow-x: auto; overflow-y: hidden; border-bottom: 1px solid rgba(60,27,18,.1);
	scrollbar-width: none; justify-content:center;
}
.cs-career-filter::-webkit-scrollbar { display: none; }
.cs-career-filter-link {
	flex: none; position: relative; padding-bottom: 12px;
	font-family: var(--lnd-f-sans); font-size: 14px; letter-spacing: 1px;
	text-decoration: none; color: rgba(60,27,18,.4); cursor: pointer; transition: color .3s var(--lnd-ease);
}
.cs-career-filter-link::after {
	content: ''; position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px;
	background: var(--lnd-marrone); transform: scaleX(0); transform-origin: left;
	transition: transform .4s var(--lnd-ease);
}
.cs-career-filter-link.is-active { color: var(--lnd-marrone); }
.cs-career-filter-link.is-active::after { transform: scaleX(1); }
.cs-career-content {
	flex: 1; display: flex; flex-direction: column; position: relative;
	padding: 48px 100px 80px; gap: 24px; align-items: center; justify-content: flex-start;
}
.cs-career-year-display { width: 100%;  text-align: left; }
.cs-career-year-num {
	font-family: var(--lnd-f-serif); font-weight: 300; line-height: 1;
	font-size: clamp(48px, 6vw, 88px); color: rgba(60,27,18,.18);
	transition: opacity .25s var(--lnd-ease), transform .25s var(--lnd-ease);
}
.cs-career-year-num.is-changing { opacity: 0; transform: translateY(-16px); }
.cs-career-items { width: 100%; max-width: 720px; position: relative; }
.cs-career-item { display: none; flex-direction: column; gap: 24px; max-width: 720px; align-items: flex-start; }
.cs-career-item.is-active { display: flex; animation: lnd-careerIn .7s var(--lnd-ease-out); }
@keyframes lnd-careerIn { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
.cs-career-item-divider { width: 60px; height: 1px; background: rgba(60,27,18,.3); }
.cs-career-item-tag {
	font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 500;
	letter-spacing: 3px; text-transform: uppercase; color: var(--lnd-marrone);
}
.cs-career-item-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(38px, 4.2vw, 62px); line-height: 1.08; color: var(--lnd-marrone);
}
.cs-career-item-title em { font-style: italic; }
.cs-career-item-body {
	font-family: var(--lnd-f-sans); font-size: 14px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.7);
}

/* ============================================================
   CHI-SIAMO — passione (cs-passione)
   ============================================================ */
.cs-passione { padding: 140px 100px 80px; background: var(--lnd-beige); }
.cs-passione-top {
	display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end;
	margin-bottom: 80px;
}
.cs-passione-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(44px, 4.5vw, 68px); line-height: 1.1; color: var(--lnd-marrone);
}
.cs-passione-right { display: flex; flex-direction: column; gap: 32px; align-items: flex-start; }
.cs-passione-body {
	font-family: var(--lnd-f-sans); font-size: 15px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.7);
}
.cs-passione-img { width: 100%; height: 600px; overflow: hidden; position: relative; }
.cs-passione-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ============================================================
   CHI-SIAMO — split
   ============================================================ */
.cs-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; }
.cs-split--rev .cs-split-img  { order: 2; }
.cs-split--rev .cs-split-text { order: 1; }
.cs-split--sabbia .cs-split-text { background: var(--lnd-sabbia); }
.cs-split-img { position: relative; overflow: hidden; }
.cs-split-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cs-split-text {
	background: var(--lnd-beige); padding: 100px;
	display: flex; flex-direction: column; justify-content: center; gap: 28px;
}
.cs-split-label {
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 3px;
	text-transform: uppercase; color: rgba(60,27,18,.6);
}
.cs-split-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(40px, 3.8vw, 58px); line-height: 1.1; color: var(--lnd-marrone);
}
.cs-split-title em { font-style: italic; }
.cs-split-body {
	font-family: var(--lnd-f-sans); font-size: 15px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.7); max-width: 480px;
}
.cs-split--sabbia .lnd-reveal-img::after { background: var(--lnd-sabbia); }

/* ============================================================
   CHI-SIAMO — reviews (hairline grid)
   ============================================================ */
.lnd-reviews--hairline { padding: 140px 100px; background: var(--lnd-beige2); }
.lnd-reviews--hairline .lnd-reviews__label {
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 3px;
	text-transform: uppercase; color: rgba(60,27,18,.6); display: block; margin-bottom: 24px;
}
.lnd-reviews--hairline .lnd-reviews__title {
	margin: 0 0 80px; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(40px, 3.8vw, 58px); line-height: 1.1; color: var(--lnd-marrone); max-width: 900px;
}
.lnd-reviews--hairline .lnd-reviews__grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
	background: rgba(60,27,18,.1);
}
.lnd-reviews--hairline .lnd-review {
	background: var(--lnd-beige2); padding: 60px 40px;
	display: flex; flex-direction: column; gap: 24px; border: 0;
}
.lnd-reviews--hairline .lnd-review__stars { color: var(--lnd-sabbia); font-size: 18px; letter-spacing: 4px; }
.lnd-reviews--hairline .lnd-review__name {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 400;
	font-size: 24px; color: var(--lnd-marrone); font-style: italic;
}
.lnd-reviews--hairline .lnd-review__text {
	margin: 0; font-family: var(--lnd-f-sans); font-size: 14px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.7);
}

/* ============================================================
   Responsive — chi-siamo
   ============================================================ */
@media (max-width: 1200px) {
	.cs-hero { padding: 0 60px 80px; }
	.cs-hero-scroll { right: 60px; }
	.cs-intro-text { padding: 80px 60px; }
	.cs-quote { padding: 100px 60px; }
	.cs-chapter-text { padding: 80px 60px; }
	.cs-chapter-num { left: 30px; top: 30px; }
	.cs-career-filter { padding: 0 60px 32px; gap: 32px; }
	.cs-career-content { padding: 60px; gap: 48px; }
	.cs-passione { padding: 100px 60px 60px; }
	.cs-passione-top { gap: 48px; }
	.cs-split-text { padding: 60px; }
	.lnd-reviews--hairline { padding: 100px 60px; }
	.cs-divider { margin: 0 60px; }
}
@media (max-width: 900px) {
	.cs-hero { padding: 0 24px 60px; min-height: 560px; }
	.cs-hero-scroll { display: none; }
	.cs-intro { grid-template-columns: 1fr; }
	.cs-intro-text { padding: 60px 32px; }
	.cs-intro-img { min-height: 400px; height: 400px; }
	.cs-quote { padding: 80px 32px; }
	.cs-chapter, .cs-chapter--rev { grid-template-columns: 1fr; }
	.cs-chapter--rev .cs-chapter-text,
	.cs-chapter--rev .cs-chapter-img { order: initial; }
	.cs-chapter-text { position: relative; top: auto; height: auto; padding: 64px 32px; }
	.cs-chapter-img { min-height: 400px; }
	.cs-career { height: auto; }
	.cs-career-filter { padding: 24px; gap: 24px; }
	.cs-career-content { flex-direction: column; padding: 32px 24px 60px; gap: 16px; align-items: center; }
	.cs-career-year-display { flex: none; text-align: left; }
	.cs-career-year-num { font-size: clamp(36px, 9vw, 64px); }
	.cs-passione { padding: 80px 32px 60px; }
	.cs-passione-top { grid-template-columns: 1fr; gap: 32px; margin-bottom: 48px; }
	.cs-passione-img { height: 360px; }
	.cs-split, .cs-split--rev { grid-template-columns: 1fr; }
	.cs-split--rev .cs-split-img,
	.cs-split--rev .cs-split-text { order: initial; }
	.cs-split-img { height: 360px; }
	.cs-split-text { padding: 60px 32px; }
	.lnd-reviews--hairline { padding: 80px 32px; }
	.lnd-reviews--hairline .lnd-reviews__grid { grid-template-columns: 1fr; }
	.cs-divider { margin: 0 24px; }
}
@media (max-width: 600px) {
	.cs-hero { padding: 0 24px 48px; }
	.cs-intro-text { padding: 48px 24px; }
	.cs-quote { padding: 64px 24px; }
	.cs-chapter-text { padding: 48px 24px; }
	.cs-passione { padding: 64px 24px 48px; }
	.cs-split-text { padding: 48px 24px; }
	.lnd-reviews--hairline { padding: 64px 24px; }
}

/* ============================================================
   CONTATTI (ct-*)
   ============================================================ */
.ct-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - 72px); background: var(--lnd-beige); }
.ct-hero-left {
	padding: 100px 80px 100px 100px; background: var(--lnd-beige);
	display: flex; flex-direction: column; justify-content: space-between; gap: 80px;
}
.ct-title {
	margin: 0; font-family: var(--lnd-f-serif); font-style: italic; font-weight: 300;
	font-size: clamp(64px, 8vw, 104px); line-height: .9; color: var(--lnd-marrone);
}
.ct-info-blocks { display: flex; flex-direction: column; gap: 36px; }
.ct-block-label {
	display: block; margin-bottom: 10px;
	font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400;
	letter-spacing: 4px; text-transform: uppercase; color: rgba(60,27,18,.4);
}
.ct-block-val {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(18px, 1.6vw, 24px); line-height: 1.5; color: var(--lnd-marrone);
}
.ct-block-val a { color: inherit; text-decoration: none; transition: opacity .3s var(--lnd-ease); }
.ct-block-val a:hover { opacity: .6; }
.ct-social { display: flex; gap: 16px; }
.ct-social-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; color: var(--lnd-marrone); opacity: .7;
	transition: opacity .3s var(--lnd-ease);
}
.ct-social-icon:hover { opacity: 1; }
.ct-hero-right { position: relative; overflow: hidden; min-height: 480px; }
.ct-hero-right img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.ct-form-section {
	display: grid; grid-template-columns: 1fr 1fr; gap: 100px;
	padding: 120px 100px; background: var(--lnd-beige2);
	align-items: start;
}
.ct-form-heading {
	margin: 0 0 24px; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(40px, 4vw, 60px); line-height: 1.1; color: var(--lnd-marrone);
}
.ct-form-heading em { font-style: italic; }
.ct-form-sub {
	margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.55); max-width: 420px;
}
.ct-form { display: flex; flex-direction: column; gap: 24px; }
.ct-form-row { position: relative; }
.ct-form input[type="text"],
.ct-form input[type="email"],
.ct-form textarea {
	width: 100%; padding: 14px 0; border: 0; background: transparent;
	border-bottom: 1px solid rgba(60,27,18,.2);
	font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300; color: var(--lnd-marrone);
	transition: border-color .3s var(--lnd-ease); outline: none;
}
.ct-form textarea { resize: none; height: 120px; padding-top: 14px; }
.ct-form input::placeholder, .ct-form textarea::placeholder {
	font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase;
	color: rgba(60,27,18,.4); font-weight: 400;
}
.ct-form input:focus, .ct-form textarea:focus { border-bottom-color: var(--lnd-marrone); }
.ct-form-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.ct-form-check input { position: absolute; opacity: 0; pointer-events: none; }
.ct-form-check-box {
	flex: none; width: 18px; height: 18px; border: 1px solid rgba(60,27,18,.4);
	background: transparent; transition: background .2s var(--lnd-ease), border-color .2s var(--lnd-ease);
	position: relative;
}
.ct-form-check input:checked + .ct-form-check-box { background: var(--lnd-marrone); border-color: var(--lnd-marrone); }
.ct-form-check input:checked + .ct-form-check-box::after {
	content: ''; position: absolute; left: 4px; top: 1px; width: 6px; height: 11px;
	border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.ct-form-check-text {
	font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 300;
	color: rgba(60,27,18,.45); line-height: 1.6;
}
.ct-form .lnd-cta--solid { align-self: flex-start; margin-top: 8px; }

.ct-map { position: relative; width: 100%; height: 540px; overflow: hidden; }
.ct-map img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ct-map-link { display: block; width: 100%; height: 100%; position: absolute; inset: 0; }

/* Responsive contatti */
@media (max-width: 1200px) {
	.ct-hero-left { padding: 80px 60px; gap: 60px; }
	.ct-form-section { padding: 80px 60px; gap: 60px; }
}
@media (max-width: 900px) {
	.ct-hero { grid-template-columns: 1fr; min-height: auto; }
	.ct-hero-left { padding: 60px 40px; }
	.ct-hero-right { min-height: 380px; }
	.ct-form-section { grid-template-columns: 1fr; padding: 60px 40px; gap: 40px; }
	.ct-map { height: 360px; }
}
@media (max-width: 600px) {
	.ct-hero-left { padding: 48px 24px; }
	.ct-hero-right { min-height: 280px; }
	.ct-form-section { padding: 48px 24px; }
	.ct-map { height: 280px; }
}

/* ============================================================
   NEWS (news-*)
   ============================================================ */
.news-hero {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 60px; padding: 100px 160px 80px; background: var(--lnd-beige);
}
.news-hero-left { flex: 1; }
.news-hero-eyebrow {
	display: inline-block; position: relative; padding-left: 48px;
	font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400;
	letter-spacing: 5px; text-transform: uppercase; color: rgba(60,27,18,.4);
	margin-bottom: 28px;
}
.news-hero-eyebrow::before {
	content: ''; position: absolute; left: 0; top: 50%;
	width: 32px; height: 1px; background: rgba(60,27,18,.3);
}
.news-hero-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(64px, 7vw, 104px); line-height: .95; letter-spacing: -2px;
	color: var(--lnd-marrone);
}
.news-hero-title em { font-style: italic; }
.news-hero-right { max-width: 380px; display: flex; flex-direction: column; gap: 20px; }
.news-hero-desc {
	margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300;
	line-height: 1.85; color: rgba(60,27,18,.6);
}
.news-hero-count {
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 4px;
	text-transform: uppercase; color: rgba(60,27,18,.4);
}

.news-featured {
	display: grid; grid-template-columns: 1fr 1fr; min-height: 560px;
	background: var(--lnd-beige);
}
.news-featured-img { display: block; position: relative; overflow: hidden; }
.news-featured-img img {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; transition: transform 1.2s var(--lnd-ease);
}
.news-featured:hover .news-featured-img img { transform: scale(1.04); }
.news-featured-body {
	background: var(--lnd-beige2); padding: 80px;
	display: flex; flex-direction: column; gap: 24px; justify-content: center;
}
.news-featured-meta {
	position: relative; padding-left: 40px;
	font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400;
	letter-spacing: 4px; text-transform: uppercase; color: rgba(60,27,18,.5);
}
.news-featured-meta::before {
	content: ''; position: absolute; left: 0; top: 50%; width: 24px; height: 1px;
	background: rgba(60,27,18,.4);
}
.news-featured-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(36px, 3.5vw, 52px); line-height: 1.1; color: var(--lnd-marrone);
}
.news-featured-title a { color: inherit; text-decoration: none; }
.news-featured-excerpt {
	margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300;
	line-height: 1.9; color: rgba(60,27,18,.6); max-width: 480px;
}
.news-featured-cta { align-self: flex-start; margin-top: 8px; }

.news-section {
	display: flex; flex-direction: column; gap: 64px;
	padding: 100px 160px 140px; background: var(--lnd-beige);
}
.news-section-head { position: relative; }
.news-section-label {
	position: relative; display: block; padding-right: 120%;
	font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400;
	letter-spacing: 4px; text-transform: uppercase; color: rgba(60,27,18,.4);
}
.news-section-label::after {
	content: ''; position: absolute; left: 0; bottom: -16px;
	width: 100%; height: 1px; background: rgba(60,27,18,.1);
}
.news-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 32px;
}
.news-card { display: flex; flex-direction: column; gap: 20px; }
.news-card-img {
	display: block; position: relative; overflow: hidden; aspect-ratio: 4/3;
}
.news-card-img img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .9s var(--lnd-ease);
}
.news-card:hover .news-card-img img { transform: scale(1.06); }
.news-card-divider { width: 100%; height: 1px; background: rgba(60,27,18,.1); }
.news-card-meta {
	display: flex; justify-content: space-between;
	font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400;
	letter-spacing: 3px; text-transform: uppercase; color: rgba(60,27,18,.45);
}
.news-card-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: 26px; line-height: 1.15; letter-spacing: -.2px;
	color: var(--lnd-marrone);
}
.news-card-title a { color: inherit; text-decoration: none; }
.news-card-excerpt {
	margin: 0; font-family: var(--lnd-f-sans); font-size: 12px; font-weight: 300;
	line-height: 1.85; color: rgba(60,27,18,.55);
}
.news-card-cta {
	position: relative; align-self: flex-start; padding-bottom: 2px;
	font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 500;
	letter-spacing: 2px; text-transform: uppercase; color: var(--lnd-marrone);
	text-decoration: none;
}
.news-card-cta::after {
	content: ''; position: absolute; left: 0; bottom: 0; width: 0; height: 1px;
	background: currentColor; transition: width .5s var(--lnd-ease);
}
.news-card:hover .news-card-cta::after { width: 100%; }
.news-grid-empty {
	grid-column: 1 / -1; text-align: center; color: rgba(60,27,18,.5);
	font-family: var(--lnd-f-sans); font-size: 14px;
}

.news-newsletter {
	display: flex; align-items: center; justify-content: space-between; gap: 80px;
	padding: 100px 160px; background: var(--lnd-marrone); color: #fff;
}
.news-newsletter-left { max-width: 540px; display: flex; flex-direction: column; gap: 18px; }
.news-newsletter-eyebrow {
	font-family: var(--lnd-f-sans); font-size: 10px; font-weight: 400;
	letter-spacing: 5px; text-transform: uppercase; color: rgba(255,255,255,.5);
}
.news-newsletter-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(36px, 3.5vw, 52px); line-height: 1.15; color: #fff;
}
.news-newsletter-title em { font-style: italic; }
.news-newsletter-desc {
	margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300;
	line-height: 1.85; color: rgba(255,255,255,.6);
}
.news-newsletter-right { min-width: 360px; display: flex; gap: 0; align-items: stretch; }
.news-nl-input {
	flex: 1; padding: 16px 20px; background: transparent;
	border: 1px solid rgba(255,255,255,.3); border-right: 0; color: #fff;
	font-family: var(--lnd-f-sans); font-size: 13px; outline: none;
}
.news-nl-input::placeholder { color: rgba(255,255,255,.5); }
.news-nl-submit {
	position: relative; padding: 16px 32px; border: 1px solid rgba(255,255,255,.3);
	background: transparent; color: #fff; cursor: pointer; overflow: hidden;
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 2.5px;
	text-transform: uppercase; transition: color .5s var(--lnd-ease);
}
.news-nl-submit::before {
	content: ''; position: absolute; inset: 0; z-index: 0;
	background: #fff; transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--lnd-ease);
}
.news-nl-submit > span { position: relative; z-index: 1; }
.news-nl-submit:hover { color: var(--lnd-marrone); }
.news-nl-submit:hover::before { transform: scaleX(1); }

/* Responsive news */
@media (max-width: 1200px) {
	.news-hero { padding: 80px 80px 64px; }
	.news-featured-body { padding: 60px; }
	.news-section { padding: 80px 80px 120px; }
	.news-newsletter { padding: 80px; }
}
@media (max-width: 900px) {
	.news-hero { flex-direction: column; align-items: flex-start; padding: 60px 40px 48px; gap: 40px; }
	.news-featured { grid-template-columns: 1fr; min-height: auto; }
	.news-featured-img { height: 360px; }
	.news-featured-body { padding: 48px 40px; }
	.news-section { padding: 64px 40px 100px; }
	.news-grid { grid-template-columns: 1fr; gap: 48px; }
	.news-newsletter { flex-direction: column; padding: 64px 40px; gap: 48px; align-items: flex-start; }
	.news-newsletter-right { min-width: 0; width: 100%; }
}
@media (max-width: 600px) {
	.news-hero { padding: 48px 24px 40px; }
	.news-featured-body { padding: 40px 24px; }
	.news-section { padding: 48px 24px 80px; }
	.news-grid { gap: 32px; }
	.news-newsletter { padding: 48px 24px; }
}

/* ============================================================
   ALBUM (category archive WooCommerce: lnd-album-*)
   ============================================================ */
.lnd-album { background: var(--lnd-beige); }
.lnd-album-hero {
	position: relative; height: auto !important; min-height: 0 !important; overflow: visible;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	background: transparent;
	padding: 140px 24px 36px;
}
.lnd-album-hero-video,
.lnd-album-hero-img,
.lnd-album-hero-overlay,
.lnd-album-hero-scroll { display: none !important; }
.lnd-album-hero-content {
	position: relative; z-index: 2; max-width: 760px; padding: 0 24px; text-align: center;
	display: flex; flex-direction: column; gap: 10px; color: var(--lnd-marrone);
}
.lnd-album-hero-eyebrow {
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 4px;
	text-transform: uppercase; color: rgba(60,27,18,.55);
}
.lnd-album-hero-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(32px, 4.5vw, 56px); letter-spacing: 5px; text-transform: uppercase;
	color: var(--lnd-marrone);
}
.lnd-album-hero-sub {
	margin: 4px auto 0; max-width: 540px;
	font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300;
	line-height: 1.7; color: rgba(60,27,18,.7);
}
.lnd-album-hero-description {
	margin: 6px auto 0; max-width: 620px;
	font-family: var(--lnd-f-sans); font-size: 14px; font-weight: 300;
	line-height: 1.7; color: var(--lnd-marrone);
}
.lnd-album-hero-description p { margin: 0 0 12px; }
.lnd-album-hero-description p:last-child { margin-bottom: 0; }
.lnd-album-hero-scroll {
	position: absolute; bottom: 40px; right: 80px; z-index: 2;
}
.lnd-album-hero-scroll-line {
	display: block; position: relative; width: 1px; height: 80px;
	background: rgba(255,255,255,.25); overflow: hidden;
}
.lnd-album-hero-scroll-line::after {
	content: ''; position: absolute; left: 0; top: -100%; width: 100%; height: 100%;
	background: #fff; animation: lnd-scrolldrop 2s var(--lnd-ease) infinite;
}

.lnd-album-filter {
	position: sticky; top: 72px; z-index: 80;
	background: var(--lnd-beige2); border-bottom: 1px solid rgba(60,27,18,.1);
}
.lnd-album-filter-wrap { max-width: 1400px; margin: 0 auto; padding: 0 80px; }
.lnd-album-filter-list {
	display: flex; justify-content: center; gap: 0;
	list-style: none; margin: 0; padding: 0;
	overflow-x: auto; scrollbar-width: none;
}
.lnd-album-filter-list::-webkit-scrollbar { display: none; }
.lnd-album-filter-link {
	position: relative; display: inline-block; padding: 22px 28px;
	font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 400;
	letter-spacing: 3px; text-transform: uppercase; text-decoration: none;
	color: rgba(60,27,18,.35); white-space: nowrap;
	transition: color .3s var(--lnd-ease);
}
.lnd-album-filter-link:hover { color: rgba(60,27,18,.7); }
.lnd-album-filter-link.is-active { color: var(--lnd-marrone); }
.lnd-album-filter-link::after {
	content: ''; position: absolute; left: 0; bottom: -1px; width: 100%; height: 2px;
	background: var(--lnd-marrone); transform: scaleX(0); transform-origin: left;
	transition: transform .4s var(--lnd-ease);
}
.lnd-album-filter-link.is-active::after { transform: scaleX(1); }

.lnd-album-grid-section {
	padding: 0px 60px 120px;
	background-color: var(--lnd-beige);
	background-image: url('/wp-content/uploads/2026/05/texture-crostate-scaled.png');
	background-position: center; background-size: cover; background-repeat: no-repeat;
}
.lnd-album-grid {
	max-width: 1400px; margin: 0 auto;
	display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 24px; row-gap: 24px;
}
.lnd-album-item {
	display: block; text-decoration: none; color: var(--lnd-marrone);
	opacity: 0; transform: translateY(32px);
	transition: opacity .7s var(--lnd-ease-out) var(--lnd-d, 0s),
	            transform .7s var(--lnd-ease-out) var(--lnd-d, 0s);
}
.lnd-album-item.is-visible { opacity: 1; transform: none; }
.lnd-album-item.is-hidden { display: none; }
.lnd-album-wrapper { display: flex; flex-direction: column; gap: 24px; }
.lnd-album-cover {
	position: relative; display: flex; align-items: flex-end; justify-content: center;
	padding: 120px 28% 0; overflow: visible; min-height: 360px;
}
.lnd-album-cover-img {
	position: relative; z-index: 2;
	width: 100%; max-width: 100%;
	height: 180px;
	object-fit: contain;
	object-position: center bottom;
	display: block;
	margin: 0 auto;
}
.lnd-album-cover-img-hover {
	position: absolute; left: 50%; bottom: 40%;
	width: 28%; max-width: 110px; height: auto;
	z-index: 1; opacity: 0;
	transform: translate(-50%, 40px) scale(.92);
	transition: transform .7s cubic-bezier(.2,.8,.2,1), opacity .4s ease;
	pointer-events: none;
	filter: drop-shadow(0 14px 22px rgba(60,27,18,.28));
}
.lnd-album-item:hover .lnd-album-cover-img-hover,
.lnd-album-item:focus-within .lnd-album-cover-img-hover {
	opacity: 1;
	transform: translate(-50%, -40%) scale(1.1);
}
.lnd-album-meta { display: flex; flex-direction: column; gap: 16px; align-items: center; text-align: center; }
.lnd-album-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(18px, 1.6vw, 24px); line-height: 1.2; color: var(--lnd-marrone);
	letter-spacing: .3px;
	display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.lnd-album-title-name { display: block; text-transform: uppercase; letter-spacing: 1.5px; }
.lnd-album-title-gusto {
	display: block; font-style: italic; font-weight: 300; text-transform: lowercase;
	color: rgba(60,27,18,.7); letter-spacing: .3px;
	font-size: clamp(14px, 1.2vw, 18px);
}
.lnd-album-cta {
	position: relative; display: inline-flex; padding: 12px 28px; overflow: hidden;
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 2.5px;
	text-transform: uppercase; color: var(--lnd-marrone);
	border: 1px solid rgba(60,27,18,.4); transition: color .5s var(--lnd-ease), border-color .5s var(--lnd-ease);
}
.lnd-album-cta::before {
	content: ''; position: absolute; inset: 0; z-index: 0;
	background: var(--lnd-marrone); transform: scaleX(0); transform-origin: left;
	transition: transform .4s var(--lnd-ease);
}
.lnd-album-cta > span { position: relative; z-index: 1; }
.lnd-album-item:hover .lnd-album-cta { color: var(--lnd-beige); border-color: var(--lnd-marrone); }
.lnd-album-item:hover .lnd-album-cta::before { transform: scaleX(1); }
.lnd-album-empty {
	text-align: center; font-family: var(--lnd-f-sans); color: rgba(60,27,18,.5);
	padding: 80px 24px;
}

@media (max-width: 1200px) {
	.lnd-album-hero { padding: 130px 60px 28px; }
	.lnd-album-filter-wrap { padding: 0 40px; }
	.lnd-album-grid-section { padding: 40px 60px 120px; }
}
@media (max-width: 900px) {
	.lnd-album-hero { padding: 110px 32px 24px; }
	.lnd-album-grid-section { padding: 32px 24px 100px; }
	.lnd-album-grid { grid-template-columns: repeat(2, 1fr); column-gap: 16px; }
	.lnd-album-title { font-size: 16px; }
	.lnd-album-filter-list { justify-content: flex-start; }
	.lnd-album-hero-scroll { display: none; }
}
@media (max-width: 600px) {
	.lnd-album-hero { padding: 100px 24px 20px; height: auto !important; min-height: 0 !important; }
	.lnd-album-hero-title { font-size: clamp(26px, 8vw, 40px); letter-spacing: 3px; }
	.lnd-album-grid-section { padding: 24px 16px 80px; }
	.lnd-album-grid { gap: 12px 16px; }
}
@media (max-width: 480px) {
	.lnd-album-hero { padding: 92px 16px 16px; }
}

/* ============================================================
   PRODUCT ALT (single product layout fedele 1:1: pp-*)
   ============================================================ */
.pp { background: var(--lnd-beige); color: var(--lnd-marrone); position: relative; }

.pp-hero {
	display: grid; grid-template-columns: 1fr 280px 1fr; gap: 30px;
	margin-top: 50px; background: var(--lnd-beige); position: relative;
	/* niente z-index: così la colonna centrale (z:10) sta nel root stacking
	   e copre crFixed (z:1) solo dove il pack è opaco. */
}
.pp-col-left  { padding: 80px 48px 72px 80px; display: flex; flex-direction: column; gap: 48px; }
.pp-col-right { padding: 80px 80px 72px 48px; display: flex; flex-direction: column; gap: 48px; }

.pp-col-left-upper, .pp-col-left-lower,
.pp-col-right .pp-buy, .pp-col-right-lower {
	display: flex; flex-direction: column; gap: 28px;
}

.pp-title-block { display: flex; flex-direction: column; gap: 6px; }
.pp-title-line1 {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(36px, 3.5vw, 52px); line-height: 1.05; text-transform: uppercase;
}
.pp-title-line2 {
	font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(28px, 2.8vw, 40px); line-height: 1.05; text-transform: uppercase;
}
.pp-subtitle {
	margin: 0; font-family: var(--lnd-f-sans); font-size: 15px; font-weight: 400;
	color: var(--lnd-marrone); line-height: 1.7;
}
.pp-subtitle p { margin: 0 0 12px; }
.pp-subtitle p:last-child { margin-bottom: 0; }
.pp-desc { display: none; }

.pp-cs-label {
	font-family: var(--lnd-f-sans); font-size: 10px; letter-spacing: 3px;
	text-transform: uppercase; color: rgba(60,27,18,.5); display: block; margin-bottom: 16px;
}
.pp-cs-cards {
	display: grid; gap: 18px;
	/* auto-fill (no auto-fit): 1 card occupa una sola colonna (metà), 2 card riempiono entrambe. */
	grid-template-columns: repeat(2, 1fr);
}
.pp-cs-card {
	display: flex; flex-direction: column; gap: 14px;
	background: #fff; border-radius: 12px; overflow: hidden;
	border: 1px solid rgba(60,27,18,.08);
	transition: transform .4s var(--lnd-ease), box-shadow .4s var(--lnd-ease);
}
.pp-cs-card:hover { transform: translateY(-3px); box-shadow: 0 16px 28px rgba(60,27,18,.12); }
.pp-cs-img {
	display: block; width: 100%; height: 160px; overflow: hidden; text-decoration: none;
}
.pp-cs-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-cs-body { display: flex; flex-direction: column; gap: 10px; padding: 0 16px 16px; align-items: stretch; }
.pp-cs-name {
	display: block; text-decoration: none;
	font-family: var(--lnd-f-serif); font-weight: 400; font-size: 16px;
	line-height: 1.25; letter-spacing: .5px; color: var(--lnd-marrone);
	text-align: left; text-transform: uppercase;
	/*min-height: 2.5em;*/
}
.pp-cs-name:hover { color: rgba(60,27,18,.7); }
.pp-cs-btn {
	display: flex; align-items: center; justify-content: center; width: 100%;
	padding: 12px 14px; border: 1px solid var(--lnd-marrone); border-radius: 6px;
	background: transparent; color: var(--lnd-marrone);
	font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 500;
	letter-spacing: 1px; text-decoration: none;
	transition: background .3s var(--lnd-ease), color .3s var(--lnd-ease);
}
.pp-cs-btn:hover { background: var(--lnd-marrone); color: var(--lnd-beige); }

.pp-cert { display: flex; align-items: center; gap: 14px; }
.pp-cert-img { flex: none; width: 64px; height: 64px; object-fit: contain; }
.pp-cert-text {
	font-family: var(--lnd-f-sans); font-size: 11px; font-weight: 500;
	letter-spacing: 1.5px; text-transform: uppercase; color: rgba(60,27,18,.7); line-height: 1.6;
}

.pp-col-left-lower { padding-top: 48px; }
.pp-ing-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(28px, 2.5vw, 40px); text-transform: uppercase;
}
.pp-ing-text { font-family: var(--lnd-f-sans); font-size: 14px; line-height: 1.8; color: rgba(60,27,18,.85); }
.pp-ing-text b { font-weight: 600; }
.pp-nutr-title { margin: 12px 0 0; font-family: var(--lnd-f-sans); font-size: 16px; font-weight: 500; }
.pp-nutr-table { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-nutr-cell {
	flex: 1; min-width: 84px; padding: 10px 12px;
	background: #fff; border-radius: 6px; display: flex; flex-direction: column; gap: 2px;
}
.pp-nutr-cell span {
	font-family: var(--lnd-f-sans); font-size: 9px; letter-spacing: 1.5px;
	text-transform: uppercase; color: rgba(60,27,18,.55);
}
.pp-nutr-cell strong { font-family: var(--lnd-f-serif); font-size: 17px; font-weight: 400; }

.pp-col-center { width: 280px; position: relative; z-index: 10; }
.pp-pack-sticky { width: 100%; min-height: 600px; display: flex; align-items: center; justify-content: center; position: relative; padding: 60px 0; }
.pp-product-duo { position: relative; width: 100%; display: flex; align-items: center; justify-content: center; }
.pp-layer { display: block; max-width: 100%; max-height: 80%; object-fit: contain; position: relative; }
.pp-layer--product { z-index: 2; }
.pp-shadow {
	position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%);
	width: 220px; height: 28px;
	background: radial-gradient(ellipse at center, rgba(60,27,18,.25) 0%, rgba(60,27,18,0) 70%);
	pointer-events: none;
}

/* Right column purchase */
.pp-price-row { display: flex; flex-direction: row; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.pp-price-main { font-family: var(--lnd-f-sans); font-size: 40px; font-weight: 300; color: var(--lnd-marrone); }
.pp-price-main .woocommerce-Price-amount { font-family: inherit; }
.pp-price-sub { font-family: var(--lnd-f-sans); font-size: 12px; color: rgba(60,27,18,.6); line-height: 1.5; padding-bottom: 6px; max-width: 200px; }
.pp-rating { display: flex; align-items: center; gap: 10px; font-family: var(--lnd-f-sans); font-size: 13px; }
.pp-stars { color: var(--lnd-marrone); letter-spacing: 2px; }
.pp-rating strong { font-weight: 600; }
.pp-rating-count { color: rgba(60,27,18,.5); }
/* pp-qty: usa le classi .landolfi-mini-cart__qty del tema. Override locali per evitare
   conflitti con Elementor / WC quantity input. */
.pp-qty { align-self: flex-start; }
.pp-qty .landolfi-mini-cart__qty-input {
	-moz-appearance: textfield;
	background: transparent !important; padding: 0 !important;
	box-shadow: none !important; outline: none !important;
}
.pp-qty .landolfi-mini-cart__qty-input::-webkit-outer-spin-button,
.pp-qty .landolfi-mini-cart__qty-input::-webkit-inner-spin-button {
	-webkit-appearance: none; margin: 0;
}

.pp-flavors-label { font-family: var(--lnd-f-sans); font-size: 12px; font-weight: 500; display: block; margin-bottom: 12px; }
.pp-flavors-list { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-flavor {
	padding: 10px 18px; border: 1px solid rgba(60,27,18,.25); border-radius: 30px;
	background: transparent; color: var(--lnd-marrone); cursor: pointer;
	font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 1.5px;
	text-transform: uppercase; transition: background .3s, border-color .3s, font-weight .3s;
}
.pp-flavor.is-active { background: var(--lnd-sabbia); border-color: var(--lnd-sabbia); font-weight: 600; }
a.pp-flavor { text-decoration: none; }

.pp-cta-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.pp-cta-row .lnd-cta { flex: 0 0 auto; }

.pp-trust { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.pp-trust-pill {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; background: var(--lnd-beige2); border-radius: 24px;
	font-family: var(--lnd-f-sans); font-size: 11px; color: rgba(60,27,18,.75);
	letter-spacing: .3px;
}
.pp-trust-pill img { width: 16px; height: 16px; object-fit: contain; flex: none; }

.pp-info-box {
	background: #fff; border-radius: 20px; padding: 22px 24px;
	display: flex; flex-direction: column; gap: 14px;
}
.pp-info-box h4 {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 400; font-size: 18px; color: #1e1e1e;
}
.pp-info-box h4 em { font-style: italic; }
.pp-info-box ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pp-info-box li { font-family: var(--lnd-f-sans); font-size: 12px; line-height: 1.6; color: #1e1e1e; }
.pp-info-box strong { font-style: italic; font-weight: 600; }

/* Lower right (production panel) */
.pp-col-right-lower { padding-top: 32px; border-top: 1px solid rgba(60,27,18,.1); }
.pp-flag { display: flex; align-items: center; gap: 12px; }
.pp-flag-green, .pp-flag-white, .pp-flag-red { flex: 1; height: 6px; }
.pp-flag-green { background: #008c45; }
.pp-flag-white { background: #fff; }
.pp-flag-red   { background: #cd212a; }
.pp-flag-text {
	flex: 1; font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 2px;
	text-transform: uppercase; color: var(--lnd-marrone); padding-left: 12px;
}
.pp-lav-title { margin: 0; font-family: var(--lnd-f-serif); font-weight: 300; font-size: 28px; }
.pp-prod-specs { display: flex; gap: 16px; flex-wrap: wrap; }
.pp-prod-specs > div { flex: 1; min-width: 110px; display: flex; flex-direction: column; gap: 4px; padding: 14px; background: var(--lnd-beige2); border-radius: 8px; }
.pp-prod-specs span { font-family: var(--lnd-f-sans); font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: rgba(60,27,18,.5); }
.pp-prod-specs strong { font-family: var(--lnd-f-serif); font-size: 22px; font-weight: 400; }
.pp-ship-note {
	margin: 0; display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--lnd-f-sans); font-size: 12px; color: rgba(60,27,18,.75);
}
.pp-ship-note img { width: 20px; height: 20px; object-fit: contain; flex: none; }

/* Crostatina — position:fixed centrata viewport. z-index BASSO: il pack la copre.
   Scrollando, il pack sale via, lasciando emergere la crostatina rimasta ferma. */
.pp-cr-fixed {
	position: fixed; top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1; pointer-events: none;
	opacity: 1;
	transition: opacity .8s var(--lnd-ease-out);
}
.pp-cr-fixed.is-hidden { opacity: 0; }
.pp-cr-fixed img {
	display: block;
	width: 210px; max-height: 42vh; object-fit: contain;
	filter:
		drop-shadow(0 4px 8px rgba(60,27,18,.18))
		drop-shadow(0 22px 36px rgba(60,27,18,.28))
		drop-shadow(0 44px 64px rgba(60,27,18,.18));
}

/* Spicchi orbitanti */
.pp-spicchi-overlay {
	position: fixed; left: 50%; top: 72px; transform: translateX(-50%);
	width: 280px; height: calc(100vh - 72px); z-index: 6;
	pointer-events: none;
}
.pp-spicchio {
	position: absolute; opacity: 0;
	transform: scale(.7) translateY(40px);
	/* Exit veloce e senza ritardo: scompare in modo netto. */
	transition:
		opacity .6s cubic-bezier(.4,0,.2,1),
		transform .6s cubic-bezier(.4,0,.2,1);
	/* Shadow decisa, meno sfocata: contorno netto */
	filter:
		drop-shadow(0 3px 2px rgba(60,27,18,.35))
		drop-shadow(0 24px 10px rgba(60,27,18,.45))
		drop-shadow(0 48px 24px rgba(60,27,18,.22));
}
.pp-spicchio.sp-visible {
	opacity: .9;
	transform: scale(1) translateY(0);
	/* Entry lento ed elegante con cascade delay. Poi fermi. */
	transition:
		opacity 1.4s cubic-bezier(.22,1,.36,1) var(--sp-delay, 0ms),
		transform 1.4s cubic-bezier(.22,1,.36,1) var(--sp-delay, 0ms);
}
/* Posizionati più in basso e leggermente più verso il centro orizzontale. */
.pp-spicchio--1 { width: 76px; height: 76px; top: 38%; right: -52px;  --sp-delay: 0ms;   --sp-float: 7s;   --sp-float-delay: 1.6s; }
.pp-spicchio--2 { width: 66px; height: 66px; bottom: 30%; left: -50px; --sp-delay: 260ms; --sp-float: 5.5s; --sp-float-delay: 2s; }
.pp-spicchio--3 { width: 62px; height: 62px; top: 72%; right: -44px;   --sp-delay: 520ms; --sp-float: 6.2s; --sp-float-delay: 2.4s; }
@keyframes ppFloat {
	0%, 100% { transform: scale(1) translateY(0); }
	50%      { transform: scale(1) translateY(-12px); }
}
.pp-sp-inner {
	display: block; width: 100%; height: 100%;
	animation: spCW 28s linear infinite;
}
.pp-spicchio--2 .pp-sp-inner { animation: spCCW 22s linear infinite; }
.pp-spicchio--3 .pp-sp-inner { animation: spCW 26s linear infinite; }
.pp-sp-inner img { width: 100%; height: 100%; object-fit: contain; }
@keyframes spCW  { to { transform: rotate(360deg); } }
@keyframes spCCW { to { transform: rotate(-360deg); } }

/* Editorial sections */
.pp-section {
	display: grid; grid-template-columns: 1fr 1fr; min-height: 520px;
	position: relative; z-index: 10; background: var(--lnd-beige);
}
.pp-section--rev .pp-section-img  { order: 2; }
.pp-section--rev .pp-section-text { order: 1; }
.pp-section-img { position: relative; overflow: hidden; }
.pp-section-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-section--contain .pp-section-img { background: var(--lnd-beige); }
.pp-section--contain .pp-section-img img { object-fit: contain; padding: 32px; }
.pp-section-text {
	padding: 52px 64px; display: flex; flex-direction: column;
	justify-content: center; gap: 22px;
}
/* Tutte le sezioni hanno lo stesso bg beige (pp-section base). Le classi --beige/--beige2/--sabbia restano per retro-compat ma non applicano più bg. */
.pp-section-label {
	font-family: var(--lnd-f-sans); font-size: 10px; letter-spacing: 4px;
	text-transform: uppercase; color: rgba(60,27,18,.5);
}
.pp-section-title {
	margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(34px, 3vw, 50px); line-height: 1.1; color: var(--lnd-marrone);
}
.pp-section-body { font-family: var(--lnd-f-sans); font-size: 14px; font-weight: 300; line-height: 1.85; color: rgba(60,27,18,.75); max-width: 480px; }
.pp-bullets { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.pp-bullet {
	display: flex; align-items: flex-start; gap: 14px;
	font-family: var(--lnd-f-sans); font-size: 14px; line-height: 1.6; color: rgba(60,27,18,.85);
}
.pp-bullet-icon {
	flex: none; width: 28px; height: 28px; object-fit: contain;
	display: block; margin-top: 2px;
}

/* Materie (sezione 2: showcase 3 ingredienti) */
.pp-materie {
	padding: 100px 100px; background: var(--lnd-beige); position: relative; z-index: 10;
	display: flex; flex-direction: column; gap: 56px;
}
.pp-materie-cover { width: 100%; height: 360px; overflow: hidden; position: relative; }
.pp-materie-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-materie-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.pp-materia { display: flex; flex-direction: column; gap: 18px; align-items: center; text-align: center; }
.pp-materia-img {
	width: 200px; height: 200px; border-radius: 50%;
	background: var(--lnd-beige2); overflow: hidden;
	display: flex; align-items: center; justify-content: center;
}
.pp-materia-img img { width: 80%; height: 80%; object-fit: contain; display: block; }
.pp-materia-name { margin: 0; font-family: var(--lnd-f-serif); font-weight: 400; font-size: 24px; color: var(--lnd-marrone); }
.pp-materia-desc { margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300; line-height: 1.85; color: rgba(60,27,18,.7); max-width: 280px; }

/* Reviews */
.pp-reviews { padding: 100px; background: var(--lnd-beige2); position: relative; z-index: 10; }
.pp-reviews-title {
	margin: 0 0 48px; text-align: center;
	font-family: var(--lnd-f-serif); font-weight: 300;
	font-size: clamp(30px, 3vw, 44px); color: var(--lnd-marrone);
}
.pp-reviews-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
	background: rgba(60,27,18,.1);
}
.pp-rev-card {
	background: var(--lnd-beige2); padding: 40px 32px;
	display: flex; flex-direction: column; gap: 16px;
}
.pp-rev-stars { color: var(--lnd-sabbia); font-size: 16px; letter-spacing: 4px; }
.pp-rev-title { margin: 0; font-family: var(--lnd-f-serif); font-weight: 500; font-size: 22px; color: var(--lnd-marrone); line-height: 1.3; }
.pp-rev-body { margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300; line-height: 1.85; color: rgba(60,27,18,.7); }
.pp-rev-author { font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: rgba(60,27,18,.5); }

/* Boxes upsell */
.pp-boxes { padding: 100px; background: var(--lnd-beige); position: relative; z-index: 10; }
.pp-boxes-label { display: block; margin-bottom: 12px; font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: rgba(60,27,18,.5); }
.pp-boxes-title { margin: 0 0 48px; font-family: var(--lnd-f-serif); font-weight: 300; font-size: clamp(32px, 3vw, 48px); color: var(--lnd-marrone); }
.pp-boxes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.pp-box-card {
	display: flex; flex-direction: column; text-decoration: none; color: var(--lnd-marrone);
	border: 1px solid rgba(60,27,18,.12); transition: border-color .4s var(--lnd-ease);
}
.pp-box-card:hover { border-color: var(--lnd-marrone); }
.pp-box-img { position: relative; padding-bottom: 58%; background: var(--lnd-beige2); overflow: hidden; }
.pp-box-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 20px; }
.pp-box-meta { padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.pp-box-name { margin: 0; font-family: var(--lnd-f-serif); font-weight: 300; font-size: clamp(18px, 1.8vw, 26px); color: var(--lnd-marrone); }
.pp-box-desc { margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; color: rgba(60,27,18,.6); }
.pp-box-price { font-family: var(--lnd-f-serif); font-size: 28px; font-weight: 300; color: var(--lnd-marrone); }

@media (max-width: 1200px) {
	.pp-hero { grid-template-columns: 1fr 240px 1fr; }
	.pp-col-left  { padding: 60px 40px 60px 60px; }
	.pp-col-right { padding: 60px 60px 60px 40px; }
	.pp-reviews, .pp-boxes { padding: 80px 60px; }
}
@media (max-width: 960px) {
	/* Mobile order: title → foto → buy → rest. Display:contents promuove i child di col-* in .pp-hero (flex column). */
	.pp-hero {
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: 1fr !important;
		gap: 28px;
		padding: 96px 20px 24px;
	}
	.pp-col-left,
	.pp-col-right,
	.pp-col-left-upper {
		display: contents !important;
	}
	.pp-col-left > .pp-col-left-upper,
	.pp-col-left > .pp-col-left-lower,
	.pp-col-right > .pp-buy,
	.pp-col-right > .pp-col-right-lower { padding: 0 !important; }
	.pp-title-block      { order: 1; }
	.pp-subtitle         { order: 2; font-weight: 400 !important; line-height: 1.3 !important; font-size: 13px; letter-spacing: 1px; }
	.pp-col-center       { order: 3; width: 100%; }
	.pp-buy              { order: 4; display: flex; flex-direction: column; gap: 18px; }
	.pp-desc             { order: 5; }
	.pp-crosssell        { order: 6; }
	.pp-cert             { order: 7; }
	.pp-col-left-lower   { order: 8; display: flex; flex-direction: column; gap: 14px; }
	.pp-col-right-lower  { order: 9; display: flex; flex-direction: column; gap: 14px; }
	.pp-pack-sticky { position: relative; top: auto; min-height: 360px; padding: 24px 0; }
	.pp-section, .pp-section--rev { grid-template-columns: 1fr; min-height: auto; }
	/* Mobile: forza pattern uniforme img→text per evitare bordi text-text o img-img tra sezioni. */
	.pp-section .pp-section-img,
	.pp-section--rev .pp-section-img { order: 1 !important; }
	.pp-section .pp-section-text,
	.pp-section--rev .pp-section-text { order: 2 !important; }
	.pp-section-img { min-height: 280px; height: auto; aspect-ratio: 4/3; }
	.pp-section--contain .pp-section-img { aspect-ratio: 1/1; padding: 0; }
	.pp-section--contain .pp-section-img img { padding: 20px; }
	.pp-reviews-grid { grid-template-columns: 1fr; }
	.pp-boxes-grid { grid-template-columns: 1fr; }
	.pp-spicchi-overlay { display: none; }
	.pp-cr-fixed { display: none !important; }
	.pp-materie { padding: 80px 60px; gap: 40px; }
	.pp-materie-list { grid-template-columns: 1fr; gap: 32px; }
	.pp-materie-cover { height: 280px; }
	.pp-materia-img { width: 160px; height: 160px; }
}
@media (max-width: 600px) {
	.pp-hero { padding: 92px 16px 20px; gap: 24px; }
	.pp-col-left-lower { padding-top: 0; }
	.pp-pack-sticky { min-height: 280px; padding: 18px 0; }
	.pp-layer { max-height: 240px; }
	.pp-title-line1, .pp-title-line2 { font-size: clamp(28px, 8vw, 38px); letter-spacing: 2px; }
	.pp-subtitle { font-size: 13px; letter-spacing: 1px; font-weight: 400; line-height: 1.3; }
	.pp-desc { font-size: 14px; }
	.pp-price-row { gap: 10px; }
	.pp-price-main { font-size: 30px; }
	.pp-price-sub { font-size: 11px; max-width: 180px; padding-bottom: 4px; }
	.pp-rating { font-size: 12px; gap: 8px; }
	.pp-rating-count { font-size: 11px; }
	.pp-cta-row { flex-direction: column; align-items: stretch; gap: 10px; }
	.pp-cta-row .lnd-cta { width: 100%; padding: 14px 20px; }
	.pp-trust { gap: 8px; flex-wrap: wrap; }
	.pp-trust-pill { padding: 8px 12px; font-size: 10px; letter-spacing: 1.5px; }
	.pp-trust-pill img { width: 14px; height: 14px; }
	.pp-info-box { padding: 20px; }
	.pp-info-box h4 { font-size: 18px; }
	.pp-info-box ul { font-size: 12px; line-height: 1.7; }
	.pp-cs-cards { grid-template-columns: 1fr; gap: 14px; }
	.pp-cs-label { font-size: 11px; letter-spacing: 2px; }
	.pp-nutr-table { gap: 6px; }
	.pp-nutr-cell { padding: 8px 10px; min-width: 70px; }
	.pp-nutr-cell span { font-size: 9px; letter-spacing: 1px; }
	.pp-nutr-cell strong { font-size: 15px; }
	.pp-ing-title { font-size: 18px; }
	.pp-ing-text { font-size: 13px; line-height: 1.7; }
	.pp-cert { gap: 10px; }
	.pp-cert-img { width: 52px; height: 52px; }
	.pp-cert-text { font-size: 11px; line-height: 1.5; }
	.pp-flag { gap: 6px; }
	.pp-flag-text { font-size: 11px; letter-spacing: 2px; }
	.pp-lav-title { font-size: 22px; margin: 12px 0 16px; }
	.pp-prod-specs { grid-template-columns: repeat(3, 1fr); gap: 10px; }
	.pp-prod-specs div { padding: 18px 14px; text-align: center; display: flex; flex-direction: column; gap: 6px; align-items: center; }
	.pp-prod-specs span { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; opacity: .65; }
	.pp-prod-specs strong { font-size: 17px; font-family: var(--lnd-f-serif); font-weight: 400; line-height: 1.1; }
	.pp-ship-note { font-size: 11px; gap: 8px; }
	.pp-flavors-list { gap: 8px; flex-wrap: wrap; }
	.pp-flavor { padding: 8px 14px; font-size: 11px; letter-spacing: 1.5px; }
	.pp-section-text { padding: 36px 20px; gap: 16px; }
	.pp-section-label { font-size: 9px; letter-spacing: 3px; }
	.pp-section-title { font-size: clamp(24px, 7vw, 32px); }
	.pp-section-body { font-size: 13px; line-height: 1.7; }
	.pp-bullet { font-size: 13px; gap: 10px; }
	.pp-bullet-icon { width: 22px; height: 22px; }
	.pp-section--contain .pp-section-img { aspect-ratio: 4/3; }
	.pp-reviews, .pp-boxes { padding: 56px 20px; }
	.pp-reviews-title, .pp-boxes-title { font-size: clamp(26px, 7vw, 36px); margin-bottom: 28px; }
	.pp-rev-card { padding: 28px 20px; gap: 12px; }
	.pp-rev-title { font-size: 18px; }
	.pp-rev-body { font-size: 12px; }
	.pp-box-meta { padding: 22px; gap: 10px; }
	.pp-box-name { font-size: 18px; }
	.pp-box-desc { font-size: 12px; }
	.pp-box-price { font-size: 22px; }
}

@media (max-width: 480px) {
	.pp-hero { padding: 88px 12px 16px; gap: 20px; }
	.pp-pack-sticky { min-height: 240px; }
	.pp-layer { max-height: 200px; }
	.pp-title-line1, .pp-title-line2 { font-size: clamp(24px, 9vw, 32px); }
	.pp-price-main { font-size: 26px; }
	.pp-section-text { padding: 28px 16px; }
	.pp-reviews, .pp-boxes { padding: 48px 16px; }
}


/* ============================================================
   PRELOADER (prima volta della sessione)
   ============================================================ */
html.lnd-preloader-active,
html.lnd-preloader-active body { overflow: hidden !important; }
html.lnd-preloader-skip .lnd-preloader { display: none !important; }

.lnd-preloader {
    position: fixed; inset: 0; z-index: 99999;
    display: flex; align-items: center; justify-content: center;
    background: var(--lnd-beige, #efe6d6);
    transition: opacity .7s var(--lnd-ease, cubic-bezier(.2,.8,.2,1)),
                visibility .7s var(--lnd-ease, cubic-bezier(.2,.8,.2,1));
}
.lnd-preloader.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }

.lnd-preloader__inner {
    display: flex; flex-direction: column; align-items: center; gap: 24px;
    padding: 0 24px;
    animation: lndPreFade .6s var(--lnd-ease, cubic-bezier(.2,.8,.2,1));
}
.lnd-preloader__logo {
    display: block !important;
    height: 44px !important;
    width: auto !important;
    max-width: 70vw !important;
    max-height: 44px !important;
    opacity: .95;
    object-fit: contain;
}
.lnd-preloader__brand {
    font-family: var(--lnd-f-serif, 'Cormorant Garamond', serif);
    font-size: clamp(24px, 4vw, 32px); letter-spacing: 5px; color: var(--lnd-marrone, #3c1b12);
    text-transform: uppercase;
}
.lnd-preloader__bar {
    position: relative; width: 140px; max-width: 60vw; height: 2px;
    background: rgba(60, 27, 18, .12); overflow: hidden; border-radius: 2px;
}
.lnd-preloader__bar span {
    position: absolute; top: 0; bottom: 0; left: -40%; width: 40%;
    background: var(--lnd-marrone, #3c1b12);
    animation: lndPreBar 1.2s var(--lnd-ease, cubic-bezier(.2,.8,.2,1)) infinite;
}
@keyframes lndPreBar {
    0%   { left: -40%; }
    100% { left: 100%; }
}
@keyframes lndPreFade {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}
@media (max-width: 600px) {
    .lnd-preloader__inner { gap: 18px; }
    .lnd-preloader__logo { height: 36px !important; max-height: 36px !important; }
    .lnd-preloader__brand { font-size: 22px; letter-spacing: 4px; }
    .lnd-preloader__bar { width: 110px; }
}

/* ============================================================
   SHOP — unione categorie (archive-product.php)
   ============================================================ */
.lnd-shop { display: block; }
.lnd-shop__cat { position: relative; }
.lnd-shop__cat + .lnd-shop__cat { border-top: 1px solid rgba(60,27,18,.08); }

.lnd-shop__cat-header {
    max-width: 820px; margin: 0 auto 56px; padding: 80px 24px 0px; text-align: center;
    display: flex; flex-direction: column; gap: 14px; color: var(--lnd-marrone);
}
.lnd-shop__cat-eyebrow {
    font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 5px;
    text-transform: uppercase; color: rgba(60,27,18,.55);
}
.lnd-shop__cat-title {
    margin: 0; font-family: var(--lnd-f-serif); font-weight: 300;
    font-size: clamp(32px, 4vw, 52px); letter-spacing: 6px; text-transform: uppercase;
    color: var(--lnd-marrone);
}
.lnd-shop__cat-sub {
    margin: 0 auto; max-width: 560px;
    font-family: var(--lnd-f-sans); font-size: 13px; font-weight: 300;
    line-height: 1.7; color: rgba(60,27,18,.6);
}
.lnd-shop__cat-descr {
    margin: 6px auto 0; max-width: 640px;
    font-family: var(--lnd-f-sans); font-size: 15px; font-weight: 300;
    line-height: 1.7; color: rgba(60,27,18,.8);
}
.lnd-shop__cat-descr p { margin: 0 0 12px; }
.lnd-shop__cat-descr p:last-child { margin-bottom: 0; }
.lnd-shop__cat-footer { display: flex; justify-content: center; margin-top: 56px; }

@media (max-width: 768px) {
    .lnd-shop__cat-header { margin-bottom: 36px; }
    .lnd-shop__cat-footer { margin-top: 40px; }
}

/* ============================================================
   SHOP slider per sezione
   ============================================================ */
.lnd-shop__slider-wrap {
    position: relative;
    max-width: 1700px;
    margin: 0 auto;
    padding: 0 80px;
}
/* Swiper shop: lascio gestire layout nativo Swiper, niente override aggressivi. */
.lnd-shop__swiper {
    width: 100%;
    padding-top: 60px;
    padding-bottom: 24px;
}
.lnd-shop__swiper .swiper-slide {
    height: auto;
    box-sizing: border-box;
}
.lnd-shop__swiper .swiper-slide .lnd-album-item {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}
button.lnd-shop__nav,
.lnd-shop__nav {
    position: absolute !important;
    top: 40% !important;
    transform: translateY(-50%) !important;
    z-index: 5 !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border: 1px solid rgba(60,27,18,.2) !important;
    background: transparent !important;
    color: var(--lnd-marrone) !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    font-size: 0 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transition: background .25s var(--lnd-ease), color .25s var(--lnd-ease), border-color .25s var(--lnd-ease), transform .25s var(--lnd-ease) !important;
}
.lnd-shop__nav svg {
    width: 16px !important;
    height: 16px !important;
    stroke-width: 1.8 !important;
    stroke: currentColor !important;
    fill: none !important;
    display: block !important;
}
.lnd-shop__nav:hover {
    background: var(--lnd-marrone) !important;
    color: var(--lnd-beige) !important;
    border-color: var(--lnd-marrone) !important;
}
.lnd-shop__nav--prev { left: 20px; }
.lnd-shop__nav--next { right: 20px; }
.lnd-shop__nav--prev:hover { transform: translateY(-50%) translateX(-3px); }
.lnd-shop__nav--next:hover { transform: translateY(-50%) translateX(3px); }
.lnd-shop__nav:focus-visible {
    outline: 2px solid var(--lnd-marrone);
    outline-offset: 3px;
}
.lnd-shop__nav.swiper-button-disabled {
    opacity: .25;
    cursor: default;
    pointer-events: none;
}
.lnd-shop__nav.swiper-button-lock,
.lnd-shop__swiper.swiper-lock + .lnd-shop__nav,
.lnd-shop__slider-wrap.is-locked .lnd-shop__nav {
    display: none !important;
}

@media (max-width: 900px) {
    .lnd-shop__slider-wrap { padding: 0 32px; }
    .lnd-shop__nav { width: 40px; height: 40px; }
    .lnd-shop__nav--prev { left: 0; }
    .lnd-shop__nav--next { right: 0; }
}
@media (max-width: 767px) {
    .lnd-shop__slider-wrap { padding: 0 16px; }
    .lnd-shop__nav { display: none !important; }
    /* Slider lnd-lprod nascosto su mobile. */
    .lnd-lprod { display: none !important; }
}

/* ============================================================
   FOOTER (.landolfi-footer)
   ============================================================ */
.landolfi-footer {
    background: var(--lnd-beige);
    color: var(--lnd-marrone);
    padding: 80px 80px 28px;
    font-family: var(--lnd-f-sans);
    font-size: 12px;
    letter-spacing: 1px;
}
.landolfi-footer__top {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 22px;
    margin-bottom: 72px;
}
.landolfi-footer__logo img { display: block; height: 80px; width: auto; }
.landolfi-footer__claim {
    margin: 0; max-width: 560px;
    font-family: var(--lnd-f-serif); font-size: 19px; font-weight: 400; font-style: italic;
    line-height: 1.55; color: var(--lnd-marrone); letter-spacing: .2px; text-align: center;
}
.landolfi-footer__grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr 1fr 1fr 1.5fr;
    gap: 56px;
    align-items: start;
}
.landolfi-footer__col { display: flex; flex-direction: column; gap: 14px; }
.landolfi-footer__col--cert,
.landolfi-footer__col--social { align-items: flex-start; }
.landolfi-footer__title {
    margin: 0 0 4px;
    font-family: var(--lnd-f-sans);
    font-size: 11px;
    letter-spacing: 3px;
    font-weight: 300;
    color: var(--lnd-marrone);
    text-transform: uppercase;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(60,27,18,.2);
}
.landolfi-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.landolfi-footer__menu a,
.landolfi-footer__col a {
    color: var(--lnd-marrone);
    text-decoration: none;
    transition: opacity .25s ease;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 200;
    opacity: 1;
}
.landolfi-footer__menu a:hover,
.landolfi-footer__col a:hover { opacity: .6; }
.landolfi-footer__block {
    display: flex; flex-direction: column; gap: 2px;
    line-height: 1.6;
    font-size: 11px;
    color: var(--lnd-marrone);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 200;
}
.landolfi-footer__block p { margin: 0; }
.landolfi-footer__block--inline { gap: 4px; font-weight: 300; }
.landolfi-footer__label {
    font-weight: 400;
    color: var(--lnd-marrone);
    letter-spacing: 1.5px;
    font-size: 11px;
    text-transform: uppercase;
    margin-bottom: 2px;
}
.landolfi-footer__cert {
    display: flex; align-items: center; justify-content: center;
    margin-top: 4px;
}
.landolfi-footer__cert img { display: block; width: 70px; height: 70px; object-fit: contain; }
.landolfi-footer__social { display: flex; gap: 16px; margin-top: 4px; }
.landolfi-footer__social a { color: var(--lnd-marrone); transition: opacity .25s ease; opacity: .8; }
.landolfi-footer__social a:hover { opacity: 1; }
.landolfi-footer__social svg { width: 22px; height: 22px; }
.landolfi-footer__title--news {
    line-height: 1.4;
    letter-spacing: 2.5px;
    font-size: 11px;
    font-weight: 400;
    color: var(--lnd-marrone);
    text-transform: uppercase;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(60,27,18,.2);
    margin-bottom: 4px;
}
.landolfi-footer__news-text {
    margin: 0; line-height: 1.6;
    color: var(--lnd-marrone);
    font-size: 12px;
    letter-spacing: .3px;
    max-width: 340px;
    text-transform: none;
    font-weight: 300;
}
.landolfi-footer__news-form { margin-top: 14px; display: block; }
.landolfi-footer__news-form form,
.landolfi-footer__news-form .wpcf7-form { display: flex; flex-direction: column; gap: 18px; }
.landolfi-footer__news-form p { margin: 0; }
.landolfi-footer__news-form input[type="email"],
.landolfi-footer__news-form input[type="text"] {
    width: 100%; padding: 10px 0; border: 0; border-bottom: 1px solid rgba(60,27,18,.3);
    background: transparent; color: var(--lnd-marrone); font-family: inherit; font-size: 14px;
    letter-spacing: .3px; outline: none; transition: border-color .25s ease;
    border-radius: 0; box-shadow: none;
}
.landolfi-footer__news-form input[type="email"]::placeholder,
.landolfi-footer__news-form input[type="text"]::placeholder { color: rgba(60,27,18,.4); font-style: normal; }
.landolfi-footer__news-form input[type="email"]:focus,
.landolfi-footer__news-form input[type="text"]:focus { border-bottom-color: var(--lnd-marrone); }
.landolfi-footer__news-form input[type="submit"],
.landolfi-footer__news-form button[type="submit"],
.landolfi-footer__news-form .wpcf7-submit,
.landolfi-footer__news-form .cf7-btn,
.landolfi-footer__news-form input.bottone-sabbia {
    width: 100% !important;
    margin: 0 !important;
    padding: 20px 22px !important;
    background: var(--lnd-sabbia, #D4C59E) !important;
    color: var(--lnd-marrone) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 12px !important;
    letter-spacing: 5px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    cursor: pointer;
    transition: background .3s var(--lnd-ease), color .3s var(--lnd-ease) !important;
    display: block !important;
    line-height: 1.2 !important;
}
.landolfi-footer__news-form input[type="submit"]:hover,
.landolfi-footer__news-form button[type="submit"]:hover,
.landolfi-footer__news-form .wpcf7-submit:hover,
.landolfi-footer__news-form .cf7-btn:hover,
.landolfi-footer__news-form input.bottone-sabbia:hover {
    background: var(--lnd-marrone) !important;
    color: var(--lnd-beige) !important;
}
.landolfi-footer__news-form .bottone-sabbia::after { display: none !important; }
.landolfi-footer__news-form .cf7-input,
.landolfi-footer__news-form input.wpcf7-email,
.landolfi-footer__news-form input.wpcf7-text {
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(60,27,18,.3) !important;
    border-radius: 0 !important;
    padding: 10px 0 !important;
    font-size: 14px !important;
    font-family: 'Montserrat', sans-serif !important;
    letter-spacing: .3px !important;
    color: var(--lnd-marrone) !important;
    text-transform: none !important;
    box-shadow: none !important;
    outline: none !important;
}
.landolfi-footer__news-form .cf7-input:focus,
.landolfi-footer__news-form input.wpcf7-email:focus,
.landolfi-footer__news-form input.wpcf7-text:focus {
    border-bottom-color: var(--lnd-marrone) !important;
    box-shadow: none !important;
    background: transparent !important;
}
.landolfi-footer__news-form .cf7-field,
.landolfi-footer__news-form .cf7-submit-wrap { margin: 0 !important; }
.landolfi-footer__news-form .cf7-newsletter { display: flex; flex-direction: column; gap: 18px; }
.landolfi-footer__news-form .cf7-newsletter p { margin: 0; }
.landolfi-footer__news-form .wpcf7-spinner { display: none; }
.landolfi-footer__pay { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.landolfi-footer__pay svg { width: 38px; height: auto; display: block; }
.landolfi-footer__pay .footer-payment { display: inline-flex; }
.landolfi-footer__bottom {
    margin-top: 60px;
    padding-top: 22px;
    text-align: center;
}
.landolfi-footer__bottom p {
    margin: 0;
    font-size: 11px;
    letter-spacing: 2px;
    color: var(--lnd-marrone);
    text-transform: uppercase;
    font-weight: 300;
    opacity: .85;
}
.landolfi-footer__bottom a { color: var(--lnd-marrone); text-decoration: none; }
.landolfi-footer__bottom a:hover { opacity: .65; }

/* ============================================================
   MOBILE PASS — breakpoint sistematico <600 e <480
   ============================================================ */

@media (max-width: 900px) {
    /* Widget sections heavy padding */
    .lnd-passione__text { grid-template-columns: 1fr !important; gap: 32px !important; padding: 60px 32px !important; }
    .lnd-fslider { padding: 60px 32px !important; }
    .lnd-boxes,
    .lnd-news,
    .lnd-reviews { padding: 80px 32px !important; }
    .lnd-brand { padding: 100px 32px 80px !important; gap: 40px !important; }
    .lnd-hero__content { padding: 0 32px 4vh !important; }
    .landolfi-footer { padding: 48px 32px 24px; }
    .landolfi-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }
}

@media (max-width: 600px) {
    /* Hero / titoli */
    .lnd-hero__content { padding: 0 20px 6vh !important; }
    .lnd-album-hero { height: auto !important; min-height: 0 !important; }
    .lnd-album-hero-title { font-size: clamp(28px, 9vw, 44px); letter-spacing: 4px; }
    .lnd-album-hero-content { padding: 0 20px; gap: 14px; }
    .lnd-album-hero-eyebrow { font-size: 10px; letter-spacing: 3px; }
    .lnd-album-hero-description { font-size: 14px; }

    /* Sezioni Elementor: padding compatti */
    .lnd-fslider { padding: 48px 20px !important; }
    .lnd-boxes,
    .lnd-news,
    .lnd-reviews { padding: 60px 20px !important; }
    .lnd-brand { padding: 70px 20px 60px !important; gap: 32px !important; }
    .lnd-passione__text { padding: 48px 20px !important; gap: 24px !important; }

    /* Categoria — album */
    .lnd-album-grid-section { padding: 60px 16px 80px; }
    .lnd-album-cover { padding: 70px 18% 0; min-height: 280px; }
    .lnd-album-cover-img { height: 140px; }
    .lnd-album-cover-img-hover { width: 32%; max-width: 90px; bottom: 38%; }
    .lnd-album-meta { gap: 10px; }
    .lnd-album-title { font-size: clamp(16px, 5vw, 20px); }
    .lnd-album-cta { padding: 10px 22px; font-size: 10px; letter-spacing: 2px; }

    /* Shop header sezione */
    .lnd-shop__cat-header { margin-bottom: 28px; padding: 0 20px; gap: 10px; }
    .lnd-shop__cat-title { font-size: clamp(26px, 8vw, 38px); letter-spacing: 4px; }
    .lnd-shop__cat-eyebrow { font-size: 10px; letter-spacing: 3px; }
    .lnd-shop__cat-descr { font-size: 13px; }
    .lnd-shop__cat-footer { margin-top: 32px; }
    .lnd-shop__slider-wrap { padding: 0 12px; }

    /* PDP single-product alt: padding ridotti */
    .pp-section-text { padding: 36px 20px !important; gap: 16px !important; }
    .pp-section { min-height: auto !important; }
    .pp-section-title { font-size: clamp(24px, 7vw, 32px) !important; }
    .pp-section-body { font-size: 13px !important; line-height: 1.7 !important; }
    .pp-reviews,
    .pp-boxes { padding: 56px 20px !important; }
    .pp-cta-row { flex-direction: column !important; gap: 10px !important; align-items: stretch !important; }
    .pp-cta-row .lnd-cta { width: 100% !important; padding: 14px 20px !important; }

    /* Footer */
    .landolfi-footer { padding: 40px 20px 20px; }
    .landolfi-footer__grid { grid-template-columns: 1fr; gap: 28px; padding-top: 32px; }
    .landolfi-footer__top { gap: 14px; margin-bottom: 40px; }
    .landolfi-footer__logo img { height: 52px; }
    .landolfi-footer__claim { font-size: 14px; }
    .landolfi-footer__bottom { margin-top: 32px; }
    .landolfi-footer__bottom p { font-size: 9px; letter-spacing: 1px; }
    .landolfi-footer__pay svg { width: 32px; }
}

@media (max-width: 480px) {
    .lnd-album-hero { height: auto !important; min-height: 0 !important; }
    .lnd-album-hero-title { font-size: clamp(24px, 10vw, 36px); letter-spacing: 3px; }
    .lnd-album-cover { padding: 56px 14% 0; min-height: 240px; }
    .lnd-album-cover-img { height: 120px; }
    .lnd-album-cover-img-hover { width: 30%; max-width: 76px; }
    .lnd-album-grid-section { padding: 44px 12px 60px; }
    .lnd-album-grid { gap: 32px !important; }
    .lnd-shop__cat-title { font-size: clamp(22px, 9vw, 32px); }
    .pp-section-title { font-size: 22px !important; }
    .pp-section-text { padding: 28px 16px !important; }
    .landolfi-footer__logo img { height: 44px; }
    .landolfi-footer__claim { font-size: 13px; }
    .landolfi-footer__title { font-size: 11px; letter-spacing: 1.5px; }
}

/* ============================================================
   ELEMENTOR mobile overrides — fix padding eccessivo + immagine
   passione orizzontale (no spazio sotto).
   ============================================================ */

/* Immagine passione orizzontale: dimensione nativa, zero spazio sotto. */
@media (max-width: 900px) {
    .lnd-passione__img {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        display: block;
        line-height: 0;
    }
    .lnd-passione__img img {
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
        object-fit: contain !important;
        display: block !important;
        margin: 0 !important;
    }
}

/* Elementor container ID-targeted (utente segnala padding eccessivo). */
@media (max-width: 768px) {
    .elementor-element.elementor-element-231a539,
    .elementor-element.elementor-element-231a539.e-con {
        padding: 24px 16px !important;
    }
    .elementor-element.elementor-element-195f840,
    .elementor-element.elementor-element-195f840.e-con {
        padding-top: 24px !important;
        margin-top: 0 !important;
    }
}
@media (max-width: 480px) {
    .elementor-element.elementor-element-231a539,
    .elementor-element.elementor-element-231a539.e-con {
        padding: 18px 12px !important;
    }
    .elementor-element.elementor-element-195f840,
    .elementor-element.elementor-element-195f840.e-con {
        padding-top: 16px !important;
    }
}


/* ============================================================
   HERO immagini bg: forza fill su mobile (fix object-fit + height %)
   ============================================================ */
@media (max-width: 900px) {
    .cs-hero-bg,
    .lnd-hero__bg {
        position: absolute !important;
        inset: 0 !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 100% !important;
        min-height: 100% !important;
        max-width: none !important;
        max-height: none !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
    }
    .cs-hero,
    .lnd-hero {
        height: 100svh;
        min-height: 480px;
    }
}
@media (max-width: 600px) {
    .cs-hero,
    .lnd-hero {
        height: 80svh;
        min-height: 420px;
    }
}

/* ============================================================
   NAV — submenu Prodotti (desktop dropdown + mobile accordion)
   ============================================================ */
/* Indicatore chevron sul parent con figli */
.navbar__list li.menu-item-has-children > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.navbar__list li.menu-item-has-children > a::before {
    content: '\25BE';
    order: 2;
    margin-right: 0;
    font-size: 9px;
    color: inherit;
    opacity: .7;
    transition: transfor
}
.navbar__list li.menu-item-has-children:hover > a::before { transform:
rotate(180deg); }

/* Dropdown desktop */
.navbar__list .sub-menu {
    position: absolute;
    top: calc(100% + 16px);
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    min-width: 220px;
    background: var(--lnd-beige);
    list-style: none;
    margin: 0;
    padding: 14px 0;
    box-shadow: 0 12px 36px rgba(60,27,18,.14);
    border: 1px solid rgba(60,27,18,.08);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s var(--lnd-ease), transform .3s var(--lnd-ease), visibility 0s linear .3s;
    z-index: 10;
}
.navbar__list .sub-menu::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 14px;
    height: 14px;
    background: var(--lnd-beige);
    border-left: 1px solid rgba(60,27,18,.08);
    border-top: 1px solid rgba(60,27,18,.08);
}
.navbar__list li.menu-item-has-children:hover > .sub-menu,
.navbar__list li.menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    transition-delay: 0s;
}
.navbar__list .sub-menu li { position: relative; }
.navbar__list .sub-menu a {
    display: block !important;
    padding: 10px 22px !important;
    font-size: 11px;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--lnd-marrone) !important;
    text-decoration: none;
    transition: background .25s ease, color .25s ease;
    border-bottom: 0;
}
.navbar__list .sub-menu a::after { display: none !important; }
.navbar__list .sub-menu a:hover {
    background: rgba(60,27,18,.06);
    color: var(--lnd-marrone) !important;
}

/* Hover bridge: nessun gap morto tra parent e sub-menu */
.navbar__list li.menu-item-has-children::after {
    content: '';
    position: absolute;
    left: 0; right: 0; top: 100%;
    height: 16px;
}

/* Mobile drawer: submenu accordion (default closed, no intravedi) */
.navbar__drawer .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0 0 0 12px;
    border-left: 1px solid rgba(60,27,18,.12);
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    transition: max-height .35s var(--lnd-ease), opacity .25s var(--lnd-ease), visibility 0s linear .35s, padding .35s var(--lnd-ease);
}
.navbar__drawer li.menu-item-has-children.is-open > .sub-menu {
    max-height: 400px;
    opacity: 1;
    visibility: visible;
    padding: 4px 0 8px 12px;
    transition-delay: 0s;
}
.navbar__drawer li.menu-item-has-children > a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
}
.navbar__drawer li.menu-item-has-children > a::after {
    content: '\25BE';
    margin-left: 12px;
    font-size: 10px;
    opacity: .6;
    transition: transform .25s ease;
}
.navbar__drawer li.menu-item-has-children.is-open > a::after { transform: rotate(180deg); }
.navbar__drawer .sub-menu a {
    padding: 10px 0 !important;
    font-size: 11px !important;
    letter-spacing: 1.5px !important;
    opacity: .8;
    border-bottom: 1px solid rgba(60,27,18,.04) !important;
}

/* ============================================================
   CART + CHECKOUT custom (woocommerce override)
   ============================================================ */

/* ---- CART ---- */
body.woocommerce-cart #content.site-main,
body.woocommerce-checkout #content.site-main,
body.page-id-11 #content.site-main,
body.page-id-12 #content.site-main,
body.woocommerce-cart .page-content,
body.woocommerce-checkout .page-content,
body.page-id-11 .page-content,
body.page-id-12 .page-content {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.lnd-cart { padding: 80px 80px 100px; background: var(--lnd-beige); color: var(--lnd-marrone); font-family: var(--lnd-f-sans); }
.lnd-cart__grid { display: grid; grid-template-columns: 1.9fr 1fr; gap: 32px; max-width: 1560px; margin: 0 auto; }
.lnd-cart__main { display: flex; flex-direction: column; gap: 18px; }
.lnd-cart__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.lnd-cart__heading { display: flex; flex-direction: column; gap: 4px; }
.lnd-cart__title { margin: 0; font-family: var(--lnd-f-serif); font-weight: 400; font-size: clamp(26px, 3vw, 36px); letter-spacing: 1px; color: var(--lnd-marrone); text-transform: uppercase; }
.lnd-cart__subtitle { margin: 0; font-size: 13px; color: rgba(60,27,18,.65); }
.lnd-cart__continue { padding: 10px 18px; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; border: 1px solid rgba(60,27,18,.3); border-radius: 4px; background: #fff; color: var(--lnd-marrone); text-decoration: none; transition: all .25s ease; }
.lnd-cart__continue:hover { background: var(--lnd-marrone); color: var(--lnd-beige); border-color: var(--lnd-marrone); }

.lnd-cart__card { background: #fff; border: 1px solid rgba(60,27,18,.08); border-radius: 8px; padding: 28px; }

.lnd-cart__table {
    width: 100%;
    border-collapse: collapse;
    background: transparent !important;
    border: 0 !important;
    border-spacing: 0;
}
.lnd-cart__table * { background: transparent !important; }
.lnd-cart__table tr,
.lnd-cart__table td,
.lnd-cart__table th { background: transparent !important; border: 0 !important; }
.lnd-cart__table thead tr { border-bottom: 1px solid rgba(60,27,18,.08) !important; }
.lnd-cart__th {
    padding: 0 12px 18px !important;
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    font-weight: 400;
    color: rgba(60,27,18,.65);
    text-align: center;
    background: transparent !important;
    border: 0 !important;
}
.lnd-cart__th--product { text-align: left; padding-left: 4px !important; }
.lnd-cart__th--total { text-align: right; padding-right: 4px !important; color: var(--lnd-marrone); }
.lnd-cart__row { border-bottom: 1px solid rgba(60,27,18,.06) !important; }
.lnd-cart__row:last-child { border-bottom: 0 !important; }
.lnd-cart__cell {
    padding: 22px 12px !important;
    vertical-align: middle;
    text-align: center;
    font-size: 14px;
    color: var(--lnd-marrone);
    background: transparent !important;
    border: 0 !important;
}
.lnd-cart__cell--product { text-align: left; padding-left: 4px !important; }
.lnd-cart__cell--total { text-align: right; padding-right: 4px !important; font-weight: 500; font-family: var(--lnd-f-serif); font-size: 16px; }
.lnd-cart__cell--price { font-family: var(--lnd-f-serif); font-size: 16px; }
.lnd-cart__product { display: flex; align-items: center; gap: 18px; }
.lnd-cart__thumb {
    display: block !important;
    width: 76px !important;
    height: 76px !important;
    flex: none;
    background: var(--lnd-beige) !important;
    border-radius: 6px;
    overflow: hidden;
    padding: 6px;
}
.lnd-cart__thumb img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}
.lnd-cart__name {
    font-family: var(--lnd-f-serif);
    font-size: 16px;
    font-weight: 400;
    color: var(--lnd-marrone);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .5px;
    line-height: 1.3;
}
.lnd-cart__name:hover { color: rgba(60,27,18,.7); }
.lnd-cart__remove {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-left: 10px;
    color: rgba(60,27,18,.4);
    font-size: 14px;
    line-height: 1;
    text-decoration: none;
    border-radius: 50%;
    transition: background .25s ease, color .25s ease;
    vertical-align: middle;
}
.lnd-cart__remove:hover { background: rgba(60,27,18,.08); color: var(--lnd-marrone); }
.lnd-cart__actions {
    padding-top: 20px !important;
    text-align: right !important;
    border-top: 1px solid rgba(60,27,18,.06) !important;
}
.lnd-cart__update {
    padding: 11px 22px !important;
    font-size: 11px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    border: 1px solid rgba(60,27,18,.3) !important;
    background: transparent !important;
    color: var(--lnd-marrone) !important;
    cursor: pointer;
    transition: background .25s ease, color .25s ease, border-color .25s ease !important;
    border-radius: 4px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 500 !important;
    opacity: 1 !important;
}
.lnd-cart__update:hover,
.lnd-cart__update:enabled:hover { background: var(--lnd-marrone) !important; color: var(--lnd-beige) !important; border-color: var(--lnd-marrone) !important; }
.lnd-cart__update[disabled] { opacity: .5; cursor: not-allowed; }

.lnd-cart__shipping-progress { padding: 4px 8px 0; }
.lnd-cart__progress-bar { width: 100%; height: 6px; background: rgba(60,27,18,.08); border-radius: 999px; overflow: hidden; }
.lnd-cart__progress-bar span { display: block; height: 100%; background: #6fa86a; border-radius: 999px; transition: width .35s ease; }
.lnd-cart__progress-text { margin: 10px 0 0; font-size: 12px; color: rgba(60,27,18,.7); }

/* Sidebar */
.lnd-cart__aside { display: flex; flex-direction: column; gap: 18px; }
.lnd-cart__summary { padding: 26px; }
.lnd-cart__summary-title { margin: 0 0 18px; font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; font-weight: 500; color: var(--lnd-marrone); padding-bottom: 12px; border-bottom: 1px solid rgba(60,27,18,.08); }
.lnd-cart__summary-row { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 0; font-size: 14px; color: rgba(60,27,18,.85); }
.lnd-cart__summary-row--total { margin-top: 6px; padding-top: 16px; border-top: 1px solid rgba(60,27,18,.08); font-size: 18px; font-weight: 600; color: var(--lnd-marrone); }
.lnd-cart__summary-row span:last-child { font-family: var(--lnd-f-serif); font-weight: 400; }

.lnd-cart__coupon { display: flex; gap: 8px; margin: 16px 0; }
.lnd-cart__coupon-input { flex: 1; padding: 12px 14px; border: 1px solid rgba(60,27,18,.18); border-radius: 4px; font-size: 13px; color: var(--lnd-marrone); background: #fdfcf8; outline: none; }
.lnd-cart__coupon-input:focus { border-color: var(--lnd-marrone); }
.lnd-cart__coupon-btn { padding: 10px 16px; background: transparent; border: 1px solid rgba(60,27,18,.3); color: var(--lnd-marrone); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; cursor: pointer; border-radius: 4px; transition: all .25s ease; }
.lnd-cart__coupon-btn:hover { background: var(--lnd-marrone); color: var(--lnd-beige); }

.lnd-cart__checkout-btn { display: block; width: 100%; padding: 16px; margin-top: 12px; background: var(--lnd-sabbia, #D4C59E); color: var(--lnd-marrone); border: 0; font-family: var(--lnd-f-sans); font-size: 12px; letter-spacing: 3px; font-weight: 500; text-transform: uppercase; text-decoration: none; text-align: center; cursor: pointer; transition: background .3s ease, color .3s ease; }
.lnd-cart__checkout-btn:hover { background: var(--lnd-marrone); color: var(--lnd-beige); }

.lnd-cart__paybox { padding: 22px; }
.lnd-cart__paybox-title { margin: 0 0 16px; font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; font-weight: 500; color: var(--lnd-marrone); text-align: center; }
.lnd-cart__paybox-buttons { display: flex; flex-direction: column; gap: 10px; }
.lnd-cart__paybox-buttons .lnd-paybtn { width: 100%; }

.lnd-paybtn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 16px; border: 0; cursor: pointer; border-radius: 4px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 14px; font-weight: 700; line-height: 1; }
.lnd-paybtn--paypal { background: #0070ba; color: #fff; }
.lnd-paybtn--apple { background: #000; color: #fff; }
.lnd-paybtn--google { background: #fff; color: #3c4043; border: 1px solid #dadce0; }
.lnd-paybtn--klarna { background: #ffa8cd; color: #17120f; font-weight: 700; }
.lnd-paybtn--block { width: 100%; }

/* ---- CHECKOUT ---- */
.lnd-checkout { padding: 80px 80px 100px; background: var(--lnd-beige); color: var(--lnd-marrone); font-family: var(--lnd-f-sans); }
.lnd-checkout__grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: 32px; max-width: 1560px; margin: 0 auto; align-items: start; }
.lnd-checkout__main { display: flex; flex-direction: column; gap: 22px; }
.lnd-checkout__card { background: #fff; border: 1px solid rgba(60,27,18,.08); border-radius: 8px; padding: 28px; }
.lnd-checkout__section { background: #fff; border: 1px solid rgba(60,27,18,.08); border-radius: 8px; padding: 28px; }
.lnd-checkout__section-title,
.lnd-checkout .woocommerce-billing-fields h3,
.lnd-checkout .woocommerce-shipping-fields h3,
.lnd-checkout .woocommerce-additional-fields h3 {
    margin: 0 0 18px; font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 500; color: var(--lnd-marrone);
}

.lnd-checkout__express { padding: 22px 28px; text-align: center; }
.lnd-checkout__express-title { margin: 0 0 14px; font-size: 10px; letter-spacing: 2.5px; text-transform: uppercase; font-weight: 400; color: rgba(60,27,18,.7); }
.lnd-checkout__express-buttons { display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.lnd-checkout__express-row { display: flex; gap: 8px; justify-content: center; }
.lnd-checkout__express-row .lnd-paybtn { flex: 1; }
.lnd-checkout__express-note { margin: 10px 0 0; font-size: 11px; color: rgba(60,27,18,.55); }

.lnd-checkout__form .form-row,
.lnd-checkout__form p.form-row { margin: 0 0 14px; }
.lnd-checkout__form .form-row label { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: rgba(60,27,18,.75); margin-bottom: 6px; display: block; }
.lnd-checkout__form input[type="text"],
.lnd-checkout__form input[type="email"],
.lnd-checkout__form input[type="tel"],
.lnd-checkout__form input[type="number"],
.lnd-checkout__form input[type="password"],
.lnd-checkout__form textarea,
.lnd-checkout__form select,
.lnd-checkout__form .select2-selection {
    width: 100%; padding: 14px 16px; border: 1px solid rgba(60,27,18,.15); border-radius: 4px; background: #fdfcf8; font-family: inherit; font-size: 14px; color: var(--lnd-marrone); outline: none; transition: border-color .25s ease;
}
.lnd-checkout__form input:focus,
.lnd-checkout__form textarea:focus,
.lnd-checkout__form select:focus { border-color: var(--lnd-marrone); background: #fff; }
.lnd-checkout__form .form-row-first,
.lnd-checkout__form .form-row-last { width: calc(50% - 6px); display: inline-block; vertical-align: top; }
.lnd-checkout__form .form-row-first { margin-right: 10px; }
.lnd-checkout__payment-note { margin: -10px 0 18px; font-size: 12px; color: rgba(60,27,18,.55); }

.lnd-checkout #payment { background: transparent; padding: 0; }
.lnd-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lnd-checkout #payment ul.payment_methods > li { background: #fdfcf8; border: 1px solid rgba(60,27,18,.12); border-radius: 6px; padding: 16px; }
.lnd-checkout #payment ul.payment_methods > li.selected { border-color: var(--lnd-marrone); }
.lnd-checkout #payment .payment_box { background: transparent; padding: 12px 0 0; font-size: 13px; }
.lnd-checkout #place_order { width: 100%; margin-top: 18px; padding: 18px 22px; background: var(--lnd-sabbia, #D4C59E); color: var(--lnd-marrone); border: 0; font-family: 'Montserrat', sans-serif; font-size: 12px; letter-spacing: 3px; font-weight: 500; text-transform: uppercase; cursor: pointer; transition: background .3s ease, color .3s ease; border-radius: 0; }
.lnd-checkout #place_order:hover { background: var(--lnd-marrone); color: var(--lnd-beige); }

.lnd-checkout__trust { display: flex; flex-wrap: wrap; gap: 24px; padding: 18px 28px; justify-content: center; }
.lnd-checkout__trust-item { display: flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: .5px; color: rgba(60,27,18,.7); }
.lnd-checkout__trust-item svg { color: var(--lnd-marrone); }

/* Sidebar sticky */
.lnd-checkout__aside { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 96px; }
.lnd-checkout__summary { padding: 26px; }
.lnd-checkout__summary-title { margin: 0 0 18px; font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; font-weight: 500; color: var(--lnd-marrone); padding-bottom: 12px; border-bottom: 1px solid rgba(60,27,18,.08); }
.lnd-checkout__summary-items { display: flex; flex-direction: column; gap: 12px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid rgba(60,27,18,.08); }
.lnd-checkout__summary-item { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; }
.lnd-checkout__summary-thumb { position: relative; width: 56px; height: 56px; background: var(--lnd-beige); border-radius: 6px; overflow: hidden; }
.lnd-checkout__summary-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lnd-checkout__summary-qty { position: absolute; top: -6px; right: -6px; background: var(--lnd-marrone); color: var(--lnd-beige); font-size: 10px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; }
.lnd-checkout__summary-name { font-family: var(--lnd-f-serif); font-size: 13px; line-height: 1.3; color: var(--lnd-marrone); text-transform: uppercase; letter-spacing: .3px; }
.lnd-checkout__summary-price { font-family: var(--lnd-f-serif); font-size: 14px; font-weight: 400; color: var(--lnd-marrone); }
.lnd-checkout__summary-row { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 0; font-size: 14px; color: rgba(60,27,18,.85); }
.lnd-checkout__summary-row--total { margin-top: 6px; padding-top: 16px; border-top: 1px solid rgba(60,27,18,.08); font-size: 18px; font-weight: 600; color: var(--lnd-marrone); }
.lnd-checkout__summary-row span:last-child { font-family: var(--lnd-f-serif); font-weight: 400; }
.lnd-checkout__summary-btn { display: block; width: 100%; padding: 16px; margin-top: 16px; background: var(--lnd-sabbia, #D4C59E); color: var(--lnd-marrone); border: 0; font-family: 'Montserrat', sans-serif; font-size: 11px; letter-spacing: 3px; font-weight: 500; text-transform: uppercase; text-decoration: none; text-align: center; cursor: pointer; transition: background .3s ease, color .3s ease; }
.lnd-checkout__summary-btn:hover { background: var(--lnd-marrone); color: var(--lnd-beige); }

/* Responsive cart/checkout */
@media (max-width: 900px) {
    .lnd-cart, .lnd-checkout { padding: 32px 20px 60px; }
    .lnd-cart__grid, .lnd-checkout__grid { grid-template-columns: 1fr; gap: 20px; }
    .lnd-cart__aside, .lnd-checkout__aside { position: relative; top: 0; }
}
@media (max-width: 600px) {
    .lnd-cart { padding: 24px 14px 48px; }
    .lnd-checkout { padding: 24px 14px 48px; }
    .lnd-cart__header { flex-direction: column; align-items: stretch; gap: 14px; }
    .lnd-cart__continue { align-self: flex-start; }
    .lnd-cart__card, .lnd-checkout__card, .lnd-checkout__section, .lnd-cart__summary, .lnd-checkout__summary { padding: 18px; }
    .lnd-cart__table thead { display: none; }
    .lnd-cart__row { display: grid; grid-template-columns: 64px 1fr; gap: 12px; padding: 14px 0; }
    .lnd-cart__cell { display: block; padding: 0; text-align: left; font-size: 13px; }
    .lnd-cart__cell--product { grid-column: 1 / 3; }
    .lnd-cart__cell--price::before { content: "Prezzo: "; opacity: .6; }
    .lnd-cart__cell--qty::before { content: ""; }
    .lnd-cart__cell--total::before { content: "Totale: "; opacity: .6; }
    .lnd-cart__cell--total { text-align: left; }
    .lnd-checkout__form .form-row-first,
    .lnd-checkout__form .form-row-last { width: 100%; margin-right: 0; display: block; }
}

/* ============================================================
   WC NOTICES (woocommerce-notices-wrapper)
   ============================================================ */
.woocommerce-notices-wrapper { margin-bottom: 18px; }
.woocommerce-notices-wrapper:empty { margin: 0; }

.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
ul.woocommerce-error,
ul.woocommerce-error li {
    position: relative;
    list-style: none;
    margin: 0 0 12px;
    padding: 16px 20px 16px 52px;
    background: #fff;
    border: 1px solid rgba(60,27,18,.1);
    border-radius: 6px;
    border-left: 3px solid var(--lnd-marrone);
    color: var(--lnd-marrone);
    font-family: var(--lnd-f-sans);
    font-size: 13px;
    line-height: 1.55;
    letter-spacing: .2px;
    box-shadow: 0 2px 14px rgba(60,27,18,.05);
}
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
    content: '';
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: .85;
}

/* Success */
.woocommerce-message {
    background: #f6f2e3;
    border-left-color: #6fa86a;
}
.woocommerce-message::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236fa86a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}

/* Error */
.woocommerce-error,
ul.woocommerce-error {
    background: #fdf2ef;
    border-left-color: #b94a3b;
    color: #4a2218;
}
.woocommerce-error::before,
ul.woocommerce-error li::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b94a3b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='15' y1='9' x2='9' y2='15'/><line x1='9' y1='9' x2='15' y2='15'/></svg>");
}
ul.woocommerce-error { padding: 16px 20px; border-left-width: 3px; }
ul.woocommerce-error li { background: transparent; border: 0; box-shadow: none; padding-left: 36px; margin: 0; }

/* Info */
.woocommerce-info {
    background: #f3ede0;
    border-left-color: var(--lnd-sabbia, #D4C59E);
}
.woocommerce-info::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233c1b12' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='16' x2='12' y2='12'/><circle cx='12' cy='8' r='.5' fill='%233c1b12'/></svg>");
}

/* Inline link "Vai al carrello" / "Restore" */
.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a {
    color: var(--lnd-marrone);
    text-decoration: underline;
    font-weight: 500;
    transition: opacity .25s ease;
}
.woocommerce-message a:hover,
.woocommerce-error a:hover,
.woocommerce-info a:hover { opacity: .7; }

/* Button "Visualizza carrello" / "Continua shopping" dentro notice */
.woocommerce-message .button,
.woocommerce-message a.button {
    float: right;
    margin-left: 14px;
    padding: 8px 18px;
    background: var(--lnd-marrone);
    color: var(--lnd-beige);
    border: 0;
    font-family: var(--lnd-f-sans);
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 4px;
    transition: opacity .25s ease;
}
.woocommerce-message .button:hover,
.woocommerce-message a.button:hover { opacity: .85; }

/* Cart/Checkout: nascondi page title WC default ("Cart"/"Checkout"). */
body.page-id-11 .entry-title,
body.page-id-12 .entry-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.page-id-11 > .page-header,
body.page-id-12 > .page-header { display: none !important; }

/* Qty pill cart: stile uniforme col mini-cart */
.lnd-cart__qty {
    display: inline-flex !important;
    align-items: center;
    background: var(--lnd-sabbia, #D4C59E) !important;
    border-radius: 999px !important;
    padding: 4px 6px !important;
    gap: 0 !important;
    margin: 0 auto;
}
.lnd-cart__qty .landolfi-mini-cart__qty-btn {
    width: 32px !important;
    height: 32px !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--lnd-marrone) !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    padding: 0 !important;
    border-radius: 999px !important;
}
.lnd-cart__qty .landolfi-mini-cart__qty-btn:hover { background: rgba(60,27,18,.08) !important; }
.lnd-cart__qty .landolfi-mini-cart__qty-input,
.lnd-cart__qty input.qty,
.lnd-cart__qty input[type="number"] {
    width: 40px !important;
    min-width: 40px !important;
    height: 32px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--lnd-marrone) !important;
    opacity: 1 !important;
    text-align: center !important;
    font-family: var(--lnd-f-serif) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    outline: none !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
}
.lnd-cart__qty input[type="number"]::-webkit-inner-spin-button,
.lnd-cart__qty input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none !important; margin: 0 !important; }
.lnd-cart__qty-fixed { padding: 0 14px; font-family: var(--lnd-f-serif); font-size: 16px; color: var(--lnd-marrone); }

/* Shop archive: allarga sezioni cat → 4° card slider visibile. */
.lnd-shop__cat.lnd-album-grid-section {
    padding-left: 32px !important;
    padding-right: 32px !important;
}
@media (max-width: 1200px) {
    .lnd-shop__slider-wrap { padding: 0 64px; }
}

/* ============================================================
   B2B section (.lnd-b2b)
   ============================================================ */
body.landolfi-b2b { background: var(--lnd-beige); }
.lnd-b2b { padding: 80px 60px; max-width: 1400px; margin: 0 auto; }
.lnd-b2b__header { text-align: center; max-width: 760px; margin: 0 auto 56px; display: flex; flex-direction: column; gap: 14px; }
.lnd-b2b__eyebrow { font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: rgba(60,27,18,.55); }
.lnd-b2b__title { margin: 0; font-family: var(--lnd-f-serif); font-weight: 300; font-size: clamp(32px, 4vw, 56px); letter-spacing: 4px; text-transform: uppercase; color: var(--lnd-marrone); }
.lnd-b2b__intro { margin: 0 auto; max-width: 580px; font-family: var(--lnd-f-sans); font-size: 14px; line-height: 1.7; color: rgba(60,27,18,.7); }

/* Landing — 3 channel boxes */
.lnd-b2b__channels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lnd-b2b__channel {
    display: flex; flex-direction: column; gap: 14px;
    padding: 40px 28px; background: #fff; border: 1px solid rgba(60,27,18,.08); border-radius: 8px;
    text-decoration: none; color: var(--lnd-marrone);
    transition: transform .3s var(--lnd-ease), border-color .3s var(--lnd-ease), box-shadow .3s var(--lnd-ease);
}
.lnd-b2b__channel:hover { transform: translateY(-4px); border-color: var(--lnd-marrone); box-shadow: 0 14px 28px rgba(60,27,18,.08); }
.lnd-b2b__channel-title { margin: 0; font-family: var(--lnd-f-serif); font-weight: 400; font-size: 28px; text-transform: uppercase; letter-spacing: 2px; }
.lnd-b2b__channel-desc { margin: 0; font-family: var(--lnd-f-sans); font-size: 13px; line-height: 1.7; color: rgba(60,27,18,.7); flex: 1; }
.lnd-b2b__channel-cta { font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--lnd-marrone); margin-top: 8px; }

/* Catalog — box semplici */
.lnd-b2b__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lnd-b2b__card {
    display: flex; flex-direction: column;
    background: #fff; border: 1px solid rgba(60,27,18,.08); border-radius: 8px;
    overflow: hidden;
    transition: border-color .3s var(--lnd-ease), box-shadow .3s var(--lnd-ease);
}
.lnd-b2b__card:hover { border-color: rgba(60,27,18,.25); box-shadow: 0 10px 22px rgba(60,27,18,.06); }
.lnd-b2b__card-img { width: 100%; aspect-ratio: 4/3; background: var(--lnd-beige); display: flex; align-items: center; justify-content: center; padding: 18px; }
.lnd-b2b__card-img img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.lnd-b2b__card-body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; }
.lnd-b2b__card-title { margin: 0; font-family: var(--lnd-f-serif); font-weight: 400; font-size: 18px; text-transform: uppercase; letter-spacing: 1px; color: var(--lnd-marrone); }
.lnd-b2b__card-gusto { font-family: var(--lnd-f-serif); font-style: italic; font-size: 14px; color: rgba(60,27,18,.6); }
.lnd-b2b__card-sku { font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 1px; color: rgba(60,27,18,.55); }
.lnd-b2b__card-sku strong { color: var(--lnd-marrone); letter-spacing: 1.5px; font-weight: 500; margin-right: 4px; }
.lnd-b2b__card-specs { list-style: none; margin: 6px 0 0; padding: 10px 0 0; border-top: 1px solid rgba(60,27,18,.08); display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.lnd-b2b__card-specs li { display: flex; flex-direction: column; gap: 2px; font-family: var(--lnd-f-sans); font-size: 11px; }
.lnd-b2b__card-specs span { color: rgba(60,27,18,.5); letter-spacing: .5px; text-transform: uppercase; font-size: 9px; }
.lnd-b2b__card-specs strong { font-weight: 500; color: var(--lnd-marrone); font-size: 13px; }
.lnd-b2b__card-cta {
    margin-top: 12px; padding: 10px 14px; text-align: center;
    background: var(--lnd-marrone); color: var(--lnd-beige);
    font-family: var(--lnd-f-sans); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; text-decoration: none;
    border-radius: 4px;
    transition: opacity .25s ease;
}
.lnd-b2b__card-cta:hover { opacity: .85; }
.lnd-b2b__empty { text-align: center; padding: 60px 20px; color: rgba(60,27,18,.5); }

@media (max-width: 900px) {
    .lnd-b2b { padding: 56px 32px; }
    .lnd-b2b__channels { grid-template-columns: 1fr; }
    .lnd-b2b__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .lnd-b2b { padding: 40px 16px; }
    .lnd-b2b__grid { grid-template-columns: 1fr; }
    .lnd-b2b__channel { padding: 28px 22px; }
}

/* Nascondi WC "Visualizza carrello" link dopo add-to-cart. */
.added_to_cart.wc-forward,
a.added_to_cart { display: none !important; }

/* Header B2B: logo sinistra, menu centro. */
body.landolfi-b2b .navbar__inner {
    grid-template-columns: auto 1fr;
    gap: 48px;
    padding: 0 60px;
}
body.landolfi-b2b .navbar__logo {
    margin: 0;
    order: 1;
    justify-self: start;
}
body.landolfi-b2b .navbar__menu--left {
    order: 2;
    justify-self: center;
    justify-content: center;
}
body.landolfi-b2b .navbar__menu--right { display: none; }
body.landolfi-b2b .navbar__cart { right: 60px; }
@media (max-width: 900px) {
    body.landolfi-b2b .navbar__inner { grid-template-columns: 1fr; padding: 0 24px; }
    body.landolfi-b2b .navbar__cart { right: 24px; }
}

/* Upsell gusto label nel minicart */
.landolfi-mini-cart__upsell-gusto {
    display: block;
    font-family: var(--lnd-f-serif);
    font-style: italic;
    font-size: 12px;
    color: rgba(60,27,18,.6);
    line-height: 1.2;
    margin-top: -2px;
}

/* B2B contact form section */
.lnd-b2b__contact-form { max-width: 720px; margin: 0 auto; background: #fff; border: 1px solid rgba(60,27,18,.08); border-radius: 8px; padding: 36px; }
.lnd-b2b__contact-form .cf7-newsletter { display: flex; flex-direction: column; gap: 14px; }
.lnd-b2b__contact-form .cf7-field { margin: 0; }
.lnd-b2b__contact-form .cf7-input,
.lnd-b2b__contact-form .cf7-textarea {
    width: 100% !important;
    background: #fdfcf8 !important;
    border: 1px solid rgba(60,27,18,.15) !important;
    border-radius: 6px !important;
    padding: 14px 16px !important;
    font-family: var(--lnd-f-sans) !important;
    font-size: 14px !important;
    letter-spacing: .3px !important;
    color: var(--lnd-marrone) !important;
    text-transform: none !important;
    outline: none !important;
    box-shadow: none !important;
}
.lnd-b2b__contact-form .cf7-textarea { min-height: 130px; resize: vertical; }
.lnd-b2b__contact-form .cf7-input:focus,
.lnd-b2b__contact-form .cf7-textarea:focus { border-color: var(--lnd-marrone) !important; background: #fff !important; }
.lnd-b2b__contact-form .cf7-submit-wrap { margin-top: 8px; }
.lnd-b2b__contact-form .cf7-btn,
.lnd-b2b__contact-form input[type="submit"] {
    width: 100% !important;
    padding: 16px 24px !important;
    background: var(--lnd-marrone) !important;
    color: var(--lnd-beige) !important;
    border: 0 !important;
    border-radius: 4px !important;
    font-family: var(--lnd-f-sans) !important;
    font-size: 12px !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    cursor: pointer;
    transition: opacity .25s ease !important;
}
.lnd-b2b__contact-form .cf7-btn:hover { opacity: .85 !important; }
@media (max-width: 600px) {
    .lnd-b2b__contact-form { padding: 24px 20px; }
}

/* Nascondi page title WP su pagine B2B (landing + canali). */
body.landolfi-b2b .entry-title,
body.landolfi-b2b .page-header,
body.page-id-1317 .entry-title,
body.page-id-1568 .entry-title,
body.page-id-1569 .entry-title,
body.page-id-1570 .entry-title { display: none !important; }

/* Gusto in pp-crosssell card */
.pp-cs-gusto {
    display: block;
    font-family: var(--lnd-f-serif);
    font-style: italic;
    font-weight: 300;
    font-size: 13px;
    color: rgba(60,27,18,.65);
    line-height: 1.2;
    margin-top: -4px;
    text-transform: lowercase;
    letter-spacing: .3px;
}

/* Nascondi pp-section--contain (sec1) + pp-section senza modifier (sec3) sui prodotti Linea Salata / Premium. La pp-section--rev resta visibile. */
body.lnd-product-cat-la-linea-salata .pp-section.pp-section--contain,
body.lnd-product-cat-la-linea-premium .pp-section.pp-section--contain,
body.lnd-product-cat-la-linea-salata .pp-section:not(.pp-section--contain):not(.pp-section--rev),
body.lnd-product-cat-la-linea-premium .pp-section:not(.pp-section--contain):not(.pp-section--rev) { /*display: none !important;*/ }

/* ============================================================
   TABLET COME MOBILE — pagina prodotto (.pp) e sezioni
   Estende lo stack a colonna singola fino a 1180px (iPad landscape).
   Appeso in fondo: vince sulle regole desktop precedenti.
   ============================================================ */
@media (min-width: 961px) and (max-width: 1180px) {

	/* --- Pagina prodotto: stessa struttura del mobile (<=960px) --- */
	.pp-hero {
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: 1fr !important;
		gap: 28px;
		padding: 110px 40px 32px;
	}
	.pp-col-left,
	.pp-col-right,
	.pp-col-left-upper { display: contents !important; }

	.pp-col-left > .pp-col-left-upper,
	.pp-col-left > .pp-col-left-lower,
	.pp-col-right > .pp-buy,
	.pp-col-right > .pp-col-right-lower { padding: 0 !important; }

	.pp-title-block     { order: 1; }
	.pp-subtitle        { order: 2; }
	.pp-col-center      { order: 3; width: 100%; }
	.pp-buy             { order: 4; display: flex; flex-direction: column; gap: 18px; }
	.pp-desc            { order: 5; }
	.pp-crosssell       { order: 6; }
	.pp-cert            { order: 7; }
	.pp-col-left-lower  { order: 8; display: flex; flex-direction: column; gap: 14px; }
	.pp-col-right-lower { order: 9; display: flex; flex-direction: column; gap: 14px; }

	.pp-pack-sticky { position: relative; top: auto; min-height: 360px; padding: 24px 0; }

	/* Sezioni: colonna singola, pattern uniforme img -> testo */
	.pp-section, .pp-section--rev { grid-template-columns: 1fr; min-height: auto; }
	.pp-section .pp-section-img,
	.pp-section--rev .pp-section-img  { order: 1 !important; }
	.pp-section .pp-section-text,
	.pp-section--rev .pp-section-text { order: 2 !important; }
	.pp-section-img { min-height: 320px; height: auto; aspect-ratio: 16/9; }
	.pp-section--contain .pp-section-img { aspect-ratio: 4/3; padding: 0; }
	.pp-section--contain .pp-section-img img { padding: 24px; }

	.pp-reviews-grid { grid-template-columns: 1fr; }
	.pp-boxes-grid   { grid-template-columns: 1fr; }
	.pp-cs-cards     { grid-template-columns: repeat(2, 1fr); }

	.pp-spicchi-overlay { display: none; }
	.pp-cr-fixed        { display: none !important; }

	.pp-materie      { padding: 80px 60px; gap: 40px; }
	.pp-materie-list { grid-template-columns: 1fr; gap: 32px; }
	.pp-materie-cover { height: 320px; }
	.pp-materia-img  { width: 160px; height: 160px; }
}