/* d07 · Il cartellino sartoriale
   La pagina è il cartellino d'atelier: carta stampata a due inchiostri (prugna e magenta)
   su un fondo rosa cipria. Ogni abito ha il suo cartellino con un ritaglio del suo colore. */

.osn-d07 {
  --osn-bg: #e7a6cd;            /* fondo: carta velina rosa del marchio */
  --osn-surface: #f6f3f5;       /* carta del cartellino */
  --osn-ink: #2b161b;
  --osn-soft: #554b4e;
  --osn-accent: #c54790;
  --osn-accent-ink: #fff;
  --osn-display: 'Bodoni Moda', 'Bodoni 72', Didot, Georgia, serif;
  --osn-text: 'Lato', system-ui, sans-serif;
  --osn-margin: clamp(1rem, 2.4vw, 2.5rem);
  --osn-section: clamp(6rem, 11vw, 11rem);
  --d07-paper: #f6f3f5;
  --d07-plum: #2b161b;
  --d07-cut: 2.25rem;           /* angoli tagliati del cartellino */
  --d07-hole: 1.25rem;          /* foro del cartellino */
  --d07-s-xl: clamp(2.6rem, 5.4vw, 5.75rem);
  --d07-s-l: clamp(1.75rem, 2.6vw, 2.5rem);
  --d07-s-m: 1.5rem;
  --d07-s-s: .9375rem;
  background: var(--osn-bg);
  color: var(--osn-ink);
}
.osn-d07 .wp-block-heading { font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.osn-d07 a { text-underline-offset: .22em; text-decoration-thickness: 1px; }

/* ---------- il cartellino: carta con angoli tagliati e un foro ---------- */
.osn-d07 .osn-d07-card {
  position: relative;
  background: var(--d07-paper);
  color: var(--d07-plum);
  clip-path: polygon(var(--d07-cut) 0, calc(100% - var(--d07-cut)) 0, 100% var(--d07-cut), 100% 100%, 0 100%, 0 var(--d07-cut));
}
.osn-d07 .osn-d07-card::before {
  content: ''; position: absolute; top: calc(var(--d07-cut) * .75); left: 50%;
  width: var(--d07-hole); height: var(--d07-hole); margin-left: calc(var(--d07-hole) / -2);
  border-radius: 50%; background: var(--osn-bg);
}

/* bottoni: rettangoli pieni, testo a 19px per il contrasto sul magenta */
.osn-d07 .osn-cta .wp-block-button__link, .osn-d07 .osn-book__wa, .osn-d07 .osn-book__etsy { font-size: 1.1875rem; padding: 1.05rem 1.6rem; }
.osn-d07 .osn-cta--mail .wp-block-button__link { font-size: 1.0625rem; padding-inline: 0; }

/* ---------- apertura: cartellino a sinistra, foto a destra ---------- */
.osn-d07 .osn-d07-hero {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
  padding: 12px var(--osn-margin) 0;
  align-items: start;
}
.osn-d07 .osn-d07-hero__card {
  min-height: calc(100svh - 24px);
  padding: calc(var(--d07-cut) + 3.25rem) clamp(1.5rem, 4vw, 4.5rem) 2.5rem;
  display: flex; flex-direction: column; align-items: center; text-align: center;
}
.osn-d07 .osn-d07-hero__title { font-size: var(--d07-s-xl); line-height: .98; letter-spacing: -.03em; font-weight: 500; }
.osn-d07 .osn-d07-hero__lead { margin-top: 2rem; max-width: 38ch; font-size: 1.125rem; }
.osn-d07 .osn-d07-hero__act { margin-top: 2rem; justify-content: center; }
.osn-d07 .osn-d07-index__title { margin-top: clamp(2.5rem, 5vh, 3.5rem); font-size: var(--d07-s-m); }
.osn-d07 .osn-d07-index__head,
.osn-d07 .osn-d07-idx {
  display: grid; grid-template-columns: 1fr 5.5rem 5.5rem; gap: 1rem; align-items: baseline; width: 100%; text-align: left;
}
.osn-d07 .osn-d07-index__head { margin-top: 1rem; padding: 0 .75rem .5rem; font-size: var(--d07-s-s); color: var(--osn-soft); }
.osn-d07 .osn-d07-index__head span:not(:first-child), .osn-d07 .osn-d07-idx__price { text-align: right; }
.osn-d07 .osn-d07-index { width: 100%; }
.osn-d07 .osn-d07-index li:nth-child(odd) .osn-d07-idx { background: #ece4e8; }
.osn-d07 .osn-d07-idx {
  grid-template-columns: auto 1fr 5.5rem 5.5rem; padding: .6rem .75rem; text-decoration: none;
  font-variant-numeric: tabular-nums lining-nums; transition: opacity 240ms, background-color 240ms;
}
.osn-d07 .osn-d07-idx__name { font-family: var(--osn-display); font-size: var(--d07-s-m); line-height: 1.1; font-weight: 500; }
.osn-d07 .osn-d07-idx__meta { font-size: var(--d07-s-s); color: var(--osn-soft); }
.osn-d07 .osn-d07-idx__price { font-weight: 700; }
@media (hover: hover) {
  .osn-d07 .osn-d07-index:hover .osn-d07-idx { opacity: .4; }
  .osn-d07 .osn-d07-index .osn-d07-idx:hover, .osn-d07 .osn-d07-index .osn-d07-idx:focus-visible { opacity: 1; }
}
.osn-d07 .osn-d07-idx:hover .osn-d07-idx__name { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .18em; }

.osn-d07 .osn-d07-hero__photo { position: sticky; top: 12px; height: calc(100svh - 24px); overflow: hidden; background: var(--d07-plum); }
.osn-d07 .osn-d07-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.osn-d07 .osn-d07-hero__photo img + img { position: absolute; inset: 0; }
.osn-d07 .osn-d07-hero__photo img.is-fading { opacity: 0; transition: opacity 240ms ease-out; }

/* ---------- galleria: foto e cartellino, un oggetto solo ---------- */
.osn-d07 .osn-d07-shelf { padding: var(--osn-section) var(--osn-margin) 0; }
.osn-d07 .osn-d07-shelf__title { font-size: var(--d07-s-l); }
.osn-d07 .osn-d07-shelf__lead { margin-top: 1rem; max-width: 52ch; font-size: 1.125rem; }
.osn-d07 .osn-d07-shelf__grid {
  margin-top: 2.5rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 12px;
}
.osn-d07 .osn-d07-tag {
  --tag-bg: var(--d07-paper); --tag-ink: var(--d07-plum); --tag-soft: var(--osn-soft);
  display: flex; flex-direction: column;
  background: var(--tag-bg); color: var(--tag-ink);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 1.25rem), calc(100% - 1.25rem) 100%, 1.25rem 100%, 0 calc(100% - 1.25rem));
}
.osn-d07 .osn-d07-shelf__grid > .osn-d07-tag:nth-child(4n + 2),
.osn-d07 .osn-d07-shelf__grid > .osn-d07-tag:nth-child(4n + 4) { --tag-bg: var(--d07-plum); --tag-ink: var(--d07-paper); --tag-soft: #d9cdd2; }
.osn-d07 .osn-d07-shelf__grid > .osn-d07-tag:nth-child(n + 5):nth-child(odd) { --tag-bg: var(--d07-plum); --tag-ink: var(--d07-paper); --tag-soft: #d9cdd2; }
.osn-d07 .osn-d07-shelf__grid > .osn-d07-tag:nth-child(n + 5):nth-child(even) { --tag-bg: var(--d07-paper); --tag-ink: var(--d07-plum); --tag-soft: var(--osn-soft); }
.osn-d07 .osn-d07-tag .osn-item__img img { aspect-ratio: 4 / 5; object-position: 50% 18%; }
.osn-d07 .osn-d07-tag .osn-item__name { padding: 1.1rem 1rem 0; font-size: var(--d07-s-m); line-height: 1.1; display: flex; align-items: center; gap: .6rem; }
.osn-d07 .osn-d07-tag .osn-item__name::before {
  content: ''; flex: none; width: 1.1rem; height: 1.1rem; background: var(--swatch, currentColor);
}
.osn-d07 .osn-d07-tag .osn-item__meta, .osn-d07 .osn-d07-tag__fabric { padding: .35rem 1rem 0; font-size: var(--d07-s-s); color: var(--tag-soft); line-height: 1.4; }
.osn-d07 .osn-d07-tag .osn-prices {
  margin-top: auto; padding: 1rem 1rem 1.6rem; display: flex; justify-content: space-between; gap: .75rem;
}
.osn-d07 .osn-d07-tag .osn-price a { display: grid; gap: .1rem; font-size: var(--d07-s-s); font-variant-numeric: tabular-nums lining-nums; }
.osn-d07 .osn-d07-tag .osn-price--misura a { text-align: right; }
.osn-d07 .osn-d07-tag .osn-price strong { font-family: var(--osn-display); font-size: var(--d07-s-m); font-weight: 600; line-height: 1.1; }
.osn-d07 .osn-d07-tag .osn-price a:hover strong { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }

/* il ritaglio di stoffa: il colore vero di ogni abito */
.osn-d07 .osn-item--scarlatta, .osn-d07 .osn-d07-swatch--scarlatta { --swatch: #c8102e; }
.osn-d07 .osn-item--laguna, .osn-d07 .osn-d07-swatch--laguna { --swatch: #1f3a6b; }
.osn-d07 .osn-item--cobalto, .osn-d07 .osn-d07-swatch--cobalto { --swatch: #1e5bb8; }
.osn-d07 .osn-item--aurora, .osn-d07 .osn-d07-swatch--aurora { --swatch: #e3a9b5; }
.osn-d07 .osn-item--petalo, .osn-d07 .osn-d07-swatch--petalo { --swatch: #ebb8be; }
.osn-d07 .osn-item--cipria, .osn-d07 .osn-d07-swatch--cipria { --swatch: #c9a08a; }
.osn-d07 .osn-item--ambra, .osn-d07 .osn-d07-swatch--ambra { --swatch: #9a6a45; }
.osn-d07 .osn-item--bordeaux, .osn-d07 .osn-d07-swatch--bordeaux { --swatch: #6e1a2c; }

/* ---------- come funziona: una fila di momenti da trascinare ---------- */
.osn-d07 .osn-d07-how { margin-top: var(--osn-section); padding: clamp(4rem, 8vw, 7rem) 0; background: var(--d07-paper); color: var(--d07-plum); }
.osn-d07 .osn-d07-how__head { padding-inline: var(--osn-margin); display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.osn-d07 .osn-d07-how__title { font-size: var(--d07-s-l); }
.osn-d07 .osn-d07-how__nav { display: flex; gap: 8px; }
.osn-d07 .osn-d07-how__nav button {
  width: 48px; height: 48px; border: 0; border-radius: 0; background: var(--d07-plum); color: var(--d07-paper);
  font: 700 1.25rem/1 var(--osn-text); cursor: pointer; transition: transform 140ms, background-color 180ms;
}
.osn-d07 .osn-d07-how__nav button:hover { background: var(--osn-accent); }
.osn-d07 .osn-d07-how__nav button:active { transform: scale(.94); }
.osn-d07 .osn-d07-how__nav button:disabled { opacity: .35; cursor: default; }
.osn-d07 .osn-d07-how__bar { margin: 1.25rem var(--osn-margin) 0; height: 6px; background: #e3d6dc; }
.osn-d07 .osn-d07-how__bar span { display: block; height: 100%; background: var(--d07-plum); transform-origin: 0 50%; transform: scaleX(.2); transition: transform 120ms linear; }
.osn-d07 .osn-d07-how__track {
  margin: 2.5rem var(--osn-margin) 0; display: flex; gap: 32px; overflow-x: auto; scroll-snap-type: x proximity;
  padding: 0 0 1.5rem;
  scrollbar-width: thin; scrollbar-color: var(--d07-plum) transparent;
}
.osn-d07.is-d07-js .osn-d07-how__track { scrollbar-width: none; }
.osn-d07.is-d07-js .osn-d07-how__track::-webkit-scrollbar { display: none; }
.osn-d07 .osn-d07-moment, .osn-d07 .osn-d07-kind { flex: 0 0 280px; scroll-snap-align: start; display: flex; flex-direction: column; }
.osn-d07 .osn-d07-moment__title { font-family: var(--osn-text); font-weight: 700; font-size: 1.125rem; letter-spacing: 0; line-height: 1.3; }
.osn-d07 .osn-d07-moment__text { margin-top: .5rem; font-size: 1rem; min-height: 4.65em; }
.osn-d07 .osn-d07-moment__photo { margin-top: 80px; }
.osn-d07 .osn-d07-moment--r1 .osn-d07-moment__photo, .osn-d07 .osn-d07-moment--m2 .osn-d07-moment__photo { margin-top: 140px; }
.osn-d07 .osn-d07-moment--r2 .osn-d07-moment__photo, .osn-d07 .osn-d07-moment--m0 .osn-d07-moment__photo { margin-top: 104px; }
.osn-d07 .osn-d07-moment--r3 .osn-d07-moment__photo, .osn-d07 .osn-d07-moment--m3 .osn-d07-moment__photo { margin-top: 124px; }
.osn-d07 .osn-d07-moment__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 25%; }
.osn-d07 .osn-d07-kind {
  flex-basis: 320px; padding: calc(var(--d07-cut) + 2rem) 1.75rem 2rem; background: var(--d07-plum); color: var(--d07-paper);
  clip-path: polygon(var(--d07-cut) 0, calc(100% - var(--d07-cut)) 0, 100% var(--d07-cut), 100% 100%, 0 100%, 0 var(--d07-cut));
  position: relative; justify-content: flex-end;
}
.osn-d07 .osn-d07-kind::before { content: ''; position: absolute; top: calc(var(--d07-cut) * .75); left: 50%; width: var(--d07-hole); height: var(--d07-hole); margin-left: calc(var(--d07-hole) / -2); border-radius: 50%; background: var(--d07-paper); }
.osn-d07 .osn-d07-kind--misura { background: var(--osn-accent); color: #fff; }
.osn-d07 .osn-d07-kind h3 { font-size: var(--d07-s-xl); line-height: 1; }
.osn-d07 .osn-d07-kind p { margin-top: 1.25rem; font-size: 1.125rem; font-weight: 700; }

/* ---------- domande: schede d'archivio con la linguetta ---------- */
.osn-d07 .osn-d07-ask { padding: var(--osn-section) var(--osn-margin) 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--osn-gap); }
.osn-d07 .osn-d07-ask > * { grid-column: 3 / 11; }
.osn-d07 .osn-d07-ask__title { font-size: var(--d07-s-l); }
.osn-d07 .osn-d07-faq { margin-top: 2.5rem; display: grid; }
.osn-d07 .osn-d07-faq .osn-faq__item {
  --tab-w: 200px; --tab-h: 40px; --i: 0; --c-bg: var(--d07-paper); --c-ink: var(--d07-plum);
  --tab-x: calc((100% - var(--tab-w)) * var(--i) / 5);
  position: relative; background: var(--c-bg); color: var(--c-ink);
  padding: calc(var(--tab-h) + 1.4rem) clamp(1.25rem, 3vw, 2.5rem) calc(var(--tab-h) + 1.4rem);
  margin-top: calc(-1 * var(--tab-h));
  clip-path: polygon(0 var(--tab-h), var(--tab-x) var(--tab-h), calc(var(--tab-x) + 18px) 0, calc(var(--tab-x) + var(--tab-w) - 18px) 0, calc(var(--tab-x) + var(--tab-w)) var(--tab-h), 100% var(--tab-h), 100% 100%, 0 100%);
}
.osn-d07 .osn-d07-faq .osn-faq__item:first-child { margin-top: 0; }
.osn-d07 .osn-d07-faq .osn-faq__item:last-child { padding-bottom: 2rem; }
.osn-d07 .osn-d07-faq .osn-faq__item:nth-child(2) { --i: 1; }
.osn-d07 .osn-d07-faq .osn-faq__item:nth-child(3) { --i: 2; }
.osn-d07 .osn-d07-faq .osn-faq__item:nth-child(4) { --i: 3; }
.osn-d07 .osn-d07-faq .osn-faq__item:nth-child(5) { --i: 4; }
.osn-d07 .osn-d07-faq .osn-faq__item:nth-child(6) { --i: 5; }
.osn-d07 .osn-d07-faq .osn-faq__item:nth-child(even) { --c-bg: var(--d07-plum); --c-ink: var(--d07-paper); }
.osn-d07 .osn-d07-faq .osn-faq__item summary { font-family: var(--osn-display); font-size: var(--d07-s-m); font-weight: 500; line-height: 1.2; padding-block: .25rem; }
.osn-d07 .osn-d07-faq .osn-faq__item summary:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.osn-d07 .osn-d07-faq .osn-faq__item summary::after { font-family: var(--osn-text); }
.osn-d07 .osn-d07-faq .osn-faq__item > p { font-size: 1.0625rem; max-width: 50ch; }

/* ---------- contatti: il cartellino sulla foto di Venezia ---------- */
.osn-d07 .osn-d07-visit { margin-top: var(--osn-section); position: relative; display: grid; }
.osn-d07 .osn-d07-visit__photo { grid-area: 1 / 1; height: 100svh; min-height: 40rem; overflow: hidden; }
.osn-d07 .osn-d07-visit__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.osn-d07 .osn-d07-visit__card {
  grid-area: 1 / 1; align-self: start; justify-self: start; width: min(26rem, calc(100% - 2 * var(--osn-margin)));
  margin: 60px var(--osn-margin) 0; padding: calc(var(--d07-cut) + 2.25rem) 2rem 0; display: grid;
}
.osn-d07 .osn-d07-visit__title { font-size: var(--d07-s-l); }
.osn-d07 .osn-d07-visit__lead { margin-top: .9rem; }
.osn-d07 .osn-d07-visit__row { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; font-variant-numeric: tabular-nums; }
.osn-d07 .osn-d07-visit__lead + .osn-d07-visit__row { margin-top: 1.25rem; }
.osn-d07 .osn-d07-visit__row span:first-child { font-weight: 700; }
.osn-d07 .osn-d07-visit__row span:last-child { text-align: right; }
.osn-d07 .osn-d07-visit__act { margin: 1.5rem -2rem 0; display: grid; gap: 0; }
.osn-d07 .osn-d07-visit__act .osn-cta--mail { order: -1; padding: 0 2rem 1.25rem; }
.osn-d07 .osn-d07-visit__act .osn-cta--wa .wp-block-button__link { display: block; width: 100%; text-align: center; padding-block: 1.1rem; }

/* ---------- scheda abito ---------- */
.osn-d07.osn-detail { padding-bottom: var(--osn-section); }
.osn-d07 .osn-d07-sheet { display: grid; grid-template-columns: 7fr 5fr; gap: 12px; padding: 12px var(--osn-margin) 0; align-items: start; }
.osn-d07 .osn-d07-sheet__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.osn-d07 .osn-d07-sheet__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 25%; }
.osn-d07 .osn-d07-sheet__photo:first-child, .osn-d07 .osn-d07-sheet__photo:nth-child(even):last-child { grid-column: 1 / -1; }
.osn-d07 .osn-d07-sheet__photo:first-child img { aspect-ratio: 5 / 6; max-height: calc(100svh - 24px); }
.osn-d07 .osn-d07-sheet__photo:nth-child(even):last-child img { aspect-ratio: 3 / 2; }
.osn-d07 .osn-d07-sheet__card { padding: calc(var(--d07-cut) + 3rem) clamp(1.25rem, 3vw, 2.75rem) 2.75rem; display: grid; gap: 0; }
.osn-d07 .osn-d07-sheet__title { text-align: center; font-size: var(--d07-s-xl); display: flex; justify-content: center; align-items: center; gap: .3em; }
.osn-d07 .osn-d07-sheet__title::before { content: ''; flex: none; width: .42em; height: .42em; background: var(--swatch); }
.osn-d07 .osn-d07-sheet__lead { margin-top: 1.25rem; text-align: center; font-family: var(--osn-display); font-size: var(--d07-s-m); line-height: 1.3; }
.osn-d07 .osn-d07-sheet__text { margin-top: 1.25rem; }
.osn-d07 .osn-d07-facts { margin-top: 1.75rem; }
.osn-d07 .osn-d07-facts li { display: flex; justify-content: space-between; gap: 1.5rem; padding: .55rem .75rem; }
.osn-d07 .osn-d07-facts li:nth-child(odd) { background: #ece4e8; }
.osn-d07 .osn-d07-facts li span:first-child { font-weight: 700; }
.osn-d07 .osn-d07-facts li span:last-child { text-align: right; }
.osn-d07 .osn-d07-sheet__prices { margin-top: 1.75rem; min-height: 4.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.osn-d07 .osn-d07-sheet__prices .osn-price a { display: grid; padding: .9rem 1rem; background: var(--d07-plum); color: var(--d07-paper); }
.osn-d07 .osn-d07-sheet__prices .osn-price--misura a { background: var(--osn-accent); color: #fff; }
.osn-d07 .osn-d07-sheet__prices strong { font-family: var(--osn-display); font-size: 2rem; font-weight: 500; line-height: 1.1; }
.osn-d07 .osn-d07-sheet__prices .osn-price a:hover { filter: brightness(1.12); }
.osn-d07 .osn-book { margin-top: 2.25rem; }
.osn-d07 .osn-book legend { font-family: var(--osn-display); font-size: var(--d07-s-m); font-weight: 500; }
.osn-d07 .osn-opt { background: #ece4e8; }
.osn-d07 .osn-field input, .osn-d07 .osn-field select { background: #fff; box-shadow: none; } /* taste-skill-ignore: toglie il bordo interno della base */

.osn-d07 .osn-d07-rent { padding: var(--osn-section) var(--osn-margin) 0; }
.osn-d07 .osn-d07-rent__title { font-size: var(--d07-s-l); }
.osn-d07 .osn-d07-rent__steps { margin-top: 2.5rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.osn-d07 .osn-d07-rent__steps li {
  position: relative; background: var(--d07-paper); padding: calc(var(--d07-cut) + 2.25rem) 1.5rem 2rem;
  clip-path: polygon(var(--d07-cut) 0, calc(100% - var(--d07-cut)) 0, 100% var(--d07-cut), 100% 100%, 0 100%, 0 var(--d07-cut));
}
.osn-d07 .osn-d07-rent__steps li::before { content: ''; position: absolute; top: calc(var(--d07-cut) * .75); left: 50%; width: var(--d07-hole); height: var(--d07-hole); margin-left: calc(var(--d07-hole) / -2); border-radius: 50%; background: var(--osn-bg); }
.osn-d07 .osn-d07-rent__steps li:nth-child(even) { background: var(--d07-plum); color: var(--d07-paper); }
.osn-d07 .osn-d07-rent__steps strong { font-family: var(--osn-display); font-size: var(--d07-s-m); font-weight: 500; line-height: 1.15; margin-bottom: .6rem; }
.osn-d07 .osn-d07-more { padding: var(--osn-section) var(--osn-margin) 0; }
.osn-d07 .osn-d07-more__title { font-size: var(--d07-s-l); }
.osn-d07 .osn-d07-more__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.osn-d07 .osn-d07-more__back { margin-top: 2.5rem; font-size: 1.125rem; font-weight: 700; }

/* ---------- tablet ---------- */
@media (max-width: 1100px) {
  .osn-d07 .osn-d07-shelf__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .osn-d07 .osn-d07-shelf__grid > .osn-d07-tag { --tag-bg: var(--d07-paper); --tag-ink: var(--d07-plum); --tag-soft: var(--osn-soft); }
  .osn-d07 .osn-d07-shelf__grid > .osn-d07-tag:nth-child(4n + 2),
  .osn-d07 .osn-d07-shelf__grid > .osn-d07-tag:nth-child(4n + 3) { --tag-bg: var(--d07-plum); --tag-ink: var(--d07-paper); --tag-soft: #d9cdd2; }
  .osn-d07 .osn-d07-more__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .osn-d07 .osn-d07-ask > * { grid-column: 1 / -1; }
  .osn-d07 .osn-d07-rent__steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .osn-d07 .osn-d07-hero { grid-template-columns: 1fr; }
  .osn-d07 .osn-d07-hero__photo { order: -1; position: relative; top: 0; height: 56svh; }
  .osn-d07 .osn-d07-hero__card { order: 1; min-height: 0; margin-top: -24px; }
  .osn-d07 .osn-d07-sheet { grid-template-columns: 1fr; }
  .osn-d07 .osn-d07-sheet__photos { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .osn-d07 .osn-d07-sheet__photo { flex: 0 0 min(78%, 30rem); scroll-snap-align: start; }
  .osn-d07 .osn-d07-sheet__photos--1 .osn-d07-sheet__photo { flex-basis: 100%; }
  .osn-d07 .osn-d07-sheet__photo img, .osn-d07 .osn-d07-sheet__photo:first-child img, .osn-d07 .osn-d07-sheet__photo:nth-child(even):last-child img { height: 56svh; max-height: none; aspect-ratio: auto; }
  .osn-d07 .osn-d07-sheet__card { margin-top: -24px; }
}

/* ---------- telefono: una composizione sua ---------- */
@media (max-width: 600px) {
  .osn-d07 { --d07-cut: 1.5rem; --d07-hole: 1rem; --d07-s-xl: clamp(2.4rem, 11vw, 3.25rem); --d07-s-l: 1.875rem; --d07-s-m: 1.3125rem; }
  .osn-d07 .osn-d07-hero { padding: 12px 12px 0; }
  .osn-d07 .osn-d07-hero__photo { height: 48svh; }
  .osn-d07 .osn-d07-hero__card { padding: calc(var(--d07-cut) + 2.25rem) 1.1rem 1.75rem; }
  .osn-d07 .osn-d07-hero__lead { font-size: 1.0625rem; margin-top: 1.25rem; }
  .osn-d07 .osn-d07-hero__act { width: 100%; }
  .osn-d07 .osn-d07-hero__act .wp-block-button, .osn-d07 .osn-d07-hero__act .wp-block-button__link { width: 100%; text-align: center; }
  .osn-d07 .osn-d07-index__head, .osn-d07 .osn-d07-idx { grid-template-columns: 1fr 4.25rem 4.25rem; gap: .5rem; padding-inline: .5rem; }
  .osn-d07 .osn-d07-idx__meta { display: none; }
  .osn-d07 .osn-d07-shelf__grid { gap: 20px 8px; }
  .osn-d07 .osn-d07-tag .osn-item__name { padding: .8rem .7rem 0; gap: .45rem; }
  .osn-d07 .osn-d07-tag .osn-item__name::before { width: .85rem; height: .85rem; }
  .osn-d07 .osn-d07-tag .osn-item__meta { padding-inline: .7rem; }
  .osn-d07 .osn-d07-tag__fabric { display: none; }
  .osn-d07 .osn-d07-tag .osn-prices { flex-direction: column; gap: .4rem; padding: .75rem .7rem 1.4rem; }
  .osn-d07 .osn-d07-tag .osn-price a { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
  .osn-d07 .osn-d07-tag .osn-price--misura a { text-align: left; }
  .osn-d07 .osn-d07-tag .osn-price strong { font-size: 1.1875rem; }
  .osn-d07 .osn-d07-how__nav { display: none; }
  .osn-d07 .osn-d07-how__track { gap: 16px; }
  .osn-d07 .osn-d07-moment, .osn-d07 .osn-d07-kind { flex-basis: 72vw; }
  .osn-d07 .osn-d07-moment__photo { margin-top: 32px; }
  .osn-d07 .osn-d07-moment--r1 .osn-d07-moment__photo, .osn-d07 .osn-d07-moment--m2 .osn-d07-moment__photo { margin-top: 64px; }
  .osn-d07 .osn-d07-moment--r2 .osn-d07-moment__photo, .osn-d07 .osn-d07-moment--m0 .osn-d07-moment__photo { margin-top: 44px; }
  .osn-d07 .osn-d07-moment--r3 .osn-d07-moment__photo, .osn-d07 .osn-d07-moment--m3 .osn-d07-moment__photo { margin-top: 54px; }
  .osn-d07 .osn-d07-faq .osn-faq__item { --tab-w: 120px; --tab-h: 32px; padding: calc(var(--tab-h) + 1rem) 20px calc(var(--tab-h) + 1.1rem); }
  .osn-d07 .osn-d07-faq .osn-faq__item > p { font-size: 1rem; }
  .osn-d07 .osn-d07-visit__photo { height: 70svh; min-height: 0; }
  .osn-d07 .osn-d07-visit__card { grid-area: 2 / 1; justify-self: stretch; width: auto; margin: -80px 16px 0; padding-inline: 1.25rem; }
  .osn-d07 .osn-d07-visit__act { margin-inline: -1.25rem; }
  .osn-d07 .osn-d07-visit__act .osn-cta--mail { padding-inline: 1.25rem; }
  .osn-d07 .osn-d07-visit__act .osn-cta--wa .wp-block-button__link { min-height: 56px; }
  .osn-d07 .osn-d07-sheet { padding: 12px 12px 0; }
  .osn-d07 .osn-d07-sheet__photos { gap: 8px; }
  .osn-d07 .osn-d07-sheet__card { padding-inline: 1.1rem; }
  .osn-d07 .osn-d07-sheet__prices strong { font-size: 1.625rem; }
  .osn-d07 .osn-d07-rent__steps, .osn-d07 .osn-d07-more__grid { grid-template-columns: 1fr; }
  .osn-d07 .osn-d07-more__grid { grid-template-columns: 1fr 1fr; }
  .osn-d07 .osn-d07-more__grid > .osn-d07-tag:nth-child(3) { grid-column: 1 / -1; }
}

/* una sola foto viva: la foto d'apertura respira piano */
@media (prefers-reduced-motion: no-preference) {
  .osn-d07 .osn-d07-hero__photo img:first-child { animation: d07-breathe 18s ease-in-out infinite alternate; }
  @keyframes d07-breathe { from { transform: scale(1); } to { transform: scale(1.06); } }
}
@media (prefers-reduced-motion: reduce) {
  .osn-d07 .osn-d07-hero__photo img.is-fading { transition: none; }
  .osn-d07 .osn-d07-how__bar span { transition: none; }
}
