/* ==========================================================================
   CAVALLINI - child theme di Hummingbird
   Look "Officina isometrica" (mondo B) - livello globale (Fase 1)
   Questo foglio si sovrappone al theme.css ereditato da hummingbird.
   Strategia: ritinta delle variabili Bootstrap 5.3 usate da hummingbird
   + override di identita' (fondo blueprint, Bricolage, bottoni, card,
   header, footer). Accessibilita': rosso testo = #C10016 (5.3:1);
   il rosso vivo #F1263B e' riservato SOLO alle facce dei cubi isometrici.
   ========================================================================== */

/* ---- Font display self-hosted (Bricolage Grotesque) --------------------- */
@font-face{
  font-family:'Bricolage';
  font-weight:500;
  font-style:normal;
  font-display:swap;
  src:url("../fonts/bricolage500.woff2") format("woff2");
}
@font-face{
  font-family:'Bricolage';
  font-weight:800;
  font-style:normal;
  font-display:swap;
  src:url("../fonts/bricolage800.woff2") format("woff2");
}

/* ---- Design token mondo B + ritinta Bootstrap --------------------------- */
:root,
:root[data-bs-theme="light"]{
  /* palette mondo B */
  --cll-paper:#E7EAEE;
  --cll-paper-2:#DEE2E7;
  --cll-card:#F4F6F8;
  --cll-ink:#14181F;
  --cll-ink-soft:#4C5462;
  --cll-ink-dim:#5C646F;
  --cll-red:#C10016;          /* rosso TESTO/azione accessibile (5.3:1) */
  --cll-red-deep:#AE0014;
  --cll-red-vivid:#F1263B;    /* SOLO facce cubi, mai testo su chiaro */
  --cll-line:#C6CCD5;
  --cll-grid:rgba(90,110,140,.10);
  --cll-disp:'Bricolage','Helvetica Neue',Helvetica,Arial,sans-serif;
  --cll-sans:'Helvetica Neue',Helvetica,Arial,system-ui,sans-serif;
  --cll-mono:ui-monospace,'SF Mono','Cascadia Mono',Menlo,Consolas,monospace;

  /* --- ritinta variabili Bootstrap di hummingbird --- */
  --bs-primary:#C10016;
  --bs-primary-rgb:193,0,22;
  --bs-primary-text-emphasis:#8A0010;
  --bs-primary-bg-subtle:#F6DDE0;
  --bs-primary-border-subtle:#E7A8AF;

  --bs-body-bg:#E7EAEE;
  --bs-body-bg-rgb:231,234,238;
  --bs-body-color:#14181F;
  --bs-body-color-rgb:20,24,31;
  --bs-emphasis-color:#14181F;
  --bs-secondary-color:rgba(76,84,98,.9);
  --bs-tertiary-color:rgba(92,100,111,.85);
  --bs-tertiary-bg:#F4F6F8;
  --bs-secondary-bg:#DEE2E7;

  --bs-border-color:#C6CCD5;
  --bs-border-color-translucent:rgba(20,24,31,.14);

  --bs-link-color:#14181F;
  --bs-link-color-rgb:20,24,31;
  --bs-link-hover-color:#C10016;
  --bs-link-hover-color-rgb:193,0,22;

  --bs-border-radius:10px;
  --bs-border-radius-sm:8px;
  --bs-border-radius-lg:14px;
  --bs-border-radius-xl:16px;

  --bs-font-sans-serif:'Helvetica Neue',Helvetica,Arial,system-ui,sans-serif;

  color-scheme:light;
}

/* Il mondo B e' un mondo chiaro deliberato: neutralizza l'eventuale
   auto dark di hummingbird lato front, senza toccarne il codice. */
:root[data-bs-theme="dark"]{
  --bs-body-bg:#E7EAEE;
  --bs-body-color:#14181F;
  --bs-border-color:#C6CCD5;
  --bs-primary:#C10016;
  --bs-primary-rgb:193,0,22;
  --bs-link-color:#14181F;
  --bs-link-hover-color:#C10016;
  color-scheme:light;
}

/* ---- Fondo carta + griglia blueprint ------------------------------------ */
body{
  background-color:var(--cll-paper);
  color:var(--cll-ink);
  font-family:var(--cll-sans);
  background-image:
    linear-gradient(var(--cll-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--cll-grid) 1px,transparent 1px);
  background-size:34px 34px;
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ---- Tipografia display ------------------------------------------------- */
h1,h2,h3,h4,.h1,.h2,.h3,.h4{
  font-family:var(--cll-disp);
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.05;
  color:var(--cll-ink);
  text-wrap:balance;
}
h5,h6,.h5,.h6{font-family:var(--cll-disp);font-weight:500;letter-spacing:-.01em;}

.cll-mono,.price,.regular-price,.product-price,.current-price,
.product-flags .badge,.tabular{
  font-variant-numeric:tabular-nums;
}
/* prezzi in mono, tabellari, accessibili */
.price,.current-price span,.product-price,.regular-price,.has-discount .discount-product{
  font-family:var(--cll-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
}

a{transition:color .18s ease;}

/* ---- Bottoni ------------------------------------------------------------ */
.btn{
  --bs-btn-border-radius:10px;
  font-family:var(--cll-disp);
  font-weight:500;
  letter-spacing:.01em;
  transition:transform .16s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;
}
.btn-primary,.btn.btn-primary{
  --bs-btn-bg:var(--cll-red);
  --bs-btn-border-color:var(--cll-red);
  --bs-btn-hover-bg:var(--cll-red-deep);
  --bs-btn-hover-border-color:var(--cll-red-deep);
  --bs-btn-active-bg:var(--cll-red-deep);
  --bs-btn-active-border-color:var(--cll-red-deep);
  --bs-btn-disabled-bg:var(--cll-red);
  --bs-btn-disabled-border-color:var(--cll-red);
  /* hummingbird compila background-color LETTERALE su .btn-primary (nero):
     serve la dichiarazione esplicita, le sole variabili non bastano. */
  background-color:var(--cll-red);
  border-color:var(--cll-red);
  color:#fff;
  box-shadow:none;
}
.btn-primary:hover,.btn-primary:focus-visible,.btn-primary:active,.btn.btn-primary:hover{
  background-color:var(--cll-red-deep);
  border-color:var(--cll-red-deep);
  color:#fff;
  box-shadow:none;
}
.btn-secondary,.btn-outline-primary,.btn-outline-secondary,.btn-outline-dark{
  --bs-btn-color:var(--cll-ink);
  --bs-btn-border-color:var(--cll-ink);
  --bs-btn-hover-bg:var(--cll-ink);
  --bs-btn-hover-border-color:var(--cll-ink);
  --bs-btn-hover-color:var(--cll-paper);
  --bs-btn-active-bg:var(--cll-ink);
  --bs-btn-active-color:var(--cll-paper);
  border-width:2px;
  background-color:transparent;
}
.btn-outline-primary{--bs-btn-color:var(--cll-red);--bs-btn-border-color:var(--cll-red);--bs-btn-hover-bg:var(--cll-red);--bs-btn-hover-border-color:var(--cll-red);--bs-btn-hover-color:#fff;}
.btn-link{--bs-btn-color:var(--cll-red);--bs-btn-hover-color:var(--cll-red-deep);text-decoration:none;}

/* focus visibile accessibile */
a:focus-visible,.btn:focus-visible,button:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--cll-red);
  outline-offset:2px;
}

/* ---- Card / superfici --------------------------------------------------- */
.card,.product-miniature .thumbnail-container,.product-miniature,
.block-categories,.page-content.card,.card.definition-list{
  --bs-card-bg:var(--cll-card);
  --bs-card-border-color:var(--cll-line);
  --bs-card-border-radius:14px;
  background-color:var(--cll-card);
  border-color:var(--cll-line);
}

/* product card - hover costruttivo (translateY + ombra) */
.product-miniature{
  border:1px solid var(--cll-line);
  border-radius:14px;
  background:var(--cll-card);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
  overflow:hidden;
}
.product-miniature:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 34px -20px rgba(20,24,31,.4);
  border-color:#AEB5C0;
}
.product-miniature .thumbnail-container{border:0;background:transparent;}
.product-miniature .product-title a{
  font-family:var(--cll-disp);
  font-weight:800;
  letter-spacing:-.01em;
  color:var(--cll-ink);
}
.product-miniature .product-title a:hover{color:var(--cll-red);}

/* ---- Badge / flag prodotto --------------------------------------------- */
.badge,.product-flag,.product-flags li .product-flag{
  font-family:var(--cll-mono);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-radius:5px;
}
.product-flag.new,.product-flag.online-only,.product-flag.on-sale,
.product-flag.discount,.product-flags .badge{
  background:var(--cll-red);
  color:#fff;
}

/* ---- Breadcrumb --------------------------------------------------------- */
.breadcrumb{
  background:transparent;
  padding:18px 0 0;
  font-family:var(--cll-mono);
  font-size:.78rem;
  letter-spacing:.03em;
  color:var(--cll-ink-dim);
}
.breadcrumb a{color:var(--cll-ink-dim);}
.breadcrumb a:hover{color:var(--cll-ink);}
.breadcrumb li:last-child a,.breadcrumb .active{color:var(--cll-ink);}
.breadcrumb-item + .breadcrumb-item::before{color:var(--cll-line);}

/* ---- Form / input ------------------------------------------------------- */
.form-control,.form-select{
  border-radius:9px;
  border-color:var(--cll-line);
  background-color:var(--cll-card);
  color:var(--cll-ink);
}
.form-control:focus,.form-select:focus{
  border-color:var(--cll-ink-dim);
  box-shadow:0 0 0 .18rem rgba(193,0,22,.14);
}

/* =========================================================================
   HEADER - look B (sticky, carta translucida, brand wordmark, search pill)
   ========================================================================= */

/* striscia utility (contatti / lingua) sopra la barra */
.cll-utility{
  background:var(--cll-paper-2);
  border-bottom:1px solid var(--cll-line);
  font-family:var(--cll-mono);
  font-size:.74rem;
  color:var(--cll-ink-dim);
}
.cll-utility__in{
  display:flex;align-items:center;justify-content:flex-end;gap:20px;
  min-height:34px;padding-top:4px;padding-bottom:4px;
}
.cll-utility a{color:var(--cll-ink-dim);}
.cll-utility a:hover{color:var(--cll-ink);}
/* selettore lingua compatto nella striscia utility (prima di Contattaci) */
.cll-utility__lang{display:inline-flex;align-items:center;}
.cll-utility__lang .language-selector{margin:0;}
.cll-utility select,
.cll-utility .form-select{
  background-color:transparent;border:0;color:var(--cll-ink-dim);
  font-family:var(--cll-mono);font-size:.74rem;line-height:1;
  padding:2px 16px 2px 0;margin:0;cursor:pointer;box-shadow:none;
  background-size:9px;background-position:right .15rem center;width:auto;
}
.cll-utility select:hover,.cll-utility .form-select:hover{color:var(--cll-ink);}
.cll-utility select:focus,.cll-utility .form-select:focus{outline:0;box-shadow:none;border:0;color:var(--cll-ink);}
/* su mobile il tema sposta lingua/contatti dentro il menu hamburger:
   la striscia resterebbe un nastro vuoto — nascosta. */
@media (max-width:767.98px){.cll-utility{display:none;}}

/* barra principale */
.cll-header{
  position:sticky;top:0;z-index:1040;
  background:rgba(231,234,238,.86);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--cll-line);
}
.cll-header__row{
  display:flex;align-items:center;gap:18px;
  min-height:66px;padding:8px 0;
  flex-wrap:wrap;
}
.cll-header__center{flex:1 1 auto;display:flex;align-items:center;gap:16px;min-width:0;}
.cll-header__actions{display:flex;align-items:center;gap:6px;flex:none;}

/* brand wordmark */
.cll-brand{flex:none;}
.cll-brand__h1{margin:0;line-height:1;}
.cll-brand__link{
  font-family:var(--cll-disp);font-weight:800;font-size:1.32rem;
  letter-spacing:-.02em;color:var(--cll-ink);
  display:inline-flex;align-items:baseline;
}
.cll-brand__link:hover{color:var(--cll-ink);}
.cll-brand__dot{color:var(--cll-red);}
.cll-brand__k{
  font-family:var(--cll-mono);font-weight:400;font-size:.62rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--cll-ink-dim);
  margin-left:10px;
}

/* main menu (ps_mainmenu) reso orizzontale, sobrio */
.cll-header__center .ps-mainmenu,
.cll-header__center #_desktop_top_menu,
.cll-header__center .cbp-hrmenu{background:transparent;border:0;box-shadow:none;}
.cll-header__center .top-menu,
.cll-header__center .menu-content{
  display:flex;flex-wrap:wrap;gap:4px 22px;margin:0;padding:0;list-style:none;
  align-items:center;
}
.cll-header__center .top-menu a.menu-item,
.cll-header__center .top-menu .menu-item > a,
.cll-header__center a[data-depth="0"]{
  font-family:var(--cll-sans);font-weight:500;font-size:.92rem;
  color:var(--cll-ink-soft);padding:6px 2px;
}
.cll-header__center .top-menu a.menu-item:hover,
.cll-header__center a[data-depth="0"]:hover{color:var(--cll-ink);}

/* search bar (ps_searchbar) -> pillola mondo B, resta funzionante.
   Hummingbird tiene la lente in position:absolute con input a padding 2.5rem:
   la pillola e' l'input stesso, il contenitore resta trasparente. */
.ps-searchbar{background:transparent;border:0;min-width:19rem;}
.ps-searchbar__form{position:relative;margin:0;}
.ps-searchbar__input{
  border:1px solid var(--cll-line);
  background:var(--cll-card);
  border-radius:9px;
  padding:.6rem 2.5rem;
  height:auto;width:100%;box-shadow:none;
  font-family:var(--cll-sans);font-size:.9rem;color:var(--cll-ink);
}
.ps-searchbar__input:focus{
  border-color:var(--cll-ink-dim);background:var(--cll-card);
  box-shadow:0 0 0 .18rem rgba(193,0,22,.14);
}
.ps-searchbar__input::placeholder{color:var(--cll-ink-dim);}
.ps-searchbar__magnifier{color:var(--cll-ink-dim);}
#_desktop_ps_searchbar{max-width:380px;}
.ps-searchbar__dropdown{
  background:var(--cll-card);border:1px solid var(--cll-line);
  border-radius:10px;box-shadow:0 20px 40px -20px rgba(20,24,31,.4);
}

/* icone account / carrello (header-block) */
.header-block__action-btn{
  color:var(--cll-ink);border-radius:9px;
  transition:color .18s ease,background-color .18s ease;
}
.header-block__action-btn:hover{color:var(--cll-red);}
.header-block__icon{color:inherit;}
.header-block__badge{
  background:var(--cll-red);color:#fff;font-family:var(--cll-mono);
  font-variant-numeric:tabular-nums;
}
.header-block__title{font-family:var(--cll-sans);font-weight:500;color:var(--cll-ink);}

/* dropdown account */
.cll-header__actions .dropdown-menu{
  --bs-dropdown-bg:var(--cll-card);
  --bs-dropdown-border-color:var(--cll-line);
  --bs-dropdown-border-radius:12px;
  --bs-dropdown-link-hover-bg:var(--cll-paper-2);
  box-shadow:0 20px 40px -20px rgba(20,24,31,.4);
}

/* =========================================================================
   FOOTER - compatto, scuro (mondo B). Colonna brand + colonne tematiche
   popolate dai moduli. Fedele a mockups-B/*.html .site-foot.
   ========================================================================= */
.cll-footer{
  background:var(--cll-ink);
  color:#C9CED6;
  margin-top:36px;
  border-top:0;
  /* le utility Bootstrap bg-* dentro il footer devono dipingere scuro:
     ridefinisco le variabili di superficie sull'intero sottoalbero footer */
  --bs-tertiary-bg:#14181F;--bs-tertiary-bg-rgb:20,24,31;
  --bs-secondary-bg:#14181F;--bs-secondary-bg-rgb:20,24,31;
  --bs-body-bg:#14181F;--bs-body-bg-rgb:20,24,31;
}
.cll-footer .cll-footer__body{padding-top:46px;padding-bottom:0;max-width:1200px;}

/* --- striscia superiore: newsletter + social (displayFooterBefore) --- */
.cll-footer__before{
  background:var(--cll-ink);color:#C9CED6;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.cll-footer__before > .container{
  max-width:1200px;padding-top:22px;padding-bottom:22px;
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 34px;
}
/* i moduli interni non devono dipingere sfondi chiari */
.cll-footer__before .ps-emailsubscription,
.cll-footer__before .ps-socialfollow,
.cll-footer__before .block_newsletter,
.cll-footer__before [class*="newsletter"],
.cll-footer__before .block-social{
  background:transparent!important;box-shadow:none!important;border:0!important;
  margin:0!important;padding:0!important;flex:1 1 260px;
}
/* neutralizza l'utility Bootstrap bg-body-tertiary (theme.css) nel footer scuro */
.cll-footer .bg-body-tertiary,
.cll-footer__before .bg-body-tertiary,
.cll-footer__before .ps-emailsubscription.bg-body-tertiary,
.cll-footer__before section[id^="emailsubscription_anchor"]{
  background:transparent!important;background-color:transparent!important;
}
/* — newsletter (markup hummingbird v2: section > .container > .row > p.h3 + form) — */
.cll-footer__before .ps-emailsubscription{display:block;padding:0!important;}
.cll-footer__before .ps-emailsubscription .container{max-width:none;padding:0;margin:0;}
.cll-footer__before .ps-emailsubscription .row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:14px 44px;margin:0;
}
.cll-footer__before .ps-emailsubscription .row > *{flex:0 1 auto;width:auto;max-width:none;padding:0;margin:0;}
.cll-footer__before .ps-emailsubscription p.h3{
  flex:1 1 320px;font-family:var(--cll-disp);font-weight:800;font-size:1.02rem;
  letter-spacing:-.01em;line-height:1.35;color:#E7EAEE;margin:0;
}
.cll-footer__before .ps-emailsubscription form{flex:1 1 440px;display:block;margin:0;}
.cll-footer__before .ps-emailsubscription form .d-flex{display:flex;gap:10px;margin:0 0 7px;}
.cll-footer__before .form-control,
.cll-footer__before input[type="email"],
.cll-footer__before input[type="text"]{
  background:#1F2530;border:1px solid rgba(255,255,255,.16);color:#fff;border-radius:9px;
  height:44px;font-size:.9rem;
}
.cll-footer__before .form-control::placeholder{color:#8B94A1;}
.cll-footer__before .form-control:focus{background:#232A37;border-color:rgba(255,255,255,.34);color:#fff;box-shadow:none;}
.cll-footer__before .ps-emailsubscription input[type="submit"],
.cll-footer__before .ps-emailsubscription .btn-primary{
  background:var(--cll-red)!important;border:0!important;color:#fff!important;
  border-radius:9px;height:44px;padding:0 24px;flex:none;
  font-family:var(--cll-disp);font-weight:600;font-size:.92rem;box-shadow:none!important;
}
.cll-footer__before .ps-emailsubscription input[type="submit"]:hover,
.cll-footer__before .ps-emailsubscription .btn-primary:hover{background:var(--cll-red-deep)!important;}
.cll-footer__before .ps-emailsubscription form > p{
  font-family:var(--cll-mono);font-weight:400;font-size:.7rem;line-height:1.5;
  color:#77808D;margin:0;letter-spacing:0;
}
.cll-footer__before .ps-emailsubscription .alert{margin:8px 0 0;padding:8px 12px;border-radius:8px;font-size:.8rem;}
.cll-footer__before .ps-socialfollow{flex:0 1 auto;}
.cll-footer__before .ps-socialfollow ul{margin:0;}
.cll-footer__before .ps-socialfollow a{color:#C9CED6;}
.cll-footer__before .ps-socialfollow a:hover{color:#fff;}
/* reassurance eventuale nella striscia: reso compatto e discreto */
.cll-footer__before .blockreassurance,
.cll-footer__before [class*="reassurance"]{background:transparent!important;}

/* --- corpo: colonna brand + colonne moduli in flex compatto --- */
.cll-footer__cols{
  display:flex;flex-wrap:wrap;gap:32px;
  --bs-gutter-x:0;margin:0;
}
.cll-footer__brand{flex:1.5 1 240px;min-width:220px;}
.cll-footer__wordmark{
  font-family:var(--cll-disp);font-weight:800;font-size:1.28rem;letter-spacing:-.02em;
  color:#fff;display:inline-flex;align-items:baseline;
}
.cll-footer__dot{color:var(--cll-red-vivid);}
.cll-footer__tagline{font-size:.86rem;color:#9EA5B0;max-width:32ch;margin-top:12px;line-height:1.55;}

/* i blocchi dei moduli footer -> colonne flessibili (neutralizza col-* bootstrap) */
.cll-footer__cols .footer-block,
.cll-footer__cols > div[class*="col-"]{
  flex:1 1 150px;max-width:none;width:auto;
  padding:0;margin:0 0 8px;
}
.cll-footer .footer-block__title,
.cll-footer .footer-block h3,
.cll-footer .footer-block p.h3,
.cll-footer .footer-block .h3{
  font-family:var(--cll-mono);
  font-size:.70rem;letter-spacing:.16em;text-transform:uppercase;
  color:#8B94A1;font-weight:400;margin-bottom:14px;border:0;
}
.cll-footer .footer-block__list,
.cll-footer .footer-block ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.cll-footer a{color:#C9CED6;}
.cll-footer a:hover{color:#fff;}
.cll-footer .footer-block__content a,
.cll-footer .footer-block li a{font-size:.88rem;}
.cll-footer .footer-block__content{color:#9EA5B0;font-size:.88rem;}

/* link sciolti dei moduli nel footer (recesso, cookie) -> in fondo, mono discreti */
.cll-footer__cols .cll-wdr-footer-link,
.cll-footer__cols .cll-consent-footer-link{
  flex:0 0 auto;order:99;margin:0 22px 0 0!important;
}
.cll-footer__cols .cll-wdr-footer-link a,
.cll-footer__cols .cll-consent-footer-link a{
  font-family:var(--cll-mono);font-size:.74rem;color:#8B94A1;
}
.cll-footer__cols .cll-wdr-footer-link a:hover,
.cll-footer__cols .cll-consent-footer-link a:hover{color:#C9CED6;}

/* copyright -> barra legale del mockup (.fbot) */
.cll-footer .copyright,.cll-footer__body .copyright{
  font-family:var(--cll-mono);font-size:.74rem;color:#8B94A1;
  border-top:1px solid rgba(255,255,255,.1);
  padding:16px 0;margin-top:34px;
}
.cll-footer .copyright a{color:#8B94A1;}
.cll-footer .copyright a:hover{color:#C9CED6;}

/* accordion toggle dei titoli footer: niente frecce/box su desktop */
@media (min-width:768px){
  .cll-footer .footer-block__title--toggle{pointer-events:none;}
  .cll-footer .footer-block__title .material-icons,
  .cll-footer .footer-block__title::after{display:none;}
  .cll-footer .footer-block__content.collapse{display:block!important;height:auto!important;}
}
@media (max-width:767.98px){
  .cll-footer__cols{gap:20px;}
  .cll-footer__brand{flex-basis:100%;}
  .cll-footer__cols .footer-block{flex-basis:45%;}
}

/* =========================================================================
   Rifiniture varie
   ========================================================================= */
.page-header h1,#main .page-header h1{font-family:var(--cll-disp);font-weight:800;}

/* separatori/hr piu' tenui */
hr{border-color:var(--cll-line);opacity:.6;}

/* selezione testo */
::selection{background:rgba(193,0,22,.16);color:var(--cll-ink);}

/* riduzione movimento */
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;}
  .product-miniature:hover,.btn-primary:hover{transform:none;}
}

/* responsive header */
@media (max-width:767.98px){
  .cll-header__row{gap:10px;min-height:58px;}
  .cll-brand__k{display:none;}
  .cll-header__center{order:3;flex-basis:100%;}
}

/* =========================================================================
   HOME "Officina isometrica" (mondo B) - override di displayHome (index.tpl)
   Porting fedele di mockups-B/home.html. Classi prefissate cllh- e scopate
   sotto .cll-home per non collidere con hummingbird/bootstrap.
   ========================================================================= */
.cll-home{--cllh-maxw:1160px;}
.page-content--home.cll-home{padding:0;margin:0;}
.cll-home .cllh-wrap{max-width:var(--cllh-maxw);margin:0 auto;padding:0 28px;}

.cll-home h1,.cll-home h2,.cll-home h3{font-family:var(--cll-disp);font-weight:800;letter-spacing:-.02em;line-height:1.02;text-wrap:balance;color:var(--cll-ink);}
.cll-home .cllh-eyebrow{font-family:var(--cll-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--cll-red);}

/* ---- hero ---- */
.cll-home .cllh-hero{padding:60px 0 40px;}
.cll-home .cllh-hero-grid{display:grid;grid-template-columns:1fr 1.02fr;gap:40px;align-items:center;}
.cll-home .cllh-hero .cllh-eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:20px;}
.cll-home .cllh-hero .cllh-eyebrow::before{content:"";width:22px;height:2px;background:var(--cll-red);}
.cll-home .cllh-h1{font-size:clamp(2.7rem,6vw,4.5rem);margin-bottom:20px;}
.cll-home .cllh-h1 .hot{color:var(--cll-red);}
.cll-home .cllh-lead{font-size:clamp(1.05rem,2vw,1.25rem);color:var(--cll-ink-soft);max-width:32ch;margin-bottom:30px;line-height:1.6;}
.cll-home .cllh-cta-row{display:flex;flex-wrap:wrap;gap:13px;align-items:center;}
.cll-home .cllh-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--cll-disp);font-weight:500;font-size:15px;padding:13px 22px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:transform .16s,box-shadow .2s,background .2s,border-color .2s,color .2s;}
.cll-home .cllh-btn .ar{font-family:var(--cll-mono);transition:transform .2s;}
.cll-home .cllh-btn:hover .ar{transform:translateX(4px);}
.cll-home .cllh-btn-solid{background:var(--cll-red);color:#fff;}
.cll-home .cllh-btn-solid:hover{background:var(--cll-red-deep);color:#fff;}
.cll-home .cllh-btn-ghost{border-color:var(--cll-ink);color:var(--cll-ink);}
.cll-home .cllh-btn-ghost:hover{background:var(--cll-ink);color:var(--cll-paper);}
.cll-home .cllh-hero-note{margin-top:22px;font-family:var(--cll-mono);font-size:12.5px;color:var(--cll-ink-dim);letter-spacing:.02em;}
.cll-home .cllh-hero-note b{color:var(--cll-red);}

/* ---- iso scene ---- */
.cll-home .cllh-scene{position:relative;}
.cll-home .cllh-scene svg{width:100%;height:auto;display:block;overflow:visible;}
.cll-home .cllh-cube{transform-box:fill-box;transform-origin:center;}
.cll-home .cllh-chip{position:absolute;font-family:var(--cll-mono);font-size:11px;letter-spacing:.08em;background:var(--cll-ink);color:#fff;padding:5px 9px;border-radius:5px;white-space:nowrap;box-shadow:0 6px 16px -6px rgba(20,24,31,.5);z-index:2;}
.cll-home .cllh-chip.red{background:var(--cll-red);}
.cll-home .cllh-chip::after{content:"";position:absolute;left:14px;bottom:-5px;width:9px;height:9px;background:inherit;transform:rotate(45deg);}
.cll-home .cllh-chip.c1{top:6%;left:2%;}
.cll-home .cllh-chip.c2{top:30%;right:1%;}

/* entrance animations (pure CSS, no JS dependency) */
@keyframes cllh-drop{0%{opacity:0;transform:translateY(-130px)}70%{opacity:1}85%{transform:translateY(6px)}100%{transform:translateY(0)}}
@keyframes cllh-slideR{0%{opacity:0;transform:translate(70px,-24px)}100%{opacity:1;transform:none}}
@keyframes cllh-rise{0%{opacity:0;transform:translateY(14px)}100%{opacity:1;transform:none}}
.cll-home .cllh-scene .cllh-cube:nth-child(3){animation:cllh-rise .8s ease both;}
.cll-home .cllh-scene .cllh-cube:nth-child(4){animation:cllh-rise .8s ease .08s both;}
.cll-home .cllh-scene .cllh-cube:nth-child(5){animation:cllh-rise .8s ease .16s both;}
.cll-home .cllh-scene .cllh-cube:nth-child(6){animation:cllh-rise .8s ease .24s both;}
.cll-home .cllh-scene .cllh-cube:nth-child(7){animation:cllh-slideR 1s cubic-bezier(.2,.8,.25,1) .5s both;}
.cll-home .cllh-scene .cllh-cube:nth-child(8){animation:cllh-drop 1s cubic-bezier(.2,.85,.25,1) .3s both;}

/* ---- sezioni ---- */
.cll-home .cllh-block{padding:72px 0;}
.cll-home .cllh-sec-head{margin-bottom:34px;}
.cll-home .cllh-sec-head .idx{font-family:var(--cll-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--cll-red);}
.cll-home .cllh-h2{font-size:clamp(1.8rem,4vw,2.7rem);margin-top:10px;}
.cll-home .cllh-sec-head p{color:var(--cll-ink-soft);max-width:46ch;margin-top:10px;}

.cll-home .cllh-blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.cll-home .cllh-mod{background:var(--cll-card);border:1px solid var(--cll-line);border-radius:14px;padding:22px 22px 20px;display:flex;flex-direction:column;gap:12px;transition:transform .2s,box-shadow .2s,border-color .2s;}
.cll-home .cllh-mod:hover{transform:translateY(-4px);box-shadow:0 20px 34px -20px rgba(20,24,31,.4);border-color:#AEB5C0;}
.cll-home .cllh-mod .top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.cll-home .cllh-mini{width:46px;height:46px;flex:none;}
.cll-home .cllh-h3{font-size:19px;font-weight:800;letter-spacing:-.01em;}
.cll-home .cllh-mod p{font-size:14px;color:var(--cll-ink-soft);line-height:1.5;flex:1;margin:0;}
.cll-home .cllh-mod .foot{display:flex;align-items:center;justify-content:space-between;margin-top:4px;}
.cll-home .cllh-mod .price{font-family:var(--cll-mono);font-size:14px;font-variant-numeric:tabular-nums;color:var(--cll-ink);}
.cll-home .cllh-mod .price.free{color:var(--cll-red);font-weight:400;}
.cll-home .cllh-mod .cta{font-family:var(--cll-mono);font-size:12px;color:var(--cll-ink-dim);}
.cll-home .cllh-mod.free{border-color:rgba(193,0,22,.35);}
.cll-home .cllh-badge{font-family:var(--cll-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;background:var(--cll-red);color:#fff;padding:4px 7px;border-radius:5px;align-self:flex-start;}

/* ---- prove ---- */
.cll-home .cllh-proof{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.cll-home .cllh-pcell{background:var(--cll-card);border:1px solid var(--cll-line);border-radius:12px;padding:22px;}
.cll-home .cllh-pcell .k{font-family:var(--cll-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cll-red);margin-bottom:9px;}
.cll-home .cllh-pcell .v{font-family:var(--cll-disp);font-weight:800;font-size:19px;letter-spacing:-.01em;color:var(--cll-ink);}
.cll-home .cllh-pcell .s{font-size:13px;color:var(--cll-ink-dim);margin-top:6px;}

/* ---- chiusura ---- */
.cll-home .cllh-close{text-align:center;padding:88px 0 44px;}
.cll-home .cllh-close .cllh-h2{margin-bottom:16px;font-size:clamp(2rem,5vw,3.4rem);}
.cll-home .cllh-close p{color:var(--cll-ink-soft);max-width:44ch;margin:0 auto 28px;}
.cll-home .cllh-close .cllh-cta-row{justify-content:center;}

@media (max-width:900px){
  .cll-home .cllh-hero-grid{grid-template-columns:1fr;gap:20px;}
  .cll-home .cllh-scene{max-width:460px;margin:0 auto;}
  .cll-home .cllh-blocks{grid-template-columns:1fr 1fr;}
  .cll-home .cllh-proof{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .cll-home .cllh-blocks{grid-template-columns:1fr;}
  .cll-home .cllh-proof{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .cll-home .cllh-scene .cllh-cube{animation:none!important;}
}

/* =========================================================================
   PRODUCT MINIATURE - card "mondo B" (usata in categoria, home, correlati)
   Restyle via CSS della miniatura hummingbird: cornice blueprint sull'immagine,
   titolo Bricolage, prezzo mono, badge rossi, bottone Aggiungi scuro->rosso.
   Nessuna modifica al markup: variante/quantita'/add-to-cart restano intatti.
   ========================================================================= */
.product-miniature{padding:0;overflow:visible;height:100%;}
.product-miniature__inner{display:flex;flex-direction:column;height:100%;background:transparent;border:0;}
.product-miniature__top{position:relative;padding:14px 14px 0;}
.product-miniature__image-container,
.product-miniature__image-link{
  display:block;border-radius:12px;overflow:hidden;
}
.product-miniature__image-container{
  border:1px solid var(--cll-line);
  background:linear-gradient(160deg,#F4F6F8,#DFE3E8);
  position:relative;
}
.product-miniature__image-container::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(var(--cll-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--cll-grid) 1px,transparent 1px);
  background-size:22px 22px;opacity:.65;
}
.product-miniature__image{position:relative;z-index:1;width:100%;height:auto;mix-blend-mode:multiply;}

/* badge/flag rosso sovrapposto in alto a sinistra */
.product-miniature__top .product-flags{
  position:absolute;top:22px;left:22px;z-index:3;margin:0;padding:0;list-style:none;
  display:flex;flex-direction:column;gap:6px;
}
.product-miniature__top .product-flags .product-flag,
.product-miniature__top .product-flags .badge{
  background:var(--cll-red);color:#fff;font-family:var(--cll-mono);
  font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;border-radius:5px;padding:4px 7px;
}

/* corpo */
.product-miniature__bottom{padding:14px;display:flex;flex-direction:column;gap:10px;flex:1;}
.product-miniature__infos{display:flex;flex-direction:column;gap:9px;flex:1;}
.product-miniature__title{
  font-family:var(--cll-disp);font-weight:800;font-size:1rem;letter-spacing:-.01em;
  color:var(--cll-ink);line-height:1.2;
}
.product-miniature__title:hover{color:var(--cll-red);}
.product-miniature__variants{display:flex;gap:6px;flex-wrap:wrap;}
.product-miniature__prices{display:flex;align-items:baseline;gap:10px;margin-top:auto;}
.product-miniature__price{font-family:var(--cll-mono);font-size:1.02rem;color:var(--cll-ink);font-weight:400;letter-spacing:.01em;}
.product-miniature__discount-price{display:inline;}
.product-miniature__regular-price{font-family:var(--cll-mono);font-size:.82rem;color:var(--cll-ink-dim);text-decoration:line-through;}

/* azioni: quantita' compatta + bottone Aggiungi scuro -> rosso all'hover card */
.product-miniature__actions{display:flex;align-items:center;gap:10px;}
.product-miniature__form{display:flex;align-items:center;gap:10px;width:100%;margin:0;}
.product-miniature__add.btn-primary{
  --bs-btn-bg:var(--cll-ink);--bs-btn-border-color:var(--cll-ink);
  --bs-btn-hover-bg:var(--cll-red);--bs-btn-hover-border-color:var(--cll-red);
  --bs-btn-active-bg:var(--cll-red);--bs-btn-active-border-color:var(--cll-red);
  background:var(--cll-ink);border-color:var(--cll-ink);box-shadow:none;color:#fff;
  border-radius:8px;font-family:var(--cll-disp);font-weight:500;
}
.product-miniature:hover .product-miniature__add.btn-primary{background:var(--cll-red);border-color:var(--cll-red);transform:none;}
.product-miniature__add .product-miniature__add-text{display:inline;font-size:.8rem;padding-left:6px;}

/* =========================================================================
   CATEGORIA (listing) - fedele a mockups-B/categoria.html
   ========================================================================= */
/* header categoria con eyebrow + glifo */
.cll-cat-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  padding:12px 0 22px;border-bottom:1px solid var(--cll-line);margin-bottom:22px;
}
.cll-cat-head__eyebrow{
  font-family:var(--cll-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cll-red);margin-bottom:6px;
}
.cll-cat-head .page-title,
.cll-cat-head h1{font-size:clamp(2rem,4.4vw,3rem);margin:0 0 8px;}
.cll-cat-head .page-title-section{margin:0;padding:0;border:0;}
.cll-cat-head__desc{color:var(--cll-ink-soft);max-width:60ch;font-size:.95rem;margin:0;}
.cll-cat-head__glyph{flex:none;width:84px;height:84px;}
/* la cover categoria (immagine banner) non e' nel mondo B: nascosta sul front
   (resta gestibile da BO, semplicemente non mostrata nel layout compatto) */
.category__header .category__cover{display:none;}
@media(max-width:767.98px){.cll-cat-head{flex-direction:column;align-items:flex-start;}.cll-cat-head__glyph{display:none;}}

/* sottocategorie compatte (card mondo B) */
.subcategory__link--with-image,.subcategory__link{
  border:1px solid var(--cll-line);border-radius:12px;background:var(--cll-card);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.subcategory__link--with-image:hover,.subcategory__link:hover{
  transform:translateY(-3px);box-shadow:0 16px 28px -18px rgba(20,24,31,.4);border-color:#AEB5C0;
}
.subcategory__name{font-family:var(--cll-disp);font-weight:800;color:var(--cll-ink);letter-spacing:-.01em;}

/* facet sidebar: blocchi come card, titoli mono, checkbox rosse */
#left-column .left-block{
  background:var(--cll-card);border:1px solid var(--cll-line);border-radius:12px;
  padding:4px 16px;margin-bottom:14px;
}
#left-column .left-block__title{
  font-family:var(--cll-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cll-ink-dim);font-weight:400;padding:14px 0 8px;margin:0;
}
#left-column .left-block__title-link{color:var(--cll-ink-dim);}
#left-column .left-block__title-link:hover{color:var(--cll-ink);}
.ps-facetedsearch .accordion{--bs-accordion-bg:transparent;--bs-accordion-border-color:var(--cll-line);--bs-accordion-active-bg:transparent;--bs-accordion-btn-focus-box-shadow:none;}
.ps-facetedsearch .accordion-item{background:transparent;border:0;border-bottom:1px solid var(--cll-line);}
.ps-facetedsearch .accordion-item:last-child{border-bottom:0;}
.ps-facetedsearch .accordion-button{
  font-family:var(--cll-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cll-ink-dim);background:transparent;box-shadow:none;padding:14px 0;font-weight:400;
}
.ps-facetedsearch .accordion-button:not(.collapsed){color:var(--cll-ink);background:transparent;box-shadow:none;}
.ps-facetedsearch .accordion-button::after{width:1rem;height:1rem;background-size:1rem;}
.ps-facetedsearch .accordion-body{padding:0 0 12px;}
/* su desktop i facet restano sempre aperti (come il mockup) e cliccabili;
   su mobile resta l'accordion collassabile di hummingbird */
@media(min-width:768px){
  .ps-facetedsearch .accordion-collapse{display:block!important;height:auto!important;visibility:visible!important;overflow:visible!important;}
  .ps-facetedsearch .accordion-button{pointer-events:none;cursor:default;}
  .ps-facetedsearch .accordion-button::after{display:none;}
}
/* opzioni facet */
.search-filters__form-label,.ps-facetedsearch label{font-size:.9rem;color:var(--cll-ink-soft);margin:0;}
.search-filters__link,.ps-facetedsearch label a{color:var(--cll-ink-soft);}
.search-filters__link:hover{color:var(--cll-ink);}
.search-filters__magnitude{font-family:var(--cll-mono);font-size:.74rem;color:var(--cll-ink-dim);}
/* checkbox/radio rossi */
#left-column input[type="checkbox"],
#left-column input[type="radio"],
.ps-facetedsearch input[type="checkbox"],
.ps-facetedsearch input[type="radio"]{accent-color:var(--cll-red);width:1.05rem;height:1.05rem;}

/* toolbar conteggio + ordinamento */
#js-product-list-top .products__selection,
.products__selection{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-bottom:16px;border:0;padding:0;background:transparent;
}
.products__count,.products__count span{font-family:var(--cll-mono);font-size:.85rem;color:var(--cll-ink-soft);}
.products__sort{display:flex;align-items:center;gap:8px;}
.products__sort-label span{font-family:var(--cll-mono);font-size:.8rem;color:var(--cll-ink-soft);}
.products__sort-dropdown-button{
  font-family:var(--cll-mono);font-size:.82rem;color:var(--cll-ink);
  background:var(--cll-card);border:1px solid var(--cll-line);border-radius:8px;box-shadow:none;
}
.products__sort-dropdown-button:hover{border-color:var(--cll-ink-dim);color:var(--cll-ink);background:var(--cll-card);}
.products__sort .dropdown-menu{background:var(--cll-card);border:1px solid var(--cll-line);border-radius:10px;box-shadow:0 20px 40px -20px rgba(20,24,31,.4);}

/* chip filtri attivi */
#js-active-search-filters{margin-bottom:16px;padding:0;border:0;}
#js-active-search-filters .active-filter-title{font-family:var(--cll-mono);font-size:.74rem;color:var(--cll-ink-dim);}
#js-active-search-filters .js-search-link,
#js-active-search-filters .filter-block,
#js-active-search-filters li a{
  font-family:var(--cll-mono);font-size:.72rem;background:var(--cll-ink);color:#fff;
  border-radius:20px;padding:5px 10px;border:0;display:inline-flex;align-items:center;gap:7px;
}

/* paginazione -> pager mockup */
.pagination{justify-content:center;gap:8px;margin-top:32px;--bs-pagination-border-color:var(--cll-line);}
.pagination .page-link,.page-link{
  min-width:36px;height:36px;display:grid;place-items:center;
  font-family:var(--cll-mono);font-size:.8rem;color:var(--cll-ink-soft);
  background:var(--cll-card);border:1px solid var(--cll-line);border-radius:8px;
}
.pagination .page-link:hover{border-color:var(--cll-ink);color:var(--cll-ink);background:var(--cll-card);}
.pagination .page-item.active .page-link{background:var(--cll-ink);color:#fff;border-color:var(--cll-ink);}
.pagination .page-item.disabled .page-link{opacity:.45;}

/* =========================================================================
   SCHEDA PRODOTTO - fedele a mockups-B/prodotto.html
   Restyle via CSS + partial add-to-cart. Form/varianti/quantita' intatti.
   ========================================================================= */
/* layout buy-box: colonna, con manufacturer usato come eyebrow sopra al titolo */
.product__right{display:flex;flex-direction:column;}
.product__name{order:2;font-family:var(--cll-disp);font-weight:800;letter-spacing:-.02em;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.04;margin:0 0 8px;}
.product__manufacturer{order:1;margin:0 0 4px;}
.product__manufacturer a{font-family:var(--cll-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--cll-red);}
.product__prices{order:3;}
.product__description-short{order:4;color:var(--cll-ink-soft);font-size:.98rem;}
.product__actions{order:5;}

/* prezzo grande mono + barrato */
.product__prices .product__price,.product__price{font-family:var(--cll-mono);font-size:2rem;font-weight:400;color:var(--cll-ink);letter-spacing:-.01em;}
.product__prices .regular-price,.product__regular-price,.product-discount .regular-price{font-family:var(--cll-mono);font-size:1rem;color:var(--cll-ink-dim);text-decoration:line-through;}
.product__prices .discount,.product-flag.discount{background:var(--cll-red);color:#fff;}
.product__tax-label,.product__prices .tax-shipping-delivery-label{font-family:var(--cll-mono);font-size:.74rem;color:var(--cll-ink-dim);}

/* media: pannello in cornice blueprint (mockup .media .stage) */
.product__left .product-cover{
  position:relative;border:1px solid var(--cll-line);border-radius:16px;overflow:hidden;
  background:linear-gradient(160deg,#F4F6F8,#DFE3E8);padding:20px;
}
.product__left .product-cover::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--cll-grid) 1px,transparent 1px),linear-gradient(90deg,var(--cll-grid) 1px,transparent 1px);
  background-size:26px 26px;opacity:.7;
}
.product__left .js-qv-product-cover{position:relative;z-index:1;mix-blend-mode:multiply;border-radius:8px;}
.product__thumbnails-list{gap:10px;}
.product__thumbnail{border:1px solid var(--cll-line);border-radius:9px;background:var(--cll-card);overflow:hidden;}
.product__thumbnail.active,.product__thumbnail.js-thumb-container.active{border-color:var(--cll-red);}
/* badge -20% sul cover */
.product__left .product-flags{position:absolute;top:14px;left:14px;z-index:3;}

/* varianti (taglia/colore) sobrie */
.product-variants .control-label,.product__variants .control-label{font-family:var(--cll-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cll-ink-dim);}

/* pill compatibilita' */
.cll-compat{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px;}
.cll-pill{font-family:var(--cll-mono);font-size:11.5px;color:var(--cll-ink-soft);background:var(--cll-card);border:1px solid var(--cll-line);border-radius:20px;padding:5px 11px;}

/* riga azioni: Aggiungi (flex) + Prova la demo (ghost) */
.product__actions-qty-add{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;}
.product__actions-qty-add .product__add-to-cart{flex:1 1 200px;}
.product__add-to-cart-button.btn-primary{width:100%;justify-content:center;border-radius:9px;padding:.8rem 1.4rem;}
.cll-demo-btn{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--cll-disp);font-weight:500;font-size:15px;
  padding:0 20px;border-radius:9px;border:2px solid var(--cll-ink);color:var(--cll-ink);background:transparent;
  transition:background .2s,color .2s;text-decoration:none;
}
.cll-demo-btn:hover{background:var(--cll-ink);color:var(--cll-paper);}
.cll-demo-btn .ar{font-family:var(--cll-mono);}

/* checkbox servizio installazione (design element) */
.cll-svc{
  margin-top:16px;background:var(--cll-card);border:1px solid var(--cll-line);border-radius:12px;
  padding:14px 16px;display:flex;gap:12px;align-items:flex-start;cursor:pointer;transition:border-color .2s;
}
.cll-svc:hover{border-color:var(--cll-red);}
.cll-svc__input{position:absolute;opacity:0;width:0;height:0;}
.cll-svc__box{width:19px;height:19px;border:1.5px solid var(--cll-ink-dim);border-radius:5px;flex:none;margin-top:2px;display:grid;place-items:center;transition:.15s;}
.cll-svc__input:checked + .cll-svc__box{background:var(--cll-red);border-color:var(--cll-red);}
.cll-svc__input:checked + .cll-svc__box::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px);}
.cll-svc__input:focus-visible + .cll-svc__box{outline:2px solid var(--cll-red);outline-offset:2px;}
.cll-svc__txt{font-size:14px;line-height:1.35;}
.cll-svc__txt b{font-family:var(--cll-disp);font-weight:800;font-size:14.5px;display:block;color:var(--cll-ink);}
.cll-svc__txt span{color:var(--cll-ink-soft);font-size:13px;}
.cll-svc__pr{margin-left:auto;font-family:var(--cll-mono);font-size:14px;white-space:nowrap;color:var(--cll-ink);}

/* lista trust */
.cll-trust{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;}
.cll-trust li{font-size:13.5px;color:var(--cll-ink-soft);display:flex;gap:10px;align-items:center;font-family:var(--cll-mono);}
.cll-trust__d{width:6px;height:6px;background:var(--cll-red);border-radius:1px;flex:none;transform:rotate(45deg);}

/* --- sezioni (tabs/accordion) come mockup .sec --- */
.product__bottom{margin-top:34px;}
.product__accordion .accordion-item{background:transparent;border:0;border-top:1px solid var(--cll-line);}
.product__accordion .accordion-button{
  font-family:var(--cll-disp);font-weight:800;letter-spacing:-.01em;font-size:clamp(1.2rem,2.4vw,1.6rem);
  color:var(--cll-ink);background:transparent;box-shadow:none;padding:22px 0;
}
.product__accordion .accordion-button:not(.collapsed){color:var(--cll-ink);background:transparent;box-shadow:none;}
.product__accordion .accordion-button::after{width:1.1rem;height:1.1rem;background-size:1.1rem;}
.product__accordion .accordion-body{padding:0 0 24px;}
.product__description,.product__description.rich-text{color:var(--cll-ink-soft);font-size:1rem;max-width:68ch;line-height:1.6;}
/* data sheet / caratteristiche: bullet-cubo */
.product__accordion .data-sheet,.product-features .data-sheet{--bs-gutter-y:0;}
.data-sheet dt.name,.product-features dt{font-family:var(--cll-disp);font-weight:800;color:var(--cll-ink);}
.data-sheet dd.value,.product-features dd{font-family:var(--cll-mono);color:var(--cll-ink-soft);}

/* reassurance (policy): compatto. Difensivo: nasconde solo eventuali icone
   con URL rotto protocol-relative (//host senza schema), non quelle valide. */
.blockreassurance img[src^="//"]{display:none;}
.product-reassurance-item,.blockreassurance__item{font-family:var(--cll-sans);}
.blockreassurance__item .block-title,.blockreassurance p{font-family:var(--cll-sans);color:var(--cll-ink-soft);}

/* correlati / clients also bought: titolo Bricolage */
.featured-products__title,.products-section-title,.product-accessories .h2,.product__bottom .h2{font-family:var(--cll-disp);font-weight:800;}

/* =========================================================================
   CHECKOUT NATIVO A STEP - mondo B "Officina isometrica" (Operate)
   Si tengono i 4 step nativi di PrestaShop/hummingbird; qui si vestono
   step-tracker, form, riepilogo, metodi di pagamento e conferma ordine.
   Su checkout + order-confirmation header/footer sono spogliati (vedi
   .cll-checkout-header / .cll-checkout-footer). Tutti gli hook e la
   validazione restano intatti: solo look via CSS + markup di contorno.
   ========================================================================= */
:root{--cll-co-maxw:1180px;}

/* ---- header spogliato (solo checkout surface) --------------------------- */
.cll-checkout-header{
  position:sticky;top:0;z-index:1040;
  background:rgba(231,234,238,.9);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--cll-line);
}
.cll-coh__in{
  max-width:var(--cll-co-maxw);margin:0 auto;padding:0 28px;
  min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.cll-coh__brand{font-family:var(--cll-disp);font-weight:800;font-size:1.28rem;letter-spacing:-.02em;color:var(--cll-ink);display:inline-flex;align-items:baseline;}
.cll-coh__brand:hover{color:var(--cll-ink);}
.cll-coh__brand .dot{color:var(--cll-red);}
.cll-coh__brand .k{font-family:var(--cll-mono);font-weight:400;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cll-ink-dim);margin-left:9px;}
.cll-coh__right{display:flex;align-items:center;gap:20px;}
.cll-coh__back{font-family:var(--cll-mono);font-size:.76rem;letter-spacing:.02em;color:var(--cll-ink-dim);display:inline-flex;align-items:center;gap:7px;}
.cll-coh__back:hover{color:var(--cll-ink);}
.cll-coh__back .ar{font-family:var(--cll-mono);}
.cll-coh__secure{font-family:var(--cll-mono);font-size:.76rem;color:var(--cll-ink-soft);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}
.cll-coh__secure svg{width:13px;height:13px;color:var(--cll-ink);flex:none;}
@media(max-width:575.98px){
  .cll-coh__in{padding:0 18px;min-height:56px;}
  .cll-coh__brand .k{display:none;}
  .cll-coh__back span:not(.ar){display:none;}
}

/* ---- footer spogliato (barra sottile) ----------------------------------- */
.cll-checkout-footer{
  margin-top:44px;background:var(--cll-paper-2);border-top:1px solid var(--cll-line);
}
.cll-cof__in{
  max-width:var(--cll-co-maxw);margin:0 auto;padding:18px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;
  font-family:var(--cll-mono);font-size:.74rem;color:var(--cll-ink-dim);
}
.cll-cof__in a{color:var(--cll-ink-dim);}
.cll-cof__in a:hover{color:var(--cll-ink);}
.cll-cof__legal{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.cll-cof__secure{display:inline-flex;align-items:center;gap:8px;color:var(--cll-ink-soft);}
.cll-cof__secure svg{width:12px;height:12px;color:var(--cll-ink);flex:none;}
@media(max-width:575.98px){.cll-cof__in{padding:16px 18px;}}

/* =========================================================================
   Impaginazione checkout (contenitore + griglia)
   ========================================================================= */
body#checkout .columns-container.container,
body#order-confirmation .columns-container.container,
body#order-confirmation #content-wrapper > .container,
body#order-confirmation .page-content > .container{max-width:var(--cll-co-maxw);padding-left:28px;padding-right:28px;}
body#checkout #center-column.page--full-width{padding:0;}
body#checkout .checkout-grid{--bs-gutter-x:32px;row-gap:24px;padding:8px 0 20px;}
body#checkout .checkout-grid__content{padding-top:2px;}
@media(max-width:575.98px){
  body#checkout .columns-container.container,
  body#order-confirmation .columns-container.container{padding-left:16px;padding-right:16px;}
}

/* pannello base mondo B (riusato da form-step e conferma) */
.cll-co-panel{
  background:var(--cll-card);border:1px solid var(--cll-line);border-radius:14px;
  padding:24px 24px;
}
.cll-co-panel + .cll-co-panel{margin-top:16px;}

/* =========================================================================
   STEP TRACKER - riusa lo stato reale (js: --current / --success / :disabled)
   ========================================================================= */
body#checkout .checkout-steps{
  max-width:var(--cll-co-maxw);margin:2px auto 26px;padding:0 28px;
  background:transparent;border:0;
}
/* hummingbird cappa il tracker desktop a ~720px e lo centra: qui lo allarghiamo
   alla larghezza del contenuto cosi' gli step si distribuiscono e le linee di
   avanzamento collegano davvero i marker, allineati alle card sotto */
body#checkout .checkout-steps__desktop{display:block;width:100%!important;max-width:none!important;margin:0!important;}
body#checkout .checkout-steps__mobile{display:none;}
body#checkout .checkout-steps__list{display:flex;list-style:none;margin:0;padding:0;width:100%;}
@media(max-width:575.98px){body#checkout .checkout-steps{padding:0 16px;}}

body#checkout .cll-cot__step{
  position:relative;flex:1 1 0;min-width:0;
  display:flex;flex-direction:column;align-items:center;gap:11px;
  text-align:center;padding:0 6px;
}
/* linea di avanzamento: segmento USCENTE dal marker verso lo step successivo.
   Parte dal centro di questo marker (left:50%) e copre una intera cella
   (width:100%) fino al centro del marker successivo. Inchiostrata quando lo
   step e' COMPLETATO (--success): la barra "piena" arriva fino allo step corrente. */
body#checkout .cll-cot__step::before{
  content:"";position:absolute;top:17px;left:50%;width:100%;height:2px;
  background:var(--cll-line);z-index:0;
}
body#checkout .cll-cot__step:last-child::before{display:none;}
body#checkout .checkout-steps__step--success::before{background:var(--cll-ink);}
/* neutralizza la linea di progresso VERDE nativa di hummingbird (::after) */
body#checkout .cll-cot__step::after{display:none!important;}

body#checkout .cll-cot__marker{
  position:relative;z-index:1;width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;background:var(--cll-card);
  border:1.5px solid var(--cll-line);
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease;
}
/* il "number" nativo hummingbird e' un pallino colorato: qui e' solo testo
   dentro al nostro marker (niente bg verde/rotondo) */
body#checkout .cll-cot__num{
  font-family:var(--cll-mono);font-size:.82rem;font-weight:400;line-height:1;
  color:var(--cll-ink-dim);font-variant-numeric:tabular-nums;
  background:transparent!important;border:0!important;box-shadow:none!important;
  width:auto!important;height:auto!important;min-width:0!important;padding:0!important;margin:0!important;
}
body#checkout .cll-cot__check{display:none;}
body#checkout .checkout-steps__step--current .cll-cot__marker{
  background:var(--cll-red);border-color:var(--cll-red);
  box-shadow:0 0 0 4px rgba(193,0,22,.14),0 10px 20px -12px rgba(193,0,22,.55);
}
body#checkout .checkout-steps__step--current .cll-cot__num{color:#fff;}
body#checkout .checkout-steps__step--success .cll-cot__marker{background:var(--cll-ink);border-color:var(--cll-ink);}
body#checkout .checkout-steps__step--success .cll-cot__num{display:none;}
body#checkout .checkout-steps__step--success .cll-cot__check{display:block;color:#fff;}

/* etichette (il button-tab e' l'etichetta) */
body#checkout .cll-cot__btn{
  font-family:var(--cll-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:400;
  color:var(--cll-ink-dim);background:none;border:0;padding:0;box-shadow:none;text-decoration:none;
  line-height:1.3;white-space:normal;max-width:16ch;transition:color .18s ease;
}
body#checkout .cll-cot__btn:hover{color:var(--cll-ink);text-decoration:none;transform:none;}
body#checkout .cll-cot__btn:disabled{opacity:.55;color:var(--cll-ink-dim);}
body#checkout .checkout-steps__step--current .cll-cot__btn{color:var(--cll-ink);font-weight:700;}
body#checkout .checkout-steps__step--success .cll-cot__btn{color:var(--cll-ink-soft);}
body#checkout .checkout-steps__step--success .cll-cot__btn:hover{color:var(--cll-red);}

/* mobile: solo marker + linea, etichette nascoste, caption sotto */
@media(max-width:767.98px){
  body#checkout .checkout-steps{margin-bottom:20px;}
  body#checkout .cll-cot__btn{display:none;}
  body#checkout .checkout-steps__mobile{display:flex;align-items:center;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--cll-line);}
  body#checkout .checkout-steps__mobile .checkout-steps__left{display:none;}
  body#checkout .checkout-steps__mobile .checkout-steps__right{flex:1;}
  body#checkout .checkout-steps__step-mobile .checkout-steps__title{font-family:var(--cll-disp);font-weight:800;font-size:1.1rem;color:var(--cll-ink);margin:0;}
  body#checkout .checkout-steps__step-mobile .checkout-steps__subtitle{font-family:var(--cll-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cll-ink-dim);margin:2px 0 0;}
}

/* =========================================================================
   FORM DEGLI STEP (personal info / addresses / shipping / payment)
   ========================================================================= */
body#checkout .checkout-grid__content .step{
  background:var(--cll-card);border:1px solid var(--cll-line);border-radius:14px;
  padding:24px 24px 26px;margin-bottom:16px;
}
/* titolo dello step */
body#checkout .step__title{margin:0 0 18px;}
body#checkout .step__title .page-title-section{
  font-family:var(--cll-disp);font-weight:800;letter-spacing:-.02em;line-height:1.05;
  font-size:1.55rem;color:var(--cll-ink);margin:0;
}
body#checkout .step__title hr{display:none;}
body#checkout .step__title{border-bottom:1px solid var(--cll-line);padding-bottom:16px;}

/* step non correnti (riepilogo cliccabile): titolo piu' piccolo + freccia */
body#checkout .step:not(.step--current) .step__title .page-title-section{font-size:1.05rem;color:var(--cll-ink-soft);}
body#checkout .step:not(.step--current){padding:16px 24px;}
body#checkout .step.-clickable:not(.step--current){cursor:pointer;}
body#checkout .step.-clickable:not(.step--current):hover{border-color:#AEB5C0;}

/* tab "Order as a guest / Sign in" */
body#checkout #personal-information-tabs.nav-underline{gap:6px;border-bottom:1px solid var(--cll-line);margin-bottom:22px;--bs-nav-underline-gap:0;}
body#checkout #personal-information-tabs .nav-link{
  font-family:var(--cll-disp);font-weight:800;letter-spacing:-.01em;font-size:.98rem;
  color:var(--cll-ink-dim);border:0;border-bottom:2px solid transparent;
  padding:.35rem .1rem .7rem;margin-right:26px;background:none;border-radius:0;
}
body#checkout #personal-information-tabs .nav-link:hover{color:var(--cll-ink);}
body#checkout #personal-information-tabs .nav-link.active{color:var(--cll-ink);border-bottom-color:var(--cll-red);}

/* etichette e campi */
body#checkout .step .form-label{
  font-family:var(--cll-sans);font-weight:600;font-size:.85rem;color:var(--cll-ink);
  margin-bottom:7px;letter-spacing:0;
}
body#checkout .step .form-label.required::after{content:" *";color:var(--cll-red);font-weight:700;}
body#checkout .step .mb-3{margin-bottom:1.15rem!important;}
body#checkout .step .form-control,
body#checkout .step .form-select{padding:.62rem .85rem;font-size:.95rem;min-height:2.9rem;}
body#checkout .step .form-text{font-family:var(--cll-sans);font-size:.78rem;color:var(--cll-ink-dim);margin-top:6px;}
body#checkout .step .form-control::placeholder{color:var(--cll-ink-dim);}

/* checkbox / radio accessibili in rosso */
body#checkout .step .form-check-input{accent-color:var(--cll-red);width:1.1rem;height:1.1rem;margin-top:.15rem;border-color:var(--cll-line);}
body#checkout .step .form-check-input:checked{background-color:var(--cll-red);border-color:var(--cll-red);}
body#checkout .step .form-check{padding-left:1.9rem;min-height:auto;margin-bottom:.5rem;}
body#checkout .step .form-check-label{font-size:.9rem;color:var(--cll-ink-soft);line-height:1.5;}
body#checkout .step .form-check-label .fw-bold,
body#checkout .step .form-check-label span.fw-bold{color:var(--cll-ink);}
/* social title (radio inline Mr/Mrs) */
body#checkout .step .form-check-inline{margin-right:1.5rem;}

/* helper "Only letters..." e blocco consensi: piu' respiro fra i gruppi */
body#checkout .step form .form-check + .form-check{margin-top:.1rem;}

/* account transformation checkbox (Create an account) */
body#checkout .step #password-form__check + .form-check-label{color:var(--cll-ink-soft);}
body#checkout .step .js-password-form__input-wrapper{margin-top:.6rem;}

/* bottoni: primario rosso pieno gia' globale; secondari (Back/Add) in ink */
body#checkout .step .btn-outline-primary{
  --bs-btn-color:var(--cll-ink);--bs-btn-border-color:var(--cll-line);
  --bs-btn-hover-bg:var(--cll-ink);--bs-btn-hover-border-color:var(--cll-ink);--bs-btn-hover-color:var(--cll-paper);
  border-width:1.5px;font-family:var(--cll-disp);font-weight:500;
}
body#checkout .step .btn-primary{font-family:var(--cll-disp);font-weight:800;padding:.7rem 1.5rem;}
body#checkout .step .buttons-wrapper{display:flex;gap:12px;align-items:center;margin-top:22px;flex-wrap:wrap;}
body#checkout .step .buttons-wrapper--end{justify-content:flex-end;}
body#checkout .step .buttons-wrapper--split{justify-content:space-between;}
body#checkout .step .buttons-wrapper .material-icons{font-size:1.15rem;}
@media(max-width:575.98px){
  body#checkout .step .buttons-wrapper--split{flex-direction:column-reverse;align-items:stretch;}
  body#checkout .step .buttons-wrapper--split .btn{width:100%;justify-content:center;}
}

/* account connesso (personal info loggato) */
body#checkout .step__account{background:var(--cll-paper-2);border:1px solid var(--cll-line);border-radius:10px;padding:14px 16px;font-size:.92rem;}
body#checkout .step__account p{margin-bottom:.35rem;}

/* =========================================================================
   STEP INDIRIZZI - address card mondo B
   ========================================================================= */
body#checkout .address__list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 18px;}
body#checkout .address-card{
  background:var(--cll-card);border:1.5px solid var(--cll-line);border-radius:12px;
  transition:border-color .18s ease,box-shadow .18s ease;margin:0;
}
body#checkout .address-card:hover{border-color:var(--cll-ink-dim);}
body#checkout .address-card.selected{border-color:var(--cll-red);box-shadow:0 0 0 3px rgba(193,0,22,.08);}
body#checkout .address-card__container{padding:16px 16px;display:block;cursor:pointer;margin:0;}
body#checkout .address-card__header{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
body#checkout .address-card__alias{font-family:var(--cll-disp);font-weight:800;color:var(--cll-ink);font-size:1rem;}
body#checkout .address-card__content{font-size:.9rem;color:var(--cll-ink-soft);line-height:1.5;font-style:normal;}
body#checkout .address-card__actions{display:flex;gap:16px;margin-top:12px;font-family:var(--cll-mono);font-size:.74rem;}
body#checkout .address-card__edit{color:var(--cll-ink-dim);}
body#checkout .address-card__edit:hover{color:var(--cll-ink);}
body#checkout .address-card__delete{color:var(--cll-red);}
body#checkout .address-card .custom-radio .form-check-input{accent-color:var(--cll-red);width:1.15rem;height:1.15rem;}
body#checkout .js-address-form .h3{font-family:var(--cll-disp);font-weight:800;font-size:1.15rem;color:var(--cll-ink);margin:6px 0 14px;}
@media(max-width:600px){body#checkout .address__list{grid-template-columns:1fr;}}

/* =========================================================================
   STEP SPEDIZIONE - opzioni corriere come radio card mondo B
   ========================================================================= */
body#checkout .delivery-options__list{display:flex;flex-direction:column;gap:11px;}
body#checkout .delivery-option__item{
  border:1.5px solid var(--cll-line);border-radius:12px;overflow:hidden;
  transition:border-color .18s ease,background .18s ease;
}
body#checkout .delivery-option__item:hover{border-color:var(--cll-ink-dim);}
body#checkout .delivery-option__item:has(input:checked){border-color:var(--cll-red);background:rgba(193,0,22,.035);}
body#checkout .delivery-option__label{
  display:grid;grid-template-columns:auto 1fr auto;gap:8px 16px;align-items:center;
  margin:0;padding:15px 16px;cursor:pointer;
}
body#checkout .delivery-option__left{display:flex;align-items:center;gap:12px;min-width:0;}
body#checkout .delivery-option__check{margin:0;padding:0;min-height:auto;display:flex;}
body#checkout .delivery-option__check .form-check-input{accent-color:var(--cll-red);width:1.2rem;height:1.2rem;margin:0;float:none;}
body#checkout .delivery-option__carrier{display:flex;align-items:center;gap:10px;min-width:0;}
body#checkout .delivery-option__carrier-name{font-family:var(--cll-disp);font-weight:800;color:var(--cll-ink);font-size:.98rem;}
body#checkout .delivery-option__carrier-logo{max-height:26px;width:auto;}
body#checkout .delivery-option__content{color:var(--cll-ink-soft);font-size:.9rem;}
body#checkout .delivery-option__price{font-family:var(--cll-mono);color:var(--cll-ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem;}
body#checkout .delivery-option__extra:not(:empty){padding:0 16px 14px;font-size:.85rem;color:var(--cll-ink-dim);}
@media(max-width:520px){
  body#checkout .delivery-option__label{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
  body#checkout .delivery-option__left{width:100%;}
  body#checkout .delivery-option__carrier-name{white-space:normal;}
  body#checkout .delivery-option__price{align-self:flex-start;}
}
/* commento ordine */
body#checkout .step textarea{border-radius:10px;min-height:5rem;}
body#checkout .order-options__title,
body#checkout .delivery-options-list__title,
body#checkout label[for="delivery_message"]{font-family:var(--cll-disp);font-weight:800;color:var(--cll-ink);font-size:1rem;}

/* link "fatturazione diversa" reso discreto (non un bottone grigio) */
body#checkout .btn-basic,
body#checkout a[data-link-action="different-invoice-address"]{
  display:inline-block;background:transparent;border:0;padding:0;margin:2px 0 4px;
  color:var(--cll-red);font-family:var(--cll-mono);font-size:.8rem;letter-spacing:.01em;
  text-decoration:underline;text-underline-offset:3px;box-shadow:none;
}
body#checkout .btn-basic:hover,
body#checkout a[data-link-action="different-invoice-address"]:hover{color:var(--cll-red-deep);background:transparent;}

/* =========================================================================
   STEP PAGAMENTO - radio card mondo B (come mockup .pm)
   ========================================================================= */
body#checkout .payment-options__list{display:flex;flex-direction:column;gap:11px;margin-bottom:6px;}
body#checkout .payment-option{
  border:1.5px solid var(--cll-line);border-radius:12px;padding:0;margin:0;
  transition:border-color .18s ease,background .18s ease;position:relative;
}
body#checkout .payment-option:hover{border-color:var(--cll-ink-dim);}
body#checkout .payment-option:has(.payment-option__input:checked){border-color:var(--cll-red);background:rgba(193,0,22,.035);}
body#checkout .payment-option__form-check{display:flex;align-items:center;gap:12px;padding:15px 16px;margin:0;min-height:auto;}
body#checkout .payment-option__input{accent-color:var(--cll-red);width:1.2rem;height:1.2rem;margin:0;flex:none;float:none;}
body#checkout .payment-option__label{
  display:flex;align-items:center;gap:12px;margin:0;cursor:pointer;flex:1;
  font-family:var(--cll-disp);font-weight:800;font-size:.98rem;color:var(--cll-ink);
}
body#checkout .payment-option__label img{max-height:26px;width:auto;flex:none;}
body#checkout .payment-option__additional-information{padding:0 16px 15px;font-size:.9rem;color:var(--cll-ink-soft);}
body#checkout .payment-option__additional-information p{margin-bottom:.4rem;}
body#checkout .js-payment-option-form{padding:0 16px;}
body#checkout .payment-option__free,
body#checkout .payment-options__free{font-family:var(--cll-mono);color:var(--cll-red);}

/* condizioni da approvare (terms) */
body#checkout #conditions-to-approve{background:var(--cll-paper-2);border:1px solid var(--cll-line);border-radius:10px;padding:12px 16px;margin-top:18px;}
body#checkout #conditions-to-approve .form-check{margin:.2rem 0;}
body#checkout #conditions-to-approve a,
body#checkout .payment-option a{color:var(--cll-red);}

/* alert "scegli metodo/accetta condizioni" reso mondo B (no rosso pieno urlato) */
body#checkout .js-alert-payment-conditions.alert-danger{
  background:var(--cll-card);border:1px solid var(--cll-line);border-left:3px solid var(--cll-red);
  color:var(--cll-ink-soft);border-radius:10px;font-size:.9rem;
}
body#checkout .js-alert-payment-conditions.alert-danger .alert-link{color:var(--cll-red);}

/* riepilogo finale ordine (prima del pagamento) */
body#checkout .order-final-summary{background:var(--cll-paper-2);border:1px solid var(--cll-line);border-radius:12px;padding:16px 18px;margin:18px 0;}
body#checkout .order-final-summary table{width:100%;font-size:.92rem;}
body#checkout .order-final-summary .font-weight-bold,
body#checkout .order-final-summary strong{font-family:var(--cll-mono);font-variant-numeric:tabular-nums;color:var(--cll-ink);}

/* =========================================================================
   RIEPILOGO ORDINE (aside) - card sticky mondo B
   ========================================================================= */
body#checkout .checkout-grid__aside-wrapper{
  position:sticky;top:20px;
  background:var(--cll-card);border:1px solid var(--cll-line);border-radius:14px;
  padding:22px 22px 20px;box-shadow:0 24px 44px -32px rgba(20,24,31,.55);
}
body#checkout .checkout__summary-accordion,
body#checkout .checkout__summary-accordion-item{background:transparent;border:0;}
body#checkout .checkout__summary-accordion-header{margin:0;}
/* titolo "Order summary" -> heading pannello */
body#checkout .checkout__summary-accordion-header .accordion-button{
  font-family:var(--cll-disp);font-weight:800;letter-spacing:-.01em;font-size:1.15rem;color:var(--cll-ink);
  background:transparent;box-shadow:none;padding:0 0 14px;border-bottom:1px solid var(--cll-line);margin-bottom:14px;
}
body#checkout .checkout__summary-accordion-header .accordion-button::after{display:none;}
body#checkout .checkout__summary-accordion-wrapper{overflow:visible;}

/* niente alone blu Bootstrap sugli accordion del checkout (summary/voucher/dettagli):
   click pulito, e per tastiera resta l'outline rosso accessibile */
body#checkout .accordion-button:focus{box-shadow:none;outline:none;}
body#checkout .accordion-button:focus-visible{outline:2px solid var(--cll-red);outline-offset:2px;}

body#checkout .cart-summary__products-number{font-family:var(--cll-mono);font-size:.78rem;letter-spacing:.02em;color:var(--cll-ink-dim);text-transform:uppercase;}
body#checkout .cart-summary__products hr,
body#checkout #js-checkout-summary hr{border-color:var(--cll-line);opacity:.7;margin:.6rem 0;}
/* "Show details" */
body#checkout .cart-summary__products-accordion .accordion-button{
  font-family:var(--cll-mono);font-size:.76rem;letter-spacing:.02em;color:var(--cll-red);
  background:transparent;box-shadow:none;padding:.3rem 0;text-transform:none;width:auto;
}
body#checkout .cart-summary__products-accordion .accordion-button::after{width:.9rem;height:.9rem;background-size:.9rem;margin-left:6px;}
body#checkout .cart-summary__products-accordion .accordion-button:not(.collapsed){color:var(--cll-red-deep);}

/* riga prodotto */
body#checkout .cart-summary__products-list{display:flex;flex-direction:column;gap:2px;padding-top:6px;}
body#checkout .cart-summary-product{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--cll-line);}
body#checkout .cart-summary__product:last-child .cart-summary-product{border-bottom:0;}
body#checkout .cart-summary-product__image{flex:none;width:52px;height:52px;border:1px solid var(--cll-line);border-radius:9px;background:var(--cll-paper-2);overflow:hidden;display:grid;place-items:center;}
body#checkout .cart-summary-product__image img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;}
body#checkout .cart-summary-product__content{display:flex;justify-content:space-between;gap:10px;flex:1;min-width:0;}
body#checkout .cart-summary-product__link{font-family:var(--cll-disp);font-weight:800;font-size:.9rem;color:var(--cll-ink);line-height:1.25;}
body#checkout .cart-summary-product__link:hover{color:var(--cll-red);}
body#checkout .cart-summary-product__quantity,
body#checkout .cart-summary-product__attributes,
body#checkout .cart-summary-product__unit-price,
body#checkout .cart-summary-product__price{font-family:var(--cll-mono);font-size:.72rem;color:var(--cll-ink-dim);margin-top:3px;}
body#checkout .cart-summary-product__total{font-family:var(--cll-mono);font-size:.9rem;color:var(--cll-ink);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;}

/* subtotali / totali */
body#checkout .cart-summary__subtotals,
body#checkout .cart-summary__total{margin-top:6px;}
body#checkout .cart-summary__line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;font-size:.92rem;color:var(--cll-ink-soft);}
body#checkout .cart-summary__label{color:var(--cll-ink-soft);}
body#checkout .cart-summary__value{font-family:var(--cll-mono);font-variant-numeric:tabular-nums;color:var(--cll-ink);text-align:right;white-space:nowrap;}
body#checkout #cart-subtotal-discount .cart-summary__value,
body#checkout #cart-subtotal-discount .cart-summary__label{color:var(--cll-red);}
/* totale finale in evidenza */
body#checkout .cart-summary__total{border-top:1px solid var(--cll-line);margin-top:10px;padding-top:8px;}
body#checkout .cart-summary__line--bold{padding:5px 0;}
body#checkout .cart-summary__line--bold .cart-summary__label{font-family:var(--cll-disp);font-weight:800;color:var(--cll-ink);font-size:1rem;}
body#checkout .cart-summary__line--bold .cart-summary__value{font-family:var(--cll-mono);font-weight:400;color:var(--cll-ink);font-size:1.05rem;}
body#checkout .cart-summary__total .cart-summary__line--bold:last-child .cart-summary__label{font-size:1.05rem;}
body#checkout .cart-summary__total .cart-summary__line--bold:last-child .cart-summary__value{font-size:1.4rem;font-family:var(--cll-disp);font-weight:800;letter-spacing:-.02em;}

/* voucher / promo code */
body#checkout .cart-voucher{margin-top:12px;border-top:1px solid var(--cll-line);padding-top:6px;}
body#checkout .cart-voucher__accordion-button{
  font-family:var(--cll-mono);font-size:.76rem;color:var(--cll-ink-dim);text-transform:uppercase;letter-spacing:.04em;
  background:transparent;box-shadow:none;padding:.5rem 0;
}
body#checkout .cart-voucher__accordion-button:not(.collapsed){color:var(--cll-ink);}
body#checkout .cart-voucher__accordion-button::after{width:.85rem;height:.85rem;background-size:.85rem;}
body#checkout .cart-voucher__form{display:flex;gap:8px;padding:4px 0 8px;}
body#checkout .cart-voucher__form .form-control{min-height:2.6rem;font-size:.88rem;}
body#checkout .cart-voucher__form .btn-primary{font-family:var(--cll-disp);font-weight:600;white-space:nowrap;padding:.4rem 1rem;}
body#checkout .cart-voucher__label--voucher{font-family:var(--cll-sans);color:var(--cll-ink-soft);}
body#checkout .cart-voucher__value{font-family:var(--cll-mono);color:var(--cll-red);}

/* =========================================================================
   RASSICURAZIONE (aside) - niente blu: glifo diamante + testo mondo B
   Il checkout usa displayBlockProduct.tpl (override del tema): nessuna <img>
   del modulo -> niente SVG inline blu. In piu', difensivamente, qualsiasi
   immagine/SVG eventualmente presente e' nascosta.
   ========================================================================= */
body#checkout .checkout-grid__aside .blockreassurance{
  margin-top:18px;padding-top:16px;border-top:1px solid var(--cll-line);
  display:flex;flex-direction:column;gap:13px;
}
body#checkout .checkout-grid__aside .reassurance{
  display:flex;align-items:flex-start;gap:11px;margin:0;padding:0;
  background:transparent;border:0;color:inherit;text-decoration:none;
}
body#checkout .checkout-grid__aside .cll-reassure__d{
  flex:none;width:7px;height:7px;margin-top:6px;background:var(--cll-red);
  border-radius:1px;transform:rotate(45deg);
}
/* difensivo: mai icone blu del modulo qui */
body#checkout .checkout-grid__aside .reassurance__image,
body#checkout .checkout-grid__aside .reassurance svg,
body#checkout .checkout-grid__aside .reassurance img{display:none!important;}
body#checkout .checkout-grid__aside .cll-reassure__content{display:flex;flex-direction:column;gap:2px;}
body#checkout .checkout-grid__aside .cll-reassure__title{font-family:var(--cll-mono);font-size:.78rem;line-height:1.35;color:var(--cll-ink-soft);}
body#checkout .checkout-grid__aside .reassurance:hover .cll-reassure__title{color:var(--cll-ink);}
body#checkout .checkout-grid__aside .cll-reassure__desc{font-family:var(--cll-sans);font-size:.74rem;line-height:1.35;color:var(--cll-ink-dim);}

/* aside sotto la colonna su mobile (no sticky) */
@media(max-width:991.98px){
  body#checkout .checkout-grid__aside-wrapper{position:static;box-shadow:none;margin-top:8px;}
}

/* =========================================================================
   PAGINA CONFERMA ORDINE (order-confirmation) - mondo B
   ========================================================================= */
body#order-confirmation #content-wrapper,
body#order-confirmation .page-content{max-width:var(--cll-co-maxw);margin-left:auto;margin-right:auto;}
body#order-confirmation main .container{padding-top:20px;}
/* superficie di checkout spogliata: via anche il breadcrumb (ridondante col
   link "Torna al negozio" dell'header minimale) */
body#order-confirmation .breadcrumb{display:none;}
.cll-oc__hero{
  background:var(--cll-card);border:1px solid var(--cll-line);border-radius:16px;
  padding:30px 30px;margin:24px 0 16px;display:flex;gap:18px;align-items:flex-start;
}
.cll-oc__check{flex:none;width:46px;height:46px;border-radius:12px;background:var(--cll-ink);display:grid;place-items:center;color:#fff;}
.cll-oc__check svg{width:24px;height:24px;}
.cll-oc__hero-body{flex:1;min-width:0;}
.cll-oc__eyebrow{font-family:var(--cll-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cll-red);margin-bottom:8px;}
.cll-oc__title{font-family:var(--cll-disp);font-weight:800;letter-spacing:-.02em;font-size:clamp(1.6rem,3.4vw,2.2rem);color:var(--cll-ink);margin:0 0 10px;line-height:1.05;}
.cll-oc__hero-body p{color:var(--cll-ink-soft);font-size:.98rem;margin:0;}
.cll-oc__hero-body a{color:var(--cll-red);}
.cll-oc__hero hr{border-color:var(--cll-line);opacity:.7;margin:14px 0;}

body#order-confirmation .order-confirmation__details.card,
body#order-confirmation .card{background:var(--cll-card);border:1px solid var(--cll-line);border-radius:14px;}
body#order-confirmation .order-confirmation__details .card-body{padding:24px;}
body#order-confirmation .order-confirmation__details h2,
body#order-confirmation .card-body .h2{font-family:var(--cll-disp);font-weight:800;letter-spacing:-.01em;font-size:1.35rem;color:var(--cll-ink);margin-bottom:16px;}
body#order-confirmation .order-confirmation__details-list{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:8px;}
body#order-confirmation .order-confirmation__details-list li{font-family:var(--cll-mono);font-size:.85rem;color:var(--cll-ink-soft);}
body#order-confirmation .order-confirmation__details hr,
body#order-confirmation .card hr{border-color:var(--cll-line);opacity:.7;}
body#order-confirmation table{width:100%;font-size:.92rem;color:var(--cll-ink-soft);}
body#order-confirmation table th{font-family:var(--cll-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cll-ink-dim);font-weight:400;border-bottom:1px solid var(--cll-line);padding:8px 6px;}
body#order-confirmation table td{padding:10px 6px;border-bottom:1px solid var(--cll-line);vertical-align:middle;}
body#order-confirmation table .product-name,
body#order-confirmation table strong{font-family:var(--cll-disp);font-weight:800;color:var(--cll-ink);}
body#order-confirmation table .price,
body#order-confirmation table td.text-end,
body#order-confirmation table td.text-right{font-family:var(--cll-mono);font-variant-numeric:tabular-nums;color:var(--cll-ink);}
body#order-confirmation .bg-light,
body#order-confirmation .order-confirmation__account-transformation{background:var(--cll-paper-2)!important;border:1px solid var(--cll-line);border-radius:14px;}
body#order-confirmation .order-confirmation__account-transformation .form-label{font-weight:600;color:var(--cll-ink);}
@media(max-width:575.98px){
  .cll-oc__hero{padding:22px 20px;flex-direction:column;gap:14px;}
  body#order-confirmation .order-confirmation__details .card-body{padding:18px;}
}

/* ============================================================
   Scheda prodotto: blocco fiducia .cll-trust (template ereditato
   dal parent hummingbird di PROD, che porta con se' uno <style>
   inline a palette vecchia rosa). Qui lo si ritinge nel mondo B:
   la specificita' body#product batte i selettori inline .cll-trust*.
   ============================================================ */
body#product div.cll-trust{background:var(--cll-card);border:1px solid var(--cll-line);border-radius:14px;}
body#product div.cll-trust .cll-trust__list li{color:var(--cll-ink-soft);border-bottom-color:var(--cll-line);}
body#product div.cll-trust .cll-trust__ico{color:var(--cll-red);}

/* Servizio installazione nel buy box: da checkbox di design a LINK reale
   al prodotto del servizio. Stesso contenitore .cll-svc, affordance freccia. */
a.cll-svc{color:inherit;text-decoration:none;display:flex;}
a.cll-svc:hover{text-decoration:none;color:inherit;}
a.cll-svc:hover .cll-svc__pr{color:var(--cll-red);}

/* Galleria prodotto: con UNA sola immagine la strip di miniature e' solo un
   quadratino ridondante sotto la cover — via. */
body#product .js-thumb-container:only-child{display:none!important;}

/* Recensioni a ZERO: l'override del tpl emette solo il marker .cll-rev-none;
   qui si nasconde anche il contenitore del tema (accordion/sezione), titolo
   compreso, cosi' il blocco sparisce del tutto. */
body#product .accordion-item:has(.cll-rev-none),
body#product .product-extra-content:has(.cll-rev-none),
body#product section:has(> .cll-rev-none){display:none!important;}

/* ============================================================
   ROUND 2B (feedback Luca 2026-07-29)
   ============================================================ */

/* --- Sottomenu "Moduli": le voci di 2° livello sono foglie. Il megamenu
       hummingbird prevede pannello destro coi nipoti: qui resterebbe VUOTO
       (5 tabpanel vuoti) — via, e la lista sinistra diventa una fascia
       orizzontale di link semplici. --- */
.ps-mainmenu__desktop .submenu__right{display:none!important;}
.ps-mainmenu__desktop .submenu__row{margin:0;}
.ps-mainmenu__desktop .submenu__left{
  flex:0 0 100%;max-width:100%;width:100%;
  display:flex!important;flex-direction:row!important;flex-wrap:wrap;
  align-items:center;justify-content:flex-start;gap:4px 6px;
}
.ps-mainmenu__desktop .submenu__left-item{
  width:auto!important;flex:0 0 auto!important;display:inline-block;
  padding:9px 14px;font-family:var(--cll-disp);font-weight:500;font-size:14.5px;
  color:var(--cll-ink);border:1px solid transparent;text-decoration:none;text-align:left;
}
.ps-mainmenu__desktop .submenu__left-item:hover,
.ps-mainmenu__desktop .submenu__left-item[aria-selected="true"]{
  color:var(--cll-red);background:var(--cll-card);border-color:var(--cll-line);
}
.ps-mainmenu__desktop .submenu .container{padding-top:8px;padding-bottom:12px;}

/* --- Scheda prodotto COMPATTA: l'immagine dei moduli e' un'icona, non serve
       mezza pagina. Colonna sinistra stretta (icona + box fiducia), tutto il
       resto a destra. Sotto lg si torna allo stack nativo. --- */
@media (min-width:992px){
  body#product .product__container{
    display:grid!important;grid-template-columns:300px minmax(0,1fr);
    gap:0 42px;align-items:start;
  }
  body#product .product__left,
  body#product .product__right{width:100%!important;max-width:none!important;float:none!important;}
  body#product .product__images,
  body#product .product__carousel{max-width:300px;}
}
@media (max-width:991.98px){
  body#product .product__images,
  body#product .product__carousel{max-width:300px;margin-left:auto;margin-right:auto;}
}

/* --- Scheda prodotto: bottone "Aggiungi al carrello" a larghezza naturale
       (non un nastro a tutta colonna) --- */
@media (min-width:768px){
  body#product .product__add-to-cart.add,
  body#product .product__add-to-cart{flex:0 0 auto!important;width:auto!important;}
  body#product .product__add-to-cart-button{
    width:auto!important;flex:0 0 auto!important;
    padding-left:28px;padding-right:28px;white-space:nowrap;
  }
}

/* --- Scheda prodotto: la zona bassa (Descrizione + tab/accordion) su
       CARD BIANCA, non sul foglio blueprint nudo --- */
body#product #product_accordion,
body#product .product__accordion,
body#product .accordion{
  background:#fff;border:1px solid var(--cll-line);
  --bs-accordion-bg:#fff;
  padding:4px 22px;
}
body#product .accordion .accordion{border:0;padding:0;}
body#product .accordion-item{background:#fff;}
body#product .accordion-button{background:#fff;}

/* --- Liste prodotto COMPATTE (categoria, correlati, cross-selling):
       griglia fitta auto-fill, icone contenute, card asciutte. --- */
.products{
  display:grid!important;flex-wrap:unset;
  grid-template-columns:repeat(auto-fill,minmax(168px,1fr));
  gap:12px;margin:0;
}
.products > *{width:auto!important;max-width:none!important;padding:0!important;margin:0!important;}
.product-miniature{height:100%;}
.product-miniature__inner{
  height:100%;display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--cll-line);
  transition:border-color .18s ease, box-shadow .18s ease;
}
.product-miniature__inner:hover{border-color:#AEB5C0;box-shadow:0 10px 22px -16px rgba(20,24,31,.35);}
.product-miniature__image-container{padding:12px 12px 0;text-align:center;}
.product-miniature__image-link{display:block;}
.product-miniature__image{max-height:110px;width:auto;max-width:100%;object-fit:contain;margin:0 auto;}
.product-miniature .product-miniature__infos,
.product-miniature__bottom{padding:10px 12px 12px;display:flex;flex-direction:column;flex:1;gap:6px;}
.product-miniature h2,.product-miniature .h6,.product-miniature .product-miniature__title{
  font-family:var(--cll-disp);font-weight:600;font-size:13.5px;line-height:1.3;margin:0;
}
.product-miniature .price{font-family:var(--cll-mono);font-size:13px;font-variant-numeric:tabular-nums;}
.product-miniature .btn,.product-miniature__details{
  font-size:11.5px;padding:5px 10px;margin-top:auto;align-self:flex-start;
}

/* --- Blocco info aggiuntive (condividi/social): niente voragine sotto --- */
body#product .product__additional-info{margin-bottom:8px!important;padding-bottom:0!important;min-height:0!important;}
body#product .product__additional-info > *:last-child{margin-bottom:0!important;}

/* --- Zona servizi sotto il buy box: box installazione PRIMA, nota rinnovo
       DOPO (il modulo le emette invertite), tutto in colonna piena. --- */
body#product .cll-svc-zone{display:flex;flex-direction:column;gap:9px;margin-top:14px;}
body#product .cll-svc-zone > *{order:1;width:100%!important;max-width:none!important;margin:0!important;float:none!important;}
body#product .cll-svc-zone > p{order:2;font-size:13px;color:var(--cll-ink-soft);}

/* --- Bottoni "basic" di hummingbird (es. "Hai dimenticato la password?"):
       arrivano con padding orizzontale ZERO e fondo grigio — resi link
       terziari puliti. --- */
.btn-basic,.btn.btn-basic{
  padding:6px 12px!important;background:transparent!important;
  color:var(--cll-ink-dim)!important;
}
.btn-basic:hover,.btn.btn-basic:hover{color:var(--cll-red)!important;background:var(--cll-card)!important;}

/* --- Pagine "contenuto nudo" (login, registrazione, password, account):
       al form serve una card, non il foglio blueprint nudo. --- */
body#authentication #content,
body#registration #content,
body#password #content,
body#identity #content,
body#address #content,
body#guest-tracking #content{
  background:#fff;border:1px solid var(--cll-line);
  padding:28px 30px;
}
body#authentication .page-content,body#registration .page-content{background:transparent;}

/* --- Newsletter footer: titolo allineato verticalmente al campo input
       (le condizioni sotto il form non spostano piu' il centro). --- */
.cll-footer__before .ps-emailsubscription .row{align-items:flex-start;}
.cll-footer__before .ps-emailsubscription p.h3{display:flex;align-items:center;min-height:44px;}

/* ============================================================
   RADIUS GLOBALE (decisione Luca): squadrato, max 3px OVUNQUE.
   Esclusi i radio (devono restare tondi per leggibilita' UX).
   DEVE restare l'ULTIMA sezione del file.
   ============================================================ */
:root,:root[data-bs-theme="light"]{
  --bs-border-radius:3px;--bs-border-radius-sm:2px;--bs-border-radius-lg:3px;
  --bs-border-radius-xl:3px;--bs-border-radius-xxl:3px;--bs-border-radius-pill:3px;
}
body :where(a,button,div,section,span,input:not([type="radio"]),select,textarea,img,picture,figure,ul,ol,li,form,table,td,th,nav,aside,article,header,footer,label,small,iframe,video,h1,h2,h3,h4,h5,h6,p){
  border-radius:3px!important;
}
body :where(input[type="radio"],.form-check-input[type="radio"]){border-radius:50%!important;}
