/* =========================================================
   Tema Elicriso — Erboristeria Medica L'Elicriso (Termoli)
   Tema figlio di Hummingbird (PrestaShop 9.2)
   ========================================================= */

/* ---------- Caratteri (ospitati sul sito, niente Google Fonts) ---------- */
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/playfair-display-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/playfair-display-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/playfair-display-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 500; font-display: swap; src: url("../fonts/playfair-display-latin-500-italic.woff2") format("woff2"); }

/* ---------- Colori ---------- */
:root {
  --el-green: #0B5733;
  --el-green-dark: #123F2A;
  --el-green-mid: #2F5A45;
  --el-cream: #F7F2E8;
  --el-cream-2: #EFE6D4;
  --el-sand: #E8DDC8;
  --el-line: #E2D6BE;
  --el-gold: #B08D4F;
  --el-gold-light: #E3CB95;
  --el-ink: #1E2A23;
  --el-text: #3D4842;
  --el-muted: #55615A;
  --el-brown: #6B5A35;
  --el-white: #FFFFFF;
  --el-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --el-radius: 16px;
  --el-radius-lg: 20px;

  /* Bootstrap / Hummingbird */
  --bs-primary: #0B5733;
  --bs-primary-rgb: 11, 87, 51;
  --bs-primary-text-emphasis: #0B5733;
  --bs-primary-bg-subtle: #DCE8E0;
  --bs-primary-border-subtle: #A9C4B3;
  --bs-body-color: #1E2A23;
  --bs-body-color-rgb: 30, 42, 35;
  --bs-body-bg: #F7F2E8;
  --bs-body-bg-rgb: 247, 242, 232;
  --bs-link-color: #0B5733;
  --bs-link-color-rgb: 11, 87, 51;
  --bs-link-hover-color: #123F2A;
  --bs-link-hover-color-rgb: 18, 63, 42;
  --bs-border-color: #E2D6BE;
  --bs-secondary-bg: #EFE6D4;
  --bs-tertiary-bg: #F3ECDE;
  --bs-heading-color: #0B5733;
}

body {
  background: var(--el-cream);
  color: var(--el-ink);
}

h1, h2, h3, .h1, .h2, .h3, .page-title, .section-title, .product__name {
  font-family: var(--el-serif);
  font-weight: 400;
  color: var(--el-green);
  letter-spacing: -0.005em;
}

a { color: var(--el-green); }
a:hover { color: var(--el-green-dark); }

/* ---------- Bottoni Bootstrap ---------- */
.btn-primary {
  --bs-btn-bg: var(--el-green);
  --bs-btn-border-color: var(--el-green);
  --bs-btn-hover-bg: var(--el-green-dark);
  --bs-btn-hover-border-color: var(--el-green-dark);
  --bs-btn-active-bg: var(--el-green-dark);
  --bs-btn-active-border-color: var(--el-green-dark);
  --bs-btn-disabled-bg: var(--el-green);
  --bs-btn-disabled-border-color: var(--el-green);
  --bs-btn-focus-shadow-rgb: 11, 87, 51;
}
.btn-outline-primary {
  --bs-btn-color: var(--el-green);
  --bs-btn-border-color: var(--el-green);
  --bs-btn-hover-bg: var(--el-green);
  --bs-btn-hover-border-color: var(--el-green);
  --bs-btn-active-bg: var(--el-green-dark);
  --bs-btn-active-border-color: var(--el-green-dark);
  --bs-btn-focus-shadow-rgb: 11, 87, 51;
}
.btn { border-radius: 999px; }
.form-control, .form-select { border-color: #D8CBB0; }
.form-control:focus, .form-select:focus { border-color: var(--el-green); box-shadow: 0 0 0 .2rem rgba(11, 87, 51, .15); }
.form-check-input:checked { background-color: var(--el-green); border-color: var(--el-green); }

/* ---------- Bottoni del tema ---------- */
.el-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 50px; padding: 0 26px; border-radius: 999px;
  font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none;
  border: 1px solid transparent; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.el-btn--sm { min-height: 44px; padding: 0 16px; font-size: 14px; }
.el-btn--lg { min-height: 56px; padding: 0 32px; font-size: 17px; font-weight: 600; }
.el-btn--primary { background: var(--el-green); color: #fff; border-color: var(--el-green); }
.el-btn--primary:hover { background: var(--el-green-dark); color: #fff; }
.el-btn--outline { background: transparent; color: var(--el-green); border-color: var(--el-green); }
.el-btn--outline:hover { background: var(--el-green); color: #fff; }
.el-btn--gold { background: var(--el-gold-light); color: var(--el-green-dark); font-weight: 600; }
.el-btn--gold:hover { background: #EBD6A8; color: var(--el-green-dark); }
.el-btn--ghost-light { background: transparent; color: var(--el-cream); border-color: var(--el-gold-light); }
.el-btn--ghost-light:hover { background: rgba(227, 203, 149, .15); color: #fff; }

/* ---------- Barra superiore ---------- */
.el-topbar { background: var(--el-green-dark); color: var(--el-cream); font-size: 13px; letter-spacing: .04em; }
.el-topbar__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 24px; padding-top: 8px; padding-bottom: 8px; }
.el-topbar a { color: var(--el-gold-light); text-decoration: none; }
.el-topbar a:hover { color: #fff; }
.el-topbar__contacts { display: flex; gap: 10px; }
@media (max-width: 575.98px) { .el-topbar__inner { justify-content: center; } .el-topbar__claim { display: none; } }

/* ---------- Intestazione ---------- */
.header { background: var(--el-cream); }
.header-bottom.el-header { background: var(--el-cream); border-bottom: 1px solid var(--el-line); }
.el-header__row { flex-wrap: wrap; padding-top: 14px; padding-bottom: 14px; row-gap: 10px; }
.el-logo { order: 1; }
.el-logo__h1 { font-size: inherit; margin: 0; line-height: 1; }
.el-logo__link { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--el-green); }
.el-logo__link:hover { color: var(--el-green); }
.el-logo__img { width: 60px; height: 47px; object-fit: contain; }
.el-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.el-logo__kicker { font-family: var(--bs-body-font-family); font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--el-brown); }
.el-logo__name { font-family: var(--el-serif); font-size: 29px; font-weight: 500; color: var(--el-green); }

/* menu e ricerca, posizionati nella stessa riga del logo */
.el-header__row > .ps-mainmenu--desktop { order: 0; }
.el-header__row > #_desktop_ps_searchbar { order: 2; flex: 1 1 280px; max-width: 460px; margin-left: auto; }
.el-header__row > .ps-searchbar--mobile { order: 2; margin-left: auto; }
.el-header__actions { order: 3; gap: 10px; }
@media (min-width: 1200px) {
  .el-header__row > .ps-mainmenu--desktop {
    order: 4; flex: 0 0 100%; max-width: 100%;
    border-top: 1px solid var(--el-line); margin-top: 6px;
  }
  .el-header__row { padding-bottom: 0; }
  .el-header__row .ps-mainmenu__mobile-toggle { display: none; }
  .el-header__row .ps-mainmenu__desktop { flex: 1 1 auto; }
}
@media (max-width: 1199.98px) {
  .el-logo__img { width: 46px; height: 36px; }
  .el-logo__name { font-size: 23px; }
  .el-logo__kicker { font-size: 9px; }
}

.ps-mainmenu__desktop .ps-mainmenu__tree { display: flex !important; flex-wrap: wrap; justify-content: center !important; gap: 0 30px; margin: 0; padding: 0; }
.ps-mainmenu__tree-link { color: var(--el-ink) !important; font-size: 14.5px; font-weight: 500; letter-spacing: .03em; padding-top: 14px !important; padding-bottom: 14px !important; }
.ps-mainmenu__tree-item.current .ps-mainmenu__tree-link,
.ps-mainmenu__tree-link:hover { color: var(--el-green) !important; box-shadow: inset 0 -2px 0 var(--el-gold); }
.ps-mainmenu__tree-dropdown-toggle { color: var(--el-muted); }
.submenu { background: #fff; border-top: 1px solid var(--el-line); box-shadow: 0 18px 40px rgba(18, 63, 42, .12); }
.submenu__left-item { color: var(--el-ink); }
.submenu__left-item[aria-selected="true"], .submenu__left-item:hover { color: var(--el-green); }
.menu-item, .submenu a { color: var(--el-ink); }
.menu-item:hover, .submenu a:hover { color: var(--el-green); }
.ps-mainmenu__mobile-toggle .menu-toggle { color: var(--el-green); }
.ps-mainmenu--mobile { background: var(--el-cream); }
.ps-mainmenu--mobile .menu__link { color: var(--el-ink); font-size: 17px; }

.ps-searchbar__form { background: #fff; border: 1px solid #D8CBB0; border-radius: 999px; overflow: hidden; }
.ps-searchbar__input, .ps-searchbar__input:focus { border: 0 !important; box-shadow: none !important; background: transparent; height: 46px; }
.ps-searchbar__form:focus-within { border-color: var(--el-green); box-shadow: 0 0 0 .2rem rgba(11, 87, 51, .12); }
.ps-searchbar__magnifier { color: var(--el-green); }
.header-block__action-btn, .header-block__icon { color: var(--el-green); }

/* ---------- Struttura generale ---------- */
.wrapper { background: var(--el-cream); }
.breadcrumb { font-size: 13px; }
.breadcrumb a { color: var(--el-muted); }
.page-header { margin-bottom: 1.5rem; }
.page-content--home { padding-bottom: 0; }

.el-section { padding-top: 88px; }
.el-section--first { padding-top: 40px; }
.el-section--tight { padding-top: 28px; }
.el-center { text-align: center; }
.el-center .el-sub { margin-left: auto; margin-right: auto; }
.el-section--first.el-center .el-sub { margin-top: 0; }
.el-steps li > span { padding-top: 8px; }
.el-cms .container { padding-left: 0; padding-right: 0; max-width: none; }
.el-cms { padding-bottom: 88px; }

.el-eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--el-brown); text-decoration: none;
}
.el-eyebrow--light { color: var(--el-gold-light); }
.el-h1 { font-family: var(--el-serif); font-weight: 400; font-size: clamp(36px, 5vw, 52px); line-height: 1.1; color: var(--el-green); margin: 12px 0 10px; }
.el-h2 { font-family: var(--el-serif); font-weight: 400; font-size: clamp(30px, 3.6vw, 40px); line-height: 1.15; color: var(--el-green); margin: 6px 0 24px; }
.el-h2--light { color: var(--el-cream); }
.el-h3 { font-family: var(--el-serif); font-weight: 400; font-size: 21px; line-height: 1.25; color: var(--el-green); margin: 0 0 8px; }
.el-h3--lg { font-size: 30px; }
.el-sub { color: var(--el-muted); max-width: 560px; margin: -12px 0 40px; }
.el-role { font-family: var(--el-serif); font-style: italic; font-size: 22px; color: var(--el-brown); margin-bottom: 16px; }
.el-sprig { color: var(--el-gold); }
.el-heading { margin-bottom: 24px; }
.el-heading .el-h2 { margin-bottom: 0; }
.el-heading--row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; }
.el-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; color: var(--el-green); text-decoration: none; }
.el-link:hover { text-decoration: underline; }
.el-links { display: flex; flex-wrap: wrap; gap: 8px 24px; }

.el-card { background: #fff; border: 1px solid var(--el-sand); border-radius: var(--el-radius); padding: 26px 28px; }
.el-card p { margin: 0; font-size: 15px; color: var(--el-text); }
.el-card--lg { padding: 40px; display: flex; flex-direction: column; gap: 12px; }
.el-card__icon { width: 48px; height: 48px; border-radius: 999px; background: var(--el-green); color: var(--el-cream); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 14px; }

/* ---------- Hero ---------- */
.el-hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); border-radius: var(--el-radius-lg); overflow: hidden; background: var(--el-green-dark); }
.el-hero__text { padding: 64px 56px; color: var(--el-cream); display: flex; flex-direction: column; justify-content: center; gap: 22px; }
.el-hero__title { margin: 0; font-family: var(--el-serif); font-size: clamp(38px, 4.6vw, 56px); line-height: 1.1; color: var(--el-cream); }
.el-hero__title em { color: var(--el-gold-light); }
.el-hero__lead { margin: 0; max-width: 470px; font-size: 17px; color: #DCE6DF; }
.el-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.el-hero__media {
  min-height: 420px; display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(circle at 50% 50%, rgba(227, 203, 149, .14) 0, rgba(227, 203, 149, 0) 60%),
    var(--el-green-mid);
  border-left: 1px solid rgba(227, 203, 149, .35);
}
.el-hero__media img.el-hero__photo { width: 100%; height: 100%; object-fit: cover; }
.el-hero__emblem { width: min(260px, 50%); height: auto; opacity: .9; }
@media (max-width: 767.98px) {
  .el-hero__text { padding: 32px 24px 36px; }
  .el-hero__media { min-height: 220px; border-left: 0; border-top: 1px solid rgba(227, 203, 149, .35); order: -1; }
  .el-hero__cta .el-btn { flex: 1 1 100%; }
}

/* ---------- Punti di forza ---------- */
.el-usp { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.el-usp__item { display: flex; gap: 16px; align-items: center; padding: 20px 24px; background: #fff; border: 1px solid var(--el-sand); border-radius: 14px; color: var(--el-green); }
.el-usp__item > span { display: flex; flex-direction: column; color: var(--el-ink); }
.el-usp__item strong { font-weight: 600; }
.el-usp__item span span { font-size: 14px; color: var(--el-muted); }

/* ---------- Cosa ci distingue ---------- */
.el-plus { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.el-plus__main { grid-row: span 2; padding: 40px; border-radius: var(--el-radius-lg); background: var(--el-green); color: var(--el-cream); display: flex; flex-direction: column; justify-content: space-between; gap: 28px; }
.el-plus__main .el-icon { color: var(--el-gold-light); }
.el-plus__main-title { font-family: var(--el-serif); font-size: 34px; line-height: 1.15; color: var(--el-cream); margin: 12px 0; }
.el-plus__main p { color: #DCE6DF; margin: 0; }
@media (max-width: 767.98px) { .el-plus__main { grid-row: auto; padding: 28px 24px; } .el-plus__main-title { font-size: 27px; } }

/* ---------- Reparti (stile "storie in evidenza") ---------- */
.el-reparti { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 32px 16px; }
.el-reparto { display: flex; flex-direction: column; align-items: center; gap: 14px; text-decoration: none; color: var(--el-ink); }
.el-reparto:hover { color: var(--el-green); }
.el-reparto__circle {
  width: 112px; height: 112px; border-radius: 999px; background: var(--el-green); color: var(--el-cream);
  border: 4px solid var(--el-cream); box-shadow: 0 0 0 1.5px var(--el-gold);
  display: flex; align-items: center; justify-content: center; transition: transform .2s;
}
.el-reparto__circle .el-icon { stroke-width: 1.3; }
.el-reparto:hover .el-reparto__circle { transform: translateY(-3px); }
.el-reparto__name { font-family: var(--el-serif); font-size: 18px; line-height: 1.25; }
@media (max-width: 767.98px) {
  .el-reparti { display: flex; overflow-x: auto; gap: 14px; padding: 0 4px 8px; margin: 0 -12px; scroll-snap-type: x proximity; }
  .el-reparto { flex: 0 0 84px; gap: 8px; scroll-snap-align: start; }
  .el-reparto__circle { width: 72px; height: 72px; border-width: 3px; }
  .el-reparto__circle .el-icon { width: 30px; height: 30px; }
  .el-reparto__name { font-family: var(--bs-body-font-family); font-size: 12px; }
}

/* ---------- Schede prodotto in elenco ---------- */
.products { --bs-gutter-y: 24px; }
.product-miniature__inner { background: #fff; border: 1px solid var(--el-sand); border-radius: var(--el-radius); overflow: hidden; height: 100%; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.product-miniature__inner:hover { box-shadow: 0 14px 30px rgba(18, 63, 42, .10); transform: translateY(-2px); }
.product-miniature__top { background: #fff; }
.product-miniature__bottom { padding: 16px 18px 20px; border-top: 1px solid #F0E8D8; flex: 1; display: flex; flex-direction: column; }
.product-miniature__infos { display: flex; flex-direction: column; gap: 4px; }
.el-mini-brand { font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--el-brown); }
.product-miniature__title { font-family: var(--el-serif); font-size: 18px; line-height: 1.3; color: var(--el-ink); text-decoration: none; }
.product-miniature__title:hover { color: var(--el-green); }
.product-miniature__price { font-weight: 600; color: var(--el-green); font-size: 17px; }
.product-miniature__actions { display: none; }
.product-flags .badge.new, .product-flag--new, .product-flags .new { display: none !important; }
.product-flags .badge, .product-flag { border-radius: 999px; }
.product-flag--discount, .product-flags .discount { background: var(--el-gold) !important; }

/* ---------- Homepage prodotti ---------- */
.el-featured .module-products__list { margin-top: 0; }

/* ---------- Chi siamo e consulenze (homepage) ---------- */
.el-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 56px; align-items: center; }
.el-split__text { display: flex; flex-direction: column; gap: 14px; }
.el-split__text p { margin: 0; color: var(--el-text); }
.el-split__text .el-h2 { margin-bottom: 4px; }
.el-photo-placeholder { aspect-ratio: 4 / 3; border-radius: var(--el-radius-lg); background: var(--el-sand); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.el-photo-placeholder img { width: 34%; height: auto; opacity: .35; }
.el-photo-placeholder img.el-photo { width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.el-photo-placeholder--portrait { aspect-ratio: 4 / 5; max-height: 560px; }
.el-quote { margin: 6px 0; padding-left: 20px; border-left: 2px solid var(--el-gold); font-family: var(--el-serif); font-style: italic; font-size: 21px; line-height: 1.4; color: var(--el-green); }
.el-quote--center { border-left: 0; padding: 0; max-width: 820px; margin: 18px auto 0; font-size: clamp(22px, 2.6vw, 28px); }
.el-duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px 48px; }
.el-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 20px; }
.el-grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 20px; }

/* ---------- Vieni a trovarci ---------- */
.el-visit { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); border-radius: var(--el-radius-lg); overflow: hidden; background: var(--el-green-dark); color: var(--el-cream); }
.el-visit__info { padding: 56px; display: flex; flex-direction: column; gap: 22px; }
.el-visit__info .el-h2 { margin: 0; }
.el-visit__row { display: flex; gap: 14px; align-items: flex-start; }
.el-visit__row > .el-icon { color: var(--el-gold-light); flex: 0 0 auto; margin-top: 2px; }
.el-visit a { color: var(--el-cream); }
.el-visit a:hover { color: var(--el-gold-light); }
.el-visit a.el-btn--gold { color: var(--el-green-dark); }
.el-visit__orari p { margin: 0; }
.el-visit__orari #custom-text, .el-visit__orari .custom-text { padding: 0; margin: 0; background: none; text-align: left; }
.el-visit__orari h2, .el-visit__orari h3 { font-family: var(--bs-body-font-family); font-size: 16px; font-weight: 600; color: var(--el-cream); margin: 0 0 4px; }
.el-visit__note { font-size: 13.5px; color: #BFD0C5; margin-top: 4px !important; }
.el-visit__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.el-visit__map { min-height: 380px; background: var(--el-green-mid); position: relative; }
.el-visit__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.el-visit__map-consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; color: #C9D8CE; }
.el-visit__map-consent p { max-width: 300px; font-size: 14px; margin: 0; }
.el-visit__map-consent .el-icon { color: var(--el-gold-light); }
@media (max-width: 767.98px) {
  .el-visit__info { padding: 28px 24px; }
  .el-visit__map { min-height: 260px; }
  .el-visit__cta .el-btn { flex: 1 1 100%; }
}

/* ---------- Fascia prenotazione / storia ---------- */
.el-band { border-radius: var(--el-radius-lg); background: var(--el-green-dark); color: var(--el-cream); padding: 48px 56px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.el-band p { margin: 0; color: #DCE6DF; }
.el-band .el-h2 { margin: 0 0 6px; }
.el-band--cream { background: #fff; border: 1px solid var(--el-sand); color: var(--el-ink); }
.el-band--cream p { color: var(--el-text); max-width: 760px; }
@media (max-width: 767.98px) { .el-band { padding: 32px 24px; } .el-band .el-btn { flex: 1 1 100%; } }

.el-timeline { list-style: none; margin: 0; padding: 0 0 0 22px; border-left: 2px solid var(--el-gold); display: flex; flex-direction: column; gap: 16px; }
.el-timeline strong { display: block; font-weight: 600; }
.el-timeline span { font-size: 14.5px; color: var(--el-muted); }
.el-steps { list-style: none; counter-reset: el-step; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.el-steps li { counter-increment: el-step; display: flex; gap: 16px; align-items: flex-start; }
.el-steps li::before { content: counter(el-step); flex: 0 0 40px; height: 40px; border-radius: 999px; border: 1px solid var(--el-gold); display: flex; align-items: center; justify-content: center; font-family: var(--el-serif); color: var(--el-green); }

.el-story { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; font-size: 17px; line-height: 1.75; color: var(--el-text); }
.el-story p { margin: 0; }
.el-story__lead { font-family: var(--el-serif); font-size: 23px; line-height: 1.5; color: var(--el-green); }
.el-story__sign { font-family: var(--el-serif); font-style: italic; font-size: 20px; color: var(--el-brown); text-align: right; }
.el-milestones { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 20px; }
.el-milestones li { background: #fff; border: 1px solid var(--el-sand); border-radius: var(--el-radius); padding: 24px; display: flex; flex-direction: column; gap: 4px; }
.el-milestones__year { font-family: var(--el-serif); font-size: 34px; color: var(--el-gold); line-height: 1; margin-bottom: 8px; }
.el-milestones strong { font-weight: 600; }
.el-milestones li > span:last-child { font-size: 14.5px; color: var(--el-muted); }

/* ---------- Pagina categoria ---------- */
.category-header, .block-category { margin-bottom: 1.5rem; }
#category .page-title, #category h1 { font-size: clamp(34px, 4vw, 46px); }
.category-header__description, .block-category .rich-text { color: var(--el-text); max-width: 760px; }
.left-column .block, .left-column .facet, .left-column section { background: #fff; border-radius: var(--el-radius); }
.left-column .block-categories, .left-column #search_filters { border: 1px solid var(--el-sand); border-radius: var(--el-radius); padding: 20px; background: #fff; }
.products-selection, .products-top { color: var(--el-muted); }
.pagination .page-link { border-radius: 999px !important; color: var(--el-ink); }
.pagination .page-item.active .page-link, .pagination .current a { background: var(--el-green); border-color: var(--el-green); color: #fff; }

/* ---------- Scheda prodotto ---------- */
.el-product-brand { margin-bottom: 6px; }
.product__name.el-product-name { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.15; margin-bottom: 14px; }
.product__price { font-size: 30px; font-weight: 600; color: var(--el-green); }
.product__description-short { font-size: 17px; color: var(--el-text); }
.product__cover, .product__images, .product-cover-thumbnails img, .product__left .carousel-item img { border-radius: var(--el-radius); }
.product__left .carousel, .product__left .product__images-container { background: #fff; border-radius: var(--el-radius-lg); }
.el-instore { margin-top: 18px; padding: 24px; border-radius: var(--el-radius); background: #fff; border: 1px solid var(--el-sand); display: flex; flex-direction: column; gap: 12px; }
.el-instore__status { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.el-instore__dot { width: 10px; height: 10px; border-radius: 999px; background: #2E8B57; }
.el-instore__text { font-size: 14.5px; color: var(--el-text); }
.el-instore__cta { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.product__accordion .accordion-item { background: transparent; border-color: var(--el-line); }
.product__accordion .accordion-button { font-family: var(--el-serif); font-weight: 400; font-size: 22px; color: var(--el-green); background: transparent; box-shadow: none; }
.product__accordion .accordion-button:not(.collapsed) { color: var(--el-green); }
.product__accordion .accordion-body { color: var(--el-text); }
.product__description h3 { font-size: 20px; margin-top: 1rem; }
.product-accessories .section-title, .ps-categoryproducts .section-title, .featured-products .section-title { font-size: clamp(26px, 3vw, 32px); }

/* ---------- Piè di pagina ---------- */
.footer { background: transparent; padding: 0; margin-top: 96px; }
.el-footer { background: var(--el-green); color: #DCE6DF; font-size: 14px; }
.el-footer a { color: #DCE6DF; text-decoration: none; display: inline-flex; align-items: center; gap: 10px; }
.el-footer a:hover { color: #fff; text-decoration: underline; }
.el-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; padding-top: 56px; padding-bottom: 40px; }
.el-footer__brand { display: flex; flex-direction: column; gap: 10px; }
.el-footer__brand img { width: 80px; height: auto; }
.el-footer__name { font-family: var(--el-serif); font-size: 20px; color: var(--el-cream); }
.el-footer__addr { color: #BFD0C5; }
.el-footer__col { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.el-footer__title { color: var(--el-gold-light); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: 12px; margin: 0 0 4px; }
.el-footer__bottom { border-top: 1px solid rgba(220, 230, 223, .2); }
.el-footer__bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-top: 18px; padding-bottom: 18px; font-size: 13px; color: #BFD0C5; }
.el-footer__legal { display: flex; gap: 20px; }

/* ---------- Barra contatti su telefono ---------- */
.el-mobilebar { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 1020; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 8px; background: #fff; border-radius: 18px; box-shadow: 0 8px 28px rgba(18, 63, 42, .2); }
.el-mobilebar a { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 7px 0; border-radius: 12px; text-decoration: none; color: var(--el-green); font-size: 12px; font-weight: 500; }
.el-mobilebar a.el-mobilebar__main { background: var(--el-green); color: #fff; }
@media (max-width: 767.98px) {
  body { padding-bottom: 92px; }
  .el-section { padding-top: 52px; }
  .el-section--first { padding-top: 16px; }
  .el-section--tight { padding-top: 16px; }
  .el-card--lg { padding: 26px 24px; }
  .el-h3--lg { font-size: 25px; }
  .footer { margin-top: 56px; }
  .back-to-top-link { bottom: 100px; }
}

@media (max-width: 767.98px) {
  .container, .container-md { --bs-gutter-x: 2rem; }
  .product-miniature__title { font-size: 15px; }
  .product-miniature__bottom { padding: 12px 12px 14px; }
  .el-mini-brand { font-size: 10px; letter-spacing: .12em; }
  .left-column .ps-categorytree { display: none; }
  .el-photo-placeholder:not(.has-photo) { display: none; }
}

body:has(.offcanvas.show) .el-mobilebar, body:has(.offcanvas.showing) .el-mobilebar { display: none; }

/* ---------- Accessibilità ---------- */
.el-btn:focus-visible, .el-reparto:focus-visible, .el-link:focus-visible, .el-mobilebar a:focus-visible { outline: 2px solid var(--el-gold); outline-offset: 3px; }
