/* FarmaLEM – template "rivista della salute" (Whiteready, 2026) */
:root {
	--fl-navy: #13325e;
	--fl-accent: #2e71a6;
	--fl-green: #3f6e1c;
	--fl-ground: #f3f6f9;
	--fl-white: #ffffff;
	--fl-text: #1b2733;
	--fl-muted: #4a5b6d;
	--fl-soft: #6a7b8c;
	--fl-line: #dde5ee;
	--fl-serif: "Newsreader", Georgia, "Times New Roman", serif;
	--fl-sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--fl-wrap: 1240px;
	--fl-radius: 6px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fl-ground); color: var(--fl-text); font-family: var(--fl-sans); font-size: 17px; line-height: 1.6; }
img { max-width: 100%; height: auto; }
iframe { max-width: 100%; }
a { color: var(--fl-accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--fl-navy); }
h1, h2, h3, h4 { font-family: var(--fl-serif); font-weight: 600; color: var(--fl-navy); line-height: 1.15; margin: 0 0 .5em; }
h1 { font-size: clamp(32px, 4.2vw, 48px); }
h2 { font-size: clamp(26px, 3vw, 36px); }
h3 { font-size: 24px; }
h4 { font-size: 20px; }
:focus-visible { outline: 3px solid var(--fl-accent); outline-offset: 2px; }

.fl-wrap { max-width: var(--fl-wrap); margin: 0 auto; padding: 0 32px; }
@media (max-width: 640px) { .fl-wrap { padding: 0 16px; } }
.fl-skip { position: absolute; left: -9999px; top: 0; background: var(--fl-navy); color: #fff; padding: 12px 16px; z-index: 100; }
.fl-skip:focus { left: 8px; top: 8px; }
.fl-kicker, .fl-label { display: block; font-family: var(--fl-sans); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fl-accent); margin: 0 0 10px; }
.fl-label { color: var(--fl-soft); }
.fl-more { display: inline-block; padding: 18px 0; font-weight: 600; text-decoration: none; }
.fl-btn, .btn-primary, button.btn, input[type=submit].btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border: 0; border-radius: var(--fl-radius); background: var(--fl-accent); color: #fff; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.fl-btn:hover, .btn-primary:hover, button.btn:hover { background: var(--fl-navy); color: #fff; }
.btn-secondary { background: var(--fl-white); color: var(--fl-navy); border: 1px solid #cfd9e4; }
input[type=text], input[type=email], input[type=search], input[type=password], input[type=tel], textarea, select, .form-control {
	width: 100%; min-height: 48px; padding: 10px 16px; border: 1px solid #cfd9e4; border-radius: var(--fl-radius); background: #f8fafc; font: inherit; color: var(--fl-text);
}
.visually-hidden, .sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* barra superiore */
.fl-topbar { background: var(--fl-navy); color: #d7e2ef; font-size: 14px; }
.fl-topbar__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; padding-top: 10px; padding-bottom: 10px; }
.fl-topbar a { color: #fff; text-decoration: none; }
.fl-topbar__right { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.fl-topbar__right ul { display: flex; gap: 16px; margin: 0; padding: 0; list-style: none; }

/* header */
.fl-header { background: var(--fl-white); border-bottom: 1px solid var(--fl-line); position: relative; z-index: 20; }
.fl-header__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0 18px; }
.fl-logo img { display: block; height: 56px; width: auto; }
.fl-search { flex: 0 1 380px; min-width: 0; }
.fl-search form, .fl-search .mod-finder__search { display: flex; gap: 8px; }
.fl-search label { position: absolute; left: -9999px; }
.fl-search input { height: 46px; }
.fl-search button { flex: none; min-height: 46px; padding: 0 16px; border: 0; border-radius: var(--fl-radius); background: var(--fl-navy); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.fl-navtoggle { display: none; align-items: center; gap: 10px; min-height: 44px; padding: 0 14px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); background: #fff; color: var(--fl-navy); font: inherit; font-weight: 600; cursor: pointer; }
.fl-navtoggle__bars, .fl-navtoggle__bars::before, .fl-navtoggle__bars::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; }
.fl-navtoggle__bars::before, .fl-navtoggle__bars::after { content: ""; position: absolute; left: 0; }
.fl-navtoggle__bars::before { top: -6px; } .fl-navtoggle__bars::after { top: 6px; }

/* menu principale (mod_menu) */
.fl-nav ul { list-style: none; margin: 0; padding: 0; }
.fl-nav > ul, .fl-nav .mod-menu { display: flex; flex-wrap: wrap; gap: 0 28px; }
.fl-nav li { position: relative; }
.fl-nav > ul > li > a, .fl-nav > ul > li > span, .fl-nav .mod-menu > li > a, .fl-nav .mod-menu > li > span, .fl-nav .mod-menu > li > button {
	display: block; padding: 14px 0; border: 0; border-bottom: 3px solid transparent; background: none;
	font: inherit; font-size: 15px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--fl-muted); text-decoration: none; cursor: pointer;
}
.fl-nav .mod-menu > li.active > a, .fl-nav .mod-menu > li.active > span, .fl-nav .mod-menu > li > a:hover, .fl-nav .mod-menu > li > span:hover { color: var(--fl-navy); border-bottom-color: var(--fl-accent); }
.fl-nav .mod-menu__sub, .fl-nav li ul { display: none; position: absolute; left: -16px; top: 100%; min-width: 260px; padding: 8px; background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); box-shadow: 0 16px 32px rgba(19,50,94,.12); }
.fl-nav li:hover > ul, .fl-nav li:focus-within > ul, .fl-nav li.is-open > ul { display: block; }
.fl-nav li ul a { display: block; padding: 10px 12px; border-radius: 4px; color: var(--fl-text); text-decoration: none; font-size: 16px; }
.fl-nav li ul a:hover, .fl-nav li ul li.active > a { background: var(--fl-ground); color: var(--fl-navy); }

@media (max-width: 900px) {
	.fl-navtoggle { display: inline-flex; }
	.fl-search { order: 3; flex: 1 1 100%; }
	.fl-nav { display: none; padding-bottom: 12px; }
	.fl-nav.is-open { display: block; }
	.fl-nav > ul, .fl-nav .mod-menu { flex-direction: column; gap: 0; }
	.fl-nav .mod-menu > li > a, .fl-nav .mod-menu > li > span { padding: 14px 0; border-bottom: 1px solid var(--fl-line); }
	.fl-nav .mod-menu__sub, .fl-nav li ul { position: static; display: block; box-shadow: none; border: 0; padding: 0 0 8px 12px; min-width: 0; }
}

/* sezioni home */
.fl-section { padding-top: 48px; padding-bottom: 48px; }
.fl-section--tight { padding-top: 56px; padding-bottom: 56px; }
.fl-band--white { background: var(--fl-white); }
.fl-band--white .fl-section { padding-top: 72px; padding-bottom: 72px; }
.fl-band--navy { background: var(--fl-navy); color: #fff; }
.fl-band--navy h2, .fl-band--navy h3 { color: #fff; }
.fl-band--navy p { color: #c3d2e4; }
.fl-band--navy a { color: #fff; }

/* primo piano */
.fl-primo { display: flex; flex-wrap: wrap; gap: 40px; }
.fl-primo__main { flex: 999 1 600px; min-width: 0; display: flex; flex-direction: column; background: #fff; border-radius: var(--fl-radius); overflow: hidden; color: var(--fl-text); text-decoration: none; }
.fl-primo__main img { width: 100%; height: 400px; object-fit: cover; display: block; }
.fl-primo__body { padding: 28px 36px 36px; }
.fl-primo__title { font-size: clamp(30px, 3.6vw, 48px); line-height: 1.08; margin: 0 0 14px; }
.fl-primo__main:hover .fl-primo__title { color: var(--fl-accent); }
.fl-primo__text { margin: 0; font-size: 18px; color: var(--fl-muted); }
.fl-primo__list { flex: 1 1 320px; min-width: 0; }
.fl-primo__item { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--fl-line); text-decoration: none; }
.fl-primo__item img { width: 96px; height: 72px; object-fit: cover; border-radius: 4px; flex: none; }
.fl-primo__item strong { display: block; font-family: var(--fl-serif); font-size: 21px; line-height: 1.2; font-weight: 600; color: var(--fl-navy); }
.fl-primo__item:hover strong { color: var(--fl-accent); }
.fl-primo__item small { display: block; margin-top: 6px; font-size: 14px; color: var(--fl-soft); }
@media (max-width: 640px) { .fl-primo__main img { height: 240px; } .fl-primo__body { padding: 20px; } }

/* rubriche */
.fl-heading-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 2px solid var(--fl-navy); padding-bottom: 16px; margin-bottom: 12px; }
.fl-heading-row h2 { margin: 0; font-size: 40px; }
.fl-heading-row span { color: var(--fl-soft); }
.fl-rubriche { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); column-gap: 48px; margin: 0; padding: 0; list-style: none; counter-reset: rub; }
.fl-rubriche li { counter-increment: rub; }
.fl-rubriche a { display: flex; gap: 20px; align-items: baseline; padding: 22px 0; border-bottom: 1px solid var(--fl-line); text-decoration: none; }
.fl-rubriche a::before { content: counter(rub, decimal-leading-zero); font-family: var(--fl-serif); font-size: 22px; color: var(--fl-accent); }
.fl-rubriche strong { display: block; font-size: 20px; color: var(--fl-navy); }
.fl-rubriche a:hover strong { color: var(--fl-accent); }
.fl-rubriche small { display: block; font-size: 15px; color: var(--fl-soft); }

/* chi siamo */
.fl-about { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.fl-about img { flex: 1 1 460px; min-width: 0; height: 360px; object-fit: cover; object-position: 100% 50%; border-radius: var(--fl-radius); }
.fl-about__text { flex: 1 1 420px; min-width: 0; }
.fl-about blockquote { margin: 0 0 18px; font-family: var(--fl-serif); font-size: clamp(24px, 2.6vw, 30px); line-height: 1.3; color: var(--fl-navy); }
.fl-about p { color: var(--fl-muted); }

/* info utili */
.fl-info { display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; }
.fl-info__intro { flex: 1 1 300px; }
.fl-info__intro h2 { font-size: 34px; margin-bottom: 10px; }
.fl-info ul { flex: 2 1 560px; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 4px 32px; margin: 0; padding: 0; list-style: none; }
.fl-info ul a { display: block; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.18); text-decoration: none; font-size: 17px; }
.fl-info ul a:hover { color: #a9cdee; }

/* newsletter */
.fl-newsletter__inner { display: flex; flex-wrap: wrap; gap: 24px 32px; align-items: center; justify-content: space-between; }
.fl-newsletter__inner > * { flex: 1 1 380px; }
.fl-newsletter h2 { font-size: 30px; margin: 0 0 6px; }
.fl-newsletter p { margin: 0; color: var(--fl-soft); }

/* footer */
.fl-footer { border-top: 1px solid var(--fl-line); color: var(--fl-soft); font-size: 14px; }
.fl-footer__inner { display: flex; flex-wrap: wrap; gap: 16px 24px; justify-content: space-between; align-items: center; padding-top: 32px; padding-bottom: 32px; }
.fl-footer ul { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 0; list-style: none; }
.fl-footer a { color: var(--fl-muted); text-decoration: none; }
.fl-footer a:hover { color: var(--fl-navy); text-decoration: underline; }
.fl-footer__extra { padding-bottom: 32px; }

/* pagine interne */
.fl-page { padding-top: 32px; padding-bottom: 72px; }
.fl-page__grid { display: flex; flex-wrap: wrap; gap: 40px; }
.fl-content { flex: 999 1 640px; min-width: 0; background: #fff; border-radius: var(--fl-radius); padding: clamp(20px, 4vw, 48px); }
.fl-sidebar { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.fl-card { background: #fff; border-radius: var(--fl-radius); padding: 24px; }
.fl-card__title { font-size: 22px; }
.mod-breadcrumbs, .breadcrumb { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; padding: 0; list-style: none; font-size: 14px; color: var(--fl-soft); }
.mod-breadcrumbs li + li::before, .breadcrumb-item + .breadcrumb-item::before { content: "/"; margin-right: 6px; color: #b5c2cf; }
.mod-breadcrumbs__here, .mod-breadcrumbs__divider { display: none; }
.mod-breadcrumbs__here + li::before { content: none; }
.mod-breadcrumbs a { color: var(--fl-muted); text-decoration: none; }

.com-content-article .page-header h1, .com-content-article .page-header h2, .item-page .page-header h2 { font-size: clamp(32px, 4.2vw, 48px); }
.com-content-article__body, .item-page [itemprop="articleBody"] { font-size: 18px; }
.com-content-article__body p, [itemprop="articleBody"] p { margin: 0 0 1em; }
[itemprop="articleBody"] [align="justify"], [itemprop="articleBody"] [style*="justify"] { text-align: left !important; }
[itemprop="articleBody"] table { width: 100% !important; border-collapse: collapse; margin: 1em 0; display: block; overflow-x: auto; }
[itemprop="articleBody"] td, [itemprop="articleBody"] th { padding: 8px 10px; border-bottom: 1px solid var(--fl-line); vertical-align: top; }
[itemprop="articleBody"] iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; margin: 1em auto; border: 0; border-radius: var(--fl-radius); }
[itemprop="articleBody"] ul, [itemprop="articleBody"] ol { padding-left: 1.3em; }
.article-info, .com-content-article__info { display: none; }
.com-content-article .tags, .tags { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tags a { display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--fl-ground); text-decoration: none; font-size: 14px; }

/* colonne e gallerie dai vecchi contenuti */
.fl-cols { display: flex; flex-wrap: wrap; gap: 16px; margin: 16px 0; }
.fl-col { flex: 1 1 220px; min-width: 0; }
.fl-col img { display: block; margin: 0 auto; }
.fl-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin: 20px 0; }
.fl-gallery figure { margin: 0; }
.fl-gallery img { display: block; width: 100%; height: 200px; object-fit: cover; border-radius: var(--fl-radius); }

/* blog e liste categoria */
.com-content-category-blog .blog-items, .blog .items-row, .com-content-category-blog__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.com-content-category-blog .blog-item, .com-content-category-blog__item { padding-bottom: 20px; border-bottom: 1px solid var(--fl-line); }
.com-content-category-blog .blog-item h2, .com-content-category-blog__item h2 { font-size: 24px; }
.com-content-category-blog .blog-item h2 a, .com-content-category-blog__item h2 a { color: var(--fl-navy); text-decoration: none; }
.com-content-category-blog .blog-item img { width: 100%; height: 180px; object-fit: cover; border-radius: var(--fl-radius); }
.com-content-category-blog .blog-item .item-content > p:has(img) ~ p { display: none; }
.com-content-category table.category { width: 100%; border-collapse: collapse; }
.com-content-category table.category th, .com-content-category table.category td { padding: 12px 8px; border-bottom: 1px solid var(--fl-line); text-align: left; }
.com-content-category table.category a { color: var(--fl-navy); font-weight: 500; text-decoration: none; }
.pagination, .com-content-category-blog__pagination ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 24px 0 0; }
.pagination .page-link { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid var(--fl-line); border-radius: 4px; text-decoration: none; color: var(--fl-navy); background: #fff; }
.pagination .active .page-link { background: var(--fl-navy); color: #fff; border-color: var(--fl-navy); }
.readmore a, .com-content-category-blog .readmore .btn { font-weight: 600; }

/* messaggi */
joomla-alert, .alert { display: block; padding: 14px 18px; margin: 0 0 20px; border-radius: var(--fl-radius); background: #e8f1fa; color: var(--fl-navy); }

/* errore */
.fl-error { text-align: left; }
.fl-error h1 { margin-bottom: 12px; }
.fl-error p { color: var(--fl-muted); }

@media print {
	.fl-topbar, .fl-header .fl-search, .fl-nav, .fl-navtoggle, .fl-newsletter, .fl-sidebar { display: none !important; }
	body { background: #fff; }
	.fl-content { padding: 0; }
}

/* card del blog */
.com-content-category-blog__items, .blog-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 28px; }
.com-content-category-blog__item, .blog-item { border: 0 !important; padding: 0 !important; }
.fl-blogcard { display: flex; flex-direction: column; gap: 12px; height: 100%; text-decoration: none; color: var(--fl-text); }
.fl-blogcard img { width: 100%; height: 180px; object-fit: cover; border-radius: var(--fl-radius); background: var(--fl-ground); }
.fl-blogcard small { display: block; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fl-accent); }
.fl-blogcard strong { display: block; font-family: var(--fl-serif); font-size: 22px; line-height: 1.2; font-weight: 600; color: var(--fl-navy); margin: 4px 0 8px; }
.fl-blogcard:hover strong { color: var(--fl-accent); }
.fl-blogcard__body > span { display: block; font-size: 15px; color: var(--fl-muted); }

/* griglia loghi portfolio */
.fl-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; margin: 24px 0; }
.fl-logos > a, .fl-logos > span { display: flex; align-items: center; justify-content: center; padding: 8px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); background: #fff; transition: box-shadow .15s, border-color .15s; }
.fl-logos > a:hover { border-color: var(--fl-accent); box-shadow: 0 8px 24px rgba(19,50,94,.10); }
.fl-logos img { display: block; max-width: 100%; height: auto; }

/* pagina Chi siamo e blocchi riutilizzabili negli articoli */
.fl-lead { font-family: var(--fl-serif); font-size: clamp(22px, 2.4vw, 28px); line-height: 1.35; color: var(--fl-navy); margin: 0 0 32px; max-width: 760px; }
.fl-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin: 0 0 48px; }
.fl-box { background: var(--fl-ground); border-radius: var(--fl-radius); padding: 28px; }
.fl-box h3 { font-size: 26px; margin: 0 0 10px; }
.fl-box p { margin: 0 0 16px; color: var(--fl-muted); font-size: 17px; }
.fl-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0 !important; list-style: none; }
.fl-pills a { display: inline-block; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--fl-line); color: var(--fl-navy); font-size: 15px; font-weight: 500; text-decoration: none; }
.fl-pills a:hover { border-color: var(--fl-accent); color: var(--fl-accent); }
.fl-section-title { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 2px solid var(--fl-navy); padding-bottom: 12px; margin: 0 0 20px; }
.fl-section-title h2 { margin: 0; font-size: 32px; }
.fl-section-title span { color: var(--fl-soft); font-size: 15px; }
.fl-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; margin: 0 0 48px; }
.fl-person { display: flex; flex-direction: column; gap: 6px; padding: 22px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); text-decoration: none; color: var(--fl-text); }
a.fl-person:hover { border-color: var(--fl-accent); box-shadow: 0 8px 24px rgba(19,50,94,.08); }
.fl-person small { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fl-accent); }
.fl-person strong { font-family: var(--fl-serif); font-size: 22px; font-weight: 600; color: var(--fl-navy); line-height: 1.2; }
.fl-person span { font-size: 15px; color: var(--fl-muted); }
.fl-person em { margin-top: auto; padding-top: 8px; font-style: normal; font-weight: 600; font-size: 15px; color: var(--fl-accent); }
.fl-brandbox { display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: center; justify-content: space-between; background: var(--fl-navy); color: #fff; border-radius: var(--fl-radius); padding: 32px; }
.fl-brandbox > div { flex: 1 1 360px; }
.fl-brandbox h2 { color: #fff; font-size: 28px; margin: 0 0 8px; }
.fl-brandbox p { color: #c3d2e4; margin: 0; }
.fl-brandbox a { color: #fff; }
.fl-brandbox .fl-btn { background: #fff; color: var(--fl-navy); }
.fl-brandbox .fl-btn:hover { background: #d7e2ef; color: var(--fl-navy); }

/* pagina Servizi per le farmacie */
.fl-services { margin: 8px 0 48px; }
.fl-service { display: flex; flex-wrap: wrap; gap: 28px 48px; align-items: center; padding: 40px 0; border-top: 1px solid var(--fl-line); scroll-margin-top: 24px; }
.fl-service:nth-child(even) { flex-direction: row-reverse; }
.fl-service > img { flex: 1 1 340px; min-width: 0; width: 100%; height: 320px; object-fit: cover; border-radius: var(--fl-radius); background: var(--fl-ground); }
.fl-service > div { flex: 1 1 340px; min-width: 0; }
.fl-service h2 { font-size: clamp(26px, 2.8vw, 34px); margin: 0 0 12px; }
.fl-service p { color: var(--fl-muted); }
.fl-check { list-style: none; padding: 0 !important; margin: 16px 0 0; display: grid; gap: 8px; }
.fl-check li { position: relative; padding-left: 28px; font-size: 16px; }
.fl-check li::before { content: ""; position: absolute; left: 0; top: .45em; width: 16px; height: 9px; border-left: 2.5px solid var(--fl-green); border-bottom: 2.5px solid var(--fl-green); transform: rotate(-45deg); }
.fl-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; margin: 0 0 48px; padding: 0 !important; list-style: none; counter-reset: step; }
.fl-steps li { counter-increment: step; background: var(--fl-ground); border-radius: var(--fl-radius); padding: 24px; }
.fl-steps li::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--fl-serif); font-size: 28px; color: var(--fl-accent); margin-bottom: 8px; }
.fl-steps strong { display: block; font-size: 18px; color: var(--fl-navy); margin-bottom: 4px; }
.fl-steps span { font-size: 15px; color: var(--fl-muted); }

/* portfolio */
.fl-work { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 24px; margin: 0 0 48px; }
.fl-workcard { display: flex; flex-direction: column; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); overflow: hidden; background: #fff; text-decoration: none; color: var(--fl-text); transition: box-shadow .15s, border-color .15s; }
.fl-workcard:hover { border-color: var(--fl-accent); box-shadow: 0 10px 28px rgba(19,50,94,.10); }
.fl-workcard img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; margin: 0 !important; }
.fl-workcard__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px 20px; flex: 1; }
.fl-workcard small { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--fl-soft); }
.fl-workcard strong { font-family: var(--fl-serif); font-size: 22px; font-weight: 600; line-height: 1.2; color: var(--fl-navy); }
.fl-workcard:hover strong { color: var(--fl-accent); }
.fl-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fl-tags span { font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--fl-ground); color: var(--fl-muted); }
.fl-workcard em { margin-top: auto; padding-top: 12px; font-style: normal; font-weight: 600; font-size: 15px; color: var(--fl-accent); }

/* portfolio: loghi ritagliati dai vecchi pulsanti 250x188 (senza fascia blu e città) */
.fl-workcard__logo { display: block; padding: 22px 24px; border-bottom: 1px solid var(--fl-line); background: #fff; }
.fl-workcard__crop { display: block; overflow: hidden; aspect-ratio: 236 / 114; }
.fl-workcard__crop img { display: block; width: 105.93% !important; max-width: none !important; height: auto !important; aspect-ratio: auto !important; margin: -18.4% 0 0 -2.97% !important; }

/* sezioni Salute: curatore, elenco articoli, banner, schede */
.fl-banner { display: block; width: 100%; height: auto; max-height: 360px; object-fit: cover; border-radius: var(--fl-radius); margin: 0 0 28px; }
.fl-curator { display: flex; flex-wrap: wrap; gap: 20px 28px; align-items: center; background: var(--fl-ground); border-radius: var(--fl-radius); padding: 24px 28px; margin: 0 0 40px; }
.fl-curator__img { width: 112px; height: 112px; object-fit: cover; border-radius: 50%; background: #fff; flex: none; margin: 0 !important; }
.fl-curator__img.is-logo { border-radius: var(--fl-radius); object-fit: contain; padding: 8px; width: 160px; }
.fl-curator__text { flex: 1 1 280px; min-width: 0; }
.fl-curator__name { display: block; font-family: var(--fl-serif); font-size: 26px; font-weight: 600; color: var(--fl-navy); line-height: 1.2; }
.fl-curator__role { display: block; color: var(--fl-muted); font-size: 16px; margin: 2px 0 12px; }
.fl-articles { list-style: none; padding: 0 !important; margin: 0 0 40px; columns: 2 320px; column-gap: 40px; }
.fl-articles li { break-inside: avoid; border-bottom: 1px solid var(--fl-line); }
.fl-articles a { display: block; padding: 11px 0; color: var(--fl-navy); text-decoration: none; font-weight: 500; font-size: 17px; line-height: 1.35; }
.fl-articles a:hover { color: var(--fl-accent); }
.fl-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 0 0 40px; }
.fl-card-link { display: flex; flex-direction: column; gap: 6px; background: var(--fl-ground); border-radius: var(--fl-radius); padding: 24px; text-decoration: none; color: var(--fl-text); border: 1px solid transparent; }
.fl-card-link:hover { border-color: var(--fl-accent); background: #fff; }
.fl-card-link .fl-card-title { font-family: var(--fl-serif); font-size: 24px; font-weight: 600; color: var(--fl-navy); }
.fl-card-link .fl-card-text { font-size: 16px; color: var(--fl-muted); }
.fl-card-link .fl-card-more { margin-top: auto; padding-top: 8px; font-weight: 600; font-size: 15px; color: var(--fl-accent); }
.fl-note { font-size: 15px; color: var(--fl-soft); border-left: 3px solid var(--fl-line); padding-left: 14px; }

.fl-card-link.has-img { padding: 0; overflow: hidden; background: #fff; border-color: var(--fl-line); }
.fl-card-link.has-img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin: 0 !important; }
.fl-card-link.has-img .fl-card-title { padding: 18px 22px 0; }
.fl-card-link.has-img .fl-card-text { padding: 0 22px; }
.fl-card-link.has-img .fl-card-more { padding: 8px 22px 22px; }
.fl-media { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); padding: 16px; margin: 0 0 40px; text-decoration: none; color: var(--fl-text); }
.fl-media:hover { border-color: var(--fl-accent); }
.fl-media img { width: 180px; height: auto; border-radius: 4px; margin: 0 !important; }
.fl-media .fl-media__text { flex: 1 1 260px; font-weight: 600; color: var(--fl-navy); font-size: 18px; }

/* box e schede persone con immagine */
.fl-box.has-img { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.fl-box.has-img > img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 7; object-fit: cover; margin: 0 !important; }
.fl-box__body { padding: 24px 28px 28px; }
.fl-person.has-img { padding: 0; overflow: hidden; }
.fl-person.has-img > img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin: 0 !important; }
.fl-person__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 22px 22px; flex: 1; }
