/** Shopify CDN: Minification failed

Line 2159:0 Unexpected "}"

**/
/* ============================================================
   Armeria Lorenzi 1940 — design system
   Direzione: Calibro (tecnico / strumento di precisione)
   Sovrascrive Dawn 15.4.1. Caricato dopo base.css.
   ============================================================ */

:root {
  /* --- colore: preso dall'insegna del negozio (verde bosco + oro) --- */
  --al-green-900:  #0F1F17;
  --al-green-800:  #16301F;
  --al-green-700:  #1E3D28;
  --al-green-600:  #285034;
  --al-gold:       #C9A227;
  --al-gold-dark:  #8A6A18;   /* oro leggibile: 5.05:1 su bianco */
  --al-gold-soft:  #F5EBCC;
  --al-cream:      #F7F3E8;

  --al-ink:        #14201A;
  --al-ink-2:      #3A4A40;
  --al-muted:      #657268;   /* 5.05:1 su bianco, 4.52:1 sul grigio */
  --al-line:       #D8DED6;
  --al-line-2:     #EBEFE9;
  --al-panel:      #F1F3EE;
  --al-panel-2:    #F8FAF6;
  --al-surface:    #FFFFFF;

  /* l'azione si fa in verde piastra; l'oro e' l'accento che sottolinea */
  --al-acc:        #1E3D28;
  --al-acc-dark:   #16301F;
  --al-acc-soft:   #EDF2EE;
  --al-ok:         #1B7A4B;
  --al-warn:       #A8801F;

  /* --- tipografia --- */
  --al-display: 'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --al-body:    'IBM Plex Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --al-mono:    'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* --- geometria --- */
  --al-r: 0px;
  --al-r-sm: 0px;
  --al-gut: 2.4rem;
  --al-max: 138rem;

  /* --- motion --- */
  --al-ease: cubic-bezier(.22,.61,.36,1);
  --al-fast: .18s;
  --al-slow: .5s;

  /* sovrascrive i token di Dawn */
  --font-body-family: var(--al-body);
  --font-heading-family: var(--al-display);
  --font-body-weight: 400;
  --font-body-weight-bold: 600;
  --font-heading-weight: 700;
  --font-heading-style: normal;
  --font-body-style: normal;
  --font-body-scale: 1.0;
  --font-heading-scale: 1.0;
  --page-width: 138rem;
  --buttons-radius: 0px;
  --buttons-radius-outset: 0px;
  --inputs-radius: 0px;
  --inputs-radius-outset: 0px;
  --media-radius: 0px;
  --card-corner-radius: 0px;
  --badge-corner-radius: 0px;
  --popup-corner-radius: 0px;
  --drawer-corner-radius: 0px;
  --variant-pills-radius: 0px;
  --text-boxes-radius: 0px;
  --inputs-border-width: 1px;
  --buttons-border-width: 1px;
  --duration-short: 120ms;
  --duration-default: 220ms;
}

/* ============================================================
   1. Base
   ============================================================ */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--al-body);
  font-size: 1.55rem;
  line-height: 1.62;
  letter-spacing: 0;
  color: var(--al-ink-2);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, .h0, .h1, .h2, .h3, .h4, .h5 {
  font-family: var(--al-display);
  font-weight: 700;
  color: var(--al-ink);
  letter-spacing: -.018em;
  line-height: 1.08;
  text-wrap: balance;
}

.h0  { font-size: clamp(3.6rem, 6vw, 6.8rem); font-weight: 800; letter-spacing: -.032em; }
.h1, h1 { font-size: clamp(2.9rem, 4.2vw, 4.4rem); font-weight: 800; letter-spacing: -.028em; }
.h2, h2 { font-size: clamp(2.3rem, 2.8vw, 3.2rem); letter-spacing: -.022em; }
.h3, h3 { font-size: clamp(1.9rem, 2.1vw, 2.3rem); }
.h4, h4 { font-size: 1.7rem; }
.h5, h5 { font-size: 1.5rem; }

a { color: inherit; text-underline-offset: .3em; }
a:hover { color: var(--al-acc); }

::selection { background: var(--al-acc); color: #fff; }

:focus-visible,
.focused {
  outline: 2px solid var(--al-acc) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
}

.page-width { max-width: var(--al-max); padding-left: 2.4rem; padding-right: 2.4rem; }
@media screen and (max-width: 749px) { .page-width { padding-left: 1.6rem; padding-right: 1.6rem; } }

/* etichetta tecnica ricorrente */
.al-label {
  display: inline-block;
  font-family: var(--al-mono);
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--al-muted);
}

/* righello: il segno ricorrente della direzione */
.al-rule {
  height: .6rem;
  background:
    repeating-linear-gradient(90deg, var(--al-ink) 0 1px, transparent 1px 9px) bottom / 100% .4rem no-repeat,
    linear-gradient(var(--al-acc), var(--al-acc)) top / 100% .2rem no-repeat;
  opacity: .9;
}

/* ============================================================
   2. Bottoni
   ============================================================ */

.button, .shopify-challenge__button, .customer button,
button.shopify-payment-button__button--unbranded {
  font-family: var(--al-body);
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  min-height: 4.8rem;
  padding: 0 2.6rem;
  border-radius: 0;
  transition: background-color var(--al-fast) var(--al-ease),
              color var(--al-fast) var(--al-ease),
              transform var(--al-fast) var(--al-ease);
}
.button:not([disabled]):hover { transform: translateY(-1px); }
.button:not([disabled]):active { transform: translateY(0); }
.button::after, .button::before { display: none; }
.button--primary, .button:not(.button--secondary):not(.button--tertiary) {
  background: var(--al-acc);
  color: #fff;
  border: 1px solid var(--al-acc);
}
.button--primary:not([disabled]):hover,
.button:not(.button--secondary):not(.button--tertiary):not([disabled]):hover {
  background: var(--al-acc-dark);
  border-color: var(--al-acc-dark);
}
.button--secondary {
  background: transparent;
  color: var(--al-ink);
  border: 1px solid var(--al-line);
}
.button--secondary:not([disabled]):hover {
  border-color: var(--al-ink);
  background: var(--al-panel);
}
.button--tertiary { min-height: 4rem; font-size: 1.2rem; }
.button--full-width { width: 100%; }

/* link con freccia */
.link, .link-with-underline, .button--tertiary.link {
  font-family: var(--al-body);
  font-weight: 600;
  font-size: 1.35rem;
  color: var(--al-acc);
  text-transform: none;
  letter-spacing: 0;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
}
.link:hover { color: var(--al-acc-dark); }

/* ============================================================
   3. Barra servizio + header
   ============================================================ */

.announcement-bar,
.utility-bar {
  background: var(--al-ink) !important;
  color: rgba(255,255,255,.8);
  border: 0 !important;
}
.announcement-bar__message,
.utility-bar__grid {
  font-family: var(--al-mono);
  font-size: 1.1rem;
  letter-spacing: .05em;
  padding: .9rem 0;
  min-height: 0;
  color: rgba(255,255,255,.8);
}
.announcement-bar__message a { color: #fff; }

.al-service {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.8rem;
  font-family: var(--al-mono);
  font-size: 1.1rem;
  letter-spacing: .045em;
  color: rgba(255,255,255,.78);
}
.al-service b { color: #fff; font-weight: 500; }
.al-service a { color: rgba(255,255,255,.78); text-decoration: none; }
.al-service a:hover { color: var(--al-acc); }
.al-service__push { margin-left: auto; }
@media screen and (max-width: 989px) {
  .al-service { justify-content: center; font-size: 1.05rem; }
  .al-service__push { margin-left: 0; width: 100%; text-align: center; }
  .al-service__hide-m { display: none; }
}

.header-wrapper { border-bottom: 1px solid var(--al-line) !important; }
.shopify-section-header-sticky .header-wrapper { box-shadow: 0 1px 0 var(--al-line), 0 8px 24px rgba(20,24,26,.06); }

.header {
  padding: 1.6rem 2.4rem;
  max-width: var(--al-max);
  gap: 2.4rem;
}
@media screen and (max-width: 749px) { .header { padding: 1.2rem 1.6rem; } }

.header__heading-link { padding: 0; }
.header__heading-logo { max-height: 5.2rem; width: auto; }
.header__heading-link .h2 {
  font-family: var(--al-display);
  font-weight: 800;
  font-size: 1.7rem;
  text-transform: uppercase;
  letter-spacing: -.01em;
  line-height: 1;
  color: var(--al-ink);
}

/* wordmark provvisorio finché non arriva il logo del cliente */
.al-wordmark { display: flex; flex-direction: column; gap: .2rem; text-decoration: none; }
.al-wordmark__name {
  font-family: var(--al-display);
  font-weight: 800;
  font-size: 1.75rem;
  line-height: 1;
  letter-spacing: -.015em;
  text-transform: uppercase;
  color: var(--al-ink);
}
.al-wordmark__year {
  font-family: var(--al-mono);
  font-size: 1rem;
  letter-spacing: .38em;
  color: var(--al-acc);
  line-height: 1;
}

/* voci di menu */
.header__menu-item {
  font-family: var(--al-body);
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: .005em;
  padding: 1rem 1.2rem;
  color: var(--al-ink-2);
  transition: color var(--al-fast) var(--al-ease);
}
.header__menu-item span { text-decoration: none !important; }
.header__menu-item:hover,
.header__menu-item:hover span { color: var(--al-acc); }
.header__active-menu-item { color: var(--al-ink); text-decoration: none; }

/* Sottolineatura della voce attiva/al passaggio.
   NB: niente position:relative sul <li> e nessun ::after qui —
   Dawn usa ::after per la freccina e conta su .mega-menu{position:static}
   per far uscire il pannello a tutta larghezza. */
.header__inline-menu > .list-menu > li > details > summary.header__menu-item,
.header__inline-menu > .list-menu > li > a.header__menu-item {
  box-shadow: inset 0 -2px 0 transparent;
  transition: color var(--al-fast) var(--al-ease), box-shadow var(--al-fast) var(--al-ease);
}
.header__inline-menu > .list-menu > li > details[open] > summary.header__menu-item,
.header__inline-menu > .list-menu > li > details > summary.header__menu-item:hover,
.header__inline-menu > .list-menu > li > a.header__menu-item:hover,
.header__inline-menu > .list-menu > li > a.header__active-menu-item {
  box-shadow: inset 0 -2px 0 var(--al-acc);
}

.header__icon, .header__icon--cart { color: var(--al-ink); }
.header__icon:hover { color: var(--al-acc); }
.header__icon .icon { width: 2.1rem; height: 2.1rem; }
.header__icon--cart .icon { width: 2.1rem; height: 2.1rem; }
.cart-count-bubble {
  background: var(--al-acc);
  color: #fff;
  font-family: var(--al-mono);
  font-size: 1rem;
  font-weight: 500;
  border-radius: 999px;
  min-width: 1.7rem;
  height: 1.7rem;
}

/* ============================================================
   4. Mega menu
   ============================================================ */

.mega-menu__content {
  border: 0;
  border-top: 1px solid var(--al-line);
  box-shadow: 0 16px 40px rgba(20,24,26,.10);
  padding: 3.2rem 2.4rem 3.6rem;
  background: var(--al-surface);
}
.mega-menu__list {
  max-width: var(--al-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: start;
  gap: 3rem 3.2rem;
  list-style: none;
  padding: 0;
}
@media screen and (max-width: 1199px) {
  .mega-menu__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* voce di primo livello dentro il pannello (Canne da pesca, Mulinelli...) */
.mega-menu__link--level-2 {
  font-family: var(--al-display);
  font-weight: 700;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: -.005em;
  color: var(--al-ink);
  padding: 0 0 .8rem;
  margin: 0 0 .9rem;
  border-bottom: 1px solid var(--al-line);
  display: block;
  transition: color var(--al-fast) var(--al-ease), border-color var(--al-fast) var(--al-ease);
}
.mega-menu__link--level-2:hover { color: var(--al-acc); border-bottom-color: var(--al-acc); text-decoration: none; }

/* sottovoci: elenco semplice, subordinato */
.mega-menu__content .list-unstyled { list-style: none; margin: 0; padding: 0; }
.mega-menu__content .list-unstyled .mega-menu__link {
  font-family: var(--al-body);
  font-weight: 400;
  font-size: 1.32rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--al-ink-2);
  border: 0;
  display: block;
  padding: .42rem 0;
  margin: 0;
  transition: color var(--al-fast) var(--al-ease), padding-left var(--al-fast) var(--al-ease);
}
.mega-menu__content .list-unstyled .mega-menu__link:hover {
  color: var(--al-acc);
  padding-left: .6rem;
  text-decoration: none;
}

/* dropdown semplice */
.header__submenu {
  border: 0;
  border-top: 2px solid var(--al-acc);
  box-shadow: 0 14px 34px rgba(20,24,26,.12);
  padding: .8rem 0;
  min-width: 24rem;
}
.header__submenu .header__menu-item { padding: .9rem 2rem; font-size: 1.3rem; }
.header__submenu .header__menu-item:hover { background: var(--al-panel); }

/* ============================================================
   5. Ricerca
   ============================================================ */

.search__input.field__input {
  border: 1px solid var(--al-line);
  background: var(--al-panel-2);
  font-family: var(--al-body);
  font-size: 1.45rem;
  height: 5rem;
  border-radius: 0;
}
.search__input.field__input:focus { border-color: var(--al-ink); background: #fff; }
.field:after, .select:after, .customer .field:after, .customer select:after { box-shadow: none; border-radius: 0; }
.field__input, .select__select, .customer .field input, .customer select {
  border-radius: 0;
  border: 1px solid var(--al-line);
  font-family: var(--al-body);
}
.field__input:focus, .select__select:focus { border-color: var(--al-ink); }
.field__label { font-family: var(--al-body); color: var(--al-muted); }

.search-modal { background: var(--al-surface); border-bottom: 1px solid var(--al-line); }
.search-modal__content { padding: 2rem 2.4rem; max-width: var(--al-max); }
.search-modal__form { max-width: 72rem; }

/* risultati istantanei */
predictive-search .predictive-search {
  border: 1px solid var(--al-line);
  border-top: 2px solid var(--al-acc);
  box-shadow: 0 18px 40px rgba(20,24,26,.14);
  border-radius: 0;
  max-height: 72vh;
}
.predictive-search__heading {
  font-family: var(--al-mono);
  font-size: 1.05rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--al-muted);
  border-bottom: 1px solid var(--al-line-2);
  padding: 1.2rem 2rem .8rem;
  margin: 0;
}
.predictive-search__list-item { border: 0; }
.predictive-search__item {
  padding: 1rem 2rem;
  gap: 1.4rem;
  align-items: center;
  transition: background var(--al-fast) var(--al-ease);
}
.predictive-search__item:hover,
.predictive-search__list-item[aria-selected='true'] .predictive-search__item { background: var(--al-panel); }
.predictive-search__image {
  border: 1px solid var(--al-line-2);
  background: var(--al-panel);
  object-fit: contain !important;
  padding: .4rem;
}
.predictive-search__item-heading {
  font-family: var(--al-display);
  font-weight: 700;
  font-size: 1.35rem;
  color: var(--al-ink);
  margin-bottom: .3rem;
  line-height: 1.25;
}
.predictive-search__item .price {
  font-family: var(--al-mono);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--al-ink);
  font-variant-numeric: tabular-nums;
}
.predictive-search__item--term {
  font-family: var(--al-body);
  font-weight: 600;
  color: var(--al-acc);
  border-top: 1px solid var(--al-line-2);
}

/* ============================================================
   6. Scheda prodotto in griglia
   Le foto del catalogo vanno da 225x225 a 2137x736 px:
   riquadro quadrato fisso, immagine contenuta, mai ritagliata.
   ============================================================ */

.card-wrapper { color: inherit; }
.card {
  background: var(--al-surface);
  border: 1px solid var(--al-line);
  border-radius: 0;
  transition: border-color var(--al-fast) var(--al-ease),
              transform var(--al-fast) var(--al-ease),
              box-shadow var(--al-fast) var(--al-ease);
}
.card--standard .card__inner { background: transparent; }
.card-wrapper:hover .card,
.card-wrapper:focus-within .card {
  border-color: var(--al-acc);
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(20,24,26,.09);
}
.card__inner { border-radius: 0; }
.card--standard > .card__content { padding: 0; }

.card__media,
.card .media {
  background: var(--al-panel);
  border-radius: 0;
}
.card__inner .card__media { margin: 0; }
.card__media .media > img,
.card .media > img,
.card--standard .card__inner .card__media img {
  object-fit: contain !important;
  padding: 1.6rem;
  mix-blend-mode: multiply;
  transition: transform var(--al-slow) var(--al-ease);
}
.card-wrapper:hover .card__media .media > img { transform: scale(1.045); }
.card__media .media img + img { opacity: 0; }

/* Struttura reale di Dawn:
   .card > .card__inner (media)  +  .card > .card__content > .card__information (testi).
   Il padding va sul secondo, non sul primo: altrimenti i titoli toccano il bordo. */
.card--standard > .card__content {
  padding: 0;
  border-top: 1px solid var(--al-line);
}
.card--standard > .card__content > .card__information {
  padding: 1.4rem 1.6rem 1.7rem;
}
.card--standard > .card__content .card-information { padding: 0; }
.card__heading {
  font-family: var(--al-display);
  font-weight: 700;
  font-size: 1.35rem;
  line-height: 1.28;
  letter-spacing: -.005em;
  margin: 0 0 .4rem;
}
.card__heading a { color: var(--al-ink); text-decoration: none; }
.card-wrapper:hover .card__heading a { color: var(--al-acc); }
.card-information__text,
.card__information .caption { color: var(--al-muted); font-size: 1.2rem; }
.card__vendor,
.card-information > .caption-with-letter-spacing {
  font-family: var(--al-mono);
  font-size: 1.05rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--al-muted);
  margin-bottom: .5rem;
  display: block;
}

.price {
  font-family: var(--al-mono);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--al-ink);
  letter-spacing: -.01em;
}
.card__content .price { font-size: 1.4rem; margin-top: .6rem; display: block; }
.price--on-sale .price-item--regular { color: var(--al-muted); }
.price__sale .price-item--sale { color: var(--al-acc); }

.card__badge .badge,
.badge {
  font-family: var(--al-mono);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-radius: 0;
  border: 0;
  padding: .4rem .8rem;
}
.badge--bottom-left, .card__badge { top: .8rem; left: .8rem; bottom: auto; }
.card__badge .badge {
  background: var(--al-acc);
  color: #fff;
}
.badge.color-scheme-2, .card__badge .badge.color-inverse {
  background: var(--al-ink); color: #fff;
}
.quick-add__submit { font-size: 1.15rem; min-height: 4rem; }

/* griglia: le distanze restano quelle calcolate da Dawn, altrimenti
   la larghezza delle celle non torna piu' e su mobile si passa a una colonna */
.grid__item { padding: 0; }

/* ============================================================
   7. Pagina collezione
   ============================================================ */

.collection-hero {
  background: var(--al-panel);
  border-bottom: 1px solid var(--al-line);
  padding: 4.4rem 0 4rem;
  margin-bottom: 0;
}
.collection-hero__inner { max-width: var(--al-max); margin: 0 auto; padding: 0 2.4rem; }
.collection-hero__title {
  font-family: var(--al-display);
  font-weight: 800;
  font-size: clamp(2.8rem, 4vw, 4.2rem);
  letter-spacing: -.03em;
  text-transform: uppercase;
  color: var(--al-ink);
  margin: 0 0 1rem;
}
.collection-hero__description {
  max-width: 62ch;
  font-size: 1.5rem;
  line-height: 1.65;
  color: var(--al-ink-2);
  margin: 0;
}
.collection-hero__crumbs {
  font-family: var(--al-mono);
  font-size: 1.05rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--al-muted);
  margin-bottom: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
}
.collection-hero__crumbs a { color: var(--al-muted); text-decoration: none; }
.collection-hero__crumbs a:hover { color: var(--al-acc); }
.collection-hero__count {
  font-family: var(--al-mono);
  font-size: 1.15rem;
  color: var(--al-muted);
  letter-spacing: .06em;
  margin-top: 1.6rem;
  display: block;
}

/* navigazione tra categorie sorella */
.al-siblings { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }
.al-sibling {
  font-family: var(--al-body);
  font-size: 1.25rem;
  font-weight: 500;
  padding: .8rem 1.4rem;
  border: 1px solid var(--al-line);
  background: var(--al-surface);
  color: var(--al-ink-2);
  text-decoration: none;
  white-space: nowrap;
  transition: all var(--al-fast) var(--al-ease);
}
.al-sibling:hover { border-color: var(--al-acc); color: var(--al-acc); }
.al-sibling[aria-current="page"], .al-sibling.is-active {
  background: var(--al-ink); border-color: var(--al-ink); color: #fff;
}
.al-sibling span { font-family: var(--al-mono); font-size: 1.05rem; opacity: .6; margin-left: .5rem; }

/* barra filtri */
.facets-container { border-bottom: 1px solid var(--al-line); padding-bottom: 0; }
.facets__form { gap: 1.2rem; }
.facets__summary, .facets__disclosure .facets__summary {
  font-family: var(--al-body);
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--al-ink);
  padding: 1.4rem 1.2rem;
}
.facets__disclosure[open] .facets__summary { color: var(--al-acc); }
.facets__display {
  border: 1px solid var(--al-line);
  border-top: 2px solid var(--al-acc);
  border-radius: 0;
  box-shadow: 0 14px 34px rgba(20,24,26,.12);
}
.facets__label {
  font-size: 1.3rem;
  padding: .8rem 1.6rem;
  transition: background var(--al-fast) var(--al-ease);
}
.facets__label:hover { background: var(--al-panel); }
.facet-checkbox input[type='checkbox'] { accent-color: var(--al-acc); }
.active-facets__button, .active-facets .active-facets__button-wrapper button {
  font-family: var(--al-mono);
  font-size: 1.1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  border: 1px solid var(--al-line);
  border-radius: 0;
  background: var(--al-panel);
  padding: .6rem 1rem;
}
.active-facets__button:hover { border-color: var(--al-acc); color: var(--al-acc); }
.facet-filters__label, .product-count__text {
  font-family: var(--al-mono);
  font-size: 1.15rem;
  letter-spacing: .06em;
  color: var(--al-muted);
  text-transform: uppercase;
}
.facet-filters__sort, .facets__sort .select__select {
  font-family: var(--al-body);
  font-size: 1.3rem;
  border: 1px solid var(--al-line);
  border-radius: 0;
  min-height: 4.2rem;
}

.collection .loading-overlay { background: rgba(255,255,255,.7); }

/* stato vuoto */
.collection--empty .title-wrapper { padding: 8rem 0; }

/* ============================================================
   8. Scheda prodotto (PDP)
   ============================================================ */

.product { column-gap: 5rem; }
.product__media-wrapper { max-width: 100%; }

.product__media,
.product__media-item .product-media-container,
.product-media-container {
  background: var(--al-panel);
  border: 1px solid var(--al-line);
  border-radius: 0;
  box-shadow: none !important;
}
.product__media-item .media > img,
.product-media-container .media > img,
.product__modal-opener .media > img {
  object-fit: contain !important;
  padding: 3.2rem;
  mix-blend-mode: multiply;
}
.thumbnail {
  border-radius: 0;
  border: 1px solid var(--al-line);
  background: var(--al-panel);
  box-shadow: none;
}
.thumbnail img { object-fit: contain !important; padding: .6rem; mix-blend-mode: multiply; }
.thumbnail[aria-current] { border: 2px solid var(--al-acc); box-shadow: none; }
.thumbnail-list { gap: .8rem; }

.product__title, .product__title h1 {
  font-family: var(--al-display);
  font-weight: 800;
  font-size: clamp(2.4rem, 3vw, 3.4rem);
  letter-spacing: -.028em;
  line-height: 1.08;
  color: var(--al-ink);
  margin-bottom: .6rem;
}
.product__text.caption-with-letter-spacing,
.product .product__vendor,
.product__accordion .accordion__title {
  font-family: var(--al-mono);
  font-size: 1.1rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--al-muted);
}
.product .price {
  font-family: var(--al-mono);
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: -.02em;
  color: var(--al-ink);
}
.product .price--large .price-item { font-size: 2.4rem; }
.product__tax, .product .product__tax.caption { font-size: 1.15rem; color: var(--al-muted); }

/* selettore varianti */
.product-form__input .form__label {
  font-family: var(--al-mono);
  font-size: 1.05rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--al-muted);
  margin-bottom: .9rem;
}
.product-form__input input[type='radio'] + label {
  font-family: var(--al-body);
  font-size: 1.3rem;
  font-weight: 500;
  border-radius: 0;
  border: 1px solid var(--al-line);
  padding: 1.1rem 1.6rem;
  color: var(--al-ink-2);
  transition: all var(--al-fast) var(--al-ease);
}
.product-form__input input[type='radio'] + label:hover { border-color: var(--al-ink); }
.product-form__input input[type='radio']:checked + label {
  background: var(--al-ink);
  border-color: var(--al-ink);
  color: #fff;
}
.product-form__input input[type='radio']:disabled + label { opacity: .4; text-decoration: line-through; }

.quantity { border-radius: 0; border: 1px solid var(--al-line); min-height: 4.8rem; }
.quantity__input { font-family: var(--al-mono); font-weight: 500; }
.product-form__buttons { max-width: none; }
.product-form__submit { min-height: 5.4rem; font-size: 1.35rem; }

/* riga informazioni di fiducia */
.al-assure { display: grid; gap: .1rem; margin: 2.4rem 0; background: var(--al-line-2); border: 1px solid var(--al-line); }
.al-assure__row {
  display: flex; align-items: flex-start; gap: 1.2rem;
  background: var(--al-surface); padding: 1.4rem 1.6rem;
}
.al-assure__ico { flex: 0 0 auto; width: 2rem; height: 2rem; color: var(--al-acc); margin-top: .1rem; }
.al-assure__ico svg { width: 100%; height: 100%; }
.al-assure__txt { font-size: 1.32rem; line-height: 1.5; color: var(--al-ink-2); }
.al-assure__txt b { color: var(--al-ink); font-weight: 600; display: block; }
.al-assure__txt a { color: var(--al-acc); font-weight: 600; text-decoration: none; }

/* Nota sui tempi di evasione, sopra il pulsante di pagamento nel carrello. */
.al-evasione {
  display: flex; align-items: center; gap: .8rem;
  margin: 0 0 1.2rem; padding: 1rem 1.2rem;
  background: var(--al-line-2); border: 1px solid var(--al-line);
  font-size: 1.3rem; line-height: 1.45; color: var(--al-ink-2);
}
.al-evasione svg { flex: 0 0 auto; width: 1.8rem; height: 1.8rem; color: var(--al-acc); }
@media screen and (min-width: 750px) {
  .al-evasione { justify-content: flex-end; text-align: right; }
}

/* disponibilità */
.al-stock {
  display: inline-flex; align-items: center; gap: .7rem;
  font-family: var(--al-mono); font-size: 1.2rem; letter-spacing: .04em;
  color: var(--al-ink); margin-bottom: 1.6rem;
}
.al-stock::before { content:""; width: .8rem; height: .8rem; background: var(--al-ok); }
.al-stock--low { color: var(--al-warn); }
.al-stock--low::before { background: var(--al-warn); }
.al-stock--out { color: var(--al-muted); }
.al-stock--out::before { background: var(--al-muted); }

/* schede: descrizione / caratteristiche / scheda tecnica */
.al-tabs { margin-top: 3rem; }
.al-tabs__nav { display: flex; gap: 0; border-bottom: 1px solid var(--al-line); overflow-x: auto; }
.al-tabs__btn {
  font-family: var(--al-body);
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--al-muted);
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  padding: 1.1rem 1.6rem;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--al-fast) var(--al-ease);
}
.al-tabs__btn:hover { color: var(--al-ink); }
.al-tabs__btn[aria-selected="true"] { color: var(--al-ink); font-weight: 600; border-bottom-color: var(--al-acc); }
.al-tabs__panel { padding-top: 2rem; animation: alFade .35s var(--al-ease); }
.al-tabs__panel[hidden] { display: none; }
.al-tabs__panel p { font-size: 1.45rem; line-height: 1.68; margin: 0 0 1.2rem; }
.al-tabs__panel ul { margin: 0; padding-left: 0; list-style: none; display: grid; gap: .7rem; }
.al-tabs__panel li { position: relative; padding-left: 1.8rem; font-size: 1.4rem; line-height: 1.55; }
.al-tabs__panel li::before {
  content: ""; position: absolute; left: 0; top: .75em;
  width: .7rem; height: .7rem; background: var(--al-acc);
}

/* tabella scheda tecnica */
.al-spec { width: 100%; border-collapse: collapse; }
.al-spec tr { border-bottom: 1px solid var(--al-line-2); }
.al-spec tr:last-child { border-bottom: 0; }
.al-spec th {
  text-align: left; font-weight: 400; font-size: 1.32rem;
  color: var(--al-muted); padding: .95rem 1.6rem .95rem 0; width: 45%; vertical-align: top;
}
.al-spec td {
  font-family: var(--al-mono); font-size: 1.3rem; color: var(--al-ink);
  padding: .95rem 0; font-variant-numeric: tabular-nums; vertical-align: top;
}

/* accordion nativo Dawn, se usato */
.product__accordion .accordion__content { font-size: 1.42rem; line-height: 1.66; }
.product .accordion summary { padding: 1.6rem 0; }

/* prodotti correlati */
.related-products { border-top: 1px solid var(--al-line); padding-top: 5rem; }

@keyframes alFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ============================================================
   9. Carrello
   ============================================================ */

.drawer__inner { background: var(--al-surface); border-left: 1px solid var(--al-line); }
.drawer__header { border-bottom: 1px solid var(--al-line); padding: 2rem 2.4rem; }
.drawer__heading {
  font-family: var(--al-display); font-weight: 800; font-size: 1.8rem;
  text-transform: uppercase; letter-spacing: -.015em; color: var(--al-ink); margin: 0;
}
.drawer__close { color: var(--al-ink); }
.drawer__footer { border-top: 1px solid var(--al-line); background: var(--al-panel-2); padding: 2rem 2.4rem 2.4rem; }
.drawer__cart-items-wrapper { padding: 0 2.4rem; }
.cart-drawer__overlay { background: rgba(20,24,26,.42); }

.cart-item__image {
  border: 1px solid var(--al-line);
  background: var(--al-panel);
  object-fit: contain !important;
  padding: .5rem;
  mix-blend-mode: multiply;
}
.cart-item__name {
  font-family: var(--al-display); font-weight: 700; font-size: 1.35rem;
  color: var(--al-ink); text-decoration: none; line-height: 1.3;
}
.cart-item__name:hover { color: var(--al-acc); }
.cart-item__details .product-option {
  font-family: var(--al-mono); font-size: 1.1rem; color: var(--al-muted); letter-spacing: .04em;
}
.cart-item__totals .price, .totals__total-value {
  font-family: var(--al-mono); font-weight: 500; font-variant-numeric: tabular-nums; color: var(--al-ink);
}
.totals { align-items: baseline; }
.totals > h2, .totals__subtotal {
  font-family: var(--al-mono); font-size: 1.2rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--al-muted);
}
.totals__total-value { font-size: 2rem; }
.tax-note { font-size: 1.2rem; color: var(--al-muted); }
.cart__ctas .button { min-height: 5.4rem; }

.cart__empty-text {
  font-family: var(--al-display); font-weight: 800; font-size: 2.4rem;
  text-transform: uppercase; letter-spacing: -.02em; color: var(--al-ink);
}

/* ============================================================
   10. Footer
   ============================================================ */

.footer {
  background: var(--al-ink) !important;
  border-top: 0 !important;
  color: rgba(255,255,255,.7);
}
.footer .footer__content-top { padding: 5.6rem 0 4rem; border: 0; }
.footer-block__heading,
.footer .footer-block__heading {
  font-family: var(--al-mono);
  font-size: 1.1rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-bottom: 1.8rem;
  font-weight: 500;
}
.footer__list-social, .footer-block__details-content { color: rgba(255,255,255,.7); }
.footer-block__details-content .list-menu__item--link,
.footer .list-menu__item--link {
  font-family: var(--al-body);
  font-size: 1.35rem;
  color: rgba(255,255,255,.7);
  padding: .55rem 0;
  transition: color var(--al-fast) var(--al-ease);
}
.footer-block__details-content .list-menu__item--link:hover,
.footer .list-menu__item--link:hover { color: var(--al-acc); }
.footer__content-bottom {
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 2.2rem 0;
}
.footer__content-bottom-wrapper { align-items: center; }
.copyright__content, .footer__copyright small {
  font-family: var(--al-mono); font-size: 1.1rem; color: rgba(255,255,255,.4); letter-spacing: .04em;
}
.footer__copyright a { color: rgba(255,255,255,.55); }
.footer .list-social__link { color: rgba(255,255,255,.6); }
.footer .list-social__link:hover { color: var(--al-acc); }
.footer .list-payment__item { opacity: .55; }

.al-foot-brand { display: flex; flex-direction: column; gap: 1.4rem; }
.al-foot-brand .al-wordmark__name { color: #fff; font-size: 2rem; }
.al-foot-brand p { font-size: 1.35rem; line-height: 1.6; color: rgba(255,255,255,.62); max-width: 34ch; margin: 0; }
.al-foot-contact { display: grid; gap: .9rem; margin-top: .4rem; }
.al-foot-contact a, .al-foot-contact span {
  display: flex; gap: .9rem; align-items: flex-start;
  font-size: 1.35rem; color: rgba(255,255,255,.72); text-decoration: none;
}
.al-foot-contact a:hover { color: var(--al-acc); }
.al-foot-contact svg { width: 1.7rem; height: 1.7rem; flex: 0 0 auto; margin-top: .2rem; color: var(--al-acc); }
.al-hours { display: grid; gap: .35rem; font-family: var(--al-mono); font-size: 1.15rem; }
.al-hours__row { display: flex; justify-content: space-between; gap: 1.6rem; color: rgba(255,255,255,.62); }
.al-hours__row b { color: rgba(255,255,255,.9); font-weight: 500; }
.al-hours__row--closed { color: rgba(255,255,255,.35); }

/* ============================================================
   11. Sezioni homepage e pagine
   ============================================================ */

.al-sec { padding: 6.4rem 0; }
.al-sec--tight { padding: 4.4rem 0; }
.al-sec--panel { background: var(--al-panel); }
.al-sec--ink { background: var(--al-ink); color: rgba(255,255,255,.72); }
.al-sec__inner { max-width: var(--al-max); margin: 0 auto; padding: 0 2.4rem; }
@media screen and (max-width: 749px) {
  .al-sec { padding: 4.4rem 0; }
  .al-sec__inner { padding: 0 1.6rem; }
}

.al-head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.6rem 2.4rem; margin-bottom: 3rem; }
.al-head__txt { flex: 1 1 34rem; min-width: 0; }
.al-head__title {
  font-family: var(--al-display); font-weight: 800;
  font-size: clamp(2.4rem, 3.2vw, 3.4rem);
  letter-spacing: -.028em; text-transform: uppercase; color: var(--al-ink); margin: .8rem 0 0;
}
.al-sec--ink .al-head__title { color: #fff; }
.al-head__sub { margin: 1rem 0 0; font-size: 1.5rem; line-height: 1.62; color: var(--al-ink-2); max-width: 60ch; }
.al-sec--ink .al-head__sub { color: rgba(255,255,255,.68); }
.al-head__cta { margin-left: auto; }

/* eroe */
.al-hero { position: relative; background: var(--al-ink); color: #fff; overflow: hidden; }
.al-hero__media { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.al-hero__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center center;
}
/* base.css di Dawn nasconde ogni div vuoto (div:empty).
   Il velo e' un div vuoto: serve piu' specificita' per riportarlo in vita. */
.al-hero .al-hero__scrim {
  display: block;
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background: linear-gradient(180deg, rgba(20,24,26,.55) 0%, rgba(20,24,26,.72) 55%, rgba(20,24,26,.92) 100%);
}
.al-hero__inner {
  position: relative; max-width: var(--al-max); margin: 0 auto;
  padding: clamp(7rem, 13vw, 13rem) 2.4rem clamp(5rem, 8vw, 8rem);
}
.al-hero__eyebrow { color: var(--al-acc); margin-bottom: 1.8rem; }
.al-hero__title {
  font-family: var(--al-display); font-weight: 800;
  font-size: clamp(3.4rem, 7vw, 7.2rem); line-height: .98;
  letter-spacing: -.035em; text-transform: uppercase; color: #fff; margin: 0; max-width: 16ch;
}
.al-hero__lede {
  margin: 2.2rem 0 0; max-width: 54ch; font-size: clamp(1.55rem, 1.8vw, 1.8rem);
  line-height: 1.6; color: rgba(255,255,255,.8);
}
.al-hero__cta { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 3rem; }
.al-hero .button--secondary { color: #fff; border-color: rgba(255,255,255,.4); }
.al-hero .button--secondary:hover { background: rgba(255,255,255,.1); border-color: #fff; }
.al-hero__strip {
  position: relative; border-top: 1px solid rgba(255,255,255,.14);
  display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
}
.al-hero__stat { padding: 1.8rem 2.4rem; border-right: 1px solid rgba(255,255,255,.14); }
.al-hero__stat:last-child { border-right: 0; }
.al-hero__stat b {
  display: block; font-family: var(--al-mono); font-size: 1.9rem; font-weight: 500;
  color: #fff; letter-spacing: -.01em;
}
.al-hero__stat span { font-family: var(--al-mono); font-size: 1.05rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.5); }

/* i tre reparti */
.al-dept { display: grid; grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr)); gap: 1.6rem; }
.al-dept__card {
  position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1rem;
  background: var(--al-surface); border: 1px solid var(--al-line);
  padding: 2.6rem 2.2rem 2.4rem; text-decoration: none;
  transition: border-color var(--al-fast) var(--al-ease), transform var(--al-fast) var(--al-ease), box-shadow var(--al-fast) var(--al-ease);
}
.al-dept__card:hover { border-color: var(--al-acc); transform: translateY(-3px); box-shadow: 0 14px 32px rgba(20,24,26,.09); }
.al-dept__rule { position: absolute; top: 0; left: 0; right: 0; }
.al-dept__top { display: flex; align-items: center; gap: 1rem; margin-top: .8rem; flex-wrap: wrap; }
.al-chip {
  font-family: var(--al-mono); font-size: 1rem; letter-spacing: .11em; text-transform: uppercase;
  color: var(--al-acc); border: 1px solid var(--al-acc); padding: .35rem .8rem;
}
.al-chip--ink { color: var(--al-ink); border-color: var(--al-line); }
.al-dept__meta { font-family: var(--al-mono); font-size: 1.05rem; letter-spacing: .05em; color: var(--al-muted); }
.al-dept__title {
  font-family: var(--al-display); font-weight: 800; font-size: 2.4rem;
  text-transform: uppercase; letter-spacing: -.025em; color: var(--al-ink); margin: .4rem 0 0;
}
.al-dept__text { font-size: 1.4rem; line-height: 1.6; color: var(--al-ink-2); margin: 0; }
.al-dept__cta {
  margin-top: auto; padding-top: 1.2rem; font-size: 1.3rem; font-weight: 600;
  color: var(--al-acc); display: inline-flex; align-items: center; gap: .7rem;
}
.al-dept__cta svg { width: 1.4rem; height: 1.4rem; transition: transform var(--al-fast) var(--al-ease); }
.al-dept__card:hover .al-dept__cta svg { transform: translateX(4px); }

/* griglia categorie */
.al-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.2rem; }
.al-cat {
  display: flex; flex-direction: column; justify-content: space-between; gap: 2.4rem;
  background: var(--al-surface); border: 1px solid var(--al-line);
  padding: 1.8rem; min-height: 15rem; text-decoration: none;
  transition: all var(--al-fast) var(--al-ease);
}
.al-cat:hover { border-color: var(--al-acc); background: var(--al-acc); transform: translateY(-3px); }
.al-cat__n { font-family: var(--al-mono); font-size: 1.05rem; letter-spacing: .1em; color: var(--al-muted); }
.al-cat:hover .al-cat__n { color: rgba(255,255,255,.75); }
.al-cat__t {
  font-family: var(--al-display); font-weight: 700; font-size: 1.6rem;
  text-transform: uppercase; letter-spacing: -.012em; color: var(--al-ink); line-height: 1.15;
}
.al-cat:hover .al-cat__t { color: #fff; }
.al-cat__arrow { color: var(--al-line); transition: color var(--al-fast) var(--al-ease); }
.al-cat:hover .al-cat__arrow { color: #fff; }

/* marchi */
.al-brands { display: flex; flex-wrap: wrap; gap: .8rem; }
.al-brand {
  font-family: var(--al-display); font-weight: 700; font-size: 1.3rem; text-transform: uppercase;
  letter-spacing: .01em; padding: .9rem 1.5rem; border: 1px solid var(--al-line);
  color: var(--al-ink-2); text-decoration: none; background: var(--al-surface);
  transition: all var(--al-fast) var(--al-ease);
}
.al-brand:hover { border-color: var(--al-acc); color: var(--al-acc); transform: translateY(-2px); }

/* blocco negozio */
.al-store { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 1px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); }
@media screen and (max-width: 899px) { .al-store { grid-template-columns: 1fr; } }
.al-store__pane { background: var(--al-ink); padding: 3.2rem 2.8rem; }
.al-store__title {
  font-family: var(--al-display); font-weight: 800; font-size: clamp(2.2rem, 3vw, 3rem);
  text-transform: uppercase; letter-spacing: -.028em; color: #fff; margin: 1rem 0 1.4rem;
}
.al-store p { font-size: 1.45rem; line-height: 1.65; color: rgba(255,255,255,.7); margin: 0 0 2rem; max-width: 46ch; }
.al-store__actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.al-store .button--secondary { color: #fff; border-color: rgba(255,255,255,.35); }
.al-store .button--secondary:hover { background: rgba(255,255,255,.1); border-color: #fff; }

/* contenuto pagine statiche */
.al-prose { max-width: 74ch; }
.al-prose h2 { margin: 3.6rem 0 1.2rem; }
.al-prose h3 { margin: 2.6rem 0 .9rem; }
.al-prose p, .al-prose li { font-size: 1.5rem; line-height: 1.7; }
.al-prose ul { padding-left: 0; list-style: none; display: grid; gap: .7rem; }
.al-prose ul li { position: relative; padding-left: 1.9rem; }
.al-prose ul li::before { content:""; position: absolute; left: 0; top: .78em; width: .7rem; height: .7rem; background: var(--al-acc); }

.rte h2, .rte h3 { font-family: var(--al-display); }
.rte p, .rte li { font-size: 1.5rem; line-height: 1.68; }
.rte a { color: var(--al-acc); }

/* ============================================================
   12. Animazioni
   ============================================================ */

.al-anim .al-in { opacity: 0; transform: translateY(18px); }
.al-in.is-in {
  opacity: 1; transform: none;
  transition: opacity .62s var(--al-ease), transform .62s var(--al-ease);
  transition-delay: var(--al-d, 0ms);
}
@media (prefers-reduced-motion: reduce) {
  .al-in, .al-in.is-in { opacity: 1 !important; transform: none !important; transition: none !important; }
  .card, .al-dept__card, .al-cat, .al-brand, .button { transition: none !important; }
}

/* rivelazione nativa di Dawn, allineata alla nostra curva */
.scroll-trigger.animate--slide-in { animation-timing-function: var(--al-ease); }

/* ============================================================
   13. Rifiniture varie
   ============================================================ */

.section-header, .shopify-section { }
.title-wrapper-with-link { align-items: flex-end; border: 0; }
.title--primary, .collection__title .title {
  font-family: var(--al-display); font-weight: 800; text-transform: uppercase; letter-spacing: -.026em;
}
.pagination__list { gap: .4rem; }
.pagination__item {
  font-family: var(--al-mono); font-size: 1.3rem; border: 1px solid transparent;
  width: 4.4rem; height: 4.4rem;
}
.pagination__item:hover { border-color: var(--al-line); color: var(--al-acc); }
.pagination__item--current { border-color: var(--al-ink); color: var(--al-ink); font-weight: 600; }
.pagination__item--current:after { display: none; }

.newsletter-form__field-wrapper .field__input { background: var(--al-surface); }

/* nasconde selettori paese/lingua: store mono-mercato italiano */
.localization-selector, .footer__localization, .header__localization,
noscript form[action*="/localization"] { display: none !important; }

/* immagini fuori dal contesto card: mai deformate */
.media > img { transition: opacity var(--al-fast) var(--al-ease); }

/* tabelle generiche */
table { border-collapse: collapse; width: 100%; }
table th, table td { border-bottom: 1px solid var(--al-line-2); padding: .9rem 1.2rem .9rem 0; text-align: left; font-size: 1.4rem; }

/* barra “torna su” */
.al-top {
  position: fixed; right: 2rem; bottom: 2rem; z-index: 30;
  width: 4.4rem; height: 4.4rem; display: grid; place-items: center;
  background: var(--al-ink); color: #fff; border: 0; cursor: pointer;
  opacity: 0; pointer-events: none;
  transition: opacity var(--al-fast) var(--al-ease), background var(--al-fast) var(--al-ease);
}
.al-top.is-on { opacity: 1; pointer-events: auto; }
.al-top:hover { background: var(--al-acc); }
.al-top svg { width: 1.8rem; height: 1.8rem; }
@media screen and (max-width: 749px) { .al-top { right: 1.2rem; bottom: 1.2rem; } }

/* Pulsante WhatsApp, fisso in basso a destra.
   Quando c'e', il "torna su" sale sopra di lui invece di coprirlo. */
.al-wa {
  position: fixed; right: 2rem; bottom: 2rem; z-index: 31;
  width: 5.2rem; height: 5.2rem; border-radius: 50%;
  display: grid; place-items: center;
  background: #25D366; color: #fff; text-decoration: none;
  box-shadow: 0 .4rem 1.6rem rgba(0,0,0,.22);
  transition: transform var(--al-fast) var(--al-ease), box-shadow var(--al-fast) var(--al-ease);
}
.al-wa svg { width: 3rem; height: 3rem; }
.al-wa:hover { transform: translateY(-2px); box-shadow: 0 .6rem 2rem rgba(0,0,0,.3); }
.al-wa:focus-visible { outline: 3px solid var(--al-gold); outline-offset: 3px; }

body.ha-whatsapp .al-top { bottom: 8.2rem; }

@media screen and (max-width: 749px) {
  .al-wa { right: 1.2rem; bottom: 1.2rem; width: 4.8rem; height: 4.8rem; }
  .al-wa svg { width: 2.7rem; height: 2.7rem; }
  body.ha-whatsapp .al-top { bottom: 7rem; }
}
@media (prefers-reduced-motion: reduce) { .al-wa { transition: none; } }

.al-spec__note { margin-top: 1.6rem; font-size: 1.3rem; color: var(--al-muted); line-height: 1.6; }

/* ============================================================
   14. Correzioni dopo la prima verifica visiva
   ============================================================ */

/* Allineamento: Dawn usa 5rem di padding sopra i 990px, noi 2.4rem.
   Senza questo, le sezioni native e quelle su misura non hanno lo stesso margine. */
@media screen and (min-width: 750px) {
  .page-width { padding-left: 2.4rem; padding-right: 2.4rem; }
}
@media screen and (min-width: 990px) {
  .page-width,
  .page-width--narrow,
  .page-width-desktop { padding-left: 2.4rem; padding-right: 2.4rem; }
}
.page-width--narrow { max-width: 96rem; }

/* Titoli delle sezioni native allineati ai nostri */
.title,
.title--primary,
.collection__title .title,
.multicolumn .title,
.featured-collection .title,
.collection-list-title,
.related-products .related-products__heading,
.cart__heading {
  font-family: var(--al-display);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -.026em;
  color: var(--al-ink);
}
.title-wrapper--self-padded-tablet-down, .title-wrapper { margin-bottom: 2rem; }
.title-wrapper-with-link { margin-bottom: 2.6rem; padding-bottom: 0; }
.title-wrapper-with-link .link { margin-left: auto; }
.collection__description, .featured-collection .rte { color: var(--al-ink-2); max-width: 62ch; }

/* Griglia categorie: quattro per riga, altezze uguali */
.al-cats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media screen and (max-width: 1099px) { .al-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media screen and (max-width: 749px)  { .al-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.al-cat { min-height: 14rem; }
.al-cat__t { display: block; text-wrap: balance; }

/* Apertura: più contrasto sul testo, il fondo resta leggibile
   anche dove la foto è chiara */
.al-hero .al-hero__scrim {
  background:
    linear-gradient(90deg, rgba(20,24,26,.92) 0%, rgba(20,24,26,.72) 46%, rgba(20,24,26,.5) 100%),
    linear-gradient(180deg, rgba(20,24,26,.55) 0%, rgba(20,24,26,.55) 55%, rgba(20,24,26,.9) 100%);
}
.al-hero__lede { color: rgba(255,255,255,.88); }
.al-hero__title { text-shadow: 0 2px 24px rgba(0,0,0,.35); }

/* Icone header un filo più generose */
.header__icon .icon,
.header__icon--cart .icon,
.header__icon .svg-wrapper svg { width: 2.4rem; height: 2.4rem; }

/* Colonne dei servizi: i testi partono tutti dalla stessa riga */
.multicolumn-list__item { display: flex; flex-direction: column; }
.multicolumn-card__info { display: flex; flex-direction: column; gap: .8rem; padding: 0; }
.multicolumn-card__info > .h3 {
  min-height: 2lh;
  text-wrap: balance;
  font-size: 1.75rem;
  letter-spacing: -.018em;
  margin: 0;
}
.multicolumn-card__info .rte { margin: 0; font-size: 1.4rem; line-height: 1.6; color: var(--al-ink-2); }
@media screen and (max-width: 749px) { .multicolumn-card__info > .h3 { min-height: 0; } }

/* La barra servizio non deve rimanere appiccicata quando si scorre */
.shopify-section-header-sticky .al-barra-servizio { display: none; }

/* ============================================================
   15. Correzioni seconda passata
   ============================================================ */

/* Il pulsante di acquisto deve essere quello arancione */
.product-form__submit,
.product-form__submit.button--secondary {
  background: var(--al-acc) !important;
  border-color: var(--al-acc) !important;
  color: #fff !important;
}
.product-form__submit:not([disabled]):hover {
  background: var(--al-acc-dark) !important;
  border-color: var(--al-acc-dark) !important;
}
.product-form__submit[disabled] { opacity: .45; }
.shopify-payment-button__button--unbranded {
  background: var(--al-ink) !important;
  color: #fff !important;
  border-radius: 0 !important;
}
.shopify-payment-button__more-options {
  font-size: 1.25rem;
  color: var(--al-muted);
  text-underline-offset: .3em;
}

/* Dettagli prodotto spostati a tutta larghezza sotto galleria e acquisto */
.al-details {
  border-top: 1px solid var(--al-line);
  margin-top: 5rem;
  padding-top: 4rem;
}
.al-details .al-tabs { margin-top: 0; }
.al-details .al-tabs__panel { max-width: 92ch; }
.al-details .al-spec { max-width: 78rem; }
@media screen and (min-width: 990px) {
  .al-details .al-tabs__nav { max-width: none; }
}

/* Filtri per tecnica e marca, basati sui tag: funzionano senza app */
.al-filtri { border-top: 1px solid var(--al-line); margin-top: 2.4rem; padding-top: 2rem; }
.al-filtri__gruppo { display: flex; flex-wrap: wrap; align-items: baseline; gap: .8rem; margin-bottom: 1rem; }
.al-filtri__gruppo:last-child { margin-bottom: 0; }
.al-filtri__nome {
  font-family: var(--al-mono); font-size: 1.05rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--al-muted); min-width: 7rem;
}
.al-tag {
  font-family: var(--al-body); font-size: 1.22rem; font-weight: 500;
  padding: .6rem 1.1rem; border: 1px solid var(--al-line); background: var(--al-surface);
  color: var(--al-ink-2); text-decoration: none; white-space: nowrap;
  transition: all var(--al-fast) var(--al-ease);
}
.al-tag:hover { border-color: var(--al-acc); color: var(--al-acc); }
.al-tag.is-on {
  background: var(--al-acc); border-color: var(--al-acc); color: #fff;
  display: inline-flex; align-items: center; gap: .6rem;
}
.al-tag.is-on::after { content: "×"; font-size: 1.5rem; line-height: 1; opacity: .8; }
.al-tag--reset { border-style: dashed; color: var(--al-muted); }
@media screen and (max-width: 749px) {
  .al-filtri__gruppo { gap: .6rem; }
  .al-filtri__nome { min-width: 100%; margin-bottom: -.2rem; }
}

/* ============================================================
   16. Pagine statiche, 404, ricerca
   ============================================================ */

.main-page-title { margin-bottom: 2.4rem; }
.page-width--narrow .rte { max-width: 74ch; }
.page-width--narrow .rte h2 {
  font-size: 2.2rem; margin: 3.6rem 0 1.2rem; letter-spacing: -.02em;
}
.page-width--narrow .rte h3 { font-size: 1.8rem; margin: 2.6rem 0 .9rem; }
.page-width--narrow .rte p { margin: 0 0 1.4rem; }
.page-width--narrow .rte ul { padding-left: 0; list-style: none; display: grid; gap: .7rem; margin: 0 0 1.6rem; }
.page-width--narrow .rte ul li { position: relative; padding-left: 1.9rem; }
.page-width--narrow .rte ul li::before {
  content: ""; position: absolute; left: 0; top: .78em;
  width: .7rem; height: .7rem; background: var(--al-acc);
}

.al-404 { max-width: 68rem; padding: 8rem 0 9rem; }
.al-404__title {
  font-family: var(--al-display); font-weight: 800;
  font-size: clamp(3rem, 5vw, 5rem); letter-spacing: -.032em;
  text-transform: uppercase; color: var(--al-ink); margin: 1.4rem 0 1.6rem;
}
.al-404__text { font-size: 1.6rem; line-height: 1.65; color: var(--al-ink-2); margin: 0 0 2.8rem; }
.al-404__text a { color: var(--al-acc); font-weight: 600; }
.al-404__cerca { display: flex; gap: .8rem; margin-bottom: 2.4rem; }
.al-404__cerca .field__input { flex: 1 1 auto; height: 5.2rem; padding: 0 1.6rem; background: var(--al-panel-2); }
.al-404__link { display: flex; flex-wrap: wrap; gap: .8rem; }

/* Ricerca */
.template-search__header { padding-top: 4rem; }
.template-search__search { max-width: 62rem; }
.template-search .search__input.field__input { height: 5.4rem; }
.template-search__results .grid { margin-top: 2rem; }

/* ============================================================
   17. Rifiniture terza passata
   ============================================================ */

/* Dawn nasconde i placeholder perche' usa le etichette flottanti:
   nei nostri campi liberi invece servono */
.al-404__cerca .field__input::placeholder,
.al-hero .field__input::placeholder { opacity: 1; color: var(--al-muted); }

/* Occhiello dell'apertura: arancione piu' chiaro, si stacca sul fondo scuro */
.al-hero__eyebrow { color: #FF8552; }

/* Striscia dati: su mobile serve respiro sotto l'ultima riga */
@media screen and (max-width: 749px) {
  .al-hero__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .al-hero__stat { padding: 1.4rem 1.6rem; border-bottom: 1px solid rgba(255,255,255,.14); }
  .al-hero__stat:nth-child(2n) { border-right: 0; }
  .al-hero__stat:nth-last-child(-n+2) { border-bottom: 0; }
  .al-hero__strip { padding-bottom: .4rem; }
}

/* Blocco negozio: su mobile le due colonne diventano una */
@media screen and (max-width: 899px) {
  .al-store__pane { padding: 2.6rem 2rem; }
}

/* Filtri: su mobile scorrono in orizzontale invece di andare a capo
   occupando mezzo schermo */
@media screen and (max-width: 749px) {
  .al-siblings {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: .4rem;
    margin-right: -1.6rem;
    padding-right: 1.6rem;
  }
  .al-siblings::-webkit-scrollbar { display: none; }
  .al-filtri__gruppo {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    margin-right: -1.6rem;
    padding-right: 1.6rem;
  }
  .al-filtri__gruppo::-webkit-scrollbar { display: none; }
}

/* Menu mobile: stessa tipografia del resto */
.menu-drawer { border: 0; }
.menu-drawer__menu-item {
  font-family: var(--al-display);
  font-weight: 700;
  font-size: 1.7rem;
  text-transform: uppercase;
  letter-spacing: -.012em;
  color: var(--al-ink);
  padding: 1.4rem 2.4rem;
}
.menu-drawer__menu-item--active,
.menu-drawer__menu-item:hover { background: var(--al-panel); color: var(--al-acc); }
.menu-drawer__submenu .menu-drawer__menu-item {
  font-family: var(--al-body);
  font-weight: 500;
  font-size: 1.45rem;
  text-transform: none;
  letter-spacing: 0;
}
.menu-drawer__utility-links { background: var(--al-panel); padding: 2rem 2.4rem; }
.menu-drawer__account {
  font-family: var(--al-mono); font-size: 1.2rem; letter-spacing: .06em; text-transform: uppercase;
}

/* Ricerca: allineata a sinistra come il resto del sito */
.template-search__header { text-align: left; }
.template-search__header .title { margin-bottom: 1.6rem; }
.template-search__search { margin-left: 0; margin-right: 0; }
.template-search__search .search__input.field__input { padding-left: 1.6rem; }

/* ============================================================
   18. Marchio: header verde, oro come accento
   L'insegna del negozio e' verde e oro; l'header scuro fa da
   cornice al logo invece di combatterlo.
   ============================================================ */

.announcement-bar, .utility-bar { background: var(--al-green-900) !important; }
.al-service { color: rgba(247,243,232,.72); }
.al-service b { color: var(--al-cream); }
.al-service a { color: rgba(247,243,232,.72); }
.al-service a:hover { color: var(--al-gold); }
.al-service svg { color: var(--al-gold); }
.al-service__sep { background: rgba(247,243,232,.25); }

.header-wrapper {
  background: var(--al-green-800) !important;
  border-bottom: 1px solid rgba(201,162,39,.28) !important;
}
.shopify-section-header-sticky .header-wrapper { box-shadow: 0 8px 24px rgba(15,31,23,.28); }
.header { background: transparent; }

.header__heading-link { padding: 0; }
.header__heading-logo { max-height: 6.4rem; width: auto; }
@media screen and (max-width: 989px) { .header__heading-logo { max-height: 4.6rem; } }

.header__menu-item { color: rgba(247,243,232,.82); }
.header__menu-item:hover, .header__menu-item:hover span { color: var(--al-gold); }
.header__active-menu-item { color: var(--al-cream); }
.header__inline-menu > .list-menu > li > details[open] > summary.header__menu-item,
.header__inline-menu > .list-menu > li > details > summary.header__menu-item:hover,
.header__inline-menu > .list-menu > li > a.header__menu-item:hover,
.header__inline-menu > .list-menu > li > a.header__active-menu-item {
  box-shadow: inset 0 -2px 0 var(--al-gold);
}
.header__icon, .header__icon--cart { color: var(--al-cream); }
.header__icon:hover { color: var(--al-gold); }
.cart-count-bubble { background: var(--al-gold); color: var(--al-green-900); }
.header__icon .icon-caret, .header__menu-item .icon-caret { color: currentColor; }
.menu-drawer-container .header__icon--menu { color: var(--al-cream); }

/* il pannello del mega menu resta chiaro: si legge meglio */
.mega-menu__content { border-top: 1px solid rgba(201,162,39,.3); }
.header__submenu { border-top: 2px solid var(--al-gold); }

/* ricerca a tendina sopra l'header scuro */
.search-modal { background: var(--al-green-800); border-bottom: 1px solid rgba(201,162,39,.3); }
.search-modal .search__input.field__input {
  background: rgba(247,243,232,.06); border-color: rgba(247,243,232,.28); color: var(--al-cream);
}
.search-modal .search__input.field__input::placeholder { color: rgba(247,243,232,.5); }
.search-modal .field__label { color: rgba(247,243,232,.6); }
.search-modal .modal__close-button, .search-modal .search__button { color: var(--al-cream); }

/* --- l'oro dove serve --- */
.al-label { color: var(--al-muted); }
.al-hero__eyebrow { color: var(--al-gold); }
.al-rule, .al-dept__rule {
  background:
    repeating-linear-gradient(90deg, var(--al-green-700) 0 1px, transparent 1px 9px) bottom / 100% .4rem no-repeat,
    linear-gradient(var(--al-gold), var(--al-gold)) top / 100% .2rem no-repeat;
}
.al-chip { color: var(--al-gold-dark); border-color: var(--al-gold-dark); }
.card__badge .badge { background: var(--al-gold); color: var(--al-green-900); }
.price__sale .price-item--sale { color: var(--al-gold-dark); }
/* NB: niente selettore .link generico — Dawn lo mette anche sulle voci
   di menu e sul logo, e finirebbero tutte in oro. */
.al-dept__cta, .rte a, .al-404__text a, .al-assure__txt a,
.link-with-underline, .collection__description a { color: var(--al-gold-dark); }
.al-dept__cta { font-weight: 600; }
.pdp-price, .product .price { color: var(--al-ink); }
.al-tabs__btn[aria-selected="true"] { border-bottom-color: var(--al-gold); }
.al-tag.is-on { background: var(--al-green-700); border-color: var(--al-green-700); }
.al-sibling[aria-current="page"], .al-sibling.is-active { background: var(--al-green-700); border-color: var(--al-green-700); }
.facets__display, predictive-search .predictive-search { border-top-color: var(--al-gold); }
.al-cat:hover { background: var(--al-green-700); border-color: var(--al-green-700); }
.al-store__title, .al-hero__title { color: var(--al-cream); }
.al-sec--ink { background: var(--al-green-900); }
.al-store__pane { background: var(--al-green-900); }
.al-store { background: rgba(201,162,39,.22); border-color: rgba(201,162,39,.22); }
.footer { background: var(--al-green-900) !important; }
.footer-block__heading, .footer .footer-block__heading { color: var(--al-gold); opacity: .85; }
.footer .list-menu__item--link:hover, .footer-block__details-content .list-menu__item--link:hover { color: var(--al-gold); }
.al-foot-contact svg { color: var(--al-gold); }
.al-top { background: var(--al-green-800); }
.al-top:hover { background: var(--al-gold); color: var(--al-green-900); }
.al-brand:hover { border-color: var(--al-gold-dark); color: var(--al-gold-dark); }
.product-form__input input[type='radio']:checked + label { background: var(--al-green-700); border-color: var(--al-green-700); }
.al-stock::before { background: var(--al-ok); }
.al-hero .al-hero__scrim {
  background:
    linear-gradient(90deg, rgba(15,31,23,.95) 0%, rgba(15,31,23,.88) 38%, rgba(15,31,23,.62) 100%),
    linear-gradient(180deg, rgba(15,31,23,.45) 0%, rgba(15,31,23,.55) 50%, rgba(15,31,23,.9) 100%);
}

/* wordmark di riserva (se il logo non carica): sull'header scuro va in crema */
.al-wordmark__name { color: var(--al-cream); }
.al-wordmark__year { color: var(--al-gold); }

/* ============================================================
   19. Correzioni marchio
   ============================================================ */

/* Logo: piu' presente, con aria attorno */
.header { padding-top: 1.4rem; padding-bottom: 1.4rem; }
.header__heading-logo { max-height: 7.2rem; }
@media screen and (max-width: 989px) { .header__heading-logo { max-height: 5rem; } }

/* Sull'apertura scura l'azione principale va in oro: il verde
   sparirebbe dentro il velo */
.al-hero .button:not(.button--secondary) {
  background: var(--al-gold);
  border-color: var(--al-gold);
  color: var(--al-green-900);
}
.al-hero .button:not(.button--secondary):hover {
  background: #DDB63C;
  border-color: #DDB63C;
  color: var(--al-green-900);
}
.al-hero .button--secondary { color: var(--al-cream); border-color: rgba(247,243,232,.45); }
.al-hero .button--secondary:hover { background: rgba(247,243,232,.12); border-color: var(--al-cream); }
.al-store .button:not(.button--secondary) {
  background: var(--al-gold); border-color: var(--al-gold); color: var(--al-green-900);
}
.al-store .button:not(.button--secondary):hover { background: #DDB63C; border-color: #DDB63C; }
.al-hero__stat b { color: var(--al-cream); }
.al-hero__strip { border-top-color: rgba(201,162,39,.28); }
.al-hero__stat { border-right-color: rgba(201,162,39,.22); }

/* Reparti con foto */
.al-dept__card { padding: 0; }
.al-dept__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--al-panel); }
.al-dept__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s var(--al-ease); }
.al-dept__card:hover .al-dept__media img { transform: scale(1.05); }
.al-dept__card > .al-dept__rule { position: static; order: -1; }
.al-dept__card > .al-dept__media { order: -2; }
.al-dept__top,
.al-dept__title,
.al-dept__text,
.al-dept__cta { padding-left: 2.2rem; padding-right: 2.2rem; }
.al-dept__top { margin-top: 1.8rem; }
.al-dept__cta { padding-bottom: 2.2rem; }
.al-dept__card:not(:has(.al-dept__media)) .al-dept__top { margin-top: 2.4rem; }

/* ============================================================
   20. Sezioni native rimesse in uso (testo, testo+immagine, storia)
   ============================================================ */

.rich-text__wrapper { width: 100%; max-width: none; }
.rich-text__blocks { max-width: 78ch; margin-left: 0; }
.rich-text__heading {
  font-family: var(--al-display); font-weight: 800;
  font-size: clamp(2.2rem, 3vw, 3.2rem); letter-spacing: -.028em;
  text-transform: uppercase; margin: 0 0 1.6rem;
}
.rich-text__text { font-size: 1.55rem; line-height: 1.68; color: var(--al-ink-2); }
.rich-text__text p { margin: 0 0 1.4rem; }
.rich-text__text p:last-child { margin-bottom: 0; }
.rich-text .button { margin-top: 2.4rem; }
.color-scheme-3 .rich-text__heading, .color-scheme-3 .rich-text__text { color: var(--al-cream); }
.color-scheme-3 .rich-text__text { color: rgba(247,243,232,.78); }

.image-with-text__grid { gap: 4rem; align-items: center; }
.image-with-text__media {
  background: var(--al-panel);
  border: 1px solid var(--al-line);
  border-radius: 0;
  min-height: 0;
}
.image-with-text__media img { object-fit: cover; }
.image-with-text__content {
  padding: 0 !important;
  background: transparent !important;
  max-width: 62ch;
}
.image-with-text__heading {
  font-family: var(--al-display); font-weight: 800;
  font-size: clamp(2.1rem, 2.8vw, 3rem); letter-spacing: -.026em;
  text-transform: uppercase; margin: 0 0 1.4rem;
}
.image-with-text__text { font-size: 1.5rem; line-height: 1.68; color: var(--al-ink-2); }
.image-with-text__text p { margin: 0 0 1.2rem; }
.image-with-text .button { margin-top: 2rem; }

/* La storia: righe alternate immagine/testo */
.multirow__inner { gap: 0; }
.multirow .multirow__item { border-bottom: 1px solid var(--al-line); }
.multirow .multirow__item:last-child { border-bottom: 0; }
.multirow__item .image-with-text__media {
  background: var(--al-panel);
  border: 1px solid var(--al-line);
}
.multirow__item .image-with-text__content { padding: 3.2rem 0 !important; }
.multirow__item .caption-with-letter-spacing,
.multirow__item .subtitle {
  font-family: var(--al-mono); font-size: 1.1rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--al-gold-dark); margin-bottom: 1rem;
}
@media screen and (max-width: 749px) {
  .image-with-text__grid { gap: 2rem; }
  .multirow__item .image-with-text__content { padding: 2.4rem 0 !important; }
}

/* Colonne: se non c'e' immagine, niente spazio vuoto */
.multicolumn-card__image-wrapper:empty { display: none; }
.multicolumn-list__item .multicolumn-card { background: transparent; }

/* ============================================================
   21. Impaginazione dei blocchi di testo recuperati
   ============================================================ */

/* Testo lungo su due colonne: titolo a sinistra, testo a destra.
   Da soli, questi blocchi lasciavano vuota meta' pagina. */
@media screen and (min-width: 990px) {
  .rich-text .rich-text__blocks {
    max-width: none !important;
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    column-gap: 6rem;
    max-width: none;
    align-items: start;
    text-align: left;
  }
  .rich-text__blocks > .rich-text__heading { grid-column: 1; grid-row: 1; margin: 0; }
  .rich-text__blocks > *:not(.rich-text__heading) { grid-column: 2; }
  .rich-text__blocks > .rich-text__text { grid-row: 1; }
}
.rich-text__blocks > * { text-align: left; }

/* Le foto verticali non devono occupare mezzo schermo in altezza */
.image-with-text__media--adapt { padding-bottom: 0 !important; height: auto; }
.image-with-text__media {
  aspect-ratio: 4 / 3;
  max-height: 46rem;
}
.image-with-text__media img {
  position: relative !important;
  width: 100%; height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 749px) {
  .image-with-text__media { aspect-ratio: 3 / 2; max-height: 32rem; }
}

/* Storia: righe con foto piu' contenute */
.multirow__item .image-with-text__media { aspect-ratio: 4 / 3; max-height: 40rem; }

/* ============================================================
   22. Menu mobile: colori corretti sul fondo chiaro
   ============================================================ */

.menu-drawer { background: var(--al-surface); }
.menu-drawer__inner-container { background: var(--al-surface); }
.menu-drawer__navigation { padding-top: 1.2rem; }
.menu-drawer .menu-drawer__menu-item,
.menu-drawer .menu-drawer__menu-item.link,
.menu-drawer summary.menu-drawer__menu-item { color: var(--al-ink); }
.menu-drawer .menu-drawer__menu-item:hover,
.menu-drawer .menu-drawer__menu-item--active {
  color: var(--al-acc);
  background: var(--al-panel);
  text-decoration: none;
}
.menu-drawer__submenu .menu-drawer__menu-item { color: var(--al-ink-2); }
.menu-drawer__submenu .menu-drawer__menu-item:hover { color: var(--al-acc); }
.menu-drawer__close-button { color: var(--al-ink); font-family: var(--al-body); font-size: 1.4rem; }
.menu-drawer__utility-links .menu-drawer__account { color: var(--al-ink); }
.menu-drawer__utility-links .menu-drawer__account:hover { color: var(--al-acc); }
.menu-drawer__menu-item .icon-arrow, .menu-drawer__menu-item .icon-caret { color: var(--al-gold-dark); }

/* voci di menu in alto: crema, non oro */
.header__inline-menu .header__menu-item,
.header__inline-menu .header__menu-item.link { color: rgba(247,243,232,.85); }
.header__inline-menu .header__menu-item:hover,
.header__inline-menu .header__active-menu-item { color: var(--al-gold); }
.header__heading-link.link { color: var(--al-cream); }

/* tendina chiara sotto l'header scuro */
.header__submenu .header__menu-item,
.header__submenu .header__menu-item.link { color: var(--al-ink-2); }
.header__submenu .header__menu-item:hover { color: var(--al-acc); }
.mega-menu__content .mega-menu__link.link { color: inherit; }
.mega-menu__link--level-2.link { color: var(--al-ink); }
.mega-menu__content .list-unstyled .mega-menu__link.link { color: var(--al-ink-2); }
.mega-menu__content .list-unstyled .mega-menu__link.link:hover { color: var(--al-acc); }

/* ============================================================
   23. Inquadratura delle foto con persone
   Le foto verticali dentro riquadri orizzontali venivano tagliate
   al centro, e le teste finivano fuori. Qui ogni foto ha il suo
   punto di messa a fuoco verticale, misurato sull'originale.
   ============================================================ */

/* Riquadri piu' alti: una foto di persona sta meglio in verticale */
.image-with-text__media { aspect-ratio: 4 / 5; max-height: 58rem; }
@media screen and (max-width: 749px) {
  .image-with-text__media { aspect-ratio: 4 / 3; max-height: 34rem; }
}
.multirow__item .image-with-text__media { aspect-ratio: 4 / 3; max-height: 42rem; }

/* --- punti di messa a fuoco, misurati foto per foto --- */
img[src*="71968bd8"] { object-position: center 38% !important; }   /* pescatore in barca */
img[src*="73D54387"] { object-position: center 26% !important; }   /* ragazzo con le due canne */
img[src*="49075F10"] { object-position: center 24% !important; }   /* le tre generazioni */
img[src*="IMG_0028"] { object-position: center 32% !important; }   /* Enrico e Matilde */
img[src*="Immagine_PNG_5"] { object-position: center 34% !important; } /* la premiazione */
img[src*="30AC85FE"] { object-position: center 56% !important; }   /* uomo al banco */
img[src*="IMG_1523"] { object-position: center 50% !important; }   /* consegna attestato */
img[src*="IMG_0022"] { object-position: center 32% !important; }   /* uomo fra le canne */
img[src*="d461731e"] { object-position: center 48% !important; }   /* ragazzo ai fuochi */
img[src*="B14FB7C9"] { object-position: center 40% !important; }   /* espositore fuochi */
img[src*="6FC53E0F"] { object-position: center 45% !important; }   /* scaffale fuochi */

/* La foto d'archivio e' una scansione di due stampe: non va tagliata */
.multirow__item .image-with-text__media:has(img[src*="IMG_0015"]) {
  background: var(--al-green-900);
  aspect-ratio: 4 / 3;
}
img[src*="IMG_0015"] {
  object-fit: contain !important;
  object-position: center center !important;
  padding: 1.6rem;
}

/* ============================================================
   24. Icona carrello
   Dawn disegna il carrello dentro un viewBox 40x40 mentre lente e
   account stanno in 18x19: a parita' di dimensione il carrello
   sembra la meta' degli altri. Qui si riallineano otticamente.
   ============================================================ */
.header__icon--cart .icon,
.header__icon--cart .svg-wrapper svg { width: 3.8rem; height: 3.8rem; }
.header__icon--cart { position: relative; }
.cart-count-bubble { top: .2rem; right: .2rem; }
@media screen and (max-width: 989px) {
  .header__icon--cart .icon,
  .header__icon--cart .svg-wrapper svg { width: 3.4rem; height: 3.4rem; }
}

/* La scansione d'archivio: riquadro basso e largo, niente vuoti inutili */
.image-with-text__media:has(img[src*="IMG_0015"]) {
  aspect-ratio: 16 / 10 !important;
  max-height: 34rem !important;
  background: var(--al-panel) !important;
}

/* ============================================================
   25. Schede prodotto: respiro e altezze coerenti
   ============================================================ */

/* i testi non toccano mai il bordo, nemmeno nelle varianti di Dawn */
.card__content > .card__information,
.card-wrapper .card__information { padding-left: 1.6rem; padding-right: 1.6rem; }
.card__inner .card__content > .card__information { padding-left: 1rem; padding-right: 1rem; }

/* titolo su due righe massimo, senza tagliare a metà parola */
.card__heading a {
  display: block;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}
.card--standard > .card__content .card__heading {
  min-height: 3.4rem;
  margin-bottom: .5rem;
}
.card--standard > .card__content .card-information { display: flex; flex-direction: column; gap: .2rem; }
.card__vendor,
.card-information > .caption-with-letter-spacing { margin-bottom: .2rem; }
.card__content .price { margin-top: .8rem; }
.price__container { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: baseline; }

/* le celle della griglia hanno tutte la stessa altezza */
.product-grid .grid__item, .grid--4-col-desktop .grid__item { display: flex; }
.product-grid .card-wrapper, .grid__item > .card-wrapper { width: 100%; display: flex; flex-direction: column; }
.product-grid .card { flex: 1 1 auto; display: flex; flex-direction: column; }
.card--standard > .card__content { margin-top: auto; }

@media screen and (max-width: 749px) {
  .card--standard > .card__content > .card__information { padding: 1.2rem 1.2rem 1.4rem; }
  .card__content > .card__information,
  .card-wrapper .card__information { padding-left: 1.2rem; padding-right: 1.2rem; }
  .pc-t, .card__heading { font-size: 1.3rem; }
}

/* ============================================================
   26. Domande frequenti
   ============================================================ */

.al-faq { border-top: 1px solid var(--al-line); max-width: 96rem; }
.al-faq__voce { border-bottom: 1px solid var(--al-line); }
.al-faq__d {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem;
  padding: 2rem 0; cursor: pointer; list-style: none;
  font-family: var(--al-display); font-weight: 700; font-size: 1.65rem;
  letter-spacing: -.012em; color: var(--al-ink); line-height: 1.35;
  transition: color var(--al-fast) var(--al-ease);
}
.al-faq__d::-webkit-details-marker { display: none; }
.al-faq__d:hover { color: var(--al-acc); }
.al-faq__ico {
  flex: 0 0 auto; width: 2rem; height: 2rem; margin-top: .1rem;
  color: var(--al-gold-dark);
  transition: transform var(--al-fast) var(--al-ease);
}
.al-faq__voce[open] .al-faq__ico { transform: rotate(180deg); }
.al-faq__voce[open] .al-faq__d { color: var(--al-acc); }
.al-faq__r { padding: 0 4rem 2.4rem 0; max-width: 78ch; animation: alFade .3s var(--al-ease); }
.al-faq__r p { font-size: 1.5rem; line-height: 1.68; margin: 0 0 1.2rem; color: var(--al-ink-2); }
.al-faq__r p:last-child { margin-bottom: 0; }
.al-faq__r ul { margin: 0 0 1.2rem; padding-left: 0; list-style: none; display: grid; gap: .6rem; }
.al-faq__r li { position: relative; padding-left: 1.8rem; font-size: 1.5rem; line-height: 1.6; }
.al-faq__r li::before { content: ""; position: absolute; left: 0; top: .72em; width: .7rem; height: .7rem; background: var(--al-gold); }
.al-faq__r a { color: var(--al-gold-dark); font-weight: 600; }
.al-faq__coda {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.6rem 2.4rem;
  margin-top: 3.2rem; padding: 2.4rem; background: var(--al-panel); border: 1px solid var(--al-line);
  max-width: 96rem;
}
.al-faq__coda p { margin: 0; font-size: 1.55rem; color: var(--al-ink); font-weight: 500; }
@media screen and (max-width: 749px) {
  .al-faq__d { font-size: 1.5rem; padding: 1.6rem 0; }
  .al-faq__r { padding-right: 0; }
}

/* ============================================================
   27. Mappa del negozio
   ============================================================ */

.al-mappa {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 1px;
  background: var(--al-line);
  border: 1px solid var(--al-line);
}
@media screen and (max-width: 899px) { .al-mappa { grid-template-columns: 1fr; } }

.al-mappa__tela { position: relative; background: var(--al-panel); min-height: 38rem; }
.al-mappa__foto {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s var(--al-ease);
}
.al-mappa__scudo:hover .al-mappa__foto { transform: scale(1.03); }
.al-mappa__scudo {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  overflow: hidden;
  display: flex; align-items: flex-end; justify-content: center;
  padding: 2rem; text-decoration: none;
  background: linear-gradient(180deg, rgba(15,31,23,0) 55%, rgba(15,31,23,.28) 100%);
  transition: background var(--al-fast) var(--al-ease);
}
.al-mappa__scudo:hover { background: rgba(15,31,23,.24); }
.al-mappa__scudo:focus-visible { outline: 3px solid var(--al-gold); outline-offset: -3px; }
.al-mappa__pin {
  display: inline-flex; align-items: center; gap: .8rem;
  background: var(--al-green-900); color: var(--al-cream);
  font-family: var(--al-body); font-size: 1.3rem; font-weight: 600;
  letter-spacing: .04em; padding: 1.1rem 1.8rem;
  box-shadow: 0 6px 20px rgba(15,31,23,.28);
  transition: background var(--al-fast) var(--al-ease), transform var(--al-fast) var(--al-ease);
}
.al-mappa__pin svg { width: 1.8rem; height: 1.8rem; color: var(--al-gold); }
.al-mappa__scudo:hover .al-mappa__pin { background: var(--al-gold); color: var(--al-green-900); transform: translateY(-2px); }
.al-mappa__scudo:hover .al-mappa__pin svg { color: var(--al-green-900); }

.al-mappa__scheda { background: var(--al-surface); padding: 3rem 2.6rem; display: flex; flex-direction: column; gap: 1.2rem; }
.al-mappa__ind {
  font-family: var(--al-display); font-weight: 700; font-size: 2rem;
  line-height: 1.28; letter-spacing: -.018em; color: var(--al-ink); margin: 0;
}
.al-mappa__contatti { margin: .4rem 0 0; }
.al-mappa__contatti a { color: var(--al-ink-2); }
.al-mappa__contatti a:hover { color: var(--al-acc); }
.al-mappa__contatti svg { color: var(--al-gold-dark); }
.al-mappa__nota { font-size: 1.35rem; line-height: 1.6; color: var(--al-muted); margin: .4rem 0 0; }
.al-mappa__azioni { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: auto; padding-top: 1.6rem; }

@media screen and (max-width: 749px) {
  .al-mappa__tela, .al-mappa__frame { min-height: 28rem; }
  .al-mappa__scheda { padding: 2.4rem 2rem; }
}

/* ============================================================
   28. Numeri che si contano da soli
   ============================================================ */

.al-hero__stat b { font-variant-numeric: tabular-nums; }
.al-conta { display: inline-block; }
@media (prefers-reduced-motion: reduce) { .al-conta { transition: none !important; } }


/* Nella scheda mappa il testo dei contatti e' su fondo chiaro:
   il colore crema del footer qui non si legge. */
.al-mappa__contatti a,
.al-mappa__contatti a span,
.al-mappa__contatti span { color: var(--al-ink-2); }
.al-mappa__contatti a:hover,
.al-mappa__contatti a:hover span { color: var(--al-acc); }
.al-mappa__pin { position: relative; z-index: 2; }

/* ============================================================
   29. Accessibilità: contrasto, aree toccabili, titoli
   ============================================================ */

/* occhiello su fondo verde scuro: oro, non verde su verde */
.al-label--oro { color: var(--al-gold); }

/* il logo nell'header non e' piu' un h1: il titolo di pagina
   e' quello del contenuto. Lo stile resta identico. */
.header__heading { margin: 0; font-size: inherit; }

/* aree toccabili almeno 44px sul telefono */
@media (pointer: coarse) {
  .al-service a,
  .menu-drawer__utility-links a,
  .footer .list-menu__item--link,
  .list-social__link { min-height: 4.4rem; display: inline-flex; align-items: center; }
  .al-tag, .al-sibling { min-height: 4rem; display: inline-flex; align-items: center; }
}

/* la sottolineatura dei link nel testo aiuta chi non distingue i colori */
.rte a, .al-faq__r a, .al-assure__txt a, .al-404__text a { text-decoration: underline; text-underline-offset: .25em; }

/* stato di focus sempre visibile, anche sui fondi scuri */
.header-wrapper :focus-visible,
.footer :focus-visible,
.al-sec--ink :focus-visible,
.al-hero :focus-visible { outline-color: var(--al-gold) !important; }

/* Sui fondi scuri l'oro va nella versione chiara, altrimenti il
   contrasto scende sotto la soglia (3.4 invece di 4.5). */
.footer .rte a,
.footer .footer-block__details-content a,
.al-sec--ink .rte a,
.al-sec--ink a:not(.button):not(.al-mappa__scudo),
.color-scheme-3 .rte a,
.al-store a:not(.button) { color: var(--al-gold); }
.footer .rte a:hover,
.al-sec--ink a:not(.button):hover { color: #E0BC4E; }

/* La nuova foto del banco armeria: il fucile sta nella meta' bassa */
img[src*="armeria-banco-benelli"] { object-position: center 58% !important; }

/* ============================================================
   30. Piu' aria fra testi e bordo della scheda prodotto
   ============================================================ */

.card--standard > .card__content > .card__information,
.card__content > .card__information,
.card-wrapper .card__information {
  padding-left: 2.2rem !important;
  padding-right: 2.2rem !important;
}
.card--standard > .card__content > .card__information {
  padding-top: 1.9rem !important;
  padding-bottom: 2.1rem !important;
}
.card__inner .card__content > .card__information {
  padding-left: 1.2rem !important;
  padding-right: 1.2rem !important;
}
.card--standard > .card__content .card__heading { margin-bottom: .7rem; }
.card__content .price { margin-top: 1rem; }

@media screen and (max-width: 749px) {
  .card--standard > .card__content > .card__information,
  .card__content > .card__information,
  .card-wrapper .card__information {
    padding-left: 1.8rem !important;
    padding-right: 1.8rem !important;
  }
  .card--standard > .card__content > .card__information {
    padding-top: 1.6rem !important;
    padding-bottom: 1.8rem !important;
  }
}

/* Stesso respiro anche nel carrello a scomparsa e nella ricerca istantanea */
.cart-item__details { padding-right: 1.2rem; }
.predictive-search__item { padding-left: 2rem; padding-right: 2rem; }

/* ============================================================
   31. Voce diretta alla pagina del reparto
   Dawn trasforma in interruttore le voci che hanno un sottomenu:
   smettono di essere link. La prima riga di ogni tendina porta
   quindi alla pagina del reparto, ed e' segnata in oro.
   ============================================================ */

/* mega menu: prima colonna = pagina del reparto */
.mega-menu__list > li:first-child > .mega-menu__link--level-2 {
  color: var(--al-gold-dark);
  border-bottom-color: var(--al-gold);
  display: inline-flex;
  align-items: center;
  gap: .7rem;
}
.mega-menu__list > li:first-child > .mega-menu__link--level-2::after {
  content: "→";
  font-family: var(--al-body);
  font-weight: 400;
  transition: transform var(--al-fast) var(--al-ease);
}
.mega-menu__list > li:first-child > .mega-menu__link--level-2:hover { color: var(--al-acc); }
.mega-menu__list > li:first-child > .mega-menu__link--level-2:hover::after { transform: translateX(4px); }

/* tendina semplice (Armeria, Contatti): prima voce evidenziata */
.header__submenu > li:first-child > .header__menu-item {
  color: var(--al-gold-dark);
  font-weight: 600;
  border-bottom: 1px solid var(--al-line-2);
  margin-bottom: .4rem;
  padding-bottom: 1.1rem;
}
.header__submenu > li:first-child > .header__menu-item:hover { color: var(--al-acc); }

/* menu mobile: stessa logica nel cassetto */
.menu-drawer__submenu .menu-drawer__menu-item:first-child,
.menu-drawer__submenu li:first-child > .menu-drawer__menu-item {
  color: var(--al-gold-dark);
  font-weight: 600;
}

/* ============================================================
   32. Marchi presenti solo in negozio
   Non hanno prodotti online: restano scritti ma non cliccabili,
   cosi' nessuno finisce su una ricerca vuota.
   ============================================================ */

.al-brands__negozio { margin-top: 2.4rem; }
.al-brands__etichetta { display: block; margin-bottom: 1rem; color: var(--al-gold-dark); }
.al-brand--negozio {
  background: var(--al-panel);
  border-style: dashed;
  border-color: var(--al-line);
  color: var(--al-ink-2);
  cursor: default;
}
.al-brand--negozio:hover {
  transform: none;
  border-color: var(--al-line);
  color: var(--al-ink-2);
}

/* ============================================================
   33. Foto piccole: meglio nitide che grandi
   Quando l'originale e' piu' piccolo del riquadro, la foto resta
   alla sua dimensione invece di essere stirata. Il riquadro si
   stringe di conseguenza, cosi' non resta mezzo vuoto.
   ============================================================ */

}
