/* Zeronero Estetica — CSS del sito di riferimento del cliente (15/09/2026) */
:root {
  --ink: #282a24;
  --forest: #2f3b32;
  --sage: #92a184;
  --sage-deep: #4a5944; /* 21/10: era #65755f (3,8 su salvia); ora ≥ 4,6 anche sul beige (AA) */
  --sage-light: #dfe5d8;
  --paper: #f4efe6;
  --ivory: #fffdf8;
  --beige: #d9c9b3;
  --sand: #c5b19a;
  --muted: #504e47; /* 21/10: era #716f66 (3,9–4,4); ora ≥ 5,1 su carta, salvia e beige (AA) */
  --line: rgba(40, 42, 36, 0.16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, a, summary { -webkit-tap-highlight-color: transparent; }

.site-header {
  align-items: center;
  color: var(--ink);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  left: 0;
  padding: 25px 4vw;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 10;
}
.brand {
  align-items: baseline;
  display: flex;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  width: max-content;
}
.brand-zero { color: var(--sage-deep); }
.brand-sub {
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.13em;
  margin-left: 10px;
  text-transform: uppercase;
}
.desktop-nav {
  display: flex;
  font-size: 10px;
  gap: 28px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.desktop-nav a, .footer-columns a, .text-link { transition: color 180ms ease, opacity 180ms ease; }
.desktop-nav a:hover, .footer-columns a:hover { color: var(--sand); }
.header-cta {
  align-items: center;
  border-bottom: 1px solid rgba(40, 42, 36, 0.45);
  display: flex;
  font-size: 10px;
  gap: 12px;
  justify-self: end;
  letter-spacing: 0.12em;
  padding-bottom: 7px;
  text-transform: uppercase;
}

.hero {
  background: var(--paper);
  display: grid;
  grid-template-columns: 56% 44%;
  min-height: 850px;
  overflow: hidden;
  position: relative;
}
.hero-copy-panel {
  align-self: center;
  padding: 150px 5vw 115px 9vw;
  z-index: 2;
}
.hero-media {
  background-color: var(--beige);
  background-image:
    linear-gradient(180deg, rgba(217, 201, 179, 0.06), rgba(146, 161, 132, 0.22)),
    url('cz-hero.webp');
  background-position: 63% center;
  background-repeat: no-repeat;
  background-size: cover;
  clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%);
  min-height: 850px;
}
.kicker {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 9px;
  font-weight: 700;
  gap: 14px;
  letter-spacing: 0.22em;
  margin: 0 0 28px;
  text-transform: uppercase;
}
.kicker::before { background: var(--sage); content: ""; height: 1px; width: 30px; }
.kicker.light { color: rgba(255, 253, 248, 0.7); }
h1, h2, blockquote {
  font-family: Georgia, "Gelasio", "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -0.055em;
  margin: 0;
}
h1 { font-size: clamp(65px, 7.4vw, 112px); line-height: 0.88; }
h1 em, h2 em, blockquote em { color: var(--sage-deep); font-weight: 400; }
.hero-copy {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.78;
  margin: 38px 0 0 3px;
  max-width: 480px;
}
.hero-actions { align-items: center; display: flex; gap: 28px; margin-top: 36px; }
.button {
  align-items: center;
  display: inline-flex;
  font-size: 10px;
  font-weight: 700;
  gap: 35px;
  justify-content: space-between;
  letter-spacing: 0.12em;
  min-width: 246px;
  padding: 20px 22px;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}
.button:hover { transform: translateY(-2px); }
.button-sage { background: var(--sage-deep); color: var(--ivory); }
.button-sage:hover { background: var(--forest); }
.text-link {
  border-bottom: 1px solid currentColor;
  font-size: 9px;
  letter-spacing: 0.12em;
  padding-bottom: 6px;
  text-transform: uppercase;
}
.text-link:hover { color: var(--sage-deep); }
.hero-note {
  bottom: 30px;
  color: #79766d;
  display: flex;
  font-size: 8px;
  justify-content: space-between;
  left: 4vw;
  letter-spacing: 0.16em;
  position: absolute;
  right: 4vw;
  text-transform: uppercase;
  z-index: 3;
}

.brand-ribbon {
  align-items: center;
  background: var(--forest);
  color: var(--ivory);
  display: flex;
  gap: 34px;
  justify-content: center;
  min-height: 92px;
  padding: 20px 4vw;
}
.brand-ribbon > span { color: rgba(255,255,255,.62); font-size: 8px; letter-spacing: .2em; text-transform: uppercase; }
.brand-ribbon strong { font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: 17px; font-weight: 400; letter-spacing: .08em; }
.brand-ribbon i { background: rgba(255,255,255,.22); height: 26px; width: 1px; }

.section-shell { display: grid; grid-template-columns: 15vw 1fr; padding: 128px 7vw 138px 4vw; }
.compact-shell { padding-bottom: 85px; }
.section-label {
  color: var(--muted);
  font-size: 9px;
  letter-spacing: 0.18em;
  padding-top: 7px;
  text-transform: uppercase;
}
.section-label span { color: var(--sage-deep); display: block; margin-bottom: 14px; }
.section-label p { margin: 0; }
.manifesto { background: var(--paper); }
.manifesto-copy { max-width: 1070px; }
h2 { font-size: clamp(52px, 6.2vw, 94px); line-height: 0.96; }
.manifesto-grid {
  display: grid;
  gap: 7vw;
  grid-template-columns: 1fr 1fr;
  margin-left: 19vw;
  margin-top: 65px;
  max-width: 760px;
}
.manifesto-grid p, .section-heading-row > p, .consultation-content > p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
  margin: 0;
}

.bestsellers { background: var(--ivory); padding-bottom: 125px; }
.bestseller-heading { background: var(--sage-light); }
.feature-treatment {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0 auto;
  max-width: 1440px;
  min-height: 760px;
}
.feature-media { background: #d9c7b2; overflow: hidden; padding: 70px; position: relative; }
.feature-media img { height: 100%; object-fit: cover; width: 100%; }
.photo-caption {
  bottom: 26px;
  color: rgba(40,42,36,.86);
  font-size: 8px;
  left: 70px;
  letter-spacing: .15em;
  position: absolute;
  text-transform: uppercase;
}
.feature-copy { align-self: center; padding: 90px 8vw; }
.brand-tag {
  color: var(--sage-deep);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  margin: 0 0 24px;
  text-transform: uppercase;
}
.treatment-index { color: var(--muted); display: block; font-size: 8px; letter-spacing: .16em; margin-bottom: 42px; text-transform: uppercase; }
.feature-copy h3, .best-card h3, .partner-list h3, .slimming-card h3 {
  font-family: Georgia, "Gelasio", "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -.045em;
  margin: 0;
}
.feature-copy h3 { font-size: clamp(54px, 6vw, 90px); }
.feature-lead { color: var(--ink) !important; font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: 23px !important; line-height: 1.38 !important; }
.feature-copy > p { color: var(--muted); font-size: 13px; line-height: 1.8; margin: 28px 0 0; max-width: 540px; }
.benefit-list { border-top: 1px solid var(--line); list-style: none; margin: 36px 0 34px; padding: 16px 0 0; }
.benefit-list li { border-bottom: 1px solid var(--line); font-size: 10px; letter-spacing: .08em; padding: 12px 0; text-transform: uppercase; }
.inline-cta { border-bottom: 1px solid var(--sage-deep); font-size: 9px; letter-spacing: .14em; padding-bottom: 6px; text-transform: uppercase; }

.bestseller-grid { display: grid; grid-template-columns: 1fr 1fr; margin: 0 auto; max-width: 1440px; }
.best-card { border-top: 1px solid var(--line); min-width: 0; }
.best-card:first-child { border-right: 1px solid var(--line); }
.best-card-image { background: #cab7a4; height: 570px; overflow: hidden; }
.best-card-image img { height: 100%; object-fit: cover; object-position: center; width: 100%; }
.skin-food-image { background: #f1eee8; }
.skin-food-image img { object-fit: contain; }
.best-card-copy { padding: 65px 6vw 80px; }
.best-card h3 { font-size: clamp(45px, 4.5vw, 68px); }
.best-card-copy > p:not(.brand-tag) { color: var(--muted); font-size: 13px; line-height: 1.78; margin: 28px 0 0; max-width: 520px; }
.mini-facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.mini-facts span { border: 1px solid var(--line); border-radius: 100px; color: #68675e; font-size: 8px; letter-spacing: .12em; padding: 9px 12px; text-transform: uppercase; }

.feature-tshape { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); }
.device-stage {
  align-items: center;
  background: var(--sage-light);
  display: flex;
  justify-content: center;
  min-height: 760px;
  overflow: hidden;
  padding: 60px;
  position: relative;
}
.device-stage img { filter: drop-shadow(0 28px 35px rgba(47,59,50,.18)); max-height: 650px; position: relative; z-index: 2; }
.device-word { color: rgba(255,255,255,.48); font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: clamp(100px, 14vw, 220px); left: 50%; letter-spacing: -.08em; position: absolute; top: 50%; transform: translate(-50%,-50%); }

.partners { background: var(--paper); }
.partners-content { max-width: 1160px; }
.section-heading-row { align-items: end; display: grid; gap: 8vw; grid-template-columns: minmax(500px, 1.5fr) 1fr; }
.section-heading-row > p { padding-bottom: 8px; }
.partner-list { border-top: 1px solid var(--line); margin-top: 85px; }
.partner-list article { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 24px; grid-template-columns: 65px 1fr 1.2fr auto; padding: 40px 0; }
.partner-list article > span { color: var(--sage-deep); font-size: 9px; letter-spacing: .14em; }
.partner-list h3 { font-size: 27px; letter-spacing: .04em; }
.partner-list p { color: var(--muted); font-size: 12px; line-height: 1.7; margin: 0; max-width: 430px; }
.partner-list a { align-self: end; border-bottom: 1px solid var(--sage-deep); font-size: 8px; letter-spacing: .13em; padding-bottom: 5px; text-transform: uppercase; }

.slimming { background: var(--forest); color: var(--ivory); display: grid; grid-template-columns: .82fr 1.18fr; min-height: 1000px; }
.slimming-intro { align-self: center; padding: 110px 6vw 110px 8vw; }
.big-number { color: rgba(255,255,255,.4); display: block; font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: 110px; line-height: .8; margin: 70px 0 35px; }
.slimming h2 { font-size: clamp(52px, 5.4vw, 84px); }
.slimming h2 em { color: var(--beige); }
.slimming-intro > p:not(.kicker) { color: rgba(255,255,255,.65); font-size: 14px; line-height: 1.8; margin: 38px 0; max-width: 550px; }
.button-ivory { background: var(--ivory); color: var(--forest); }
.button-ivory:hover { background: var(--beige); }
.slimming-cards { background: var(--sage-light); color: var(--ink); display: grid; grid-template-rows: 1fr 1fr; padding: 70px; }
.slimming-card { align-items: center; display: grid; gap: 45px; grid-template-columns: .9fr 1.1fr; padding: 38px; }
.slimming-card + .slimming-card { border-top: 1px solid var(--line); }
.slimming-card h3 { font-size: 42px; }
.slimming-card p:not(.brand-tag) { color: var(--muted); font-size: 12px; line-height: 1.72; margin: 18px 0 0; }
.infra-device-wrap { align-items: center; display: flex; justify-content: center; min-height: 330px; }
.infra-device-wrap img { filter: drop-shadow(0 20px 24px rgba(47,59,50,.18)); }
.tea-card { grid-template-columns: 1.1fr .9fr; }
.tea-card img { max-height: 360px; object-fit: contain; }
.tea-card small { color: var(--muted); display: block; font-size: 9px; line-height: 1.55; margin-top: 18px; }

.treatments { background: var(--ivory); border-top: 1px solid var(--line); }
.section-main { max-width: 1120px; }
.treatment-list { border-top: 1px solid var(--line); margin-top: 90px; }
.treatment-row { border-bottom: 1px solid var(--line); }
.treatment-row summary { align-items: center; cursor: pointer; display: grid; gap: 20px; grid-template-columns: 55px 1.4fr 1fr 40px; list-style: none; min-height: 118px; padding: 14px 6px; }
.treatment-row summary::-webkit-details-marker { display: none; }
.row-number, .row-eyebrow { color: var(--muted); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }
.row-title { font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: clamp(32px, 3vw, 47px); letter-spacing: -.045em; }
.row-open { font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: 26px; justify-self: end; transition: transform 180ms ease; }
.treatment-row[open] .row-open { color: var(--sage-deep); transform: rotate(45deg); }
.treatment-detail { display: grid; gap: 28px; grid-template-columns: 1fr 1fr auto; margin-left: 75px; padding: 0 6px 38px; }
.treatment-detail p { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 0; }
.treatment-items { font-style: italic; }
.treatment-detail a { align-self: end; border-bottom: 1px solid var(--sage-deep); font-size: 9px; letter-spacing: .12em; padding-bottom: 5px; text-transform: uppercase; }

.method { background: var(--sage-light); }
.method-heading { align-items: center; }
.method-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 95px; }
.method-steps article { border-left: 1px solid var(--line); min-height: 300px; padding: 15px 38px 30px; }
.method-steps article:first-child { border-left: 0; padding-left: 0; }
.method-steps article > span { color: var(--sage-deep); font-size: 10px; letter-spacing: .14em; }
.method-steps h3 { font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: 41px; font-weight: 400; letter-spacing: -.045em; margin: 115px 0 13px; }
.method-steps p { color: var(--muted); font-size: 13px; line-height: 1.65; margin: 0; max-width: 230px; }

.ritual {
  align-items: end;
  background-color: var(--forest);
  background-image:
    linear-gradient(90deg, rgba(35,45,38,.88) 0%, rgba(35,45,38,.30) 62%, rgba(35,45,38,.16)),
    url('cz-ritual.webp');
  background-position: center;
  background-size: cover;
  color: var(--ivory);
  display: flex;
  min-height: 720px;
  padding: 100px 9vw;
}
.ritual-copy { max-width: 820px; }
.ritual blockquote { font-size: clamp(48px, 6vw, 86px); line-height: .98; }
.ritual blockquote em { color: var(--beige); }
.ritual-copy > p:last-child { color: rgba(255,255,255,.66); font-size: 14px; line-height: 1.75; margin: 38px 0 0; max-width: 480px; }

.consultation { background: var(--beige); }
.consultation-content { max-width: 980px; }
.consultation-content > p { margin: 42px 0 0; max-width: 570px; }
.consultation-actions { align-items: center; display: flex; gap: 30px; margin-top: 46px; }
.button-dark { background: var(--forest); color: var(--ivory); }
.button-dark:hover { background: var(--ink); }
.consultation-actions > span { color: var(--muted); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }

footer { background: var(--forest); color: var(--ivory); padding: 90px 5vw 28px; }
.footer-brand { font-size: clamp(58px, 10vw, 154px); font-weight: 800; letter-spacing: -.075em; line-height: .8; }
.footer-brand > span { color: var(--sand); }
.footer-brand small { display: block; font-size: 11px; font-weight: 500; letter-spacing: .2em; margin: 26px 0 0 6px; text-transform: uppercase; }
.footer-columns { border-top: 1px solid rgba(255,255,255,.16); display: grid; gap: 50px; grid-template-columns: repeat(3, 1fr); margin-top: 80px; padding: 40px 0 65px 40%; }
.footer-columns div { display: flex; flex-direction: column; font-size: 12px; gap: 11px; }
.footer-columns span { color: rgba(255,255,255,.6); }
.footer-label { color: var(--sand); font-size: 8px; letter-spacing: .2em; margin: 0 0 10px; text-transform: uppercase; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.66); display: flex; font-size: 8px; justify-content: space-between; letter-spacing: .14em; padding-top: 25px; text-transform: uppercase; }

@media (max-width: 1100px) {
  .desktop-nav { gap: 18px; }
  .hero { grid-template-columns: 60% 40%; }
  .feature-copy { padding-inline: 6vw; }
  .slimming { grid-template-columns: 1fr; }
  .slimming-intro { min-height: 720px; }
  .slimming-cards { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .slimming-card { grid-template-columns: 1fr; }
  .slimming-card + .slimming-card { border-left: 1px solid var(--line); border-top: 0; }
  .tea-card img { grid-row: 1; }
}

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav { display: none; }
  .hero { grid-template-columns: 1fr; min-height: 980px; }
  .hero-copy-panel { padding: 145px 8vw 85px; }
  .hero-media { clip-path: none; min-height: 460px; }
  .hero-note { display: none; }
  .brand-ribbon { flex-wrap: wrap; gap: 18px 24px; }
  .section-shell { grid-template-columns: 1fr; padding: 95px 6vw 110px; }
  .section-label { display: flex; gap: 12px; margin-bottom: 65px; }
  .section-heading-row { gap: 40px; grid-template-columns: 1fr; }
  .section-heading-row > p { max-width: 480px; }
  .manifesto-grid { margin-left: 10vw; }
  .feature-treatment { grid-template-columns: 1fr; }
  .feature-tshape .feature-copy { order: 2; }
  .feature-tshape .device-stage { order: 1; }
  .partner-list article { grid-template-columns: 50px 1fr; }
  .partner-list p, .partner-list a { grid-column: 2; }
}

@media (max-width: 680px) {
  .site-header { padding: 22px 6vw; }
  .brand-sub { display: none; }
  .header-cta { font-size: 8px; gap: 7px; }
  .hero { min-height: 880px; }
  .hero-copy-panel { padding: 135px 6vw 72px; }
  .hero-media { background-position: 64% center; min-height: 390px; }
  h1 { font-size: clamp(56px, 18vw, 78px); line-height: .92; }
  .hero-copy { font-size: 13px; margin-top: 28px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; margin-top: 28px; }
  .button { min-width: min(100%, 292px); }
  .brand-ribbon { justify-content: flex-start; padding: 27px 6vw; }
  .brand-ribbon > span { flex-basis: 100%; }
  .brand-ribbon strong { font-size: 13px; }
  .brand-ribbon i { height: 18px; }
  .section-shell { padding: 80px 6vw 90px; }
  .section-label { margin-bottom: 48px; }
  h2 { font-size: clamp(47px, 14vw, 68px); }
  .manifesto-grid { gap: 20px; grid-template-columns: 1fr; margin: 46px 0 0; }
  .feature-media { min-height: 520px; padding: 28px; }
  .photo-caption { bottom: 14px; left: 28px; }
  .feature-copy { padding: 72px 6vw; }
  .feature-copy h3 { font-size: 58px; }
  .bestseller-grid { grid-template-columns: 1fr; }
  .best-card:first-child { border-right: 0; }
  .best-card-image { height: 470px; }
  .best-card-copy { padding: 54px 6vw 68px; }
  .device-stage { min-height: 560px; padding: 30px; }
  .partner-list article { grid-template-columns: 36px 1fr; padding: 34px 0; }
  .slimming-intro { min-height: auto; padding: 85px 6vw; }
  .big-number { font-size: 80px; margin-top: 50px; }
  .slimming h2 { font-size: clamp(48px, 14vw, 67px); }
  .slimming-cards { grid-template-columns: 1fr; padding: 25px; }
  .slimming-card { padding: 40px 18px; }
  .slimming-card + .slimming-card { border-left: 0; border-top: 1px solid var(--line); }
  .infra-device-wrap { min-height: 270px; }
  .treatment-list { margin-top: 60px; }
  .treatment-row summary { gap: 14px; grid-template-columns: 34px 1fr 26px; min-height: 92px; }
  .row-eyebrow { display: none; }
  .row-title { font-size: 32px; }
  .treatment-detail { grid-template-columns: 1fr; margin-left: 48px; padding-bottom: 34px; }
  .treatment-detail a { justify-self: start; }
  .method-steps { grid-template-columns: 1fr; margin-top: 60px; }
  .method-steps article, .method-steps article:first-child { border-bottom: 1px solid var(--line); border-left: 0; min-height: auto; padding: 30px 0; }
  .method-steps h3 { margin: 38px 0 10px; }
  .ritual { background-position: 63% center; min-height: 660px; padding: 80px 6vw; }
  .ritual blockquote { font-size: clamp(43px, 13vw, 61px); }
  .consultation-actions { align-items: flex-start; flex-direction: column; }
  footer { padding: 70px 6vw 25px; }
  .footer-columns { grid-template-columns: 1fr 1fr; margin-top: 60px; padding: 35px 0 55px; }
  .footer-bottom { flex-direction: column; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   Aggiunte Seron (non nel riferimento)
   ═══════════════════════════════════════════════════════════════ */
a:focus-visible, summary:focus-visible, button:focus-visible { outline: 2px solid var(--sage-deep); outline-offset: 3px; }
.burger { display: none; justify-self: end; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; place-content: center; gap: 6px; }
.burger span { display: block; width: 18px; height: 1px; background: var(--ink); }
.drawer { position: fixed; inset: 0; z-index: 30; display: flex; flex-direction: column; justify-content: center; gap: 18px; padding: 90px 8vw; background: var(--forest); color: var(--ivory); opacity: 0; pointer-events: none; transition: opacity 200ms ease; }
.drawer.open { opacity: 1; pointer-events: auto; }
.drawer a { font-family: Georgia, "Gelasio", "Times New Roman", serif; font-size: clamp(34px, 9vw, 52px); letter-spacing: -.045em; }
body.menu-open { overflow: hidden; }
.menu-open .site-header { position: fixed; z-index: 40; color: var(--ivory); }
.menu-open .burger span { background: var(--ivory); }
.footer-bottom a:hover { color: var(--sand); }
@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto auto; gap: 14px; }
  .burger { display: grid; }
}
/* bug del riferimento: le colonne della griglia non scendevano sotto il contenuto e a 360-390 px
   le schede best seller uscivano dallo schermo */
.feature-treatment > *, .bestseller-grid > *, .slimming > *, .slimming-cards > *, .section-shell > * { min-width: 0; }
.feature-copy h3, .best-card h3 { overflow-wrap: anywhere; }
@media (max-width: 680px) {
  .header-cta { display: none; }
  /* sotto i 400 px la scala del riferimento sborda di qualche pixel (corsivi e ZERONERO del piede) */
  h2 { font-size: clamp(38px, 12.5vw, 68px); }
  .footer-brand { font-size: clamp(40px, 14.5vw, 58px); }
}
html, body { overflow-x: clip; }

/* ═══ Banner cookie ═══ */
.cookie{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:140;max-width:660px;margin-inline:auto;
  background:#2f3b32;color:#fffdf8;border:1px solid rgba(255,255,255,.16);
  padding:20px 22px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;
  box-shadow:0 14px 44px rgba(38,49,39,.35);
}
.cookie p{flex:1 1 260px;min-width:0;margin:0;font-size:.86rem;color:#c2cbbd;max-width:none}
.cookie a{color:#fffdf8;text-decoration:underline}
.cookie-actions{display:flex;gap:10px;margin-left:auto}
.cookie-actions button{
  font-family:Arial, Helvetica, sans-serif;font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:12px 20px;border:1px solid #fffdf8;background:none;color:#fffdf8;cursor:pointer;
  transition:background .2s,color .2s;
}
.cookie-actions .ok{background:#fffdf8;color:#2f3b32}
.cookie-actions button:hover{background:#dfe5d8;color:#2f3b32;border-color:#dfe5d8}
@media (max-width:767px){.cookie-actions{width:100%}.cookie-actions button{flex:1}}
.bestsellers{background:var(--warm)}

/* 21/10: link «Preferenze cookie» nel piede e nota sulle immagini generate con IA */
.footer-consent { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: inherit; text-transform: inherit; letter-spacing: inherit; }
.footer-consent:hover { text-decoration: underline; }
.footer-ai { margin: 18px auto 0; max-width: 1180px; padding: 0 24px; font-size: 11px; line-height: 1.5; opacity: .62; }
