/* ============================================================
   SKINKULT — style.css (unico foglio di stile condiviso)
   Base: home-approvata-v3.html (cliente-approvata) — NON modificare.
   Token campionati dal logo (delta <5 RGB). Fonte: design/tokens.css
   ============================================================ */

  :root{
    /* palette campionata da IMG_7422.JPG */
    --skin:#d6ac8e; --skin2:#cda489; --skin3:#bd9070;
    --emb:#b9856a;                       /* interno incisione */
    --ink:#4f2c17; --deep:#5a3017; --soft:#55351f;
    --hi:rgba(244,216,196,.95);          /* luce bordo #f0d2be */
    --sh:rgba(122,58,32,.45);            /* ombra bordo #8a472d */
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{background:var(--skin3);scroll-behavior:smooth}
  /* niente bande laterali: lo sfondo pieno riprende lo stesso gradiente verticale del body */
  html::before{content:"";position:fixed;inset:0;z-index:-1;
    background:linear-gradient(180deg,var(--skin) 0%,var(--skin2) 52%,var(--skin3) 100%)}
  body{
    font-family:'Inter',system-ui,sans-serif;
    background:transparent;                 /* lo sfondo pieno è su html::before: niente bande */
    color:var(--ink); max-width:480px; margin:0 auto; min-height:100vh;
    position:relative; overflow-x:hidden;
    font-variant-numeric:tabular-nums;
    -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
    -webkit-tap-highlight-color:transparent;
  }
  body::before{content:"";position:fixed;left:50%;transform:translateX(-50%);top:-130px;
    width:580px;height:430px;pointer-events:none;z-index:0;
    background:radial-gradient(ellipse at center,rgba(240,210,190,.32),transparent 62%)}
  .grain{position:fixed;inset:0;pointer-events:none;z-index:60;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.95' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.54 0 0 0 0 0.28 0 0 0 0 0.18 0 0 0 0.13 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23a)'/%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.45' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.94 0 0 0 0 0.82 0 0 0 0 0.74 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23b)'/%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.014' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0.52 0 0 0 0 0.3 0 0 0 0 0.18 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='420' height='420' filter='url(%23c)'/%3E%3C/svg%3E");}
  .vignette{position:fixed;inset:0;pointer-events:none;z-index:61;
    background:radial-gradient(ellipse at 50% 40%,transparent 50%,rgba(110,58,30,.2))}
  main,header,.announce,footer{position:relative;z-index:1}

  /* ---------- rifinitura tipografica (taste): niente parole orfane, rag pulito ---------- */
  h1,h2,h3,.hero-tag,.eyebrow,.collez-name,.name,.car-tit,.pdp-right h1{text-wrap:balance}
  p,.sub,.storia,.tipo,.info p,.caption,.buy-note,.car-nota{text-wrap:pretty}
  /* ingresso a cascata delle card di collezione (invece di apparire tutte insieme) */
  @media (prefers-reduced-motion:no-preference){
    .grid .card.rev:nth-of-type(2){transition-delay:.08s}
    .grid .card.rev:nth-of-type(3){transition-delay:.16s}
  }

  /* ---------- materia ---------- */
  .raise{background:linear-gradient(180deg,var(--skin),var(--skin2));
    box-shadow:6px 7px 15px var(--sh),-5px -5px 13px var(--hi)}
  .press{background:linear-gradient(180deg,var(--skin2),var(--skin));
    box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
  .deboss{color:var(--emb);
    text-shadow:
      0 -1.5px 2px rgba(122,58,32,.55),
      0 -0.5px 1px rgba(122,58,32,.4),
      0 2px 2.5px rgba(244,220,200,.9),
      0 1px 1px rgba(244,220,200,.55)}

  /* ---------- header ---------- */
  .announce{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    text-align:center;padding:10px 16px;color:var(--deep);
    background:linear-gradient(180deg,var(--skin2),var(--skin));
    box-shadow:inset 0 3px 7px var(--sh),inset 0 -2px 5px var(--hi)}
  header{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;
    padding:14px 18px;background:rgba(205,164,137,.86);backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px)}
  .menu{width:42px;height:42px;border-radius:50%;display:flex;flex-direction:column;
    justify-content:center;align-items:center;gap:4.5px;border:none;cursor:pointer}
  .menu i{display:block;width:16px;height:2px;border-radius:2px;background:var(--ink)}
  .logo{font-weight:800;font-size:23px;letter-spacing:.045em}
  header .logo{font-size:28px;letter-spacing:.12em}
  header .logo.deboss{text-shadow:0 -2px 3px rgba(122,58,32,.62),0 -0.5px 1px rgba(122,58,32,.45),0 2.5px 3px rgba(244,220,200,.95),0 1.5px 1.5px rgba(244,220,200,.6)}
  header a.logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
  .bag{min-width:42px;height:42px;border-radius:99px;display:flex;align-items:center;
    justify-content:center;font-size:12.5px;font-weight:700;color:var(--ink);padding:0 13px}

  /* ---------- hero ---------- */
  .hero{padding:126px 24px 6px;text-align:center;position:relative;z-index:1}
  .collane-clip{position:absolute;top:0;left:0;width:100%;height:300px;overflow:hidden;z-index:0;pointer-events:none}
  .collane-hero{position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(900px,150%);aspect-ratio:1500/430;background:url(assets/necklaces-hero.png?v=7) top center/contain no-repeat;z-index:0;pointer-events:none;
    animation:collaneEntra 1.5s both}
  /* animazione di benvenuto: le collane scendono dall'alto con un rimbalzo elastico verticale smorzato */
  @keyframes collaneEntra{
    0%{transform:translate(-50%,-115%);animation-timing-function:ease-in}
    46%{transform:translate(-50%,7%);animation-timing-function:ease-out}
    64%{transform:translate(-50%,-3.4%);animation-timing-function:ease-in}
    80%{transform:translate(-50%,1.6%);animation-timing-function:ease-out}
    92%{transform:translate(-50%,-0.7%);animation-timing-function:ease-in}
    100%{transform:translate(-50%,0)}
  }
  @media (prefers-reduced-motion:reduce){
    .collane-hero{animation:none}
  }
  .eyebrow{font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;
    color:var(--deep);opacity:.8}
  h1{font-size:49px;line-height:1.03;font-weight:800;letter-spacing:.02em;
    margin:16px 0 16px;text-transform:uppercase}
  .hero-tag{font-size:14px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;line-height:1;margin:4px 0 22px}
  .sub{font-size:15px;line-height:1.6;color:var(--ink);opacity:.9;max-width:310px;margin:0 auto 26px}
  .cta{display:inline-block;font-weight:800;font-size:13.5px;letter-spacing:.07em;
    text-transform:uppercase;padding:18px 34px;border-radius:99px;color:var(--ink);
    background:linear-gradient(180deg,#e2bb9e,#c79c7d);
    box-shadow:7px 8px 16px var(--sh),-5px -5px 13px var(--hi),
      inset 0 1.5px 0 rgba(246,222,202,.85),inset 0 -2px 4px rgba(122,58,32,.25);
    text-decoration:none}
  .cta-soft{display:block;margin-top:18px;font-size:11.5px;font-weight:600;letter-spacing:.11em;
    text-transform:uppercase;color:var(--deep);text-decoration:none}
  .cta-soft span{border-bottom:1px solid rgba(115,63,36,.55);padding-bottom:3px}
  .necklace{display:block;margin:26px auto 2px}

  /* ---------- chips ---------- */
  .chips{display:flex;gap:10px;padding:18px 20px 8px;overflow-x:auto;
    scrollbar-width:none;-ms-overflow-style:none}
  .chips::-webkit-scrollbar{display:none}
  .chip{flex:0 0 auto;font-size:12px;font-weight:700;letter-spacing:.03em;
    padding:11px 19px;border-radius:99px;color:var(--ink)}
  .chip.on{color:var(--deep)}

  /* ---------- sezioni ---------- */
  .sec{padding:26px 20px 6px}
  .sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
  /* sezione configuratore: titolo + link + intro + bottoni tutti su un asse centrato coerente */
  #componi .sec-head{flex-direction:column;align-items:center;text-align:center;gap:6px}
  h2{font-size:21px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
  .sec-link{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
    color:var(--deep);text-decoration:none;border-bottom:1px solid rgba(115,63,36,.5);padding-bottom:2px}

  /* ---------- card prodotto ---------- */
  .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .card{border-radius:22px;padding:11px;position:relative}
  .badge{position:absolute;top:19px;left:19px;z-index:2;pointer-events:none;font-size:9px;font-weight:800;
    letter-spacing:.1em;text-transform:uppercase;color:var(--deep);
    background:linear-gradient(180deg,var(--skin2),var(--skin));
    padding:6px 10px;border-radius:99px;
    box-shadow:inset 1.5px 2px 4px var(--sh),inset -1.5px -1.5px 4px var(--hi)}
  .ph{height:128px;border-radius:15px;overflow:hidden;display:flex;align-items:center;justify-content:center;
    gap:5px;margin-bottom:12px;position:relative}
  .jewel{width:100%;height:100%;object-fit:contain;display:block;padding:4px 6px}
  .bead{width:21px;height:21px;border-radius:50%;
    box-shadow:inset -3px -4px 5px rgba(122,58,32,.4),inset 2px 2px 4px rgba(255,244,232,.9),
      2px 3px 5px rgba(122,58,32,.3)}
  .bead.s{width:14px;height:14px}
  .b1{background:#f1dcc6}.b2{background:#dcab97}.b3{background:#c99cb4}
  .b4{background:#e0bd85}.b5{background:#b3bfa5}
  .arc :nth-child(1),.arc :nth-child(5){transform:translateY(11px)}
  .arc :nth-child(2),.arc :nth-child(4){transform:translateY(3px)}
  .card-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}
  .name{font-weight:800;letter-spacing:.09em;font-size:14.5px;text-transform:uppercase}
  .tipo{font-size:11.5px;letter-spacing:.01em;color:var(--soft);margin:3px 0 6px;line-height:1.35}
  .price{font-weight:700;font-size:15px;color:var(--ink)}
  .add{flex:0 0 auto;width:35px;height:35px;border-radius:50%;border:none;cursor:pointer;
    font-size:19px;font-weight:500;color:var(--ink);line-height:1;padding-bottom:2px}

  /* ---------- storytelling ---------- */
  .story{margin:28px 20px 4px;padding:28px 24px;border-radius:24px;text-align:center}
  .story h2{margin-bottom:12px}
  .story p{font-size:14px;line-height:1.65;color:var(--ink);opacity:.9}
  .story .marks{margin-top:16px;font-size:11px;font-weight:700;letter-spacing:.12em;
    text-transform:uppercase;color:var(--deep);line-height:2.2}

  /* ---------- pietre ---------- */
  .stones{display:flex;gap:14px;padding:4px 20px 12px;overflow-x:auto;scrollbar-width:none}
  .stones::-webkit-scrollbar{display:none}
  .stone{flex:0 0 118px;border-radius:20px;padding:18px 12px 16px;text-align:center}
  .stone .bead{width:34px;height:34px;margin:0 auto 12px}
  .stone b{display:block;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
  .stone small{display:block;font-size:11px;color:var(--soft);margin-top:4px}

  /* ---------- recensioni ---------- */
  .review{border-radius:20px;padding:20px;margin-bottom:14px}
  .stars{font-size:13px;letter-spacing:.2em;color:var(--deep);margin-bottom:9px}
  .review p{font-size:14px;line-height:1.6;font-style:italic}
  .review span{display:block;margin-top:10px;font-size:10.5px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}

  /* ---------- newsletter ---------- */
  .news{margin:28px 20px 8px;padding:28px 22px;border-radius:24px;text-align:center}
  .news h2{margin-bottom:8px}
  .news p{font-size:13.5px;line-height:1.55;color:var(--ink);opacity:.9;max-width:280px;margin:0 auto 18px}
  .field{display:flex;gap:10px;align-items:center}
  .field input{flex:1;min-width:0;border:none;outline:none;border-radius:99px;
    padding:16px 18px;font-family:inherit;font-size:14px;color:var(--ink);
    background:linear-gradient(180deg,var(--skin2),var(--skin));
    box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
  .field input::placeholder{color:var(--soft);opacity:.8}
  .field input:focus-visible{outline:2.5px solid var(--deep);outline-offset:2px}
  .field button{flex:0 0 auto;border:none;cursor:pointer;font-family:inherit;font-weight:800;
    font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);
    padding:16px 20px;border-radius:99px;
    background:linear-gradient(180deg,#e2bb9e,#c79c7d);
    box-shadow:5px 5px 11px var(--sh),-4px -4px 10px var(--hi),
      inset 0 1.5px 0 rgba(246,222,202,.85),inset 0 -2px 4px rgba(122,58,32,.25)}

  /* ---------- instagram ---------- */
  .ig{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:4px 20px 10px}
  .ig div{aspect-ratio:1;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:3px}
  .ig .bead{width:13px;height:13px}

  /* ---------- footer ---------- */
  footer{margin-top:30px;padding:34px 24px 46px;
    background:linear-gradient(180deg,var(--skin),var(--skin2));
    box-shadow:inset 0 10px 18px -12px var(--sh)}
  footer .logo{display:block;text-align:center;font-size:17px}
  .cols{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:26px 0 24px}
  .cols b{font-size:10.5px;font-weight:800;letter-spacing:.14em;
    text-transform:uppercase;color:var(--ink);margin-bottom:2px}
  .cols a{font-size:13px;font-weight:500;color:var(--ink);text-decoration:none;line-height:2.05}
  .colgroup{display:flex;flex-direction:column}
  .fineprint{text-align:center;font-size:11.5px;color:var(--ink);line-height:1.9}
  .fineprint a{color:var(--ink);font-weight:600}

  /* ---------- motion ---------- */
  .rev{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}
  .rev.in{opacity:1;transform:none}
  @media (prefers-reduced-motion: no-preference){
    .fl1,.fl2{transform-box:fill-box;animation:float 6.5s ease-in-out infinite}
    .fl2{animation-delay:-3.2s}
    @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
  }
  @media (prefers-reduced-motion: reduce){
    .rev{opacity:1;transform:none;transition:none}
    html{scroll-behavior:auto}
  }
  :focus-visible{outline:2.5px solid var(--deep);outline-offset:3px;border-radius:99px}

/* ============================================================
   COMPONENTI ESTESI — pagine interne
   Stesse materie (.raise/.press/.deboss), stessi token, nessun
   colore nuovo. I colori dei "prodotti" riusano le perle della
   home approvata (b1–b5 + pietre).
   ============================================================ */

/* ---------- normalizzazione link (stessi pixel degli originali) ---------- */
a.logo,a.chip,a.stone,.name a,a.ph,a.add{text-decoration:none}
a.chip,a.stone,.name a,a.add{color:inherit}
a.add{display:flex;align-items:center;justify-content:center;font-family:Arial,Helvetica,sans-serif}
button.chip{border:none;cursor:pointer;font-family:inherit}

/* ---------- menu a tendina (drawer) ---------- */
.drawer{position:absolute;top:calc(100% + 4px);left:14px;right:14px;z-index:55;
  border-radius:22px;padding:14px;display:flex;flex-direction:column;gap:9px}
.drawer[hidden]{display:none}
.drawer a{display:block;text-align:center;font-size:12.5px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;padding:13px 16px;border-radius:99px}

/* ---------- intestazione pagine interne ---------- */
.page-hero{padding:34px 24px 8px;text-align:center}
.page-hero h1{font-size:36px;line-height:1.06;font-weight:800;letter-spacing:.02em;
  margin:14px 0 12px;text-transform:uppercase}
.backrow{padding:18px 20px 0}
.back{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--deep);text-decoration:none;
  padding:10px 17px;border-radius:99px}

/* ---------- pagina prodotto ---------- */
.gallery{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:10px 20px 4px;scrollbar-width:none;-ms-overflow-style:none}
.gallery::-webkit-scrollbar{display:none}
.slide{flex:0 0 calc(100% - 40px);scroll-snap-align:center;aspect-ratio:1;border-radius:24px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.fila{display:flex;align-items:center;gap:9px}
/* Fix di un difetto della v3 approvata: le perle delle card pietra
   (.stone .bead, dimensionate 34px dal CSS originale) non si vedevano
   perché span inline vuoti. Le rendiamo blocco, come da design system. */
.stone .bead,.empty .bead{display:block}
.bead.l{width:30px;height:30px}
.bead.xl{width:46px;height:46px}
.dots{display:flex;justify-content:center;gap:9px;padding:14px 0 4px}
.dot{width:9px;height:9px;border-radius:50%;border:none;cursor:pointer;padding:0;
  background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 1.5px 2px 4px var(--sh),inset -1.5px -1.5px 4px var(--hi)}
.dot.on{background:linear-gradient(180deg,#e2bb9e,#c79c7d);
  box-shadow:2px 2px 5px var(--sh),-2px -2px 5px var(--hi)}
.buy{padding:6px 24px 2px;text-align:center}
.price-big{font-size:20px;font-weight:700;color:var(--deep);margin:10px 0 6px}
.avail{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--deep);padding:9px 16px;border-radius:99px;margin-bottom:18px}
.cta-acquista{display:flex;align-items:center;justify-content:center;width:100%;
  font-weight:800;font-size:14px;letter-spacing:.07em;text-transform:uppercase;
  padding:19px 34px;border-radius:99px;color:var(--ink);text-decoration:none;
  background:linear-gradient(180deg,#e2bb9e,#c79c7d);
  box-shadow:7px 8px 16px var(--sh),-5px -5px 13px var(--hi),
    inset 0 1.5px 0 rgba(246,222,202,.85),inset 0 -2px 4px rgba(122,58,32,.25)}
.buy-note{font-size:11.5px;color:var(--soft);margin-top:12px;line-height:1.5}
.prose{padding:10px 24px 4px;font-size:14px;line-height:1.65;color:var(--ink)}
.prose p{margin-bottom:12px}
.specs{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;padding:4px 20px 10px}
.spec{font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--deep);
  padding:10px 16px;border-radius:99px}

/* ---------- accordion (details nativo) ---------- */
.acc{margin:0 20px 12px;border-radius:20px;padding:2px 20px}
.acc summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  align-items:center;gap:10px;font-weight:800;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--deep);padding:16px 0}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:18px;font-weight:500;line-height:1;flex:0 0 auto}
.acc[open] summary::after{content:"−"}
.acc-body{padding:0 0 16px;font-size:13.5px;line-height:1.6;color:var(--ink)}
.acc-body p{margin-bottom:10px}
.acc-body p:last-child{margin-bottom:0}

/* ---------- collezione: filtri e ordinamento ---------- */
.chips.pietre{padding-top:2px}
.sortrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px 4px}
.count{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.sortwrap{display:flex;align-items:center;gap:8px}
.sortwrap label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
select.sort{border:none;outline:none;cursor:pointer;font-family:inherit;font-size:11.5px;
  font-weight:700;letter-spacing:.04em;color:var(--deep);padding:11px 16px;border-radius:99px;
  appearance:none;-webkit-appearance:none;
  background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
.empty{margin:14px 20px;padding:34px 24px;border-radius:24px;text-align:center}
.empty .bead{margin:0 auto 14px}
.empty p{font-size:13.5px;line-height:1.6;color:var(--ink)}
.empty a{color:var(--deep);font-weight:700}

/* ---------- collezione: gruppi + storie ---------- */
#collez-wrap{padding-top:2px}
.collez-group{padding:0 0 10px}
.collez-group[hidden]{display:none}
.collez-head{padding:24px 20px 12px;text-align:center;max-width:560px;margin:0 auto}
.collez-name{font-size:23px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--deep)}
.storia{margin-top:8px;font-size:13.5px;line-height:1.62;color:var(--ink);opacity:.92;text-wrap:pretty}
.collez-group .grid{padding:0 20px}
@media (min-width:900px){
  .collez-head{padding:38px 40px 18px;max-width:660px}
  .collez-name{font-size:30px}
  .storia{font-size:15px}
  /* allinea la griglia collezioni allo stesso gutter di chips/sortrow/hero su schermi larghi */
  .collez-group .grid{padding-left:var(--gutter);padding-right:var(--gutter)}
  .collez-group{padding-bottom:16px}
}

/* ---------- chi siamo / contenuti ---------- */
.photo-ph{margin:10px 20px 6px;aspect-ratio:4/3;border-radius:24px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.caption{text-align:center;font-size:11px;color:var(--soft);padding:10px 24px 0;letter-spacing:.04em}
.photo-ph.has-logo{aspect-ratio:auto;padding:0;overflow:hidden}
.chi-logo{width:100%;height:auto;display:block;border-radius:24px}

/* ---------- righe informative (spedizioni, contatti) ---------- */
.info{margin:0 20px 14px;padding:22px;border-radius:22px}
.info b{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:var(--deep);margin-bottom:8px}
.info p{font-size:13.5px;line-height:1.6;color:var(--ink)}
.info p+p{margin-top:8px}
.ig-link{display:inline-flex;align-items:center;gap:6px;vertical-align:middle;text-decoration:none!important}
.ig-link svg{flex:none}
.ig-link span{text-decoration:underline;text-decoration-color:rgba(115,63,36,.55);text-underline-offset:2px}
.shiprow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;font-size:13.5px}
.shiprow span:last-child{font-weight:700;color:var(--deep);white-space:nowrap}

/* ---------- 404 ---------- */
.lost{padding:66px 24px 24px;text-align:center}
.lost .eyebrow{margin-bottom:14px}
.lost h1{font-size:64px;margin:6px 0 14px}
.lost .bead{margin:26px auto 0}

/* ---------- utilità ---------- */
.center{text-align:center}
.mt{margin-top:16px}
.sec-pad{padding-bottom:26px}

/* ============================================================
   DESKTOP (≥900px) — stessa identità, respiro da schermo grande.
   Tutto vive in media query: sotto i 900px non cambia un pixel.
   ============================================================ */
.nav-top{display:none}

@media (min-width:900px){
  body{max-width:1140px}
  .grain,.vignette{max-width:1140px}
  body::before{width:1040px;height:540px;top:-170px}

  /* ---------- header: nav estesa, niente burger ---------- */
  header{padding:16px 36px}
  .menu,.drawer{display:none!important}
  .logo{font-size:26px}
  header .logo{font-size:34px;letter-spacing:.14em}
  header a.logo{position:relative;left:auto;top:auto;transform:none}
  .nav-top{display:flex;gap:6px;align-items:center}
  .nav-top a{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--deep);text-decoration:none;padding:11px 16px;border-radius:99px}

  /* ---------- hero ---------- */
  .hero{padding:188px 24px 14px}
  .collane-hero{width:min(880px,86%)}
  .eyebrow{font-size:12px}
  h1{font-size:74px}
  /* l'h1 della home resta nell'albero di accessibilità: nascosto visivamente, non rimosso */
  .hero-tag{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .sub{font-size:16.5px;max-width:470px}
  .necklace{width:540px;height:auto;margin-top:34px}

  /* ---------- sezioni e griglie ---------- */
  .chips{justify-content:center;padding:24px 20px 10px}
  .sec{padding:42px 40px 10px}
  h2{font-size:25px}
  .grid{grid-template-columns:repeat(4,1fr);gap:20px}
  .ph{height:172px}
  .stones{justify-content:center;padding:8px 40px 16px;gap:18px}
  .stone{flex:0 0 150px;padding:24px 14px 20px}

  /* ---------- pannelli centrati ---------- */
  .story,.news{max-width:720px;margin-left:auto;margin-right:auto;padding:36px 48px}
  .field{max-width:460px;margin:0 auto}
  .ig{max-width:900px;margin:0 auto;padding:8px 40px 14px}
  .reviews{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
  .reviews .sec-head{grid-column:1/-1}

  /* ---------- pagine interne ---------- */
  .page-hero{padding:56px 24px 12px}
  .page-hero h1{font-size:52px}
  .info,.acc{max-width:680px;margin-left:auto;margin-right:auto}
  .acc{margin-bottom:12px}
  .photo-ph{max-width:720px;margin-left:auto;margin-right:auto}
  .empty{max-width:680px;margin-left:auto;margin-right:auto}
  .sortrow{padding:14px 40px 4px}
  .backrow{padding:26px 40px 0}
  .buy .cta{min-width:300px}
  .lost{padding:96px 24px 30px}
  .lost h1{font-size:96px}

  /* ---------- pagina prodotto: due colonne ---------- */
  .pdp{display:grid;grid-template-columns:1.02fr .98fr;column-gap:56px;
    align-items:start;padding:0 40px 10px}
  .pdp .backrow{grid-column:1/-1;padding:26px 0 10px}
  .pdp-left{grid-column:1;position:sticky;top:96px}
  .pdp-right{grid-column:2}
  .pdp .sec.correlati{grid-column:1/-1;padding-left:0;padding-right:0}
  .pdp .gallery{padding:0}
  .pdp .slide{flex:0 0 100%}
  .pdp-right .buy{text-align:left;padding:14px 0 2px}
  .pdp-right .buy h1{font-size:44px}
  .pdp-right .price-big{font-size:23px}
  .pdp-right .prose{padding:14px 0 4px}
  .pdp-right .story{margin:24px 0 6px;max-width:none;padding:28px 30px}
  .pdp-right .specs{padding:8px 0 12px;justify-content:flex-start}
  .pdp-right .sec{padding:14px 0 6px}
  .pdp-right .acc{margin:0 0 12px;max-width:none}
  .pdp .correlati .grid{grid-template-columns:repeat(2,1fr);max-width:640px;margin:0 auto}

  /* ---------- footer ---------- */
  footer{padding:44px 40px 52px}
  footer .logo{font-size:20px}
  .cols{max-width:600px;margin:30px auto 26px;gap:8px 80px}
}

/* ---------- hover sobri (solo puntatori fini, motion consentito) ---------- */
@media (hover:hover) and (prefers-reduced-motion: no-preference){
  .cta,.cta-acquista,a.add,.field button,.card{transition:transform .18s ease}
  .cta:hover,.cta-acquista:hover,a.add:hover,.field button:hover{transform:translateY(-2px)}
  .card:hover{transform:translateY(-3px)}
}
@media (hover:hover){
  .nav-top a:hover,.back:hover{background:linear-gradient(180deg,var(--skin2),var(--skin));
    box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
  .cols a:hover,.sec-link:hover,.cta-soft:hover span,.fineprint a:hover{text-decoration:underline}
}

/* ============================================================
   OTTIMIZZAZIONI GUI — giro multi-agent (6 lenti di audit +
   giudice design-system). 21 fix curati, override appesi in
   fondo: vincono in cascata senza toccare la base approvata.
   ============================================================ */
/* — Link nei contenuti fuori palette (blu/viola browser) */
.info a,.acc-body a,.prose a,.buy-note a{color:var(--deep);font-weight:700;text-decoration:underline;text-decoration-color:rgba(115,63,36,.55);text-underline-offset:2px}
/* — Dot galleria PDP: target di tocco e stato attivo leggibile */
.dots{gap:14px}
.dot{position:relative;width:11px;height:11px;box-shadow:inset 1px 1.5px 3px var(--sh),inset -1px -1px 3px var(--hi)}
.dot::after{content:"";position:absolute;inset:-7px;border-radius:99px}
.dot.on{width:28px;border-radius:99px;box-shadow:1.5px 2px 4px var(--sh),-1.5px -1.5px 4px var(--hi)}
@media (prefers-reduced-motion: no-preference){
  .dot{transition:width .25s ease,transform .18s ease}
}
/* — Tap target sotto 44px su controlli ricorrenti */
a.add,.chip,.sec-link,.cta-soft,.back,.drawer a,.fineprint a{position:relative}
a.add::after,.chip::after,.sec-link::after,.cta-soft::after,.back::after,.drawer a::after,.fineprint a::after{content:"";position:absolute}
a.add::after{inset:-5px;border-radius:50%}
.chip::after{inset:-4px -2px;border-radius:99px}
.back::after{inset:-6px -2px;border-radius:99px}
.sec-link::after{inset:-14px -8px}
.cta-soft::after{inset:-12px 0}
.drawer a::after{inset:-2px 0}
.fineprint a::after{inset:-10px -6px}
/* — Feedback :active su tutti i controlli (touch incluso) */
@media (prefers-reduced-motion: no-preference){
  .cta,.cta-acquista,a.add,.field button,.chip,.back,.drawer a{transition:transform .18s ease}
  .cta:active,.cta-acquista:active,a.add:active,.field button:active,.chip:active,.back:active,.drawer a:active{transform:scale(.97)}
}
/* colonna senza cornice: nessun alone/banda laterale (sfondo pieno su html::before) */
/* — H1 prodotto: style inline che uccide la regola desktop 44px */
.page-title{font-size:36px;line-height:1.06;margin:12px 0 4px}
/* — Form: auto-zoom iOS + select senza affordance di apertura */
.field input{font-size:16px}
select.sort{font-size:16px;padding:8px 34px 8px 14px}
.sortwrap{position:relative}
.sortwrap::after{content:"▾";position:absolute;right:14px;top:50%;margin-top:-8px;font-size:12px;line-height:16px;color:var(--deep);pointer-events:none}
/* — Chip filtro attiva quasi indistinguibile dall'inattiva */
.chip.on{color:var(--deep);box-shadow:inset 4px 4.5px 9px var(--sh),inset -3px -3.5px 8px var(--hi),inset 0 1.5px 3px rgba(122,58,32,.25)}
/* — Card prodotto interamente tappabile (stretched link) */
.name a::after{content:"";position:absolute;inset:0;border-radius:22px}
/* — Ombre dei chip e delle card pietra tagliate dagli scroller */
.chips{padding-bottom:26px;margin-bottom:-18px}
.stones{padding-bottom:30px;margin-bottom:-18px}
/* — Range tablet 600–899: colonna più ariosa e filtri tutti visibili */
@media (min-width:600px) and (max-width:899.98px){
  body{max-width:560px}
  .grain,.vignette{max-width:none}
  .chips{flex-wrap:wrap;justify-content:center}
}
/* — Pannelli .info fuori famiglia (radius/padding) */
.info{padding:24px;border-radius:24px}
@media (min-width:900px){
  .info{padding:28px 30px}
}
/* — Focus da tastiera che deforma i riquadri in pillole */
a.ph:focus-visible{border-radius:15px}
.acc summary:focus-visible{border-radius:14px}
/* — Stato aperto dell'hamburger e indicatore pagina corrente */
.menu[aria-expanded="true"]{background:linear-gradient(180deg,var(--skin2),var(--skin));box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
.drawer a[aria-current="page"],.nav-top a[aria-current="page"]{color:var(--deep);background:linear-gradient(180deg,var(--skin2),var(--skin));box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
/* — Marcatore accordion a scatto secco */
@media (prefers-reduced-motion: no-preference){
  .acc summary::after{transition:transform .3s ease}
  .acc[open] summary::after{transform:rotate(180deg)}
}
/* — Parole orfane nei testi display e nelle lede */
.eyebrow,h2,.page-hero h1{text-wrap:balance}
.sub,.story p{text-wrap:pretty}
/* — Metriche CTA primario unificate */
.cta-acquista{font-size:13.5px;padding:18px 34px}

@media (min-width:900px){
/* — Colonne PDP incoerenti tra prodotti (min-content dei slide) */
.pdp{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}
/* — Perle sottodimensionate nelle cornici desktop */
.ph .bead{width:28px;height:28px}
.ph .bead.s{width:19px;height:19px}
.ig .bead{width:17px;height:17px}
.photo-ph{aspect-ratio:3/2}
.photo-ph .bead.xl{width:58px;height:58px}
.pdp .slide .bead.xl{width:58px;height:58px}
.pdp .slide .bead.l{width:38px;height:38px}
.pdp .slide .bead.s{width:18px;height:18px}
/* — Testate di sezione scollegate dal contenuto centrato */
#faq .sec-head{max-width:680px;margin-left:auto;margin-right:auto}
.pdp .correlati .sec-head{max-width:640px;margin-left:auto;margin-right:auto}
.sec:has(+ .stones) .sec-head{justify-content:center}
.sec:has(+ .ig) .sec-head{max-width:820px;margin-left:auto;margin-right:auto}
}

@media (hover:hover) and (prefers-reduced-motion: no-preference){
/* — Hover mancante su chip e dot (unici controlli muti al mouse) */
.chip{transition:transform .18s ease}
.chip.raise:hover{transform:translateY(-2px)}
.dot:not(.on):hover{transform:scale(1.25)}
}

/* — Rifinitura post-validazione: orfani nei paragrafi info/accordion */
.info p,.acc-body p{text-wrap:pretty}

/* — Rifinitura sezioni (sweep manuale): perla dell'empty state a desktop */
@media (min-width:900px){
  .empty .bead{width:30px;height:30px}
}

/* ============================================================
   PERLE VERE — sprite fotografici scontornati (assets/perline/)
   Sostituiscono le composizioni CSS/SVG in tutto il sito.
   ============================================================ */
.pl{display:block;height:calc(21px*var(--rel,1));width:auto;
  filter:drop-shadow(2px 3px 3px rgba(122,58,32,.3))}
.pl.s{height:calc(14px*var(--rel,1))}
.pl.l{height:calc(30px*var(--rel,1))}
.pl.xl{height:calc(46px*var(--rel,1))}
.stone .pl{height:calc(30px*var(--rel,1));margin:0 auto 12px}
.ig .pl{height:calc(13px*var(--rel,1))}
.empty .pl{height:calc(21px*var(--rel,1));margin:0 auto 14px}
.lost .pl{height:calc(34px*var(--rel,1));margin:26px auto 0}
/* collana hero: perle vere sull'arco */
.necklace{position:relative;width:342px;height:118px}
.neck-in{position:relative;width:342px;height:118px}
.necklace svg{position:absolute;inset:0}
.necklace .pl{position:absolute;filter:drop-shadow(2px 4px 4px rgba(122,58,32,.3))}
@media (min-width:900px){
  .necklace{width:342px;height:190px}
  .neck-in{transform:scale(1.55);transform-origin:top center;margin:0 auto}
  .ph .pl{height:calc(28px*var(--rel,1))}
  .ph .pl.s{height:calc(19px*var(--rel,1))}
  .ig .pl{height:calc(17px*var(--rel,1))}
  .pdp .slide .pl.xl{height:calc(58px*var(--rel,1))}
  .pdp .slide .pl.l{height:calc(38px*var(--rel,1))}
  .pdp .slide .pl.s{height:calc(18px*var(--rel,1))}
  .photo-ph .pl.xl{height:calc(58px*var(--rel,1))}
  .empty .pl{height:calc(26px*var(--rel,1))}
}

/* ============================================================
   CONFIGURATORE BRACCIALE — perle vere, scelte una a una
   ============================================================ */
.braccialetto-wrap{margin:10px 20px 6px;padding:20px;border-radius:24px;text-align:center}
.braccialetto{position:relative;width:300px;height:300px;margin:0 auto}
/* --- Zoom del progetto (viewport dedicato: +/-, trascina, doppio-tap, pinch) --- */
.zoom-view{position:relative;width:max-content;margin:0 auto;overflow:hidden;border-radius:18px;touch-action:none;-webkit-user-select:none;user-select:none}
.zoom-view .braccialetto{margin:0}
.zoom-view.zoomed{cursor:grab}
.zoom-view.grabbing{cursor:grabbing}
.zoom-ctrl{position:absolute;right:8px;bottom:8px;z-index:7;display:flex;flex-direction:column;gap:7px}
.zoom-ctrl button{width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;font:700 20px/1 'Inter',system-ui,sans-serif;color:var(--ink);display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--skin),var(--skin2));box-shadow:4px 5px 11px var(--sh),-3px -3px 8px var(--hi)}
.zoom-ctrl button:active{background:linear-gradient(180deg,var(--skin2),var(--skin));box-shadow:inset 2px 2.5px 6px var(--sh),inset -2px -2px 6px var(--hi)}
.zoom-ctrl button:disabled{opacity:.35;cursor:default}
.zoom-hint{position:absolute;left:11px;bottom:14px;z-index:7;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--deep);opacity:0;transition:opacity .3s;pointer-events:none}
.zoom-view.zoomed .zoom-hint{opacity:.7}
.slot{position:absolute;width:40px;height:40px;border:none;cursor:pointer;padding:0;
  border-radius:50%;background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 2px 2.5px 6px var(--sh),inset -2px -2px 6px var(--hi);
  display:flex;align-items:center;justify-content:center}
.slot img{height:76%;width:auto;filter:drop-shadow(1.5px 2.5px 2.5px rgba(122,58,32,.3));pointer-events:none}
.slot.sel{background:linear-gradient(180deg,#e2bb9e,#c79c7d);
  box-shadow:2px 3px 7px var(--sh),-2px -2px 6px var(--hi),inset 0 1.5px 0 rgba(246,222,202,.85)}
.chiusura-info{display:inline-flex;align-items:center;gap:8px;margin-top:14px;
  font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--deep);
  padding:8px 16px;border-radius:99px}
.chiusura-info img{height:22px;width:auto}
.tools{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;padding:14px 20px 4px}
.tool{border:none;cursor:pointer;font-family:inherit;font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--deep);padding:11px 17px;border-radius:99px}
.catalogo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:6px 20px 4px}
.perla-btn{min-width:0;border:none;cursor:pointer;font-family:inherit;border-radius:16px;padding:10px 6px 8px;
  display:flex;flex-direction:column;align-items:center;gap:6px}
.perla-btn img{height:calc(26px*var(--rel,1));width:auto;max-width:100%;filter:drop-shadow(1.5px 2.5px 2.5px rgba(122,58,32,.3));pointer-events:none}
.perla-btn span{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  color:var(--deep);line-height:1.2;overflow-wrap:anywhere}
.perla-btn.on{background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
.gruppo-perline[hidden]{display:none}
.catalogo[hidden]{display:none}
.cat-pager{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 20px 2px}
.cat-pager[hidden]{display:none}
.pager-arrow{border:none;cursor:pointer;font-family:inherit;width:40px;height:40px;border-radius:50%;
  font-size:20px;line-height:1;color:var(--deep);padding:0;display:flex;align-items:center;justify-content:center}
.pager-arrow:active{background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
.pager-info{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);
  min-width:46px;text-align:center;font-variant-numeric:tabular-nums}
.riepilogo{margin:18px 20px 8px;padding:24px 22px;border-radius:24px;text-align:center}
.riepilogo .conteggio{font-size:12px;line-height:1.8;color:var(--ink);margin-bottom:14px}
.misura-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}
.misura-row label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
@media (min-width:900px){
  .config-grid{display:grid;grid-template-columns:1.02fr .98fr;column-gap:48px;align-items:start;padding:0 40px}
  .config-grid .colonna-sx{position:sticky;top:96px}
  .braccialetto{width:340px;height:340px}
  .slot{width:46px;height:46px}

  .catalogo{grid-template-columns:repeat(5,1fr);padding:6px 0 4px}
  .braccialetto-wrap{margin:10px 0 6px}
  .tools{padding:14px 0 4px}
  .riepilogo{margin:18px 0 8px}
  .config-grid .chips{padding-left:0;padding-right:0}
}

/* ============================================================
   DESKTOP A TUTTA LARGHEZZA — niente colonna con margini:
   il fondo pelle riempie lo schermo, il contenuto resta
   centrato con gutter fluidi (max 1200px utili).
   ============================================================ */
@media (min-width:900px){
  :root{--wrap:1200px;--gutter:max(40px,calc((100vw - var(--wrap)) / 2))}
  body{max-width:none;box-shadow:none}
  .grain,.vignette{max-width:none}
  body::before{width:min(1500px,100vw);height:600px}
  header{padding-left:var(--gutter);padding-right:var(--gutter)}
  .sec,.chips,.stones,.sortrow,.backrow,.pdp,.config-grid,footer{
    padding-left:var(--gutter);padding-right:var(--gutter)}
  .pdp .backrow{padding-left:0;padding-right:0}
}

/* — nit: il link di sezione non va a capo */
.sec-head .sec-link{white-space:nowrap;margin-left:12px}

/* ============================================================
   CARRELLO — pannello sotto l'header, badge live
   ============================================================ */
.bag{border:none;cursor:pointer;font-family:inherit}
.bag span{margin-left:0}
.carrello{position:absolute;top:calc(100% + 4px);right:14px;z-index:56;width:min(340px,calc(100vw - 28px));
  border-radius:22px;padding:18px;text-align:center}
.carrello[hidden]{display:none}
.car-tit{display:block;font-size:12px;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--deep);margin-bottom:12px}
.car-vuoto{font-size:13px;line-height:1.6;color:var(--soft);padding:8px 0 4px}
.car-item{display:flex;align-items:center;gap:10px;border-radius:16px;padding:10px 12px;margin-bottom:10px}
.car-mini{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.car-mini img{height:calc(13px*var(--rel,1));width:auto}
.car-info{flex:1;text-align:left;min-width:0}
.car-info b{display:block;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.car-info small{font-size:10.5px;color:var(--soft)}
.car-x{flex:0 0 auto;width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;
  font-size:15px;line-height:1;color:var(--deep);font-family:Arial,Helvetica,sans-serif;
  display:flex;align-items:center;justify-content:center}
.carrello .cta-acquista{margin-top:6px}
.carrello .tool{margin-top:10px}
.car-nota{font-size:11px;line-height:1.5;color:var(--soft);margin-top:12px}
@media (min-width:900px){
  .carrello{right:var(--gutter)}
}

/* — collana hero: lo span fluttua, l'img dentro ruota lungo il filo */
.necklace .plw{position:absolute}
.necklace .plw .pl{position:static;height:100%;width:auto}

/* — filo elastico visibile nell'anteprima (colore = prodotto) */
.filo{position:absolute;border-radius:50%;pointer-events:none;
  border:2.5px solid rgba(244,240,236,.55)}

/* ============================================================
   PERLINE ROTOLANTI — decorazione di sfondo legata allo scroll
   (sotto il contenuto, spenta con prefers-reduced-motion)
   ============================================================ */
.rotolanti{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.rotolanti img{position:absolute;left:0;top:0;height:calc(15px*var(--rel,1));width:auto;
  filter:drop-shadow(2px 3px 3px rgba(122,58,32,.3));will-change:transform}
@media (min-width:900px){
  .rotolanti img{height:calc(22px*var(--rel,1))}
}
@media (prefers-reduced-motion: reduce){
  .rotolanti{display:none}
}

/* ============================================================
   OPZIONI A CHIPS — via i select nativi: tutto materia del sito
   ============================================================ */
.opt-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin-bottom:14px}
.opt-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);flex:0 0 100%;text-align:center}
.opt-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.opt-chips .chip{font-size:11px;padding:10px 15px}
.opt-row .count{flex:0 0 100%;text-align:center;margin-top:2px;color:var(--soft)}
.swatch{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--c);
  margin-right:6px;vertical-align:-1px;
  box-shadow:inset 1px 1.5px 2.5px rgba(122,58,32,.35),1px 1.5px 2px rgba(244,216,196,.6)}
.sortwrap{display:flex;align-items:center;gap:8px}
.sortwrap .opt-label{flex:0 0 auto}
@media (min-width:900px){
  .opt-row{gap:10px}
  .opt-label{flex:0 0 auto}
}

/* ============================================================
   SCELTA TIPO — prima collana o bracciale, poi il configuratore
   ============================================================ */
.scelta-tipo{display:flex;justify-content:center;gap:14px;max-width:560px;margin:2px auto 20px;padding:0 20px}
.tipo-btn{flex:1 1 0;min-height:72px;border:none;cursor:pointer;font-family:inherit;
  border-radius:20px;padding:15px 12px 13px;color:var(--deep);
  font-size:14px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  transition:transform .18s ease}
.tipo-btn small{display:block;margin-top:4px;font-size:10.5px;font-weight:600;
  letter-spacing:.05em;text-transform:none;color:var(--soft)}
.tipo-btn:active{transform:scale(.985)}
.tipo-btn.on{color:var(--ink)}
.config-grid[hidden]{display:none}
.opt-row[hidden]{display:none}
@media (min-width:900px){
  .scelta-tipo{gap:16px;margin-bottom:26px}
  .tipo-btn{min-height:80px;font-size:15px}
  .tipo-btn small{font-size:11.5px}
}

/* ============================================================
   RIFINITURE MOBILE — audit visivo completo (tap target e testi)
   ============================================================ */
/* badge card leggibile (era 9px) */
.badge{font-size:10px}
/* logo cliccabile con area di tocco piena, visuale invariata */
a.logo{position:relative}
a.logo::after{content:"";position:absolute;inset:-10px -12px}
/* link morbidi: area di tocco più generosa */
.cta-soft::after{inset:-14px 0}
/* footer: righe più comode da toccare (33px di passo) */
.cols a{line-height:2.55}
/* dot galleria: area di tocco più alta, visuale invariata */
.dot::after{inset:-12px -7px}
/* fermaglio (moschettone) in cima all'anello */
.fermaglio{position:absolute;pointer-events:none;z-index:1;
  filter:drop-shadow(1.5px 2.5px 2.5px rgba(122,58,32,.35))}
.fermaglio svg{display:block;width:100%;height:100%}

/* ============================================================
   INTER SELF-HOSTED — niente richieste a Google (privacy + velocità)
   variable font wght 100-900, subset latin, font-display swap
   ============================================================ */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('assets/fonts/inter-var.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* @font-face italico rimosso il 2026-08-04: 25 KB scaricati su ogni pagina
     per il solo wordmark "PayPal", e per giunta dichiarato weight 400 mentre .pp-word
     chiede 800. Il variable font sintetizza l'obliquo al peso giusto. */
/* scorrimento istantaneo per chi riduce le animazioni */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
}
/* skip link: invisibile finché non riceve il focus da tastiera */
.skip-link{position:fixed;top:-64px;left:50%;transform:translateX(-50%);z-index:70;
  padding:13px 24px;border-radius:99px;font-size:12px;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;transition:top .2s ease}
.skip-link:focus-visible{top:10px}
/* moschettone fotografico: ruotato lungo il filo */
.fermaglio img{position:absolute;left:50%;top:50%;width:auto;
  transform:translate(-50%,-50%) rotate(90deg)}
.occhiello{position:absolute;pointer-events:none;z-index:1;box-sizing:border-box;
  border-radius:50%;border:2px solid #c2c5cc;background:transparent;
  filter:drop-shadow(1px 1.5px 1.5px rgba(122,58,32,.3))}
/* nota sotto il modulo newsletter */
.field-nota{margin-top:12px;font-size:12px;line-height:1.5;color:var(--ink)}

/* ============================================================
   ROUND UX/COPY (analisi multi-agente) — blocchi appesi
   ============================================================ */
/* le ancore non finiscono più sotto l'header sticky */
#componi,#collezione,#faq,#privacy,#main{scroll-margin-top:88px}
@media (min-width:900px){
  #componi,#collezione,#faq,#privacy,#main{scroll-margin-top:104px}
}
/* percorso verso l'ordine dopo "aggiungi al carrello" */
.added-nota{margin:12px 0 4px;font-size:12.5px;font-weight:700;color:var(--deep);text-align:center}
.linklike{border:none;background:none;cursor:pointer;font-family:inherit;font-size:inherit;
  font-weight:800;color:var(--ink);text-decoration:underline;text-underline-offset:2px;padding:0}
.added-nota[hidden]{display:none}
/* micro-guida "come funziona" sotto i CTA del configuratore */
.come-funziona{list-style:none;counter-reset:cf;margin:16px auto 4px;max-width:340px;text-align:left;padding:0}
.come-funziona li{counter-increment:cf;position:relative;padding:5px 0 5px 30px;
  font-size:12.5px;line-height:1.45;color:var(--soft)}
.come-funziona li::before{content:counter(cf);position:absolute;left:0;top:4px;
  width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:var(--deep);
  background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 1px 1.5px 3px var(--sh),inset -1px -1px 3px var(--hi)}
/* guida misura compatta nel configuratore */
.guida-misura{margin:0 auto 14px;max-width:360px;border-radius:16px;padding:2px 16px;text-align:left}
.guida-misura[hidden]{display:none}
.guida-misura summary{cursor:pointer;list-style:none;padding:11px 0;font-size:12px;font-weight:700;
  letter-spacing:.02em;color:var(--deep);display:flex;justify-content:space-between;align-items:center}
.guida-misura summary::-webkit-details-marker{display:none}
.guida-misura summary::after{content:"+";font-size:17px;line-height:1}
.guida-misura[open] summary::after{content:"−"}
.guida-misura p{font-size:12.5px;line-height:1.55;color:var(--ink);padding:0 0 14px}
/* MOBILE: anteprima del gioiello fissa mentre si scelgono le perline */
@media (max-width:899.98px){
  .colonna-sx{display:contents}
  .braccialetto-wrap{position:sticky;top:62px;z-index:6;margin:8px 16px 10px;padding:12px 12px 10px}
  .braccialetto{width:216px;height:216px}
  .chiusura-info{margin-top:8px}
  .tools{margin:0 20px 8px}
}


/* ============================================================
   AUDIT LAYOUT (agente) — rifiniture sezione per sezione
   ============================================================ */
/* AUDIT LAYOUT — freccia '▾' fantasma sulla sortrow a chip (avanzo dei vecchi select) */
.sortwrap:has(.opt-chips)::after{content:none}
/* AUDIT LAYOUT — sortrow mobile: conteggio su riga propria, ordinamento sotto, allineato a sinistra */
@media (max-width:899.98px){
  .sortrow{flex-wrap:wrap}
  .sortrow .count{flex:0 0 100%;margin-bottom:10px}
  .sortrow .sortwrap{flex:0 0 100%;justify-content:flex-start}
}
/* AUDIT LAYOUT — etichette perline: a capo tra le parole, non a metà parola; font leggermente ridotto sui viewport più stretti */
.perla-btn span{overflow-wrap:break-word;hyphens:auto}
@media (max-width:520px){
  .perla-btn span{font-size:10px;letter-spacing:.01em}
}
/* AUDIT LAYOUT — bilanciamento verticale del configuratore desktop: anteprima centrata nella colonna, niente vuotone in basso a sinistra */
@media (min-width:900px){
  .config-grid{align-items:center}
}
/* AUDIT LAYOUT — 'Come lavoriamo': su mobile le 3 card stanno tutte in riga, niente terza card tagliata */
@media (max-width:899.98px){
  .stones{justify-content:center}
  .stones .stone{flex:1 1 0;min-width:0}
}
/* AUDIT LAYOUT — pagine interne desktop: colonna di lettura più ampia e presente (testi brevi, leggibilità invariata) */
@media (min-width:900px){
  .info,.acc,#faq .sec-head{max-width:760px;margin-left:auto;margin-right:auto}
  .info{padding:30px 40px}
}

/* ============================================================
   COLLEZIONE — dimensioni card più equilibrate su mobile
   (preview più compatta, perline più piene, testo proporzionato)
   ============================================================ */
@media (max-width:899.98px){
  .grid{gap:13px}
  .grid .card{padding:9px}
  .grid .ph{height:104px;gap:calc(3px*var(--fit,1))}
  .grid .ph .pl{height:calc(26px*var(--rel,1)*var(--fit,1))}
  .grid .ph .pl.s{height:calc(18px*var(--rel,1)*var(--fit,1))}
  .grid .arc :nth-child(1),.grid .arc :nth-child(5){transform:translateY(calc(11px*var(--fit,1)))}
  .grid .arc :nth-child(2),.grid .arc :nth-child(4){transform:translateY(calc(3px*var(--fit,1)))}
  .grid .name{font-size:13.5px;letter-spacing:.07em}
  .grid .tipo{font-size:11px;margin:2px 0 5px}
  .grid .price{font-size:14px}
  .grid .add{width:33px;height:33px}
  .grid .badge{top:15px;left:15px;font-size:10px;padding:5px 9px}
}
/* ============================================================
   Referral "Invita un'amica" — append in coda a style.css.
   Solo token del design system: var()/rgba, nessun hex nuovo.
   Sfondi materici affidati alle classi esistenti .raise/.press.
   ============================================================ */
.rf{padding:22px 16px 30px}
.rf-card{border-radius:22px;padding:20px 18px}
.rf-title{font-size:18px;font-weight:800;letter-spacing:.02em;color:var(--deep);margin-bottom:8px}
.rf-lead{font-size:13.5px;line-height:1.6;color:var(--ink);opacity:.92;margin-bottom:16px}
.rf-lead b{color:var(--deep)}
.rf-lbl{display:block;font-size:10.5px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink);margin:0 0 5px 3px}
.rf-inp{width:100%;font-family:inherit;font-size:14px;color:var(--ink);
  border:none;border-radius:14px;padding:12px 14px;margin-bottom:12px}
.rf-inp::placeholder{color:var(--soft);opacity:.75}
.rf-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-family:inherit;font-size:12px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;border:none;
  cursor:pointer;padding:13px 20px;border-radius:99px}
.rf-btn:active{background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 2.5px 3px 7px var(--sh),inset -2.5px -2.5px 7px var(--hi)}
.rf-btn[disabled]{opacity:.6;cursor:default}
.rf-err{font-size:12px;color:var(--deep);font-weight:700;min-height:15px;margin-top:2px}
.rf-code-wrap{margin-top:6px}
.rf-code{font-size:22px;font-weight:800;letter-spacing:.12em;text-align:center;
  color:var(--deep);border-radius:16px;padding:16px 12px;margin:4px 0 14px}
.rf-share{display:flex;gap:10px;flex-wrap:wrap}
.rf-share .rf-btn{flex:1;min-width:140px}
.rf-note{font-size:11.5px;line-height:1.5;color:var(--soft);margin-top:10px}
.rf-dash{margin-top:20px;border-top:1px solid rgba(115,63,36,.18);padding-top:16px}
.rf-stat{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.rf-stat span{font-size:11px;font-weight:700;color:var(--deep);padding:8px 12px;border-radius:99px;
  background:linear-gradient(180deg,var(--skin2),var(--skin));
  box-shadow:inset 1.5px 2px 4px var(--sh),inset -1.5px -1.5px 4px var(--hi)}
.rf-stat span b{color:var(--ink);font-variant-numeric:tabular-nums}
.rf-sub{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--soft);margin:12px 0 8px}
.rf-list{margin:0;padding:0;font-size:13px;line-height:1.6;color:var(--ink)}
.rf-list li{list-style:none;display:flex;justify-content:space-between;gap:10px;
  padding:6px 0;border-bottom:1px solid rgba(115,63,36,.14)}
.rf-list li b{color:var(--deep);font-weight:700;white-space:nowrap}
.rf-empty{justify-content:center!important;color:var(--soft);border-bottom:none!important}


/* ---------- invita: layout pagina (griglia 1→2 colonne) ---------- */
.rf-grid{display:grid;grid-template-columns:1fr;gap:0}
.rf-legal{font-size:11px;line-height:1.55;color:var(--soft);text-align:center;
  max-width:560px;margin:2px auto 0;padding:0 22px}
@media (min-width:900px){
  .rf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;
    max-width:900px;margin:0 auto;padding:0 40px;align-items:start}
  .rf{padding:14px 0 18px}
  .rf-card{padding:26px 24px}
  .rf-title{font-size:20px}
}

/* app-like: no doppio-tap zoom + no auto text-size */
html,body{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* ===== metodi di pagamento (PayPal / Apple Pay) ===== */
.paybadge{display:inline-flex;align-items:center;gap:6px;background:#fff;
  border:1px solid rgba(79,44,23,.16);border-radius:9px;padding:6px 10px;line-height:1;
  box-shadow:0 1px 2px rgba(79,44,23,.06)}
.pp-word{font-style:italic;font-weight:800;font-size:13.5px;letter-spacing:-.2px;white-space:nowrap}
.pp-word b{font-weight:800;display:inline;text-transform:none;letter-spacing:-.2px;font-size:inherit;margin:0}
.pp-word b:first-child{color:#003087}
.pp-word b:last-child{color:#009cde}
.ap-ico{display:block;color:#0a0a0a}
.ap-word{font-weight:600;font-size:13.5px;color:#0a0a0a;letter-spacing:-.1px}
.paylist{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.paybadge-lg{padding:9px 14px;border-radius:11px}
.paybadge-lg .pp-word,.paybadge-lg .ap-word{font-size:16px}
.car-pay{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:12px 0 2px}
.car-pay-lab{width:100%;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--deep);opacity:.85;margin-bottom:1px}
.buy-pay{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0 2px}
.pay-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:0 0 16px;padding-top:4px}
.pay-foot .pay-lab{width:100%;text-align:center;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);opacity:.7;margin-bottom:2px}
.pay-foot .paybadge{padding:5px 9px}
.pay-foot .pp-word,.pay-foot .ap-word{font-size:12.5px}

/* a11y — blocco aggiunto dall'audit accessibilità (solo append, nessuna regola esistente modificata) */
/* Titoli delle schede .info promossi da <b> a <h2> (contatti, spedizioni):
   stessa identica resa del vecchio ".info b" */
.info h2{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:var(--deep);margin-bottom:8px}
/* link.html: l'occhiello non ha .rev, quindi restava fisso a opacity .8 (~3.7:1, AA richiede 4.5) */
.lk-intro .eyebrow{opacity:1}
/* Testi minuti che poggiano sulla fascia più scura del gradiente fisso (--skin3 #bd9070):
   bruni scuriti in modo impercettibile per superare 4.5:1 (AA testo piccolo) */
footer .cols b,footer .cols a,footer .fineprint,footer .fineprint a{color:#4a2913} /* prima --ink: 4.33:1 */
footer .pay-foot .pay-lab{opacity:1;color:#4a2913}  /* prima --ink @ .7 ≈ 2.7:1 */
.carrello .car-pay-lab{opacity:1}                   /* prima --deep @ .85 ≈ 3.7:1 nel pannello */
.rf-legal,.caption{color:#462a14}                   /* prima --soft: ~3.9:1 sul fondo scuro */
