/* =================================================================
   FARMACIE LOMBARDI — LAYOUT v2 (taste-skill applied)
   ================================================================= */

/* ----------------------------- Header ---------------------------- */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.92); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--c-line); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-5); min-height: 72px; }
.site-branding { flex: 0 0 168px; width: 168px; }
.site-logo-fallback { display: block; width: 100%; line-height: 0; }
.site-branding img, .site-branding svg { display: block; width: 100%; height: auto; max-height: 50px; }
.site-branding .site-title { font-size: 1.25rem; color: var(--c-green); font-weight: var(--fw-bold); }

.main-nav ul { list-style: none; display: flex; gap: var(--sp-5); margin: 0; padding: 0; align-items: center; }
.main-nav a { font-family: var(--font-display); font-weight: var(--fw-semibold); font-size: 1rem; color: var(--c-ink); padding: .4em 0; position: relative; }
.main-nav a:hover, .main-nav .current-menu-item > a { color: var(--c-green); }
.main-nav .current-menu-item > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--c-green); border-radius: 2px; }
.main-nav .sub-menu { position: absolute; top: 100%; left: 0; min-width: 230px; background: #fff; box-shadow: var(--shadow); border-radius: var(--radius-sm); padding: var(--sp-3); flex-direction: column; gap: var(--sp-1); opacity: 0; visibility: hidden; transform: translateY(8px); transition: var(--t); }
.main-nav li { position: relative; }
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.main-nav .menu-item-has-children > a { padding-right: 1.1rem; }
.main-nav .menu-item-has-children > a::before { content: ''; position: absolute; right: 0; top: 50%; width: .38rem; height: .38rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-70%) rotate(45deg); }
.main-nav .sub-menu a { display: block; padding: .45rem .55rem; border-radius: .3rem; white-space: nowrap; }
.main-nav .sub-menu a:hover, .main-nav .sub-menu .current-menu-item > a { background: var(--c-green-50); }
.nav-toggle { display: none; background: none; border: 0; padding: .5em; }
.nav-toggle span { display: block; width: 26px; height: 3px; background: var(--c-ink); border-radius: 3px; }
.nav-toggle span + span { margin-top: 5px; }
@media (max-width: 1100px) {
	.nav-toggle { display: block; }
	.main-nav { position: fixed; inset: 72px 0 auto 0; background: #fff; box-shadow: none; padding: 0 var(--gutter); max-height: 0; overflow: hidden; visibility: hidden; pointer-events: none; transition: max-height var(--t), padding var(--t), visibility 0s linear .25s; }
	.main-nav.is-open { max-height: 84vh; overflow-y: auto; visibility: visible; pointer-events: auto; padding: var(--sp-5) var(--gutter); box-shadow: var(--shadow); transition-delay: 0s; }
	.main-nav ul { flex-direction: column; gap: var(--sp-3); align-items: stretch; }
	.main-nav .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding-left: var(--sp-4); }
}
@media (max-width: 560px) {
	.site-branding { flex-basis: 142px; width: 142px; }
}

/* =============================== HERO ============================= */
/* Asymmetric split: testo + foto reale con pennellate brand */
.home-hero { position: relative; overflow: clip; background: var(--c-bg); }
.home-hero__inner { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; min-height: min(86vh, 760px); padding-block: clamp(2rem, 5vw, 4rem) clamp(2.5rem, 6vw, 5rem); position: relative; z-index: 2; }
.home-hero__eyebrow { display: inline-flex; align-items: center; gap: .6em; font-family: var(--font-display); font-weight: var(--fw-bold); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-green); }
.home-hero__eyebrow::before { content: ""; width: 26px; height: 3px; border-radius: 3px; background: var(--c-green); }
.home-hero h1 { font-size: clamp(2.4rem, 5.2vw, 4.2rem); line-height: 1.02; letter-spacing: -.02em; margin-top: var(--sp-4); }
.home-hero h1 em { font-style: normal; color: var(--c-green); }
.home-hero__sub { font-size: 1.15rem; color: var(--c-muted); max-width: 46ch; margin-top: var(--sp-5); }
.home-hero__cta { display: flex; gap: var(--sp-3); flex-wrap: wrap; margin-top: var(--sp-6); }

.home-hero__media { position: relative; aspect-ratio: 4 / 5; }
.home-hero__media img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.home-hero .brush { z-index: 1; }
.home-hero .b1 { width: 62%; height: 62%; right: -8%; top: -10%; }
.home-hero .b2 { width: 42%; height: 42%; left: -10%; bottom: -8%; }
.home-hero__media img.home-hero__houses { position: absolute; z-index: 3; left: -18px; bottom: 20px; width: 184px; height: auto; object-fit: contain; background: #fff; padding: 12px 14px; border-radius: var(--radius-sm); box-shadow: var(--shadow); }
@media (max-width: 860px) {
	.home-hero__inner { grid-template-columns: 1fr; min-height: 0; }
	.home-hero__media { aspect-ratio: 4 / 3; max-width: 540px; }
}

/* ===================== BAND: promessa (full color) =============== */
.promise { background: var(--c-green); color: #fff; }
.promise__inner { display: grid; grid-template-columns: auto 1fr; gap: clamp(1.5rem,4vw,4rem); align-items: center; padding-block: clamp(2.5rem,5vw,4rem); }
.promise__big { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: clamp(1.8rem,3.4vw,2.8rem); line-height: 1.08; color: #fff; max-width: 16ch; }
.promise__body { color: rgba(255,255,255,.92); max-width: 52ch; font-size: 1.08rem; }
@media (max-width: 760px){ .promise__inner { grid-template-columns: 1fr; } }

/* ========================= FARMACIE (scroll-snap) ================ */
.farmacie { position: relative; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-5); margin-bottom: var(--sp-6); flex-wrap: wrap; }
.section-head h2 { font-size: clamp(1.9rem,3.2vw,2.7rem); letter-spacing: -.015em; }
.section-head p { color: var(--c-muted); max-width: 42ch; }
.farmacie__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 1fr); gap: var(--sp-5); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--sp-4); margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scrollbar-width: thin; }
.farmacie__track > * { scroll-snap-align: start; }
@media (min-width: 1100px){ .farmacie__track { grid-template-columns: repeat(3, 1fr); grid-auto-flow: row; overflow: visible; margin-inline: 0; padding-inline: 0; } }

.fcard { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; display: block; box-shadow: var(--shadow-sm); transition: transform var(--t), box-shadow var(--t); }
.fcard:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.fcard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); }
.fcard:hover img { transform: scale(1.05); }
.fcard__ph { position: absolute; inset: 0; }
.fcard__grad { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,.78)); z-index: 1; }
.fcard__bar { position: absolute; left: 0; right: 0; top: 0; height: 6px; z-index: 2; }
.fcard__body { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: var(--sp-5); color: #fff; }
.fcard__title { color: #fff; font-size: 1.3rem; line-height: 1.1; }
.fcard__more { display: inline-flex; align-items: center; gap: .4em; color: #fff; font-weight: var(--fw-semibold); margin-top: var(--sp-2); font-size: .95rem; transition: gap var(--t); }
.fcard:hover .fcard__more { gap: .85em; }

/* ============================ SERVIZI (icon grid) =============== */
.servizi { background: var(--c-bg-alt); }
.servizi__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--c-line); border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.svc { background: #fff; padding: var(--sp-6) var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-3); transition: background var(--t); }
.svc:hover { background: var(--c-green-50); }
.svc__ico { color: var(--c-green); }
.svc:nth-child(5n+2) .svc__ico { color: var(--c-blue); }
.svc:nth-child(5n+3) .svc__ico { color: var(--c-red); }
.svc:nth-child(5n+4) .svc__ico { color: var(--c-orange); }
.svc:nth-child(5n+5) .svc__ico { color: var(--c-yellow); }
.svc__title { font-size: 1.15rem; line-height: 1.15; }
.svc__txt { color: var(--c-muted); font-size: .95rem; }
.servizi__grid.endotherm-energies { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px){ .servizi__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px){ .servizi__grid.endotherm-energies { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px){ .servizi__grid, .servizi__grid.endotherm-energies { grid-template-columns: 1fr; } }

/* ===================== TRATTAMENTI (color blocks) =============== */
.treat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-5); }
@media (max-width: 720px){ .treat-grid { grid-template-columns: 1fr; } }
.treat { position: relative; overflow: hidden; border-radius: var(--radius-lg); padding: clamp(1.75rem, 3vw, 2.75rem); color: #fff; min-height: 260px; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--sp-3); }
.treat .brush { z-index: 0; opacity: .35; width: 220px; height: 220px; right: -60px; top: -70px; }
.treat > * { position: relative; z-index: 1; }
.treat__name { color: #fff; font-size: clamp(1.6rem, 2.4vw, 2.1rem); line-height: 1.05; }
.treat__tag { font-family: var(--font-display); font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; opacity: .9; }
.treat__txt { color: rgba(255,255,255,.92); }

/* ===================== CATALOGO: categorie ====================== */
.cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); }
@media (max-width: 900px){ .cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px){ .cat-grid { grid-template-columns: 1fr; } }
.cat-card { position: relative; display: flex; flex-direction: column; gap: var(--sp-1); background: #fff; border: 1px solid var(--c-line); border-left: 5px solid var(--c-green); border-radius: var(--radius); padding: var(--sp-5); transition: transform var(--t), box-shadow var(--t); }
.cat-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.cat-card__name { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: 1.15rem; color: var(--c-ink); line-height: 1.15; }
.cat-card__count { color: var(--c-muted); font-size: .9rem; }

/* ===================== SCHEDA FARMACIA ========================== */
.farmacia-layout { display: grid; grid-template-columns: 1fr 1.3fr; gap: var(--sp-5); align-items: stretch; }
@media (max-width: 820px){ .farmacia-layout { grid-template-columns: 1fr; } }
.farmacia-info { display: flex; flex-direction: column; align-items: flex-start; }
.farmacia-map { border-radius: var(--radius); overflow: hidden; min-height: 340px; box-shadow: var(--shadow-sm); }
.farmacia-map iframe { display: block; width: 100%; height: 100%; min-height: 340px; }

/* ============================ ACCORDION (servizi pagina) ========= */
.acc { border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; background: #fff; }
.acc__item + .acc__item { border-top: 1px solid var(--c-line); }
.acc__item > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-5); font-family: var(--font-display); font-weight: var(--fw-bold); font-size: 1.2rem; transition: background var(--t); }
.acc__item > summary::-webkit-details-marker { display: none; }
.acc__item > summary:hover { background: var(--c-green-50); }
.acc__ico { width: 28px; height: 28px; flex: none; color: var(--c-green); }
.acc__item:nth-child(5n+2) .acc__ico { color: var(--c-blue); }
.acc__item:nth-child(5n+3) .acc__ico { color: var(--c-red); }
.acc__item:nth-child(5n+4) .acc__ico { color: var(--c-orange); }
.acc__item:nth-child(5n+5) .acc__ico { color: var(--c-yellow); }
.acc__plus { margin-left: auto; width: 22px; height: 22px; flex: none; color: var(--c-muted); transition: transform var(--t); }
.acc__item[open] .acc__plus { transform: rotate(45deg); }
.acc__body { padding: 0 var(--sp-5) var(--sp-5) calc(var(--sp-5) + 28px + var(--sp-4)); color: var(--c-muted); }
.acc__where { margin-top: var(--sp-3); font-size: .95rem; color: var(--c-ink); font-weight: var(--fw-semibold); }

/* ============================ CONTATTI =========================== */
.ccard { position: relative; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-6) var(--sp-5) var(--sp-5); overflow: hidden; transition: transform var(--t), box-shadow var(--t); }
.ccard:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.ccard__bar { position: absolute; left: 0; top: 0; bottom: 0; width: 6px; }
.ccard__title { font-size: 1.25rem; margin-bottom: var(--sp-3); }
.ccard__row { display: flex; gap: var(--sp-3); align-items: flex-start; color: var(--c-muted); margin-top: var(--sp-2); }
.ccard__ico { width: 22px; height: 22px; color: var(--c-green); flex: none; margin-top: 2px; }
.ccard__row a { color: var(--c-ink); font-weight: var(--fw-semibold); }
.contatti-form .wpcf7 { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2.25rem); }

/* ============================ PRODOTTI =========================== */
.home-products .products { margin-top: var(--sp-2); }

/* --------------------------- WooCommerce ------------------------- */
.woocommerce ul.products,
.woocommerce-page ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: var(--sp-6) var(--sp-5); margin: 0 !important; padding: 0; list-style: none; }
/* Il clearfix float di WooCommerce crea celle vuote nella grid: rimuovilo */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: var(--sp-4); text-align: center; display: flex; flex-direction: column; gap: var(--sp-2); background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); transition: transform var(--t), box-shadow var(--t); }
.woocommerce ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.woocommerce ul.products li.product a img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; border-radius: var(--radius-sm); margin: 0 0 var(--sp-2); background: #fff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-loop-product__title { font-size: 1.02rem; line-height: var(--lh-snug); margin: 0; overflow-wrap: anywhere; }
.woocommerce ul.products li.product .price { color: var(--c-green); font-weight: var(--fw-semibold); }
.catalogue-section { padding-block: clamp(2.5rem, 6vw, 5rem); background: #f8fbf7; }
.catalogue-layout { display: grid; grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.catalogue-sidebar { position: sticky; top: 6rem; padding: 1.35rem; border: 1px solid rgba(35, 96, 43, .14); border-radius: var(--radius); background: #fff; box-shadow: 0 14px 32px rgba(35, 96, 43, .07); }
.catalogue-sidebar__eyebrow { margin-bottom: .45rem; color: var(--c-orange); font-size: .72rem; font-weight: var(--fw-bold); letter-spacing: .08em; text-transform: uppercase; }
.catalogue-sidebar h2 { color: var(--c-green-700); font-size: 1.65rem; }
.catalogue-sidebar ul { display: grid; gap: .2rem; margin-top: 1rem; padding: 0; list-style: none; }
.catalogue-sidebar a { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .7rem .25rem; border-bottom: 1px solid var(--c-line); color: var(--c-ink); font-weight: var(--fw-medium); }
.catalogue-sidebar a:hover, .catalogue-sidebar a.is-current { color: var(--c-green); }
.catalogue-sidebar__all { margin-top: 1rem; padding: .75rem; border: 0 !important; border-radius: .5rem; background: var(--c-green-50); color: var(--c-green) !important; font-weight: var(--fw-bold) !important; }
.catalogue-sidebar small { color: var(--c-muted); font-size: .75rem; }
.catalogue-sidebar__parent { padding-bottom: .15rem; }
.catalogue-sidebar__parent > a { font-weight: var(--fw-bold); }
.catalogue-sidebar__children { gap: 0 !important; margin: .15rem 0 .45rem .65rem !important; padding-left: .75rem !important; border-left: 2px solid var(--c-green-100); }
.catalogue-sidebar__children a { padding: .45rem .1rem !important; border-bottom: 0 !important; color: var(--c-muted); font-size: .88rem; font-weight: var(--fw-medium); }
.catalogue-sidebar__children a:hover, .catalogue-sidebar__children a.is-current { color: var(--c-blue-700); font-weight: var(--fw-bold); }
.catalogue-products__head { display: flex; justify-content: flex-end; margin-bottom: 1.25rem; color: var(--c-muted); font-size: .9rem; }
.catalogue-brands { padding-block: clamp(3.5rem, 8vw, 7rem); background: #fff; }
.catalogue-brands__head { max-width: 42rem; }
.catalogue-brands__head > p { margin-bottom: .45rem; color: var(--c-orange); font-size: .76rem; font-weight: var(--fw-bold); letter-spacing: .08em; text-transform: uppercase; }
.catalogue-brands__head h2 { color: var(--c-green-700); font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; }
.catalogue-brands__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .85rem; margin-top: clamp(2rem, 5vw, 3.5rem); }
.catalogue-brands__grid figure { display: grid; place-items: center; min-height: 8rem; margin: 0; padding: 1rem; border: 1px solid var(--c-line); border-radius: .7rem; background: #fff; }
.catalogue-brands__grid img { max-width: 100%; max-height: 4rem; object-fit: contain; }
@media (max-width: 900px) { .catalogue-layout { grid-template-columns: 1fr; }.catalogue-sidebar { position: static; }.catalogue-sidebar ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }.catalogue-brands__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) { .catalogue-sidebar ul { grid-template-columns: 1fr; }.catalogue-brands__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.catalogue-products__head { justify-content: flex-start; } }
.woocommerce .woocommerce-breadcrumb { display: none; }
.single-product .site-content { padding-block: clamp(2rem, 5vw, 5rem); background: #fff; }
.single-product div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(22rem, .95fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; width: min(100% - 2rem, var(--container)); margin: 0 auto; }
.single-product div.product .woocommerce-product-gallery { width: auto !important; float: none !important; margin: 0 !important; padding: clamp(1rem, 3vw, 2.25rem); border: 1px solid var(--c-green-100); border-radius: 1.35rem; background: linear-gradient(145deg, #fff, var(--c-green-50)); box-shadow: 0 1.2rem 3.5rem rgba(22, 100, 43, .1); }
.single-product div.product .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product div.product .woocommerce-product-gallery__image { display: grid; place-items: center; }
.single-product div.product .woocommerce-product-gallery__image a { display: block; width: 100%; }
.single-product div.product .woocommerce-product-gallery__image img { width: 100%; max-height: 34rem; object-fit: contain; }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1rem 0 0; }
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li { width: 4rem; border: 1px solid var(--c-line); border-radius: .55rem; overflow: hidden; }
.single-product div.product .summary { width: auto !important; float: none !important; margin: 0 !important; }
.single-product div.product .product_title { max-width: 19ch; margin: .35rem 0 .65rem; color: var(--c-green-800); font-size: clamp(1.85rem, 2.55vw, 2.8rem); line-height: 1.08; letter-spacing: -.018em; }
.single-product div.product .product-catalogue-note { display: inline-flex; margin: 0; padding: .45rem .75rem; border-radius: 999px; background: var(--c-green-50); color: var(--c-green); font-size: .76rem; font-weight: var(--fw-bold); letter-spacing: .04em; text-transform: uppercase; }
.single-product div.product .woocommerce-product-details__short-description { max-width: 38rem; margin-top: 1.1rem; color: var(--c-muted); font-size: .98rem; line-height: 1.6; }
.single-product div.product .product_meta { display: grid; gap: .55rem; margin-top: 1.8rem; padding-top: 1.35rem; border-top: 1px solid var(--c-line); color: var(--c-muted); }
.single-product div.product .product_meta a { color: var(--c-green); font-weight: var(--fw-semibold); }
.single-product div.product .woocommerce-tabs { margin-top: 1.75rem; }
.single-product div.product .woocommerce-tabs ul.tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .5rem; margin: 0 0 1.15rem !important; padding: 0 !important; border: 0 !important; }
.single-product div.product .woocommerce-tabs ul.tabs::before, .single-product div.product .woocommerce-tabs ul.tabs::after { display: none !important; }
.single-product div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 1px solid var(--c-line) !important; border-radius: .55rem !important; background: #fff !important; }
.single-product div.product .woocommerce-tabs ul.tabs li::before, .single-product div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.single-product div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .72rem .8rem; color: var(--c-muted); font-size: .92rem; font-weight: var(--fw-bold); text-align: center; }
.single-product div.product .woocommerce-tabs ul.tabs li.active { border-color: var(--c-green) !important; background: var(--c-green-50) !important; }
.single-product div.product .woocommerce-tabs ul.tabs li.active a { color: var(--c-green-800); }
.single-product div.product .woocommerce-Tabs-panel { max-width: 45rem; padding: .35rem 0 0; border: 0; background: transparent; color: var(--c-ink); font-size: .98rem; line-height: 1.7; }
.single-product div.product .woocommerce-Tabs-panel > h2 { margin: 1rem 0 .75rem; color: var(--c-green-800); font-size: clamp(1.55rem, 2.3vw, 2rem); line-height: 1.15; }
.single-product div.product .woocommerce-Tabs-panel p { margin: 0 0 1rem; }
.product-summary-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.75rem; }
.product-summary-actions .text-link { padding-bottom: .1rem; border-bottom: 1px solid currentColor; }
.single-product .related.products { width: min(100% - 2rem, var(--container)); margin: clamp(4rem, 8vw, 7rem) auto 0; padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--c-line); }
.single-product .related.products > h2 { max-width: 15ch; margin-bottom: 2rem; color: var(--c-green-800); font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; }
.woocommerce nav.woocommerce-pagination { margin-top: 2.5rem; text-align: left; }
.woocommerce nav.woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { display: block; border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 2.45rem; padding: .55rem .7rem; border: 1px solid var(--c-line); border-radius: .55rem; color: var(--c-green-800); font-weight: var(--fw-bold); }
.woocommerce nav.woocommerce-pagination ul li span.current { border-color: var(--c-green); background: var(--c-green); color: #fff; }
@media (max-width: 900px) { .single-product div.product { grid-template-columns: 1fr; gap: 2rem; }.single-product div.product .woocommerce-product-gallery__image img { max-height: 27rem; } }
@media (max-width: 560px) { .catalogue-sidebar__children { margin-left: .35rem !important; }.single-product div.product { width: min(100% - 1.25rem, var(--container)); }.single-product div.product .product_title { font-size: clamp(2.2rem, 12vw, 3.25rem); }.single-product div.product .woocommerce-product-gallery { padding: .85rem; }.single-product div.product .woocommerce-tabs ul.tabs { display: grid; grid-template-columns: 1fr; }.single-product div.product .woocommerce-tabs ul.tabs li { width: 100%; } }

/* ===================== Scheda prodotto: richiedi info =========== */
.product-enquiry { max-width: var(--container-narrow); margin: var(--sp-10) auto 0; padding: var(--sp-6) 0 0; border-top: 1px solid var(--c-line); }
.product-enquiry .section-head { display: block; margin-bottom: var(--sp-5); }

/* =========================== CTA finale ========================== */
.cta-band { position: relative; overflow: clip; background: var(--c-green); color: #fff; text-align: center; }
.cta-band__inner { padding-block: clamp(3rem,6vw,5rem); position: relative; z-index: 2; }
.cta-band h2 { color: #fff; font-size: clamp(2rem,4vw,3rem); text-transform: uppercase; letter-spacing: -.01em; max-width: 18ch; margin-inline: auto; }
.cta-band p { color: rgba(255,255,255,.9); margin-top: var(--sp-3); }
.cta-band .btn { margin-top: var(--sp-6); }
.cta-band .brush {
	z-index: 1;
	border-radius: 0;
	background-color: transparent;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	opacity: .48;
}
.cta-band .c1 {
	width: 250px;
	height: 250px;
	left: -72px;
	top: -76px;
	background-image: url('../img/pennellate/pennellata-01.svg');
	transform: rotate(-18deg);
}
.cta-band .c2 {
	width: 250px;
	height: 210px;
	right: -72px;
	bottom: -70px;
	background-image: url('../img/pennellate/pennellata-04.svg');
	transform: rotate(18deg);
}

/* ----------------------------- Hero generico (pagine) ------------ */
.hero { position: relative; overflow: hidden; background: var(--c-green); color: #fff; padding-block: clamp(2.5rem, 7vw, 5rem); }
.hero--blue { background: var(--c-blue); } .hero--red { background: var(--c-red); } .hero--orange { background: var(--c-orange); } .hero--yellow { background: var(--c-yellow); }
.hero--has-image { background-size: cover; background-position: center; }
.hero--has-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.15)); }
.hero__inner { position: relative; z-index: 2; }
.hero__title { color: #fff; font-size: var(--fs-h1); }
.hero__subtitle { color: #fff; font-size: 1.2rem; font-weight: var(--fw-light); margin-top: var(--sp-3); max-width: 48ch; }
.hero__breadcrumb { margin-bottom: var(--sp-4); font-size: var(--fs-small); }
.hero__breadcrumb a, .hero__breadcrumb #breadcrumbs { color: rgba(255,255,255,.9); }

/* ----------------------------- Footer ---------------------------- */
.site-footer { background: var(--c-ink); color: #e9e9e6; padding-block: var(--sp-8) var(--sp-6); margin-top: 0; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--c-yellow); }
.footer-grid { display: grid; gap: var(--sp-6); grid-template-columns: 1.4fr 1fr 1fr; }
@media (max-width: 760px){ .footer-grid { grid-template-columns: 1fr; } }
.footer-widget__title { color: #fff; font-size: 1.05rem; margin-bottom: var(--sp-3); }
.site-footer ul { list-style: none; padding: 0; display: grid; gap: var(--sp-2); }
.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: var(--sp-6); padding-top: var(--sp-4); font-size: var(--fs-small); color: #b7b7b3; }

/* ============ GenerateBlocks legacy taming (sub-landing) ========= */
/* Le pagine ex-GenerateBlocks senza il plugin: rendiamole leggibili. */
.entry-content .gb-headline { font-family: var(--font-display); font-weight: var(--fw-bold); color: var(--c-ink); line-height: 1.12; margin: var(--sp-5) 0 var(--sp-3); }
.entry-content h1.gb-headline { font-size: var(--fs-h2); }
.entry-content h2.gb-headline { font-size: var(--fs-h3); }
.entry-content h3.gb-headline, .entry-content h4.gb-headline { font-size: var(--fs-h4); }
.entry-content .gb-container { display: block; width: auto; max-width: none; padding: 0; }
.entry-content .gb-grid-wrapper { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.entry-content .gb-button,
.entry-content .wp-block-button__link {
	display: inline-flex; align-items: center; gap: .4em;
	padding: .7em 1.4em; margin: .2rem 0;
	background: var(--c-green); color: #fff !important;
	font-family: var(--font-display); font-weight: var(--fw-bold); font-size: 1rem;
	border-radius: var(--radius-pill); text-decoration: none; line-height: 1;
	transition: background var(--t-fast), transform var(--t-fast);
}
.entry-content .gb-button:hover,
.entry-content .wp-block-button__link:hover { background: var(--c-green-700); transform: translateY(-2px); }
.entry-content .wp-block-buttons,
.entry-content .gb-grid-wrapper { margin-block: var(--sp-4); }
/* breadcrumb Yoast dentro contenuto */
.entry-content #breadcrumbs { font-size: var(--fs-small); color: var(--c-muted); }

/* ================= HOME v3: mockup + pennellate ================= */
.home-hero--approved { overflow: hidden; }
.home-hero--approved .home-hero__inner { min-height: min(760px, 90dvh); }
.home-kicker { display: inline-flex; padding: .32rem 1.15rem; border-radius: var(--radius-pill); background: var(--c-green-50); color: var(--c-green); font-size: .78rem; font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .04em; }
.home-hero--approved h1 { color: var(--c-green); font-size: clamp(2.6rem, 5.3vw, 4.75rem); }
.home-hero--approved h1 span { color: var(--c-orange); }
.home-hero__micro { margin-top: var(--sp-3); color: var(--c-muted); font-size: .95rem; max-width: 48ch; }
.home-hero--approved .home-hero__media { margin-inline: auto; max-width: 490px; }
.home-hero--approved .home-hero__media > img { border: 8px solid #fff; }
.hero-caption { position: absolute; z-index: 4; left: -8%; bottom: 8%; display: grid; gap: .25rem; padding: 1rem 1.3rem; color: #fff; background: var(--c-green); border-radius: var(--radius); box-shadow: var(--shadow); }
.hero-caption strong { font-size: 1.15rem; }.hero-caption span { display: inline-block; width: max-content; padding: .15rem .45rem; color: #fff; background: var(--c-blue); border-radius: .35rem; font-weight: var(--fw-bold); }
.home-section-title h2 { color: var(--c-green); font-size: clamp(2rem, 4vw, 3rem); }.home-section-title h2::after { content: ''; display: block; width: 6rem; height: .3rem; margin-top: .3rem; background: var(--c-orange); transform: rotate(-2deg); }
.offer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 2.2rem); max-width: 980px; margin: var(--sp-6) auto 0; }.offer-card { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform var(--t), box-shadow var(--t); }.offer-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }.offer-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.home-section-action { margin-top: var(--sp-6); text-align: center; }
.home-locations { background: var(--c-bg-alt); }.home-section-intro { max-width: 720px; margin-bottom: var(--sp-6); }.home-section-intro > span, .home-story__content > span { display: block; color: var(--c-orange); font-size: .75rem; font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .06em; margin-bottom: .45rem; }.home-section-intro h2, .home-story h2 { color: var(--c-green); font-size: clamp(2rem, 4vw, 3.15rem); }.home-section-intro p { max-width: 62ch; color: var(--c-muted); margin-top: var(--sp-3); }
.location-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); }.location-card { position: relative; min-height: 205px; padding: var(--sp-4); overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); color: var(--c-ink); transition: transform var(--t), box-shadow var(--t); }.location-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); color: var(--c-ink); }.location-card__brush { position: absolute; z-index: 0; right: -5%; top: 1.1rem; width: 65%; height: 2rem; border-radius: 4px 80% 4px 80%; transform: rotate(-4deg); opacity: .95; }.location-card__brush--1 { background: var(--c-blue); }.location-card__brush--2 { background: var(--c-orange); }.location-card__brush--3 { background: var(--c-green); }.location-card__image { position: relative; z-index: 1; display: grid; place-items: center; width: 5.6rem; height: 2rem; border-radius: .3rem; background: #f4f4f0; color: var(--c-green); font-size: .66rem; font-weight: var(--fw-bold); }.location-card__image img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }.location-card__name, .location-card__place, .location-card__link { position: relative; z-index: 1; display: block; }.location-card__name { margin-top: var(--sp-4); color: var(--c-green); font-size: 1.08rem; font-weight: var(--fw-bold); line-height: 1.1; }.location-card__place { margin-top: .3rem; color: var(--c-muted); font-size: .8rem; }.location-card__link { margin-top: var(--sp-3); color: var(--c-blue); font-size: .82rem; font-weight: var(--fw-bold); }
.home-services { position: relative; overflow: hidden; background: var(--c-green); color: #fff; }.home-section-intro--on-dark > span { color: var(--c-yellow); }.home-section-intro--on-dark h2, .home-section-intro--on-dark p { color: #fff; }.home-section-intro--on-dark p { opacity: .9; }.featured-services { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); }.featured-service { min-height: 160px; padding: var(--sp-4); border: 1px solid rgba(255,255,255,.48); border-radius: var(--radius-sm); }.featured-service__icon { display: inline-flex; width: 30px; height: 30px; padding: .35rem; border-radius: .4rem; background: #fff; color: var(--c-green); }.featured-service__icon svg { width: 100%; height: 100%; }.featured-service h3 { color: #fff; font-size: 1rem; margin-top: var(--sp-3); }.featured-service p { color: rgba(255,255,255,.84); font-size: .85rem; margin-top: .4rem; }.btn--white { color: var(--c-green); background: #fff; }.btn--white:hover { color: #fff; background: var(--c-green-700); }
.home-contact-cta { padding-top: 0; }.home-contact-cta__panel { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-6); padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--radius); background: #12361a; color: #fff; box-shadow: var(--shadow); }.home-contact-cta h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.5rem); }.home-contact-cta p { max-width: 56ch; color: rgba(255,255,255,.84); margin-top: .4rem; }
@media (max-width: 900px) { .location-grid, .featured-services { grid-template-columns: repeat(2, 1fr); }.home-story__grid { grid-template-columns: 1fr; }.home-story__image { max-width: 560px; }.home-contact-cta__panel { align-items: flex-start; flex-direction: column; } }
@media (max-width: 620px) { .home-hero--approved .home-hero__inner { padding-top: var(--sp-6); }.offer-grid { grid-template-columns: 1fr; max-width: 310px; }.location-grid, .featured-services { grid-template-columns: 1fr; }.home-hero__media { margin-top: var(--sp-4); }.hero-caption { left: 0; bottom: -1rem; }.home-story__image, .home-story__image > img { min-height: 280px; } }

/* Asset originali dal file Figma "pennellate": sostituiscono i decori CSS provvisori. */
.hero-arch { position: absolute; z-index: 1; display: block; width: 135%; height: 115%; right: -53%; top: -28%; border: 0; border-radius: 0; background: url('../img/pennellate/pennellata-02.svg') center / contain no-repeat; transform: rotate(18deg); pointer-events: none; }
.location-card__brush { right: -8%; top: .65rem; width: 72%; height: 3.3rem; border-radius: 0; background-position: center; background-repeat: no-repeat; background-size: 100% 100%; transform: rotate(-3deg); opacity: 1; }
.location-card__brush--1 { background-color: transparent; background-image: url('../img/pennellate/pennellata-04.svg'); }
.location-card__brush--2 { background-color: transparent; background-image: url('../img/pennellate/pennellata-10.svg'); }
.location-card__brush--3 { background-color: transparent; background-image: url('../img/pennellate/pennellata-04.svg'); }
.services-brush { position: absolute; z-index: 0; display: block; width: 430px; height: 170px; right: -130px; top: -35px; border: 0; border-radius: 0; background: url('../img/pennellate/pennellata-10.svg') center / contain no-repeat; opacity: .36; transform: rotate(10deg); pointer-events: none; }

/* Offerte gestibili: creative IG Story senza crop, 3 card leggere in fila. */
.home-offers-kicker { display: block; color: var(--c-orange); font-size: .76rem; font-weight: var(--fw-bold); letter-spacing: .04em; text-transform: uppercase; margin-bottom: .25rem; }
.offer-grid { grid-template-columns: repeat(3, 1fr); align-items: start; max-width: 980px; }
.offer-grid--count-1 { grid-template-columns: minmax(0, 320px); justify-content: center; }
.offer-grid--count-2 { grid-template-columns: repeat(2, minmax(0, 303px)); justify-content: center; }
.offer-card { width: 76%; max-width: 248px; margin-inline: auto; padding: .35rem; background: #fff; border: 1px solid var(--c-line); }
.offer-card img { width: 100%; aspect-ratio: 9 / 16; object-fit: contain; background: #fff; border-radius: calc(var(--radius) - .35rem); }
@media (max-width: 620px) { .offer-card { width: min(82%, 260px); }.offer-grid { grid-template-columns: 1fr; } }

/* Su mobile le offerte scorrono lateralmente e lasciano intravedere la card successiva. */
@media (max-width: 620px) {
	.offer-grid {
		display: flex;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 1rem;
		width: auto;
		max-width: none;
		margin-inline: calc(-1 * var(--gutter));
		padding: 0 var(--gutter) .75rem;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-padding-inline: var(--gutter);
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.offer-grid::-webkit-scrollbar { display: none; }
	.offer-grid:focus-visible {
		outline: 3px solid var(--c-blue);
		outline-offset: 3px;
	}
	.offer-card {
		flex: 0 0 min(78vw, 260px);
		width: auto;
		max-width: none;
		margin-inline: 0;
		scroll-snap-align: start;
		scroll-snap-stop: normal;
	}
}

/* Farmacie: variante approvata dal grafico, card sobrie e pennellate solo di cornice. */
.home-locations { position: relative; overflow: hidden; background: #fff; }
.home-locations .container { position: relative; z-index: 1; }
.locations-decor { position: absolute; z-index: 0; display: block; pointer-events: none; background-repeat: no-repeat; background-size: contain; }
.locations-decor--top { width: 290px; height: 90px; top: 3.4rem; right: -3rem; background-image: url('../img/pennellate/pennellata-10.svg'); transform: rotate(-8deg); }
.locations-decor--bottom { width: 265px; height: 170px; right: -4rem; bottom: -5.5rem; background-image: url('../img/pennellate/pennellata-04.svg'); transform: rotate(12deg); }
.home-locations .home-section-intro { max-width: 900px; }.home-locations .home-section-intro h2 { font-size: clamp(2rem, 3.8vw, 3.25rem); }.home-locations .home-section-intro h2::after { content: ''; display: block; width: 7.5rem; height: .2rem; margin-top: .22rem; background: var(--c-green); transform: rotate(-2deg); }
.location-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.35rem; }.location-card { display: grid; grid-template-rows: 9.5rem 1fr; min-height: 22rem; padding: 0; border: 1px solid #f0f0ed; box-shadow: 0 7px 18px rgba(27,54,32,.09); }.location-card:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(27,54,32,.13); }.location-card__brush { display: none; }.location-card__image { display: block; width: 100%; height: 9.5rem; border-radius: 0; overflow: hidden; }.location-card__image img { width: 100%; height: 100%; object-fit: cover; }.location-card__content { display: flex; flex-direction: column; padding: 1.25rem; }.location-card__name { margin-top: 0; font-size: 1.08rem; }.location-card__place { min-height: 3.1rem; margin-top: .65rem; font-size: .86rem; line-height: 1.42; }.location-card__link { margin-top: auto; padding-top: 1rem; color: var(--c-blue-700); font-size: .9rem; }
@media (max-width: 900px) { .location-grid { grid-template-columns: repeat(2, 1fr); }.locations-decor--top { right: -7rem; } }
@media (max-width: 620px) { .location-grid { grid-template-columns: 1fr; }.location-card { min-height: 175px; }.locations-decor { opacity: .55; } }

/* Servizi e footer: composizione del grafico approvato. */
.featured-services { grid-template-columns: repeat(4, 1fr); }.featured-service { min-height: 112px; display: flex; align-items: center; gap: .75rem; padding: 1rem; }.featured-service h3 { margin-top: 0; font-size: .92rem; }.featured-service p { display: none; }.featured-service__icon { width: 38px; height: 38px; flex: 0 0 38px; }
.site-footer { position: relative; overflow: hidden; margin-top: 0; padding-block: 3rem 2rem; background: #fff; color: var(--c-ink); }.site-footer a { color: var(--c-ink); }.site-footer a:hover { color: var(--c-green); }.footer-grid { position: relative; z-index: 1; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 2rem; }.footer-brand img { width: 150px; height: auto; }.footer-brand p { max-width: 22ch; margin-top: 1rem; font-size: .95rem; }.footer-col { display: grid; align-content: start; gap: .55rem; }.footer-col h2 { color: var(--c-ink); font-size: 1rem; margin-bottom: .4rem; }.footer-col p, .footer-col a { font-size: .9rem; }.footer-col p { color: var(--c-muted); }.footer-contact-link { color: var(--c-blue) !important; font-weight: var(--fw-bold); }.footer-benefits { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2.25rem; }.footer-benefits span { padding: 1rem; border: 1px solid var(--c-line); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); color: var(--c-ink); font-size: .82rem; font-weight: var(--fw-semibold); }.site-footer__bottom { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 1rem; border-top: 0; margin-top: 1.6rem; padding-top: 0; color: var(--c-muted); font-size: .78rem; }.footer-brush { position: absolute; pointer-events: none; background: center / contain no-repeat; }.footer-brush--top { right: -4rem; top: -2rem; width: 180px; height: 100px; background-image: url('../img/pennellate/pennellata-04.svg'); }.footer-brush--bottom { right: -3rem; bottom: -4rem; width: 260px; height: 140px; background-image: url('../img/pennellate/pennellata-04.svg'); transform: rotate(180deg); }
@media (max-width: 1000px) { .footer-grid { grid-template-columns: repeat(3, 1fr); }.footer-brand { grid-column: span 3; }.footer-benefits { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .featured-services, .footer-grid, .footer-benefits { grid-template-columns: 1fr; }.footer-brand { grid-column: auto; }.footer-brush { opacity: .45; } }

/* Pagine interne: stessa gerarchia della home, con variazioni per contenuto. */
.hero { padding-block: clamp(3.5rem, 8vw, 6.5rem); background: var(--c-green); }.hero--blue { background: var(--c-blue); }.hero--orange { background: var(--c-orange); }.hero--yellow { background: var(--c-yellow); }.hero__brush { position: absolute; z-index: 1; right: -7%; top: -30%; width: min(46vw, 560px); height: 190%; border-radius: 0; background: url('../img/pennellate/pennellata-02.svg') center / contain no-repeat; opacity: .55; transform: rotate(18deg); pointer-events: none; }.hero--blue .hero__brush { top: 5%; right: -9%; width: min(50vw, 620px); height: 90%; background-image: url('../img/pennellate/pennellata-10.svg'); transform: rotate(-10deg); }.hero--orange .hero__brush { background-image: url('../img/pennellate/pennellata-04.svg'); }.hero__title { max-width: 18ch; text-wrap: balance; }.hero__subtitle { max-width: 54ch; }.internal-intro { position: relative; overflow: hidden; }.internal-decor { position: absolute; width: 260px; height: 90px; right: -3rem; top: 1rem; background: center / contain no-repeat; pointer-events: none; }.internal-decor--orange { background-image: url('../img/pennellate/pennellata-10.svg'); transform: rotate(-8deg); }.page-kicker, .page-section-head > span, .internal-contact__panel > div > span { display: block; color: var(--c-orange-700); font-size: .76rem; font-weight: var(--fw-bold); letter-spacing: .05em; text-transform: uppercase; margin-bottom: .4rem; }.page-section-head { margin-bottom: var(--sp-6); }.page-section-head h2 { color: var(--c-green); font-size: clamp(2rem, 4vw, 3rem); }.product-category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }.product-category-grid a { display: flex; justify-content: space-between; align-items: center; min-height: 130px; padding: 1.5rem; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-sm); color: var(--c-green-700); font-family: var(--font-display); font-size: 1.15rem; font-weight: var(--fw-bold); }.product-category-grid a:hover { box-shadow: var(--shadow); transform: translateY(-3px); }.product-category-grid span { color: var(--c-blue-700); font-size: 1.5rem; }.internal-contact { padding: 0 0 clamp(3rem, 7vw, 6rem); }.internal-contact__panel { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-6); padding: clamp(1.5rem, 4vw, 3rem); background: var(--c-green-700); color: #fff; border-radius: var(--radius); }.internal-contact__panel h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.5rem); }.internal-contact__panel p { color: rgba(255,255,255,.92); margin-top: .3rem; }.internal-contact__panel > div > span { color: #fff; }
@media (max-width: 620px) { .hero__brush { right: -34%; width: 82vw; opacity: .34; } }
.page-template-page-storia-delle-farmacie-lombardi .servizi, .page-template-page-programma-fedelta .servizi { position: relative; overflow: hidden; background: var(--c-bg-alt); }.page-template-page-storia-delle-farmacie-lombardi .servizi::before, .page-template-page-programma-fedelta .servizi::before { content: ''; position: absolute; right: -7rem; top: -2rem; width: 320px; height: 100px; background: url('../img/pennellate/pennellata-10.svg') center / contain no-repeat; opacity: .7; transform: rotate(-8deg); }.page-template-page-servizi .acc { border: 0; box-shadow: var(--shadow-sm); }.page-template-page-servizi .acc__item > summary { padding: 1.25rem 1.5rem; }.page-template-page-servizi .acc__item[open] > summary { background: var(--c-green-50); }.page-template-page-centro-estetico-farmacie-lombardi .treat { min-height: 310px; box-shadow: var(--shadow-sm); }.page-template-page-centro-estetico-farmacie-lombardi .treat:nth-child(2n) { transform: translateY(2.5rem); }.page-template-page-contattare-le-farmacie-lombardi .ccard { border: 0; box-shadow: var(--shadow-sm); }.page-template-page-contattare-le-farmacie-lombardi .servizi { background: var(--c-bg-alt); }
@media (max-width: 800px) { .product-category-grid { grid-template-columns: 1fr; }.internal-contact__panel { align-items: flex-start; flex-direction: column; }.page-template-page-centro-estetico-farmacie-lombardi .treat:nth-child(2n) { transform: none; } }

/* Directory Farmacie: sostituisce il vecchio layout a pillole GenerateBlocks. */
.pharmacy-directory { position: relative; overflow: hidden; background: #fff; }.directory-decor { position: absolute; pointer-events: none; background: center / contain no-repeat; }.directory-decor--top { width: 250px; height: 90px; right: -4rem; top: 2.5rem; background-image: url('../img/pennellate/pennellata-10.svg'); transform: rotate(-8deg); }.directory-intro { max-width: 720px; margin-bottom: 2.5rem; }.directory-intro > span { color: var(--c-orange-700); font-size: .76rem; font-weight: var(--fw-bold); letter-spacing: .05em; text-transform: uppercase; }.directory-intro h2 { margin-top: .35rem; color: var(--c-green); font-size: clamp(2.1rem, 4.2vw, 3.35rem); }.directory-intro p { max-width: 58ch; margin-top: .8rem; color: var(--c-muted); }.pharmacy-directory-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }.pharmacy-directory-card { overflow: hidden; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-sm); transition: transform var(--t), box-shadow var(--t); }.pharmacy-directory-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }.pharmacy-directory-card__image { display: block; height: 185px; background: var(--c-green-50); }.pharmacy-directory-card__image img { width: 100%; height: 100%; object-fit: cover; }.pharmacy-directory-card__image span { display: grid; place-items: center; width: 100%; height: 100%; color: var(--c-green); font-weight: var(--fw-bold); }.pharmacy-directory-card__body { padding: 1.35rem; }.pharmacy-directory-card h3 { color: var(--c-green); font-size: 1.25rem; }.pharmacy-directory-card p { min-height: 3.2rem; margin-top: .6rem; color: var(--c-muted); font-size: .92rem; }.pharmacy-directory-card__body > a { display: inline-block; margin-top: 1rem; color: var(--c-blue-700); font-size: .9rem; font-weight: var(--fw-bold); }.pharmacy-directory-card__body > a span { font-size: 1.15rem; }
@media (max-width: 820px) { .pharmacy-directory-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pharmacy-directory-grid { grid-template-columns: 1fr; }.directory-decor--top { opacity: .55; } }

/* --------------------------- Breadcrumbs / content --------------- */
.breadcrumbs-div { margin: var(--sp-4) 0; font-size: var(--fs-small); color: var(--c-muted); }
.entry-content { max-width: var(--container-narrow); }
.entry-content > * + * { margin-top: var(--sp-4); }
.entry-content h2 { margin-top: var(--sp-6); }
.entry-content img { border-radius: var(--radius); }
.page-content, .entry-content.is-full { max-width: none; }

/* Home: sezioni editoriali previste dall'alberatura approvata. */
.home-story {
	position: relative;
	overflow: hidden;
	background: var(--c-bg-alt);
}
.home-story__grid {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 5rem);
}
.home-story__image {
	min-height: 430px;
	overflow: hidden;
	border-radius: var(--radius-lg);
	box-shadow: 0 18px 45px rgba(27, 54, 32, .14);
}
.home-story__image img {
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}
.home-story__content p {
	max-width: 58ch;
	margin-top: var(--sp-4);
	color: var(--c-muted);
	font-size: 1.05rem;
	line-height: 1.7;
	text-wrap: pretty;
}
.home-story__content .btn { margin-top: var(--sp-5); }

@media (max-width: 900px) {
	.home-story__grid { grid-template-columns: 1fr; }
	.home-story__image { width: 100%; max-width: 620px; min-height: 340px; }
}

@media (max-width: 620px) {
	.home-story__image { min-height: 280px; }
	.home-contact-cta__panel { gap: var(--sp-5); }
}

/* ========================================================================
   Due direzioni visive per la home: ?design=a e ?design=b.
   Nessuna regola qui modifica markup, testi o ordine delle sezioni.
   ======================================================================== */

/* A — editoriale luminoso: molto arioso, morbido, rassicurante. */
.home-design-a .home-hero--approved {
	background: linear-gradient(118deg, #fff 0 57%, #f2f8ef 57% 100%);
}
.home-design-a .home-hero--approved::after {
	content: '';
	position: absolute;
	right: -4rem;
	bottom: -2.5rem;
	width: min(38vw, 460px);
	height: 150px;
	background: url('../img/pennellate/pennellata-10.svg') center / contain no-repeat;
	opacity: .16;
	transform: rotate(-7deg);
	pointer-events: none;
}
.home-design-a .home-hero__inner { min-height: min(720px, 84dvh); }
.home-design-a .home-hero--approved .home-hero__media > img {
	border-width: 12px;
	border-radius: 1.65rem;
	box-shadow: 0 26px 60px rgba(23, 59, 28, .16);
}
.home-design-a .hero-caption {
	left: -5%;
	bottom: 6%;
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: .9rem;
	box-shadow: 0 16px 32px rgba(20, 64, 29, .22);
}
.home-design-a .home-offers {
	position: relative;
	background: linear-gradient(180deg, #fff 0%, #fffaf5 100%);
}
.home-design-a .home-offers::before {
	content: '';
	position: absolute;
	left: -4rem;
	top: 3rem;
	width: 230px;
	height: 86px;
	background: url('../img/pennellate/pennellata-02.svg') center / contain no-repeat;
	opacity: .15;
	transform: rotate(8deg);
}
.home-design-a .home-section-title h2::after {
	width: 4.8rem;
	height: .18rem;
	border-radius: 1rem;
}
.home-design-a .offer-card {
	padding: .5rem;
	border: 1px solid rgba(31, 71, 37, .08);
	border-radius: 1.2rem;
	box-shadow: 0 15px 32px rgba(38, 56, 40, .08);
}
.home-design-a .offer-card:hover { box-shadow: 0 21px 42px rgba(38, 56, 40, .14); }
.home-design-a .home-locations { background: #f7f8f5; }
.home-design-a .home-locations .container {
	padding: clamp(2.5rem, 5vw, 4.5rem);
	background: rgba(255, 255, 255, .75);
	border: 1px solid rgba(47, 101, 52, .08);
	border-radius: 1.7rem;
}
.home-design-a .locations-decor--top { opacity: .7; }
.home-design-a .location-card {
	border-radius: 1rem;
	border-color: rgba(34, 78, 39, .07);
	box-shadow: 0 10px 24px rgba(24, 48, 28, .07);
}
.home-design-a .location-card__image { border-radius: .45rem; }
.home-design-a .home-services {
	background: linear-gradient(115deg, #246e29 0%, #368930 55%, #4c9b41 100%);
}
.home-design-a .featured-service {
	border-radius: .9rem;
	background: rgba(255, 255, 255, .07);
	border-color: rgba(255, 255, 255, .32);
}
.home-design-a .site-footer { background: #fbfcf9; }
.home-design-a .footer-benefits span { background: #fff; }

/* B — brand dinamico: contrasti più decisi, blocchi pieni e pennellate protagoniste. */
.home-design-b .home-hero--approved {
	background: linear-gradient(90deg, #f8fbf6 0 51%, #368930 51% 100%);
}
.home-design-b .home-hero--approved::before {
	content: '';
	position: absolute;
	z-index: 0;
	right: -8rem;
	top: -2.5rem;
	width: min(49vw, 610px);
	height: 220px;
	background: url('../img/pennellate/pennellata-02.svg') center / contain no-repeat;
	opacity: .9;
	transform: rotate(12deg);
	pointer-events: none;
}
.home-design-b .home-hero__inner { min-height: min(735px, 86dvh); }
.home-design-b .home-hero--approved .home-hero__media { transform: translateY(1rem); }
.home-design-b .home-hero--approved .home-hero__media > img {
	border-width: 9px;
	border-radius: 1.35rem 1.35rem 3.5rem 1.35rem;
	box-shadow: 22px 24px 0 rgba(0, 145, 217, .95), 0 22px 46px rgba(12, 47, 19, .3);
}
.home-design-b .hero-caption {
	left: -10%;
	bottom: 3%;
	border-radius: .9rem 1.45rem .9rem .9rem;
	box-shadow: 10px 10px 0 var(--c-orange), 0 18px 30px rgba(15, 50, 20, .28);
}
.home-design-b .home-offers { position: relative; background: #fff; }
.home-design-b .home-offers::after {
	content: '';
	position: absolute;
	right: -3.5rem;
	top: 1.5rem;
	width: 255px;
	height: 115px;
	background: url('../img/pennellate/pennellata-04.svg') center / contain no-repeat;
	opacity: .17;
	transform: rotate(-10deg);
	pointer-events: none;
}
.home-design-b .home-section-title h2::after {
	width: 7rem;
	height: .35rem;
	border-radius: 0;
	background: url('../img/pennellate/pennellata-01.svg') center / 100% 100% no-repeat;
}
.home-design-b .offer-grid { gap: clamp(1.25rem, 3vw, 3rem); }
.home-design-b .offer-card {
	padding: .42rem;
	border: 3px solid #fff;
	border-radius: 1.25rem;
	box-shadow: 0 12px 0 rgba(0, 145, 217, .15), 0 20px 36px rgba(30, 54, 34, .14);
}
.home-design-b .offer-card:nth-child(2) { transform: translateY(1.25rem); }
.home-design-b .offer-card:nth-child(3) { box-shadow: 0 12px 0 rgba(253, 60, 4, .22), 0 20px 36px rgba(30, 54, 34, .14); }
.home-design-b .offer-card:hover { transform: translateY(-.25rem) rotate(-.8deg); }
.home-design-b .offer-card:nth-child(2):hover { transform: translateY(.55rem) rotate(.8deg); }
.home-design-b .home-locations { background: linear-gradient(180deg, #fff 0%, #f5f7f2 100%); }
.home-design-b .home-locations::before {
	content: '';
	position: absolute;
	left: -5rem;
	bottom: -2rem;
	width: 320px;
	height: 150px;
	background: url('../img/pennellate/pennellata-02.svg') center / contain no-repeat;
	opacity: .14;
	transform: rotate(-18deg);
}
.home-design-b .location-grid { gap: 1.55rem; }
.home-design-b .location-card {
	border: 0;
	border-radius: 1.1rem;
	box-shadow: 0 14px 0 rgba(54, 137, 48, .09), 0 16px 30px rgba(27, 54, 32, .08);
}
.home-design-b .location-card:nth-child(2n) { transform: translateY(1rem); }
.home-design-b .location-card:nth-child(2n):hover { transform: translateY(.65rem); }
.home-design-b .home-services {
	background: linear-gradient(125deg, #0f6d2b 0%, #188335 52%, #286d29 100%);
}
.home-design-b .services-brush { opacity: .58; width: 530px; height: 210px; }
.home-design-b .featured-service {
	border-radius: 1rem 1.8rem 1rem 1rem;
	background: rgba(0, 0, 0, .08);
	border-color: rgba(255, 255, 255, .38);
}
.home-design-b .featured-service:nth-child(3n+2) { background: rgba(0, 145, 217, .16); }
.home-design-b .site-footer { border-top: 7px solid var(--c-blue); }
.home-design-b .footer-benefits span { border-top: 4px solid var(--c-green); }

@media (max-width: 900px) {
	.home-design-a .home-locations .container { padding: clamp(2rem, 5vw, 3rem); }
	.home-design-b .home-hero--approved { background: linear-gradient(180deg, #f8fbf6 0 58%, #368930 58% 100%); }
	.home-design-b .home-hero--approved .home-hero__media { transform: none; }
}
@media (max-width: 620px) {
	.home-design-a .home-locations .container { border: 0; border-radius: 0; }
	.home-design-b .offer-card:nth-child(2),
	.home-design-b .location-card:nth-child(2n) { transform: none; }
	.home-design-b .home-hero--approved .home-hero__media > img { box-shadow: 12px 13px 0 rgba(0, 145, 217, .95), 0 18px 32px rgba(12, 47, 19, .24); }
}

/* ========================================================================
   HOME CONCEPT A: "Atlante della cura"
   Sistema editoriale, ordinato e autorevole. Righe, moduli e fotografia.
   ======================================================================== */
.home-design-a { --home-rule: rgba(21, 66, 29, .22); background: #fdfdfb; }
.home-design-a .site-header { border-bottom: 1px solid var(--home-rule); box-shadow: none; }
.home-design-a .home-hero--approved { background: #fdfdfb; }
.home-design-a .home-hero--approved::after,
.home-design-a .home-offers::before { display: none; }
.home-design-a .home-hero__inner {
	grid-template-columns: minmax(0, .86fr) minmax(360px, 1.14fr);
	gap: clamp(2rem, 6vw, 6rem);
	min-height: 690px;
	padding-block: clamp(3rem, 7vw, 6.5rem);
}
.home-design-a .home-kicker {
	padding: 0 0 .65rem;
	border-radius: 0;
	border-bottom: 2px solid var(--c-orange);
	background: transparent;
	letter-spacing: .11em;
}
.home-design-a .home-hero--approved h1 {
	max-width: 10ch;
	font-size: clamp(3.25rem, 6vw, 5.85rem);
	line-height: .94;
	letter-spacing: -.055em;
}
.home-design-a .home-hero--approved h1 span { color: var(--c-green); }
.home-design-a .home-hero__sub { max-width: 39ch; font-size: 1.08rem; line-height: 1.6; }
.home-design-a .home-hero__cta .btn { border-radius: .3rem; }
.home-design-a .home-hero--approved .home-hero__media {
	max-width: none;
	margin: 0;
	padding: 1.1rem 0 0 1.1rem;
	border-top: 1px solid var(--home-rule);
	border-left: 1px solid var(--home-rule);
}
.home-design-a .home-hero--approved .home-hero__media > img {
	border: 0;
	border-radius: 0;
	box-shadow: none;
	filter: saturate(.88) contrast(1.03);
}
.home-design-a .hero-caption {
	left: -2.2rem;
	bottom: 0;
	padding: 1.1rem 1.25rem;
	border-radius: 0;
	box-shadow: none;
	background: var(--c-green-700);
}
.home-design-a .hero-caption span { border-radius: 0; background: transparent; padding: 0; color: #dff0df; }
.home-design-a .home-offers { border-top: 1px solid var(--home-rule); background: #fdfdfb; }
.home-design-a .home-offers .container { max-width: 1240px; }
.home-design-a .home-section-title { display: grid; grid-template-columns: 1fr 2fr; gap: var(--sp-4); align-items: end; }
.home-design-a .home-section-title h2 { max-width: 10ch; font-size: clamp(2.4rem, 4vw, 4rem); }
.home-design-a .home-section-title h2::after { display: none; }
.home-design-a .home-offers-kicker { align-self: end; margin: 0 0 .7rem; color: var(--c-orange-700); }
.home-design-a .offer-grid {
	max-width: none;
	gap: 0;
	margin-top: 2.5rem;
	border-top: 1px solid var(--home-rule);
	border-bottom: 1px solid var(--home-rule);
}
.home-design-a .offer-card {
	width: 100%; max-width: none; margin: 0; padding: 1.5rem;
	border: 0; border-radius: 0; box-shadow: none; background: transparent;
}
.home-design-a .offer-card + .offer-card { border-left: 1px solid var(--home-rule); }
.home-design-a .offer-card img { border-radius: 0; background: #fff; box-shadow: 0 16px 30px rgba(24, 48, 28, .09); }
.home-design-a .offer-card:hover { transform: translateY(-6px); box-shadow: none; }
.home-design-a .home-section-action { text-align: left; }
.home-design-a .home-section-action .btn { border-radius: .3rem; }
.home-design-a .home-locations { background: #eef5eb; }
.home-design-a .home-locations .container { padding: 0 var(--gutter); border: 0; border-radius: 0; background: transparent; }
.home-design-a .home-locations .home-section-intro { max-width: 850px; margin-bottom: 3.5rem; }
.home-design-a .home-section-intro h2 { max-width: 15ch; }
.home-design-a .locations-decor { display: none; }
.home-design-a .location-grid { gap: 0; border-top: 1px solid var(--home-rule); }
.home-design-a .location-card {
	min-height: 260px; padding: 1.4rem; border: 0; border-radius: 0;
	border-right: 1px solid var(--home-rule); border-bottom: 1px solid var(--home-rule);
	box-shadow: none; background: transparent;
}
.home-design-a .location-card:nth-child(4n) { border-right: 0; }
.home-design-a .location-card:hover { transform: none; box-shadow: inset 0 -5px 0 var(--c-orange); background: rgba(255,255,255,.5); }
.home-design-a .location-card__image { width: 100%; height: 95px; border-radius: 0; background: transparent; }
.home-design-a .location-card__image img { border-radius: 0; filter: saturate(.76); }
.home-design-a .location-card__content { padding: 1.25rem 0 0; }
.home-design-a .location-card__name { font-size: 1.15rem; }
.home-design-a .home-services { background: #143b1a; }
.home-design-a .services-brush { display: none; }
.home-design-a .home-services .container { max-width: 1240px; }
.home-design-a .featured-services { gap: 0; border-top: 1px solid rgba(255,255,255,.35); }
.home-design-a .featured-service {
	min-height: 138px; padding: 1.3rem; border: 0; border-radius: 0;
	border-right: 1px solid rgba(255,255,255,.35); border-bottom: 1px solid rgba(255,255,255,.35); background: transparent;
}
.home-design-a .featured-service:nth-child(4n) { border-right: 0; }
.home-design-a .featured-service:hover { background: rgba(255,255,255,.08); }
.home-design-a .featured-service__icon { border-radius: 0; background: var(--c-orange); color: #fff; }
.home-design-a .site-footer { border-top: 1px solid var(--home-rule); background: #fdfdfb; }
.home-design-a .footer-benefits { gap: 0; border-top: 1px solid var(--home-rule); }
.home-design-a .footer-benefits span { border: 0; border-right: 1px solid var(--home-rule); border-radius: 0; box-shadow: none; background: transparent; }

/* ========================================================================
   HOME CONCEPT B: "Farmacia in movimento"
   Linguaggio da campagna social: campiture nette, segni grandi, energia.
   ======================================================================== */
.home-design-b { background: #fff; }
.home-design-b .site-header { position: relative; z-index: 20; background: var(--c-blue); border-bottom: 0; box-shadow: none; }
.home-design-b .site-header .menu a,
.home-design-b .site-header .site-nav a { color: #fff; }
.home-design-b .site-header .menu .current-menu-item > a,
.home-design-b .site-header .site-nav .current-menu-item > a { border-color: #fff; }
.home-design-b .home-hero--approved { background: var(--c-blue); color: #fff; }
.home-design-b .home-hero--approved::before {
	right: -7rem; top: -1rem; width: min(58vw, 760px); height: 290px; opacity: 1;
	background-image: url('../img/pennellate/pennellata-02.svg');
}
.home-design-b .home-hero__inner { min-height: 720px; grid-template-columns: 1fr .9fr; gap: clamp(1.5rem, 5vw, 5rem); }
.home-design-b .home-kicker { background: var(--c-orange); color: #fff; border-radius: .25rem; letter-spacing: .08em; }
.home-design-b .home-hero--approved h1,
.home-design-b .home-hero--approved h1 span,
.home-design-b .home-hero__sub { color: #fff; }
.home-design-b .home-hero--approved h1 { max-width: 9ch; font-size: clamp(3.4rem, 6.2vw, 6rem); line-height: .92; }
.home-design-b .home-hero__sub { font-size: 1.12rem; }
.home-design-b .home-hero__cta .btn { border-radius: .4rem; background: #fff; color: var(--c-blue-700); }
.home-design-b .home-hero__cta .btn--outline { border-color: #fff; background: transparent; color: #fff; }
.home-design-b .home-hero--approved .home-hero__media { padding: .75rem; max-width: none; background: #fff; transform: rotate(2deg); }
.home-design-b .home-hero--approved .home-hero__media > img { border: 0; border-radius: 0; box-shadow: none; }
.home-design-b .hero-caption { left: -2.8rem; bottom: 2.5rem; border-radius: .35rem; background: var(--c-green); box-shadow: 10px 10px 0 var(--c-orange); }
.home-design-b .hero-caption span { border-radius: 0; background: transparent; padding: 0; }
.home-design-b .home-offers { position: relative; background: var(--c-orange); color: #fff; overflow: hidden; }
.home-design-b .home-offers::after { display: none; }
.home-design-b .home-offers::before {
	display: block; left: auto; right: -6rem; top: auto; bottom: -3rem; width: 420px; height: 180px;
	background-image: url('../img/pennellate/pennellata-02.svg'); opacity: .75; transform: rotate(-12deg);
}
.home-design-b .home-offers-kicker { color: #fff; }
.home-design-b .home-section-title h2 { color: #fff; font-size: clamp(2.5rem, 4.2vw, 4.2rem); }
.home-design-b .home-section-title h2::after { background: #fff; width: 6.3rem; height: .25rem; }
.home-design-b .offer-grid { max-width: 1120px; gap: clamp(1rem, 3vw, 2.7rem); }
.home-design-b .offer-card { width: 100%; max-width: 310px; padding: .7rem; border: 0; border-radius: .45rem; background: #fff; box-shadow: 12px 12px 0 rgba(0,0,0,.16); }
.home-design-b .offer-card:nth-child(2) { transform: translateY(2rem) rotate(-2deg); }
.home-design-b .offer-card:nth-child(3) { transform: rotate(2deg); box-shadow: 12px 12px 0 rgba(0, 145, 217, .8); }
.home-design-b .offer-card:hover { transform: translateY(-.35rem) rotate(-1deg); }
.home-design-b .offer-card:nth-child(2):hover { transform: translateY(1.45rem) rotate(-1deg); }
.home-design-b .home-section-action .btn { border-radius: .35rem; background: #fff; color: var(--c-orange-700); }
.home-design-b .home-locations { background: #fff; }
.home-design-b .home-locations::before { display: none; }
.home-design-b .home-locations .home-section-intro { max-width: 850px; padding-left: 1.2rem; border-left: .75rem solid var(--c-green); }
.home-design-b .home-section-intro > span { color: var(--c-blue); }
.home-design-b .home-section-intro h2 { font-size: clamp(2.4rem, 4.6vw, 4.25rem); }
.home-design-b .locations-decor--top { right: -3rem; top: 0; width: 350px; height: 140px; opacity: 1; }
.home-design-b .locations-decor--bottom { right: -4rem; bottom: -2rem; width: 300px; opacity: .85; }
.home-design-b .location-grid { gap: 1rem; }
.home-design-b .location-card { min-height: 265px; border: 3px solid var(--c-green); border-radius: .4rem; box-shadow: 8px 8px 0 var(--c-yellow); }
.home-design-b .location-card:nth-child(3n+2) { border-color: var(--c-blue); box-shadow: 8px 8px 0 var(--c-green); }
.home-design-b .location-card:nth-child(3n) { border-color: var(--c-orange); box-shadow: 8px 8px 0 var(--c-blue); }
.home-design-b .location-card:hover { transform: translate(-3px, -3px); box-shadow: 12px 12px 0 var(--c-green); }
.home-design-b .location-card__image { height: 105px; width: 100%; border-radius: 0; background: #f4f4f0; }
.home-design-b .location-card__image img { border-radius: 0; }
.home-design-b .location-card__content { padding: 1rem .15rem 0; }
.home-design-b .location-card__name { font-size: 1.1rem; }
.home-design-b .location-card__link { color: var(--c-blue-700); font-size: .93rem; }
.home-design-b .home-services { background: var(--c-green); }
.home-design-b .services-brush { right: -90px; top: -20px; width: 540px; height: 220px; opacity: .9; background-image: url('../img/pennellate/pennellata-02.svg'); }
.home-design-b .home-services .home-section-intro { max-width: 760px; }
.home-design-b .home-services .home-section-intro h2 { font-size: clamp(2.5rem, 4.8vw, 4.35rem); }
.home-design-b .featured-services { gap: 1rem; }
.home-design-b .featured-service { min-height: 138px; border: 3px solid #fff; border-radius: .35rem; background: rgba(0,0,0,.08); }
.home-design-b .featured-service:nth-child(3n+2) { background: var(--c-blue); }
.home-design-b .featured-service__icon { border-radius: 0; background: var(--c-yellow); color: var(--c-green-700); }
.home-design-b .site-footer { border-top: 10px solid var(--c-orange); background: var(--c-blue); color: #fff; }
.home-design-b .site-footer a,
.home-design-b .footer-col h2,
.home-design-b .footer-brand p,
.home-design-b .footer-col p,
.home-design-b .site-footer__bottom { color: #fff; }
.home-design-b .site-footer a:hover { color: var(--c-yellow); }
.home-design-b .footer-benefits span { border: 2px solid rgba(255,255,255,.5); border-radius: .35rem; background: rgba(0,0,0,.08); color: #fff; box-shadow: none; }
.home-design-b .footer-brush--top,
.home-design-b .footer-brush--bottom { background-image: url('../img/pennellate/pennellata-02.svg'); opacity: .9; }

@media (max-width: 900px) {
	.home-design-a .home-hero__inner { grid-template-columns: 1fr; min-height: 0; }
	.home-design-a .home-hero--approved .home-hero__media { max-width: 620px; }
	.home-design-a .location-card:nth-child(4n) { border-right: 1px solid var(--home-rule); }
	.home-design-a .location-card:nth-child(2n), .home-design-a .featured-service:nth-child(2n) { border-right: 0; }
	.home-design-b .home-hero__inner { grid-template-columns: 1fr; min-height: 0; }
	.home-design-b .home-hero--approved .home-hero__media { max-width: 540px; margin-inline: auto; }
}
@media (max-width: 620px) {
	.home-design-a .home-section-title { grid-template-columns: 1fr; }
	.home-design-a .offer-grid { display: flex; border-bottom: 0; }
	.home-design-a .offer-card { flex-basis: min(78vw, 280px); padding: 1rem; border: 1px solid var(--home-rule); }
	.home-design-a .offer-card + .offer-card { border-left: 1px solid var(--home-rule); }
	.home-design-a .location-card, .home-design-a .location-card:nth-child(2n), .home-design-a .featured-service, .home-design-a .featured-service:nth-child(2n) { border-right: 0; }
	.home-design-b .site-header { background: var(--c-blue); }
	.home-design-b .offer-card:nth-child(2), .home-design-b .offer-card:nth-child(3) { transform: none; }
	.home-design-b .offer-card:nth-child(2):hover { transform: translateY(-.35rem); }
	.home-design-b .hero-caption { left: 0; box-shadow: 7px 7px 0 var(--c-orange); }
}

/* Home 6 approvata: Hero della Home 3 e Offerte inclinate, come da variante
   selezionata dal cliente. Le creative restano intere (formato Story) e
   riacquistano l'assetto dritto al passaggio del mouse. */
.home-design-6 .home-hero--approved h1 {
	font-size: clamp(2.1rem, 3.7vw, 3.3rem);
	line-height: 1.04;
	letter-spacing: -.03em;
}
.home-design-6 .home-hero__sub { max-width: 44ch; font-size: 1.1rem; }
.home-design-6 .home-hero__micro { max-width: 46ch; font-size: .92rem; }
.home-design-6 .home-offers {
	padding-block: clamp(3.5rem, 7vw, 6rem);
	background: var(--c-white);
}
.home-design-6 .home-section-title h2,
.home-design-6 .home-section-intro h2,
.home-design-6 .home-story h2 {
	font-size: clamp(2rem, 4vw, 3.2rem);
	line-height: 1.05;
	letter-spacing: -.02em;
}
.home-design-6 .home-section-title h2 { color: var(--c-green-800); }
.home-design-6 .home-section-title h2::after {
	width: 5rem;
	height: .45rem;
	border-radius: var(--radius-pill);
	background: var(--c-orange);
}
.home-design-6 .offer-grid {
	display: flex;
	max-width: none;
	gap: 1.5rem;
	margin-inline: calc(-1 * var(--gutter));
	padding: 1rem var(--gutter) 1.5rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--gutter);
	scrollbar-width: none;
}
.home-design-6 .offer-grid::-webkit-scrollbar { display: none; }
.home-design-6 .offer-card {
	flex: 0 0 min(74vw, 290px);
	width: auto;
	max-width: none;
	margin-inline: 0;
	padding: .5rem;
	scroll-snap-align: start;
	border: 0;
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	transition: transform .45s var(--ease-soft), box-shadow .45s var(--ease-soft);
}
.home-design-6 .offer-card:nth-child(odd) { transform: rotate(-1.4deg); }
.home-design-6 .offer-card:nth-child(even) { transform: rotate(1.1deg); }
.home-design-6 .offer-card:hover {
	transform: rotate(0) translateY(-8px);
	box-shadow: var(--shadow);
}
.home-design-6 .offer-card img { border-radius: calc(var(--radius) - .5rem); }
@media (max-width: 620px) {
	.home-design-6 .offer-card:nth-child(odd),
	.home-design-6 .offer-card:nth-child(even) { transform: none; }
}

.footer-brand__logo { display: inline-block; line-height: 0; }
.footer-brand__logo img { display: block; width: min(190px, 100%); height: auto; }
.site-footer__credit { margin-left: auto; color: var(--c-green-700) !important; font-weight: var(--fw-semibold); }
@media (max-width: 640px) { .site-footer__credit { width: 100%; margin-left: 0; } }

/* La landing Turni ha un proprio sistema visuale e deve uscire dal container
   stretto del template pagina standard. */
.turni-page { width: 100%; }
.turni-page .fl-turni-site { width: 100%; }

/* Schede dei trattamenti: immagine reale, contenuto sintetico e CTA coerente. */
.beauty-treatment-intro { position: relative; overflow: hidden; background: #f6fbf6; }
.beauty-treatment-intro__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr); gap: clamp(2rem, 6vw, 6.5rem); align-items: center; }
.beauty-treatment-intro__copy { max-width: 630px; }
.beauty-treatment-intro__copy h2 { max-width: 19ch; margin: .85rem 0 1rem; color: var(--c-green-800); font-size: clamp(1.8rem, 3vw, 2.75rem); line-height: 1.08; letter-spacing: -.03em; }
.beauty-treatment-intro__copy p { max-width: 58ch; color: var(--c-muted); font-size: 1rem; line-height: 1.68; }
.beauty-treatment-intro__media { position: relative; margin: 0; min-height: 340px; overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: 0 24px 55px rgba(24,84,37,.13); }
.beauty-treatment-intro__media::after { display: none; }
.beauty-treatment-intro__media img { display: block; width: 100%; height: 100%; min-height: 340px; object-fit: cover; }
.beauty-treatment-explainer { background: #fff; }
.beauty-treatment-explainer__head { max-width: 650px; margin-bottom: 1.8rem; }
.beauty-treatment-explainer h2 { margin: .45rem 0 0; color: var(--c-green-800); font-size: clamp(1.8rem, 3vw, 2.55rem); line-height: 1.08; letter-spacing: -.03em; }
.beauty-treatment-explainer__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid rgba(31,149,57,.18); border-radius: var(--radius); background: rgba(31,149,57,.18); }
.beauty-treatment-explainer__grid article { min-height: 190px; padding: clamp(1.3rem, 2.5vw, 2rem); background: #fff; }
.beauty-treatment-explainer__grid h3 { margin: 0 0 .7rem; color: var(--c-green-800); font-size: 1.16rem; }
.beauty-treatment-explainer__grid p { max-width: 52ch; margin: 0; color: var(--c-muted); font-size: .97rem; line-height: 1.6; }
.beauty-treatment-points { padding-top: clamp(3rem, 5vw, 4.5rem); background: #fff; }
.beauty-treatment-points__head { max-width: 760px; margin-bottom: 1.8rem; }
.beauty-treatment-points h2 { margin: .45rem 0 0; color: var(--c-green-800); font-size: clamp(1.65rem, 2.5vw, 2.25rem); letter-spacing: -.025em; }
.beauty-treatment-points__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.beauty-treatment-point { position: relative; display: grid; grid-template-columns: 1.7rem minmax(0, 1fr); column-gap: .8rem; min-height: 205px; padding: clamp(1.25rem, 2vw, 1.6rem); overflow: hidden; border: 1px solid rgba(31,149,57,.2); border-radius: var(--radius); background: linear-gradient(145deg, #fff 0%, #f4faf4 100%); box-shadow: 0 14px 32px rgba(25,78,34,.07); }
.beauty-treatment-point::after { content: ''; position: absolute; right: -1.3rem; bottom: -1.9rem; width: 150px; height: 65px; background: url('../img/pennellate/pennellata-02.svg') center / contain no-repeat; opacity: .18; transform: rotate(-8deg); pointer-events: none; }
.beauty-treatment-point__number { grid-row: span 2; display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: 50%; background: var(--c-green); color: #fff; font-size: .72rem; font-weight: var(--fw-bold); letter-spacing: .04em; }
.beauty-treatment-point h3 { position: relative; margin: .05rem 0 .45rem; color: var(--c-green-800); font-size: 1.1rem; line-height: 1.2; z-index: 1; }
.beauty-treatment-point p { position: relative; max-width: 32ch; margin: 0; color: var(--c-muted); font-size: .94rem; line-height: 1.55; z-index: 1; }
.beauty-treatment-guidance { position: relative; overflow: hidden; background: #f1f8f1; }
.beauty-treatment-guidance::before { content: ''; position: absolute; top: -1.8rem; right: clamp(-5rem, -2vw, -1rem); width: 260px; height: 120px; background: url('../img/pennellate/pennellata-03.svg') center / contain no-repeat; opacity: .88; transform: rotate(9deg); pointer-events: none; }
.beauty-treatment-guidance__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(280px, .72fr); gap: clamp(2rem, 7vw, 8rem); align-items: center; }
.beauty-treatment-guidance h2 { max-width: 19ch; margin: .45rem 0 .9rem; color: var(--c-green-800); font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.08; letter-spacing: -.03em; }
.beauty-treatment-guidance p { max-width: 60ch; margin: 0; color: var(--c-muted); font-size: 1rem; line-height: 1.65; }
.beauty-treatment-guidance__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(31,149,57,.2); }
.beauty-treatment-guidance__list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(31,149,57,.2); color: var(--c-green-800); font-size: 1rem; font-weight: var(--fw-bold); }
.beauty-treatment-guidance__list span { color: var(--c-orange); font-size: 1.3rem; }
.beauty-treatment-faq { background: #fff; }
.beauty-treatment-faq__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(330px, 1fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.beauty-treatment-faq h2 { max-width: 14ch; margin: .45rem 0 .9rem; color: var(--c-green-800); font-size: clamp(1.8rem, 3vw, 2.55rem); line-height: 1.08; letter-spacing: -.03em; }
.beauty-treatment-faq > .container > div > p:last-child { max-width: 48ch; color: var(--c-muted); line-height: 1.65; }
.beauty-treatment-faq__items { border-top: 1px solid var(--c-line); }
.beauty-treatment-faq details { border-bottom: 1px solid var(--c-line); }
.beauty-treatment-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.05rem 0; color: var(--c-ink); cursor: pointer; font-weight: var(--fw-bold); list-style: none; }
.beauty-treatment-faq summary::-webkit-details-marker { display: none; }
.beauty-treatment-faq summary::after { content: '+'; color: var(--c-green); font-size: 1.4rem; font-weight: var(--fw-regular); }
.beauty-treatment-faq details[open] summary::after { content: '−'; }
.beauty-treatment-faq details p { max-width: 58ch; margin: 0 0 1rem; color: var(--c-muted); line-height: 1.6; }
@media (max-width: 820px) {
	.beauty-treatment-intro__grid { grid-template-columns: 1fr; }
	.beauty-treatment-intro__media { max-width: 620px; }
	.beauty-treatment-points__grid { grid-template-columns: 1fr; }
	.beauty-treatment-guidance__grid { grid-template-columns: 1fr; }
	.beauty-treatment-explainer__grid { grid-template-columns: 1fr; }
	.beauty-treatment-faq__grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
	.beauty-treatment-intro__media, .beauty-treatment-intro__media img { min-height: 250px; }
}

/* Pagina 404: recupero rapido, coerente con il sistema delle pennellate. */
.not-found-page { overflow: hidden; background: var(--c-white); }
.not-found-hero {
	position: relative;
	isolation: isolate;
	padding-block: clamp(4rem, 9vw, 8rem);
	background: linear-gradient(135deg, #f3faf2 0%, #fff 68%);
}
.not-found-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .65fr); gap: clamp(2rem, 7vw, 8rem); align-items: center; }
.not-found-hero__content { position: relative; z-index: 1; max-width: 680px; }
.not-found-hero__code { margin: 0 0 -.45rem; color: rgba(31,149,57,.12); font-size: clamp(6rem, 17vw, 13rem); font-weight: var(--fw-bold); letter-spacing: -.1em; line-height: .8; user-select: none; }
.not-found-hero h1 { max-width: 12ch; margin: .45rem 0 1.15rem; color: var(--c-green-800); font-size: clamp(2.35rem, 5vw, 4.5rem); line-height: 1.01; letter-spacing: -.04em; }
.not-found-hero .lead { max-width: 52ch; margin: 0; }
.not-found-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.15rem 1.5rem; margin-top: var(--sp-6); }
.not-found-hero__actions .text-link { color: var(--c-green-700); font-weight: var(--fw-bold); }
.not-found-hero__actions .text-link:hover { color: var(--c-orange-700); }
.not-found-search { position: relative; z-index: 1; padding: clamp(1.5rem, 3vw, 2.25rem); border: 1px solid rgba(31,149,57,.2); border-radius: var(--radius); background: #fff; box-shadow: 0 22px 54px rgba(18,85,36,.11); }
.not-found-search h2 { margin: 0; color: var(--c-green-800); font-size: clamp(1.4rem, 2.2vw, 1.85rem); }
.not-found-search p { margin: .65rem 0 1.35rem; color: var(--c-text-soft); }
.not-found-search .search-form { display: flex; gap: .55rem; }
.not-found-search .search-field { min-width: 0; flex: 1; padding: .78rem .9rem; border: 1px solid rgba(31,149,57,.25); border-radius: .75rem; font: inherit; }
.not-found-search .search-submit { padding: .78rem 1rem; border: 0; border-radius: .75rem; background: var(--c-green); color: #fff; font: inherit; font-weight: var(--fw-bold); cursor: pointer; }
.not-found-search .search-submit:hover { background: var(--c-green-700); }
.not-found-search__contact { display: inline-block; margin-top: 1.35rem; color: var(--c-blue-700); font-weight: var(--fw-bold); }
.not-found-search__contact:hover { color: var(--c-green-700); }
.not-found-hero__brush { position: absolute; z-index: -1; display: block; width: min(36vw, 520px); height: 170px; background-position: center; background-repeat: no-repeat; background-size: contain; pointer-events: none; }
.not-found-hero__brush--orange { top: 4%; right: -8rem; background-image: url('../img/pennellate/pennellata-01.svg'); transform: rotate(9deg); opacity: .95; }
.not-found-hero__brush--blue { bottom: 5%; left: -10rem; background-image: url('../img/pennellate/pennellata-02.svg'); transform: rotate(-13deg); opacity: .85; }
.not-found-routes { padding-top: clamp(3rem, 6vw, 5rem); }
.not-found-routes h2 { margin: 0 0 1.4rem; color: var(--c-green-800); font-size: clamp(1.75rem, 3.2vw, 2.7rem); letter-spacing: -.03em; }
.not-found-routes__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(31,149,57,.22); }
.not-found-routes__list a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 96px; padding: 1.2rem 1.5rem; border-right: 1px solid rgba(31,149,57,.22); border-bottom: 1px solid rgba(31,149,57,.22); color: var(--c-green-800); font-size: 1.05rem; font-weight: var(--fw-bold); transition: color .2s ease, background .2s ease; }
.not-found-routes__list a:first-child { border-left: 1px solid rgba(31,149,57,.22); }
.not-found-routes__list a:hover { background: #eff8ee; color: var(--c-orange-700); }
.not-found-routes__list a:active { transform: translateY(1px); }
@media (max-width: 820px) {
	.not-found-hero__grid { grid-template-columns: 1fr; gap: 2.25rem; }
	.not-found-hero__content { max-width: 620px; }
	.not-found-search { max-width: 620px; }
}
@media (max-width: 620px) {
	.not-found-hero { padding-block: 3.5rem 4.5rem; }
	.not-found-hero__code { font-size: clamp(5.5rem, 29vw, 8rem); }
	.not-found-hero h1 { font-size: clamp(2.1rem, 10vw, 3rem); }
	.not-found-hero__brush--orange { top: 0; right: -8rem; width: 310px; }
	.not-found-hero__brush--blue { display: none; }
	.not-found-search .search-form { display: grid; grid-template-columns: 1fr; }
	.not-found-routes__list { grid-template-columns: 1fr; }
	.not-found-routes__list a, .not-found-routes__list a:first-child { min-height: 70px; border-left: 1px solid rgba(31,149,57,.22); }
}
