/** Shopify CDN: Minification failed

Line 3168:20 Unexpected "{"

**/
/* SHOPIFY_STYLESHEETS_VERSION: 1.0 */


/* CSS from section stylesheet tags */
/* START_SECTION:404 (INDEX:0) */
.studio-404__inner {
    display: flex;
    flex-direction: column;
    max-width: 720px;
    margin: 0 auto;
  }

  .studio-404__eyebrow {
    margin: 0 0 16px;
  }

  .studio-404__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.05;
    margin: 0 0 20px;
    color: var(--studio-color-text);
  }

  .studio-404__text {
    font-size: 1rem;
    line-height: 1.6;
    max-width: 480px;
    color: var(--studio-color-accent-3);
  }
  .studio-404__text p { margin: 0 0 0.6em; }
  .studio-404__text p:last-child { margin-bottom: 0; }

  .studio-404__cta {
    margin-top: 28px;
  }

  .studio-404__search {
    display: flex;
    gap: 10px;
    width: 100%;
    max-width: 460px;
    margin-top: 28px;
  }
  .studio-404__search-input {
    flex: 1;
    min-width: 0;
  }

  .studio-404__quick {
    margin-top: 44px;
    width: 100%;
  }
  .studio-404__quick-title {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-accent-3);
    margin: 0 0 14px;
  }
  .studio-404__quick-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  .studio-404__quick-link {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-size: 0.8125rem;
    letter-spacing: 0.02em;
    text-decoration: none;
    color: var(--studio-color-text);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: 999px;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  @media (hover: hover) {
    .studio-404__quick-link:hover {
      background: var(--studio-color-text);
      color: var(--studio-color-bg);
      border-color: var(--studio-color-text);
    }
  }
  .studio-404__quick-link--placeholder {
    opacity: 0.5;
  }

  :where(
    .studio-404__quick-link,
    .studio-404__search-input,
    .studio-404__search button,
    .studio-404__cta a
  ):focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (max-width: 600px) {
    .studio-404__search {
      flex-direction: column;
    }
    .studio-404__search .studio-btn {
      width: 100%;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-404__quick-link {
      transition: none;
    }
  }
/* END_SECTION:404 */

/* START_SECTION:announcement (INDEX:3) */
.studio-announcement {
    background: var(--studio-color-announcement-bg);
    color: var(--studio-color-announcement-text);
    text-align: center;
    padding: 10px 48px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
  }

  /* Marquee: niente padding laterale, overflow solo qui */
  .studio-announcement[data-scroll-mode="marquee"] {
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
  }

  /* ===== FADE MODE ===== */
  .studio-announcement__track {
    flex: 1;
    position: relative;
    overflow: hidden;
    min-height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .studio-announcement__message {
    position: absolute;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.4s ease, transform 0.4s ease;
    pointer-events: none;
    padding: 0 16px;
  }

  .studio-announcement__message--active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: all;
    position: relative;
  }

  .studio-announcement__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--studio-color-announcement-text);
    cursor: pointer;
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.7;
    transition: opacity 0.2s;
    z-index: 2;
    line-height: 0;
  }

  .studio-announcement__arrow--prev { left: 12px; }
  .studio-announcement__arrow--next { right: 12px; }

  @media (hover: hover) {
    .studio-announcement__arrow:hover { opacity: 1; }
  }

  /* ===== MARQUEE MODE ===== */
  .studio-announcement__marquee {
    width: 100%;
    display: flex;
    align-items: center;
  }

  .studio-announcement__marquee-track {
    display: flex;
    align-items: center;
    white-space: nowrap;
    width: max-content;
    animation: studio-ann-marquee 30s linear infinite;
    will-change: transform;
  }

  @keyframes studio-ann-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-announcement__marquee-track {
      animation: none;
    }
  }

  .studio-announcement__marquee-item {
    display: inline-flex;
    align-items: center;
    padding: 0 8px;
  }

  .studio-announcement__marquee-sep {
    margin: 0 20px;
    opacity: 0.45;
  }

  /* ===== LINK ===== */
  .studio-announcement__link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* ===== FONT STYLES ===== */
  .studio-announcement--heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
  }

  .studio-announcement--body {
    font-family: var(--studio-font-body-family);
    font-weight: 400;
    letter-spacing: var(--studio-body-letter-spacing);
    text-transform: none;
  }

  .studio-announcement--eyebrow {
    font-family: var(--studio-font-heading-family);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
  }

  .studio-announcement--sm { font-size: 0.6875rem; }
  .studio-announcement--md { font-size: 0.75rem; }
  .studio-announcement--lg { font-size: 0.875rem; }

  /* ===== COUNTDOWN MODE ===== */
  .studio-announcement__countdown-wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px 16px;
    width: 100%;
  }

  .studio-announcement__countdown-text {
    display: inline-flex;
    align-items: center;
  }

  .studio-announcement__highlight {
    font-weight: 700;
  }

  .studio-announcement__expired-msg {
    display: none;
  }

  .studio-announcement--expired .studio-announcement__countdown-wrap {
    display: none;
  }

  .studio-announcement--expired .studio-announcement__expired-msg {
    display: inline-flex;
    align-items: center;
  }

  @media (max-width: 768px) {
    .studio-announcement__countdown-wrap {
      flex-direction: column;
      gap: 6px;
    }
  }
/* END_SECTION:announcement */

/* START_SECTION:article (INDEX:4) */
.studio-article__header {
    display: flex;
    flex-direction: column;
    max-width: 760px;
    margin: 0 auto;
  }
  .studio-article__category {
    font-size: 0.6875rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    margin: 0 0 18px;
  }
  .studio-article__category a {
    color: var(--studio-color-accent-1);
    text-decoration: none;
  }
  .studio-article__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.1;
    margin: 0 0 20px;
    color: var(--studio-color-text);
  }
  .studio-article__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--studio-color-accent-3);
    margin: 0;
  }

  .studio-article__hero {
    margin: 44px 0 0;
    width: 100%;
    max-width: var(--studio-page-width);
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }
  .studio-article__hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-article__content {
    max-width: 760px;
    margin: 48px auto 0;
  }

  .studio-article__tags {
    max-width: 760px;
    margin: 40px auto 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  .studio-article__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 14px;
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    color: var(--studio-color-text);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: 999px;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  .studio-article__tag svg { width: 13px; height: 13px; }
  @media (hover: hover) {
    .studio-article__tag:hover {
      background: var(--studio-color-text);
      color: var(--studio-color-bg);
      border-color: var(--studio-color-text);
    }
  }

  .studio-article__nav {
    max-width: 760px;
    margin: 48px auto 0;
    padding-top: 28px;
    border-top: 1px solid var(--studio-color-accent-2);
    display: flex;
    justify-content: space-between;
    gap: 24px;
  }
  .studio-article__nav-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 48%;
    text-decoration: none;
    color: var(--studio-color-text);
    font-size: 0.875rem;
    transition: opacity 0.2s ease;
  }
  .studio-article__nav-link svg { width: 16px; height: 16px; flex: none; }
  .studio-article__nav-link--next { margin-left: auto; text-align: right; }
  .studio-article__nav-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  @media (hover: hover) {
    .studio-article__nav-link:hover { opacity: 0.6; }
  }

  .studio-article__related {
    margin-top: 80px;
  }
  .studio-article__related-head {
    border-top: 1px solid var(--studio-color-accent-2);
    padding-top: 20px;
    margin-bottom: 28px;
  }
  .studio-article__related-title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: clamp(1.25rem, 2.4vw, 1.75rem);
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-article__related-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px 28px;
  }
  @media (min-width: 769px) {
    .studio-article__related-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  .studio-article__comments {
    max-width: 760px;
    margin: 80px auto 0;
  }
  .studio-article__comments-title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: clamp(1.25rem, 2.4vw, 1.75rem);
    margin: 0 0 28px;
    color: var(--studio-color-text);
  }
  .studio-article__comment-list {
    list-style: none;
    margin: 0 0 40px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .studio-comment {
    padding: 22px 0;
    border-bottom: 1px solid var(--studio-color-accent-2);
  }
  .studio-comment__head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 10px;
  }
  .studio-comment__author {
    font-weight: 600;
    color: var(--studio-color-text);
  }
  .studio-comment__date {
    font-size: 0.6875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
  }

  .studio-article__comment-form-title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.125rem;
    margin: 0 0 18px;
    color: var(--studio-color-text);
  }
  .studio-article__comment-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  :where(
    .studio-article__category a,
    .studio-article__tag,
    .studio-article__nav-link,
    .studio-article__comments input,
    .studio-article__comments textarea,
    .studio-article__comments button
  ):focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (max-width: 600px) {
    .studio-article__comment-row {
      grid-template-columns: 1fr;
    }
    .studio-article__nav {
      flex-direction: column;
      gap: 16px;
    }
    .studio-article__nav-link,
    .studio-article__nav-link--next {
      max-width: 100%;
      margin-left: 0;
      text-align: left;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-article__tag,
    .studio-article__nav-link {
      transition: none;
    }
  }
/* END_SECTION:article */

/* START_SECTION:before-after (INDEX:6) */
.studio-before-after__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 40px;
    gap: 24px;
  }

  .studio-before-after__eyebrow {
    margin-bottom: 12px;
  }

  .studio-before-after__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 12px;
  }

  .studio-before-after__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-before-after__subheading {
    font-size: 0.9375rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    line-height: 1.6;
    max-width: 420px;
    margin: 0;
  }

  .studio-before-after__layout {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 32px;
    align-items: start;
  }

  .studio-before-after__layout--full {
    grid-template-columns: 1fr;
  }

  .studio-before-after__compare {
    position: relative;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
    cursor: col-resize;
    user-select: none;
    aspect-ratio: 4/3;
    background: var(--studio-color-accent-2);
  }

  .studio-before-after__after-wrap,
  .studio-before-after__before-wrap {
    position: absolute;
    inset: 0;
  }

  .studio-before-after__before-wrap {
    clip-path: inset(0 50% 0 0);
  }

  .studio-before-after__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
  }

  .studio-before-after__img--mobile { display: none; }

  @media (max-width: 768px) {
    .studio-before-after__img--desktop { display: none; }
    .studio-before-after__img--mobile  { display: block; }
  }

  .studio-before-after__badge {
    position: absolute;
    top: 16px;
    z-index: 4;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 7px 12px;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    border-radius: var(--studio-elements-radius);
    pointer-events: none;
  }

  .studio-before-after__badge--before { left: 16px; }

  .studio-before-after__badge--after {
    right: 16px;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border: 1px solid var(--studio-color-accent-2);
  }

  @media (max-width: 768px) {
    .studio-before-after__badge {
      font-size: 0.5625rem;
      padding: 5px 8px;
      letter-spacing: 0.12em;
    }
  }

  .studio-before-after__line {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: #fff;
    transform: translateX(-50%);
    z-index: 3;
    pointer-events: none;
  }

  .studio-before-after__handle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 44px;
    height: 44px;
    border-radius: 999px;
    background: #fff;
    color: var(--studio-color-text);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
    cursor: col-resize;
  }

  .studio-before-after__panel {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .studio-before-after__tabs {
    display: flex;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    overflow: hidden;
  }

  .studio-before-after__tab {
    flex: 1;
    padding: 12px 8px;
    font-family: var(--studio-font-heading-family);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    background: none;
    border: none;
    cursor: pointer;
    transition: all 0.2s;
    border-right: 1px solid var(--studio-color-accent-2);
  }

  .studio-before-after__tab:last-child { border-right: none; }

  .studio-before-after__tab--active {
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
  }

  .studio-before-after__tab-content {
    display: none;
    flex-direction: column;
    gap: 12px;
  }

  .studio-before-after__tab-content--active { display: flex; }

  .studio-before-after__card {
    padding: 20px;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }

  .studio-before-after__card--after {
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
  }

  .studio-before-after__card-category {
    color: var(--studio-color-accent-3);
    margin: 0 0 8px;
    font-size: 0.625rem;
  }

  .studio-before-after__card--after .studio-before-after__card-category {
    color: color-mix(in srgb, var(--studio-color-bg) 50%, transparent);
  }

  .studio-before-after__card-value {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    color: var(--studio-color-text);
  }

  .studio-before-after__card--after .studio-before-after__card-value {
    color: var(--studio-color-bg);
    font-size: 1.25rem;
  }

  .studio-before-after__card-value--old {
    text-decoration: line-through;
    color: var(--studio-color-accent-3);
    font-weight: 400;
    font-size: 0.9375rem;
  }

  .studio-before-after__card-sub {
    font-size: 0.8125rem;
    color: var(--studio-color-accent-3);
    margin: 6px 0 0;
    font-weight: 300;
    line-height: 1.5;
  }

  .studio-before-after__card--after .studio-before-after__card-sub {
    color: color-mix(in srgb, var(--studio-color-bg) 60%, transparent);
  }

  .studio-before-after__card-note-text {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.55;
    color: var(--studio-color-text);
    margin: 6px 0 0;
  }

  @media (max-width: 1024px) {
    .studio-before-after__layout {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 768px) {
    .studio-before-after__head {
      flex-direction: column;
      align-items: flex-start;
      gap: 16px;
    }

    .studio-before-after__tabs {
      overflow-x: auto;
    }
  }
/* END_SECTION:before-after */

/* START_SECTION:best-sellers (INDEX:7) */
.studio-bestsellers__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 48px;
    gap: 32px;
  }

  .studio-bestsellers__headings {
    display: flex;
    flex-direction: column;
  }

  .studio-bestsellers__eyebrow {
    margin-bottom: 12px;
  }

  .studio-bestsellers__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 12px;
  }

  .studio-bestsellers__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-bestsellers__subheading {
    font-size: 0.9375rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    max-width: 420px;
    line-height: 1.6;
    margin: 0;
  }

  .studio-bestsellers__controls {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-shrink: 0;
    padding-bottom: 4px;
  }

  .studio-bestsellers__pills {
    display: flex;
    gap: 8px;
    align-items: center;
  }

  .studio-bestsellers__pill {
    padding: 9px 20px;
    font-family: var(--studio-font-heading-family);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-btn-radius);
    background: transparent;
    color: var(--studio-color-text);
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
  }

  @media (hover: hover) {
    .studio-bestsellers__pill:hover {
      border-color: var(--studio-color-text);
    }
  }

  .studio-bestsellers__pill--active {
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    border-color: var(--studio-color-text);
  }

  .studio-bestsellers__view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--studio-color-text);
    border-bottom: 1px solid var(--studio-color-text);
    padding-bottom: 2px;
    flex-shrink: 0;
    transition: opacity 0.2s;
  }

  @media (hover: hover) {
    .studio-bestsellers__view-all:hover { opacity: 0.7; }
  }

  .studio-bestsellers__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }

  .studio-bestsellers__card {
    transition: opacity 0.2s ease;
  }

  @media (max-width: 1024px) {
    .studio-bestsellers__head {
      flex-direction: column;
      gap: 24px;
    }

    .studio-bestsellers__grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }

  @media (max-width: 768px) {
    .studio-bestsellers__pills {
      flex-wrap: wrap;
    }

    .studio-bestsellers__controls {
      flex-direction: column;
      gap: 16px;
    }
  }
/* END_SECTION:best-sellers */

/* START_SECTION:blog (INDEX:8) */
.studio-blog__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 44px;
  }
  .studio-blog__eyebrow { margin: 0; }
  .studio-blog__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.05;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-blog__highlight { color: var(--studio-color-accent-1); }
  .studio-blog__subheading {
    font-size: 1rem;
    line-height: 1.6;
    max-width: 540px;
    color: var(--studio-color-accent-3);
    margin: 4px 0 0;
  }

  .studio-blog__featured { margin-bottom: 64px; }

  .studio-blog__grid-head {
    border-top: 1px solid var(--studio-color-accent-2);
    padding-top: 20px;
    margin-bottom: 28px;
  }
  .studio-blog__grid-title {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-text);
    margin: 0;
  }

  .studio-blog__grid {
    display: grid;
    grid-template-columns: repeat(var(--studio-cols-mobile, 1), minmax(0, 1fr));
    gap: 40px 28px;
  }
  @media (min-width: 769px) {
    .studio-blog__grid {
      grid-template-columns: repeat(var(--studio-cols, 3), minmax(0, 1fr));
    }
  }

  .studio-blog__empty {
    text-align: center;
    padding: 64px 0;
    font-size: 0.875rem;
    color: var(--studio-color-accent-3);
  }

  /* -------------------------------------------------- article card (shared) */
  .studio-article-card {
    display: flex;
    flex-direction: column;
  }
  .studio-article-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
    aspect-ratio: 3 / 2;
  }
  .studio-article-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
  }
  @media (hover: hover) {
    .studio-article-card:hover .studio-article-card__img { transform: scale(1.04); }
  }
  .studio-article-card__tag {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    padding: 6px 12px;
    font-size: 0.625rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border-radius: 999px;
  }

  .studio-article-card__body {
    display: flex;
    flex-direction: column;
    padding-top: 18px;
  }
  .studio-article-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.625rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--studio-color-accent-3);
    margin: 0 0 12px;
  }
  .studio-article-card__title-link {
    text-decoration: none;
    color: inherit;
  }
  .studio-article-card__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.25rem;
    line-height: 1.2;
    color: var(--studio-color-text);
    margin: 0 0 12px;
  }
  @media (hover: hover) {
    .studio-article-card__title-link:hover .studio-article-card__title { opacity: 0.7; }
  }
  .studio-article-card__excerpt {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--studio-color-accent-3);
    margin: 0 0 14px;
  }
  .studio-article-card__author {
    font-size: 0.8125rem;
    color: var(--studio-color-text);
    margin: 0;
  }
  .studio-article-card__by { color: var(--studio-color-accent-3); }

  .studio-article-card__story {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-text);
    text-decoration: none;
    border-bottom: 1px solid var(--studio-color-text);
    padding-bottom: 3px;
    align-self: flex-start;
    transition: opacity 0.2s ease;
  }
  .studio-article-card__story svg { width: 15px; height: 15px; }
  @media (hover: hover) {
    .studio-article-card__story:hover { opacity: 0.6; }
  }

  /* Featured layout: media left, text right; stacks on mobile */
  .studio-article-card--featured .studio-article-card__media { aspect-ratio: 4 / 3; }
  .studio-article-card--featured .studio-article-card__title { font-size: clamp(1.5rem, 3vw, 2.25rem); }
  .studio-article-card--featured .studio-article-card__excerpt { font-size: 1rem; }
  @media (min-width: 769px) {
    .studio-article-card--featured {
      flex-direction: row;
      align-items: center;
      gap: 48px;
    }
    .studio-article-card--featured .studio-article-card__media {
      flex: 1 1 56%;
      aspect-ratio: 4 / 3;
    }
    .studio-article-card--featured .studio-article-card__body {
      flex: 1 1 44%;
      padding-top: 0;
    }
  }

  .studio-article-card__title-link:focus-visible,
  .studio-article-card__story:focus-visible,
  .studio-article-card__media:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 3px;
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-article-card__img,
    .studio-article-card__story {
      transition: none;
    }
  }
/* END_SECTION:blog */

/* START_SECTION:brands (INDEX:9) */
.studio-brands__inner {
    display: flex;
    flex-direction: column;
  }

  .studio-brands__head {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 2rem;
  }

  .studio-brands__eyebrow {
    margin: 0;
    color: var(--studio-color-accent-3);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .studio-brands__heading {
    margin: 0;
    color: var(--studio-color-text);
    line-height: 1.1;
  }

  /* Search */
  .studio-brands__search {
    position: relative;
    width: 100%;
    max-width: 320px;
    margin-bottom: 2rem;
  }

  .studio-brands__search-icon {
    position: absolute;
    left: 0.875rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    width: 1rem;
    height: 1rem;
    color: var(--studio-color-accent-3);
    pointer-events: none;
  }
  .studio-brands__search-icon svg {
    width: 100%;
    height: 100%;
  }

  .studio-brands__search-input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.625rem 0.875rem 0.625rem 2.5rem;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius, 6px);
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    font: inherit;
    font-size: 0.875rem;
  }
  .studio-brands__search-input:focus-visible {
    outline: none;
    border-color: var(--studio-color-text);
  }
  .studio-brands__search-input::placeholder {
    color: var(--studio-color-accent-3);
  }

  /* Alphabetical nav */
  .studio-brands__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: 3rem;
  }

  .studio-brands__nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius, 4px);
    background: transparent;
    color: var(--studio-color-text);
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
  }

  .studio-brands__nav-btn--disabled,
  .studio-brands__nav-btn--inactive {
    opacity: 0.3;
    pointer-events: none;
  }

  /* Letter group */
  .studio-brands__grid {
    display: grid;
    gap: 0 2rem;
  }

  .studio-brands__group {
    margin-bottom: 2rem;
    scroll-margin-top: calc(var(--studio-header-height, 80px) + 1rem);
  }

  .studio-brands__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    margin-bottom: 0.75rem;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius, 4px);
    color: var(--studio-color-text);
    font-size: 1rem;
    font-weight: 600;
  }

  .studio-brands__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .studio-brands__item {
    margin-bottom: 0.5rem;
  }

  .studio-brands__link {
    color: var(--studio-color-text);
    text-decoration: none;
    font-size: 0.875rem;
    line-height: 1.4;
  }

  .studio-brands__no-results {
    grid-column: 1 / -1;
    margin: 0;
    padding: 2rem 0;
    color: var(--studio-color-accent-3);
    font-size: 0.9375rem;
  }

  @media (hover: hover) {
    a.studio-brands__nav-btn:hover {
      background: var(--studio-color-text);
      color: var(--studio-color-bg);
      border-color: var(--studio-color-text);
    }
    .studio-brands__link:hover {
      text-decoration: underline;
    }
  }

  a.studio-brands__nav-btn:focus-visible {
    outline: none;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    border-color: var(--studio-color-text);
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-brands__nav-btn {
      transition: none;
    }
  }

  /* Filter hide — scoped (0,2,0) so it beats any display set on items/groups; no !important. */
  .studio-brands [hidden] {
    display: none;
  }
/* END_SECTION:brands */

/* START_SECTION:build-your-look (INDEX:10) */
.studio-build-your-look {
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
  }

  /* Header */
  .studio-byl__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding-bottom: 28px;
    margin-bottom: 36px;
    border-bottom: 1px solid var(--byl-border, var(--studio-color-border));
  }
  .studio-byl__header-text { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
  .studio-byl__eyebrow { color: var(--studio-color-accent-3); margin: 0; }
  .studio-byl__heading {
    color: var(--studio-color-text);
    margin: 0;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
  }
  .studio-byl__subheading { color: var(--studio-color-text); opacity: 0.75; max-width: 52ch; }
  .studio-byl__subheading > :first-child { margin-top: 0; }
  .studio-byl__subheading > :last-child { margin-bottom: 0; }

  /* Shuffle */
  .studio-byl__shuffle { align-self: center; }
  .studio-byl__shuffle-glyph { display: inline-flex; }
  .studio-byl__shuffle-glyph svg { width: 18px; height: 18px; }

  /* Body grid */
  .studio-byl__body {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: start;
  }

  /* Stage (left) */
  .studio-byl__stage { display: flex; flex-direction: column; gap: 12px; }
  .studio-byl__card {
    position: relative;
    aspect-ratio: var(--byl-ratio, 16 / 9);
    border-radius: var(--studio-elements-radius);
    overflow: hidden;
    background: var(--studio-color-accent-2);
  }
  .studio-byl__stage-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.25s ease;
    display: block;
  }
  .studio-byl__card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.4));
    pointer-events: none;
  }
  .studio-byl__layer-cap {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: clamp(14px, 2vw, 22px);
    color: #fff;
    pointer-events: none;
  }
  .studio-byl__layer-cat {
    font-size: 0.6875rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.85;
  }
  .studio-byl__layer-name {
    margin: auto auto 4px;
    font-size: 0.8125rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: center;
  }
  .studio-byl__card--soldout .studio-byl__stage-img { opacity: 0.4; }
  .studio-byl__card:focus-visible { outline: 2px solid var(--studio-color-accent-1); outline-offset: 2px; }

  /* Card nav (mobile only) */
  .studio-byl__card-nav { display: none; }

  /* List (right) */
  .studio-byl__list { display: flex; flex-direction: column; position: sticky; top: 96px; align-self: start; }
  .studio-byl__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid var(--byl-border, var(--studio-color-border));
  }
  .studio-byl__row:first-child { border-top: none; }
  .studio-byl__row-num {
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    color: var(--studio-color-accent-3);
    font-variant-numeric: tabular-nums;
  }
  .studio-byl__row-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
  .studio-byl__row-cat {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
  }
  .studio-byl__slot { display: none; flex-direction: column; gap: 6px; align-items: flex-start; }
  .studio-byl__slot.is-current { display: flex; }
  .studio-byl__slot-name {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.05rem;
    line-height: 1.2;
    color: var(--studio-color-text);
    text-decoration: none;
  }
  .studio-byl__slot-name:hover { text-decoration: underline; }
  .studio-byl__variants {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    width: 100%;
  }
  .studio-byl__variants .studio-product__swatch { width: 30px; height: 30px; }
  .studio-byl__variants .studio-product__option-toggle { min-width: 120px; height: 30px; padding-top: 0; padding-bottom: 0; }
  .studio-byl__row-price {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.05rem;
    color: var(--studio-color-text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }
  .studio-byl__row--soldout .studio-byl__row-price { color: var(--studio-color-accent-3); }

  /* Nav (arrows + dots) */
  .studio-byl__nav { display: flex; align-items: center; gap: 10px; }
  .studio-byl__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--byl-border, var(--studio-color-border));
    background: transparent;
    color: var(--studio-color-text);
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
    flex: none;
  }
  .studio-byl__arrow svg { width: 16px; height: 16px; }
  .studio-byl__dots { display: flex; align-items: center; gap: 5px; }
  .studio-byl__dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--studio-color-accent-3);
    opacity: 0.4;
    transition: opacity 0.2s ease;
  }
  .studio-byl__dot.is-active { opacity: 1; }

  @media (hover: hover) {
    .studio-byl__arrow:hover { background: var(--studio-color-text); color: var(--studio-color-bg); }
  }

  /* Footer */
  .studio-byl__footer {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid var(--byl-border, var(--studio-color-border));
  }
  .studio-byl__total-wrap { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; flex: 1 1 auto; }
  .studio-byl__total-label {
    font-size: 0.6875rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
  }
  .studio-byl__total {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    line-height: 1;
    color: var(--studio-color-text);
    font-variant-numeric: tabular-nums;
  }
  .studio-byl__save {
    font-size: 0.75rem;
    letter-spacing: 0.04em;
  }
  .studio-byl__submit { flex: none; }
  .studio-byl__count { font: inherit; }
  .studio-byl__submit svg { width: 18px; height: 18px; }

  /* ===== Mobile ===== */
  @media (max-width: 768px) {
    .studio-byl__body { grid-template-columns: 1fr; gap: 16px; }
    .studio-byl__list { display: block; }
    .studio-byl__row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
      gap: 4px 12px;
      padding: 16px 0;
    }
    .studio-byl__row-num, .studio-byl__nav { display: none; }
    .studio-byl__row-main { gap: 8px; }
    .studio-byl__row-price { align-self: center; text-align: right; }
    .studio-byl__row--soldout .studio-byl__slot-name { opacity: 0.5; }
    .studio-byl__card { cursor: pointer; aspect-ratio: var(--byl-ratio-m, 16 / 9); }
    .studio-byl__card.is-focused { outline: 2px solid var(--studio-color-accent-1); outline-offset: 2px; }
    .studio-byl__card-nav {
      position: absolute;
      right: clamp(12px, 3vw, 18px);
      top: 50%;
      transform: translateY(-50%);
      display: flex;
      gap: 8px;
    }
    .studio-byl__arrow--card {
      width: 34px;
      height: 34px;
      background: rgba(0, 0, 0, 0.45);
      border-color: rgba(255, 255, 255, 0.5);
      color: #fff;
    }
    .studio-byl__layer-name { margin: auto 0 4px; text-align: left; max-width: 68%; }

    .studio-byl__footer { flex-direction: column; align-items: stretch; gap: 16px; }
    .studio-byl__total-wrap { justify-content: space-between; align-items: baseline; }
    .studio-byl__submit { width: 100%; justify-content: center; order: 1; }
    .studio-byl__shuffle { width: 100%; justify-content: center; order: 2; }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-byl__stage-img,
    .studio-byl__arrow,
    .studio-byl__dot { transition: none; }
  }
/* END_SECTION:build-your-look */

/* START_SECTION:bundle (INDEX:11) */
.studio-bundle__head {
    margin-bottom: 28px;
  }
  .studio-bundle--align-center .studio-bundle__head { text-align: center; }
  .studio-bundle--align-right .studio-bundle__head { text-align: right; }
  .studio-bundle__eyebrow {
    color: var(--studio-color-accent-3);
    margin-bottom: 8px;
  }
  .studio-bundle__heading {
    color: var(--studio-color-text);
    margin: 0;
  }
  .studio-bundle__highlight {
    color: var(--studio-color-accent-1);
  }

  /* ===== Layout: pannello + griglia affiancati (desktop). Posizione pannello sx/dx. ===== */
  .studio-bundle__layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
  }
  .studio-bundle--panel-right .studio-bundle__layout {
    flex-direction: row-reverse;
  }
  .studio-bundle__panel {
    flex: 0 0 380px;
    align-self: flex-start;
    position: sticky;
    top: calc(var(--studio-header-height, 80px) + 24px);
    min-height: min(480px, calc(100vh - var(--studio-header-height, 80px) - 48px));
    max-height: calc(100vh - var(--studio-header-height, 80px) - 48px);
    display: flex;
    flex-direction: column;
    border-radius: var(--studio-elements-radius);
    overflow: hidden;
  }
  .studio-bundle__grid {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(var(--bn-cols, 3), minmax(0, 1fr));
    gap: 20px;
  }

  /* ===== Pannello: testa (accent) + lista + footer ===== */
  .studio-bundle__panel-head {
    position: relative;
    padding: 24px;
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
  }
  .studio-bundle__toggle {
    display: none; /* desktop: nascosto; mobile: freccia del bottom sheet */
    position: absolute;
    top: 20px;
    right: 20px;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    transition: transform 0.25s ease;
  }
  .studio-bundle__toggle svg { width: 22px; height: 22px; }
  .studio-bundle__toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
  .studio-bundle__panel-title {
    font-family: var(--studio-font-heading-family);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.05;
    text-transform: var(--studio-heading-transform);
    letter-spacing: var(--studio-heading-letter-spacing);
    margin: 0 0 10px;
  }
  .studio-bundle__panel-progress {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 0 14px;
    opacity: 0.92;
  }
  .studio-bundle__bar {
    height: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.28);
    overflow: hidden;
  }
  .studio-bundle__bar-fill {
    height: 100%;
    width: 0%;
    border-radius: 999px;
    background: var(--studio-color-bg);
    transition: width 0.35s ease;
  }

  .studio-bundle__items {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    padding: 8px 24px;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
  }
  .studio-bundle__empty {
    margin: auto 0;
    padding: 24px 0;
    font-size: 0.875rem;
    opacity: 0.6;
    text-align: center;
  }
  /* Riga prodotto nel bundle (popolata dal JS in R2): foto + titolo/variante/prezzo + X */
  .studio-bundle__item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 0;
  }
  .studio-bundle__item + .studio-bundle__item {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }
  .studio-bundle__item-img {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: var(--studio-badge-radius);
  }
  .studio-bundle__item-info {
    flex: 1 1 auto;
    min-width: 0;
  }
  .studio-bundle__item-title {
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.2;
  }
  .studio-bundle__item-variant {
    font-size: 0.8rem;
    opacity: 0.6;
  }
  .studio-bundle__item-price {
    font-size: 0.9rem;
  }
  .studio-bundle__item-remove {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    border-radius: 50%;
  }
  .studio-bundle__item-remove svg {
    width: 14px;
    height: 14px;
  }

  .studio-bundle__footer {
    padding: 20px 24px;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }
  .studio-bundle__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-weight: 700;
    margin-bottom: 14px;
  }
  .studio-bundle__total-value {
    font-size: 1.4rem;
  }
  /* Totale: pieno-barrato (sopra soglia) accanto allo scontato — markup aggiunto dal JS in R2 */
  .studio-bundle__total-full {
    font-size: 0.95rem;
    font-weight: 400;
    text-decoration: line-through;
    opacity: 0.5;
    margin-right: 8px;
  }
  .studio-bundle__submit:disabled {
    opacity: 0.45;
    cursor: not-allowed;
  }

  /* ===== Card bundle: "+" basso-sx + menu varianti (riusa il resto da .studio-card*) ===== */
  /* media non clippa, cosi' il menu non viene tagliato -> arrotondo l'immagine direttamente */
  .studio-bundle__card .studio-card__media { overflow: visible; }
  .studio-bundle__card .studio-card__img { border-radius: var(--studio-elements-radius); }

  /* cuore wishlist: riposizionato top-right e sempre visibile (override del comportamento hover-reveal) */
  .studio-bundle__card .studio-card__wishlist {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    transform: none;
    opacity: 1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    cursor: pointer;
  }

  /* "+" in basso a sinistra; il wrap e' il contesto di posizionamento del menu */
  .studio-bundle__add-wrap {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 3;
  }
  .studio-bundle__add {
    position: relative;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
  }
  .studio-bundle__add svg { width: 20px; height: 20px; }
  @media (hover: hover) {
    .studio-bundle__add:hover { transform: scale(1.08); }
  }
  .studio-bundle__add:focus-visible {
    outline: 2px solid var(--studio-color-text);
    outline-offset: 2px;
  }
  .studio-bundle__add:disabled { opacity: 0.4; cursor: not-allowed; }
  .studio-bundle__add.is-in-bundle {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
  }
  /* cue multi-variante: piccolo chevron in angolo = "apre un menu" */
  .studio-bundle__add-caret {
    position: absolute;
    right: -1px;
    bottom: -1px;
    display: grid;
    place-items: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  }
  .studio-bundle__add-caret svg { width: 10px; height: 10px; }

  /* Menu varianti (stile localization selector), si apre verso l'alto, scrollabile, non clippato */
  .studio-bundle__variant-menu {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 0;
    z-index: 60;
    min-width: 190px;
    max-height: 260px;
    overflow-y: auto;
    margin: 0;
    padding: 6px;
    background: var(--studio-color-bg);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    box-shadow: var(--studio-shadow);
  }
  .studio-bundle__variant-menu[hidden] { display: none; }
  .studio-bundle__variant-option {
    display: block;
    width: 100%;
    text-align: left;
    white-space: nowrap;
    padding: 9px 12px;
    font-size: 0.8125rem;
    color: var(--studio-color-text);
    background: transparent;
    border: 0;
    border-radius: calc(var(--studio-elements-radius) - 2px);
    cursor: pointer;
    transition: background-color 0.15s ease;
  }
  @media (hover: hover) {
    .studio-bundle__variant-option:hover { background: var(--studio-color-accent-2); }
  }
  .studio-bundle__variant-option.is-active {
    font-weight: 600;
    background: var(--studio-color-accent-2);
  }
  .studio-bundle__variant-option:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    text-decoration: line-through;
  }
  .studio-bundle__variant-option:focus-visible {
    outline: 2px solid var(--studio-color-text);
    outline-offset: -2px;
  }

  .studio-bundle__card--placeholder .studio-card__name {
    padding: 0 4px;
  }

  /* ===== Mobile R4: pannello = bottom sheet fisso espandibile (docked solo quando la sezione e' in vista). ===== */
  @media (max-width: 768px) {
    .studio-bundle__layout,
    .studio-bundle--panel-right .studio-bundle__layout {
      flex-direction: column;
      align-items: stretch;
    }
    /* pannello fisso in basso; sta giu' (nascosto) finche' la sezione non e' in vista -> .is-bundle-docked lo fa salire */
    .studio-bundle__panel {
      position: fixed;
      top: auto;
      min-height: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 40;
      width: 100%;
      flex: none;
      max-height: 85vh;
      border-radius: var(--studio-elements-radius) var(--studio-elements-radius) 0 0;
      box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.22);
      transform: translateY(110%);
      transition: transform 0.32s ease;
    }
    .studio-bundle.is-bundle-docked .studio-bundle__panel {
      transform: translateY(0);
    }
    .studio-bundle__toggle {
      display: grid;
    }
    /* lista chiusa di default; si apre con .is-expanded (freccia) */
    .studio-bundle__items {
      max-height: 0;
      padding-top: 0;
      padding-bottom: 0;
      overflow: hidden;
      transition: max-height 0.32s ease, padding 0.32s ease;
    }
    .studio-bundle__panel.is-expanded .studio-bundle__items {
      max-height: 44vh;
      overflow-y: auto;
      padding-top: 8px;
      padding-bottom: 8px;
    }
    /* totale visibile solo da aperto (chiuso = testa + CTA, come negli screenshot) */
    .studio-bundle__total {
      display: none;
    }
    .studio-bundle__panel.is-expanded .studio-bundle__total {
      display: flex;
    }
    .studio-bundle__panel.is-expanded .studio-bundle__toggle {
      transform: rotate(180deg);
    }
  }
/* END_SECTION:bundle */

/* START_SECTION:cart-drawer (INDEX:12) */
.studio-cart-drawer__close {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    color: var(--studio-color-text);
    margin-right: -8px;
  }
  .studio-cart-item__details { min-width: 0; }
  .studio-cart-item__name { font-size: 0.875rem; font-weight: 500; margin-bottom: 4px; display: inline-block; }
  .studio-cart-item__props { list-style: none; padding: 0; margin: 0 0 10px; font-size: 0.6875rem; color: var(--studio-color-accent-3); letter-spacing: 0.04em; }
  .studio-cart-item__price { font-size: 0.8125rem; font-weight: 600; white-space: nowrap; }
  .studio-cart-item__price-was { color: var(--studio-color-accent-3); font-weight: 400; margin-right: 6px; }
  .studio-cart-item__remove {
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    color: var(--studio-color-accent-3); transition: color 0.2s;
  }
  @media (hover: hover) { .studio-cart-item__remove:hover { color: var(--studio-color-text); } }
  .studio-cart-empty { text-align: center; padding: 48px 0; display: grid; gap: 24px; }
  .studio-cart-empty__text { font-size: 0.875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--studio-color-accent-3); }
  .studio-cart-note__label { display: block; font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; margin-bottom: 8px; }
  .studio-cart-note {
    width: 100%; padding: 12px; margin-bottom: 16px; resize: vertical;
    border: 1px solid var(--studio-color-accent-2); border-radius: var(--studio-elements-radius);
    background: var(--studio-color-bg); color: var(--studio-color-text); font-size: 0.8125rem;
  }
  .studio-cart-drawer__taxes { font-size: 0.6875rem; color: var(--studio-color-accent-3); text-align: center; margin-bottom: 16px; letter-spacing: 0.04em; }
  .studio-cart-drawer__view { margin-top: 10px; }
  .studio-cart-recs { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--studio-color-accent-2); }
  .studio-cart-recs__heading { font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; margin-bottom: 16px; }
  .studio-cart-recs__list { display: grid; gap: 16px; }
  .studio-cart-rec { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; }
  .studio-cart-rec__img { width: 56px; aspect-ratio: 3/4; object-fit: cover; border-radius: var(--studio-elements-radius); background: var(--studio-color-accent-2); }
  .studio-cart-rec__title { font-size: 0.8125rem; font-weight: 500; }
  .studio-cart-rec__price { font-size: 0.75rem; color: var(--studio-color-accent-3); margin-top: 2px; }
  .studio-cart-rec__add { font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; padding: 8px 12px; border: 1px solid var(--studio-color-text); white-space: nowrap; transition: background 0.2s, color 0.2s; }
  @media (hover: hover) { .studio-cart-rec__add:hover { background: var(--studio-color-text); color: var(--studio-color-bg); } }
  .studio-cart-drawer[aria-busy="true"] .studio-cart-drawer__body { opacity: 0.55; pointer-events: none; transition: opacity 0.2s; }
/* END_SECTION:cart-drawer */

/* START_SECTION:cart (INDEX:14) */
.studio-cart-page__title {
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    letter-spacing: 0.02em;
    margin: 0 0 32px;
    color: var(--studio-color-text);
  }

  .studio-cart-page__empty {
    text-align: center;
    padding: 64px 0;
    display: grid;
    gap: 24px;
    justify-items: center;
  }
  .studio-cart-page__empty-text {
    font-size: 0.875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    margin: 0;
  }

  .studio-cart-page__items {
    display: grid;
    gap: 8px;
    margin-bottom: 40px;
  }

  .studio-cart-page__item {
    display: grid;
    grid-template-columns: 100px 1fr auto auto;
    gap: 24px;
    align-items: start;
    padding: 24px 0;
    border-bottom: 1px solid var(--studio-color-accent-2);
  }
  .studio-cart-page__item:first-child { border-top: 1px solid var(--studio-color-accent-2); }

  .studio-cart-page__media { display: block; }
  .studio-cart-page__img {
    width: 100px;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }

  .studio-cart-page__details { min-width: 0; }
  .studio-cart-page__name {
    font-size: 1rem;
    font-weight: 500;
    color: var(--studio-color-text);
    text-decoration: none;
    display: inline-block;
    margin-bottom: 6px;
  }
  .studio-cart-page__variant {
    font-size: 0.8125rem;
    color: var(--studio-color-accent-3);
    margin-bottom: 2px;
  }
  .studio-cart-page__props {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    font-size: 0.6875rem;
    color: var(--studio-color-accent-3);
    letter-spacing: 0.04em;
  }
  .studio-cart-page__remove {
    display: inline-block;
    margin-top: 12px;
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-accent-3);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s ease;
  }
  @media (hover: hover) {
    .studio-cart-page__remove:hover { color: var(--studio-color-text); }
  }

  .studio-cart-page__qty-label,
  .studio-cart-page__qty .studio-cart-page__qty-label {
    display: block;
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-accent-3);
    margin-bottom: 8px;
  }
  .studio-cart-page__qty-controls {
    display: flex;
    align-items: stretch;
    gap: 8px;
  }
  .studio-cart-page__qty-input {
    width: 64px;
    padding: 8px 10px;
    text-align: center;
    font-size: 0.875rem;
    color: var(--studio-color-text);
    background: var(--studio-color-bg);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    -moz-appearance: textfield;
  }
  .studio-cart-page__qty-input::-webkit-outer-spin-button,
  .studio-cart-page__qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }
  .studio-cart-page__qty-update {
    padding: 8px 14px;
    font-size: 0.6875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-text);
    background: transparent;
    border: 1px solid var(--studio-color-text);
    border-radius: var(--studio-btn-radius);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
  }
  @media (hover: hover) {
    .studio-cart-page__qty-update:hover {
      background: var(--studio-color-text);
      color: var(--studio-color-bg);
    }
  }

  .studio-cart-page__price {
    text-align: right;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--studio-color-text);
    white-space: nowrap;
  }
  .studio-cart-page__price-was {
    display: block;
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--studio-color-accent-3);
    margin-bottom: 2px;
  }

  .studio-cart-page__footer {
    max-width: 420px;
    margin-left: auto;
  }
  .studio-cart-note__label {
    display: block;
    font-size: 0.6875rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--studio-color-text);
  }
  .studio-cart-note {
    width: 100%;
    padding: 12px;
    margin-bottom: 16px;
    resize: vertical;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    font-size: 0.8125rem;
  }
  .studio-cart-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--studio-color-text);
    padding-top: 8px;
  }
  .studio-cart-page__taxes {
    font-size: 0.6875rem;
    color: var(--studio-color-accent-3);
    margin: 6px 0 20px;
    letter-spacing: 0.04em;
  }

  .studio-cart-page__accelerated {
    margin-top: 12px;
    display: grid;
    gap: 8px;
  }

  .studio-cart-page__recs {
    margin-top: 56px;
    padding-top: 32px;
    border-top: 1px solid var(--studio-color-accent-2);
  }

  :where(
    .studio-cart-page__name,
    .studio-cart-page__remove,
    .studio-cart-page__qty-input,
    .studio-cart-page__qty-update,
    .studio-cart-note
  ):focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (max-width: 749px) {
    .studio-cart-page__item {
      grid-template-columns: 80px 1fr;
      gap: 16px;
      row-gap: 16px;
    }
    .studio-cart-page__img { width: 80px; }
    .studio-cart-page__qty,
    .studio-cart-page__price {
      grid-column: 2 / 3;
    }
    .studio-cart-page__price { text-align: left; }
    .studio-cart-page__footer {
      max-width: none;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-cart-page__remove,
    .studio-cart-page__qty-update {
      transition: none;
    }
  }
/* END_SECTION:cart */

/* START_SECTION:collection-hero (INDEX:15) */
.studio-collection-hero-wrap {
    background: transparent;
  }

  .studio-collection-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    color: #fff;
  }

  .studio-collection-hero__media {
    position: absolute;
    inset: 0;
  }
  .studio-collection-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .studio-collection-hero__placeholder {
    width: 100%;
    height: 100%;
    background: #222;
  }
  .studio-collection-hero__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .studio-collection-hero__content {
    position: relative;
    width: 100%;
    display: flex;
    padding-top: 80px;
    padding-bottom: 64px;
    z-index: 2;
  }

  .studio-collection-hero__inner {
    max-width: 800px;
    width: 100%;
    display: flex;
    flex-direction: column;
  }

  .studio-collection-hero__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 500;
    margin-bottom: 20px;
    color: rgba(255, 255, 255, 0.75);
  }
  .studio-collection-hero__breadcrumb a {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.2s ease;
  }
  @media (hover: hover) {
    .studio-collection-hero__breadcrumb a:hover { opacity: 0.6; }
  }
  .studio-collection-hero__breadcrumb a:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }
  .studio-collection-hero__breadcrumb-sep { opacity: 0.5; }
  .studio-collection-hero__breadcrumb-current { opacity: 0.9; }

  .studio-collection-hero__eyebrow {
    margin-bottom: 18px;
  }

  .studio-collection-hero__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: #fff;
    margin-bottom: 18px;
  }
  .studio-collection-hero__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-collection-hero__desc {
    max-width: 560px;
  }

  @media (max-width: 768px) {
    .studio-collection-hero__content {
      padding-top: 48px;
      padding-bottom: 40px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-collection-hero__breadcrumb a {
      transition: none;
    }
  }
/* END_SECTION:collection-hero */

/* START_SECTION:collection-list (INDEX:16) */
.studio-collection-list {
    --cl-eyebrow: var(--studio-color-accent-3);
    --cl-heading: var(--studio-color-text);
    --cl-subheading: var(--studio-color-accent-3);
    --cl-outline: var(--studio-color-text);
    --cl-fill: var(--studio-color-text);
    --cl-faded: var(--studio-color-accent-2);
    --cl-counter: var(--studio-color-accent-3);
    --cl-count: var(--studio-color-accent-3);
    --cl-arrow-bg: var(--studio-color-text);
    --cl-arrow-icon: var(--studio-color-bg);
    --cl-btn: var(--studio-color-text);
    --cl-btn-text: var(--studio-color-bg);
  }

  /* ===== HEADER (allineamento come featured-collection) ===== */
  .studio-collection-list__head {
    margin-bottom: 56px;
    gap: 24px;
  }

  .studio-collection-list__head--left {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }
  .studio-collection-list__head--left .studio-collection-list__headings { text-align: left; }

  .studio-collection-list__head--center {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .studio-collection-list__head--center .studio-collection-list__headings { text-align: center; margin: 0 auto; }
  .studio-collection-list__head--center .studio-collection-list__subheading { margin-left: auto; margin-right: auto; }

  .studio-collection-list__head--right {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: flex-end;
  }
  .studio-collection-list__head--right .studio-collection-list__headings { text-align: right; }
  .studio-collection-list__head--right .studio-collection-list__subheading { margin-left: auto; margin-right: 0; }

  .studio-collection-list__eyebrow {
    color: var(--cl-eyebrow);
    margin-bottom: 16px;
  }

  .studio-collection-list__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--cl-heading);
    font-size: calc(3.5rem * var(--studio-heading-size-scale));
    margin: 0;
  }

  .studio-collection-list__highlight {
    color: var(--cl-highlight);
    font-style: var(--cl-highlight-style);
  }

  .studio-collection-list__subheading {
    margin: 16px 0 0;
    max-width: 480px;
    color: var(--cl-subheading);
    font-size: 1rem;
    line-height: 1.6;
    font-weight: 300;
  }

  /* Bottone view-all (3 stili come featured-collection, via var --cl-btn) */
  .studio-collection-list__view-all {
    flex-shrink: 0;
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
  }
  .studio-collection-list__view-all svg { width: 14px; height: 14px; }
  .studio-collection-list__view-all--solid {
    background: var(--cl-btn);
    color: var(--cl-btn-text);
    border: 1px solid var(--cl-btn);
    padding: 12px 22px;
    border-radius: var(--studio-btn-radius);
  }
  .studio-collection-list__view-all--ghost {
    background: transparent;
    color: var(--cl-btn);
    border: 1px solid var(--cl-btn);
    padding: 12px 22px;
    border-radius: var(--studio-btn-radius);
  }
  .studio-collection-list__view-all--underline {
    background: transparent;
    color: var(--cl-btn);
    border: none;
    border-bottom: 1px solid var(--cl-btn);
    padding: 0 0 4px;
    border-radius: 0;
  }

  /* ===== LISTA ===== */
  .studio-collection-list__body {
    position: relative;
  }

  .studio-collection-list__row {
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 26px 0;
    border-top: 1px solid var(--studio-color-accent-2);
    text-decoration: none;
    position: relative;
    z-index: 2;
  }
  .studio-collection-list__row:last-child {
    border-bottom: 1px solid var(--studio-color-accent-2);
  }

  /* Sfondo del blocco: solo mobile (display:block nella media query). Su desktop c'è la cover hover. */
  .studio-collection-list__row-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    display: none;
  }
  .studio-collection-list__row-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  /* Contenuto sopra lo sfondo */
  .studio-collection-list__counter,
  .studio-collection-list__title,
  .studio-collection-list__meta {
    position: relative;
    z-index: 1;
  }

  .studio-collection-list__counter {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--cl-counter);
    flex-shrink: 0;
    min-width: 2.5em;
  }

  .studio-collection-list__title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: uppercase;
    line-height: 1;
    overflow-wrap: break-word;
    word-break: break-word;
    font-size: calc(var(--cl-title-size) * var(--studio-heading-size-scale));
    -webkit-text-stroke: 1.5px var(--cl-outline);
    color: transparent;
    transform: scale(1);
    transform-origin: left center;
    transition: color 0.35s ease, -webkit-text-stroke-color 0.35s ease, transform 0.35s ease;
  }

  /* Fallback browser senza text-stroke: titoli pieni (niente outline) */
  @supports not ((-webkit-text-stroke: 1px black)) {
    .studio-collection-list__title { color: var(--cl-outline); }
    .studio-collection-list__list.has-active .studio-collection-list__title { color: var(--cl-faded); }
    .studio-collection-list__row.is-active .studio-collection-list__title { color: var(--cl-fill); }
  }

  /* Sbiadimento degli altri quando uno è attivo (additivo, niente :not()) */
  .studio-collection-list__list.has-active .studio-collection-list__title {
    -webkit-text-stroke-color: var(--cl-faded);
  }

  /* Titolo attivo: si riempie + scala (senza spingere il layout) */
  .studio-collection-list__row.is-active .studio-collection-list__title,
  .studio-collection-list__row:focus-visible .studio-collection-list__title {
    -webkit-text-stroke-color: var(--cl-fill);
    color: var(--cl-fill);
    transform: scale(calc(1 + var(--cl-zoom, 8) / 100));
  }

  .studio-collection-list__meta {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-shrink: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .studio-collection-list__row.is-active .studio-collection-list__meta,
  .studio-collection-list__row:focus-visible .studio-collection-list__meta {
    opacity: 1;
  }

  .studio-collection-list__count {
    font-size: 0.6875rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--cl-count);
    white-space: nowrap;
  }

  .studio-collection-list__arrow {
    width: 48px;
    height: 48px;
    border-radius: 999px;
    background: var(--cl-arrow-bg);
    color: var(--cl-arrow-icon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .studio-collection-list__arrow svg { width: 18px; height: 18px; }

  /* ===== COVER che insegue il mouse ===== */
  .studio-collection-list__covers {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 4;
    overflow: hidden;
  }
  .studio-collection-list__cover {
    position: absolute;
    top: 0;
    left: 0;
    width: 300px;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
    opacity: 0;
    visibility: hidden;
    transform: translate(-9999px, -9999px);
    transition: opacity 0.3s ease;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
  }
  .studio-collection-list__cover.is-visible {
    opacity: 1;
    visibility: visible;
  }
  .studio-collection-list__cover--square { aspect-ratio: 1 / 1; }
  .studio-collection-list__cover--portrait { aspect-ratio: 3 / 4; }
  .studio-collection-list__cover--landscape { aspect-ratio: 4 / 3; }
  .studio-collection-list__cover img,
  .studio-collection-list__placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* ===== MOBILE: outline sempre + freccia, niente hover/cover ===== */
  @media (max-width: 768px) {
    .studio-collection-list__head {
      margin-bottom: 40px;
    }
    .studio-collection-list__heading {
      font-size: calc(2.5rem * var(--studio-heading-size-scale));
    }
    .studio-collection-list__head--left {
      flex-direction: column;
      align-items: flex-start;
    }
    .studio-collection-list__head--right {
      flex-direction: column;
      align-items: flex-end;
    }

    .studio-collection-list__title {
      font-size: calc(var(--cl-title-size-mobile) * var(--studio-heading-size-scale));
    }

    .studio-collection-list__row-bg { display: block; }

    .studio-collection-list__row {
      gap: 16px;
      padding: 22px 0;
    }

    /* Freccia sempre visibile, conteggio nascosto */
    .studio-collection-list__meta { opacity: 1; }
    .studio-collection-list__count { display: none; }

    .studio-collection-list__arrow {
      width: 40px;
      height: 40px;
    }
    .studio-collection-list__arrow svg { width: 16px; height: 16px; }

    .studio-collection-list__covers { display: none; }
  }

  /* ===== Reduced motion: stati statici, niente scale/inseguimento ===== */
  @media (prefers-reduced-motion: reduce) {
    .studio-collection-list__title { transition: none; transform: none; }
    .studio-collection-list__row.is-active .studio-collection-list__title,
    .studio-collection-list__row:focus-visible .studio-collection-list__title { transform: none; }
    .studio-collection-list__meta { transition: none; }
    .studio-collection-list__cover { transition: none; }
  }
/* END_SECTION:collection-list */

/* START_SECTION:collection (INDEX:17) */
/* Promo tiles interleaved in the product grid. Span W columns × H rows via modifier classes (not span var() — robust). */
  .studio-collection__promo { grid-column: span 1; }
  .studio-collection__promo--m2 { grid-column: span 2; }
  .studio-collection__promo--rh-m2 { grid-row: span 2; }
  .studio-collection__promo--rh-m3 { grid-row: span 3; }
  @media (min-width: 769px) {
    .studio-collection__promo--d1 { grid-column: span 1; }
    .studio-collection__promo--d2 { grid-column: span 2; }
    .studio-collection__promo--rh-d1 { grid-row: span 1; }
    .studio-collection__promo--rh-d2 { grid-row: span 2; }
    .studio-collection__promo--rh-d3 { grid-row: span 3; }
    /* Desktop: take the image out of flow so it no longer drives the tile height; the media then fills the
       card-defined row(s) (grid-row span H) and the image is cropped to fit (object-fit: cover). Mobile keeps
       the in-flow picture below. */
    .studio-collection__promo-media picture { position: absolute; inset: 0; }
    /* Full-width tiles (alone in their row) get a computed aspect-ratio via --cp-ar-d so they stay visible and
       honour Height; partial tiles resolve to auto and fill the card-defined row instead. */
    .studio-collection__promo-media { aspect-ratio: var(--cp-ar-d, auto); }
  }
  .studio-collection__promo-link { display: block; height: 100%; text-decoration: none; }
  .studio-collection__promo-media {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }
  .studio-collection__promo-media picture {
    display: block;
    width: 100%;
    height: 100%;
  }
  .studio-collection__promo-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .studio-collection__promo-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    padding: 16px;
    pointer-events: none;
  }
  .studio-collection__promo-heading {
    color: #fff;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.2;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
  }

  /* Sort: custom dropdown reuses the theme's .studio-loc styling, but opens downward
     (the footer dropdown opens upward). Hidden input keeps the facet wiring. */
  [data-sort-dd] .studio-loc__list {
    top: calc(100% + 8px);
    bottom: auto;
    left: auto;
    right: 0;
  }

  /* Sort tabs (desktop + sidebar layout): one fluid row of buttons. Sizes scale with the
     viewport (clamp) and shrink to fit; the longest labels ellipsize as a last resort. */
  .studio-facets__sort-tabs { display: none; }
  .studio-facets__sort-tab {
    flex: 0 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: clamp(7px, 0.7vw, 10px) clamp(10px, 1.1vw, 18px);
    font-size: clamp(0.72rem, 0.8vw, 0.8125rem);
    font-family: inherit;
    line-height: 1.2;
    text-align: center;
    color: var(--studio-color-text);
    background-color: transparent;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
  }
  @media (hover: hover) {
    .studio-facets__sort-tab:hover { border-color: var(--studio-color-accent-3); }
  }
  .studio-facets__sort-tab.is-active {
    background-color: var(--studio-color-text);
    border-color: var(--studio-color-text);
    color: var(--studio-color-bg);
  }
  .studio-facets__sort-tab:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }
  @media (min-width: 769px) {
    .studio-facets--sidebar .studio-facets__sort { flex: 1 1 auto; min-width: 0; margin-left: 0; }
    .studio-facets--sidebar .studio-facets__sort-tabs {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: clamp(4px, 0.5vw, 8px);
      flex: 1 1 auto;
      min-width: 0;
      overflow: hidden;
    }
    .studio-facets--sidebar .studio-facets__sort-dd { display: none; }
  }

  /* Mobile toolbar: keep FILTER (left) and SORT (right) on one row instead of wrapping. */
  @media (max-width: 768px) {
    .studio-facets .studio-facets__toolbar { flex-wrap: nowrap; align-items: center; }
    .studio-facets .studio-facets__sort { margin-left: auto; min-width: 0; }
    .studio-facets__toolbar-left .studio-facets__count { order: 0; width: auto; }
  }
/* END_SECTION:collection */

/* START_SECTION:collections (INDEX:18) */
.studio-collections__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 40px;
  }
  .studio-collections__eyebrow {
    margin: 0;
  }
  .studio-collections__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.1;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-collections__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-collections__grid {
    display: grid;
    grid-template-columns: repeat(var(--studio-cols-mobile, 1), minmax(0, 1fr));
    gap: 20px;
  }
  @media (min-width: 769px) {
    .studio-collections__grid {
      grid-template-columns: repeat(var(--studio-cols, 3), minmax(0, 1fr));
    }
  }

  .studio-collections__card {
    position: relative;
    display: block;
    height: var(--studio-card-h, 600px);
    overflow: hidden;
    text-decoration: none;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }
  .studio-collections__card-media {
    position: absolute;
    inset: 0;
  }
  .studio-collections__card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
  }
  @media (hover: hover) {
    .studio-collections__card:hover .studio-collections__card-img {
      transform: scale(1.04);
    }
  }
  .studio-collections__card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, transparent 70%);
    pointer-events: none;
  }

  .studio-collections__card-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 28px 24px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
  }
  .studio-collections__card-text {
    min-width: 0;
  }
  .studio-collections__card-name {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
    line-height: 1.1;
    color: #fff;
    margin: 0 0 8px;
  }
  .studio-collections__card-meta {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
    margin: 0;
  }
  .studio-collections__card-arrow {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease, color 0.2s ease;
  }
  .studio-collections__card-arrow svg {
    width: 16px;
    height: 16px;
  }
  @media (hover: hover) {
    .studio-collections__card:hover .studio-collections__card-arrow {
      background: #fff;
      color: #000;
    }
  }

  .studio-collections__card:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 3px;
  }

  .studio-collections__empty {
    text-align: center;
    padding: 64px 0;
    font-size: 0.875rem;
    letter-spacing: 0.06em;
    color: var(--studio-color-accent-3);
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-collections__card-img,
    .studio-collections__card-arrow {
      transition: none;
    }
  }
/* END_SECTION:collections */

/* START_SECTION:contact-form (INDEX:19) */
.studio-contact__grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 64px;
    align-items: start;
  }

  .studio-contact__eyebrow {
    margin: 0 0 12px;
  }
  .studio-contact__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.1;
    margin: 0 0 12px;
    color: var(--studio-color-text);
  }
  .studio-contact__highlight {
    color: var(--studio-color-accent-1);
  }
  .studio-contact__subheading {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--studio-color-accent-3);
    margin: 0 0 28px;
  }

  .studio-contact__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  /* Bring each label closer to its own field: .studio-field already adds an
     8px gap, so drop the global label margin-bottom inside this section. */
  .studio-contact .studio-field { gap: 6px; }
  .studio-contact .studio-label { margin-bottom: 0; }

  .studio-contact__consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 18px 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--studio-color-accent-3);
    cursor: pointer;
  }
  .studio-contact__consent input {
    margin-top: 2px;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    accent-color: var(--studio-color-text);
  }
  /* consent_text is richtext, so it renders a <p> that keeps the browser's
     default margin — reset it so the text aligns with the checkbox. */
  .studio-contact__consent > span { flex: 1; }
  .studio-contact__consent p { margin: 0; }
  .studio-contact__consent a {
    color: var(--studio-color-text);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .studio-contact__reassurance {
    font-size: 0.6875rem;
    letter-spacing: 0.04em;
    color: var(--studio-color-accent-3);
    text-align: center;
    margin: 14px 0 0;
  }

  [data-contact-submit]:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  /* --- Info column blocks --- */
  .studio-contact__block {
    padding: 0 0 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--studio-color-accent-2);
  }
  .studio-contact__info-col .studio-contact__block:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
  }
  .studio-contact__block-title {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--studio-color-text);
    margin: 0 0 14px;
  }
  .studio-contact__address-name {
    font-weight: 600;
    color: var(--studio-color-text);
    margin: 0 0 4px;
  }
  .studio-contact__address {
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--studio-color-accent-3);
  }
  .studio-contact__address p { margin: 0; }
  .studio-contact__map-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-text);
    text-decoration: none;
    border-bottom: 1px solid var(--studio-color-text);
    padding-bottom: 2px;
    transition: opacity 0.2s ease;
  }
  @media (hover: hover) {
    .studio-contact__map-link:hover { opacity: 0.6; }
  }

  .studio-contact__hours {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .studio-contact__hours-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: 0.875rem;
    padding: 5px 0;
    color: var(--studio-color-text);
  }
  .studio-contact__hours-label { color: var(--studio-color-accent-3); }
  .studio-contact__hours-value { font-weight: 500; white-space: nowrap; }
  .studio-contact__status {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 0;
    font-size: 0.8125rem;
    color: var(--studio-color-text);
  }
  .studio-contact__status-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--studio-color-accent-1);
    flex-shrink: 0;
  }

  .studio-contact__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  .studio-contact__social {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--studio-color-text);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    transition: background-color 0.2s ease, color 0.2s ease;
  }
  @media (hover: hover) {
    .studio-contact__social:hover {
      background: var(--studio-color-text);
      color: var(--studio-color-bg);
    }
  }

  .studio-contact__text-icon {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--studio-color-text);
  }
  .studio-contact__text-icon svg {
    width: 26px;
    height: 26px;
  }

  /* Text block with an icon: icon column on the left, body on the right */
  .studio-contact__block--has-icon {
    display: flex;
    align-items: stretch;
    gap: 20px;
  }
  .studio-contact__block--has-icon .studio-contact__text-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-bottom: 0;
  }
  .studio-contact__block--has-icon .studio-contact__text-icon svg {
    width: 40px;
    height: 40px;
  }
  .studio-contact__text-body {
    flex: 1;
    min-width: 0;
  }

  .studio-contact__text {
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--studio-color-accent-3);
  }
  .studio-contact__text p { margin: 0 0 0.6em; }
  .studio-contact__text p:last-child { margin-bottom: 0; }

  :where(
    .studio-contact__map-link,
    .studio-contact__social,
    .studio-contact__consent input,
    #studio-contact-{{ section.id }} .studio-input,
    #studio-contact-{{ section.id }} .studio-textarea
  ):focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (max-width: 768px) {
    .studio-contact__grid {
      grid-template-columns: 1fr;
      gap: 48px;
    }
    .studio-contact__row {
      grid-template-columns: 1fr;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-contact__map-link,
    .studio-contact__social {
      transition: none;
    }
  }
/* END_SECTION:contact-form */

/* START_SECTION:countdown-banner (INDEX:20) */
.studio-cb-wrap {
    background: transparent;
  }

  .studio-countdown-banner {
    position: relative;
    overflow: hidden;
  }

  .studio-countdown-banner__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
  }

  .studio-countdown-banner__bg-picture {
    position: absolute;
    inset: 0;
  }

  .studio-countdown-banner__bg-img,
  .studio-countdown-banner__bg-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-countdown-banner__bg-video {
    z-index: 1; /* sopra l'eventuale picture base */
  }

  /* Swap mobile/desktop dei video di sfondo */
  @media (max-width: 768px) {
    .studio-countdown-banner--has-mobile-bg .studio-countdown-banner__bg-video--desktop {
      display: none;
    }
  }

  @media (min-width: 769px) {
    .studio-countdown-banner__bg-video--mobile {
      display: none;
    }
  }

  .studio-countdown-banner__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 2;
  }

  .studio-countdown-banner__inner {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    min-height: inherit;
    justify-content: flex-start;
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .studio-countdown-banner__inner--valign-center { justify-content: center; }
  .studio-countdown-banner__inner--valign-bottom { justify-content: flex-end; }

  .studio-countdown-banner__content {
    display: flex;
    flex-direction: column;
    max-width: 720px;
  }

  /* Heading */
  .studio-countdown-banner__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin: 0;
  }

  .studio-countdown-banner__highlight {
    color: var(--studio-color-accent-1);
  }

  /* Subheading */
  .studio-countdown-banner__subheading {
    color: var(--studio-color-text);
    font-size: 1rem;
    line-height: 1.6;
  }

  .studio-countdown-banner__subheading p { margin: 0; }

  /* Eyebrow (niente bordo; sfondo opzionale via --bg) */
  .studio-countdown-banner__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-accent-3);
  }

  .studio-countdown-banner__eyebrow--bg {
    padding: 6px 14px;
    background: var(--studio-color-bg);
    border-radius: var(--studio-elements-radius);
  }

  /* Dot — pattern radar ping (cfr. product.liquid .studio-stock__dot); colore via currentColor */
  .studio-countdown-banner__dot {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
  }

  .studio-countdown-banner__dot::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: currentColor;
    animation: studio-cb-pulse 1.8s ease-out infinite;
  }

  @keyframes studio-cb-pulse {
    0%   { transform: scale(1);   opacity: 0.55; }
    100% { transform: scale(2.8); opacity: 0; }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-countdown-banner__dot::after { animation: none; }
  }

  /* Button */
  .studio-countdown-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
  }

  .studio-countdown-banner__btn {
    border-radius: var(--studio-btn-radius);
  }

  .studio-countdown-banner__btn--solid {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
    border-color: var(--studio-color-accent-1);
  }

  .studio-countdown-banner__btn--ghost {
    background: transparent;
    color: var(--studio-color-text);
    border-color: var(--studio-color-text);
  }

  .studio-countdown-banner__btn--underline {
    background: transparent;
    color: var(--studio-color-text);
    border: none;
    border-bottom: 1px solid var(--studio-color-text);
    border-radius: 0;
    padding-left: 0;
    padding-right: 0;
  }

  @media (hover: hover) {
    .studio-countdown-banner__btn:hover { opacity: 0.85; }
  }

  .studio-countdown-banner__btn:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  /* Mobile */
  @media (max-width: 768px) {
    .studio-countdown-banner__inner {
      padding-top: 48px;
      padding-bottom: 48px;
    }

    .studio-countdown-banner__content {
      max-width: 100%;
    }
  }
/* END_SECTION:countdown-banner */

/* START_SECTION:customer-account (INDEX:22) */
.studio-pagination { display: flex; gap: 12px; margin-top: 32px; font-size: 0.875rem; }
  .studio-pagination a, .studio-pagination span { padding: 6px 10px; }
  .studio-pagination a { text-decoration: underline; text-underline-offset: 3px; }
  .studio-pagination [aria-current="page"] { font-weight: 700; }
/* END_SECTION:customer-account */

/* START_SECTION:customer-addresses (INDEX:24) */
.studio-addresses__add { margin-bottom: 40px; }
  .studio-addresses__add > summary { display: inline-flex; width: auto; text-align: center; text-decoration: none; color: var(--studio-color-bg); }
  .studio-addresses__add[open] > summary { margin-bottom: 24px; }
/* END_SECTION:customer-addresses */

/* START_SECTION:customer-order (INDEX:26) */
.studio-order__line-price { text-align: right; font-size: 0.875rem; font-weight: 600; white-space: nowrap; }
  .studio-order__head .studio-eyebrow a { text-decoration: none; }
/* END_SECTION:customer-order */

/* START_SECTION:email-popup (INDEX:29) */
.studio-email-popup {
    position: fixed;
    inset: 0;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  .studio-email-popup.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .studio-email-popup__overlay {
    position: absolute;
    inset: 0;
    background: var(--ep-overlay-color);
    opacity: var(--ep-overlay-opacity);
  }

  .studio-email-popup__modal {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.96);
    width: calc(100% - 32px);
    max-width: 460px;
    max-height: 90vh;
    overflow-y: auto;
    background-color: var(--studio-color-bg);
    border-radius: var(--studio-elements-radius);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s ease;
  }
  .studio-email-popup.is-open .studio-email-popup__modal {
    transform: translate(-50%, -50%) scale(1);
  }
  .studio-email-popup--has-media .studio-email-popup__modal {
    max-width: 900px;
  }

  .studio-email-popup__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.18);
    cursor: pointer;
    line-height: 0;
  }
  @media (hover: hover) { .studio-email-popup__close:hover { transform: scale(1.06); } }
  .studio-email-popup__close:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: 2px; }

  .studio-email-popup__content {
    display: flex;
    flex-direction: column;
    padding: clamp(1.75rem, 5vw, 3rem);
  }
  .studio-email-popup__eyebrow {
    margin: 0 0 0.75rem;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
  }
  .studio-email-popup__heading {
    margin: 0 0 0.75rem;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.1;
    color: var(--studio-color-text);
  }
  .studio-email-popup__subheading {
    margin: 0 0 1.5rem;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--studio-color-text);
  }
  .studio-email-popup__form { width: 100%; }
  .studio-email-popup__form .studio-form__errors { margin-bottom: 1rem; text-align: left; }
  .studio-email-popup__row {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: stretch;
  }
  .studio-email-popup__input { flex: 1 1 200px; width: auto; min-width: 0; }
  .studio-email-popup__btn { flex: 0 0 auto; justify-content: center; white-space: nowrap; }
  .studio-email-popup__success { margin: 0; font-size: 1rem; font-weight: 500; color: var(--studio-color-text); }
  .studio-email-popup__disclaimer {
    margin-top: 1rem;
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--studio-color-accent-3);
  }
  .studio-email-popup__disclaimer p { margin: 0; }
  .studio-email-popup__disclaimer a { color: inherit; }

  .studio-email-popup__sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  /* MEDIA */
  .studio-email-popup__media { position: relative; overflow: hidden; }
  .studio-email-popup__media picture { display: block; width: 100%; height: 100%; }
  .studio-email-popup__image,
  .studio-email-popup__video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .studio-email-popup__media-overlay {
    position: absolute;
    inset: 0;
    background: var(--ep-overlay-color);
    opacity: 0;
    pointer-events: none;
  }

  /* MOBILE (base): media on top by default, content below */
  .studio-email-popup--has-media .studio-email-popup__modal { display: flex; flex-direction: column; }
  .studio-email-popup--m-background .studio-email-popup__media { position: absolute; inset: 0; aspect-ratio: auto; }
  .studio-email-popup--m-background .studio-email-popup__content { position: relative; z-index: 1; }
  .studio-email-popup--m-background .studio-email-popup__media-overlay { opacity: var(--ep-media-overlay-opacity); }

  @media (min-width: 769px) {
    .studio-email-popup--d-left .studio-email-popup__modal { flex-direction: row; }
    .studio-email-popup--d-right .studio-email-popup__modal { flex-direction: row-reverse; }
    .studio-email-popup--d-left .studio-email-popup__media,
    .studio-email-popup--d-right .studio-email-popup__media {
      flex: 1 1 0;
      min-width: 0;
      aspect-ratio: auto;
    }
    .studio-email-popup--d-left .studio-email-popup__content,
    .studio-email-popup--d-right .studio-email-popup__content {
      flex: 1 1 0;
      min-width: 0;
      justify-content: center;
    }

    .studio-email-popup--d-background .studio-email-popup__media { position: absolute; inset: 0; aspect-ratio: auto; }
    .studio-email-popup--d-background .studio-email-popup__content { position: relative; z-index: 1; }
    .studio-email-popup--d-background .studio-email-popup__media-overlay { opacity: var(--ep-media-overlay-opacity); }
    /* desktop overrides the mobile-background overlay reset when not background on desktop */
    .studio-email-popup--d-left .studio-email-popup__media-overlay,
    .studio-email-popup--d-right .studio-email-popup__media-overlay { opacity: 0; }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-email-popup,
    .studio-email-popup__modal { transition: none; }
    .studio-email-popup .studio-email-popup__modal { transform: translate(-50%, -50%); }
  }

  @media (max-width: 600px) {
    .studio-email-popup__row { flex-direction: column; }
    .studio-email-popup__input { flex: 0 0 auto; width: 100%; }
    .studio-email-popup__btn { width: 100%; }
  }
/* END_SECTION:email-popup */

/* START_SECTION:fabric-loupe (INDEX:30) */
.studio-fabric-loupe__inner { display: flex; flex-direction: column; }
  .studio-fabric-loupe__head { display: flex; flex-direction: column; gap: 0.75rem; }
  .studio-fabric-loupe__eyebrow { font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--studio-color-accent-3); margin: 0; }
  .studio-fabric-loupe__heading { color: var(--studio-color-text); line-height: 1.05; margin: 0; }
  .studio-fabric-loupe__sub { color: var(--studio-color-text); max-width: 42ch; }
  .studio-fabric-loupe__sub p { margin: 0; }

  .studio-fabric-loupe__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; width: 100%; margin-top: 1.25rem; }
  .studio-fabric-loupe__tab { display: inline-flex; align-items: center; padding: 0.55rem 1.1rem; font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--studio-color-text); background: transparent; border: 1px solid var(--fl-border); border-radius: 999px; cursor: pointer; white-space: nowrap; transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
  @media (hover: hover) { .studio-fabric-loupe__tab:hover { border-color: var(--studio-color-text); } }
  .studio-fabric-loupe__tab.is-active { background: var(--fl-active-bg); color: var(--fl-active-text); border-color: transparent; }
  .studio-fabric-loupe__tab:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: 2px; }

  .studio-fabric-loupe__divider { height: 1px; background: var(--fl-border); margin: 2.5rem 0; }

  .studio-fabric-loupe__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 3.5rem; align-items: start; }

  .studio-fabric-loupe__loupe { position: relative; width: 100%; aspect-ratio: 7 / 5; overflow: hidden; cursor: crosshair; touch-action: none; border: 1px solid var(--fl-border); border-radius: var(--studio-elements-radius); background-color: var(--fl-cloth); background-size: cover; background-position: center; background-repeat: no-repeat; }
  .studio-fabric-loupe__loupe-tag { position: absolute; top: 1rem; left: 1.25rem; font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--studio-color-accent-3); pointer-events: none; }
  .studio-fabric-loupe__loupe-hint { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--studio-color-accent-3); pointer-events: none; transition: opacity 0.2s ease; white-space: nowrap; }
  .studio-fabric-loupe__loupe-hint-icon { line-height: 0; }
  .studio-fabric-loupe__loupe-hint-icon svg { width: 15px; height: 15px; display: block; }
  .studio-fabric-loupe__loupe-hint-icon svg [fill-rule] { fill: currentColor; }
  .studio-fabric-loupe__loupe.is-lens .studio-fabric-loupe__loupe-hint { opacity: 0; }

  .studio-fabric-loupe__lens { position: absolute; left: 50%; top: 50%; width: var(--fl-lens-size); height: var(--fl-lens-size); transform: translate(-50%, -50%); border-radius: 50%; pointer-events: none; opacity: 0; transition: opacity 0.18s ease; border: 2px solid var(--studio-color-bg); box-shadow: 0 6px 26px rgba(0,0,0,0.28); background-color: var(--fl-cloth); background-repeat: no-repeat; }
  .studio-fabric-loupe__loupe.is-lens .studio-fabric-loupe__lens { opacity: 1; }

  .studio-fabric-loupe__readout { display: flex; flex-direction: column; }
  .studio-fabric-loupe__rec-name { font-size: 1.75rem; font-weight: 700; line-height: 1.1; color: var(--studio-color-text); margin: 0; }
  .studio-fabric-loupe__rec-desc { margin-top: 0.6rem; font-size: 0.9rem; line-height: 1.5; color: var(--studio-color-accent-3); max-width: 42ch; }
  .studio-fabric-loupe__rec-desc p { margin: 0; }

  .studio-fabric-loupe__weight { display: flex; align-items: baseline; gap: 0.6rem; margin: 1.75rem 0; }
  .studio-fabric-loupe__weight-num { font-size: 3rem; font-weight: 700; line-height: 1; color: var(--studio-color-text); font-variant-numeric: tabular-nums; }
  .studio-fabric-loupe__weight-unit { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--studio-color-accent-3); }

  .studio-fabric-loupe__specs { display: flex; flex-direction: column; }
  .studio-fabric-loupe__spec { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.95rem 0; border-top: 1px solid var(--fl-border); }
  .studio-fabric-loupe__spec-label { font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--studio-color-accent-3); }
  .studio-fabric-loupe__spec-value { font-weight: 600; font-size: 0.95rem; color: var(--studio-color-text); text-align: right; }

  .studio-fabric-loupe__thumbs { display: flex; gap: 0.75rem; margin-top: 1.75rem; }
  .studio-fabric-loupe__thumb { width: 54px; height: 40px; flex: none; cursor: pointer; border: 1px solid var(--fl-border); border-radius: 6px; background-color: var(--fl-cloth); background-size: cover; background-position: center; background-repeat: no-repeat; padding: 0; transition: border-color 0.15s ease, box-shadow 0.15s ease; }
  .studio-fabric-loupe__thumb.is-active { border-color: var(--studio-color-text); box-shadow: 0 0 0 1px var(--studio-color-text); }
  .studio-fabric-loupe__thumb:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: 2px; }

  .studio-fabric-loupe__empty { color: var(--studio-color-accent-3); }

  @media (prefers-reduced-motion: reduce) {
    .studio-fabric-loupe__lens { transition: none; }
  }
  @media (max-width: 768px) {
    .studio-fabric-loupe__grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .studio-fabric-loupe__divider { margin: 2rem 0; }
  }
/* END_SECTION:fabric-loupe */

/* START_SECTION:faq (INDEX:31) */
.studio-faq__head {
    max-width: 680px;
    margin-bottom: 64px;
  }

  .studio-faq__eyebrow {
    margin-bottom: 16px;
  }

  .studio-faq__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 20px;
  }

  .studio-faq__subheading {
    font-size: 0.9375rem;
    line-height: 1.7;
    font-weight: 300;
    color: var(--studio-color-accent-3);
    margin: 0;
  }

  .studio-faq__accordion {
    max-width: 900px;
    margin: 0 auto;
  }

  .studio-faq__two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 64px;
  }

  .studio-faq__two-cols .studio-faq__accordion {
    max-width: none;
    margin: 0;
  }

  .studio-faq__trigger {
    padding: 28px 0;
  }

  .studio-faq__trigger-left {
    display: flex;
    align-items: center;
    gap: 28px;
    text-align: left;
  }

  .studio-faq__number {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--studio-color-accent-3);
    letter-spacing: 0.1em;
    flex-shrink: 0;
    width: 24px;
  }

  .studio-faq__question {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    font-family: var(--studio-font-body-family);
  }

  .studio-faq__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .studio-faq__icon > *:last-child { display: none; }
  .studio-accordion__item--open .studio-faq__icon > *:first-child { display: none; }
  .studio-accordion__item--open .studio-faq__icon > *:last-child { display: flex; }

  .studio-faq__answer {
    padding-left: 52px;
    font-size: 0.9375rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    line-height: 1.7;
  }

  /* Static row — stessa border delle FAQ item */
  .studio-faq__static {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid var(--studio-color-accent-2);
  }

  .studio-faq__static-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--studio-color-accent-3);
    line-height: 0;
  }

  .studio-faq__static-label {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--studio-color-text);
    flex: 1;
    font-family: var(--studio-font-body-family);
  }

  @media (max-width: 768px) {
    .studio-faq__two-cols {
      grid-template-columns: 1fr;
      gap: 0;
    }

    .studio-faq__trigger-left { gap: 16px; }
    .studio-faq__answer { padding-left: 0; }
    .studio-faq__question { font-size: 0.9375rem; }
  }
/* END_SECTION:faq */

/* START_SECTION:featured-collection (INDEX:32) */
.studio-featured-collection__head {
    margin-bottom: 32px;
  }

  .studio-featured-collection__headings {
    max-width: 680px;
    flex: 1;
  }

  .studio-featured-collection__eyebrow {
    margin-bottom: 12px;
  }

  .studio-featured-collection__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 12px;
  }

  .studio-featured-collection__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-featured-collection__subheading {
    font-size: 0.9375rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    max-width: 480px;
    line-height: 1.6;
    margin: 0;
  }

  .studio-featured-collection__slider-controls {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: nowrap;
  }

  .studio-featured-collection__slider-controls .studio-slider-controls {
    margin-right: auto;
  }

  .studio-featured-collection__view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--studio-color-text);
    border-bottom: 1px solid var(--studio-color-text);
    padding-bottom: 2px;
    transition: opacity 0.2s;
  }

  @media (hover: hover) {
    .studio-featured-collection__view-all:hover {
      opacity: 0.7;
    }
  }

  .studio-featured-collection__card {
    flex-shrink: 0;
  }
/* END_SECTION:featured-collection */

/* START_SECTION:featured-collections (INDEX:33) */
.studio-collections-grid__head {
    margin-bottom: 32px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
  }

  .studio-collections-grid__headings {
    flex: 1;
  }

  .studio-collections-grid__title-row {
    display: flex;
    flex-direction: column;
  }

  .studio-collections-grid__title-row .studio-collections-grid__heading {
    flex: 1;
    min-width: 0;
  }

  .studio-collections-grid__eyebrow {
    margin-bottom: 10px;
  }

  .studio-collections-grid__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin: 0;
  }

  .studio-collections-grid__view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--studio-color-text);
    border-bottom: 1px solid var(--studio-color-text);
    padding-bottom: 2px;
    flex-shrink: 0;
    transition: opacity 0.2s;
  }

  @media (hover: hover) {
    .studio-collections-grid__view-all:hover { opacity: 0.7; }
  }

  .studio-collections-grid__controls {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: nowrap;
  }

  .studio-collections-grid__controls .studio-slider-controls {
    margin-right: auto;
  }

  .studio-collections-grid__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }

  .studio-collection-card {
    display: block;
    position: relative;
    overflow: hidden;
    text-decoration: none;
    border-radius: var(--studio-elements-radius);
  }

  .studio-collection-card__media {
    position: relative;
    aspect-ratio: var(--studio-media-ratio, 3/4);
    overflow: hidden;
  }

  .studio-collection-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    display: block;
  }

  .studio-collection-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, rgba(0, 0, 0, 0.7) 100%);
    transition: opacity 0.4s ease;
  }

  .studio-collection-card__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 32px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    transform: translateY(16px);
    transition: transform 0.4s ease;
  }

  .studio-collection-card__name {
    font-family: var(--studio-font-heading-family);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #fff;
    margin: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  .studio-collection-card__btn {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.3s ease 0.05s, transform 0.3s ease 0.05s;
    pointer-events: none;
    background: #fff;
    color: var(--studio-color-text);
    border-color: #fff;
  }

  @media (hover: hover) {
    .studio-collection-card:hover .studio-collection-card__img { transform: scale(1.04); }
    .studio-collection-card:hover .studio-collection-card__content { transform: translateY(0); }
    .studio-collection-card:hover .studio-collection-card__name { opacity: 1; }
    .studio-collection-card:hover .studio-collection-card__btn {
      opacity: 1;
      transform: translateY(0);
      pointer-events: all;
    }
  }

  /* Arrow card variant: active when the button label is left empty.
     Collection title sits bottom-left; a circular arrow button sits top-right or
     bottom-right. On hover the circle inverts and the arrow rotates up (-45deg). */
  .studio-collection-card__title {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 24px;
    margin: 0;
    font-family: var(--studio-font-heading-family);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #fff;
    z-index: 1;
  }
  .studio-collection-card--arrow-bottom .studio-collection-card__title {
    right: 72px;
  }
  .studio-collection-card__arrow {
    position: absolute;
    right: 16px;
    z-index: 1;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--studio-color-text);
    transition: background 0.3s ease, color 0.3s ease;
  }
  .studio-collection-card--arrow-top .studio-collection-card__arrow { top: 16px; }
  .studio-collection-card--arrow-bottom .studio-collection-card__arrow { bottom: 16px; }
  .studio-collection-card__arrow svg {
    width: 16px;
    height: 16px;
    transition: transform 0.3s ease;
  }
  @media (hover: hover) {
    .studio-collection-card--arrow:hover .studio-collection-card__arrow svg { transform: rotate(-45deg); }
  }

  @media (max-width: 768px) {
    .studio-collections-grid__head {
      flex-direction: column;
      align-items: stretch;
      gap: 16px;
    }

    .studio-collection-card__content { transform: translateY(0); }
    .studio-collection-card__name { opacity: 1; }
    .studio-collection-card__btn { opacity: 1; transform: translateY(0); }
  }
/* END_SECTION:featured-collections */

/* START_SECTION:featured-product (INDEX:34) */
.studio-featured-product__full-inner {
    padding-left: clamp(24px, 4vw, 64px);
    padding-right: clamp(24px, 4vw, 64px);
  }

  .studio-featured-product__layout,
  .studio-featured-product__onboarding {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
  }

  .studio-featured-product__onboarding {
    align-items: center;
  }

  .studio-featured-product__layout--media-right .studio-product__gallery {
    order: 2;
  }

  .studio-featured-product .studio-product__title {
    font-size: calc(2.5rem * var(--studio-heading-size-scale));
    line-height: 1.1;
  }

  .studio-featured-product__title-link {
    color: inherit;
    text-decoration: none;
  }

  @media (hover: hover) {
    .studio-featured-product__title-link:hover {
      text-decoration: underline;
    }
  }

  .studio-featured-product__placeholder {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    display: block;
    background: var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
  }

  .studio-featured-product__onboarding-text {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  @media (max-width: 1024px) {
    .studio-featured-product__layout,
    .studio-featured-product__onboarding {
      grid-template-columns: 1fr;
      gap: 40px;
    }

    .studio-featured-product__layout--media-right .studio-product__gallery {
      order: 0;
    }
  }
/* END_SECTION:featured-product */

/* START_SECTION:fit-finder (INDEX:35) */
.studio-fit-finder__inner { display: flex; flex-direction: column; }
  .studio-fit-finder__head { display: flex; flex-direction: column; gap: 0.75rem; }
  .studio-fit-finder__eyebrow { font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--studio-color-accent-3); margin: 0; }
  .studio-fit-finder__heading { color: var(--studio-color-text); line-height: 1.05; margin: 0; }
  .studio-fit-finder__sub { color: var(--studio-color-text); max-width: 46ch; }
  .studio-fit-finder__sub p { margin: 0; }
  .studio-fit-finder__divider { height: 1px; background: var(--ff-border); margin: 2.5rem 0; }

  .studio-fit-finder__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3.5rem; align-items: stretch; }

  /* Pad 2D */
  .studio-fit-finder__pad {
    position: relative; width: 100%; aspect-ratio: 1 / 1; touch-action: none; cursor: crosshair;
    border: 1px solid var(--ff-border); border-radius: var(--studio-elements-radius); overflow: hidden;
    background-image:
      repeating-linear-gradient(to right, var(--ff-border) 0 1px, transparent 1px 11.111%),
      repeating-linear-gradient(to bottom, var(--ff-border) 0 1px, transparent 1px 9.0909%);
    background-position: -1px -1px;
  }
  .studio-fit-finder__dot {
    position: absolute; left: 50%; top: 50%; width: 26px; height: 26px; transform: translate(-50%, -50%);
    border-radius: 50%; background: #fff; border: 0; padding: 0; cursor: grab;
    box-shadow: 0 2px 10px rgba(0,0,0,0.35); transition: left 0.12s ease, top 0.12s ease;
  }
  .studio-fit-finder__dot:active { cursor: grabbing; }
  .studio-fit-finder__pad.is-dragging .studio-fit-finder__dot { transition: none; }
  .studio-fit-finder__dot:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: 3px; }

  .studio-fit-finder__axis { position: absolute; font-size: 0.625rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--studio-color-accent-3); pointer-events: none; }
  .studio-fit-finder__axis--tall { top: 1rem; left: 1rem; }
  .studio-fit-finder__axis--short { bottom: 2.4rem; left: 1rem; }
  .studio-fit-finder__axis--height { top: 50%; left: 1rem; transform: rotate(180deg); writing-mode: vertical-rl; }
  .studio-fit-finder__axis--slim { bottom: 1rem; left: 1rem; }
  .studio-fit-finder__axis--build { bottom: 1rem; left: 50%; transform: translateX(-50%); }
  .studio-fit-finder__axis--broad { bottom: 1rem; right: 1rem; }
  .studio-fit-finder__hint { position: absolute; top: 38%; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 0.625rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--studio-color-accent-3); pointer-events: none; }

  .studio-fit-finder__live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

  /* Readout */
  .studio-fit-finder__readout { display: flex; flex-direction: column; gap: 2rem; }
  .studio-fit-finder__panel-label { display: block; font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--studio-color-accent-3); margin-bottom: 0.85rem; }
  .studio-fit-finder__rec-main { display: flex; align-items: flex-end; gap: 1.25rem; }
  .studio-fit-finder__rec-letter { font-size: clamp(4rem, 9vw, 6.5rem); font-weight: 700; line-height: 0.85; color: var(--studio-color-text); }
  .studio-fit-finder__rec-meta { display: flex; flex-direction: column; gap: 0.25rem; padding-bottom: 0.5rem; }
  .studio-fit-finder__rec-fit { font-size: 0.95rem; color: var(--studio-color-text); }
  .studio-fit-finder__rec-sub { font-size: 0.8125rem; color: var(--studio-color-accent-3); }

  .studio-fit-finder__fit-toggle { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--ff-border); border-radius: var(--studio-elements-radius); overflow: hidden; }
  .studio-fit-finder__fit-btn { padding: 0.85rem 0.5rem; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--studio-color-text); background: transparent; border: 0; border-left: 1px solid var(--ff-border); cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease; }
  .studio-fit-finder__fit-btn:first-child { border-left: 0; }
  .studio-fit-finder__fit-btn.is-active { background: var(--ff-active-bg); color: var(--ff-active-text); }
  .studio-fit-finder__fit-btn:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: -3px; }

  .studio-fit-finder__scale { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 0.5rem; }
  .studio-fit-finder__scale-item { padding: 1rem 0.4rem; font-size: 0.8125rem; font-weight: 700; color: var(--studio-color-text); background: transparent; border: 1px solid var(--ff-border); border-radius: var(--studio-elements-radius); cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
  .studio-fit-finder__scale-item.is-active { background: var(--ff-active-bg); color: var(--ff-active-text); border-color: transparent; }
  .studio-fit-finder__scale-item:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: 2px; }

  .studio-fit-finder__measures { display: flex; flex-direction: column; }
  .studio-fit-finder__measure { display: flex; align-items: center; justify-content: space-between; padding: 0.95rem 0; border-top: 1px solid var(--ff-border); }
  .studio-fit-finder__measure:last-child { border-bottom: 1px solid var(--ff-border); }
  .studio-fit-finder__measure-label { font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--studio-color-accent-3); }
  .studio-fit-finder__measure-value { font-weight: 700; font-size: 1.05rem; color: var(--studio-color-text); font-variant-numeric: tabular-nums; }

  .studio-fit-finder__empty { color: var(--studio-color-accent-3); }

  @media (prefers-reduced-motion: reduce) {
    .studio-fit-finder__dot { transition: none; }
  }
  @media (max-width: 768px) {
    .studio-fit-finder__grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .studio-fit-finder__divider { margin: 2rem 0; }
  }
/* END_SECTION:fit-finder */

/* START_SECTION:footer (INDEX:36) */
.studio-footer {
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
  }

  .studio-footer__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    align-items: stretch;
  }

  .studio-footer__col-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin-bottom: 24px;
  }

  .studio-footer__col-title {
    font-family: var(--studio-font-heading-family);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-bg);
    text-align: left;
    margin: 0 0 24px;
    display: block;
  }

  .studio-footer__col-title--static {
    cursor: default;
  }

  .studio-footer__col-icon {
    display: none;
    color: var(--studio-color-bg);
    flex-shrink: 0;
  }

  .studio-footer__col-links {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .studio-footer__col-link {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 300;
    transition: color 0.2s;
    text-decoration: none;
  }

  @media (hover: hover) {
    .studio-footer__col-link:hover { color: var(--studio-color-bg); }
  }

  .studio-footer__col-body {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 300;
    line-height: 1.7;
  }

  .studio-footer__col-body p { margin: 0 0 12px; }
  .studio-footer__col-body p:last-child { margin-bottom: 0; }
  .studio-footer__col-body a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* Image col */
  .studio-footer__col--image {
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
  }

  .studio-footer__col-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Bottom bar — border-top è 0 di default, gestita solo dall'inline style */
  .studio-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 32px 0 40px;
    gap: 24px;
    border-top: 0;
  }

  .studio-footer__copyright {
    font-size: 0.6875rem;
    color: rgba(255, 255, 255, 0.45);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0;
    font-weight: 500;
  }

  .studio-footer__socials {
    display: flex;
    align-items: center;
    gap: 20px;
  }

  .studio-footer__shop-follow {
    margin-top: 16px;
  }

  .studio-footer__social-link {
    color: rgba(255, 255, 255, 0.6);
    transition: color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
  }

  @media (hover: hover) {
    .studio-footer__social-link:hover { color: var(--studio-color-bg); }
  }

  .studio-footer__payments {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
  }

  .studio-footer__payment-icon {
    height: 24px;
    width: auto;
    opacity: 1;
    filter: none;
    border-radius: 4px;
  }

  @media (max-width: 768px) {
    .studio-footer__grid {
      grid-template-columns: 1fr;
      gap: 0;
    }

    .studio-footer__col--menu {
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    .studio-footer__col--menu .studio-footer__col-trigger {
      padding: 20px 0;
      margin-bottom: 0;
    }

    .studio-footer__col--menu .studio-footer__col-trigger .studio-footer__col-title {
      margin-bottom: 0;
    }

    .studio-footer__col-icon {
      display: flex;
      transition: transform 0.3s ease;
    }

    [aria-expanded="true"] .studio-footer__col-icon {
      transform: rotate(45deg);
    }

    .studio-footer__col-links {
      display: none;
      padding-bottom: 20px;
    }

    .studio-footer__col-links--open {
      display: flex;
    }

    .studio-footer__col--text {
      padding: 24px 0;
    }

    .studio-footer__col--image {
      margin: 24px 0;
      border-radius: var(--studio-elements-radius);
    }

    .studio-footer__bottom {
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 20px;
      padding: 28px 0 40px;
    }

    .studio-footer__copyright { order: 2; }
    .studio-footer__socials   { order: 1; }
    .studio-footer__payments  { order: 3; justify-content: center; }
  }
/* END_SECTION:footer */

/* START_SECTION:header (INDEX:37) */
.studio-header {
    position: relative;
    z-index: 90;
    background: var(--studio-color-bg);
    border-bottom: 1px solid var(--studio-color-accent-2);
    transition: background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  }

  .studio-header--sticky {
    position: sticky;
    top: 0;
  }

  .studio-header--scrolled {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  }

  /* Hide the alt logo by default (solid state). 0,2,0 so it beats the later
     `.studio-header__logo-img { display:block }` base rule; the transparent rule
     below (also 0,2,0, later in source) re-shows it at the homepage top. */
  .studio-header .studio-header__logo-img--alt {
    display: none;
  }

  .studio-header--transparent .studio-header__logo-img--default {
    display: none;
  }

  .studio-header--transparent .studio-header__logo-img--alt {
    display: block;
  }

  .studio-header__inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 20px var(--studio-section-padding);
    max-width: var(--studio-page-width);
    margin: 0 auto;
    gap: 24px;
  }

  .studio-header__left {
    display: flex;
    align-items: center;
    min-width: 0;
  }

  .studio-header__logo {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: 100%;
  }

  .studio-header__logo-img {
    max-height: 40px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
  }

  .studio-header__logo-text {
    font-family: var(--studio-font-heading-family);
    font-weight: 900;
    font-size: 1.125rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--studio-color-text);
  }

  .studio-nav {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .studio-nav__item {
    position: relative;
  }

  .studio-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--studio-font-heading-family);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: var(--studio-nav-letter-spacing);
    text-transform: var(--studio-nav-transform);
    color: var(--studio-color-text);
    padding: 8px 10px;
    position: relative;
    transition: color 0.2s;
    text-decoration: none;
    white-space: nowrap;
  }

  .studio-nav__link::after {
    content: '';
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 4px;
    height: 1px;
    background: var(--studio-color-text);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
  }

  @media (hover: hover) {
    .studio-nav__link:hover::after {
      transform: scaleX(1);
    }
  }

  .studio-nav__link--active::after {
    transform: scaleX(1);
  }

  .studio-nav__subtitle {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.625rem;
    font-weight: 400;
    white-space: nowrap;
    color: var(--studio-color-accent-3);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
  }

  @media (hover: hover) {
    .studio-nav__item:hover .studio-nav__subtitle {
      opacity: 1;
    }
  }

  .studio-dropdown {
    position: absolute;
    top: calc(100% + var(--studio-nav-dropdown-gap, 8px));
    left: 50%;
    transform: translateX(-50%);
    min-width: 200px;
    background: var(--studio-color-bg);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    box-shadow: var(--studio-shadow);
    z-index: 100;
    padding: 8px 0;
  }

  .studio-dropdown[hidden] { display: none; }

  .studio-dropdown__item { display: block; }

  .studio-dropdown__link {
    display: block;
    padding: 10px 20px;
    font-size: 0.875rem;
    color: var(--studio-color-text);
    transition: background 0.15s;
    text-decoration: none;
    white-space: nowrap;
  }

  @media (hover: hover) {
    .studio-dropdown__link:hover {
      background: var(--studio-color-accent-2);
    }
  }

  .studio-mega {
    position: fixed;
    left: 0;
    right: 0;
    top: var(--studio-header-bottom, var(--studio-header-height, 80px));
    background: var(--studio-color-bg);
    border-top: 1px solid var(--studio-color-accent-2);
    border-bottom: 1px solid var(--studio-color-accent-2);
    z-index: 89;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
  }

  .studio-mega[hidden] { display: none; }

  .studio-mega__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    padding: 40px 0;
  }

  .studio-mega__cols {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
  }

  .studio-mega__col { min-width: 160px; }

  .studio-mega__col-title {
    display: block;
    font-family: var(--studio-font-heading-family);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-text);
    margin-bottom: 16px;
    text-decoration: none;
    transition: color 0.2s;
  }

  @media (hover: hover) {
    .studio-mega__col-title:hover {
      color: var(--studio-color-accent-3);
    }
  }

  .studio-mega__sublist {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .studio-mega__sublink {
    font-size: 0.875rem;
    color: var(--studio-color-accent-3);
    text-decoration: none;
    font-weight: 300;
    transition: color 0.2s;
  }

  @media (hover: hover) {
    .studio-mega__sublink:hover {
      color: var(--studio-color-text);
    }
  }

  .studio-mega__images {
    display: flex;
    gap: 16px;
  }

  .studio-mega__image-item {
    display: block;
    text-decoration: none;
    width: var(--mmi-w, 160px);
    flex-shrink: 0;
  }

  .studio-mega__image {
    width: 100%;
    aspect-ratio: var(--mmi-r, 3/4);
    object-fit: cover;
    display: block;
    border-radius: var(--studio-elements-radius);
    margin-bottom: 10px;
    transition: transform 0.4s ease;
  }

  @media (hover: hover) {
    .studio-mega__image-item:hover .studio-mega__image {
      transform: scale(1.03);
    }
  }

  .studio-mega__image-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--studio-color-text);
    display: flex;
    align-items: center;
    gap: 6px;
  }

  /* ── Menu-image (twin of the mega menu): cards inside a reused .studio-mega panel.
     Title is separate text ABOVE the image (no overlay). On desktop the cards are a
     horizontal scroll-snap slider (no arrows); card width and image ratio are merchant
     settings. Placeholder is a neutral box so a sub-item with no matching image block
     stays a navigable card. */
  .studio-mega--image-menu .studio-mega__cards {
    display: flex;
    gap: 24px;
    padding: 32px 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .studio-mega--image-menu .studio-mega__cards::-webkit-scrollbar { display: none; }

  .studio-mega__card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-decoration: none;
    flex-shrink: 0;
    scroll-snap-align: start;
  }

  .studio-mega__card-title {
    font-family: var(--studio-font-heading-family);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-text);
    transition: color 0.2s;
  }

  .studio-mega__card-image {
    display: block;
    width: 100%;
    object-fit: cover;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
    transition: transform 0.4s ease;
  }

  @media (hover: hover) {
    .studio-mega__card:hover .studio-mega__card-title { color: var(--studio-color-accent-3); }
    .studio-mega__card:hover .studio-mega__card-image { transform: scale(1.02); }
  }

  /* Menu-image on mobile: the same sub-items render as cards stacked VERTICALLY in
     the drawer's sub-panel (its own background — no transparent snap involved here). */
  .studio-sidebar__sublist--cards {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 24px;
  }

  .studio-sidebar__card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0 24px;
    text-decoration: none;
  }

  .studio-sidebar__card-title {
    font-family: var(--studio-font-heading-family);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--studio-color-text);
  }

  .studio-sidebar__card-image {
    display: block;
    width: 100%;
    object-fit: cover;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }

  /* Mega menu rendered inside the mobile drawer: childlink groups (title + indented
     grandchildren) with full-width images interleaved per block placement. */
  .studio-sidebar__mega {
    padding-bottom: 24px;
  }

  .studio-sidebar__mega-col-title {
    display: block;
    padding: 16px 24px 4px;
    font-family: var(--studio-font-heading-family);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--studio-color-text);
    text-decoration: none;
  }

  .studio-sidebar__mega-sublist {
    list-style: none;
    margin: 0;
    padding: 0 0 8px;
  }

  .studio-sidebar__mega-sublink {
    display: block;
    padding: 8px 24px 8px 36px;
    font-size: 0.9375rem;
    font-weight: 300;
    color: var(--studio-color-accent-3);
    text-decoration: none;
  }

  .studio-sidebar__mega-image {
    display: block;
    padding: 12px 24px;
    text-decoration: none;
  }

  .studio-sidebar__mega-image-img {
    display: block;
    width: 100%;
    aspect-ratio: var(--mmi-rm, 3/4);
    object-fit: cover;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }

  .studio-sidebar__mega-image-label {
    display: block;
    margin-top: 8px;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--studio-color-text);
  }

  .studio-header__icons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
  }

  .studio-header__icon-btn {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--studio-color-text);
    position: relative;
    transition: color 0.2s;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    line-height: 0;
  }

  @media (hover: hover) {
    .studio-header__icon-btn:hover {
      color: var(--studio-color-accent-3);
    }
  }

  .studio-header__menu-btn { display: none; }

  .studio-search-panel {
    position: sticky;
    top: var(--studio-header-height, 80px);
    background: var(--studio-color-bg);
    z-index: 88;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }

  .studio-search-panel--open {
    max-height: 85vh;
    border-bottom: 1px solid var(--studio-color-accent-2);
  }

  .studio-search-panel__inner { padding: 24px 0; }

  .studio-search-panel__form {
    display: flex;
    align-items: center;
    gap: 16px;
    border-bottom: 2px solid var(--studio-color-text);
    padding-bottom: 12px;
  }

  .studio-search-panel__input {
    flex: 1;
    border: none;
    outline: none;
    font-family: var(--studio-font-heading-family);
    font-size: calc(2rem * var(--studio-heading-size-scale));
    font-weight: 700;
    color: var(--studio-color-text);
    background: transparent;
    padding: 0;
  }

  .studio-search-panel__input::placeholder {
    color: var(--studio-color-accent-2);
  }

  .studio-search-panel__submit,
  .studio-search-panel__close {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--studio-color-text);
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .studio-search-panel__results {
    padding-top: 20px;
    max-height: 65vh;
    overflow-y: auto;
  }

  /* Mobile: the heading-scale 2rem input is far too large on phones — the long
     placeholder overflows and pushes the submit/close icons off-screen. Shrink to
     16px (iOS won't zoom on focus at >=16px) and let the flex input shrink below
     its content width so the icons stay visible on one row. */
  @media (max-width: 768px) {
    .studio-search-panel__form { gap: 12px; }
    .studio-search-panel__input {
      font-size: 1rem;
      min-width: 0;
    }
  }

  .studio-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    max-width: 380px;
    background: var(--studio-color-bg);
    z-index: 200;
    display: flex;
    flex-direction: column;
    transform: translateX(-100%);
    transition: transform 0.35s ease;
    overflow: hidden;
  }

  .studio-sidebar--open { transform: translateX(0); }

  .studio-sidebar__overlay {
    position: fixed;
    inset: 0;
    background: var(--studio-color-overlay);
    opacity: 0;
    pointer-events: none;
    z-index: 199;
    transition: opacity 0.35s ease;
  }

  .studio-sidebar__overlay--visible {
    opacity: var(--studio-overlay-opacity);
    pointer-events: all;
  }

  .studio-sidebar__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid var(--studio-color-accent-2);
    flex-shrink: 0;
  }

  .studio-sidebar__body {
    flex: 1;
    position: relative;
    overflow: hidden;
  }

  .studio-sidebar__scroll {
    height: 100%;
    overflow-y: auto;
  }

  .studio-sidebar__menu {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .studio-sidebar__item {
    border-bottom: 1px solid var(--studio-color-accent-2);
  }

  .studio-sidebar__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    font-family: var(--studio-font-heading-family);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--studio-color-text);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    width: 100%;
    text-align: left;
    transition: background 0.15s;
  }

  @media (hover: hover) {
    .studio-sidebar__link:hover {
      background: var(--studio-color-accent-2);
    }
  }

  .studio-sidebar__sub {
    position: absolute;
    inset: 0;
    background: var(--studio-color-bg);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    overflow-y: auto;
    z-index: 2;
  }

  .studio-sidebar__sub--open { transform: translateX(0); }

  .studio-sidebar__back {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 24px;
    font-family: var(--studio-font-heading-family);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: none;
    border: none;
    border-bottom: 1px solid var(--studio-color-accent-2);
    cursor: pointer;
    color: var(--studio-color-text);
    width: 100%;
    text-align: left;
  }

  .studio-sidebar__sublist {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .studio-sidebar__sublink {
    display: block;
    padding: 14px 24px;
    font-size: 0.9375rem;
    color: var(--studio-color-text);
    text-decoration: none;
    border-bottom: 1px solid var(--studio-color-accent-2);
    font-weight: 300;
    transition: background 0.15s;
  }

  .studio-sidebar__sublink--all {
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.8125rem;
  }

  @media (hover: hover) {
    .studio-sidebar__sublink:hover {
      background: var(--studio-color-accent-2);
    }
  }

  .studio-sidebar__footer {
    padding: 24px;
    border-top: 1px solid var(--studio-color-accent-2);
    flex-shrink: 0;
  }

  .studio-sidebar__account {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--studio-color-text);
    text-decoration: none;
  }
  .studio-sidebar__wishlist {
    margin-top: 24px;
  }

  @media (max-width: 1024px) {
    .studio-nav { display: none; }
    .studio-header__menu-btn { display: inline-flex; }
    /* Logo yields to the icons: flexible (shrinkable) logo column + content-sized
       icons. minmax(0,1fr) forces the min to 0 (default 1fr keeps min-width:auto,
       which would block shrinking). The icons column stays auto = never compressed. */
    .studio-header__inner { grid-template-columns: minmax(0, 1fr) auto; }
  }

  @media (max-width: 768px) {
    .studio-header__inner { padding: 16px 24px; }
  }

  /* Account + wishlist icons live in the sidebar on mobile, so hide the header
     ones at the hamburger breakpoint. */
  @media (max-width: 1024px) {
    .studio-header__icon-btn--desktop { display: none; }
  }

  /* -------------------------------------------------- localization (sidebar) */
  .studio-sidebar__localization {
    margin-top: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .studio-sidebar__localization .studio-loc { width: 100%; }
  .studio-sidebar__localization .studio-loc__button {
    width: 100%;
    justify-content: space-between;
    color: var(--studio-color-text);
    background: transparent;
    border: 1px solid var(--studio-color-accent-2);
  }
  .studio-sidebar__localization .studio-loc__list {
    /* The sidebar footer sits at the bottom of an overflow:hidden column, so a
       downward dropdown gets clipped and unclickable. Open upward instead. */
    top: auto;
    bottom: calc(100% + 8px);
    left: 0;
    right: auto;
    transform: none;
    z-index: 95;
    width: 100%;
    max-height: 60vh;
    overflow-y: auto;
  }

  /* Wishlist badge reuses the cart-count styling; hook kept for future tweaks. */
  .studio-header__wishlist-link { position: relative; }
/* END_SECTION:header */

/* START_SECTION:hero (INDEX:38) */
.studio-hero-wrap {
    background: transparent;
  }

  .studio-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    color: #fff;
  }

  .studio-hero__media {
    position: absolute;
    inset: 0;
  }

  .studio-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .studio-hero__placeholder {
    width: 100%;
    height: 100%;
    background: #222;
  }

  .studio-hero__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .studio-hero__content {
    position: relative;
    width: 100%;
    display: flex;
    align-items: flex-end;
    padding-top: 80px;
    padding-bottom: 64px;
    gap: 40px;
    z-index: 2;
  }

  .studio-hero__inner {
    max-width: 800px;
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  .studio-hero__eyebrow {
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 20px;
  }

  .studio-hero__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: #fff;
    margin-bottom: 20px;
  }

  .studio-hero__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-hero__subheading {
    font-size: 1.0625rem;
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.6;
    margin-bottom: 36px;
    font-weight: 300;
  }

  .studio-hero__ctas {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
  }

  .studio-hero__btn--solid {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
    border-color: var(--studio-color-accent-1);
  }

  .studio-hero__btn--ghost {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.6);
  }

  .studio-hero__btn--underline {
    background: transparent;
    color: #fff;
    border: none;
    border-bottom: 1px solid #fff;
    border-radius: 0;
    padding-left: 0;
    padding-right: 0;
  }

  @media (hover: hover) {
    .studio-hero__btn:hover { opacity: 0.85; }
  }

  .studio-hero__btn:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  .studio-hero__meta {
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.6875rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-weight: 500;
    flex-shrink: 0;
    align-self: flex-end;
  }

  .studio-hero__meta-value {
    color: #fff;
    display: block;
    font-size: 0.8125rem;
    margin-top: 4px;
    font-weight: 600;
  }
/* END_SECTION:hero */

/* START_SECTION:hotspot-gallery (INDEX:39) */
/* ---- Intestazione sezione (sopra la galleria) ---- */
  .studio-hotspot-gallery__head {
    margin-bottom: 32px;
  }

  .studio-hotspot-gallery__head--align-center { text-align: center; }
  .studio-hotspot-gallery__head--align-right  { text-align: right; }

  .studio-hotspot-gallery__eyebrow {
    color: var(--studio-color-accent-3);
    margin-bottom: 10px;
  }

  .studio-hotspot-gallery__heading {
    color: var(--studio-color-text);
    margin: 0;
  }

  .studio-hotspot-gallery__highlight {
    color: var(--studio-color-accent-1);
  }

  /* ============ LAYOUT (indipendente desktop/mobile) ============ */
  /* .__row e' una .studio-slider-row di base (flex, overflow-x:auto, scroll-snap). Per-breakpoint
     la trasformiamo in griglia (--*-grid) o la lasciamo slider (--*-slider). card_width agisce solo
     in slider (in griglia la larghezza la danno le colonne). */

  /* ---- Desktop (>=769px) ---- */
  @media (min-width: 769px) {
    .studio-hotspot-gallery--d-grid .studio-hotspot-gallery__row {
      display: grid;
      gap: 24px;
      overflow: visible;
      scroll-snap-type: none;
      padding: 0;
    }
    .studio-hotspot-gallery--d-slider .studio-hotspot-gallery__row {
      overflow-y: visible;
      scrollbar-width: none;
      padding-left: var(--studio-section-padding);
      padding-right: var(--studio-section-padding);
    }
    .studio-hotspot-gallery--d-slider .studio-hotspot-gallery__item {
      width: var(--hg-card-width);
      flex-shrink: 0;
      scroll-snap-align: start;
    }
    .studio-hotspot-gallery--d-slider .studio-hotspot-gallery__slider-escape {
      overflow: hidden;
    }
    /* slider+contained: l'escape esce dal padding del container. In 'full' NIENTE margine negativo
       (il layout e' gia' a tutta larghezza viewport) -> i due breakout NON si sommano. */
    .studio-hotspot-gallery--contained.studio-hotspot-gallery--d-slider .studio-hotspot-gallery__slider-escape {
      margin-left: calc(-1 * var(--studio-section-padding));
      margin-right: calc(-1 * var(--studio-section-padding));
    }
    .studio-hotspot-gallery--d-grid .studio-hotspot-gallery__controls {
      display: none;
    }
  }

  /* ---- Mobile (<=768px) ---- */
  @media (max-width: 768px) {
    /* griglia mobile = SEMPRE 1 colonna verticale, a prescindere da desktop_columns */
    .studio-hotspot-gallery--m-grid .studio-hotspot-gallery__row {
      display: grid;
      grid-template-columns: 1fr;
      gap: 24px;
      overflow: visible;
      scroll-snap-type: none;
      padding: 0;
    }
    .studio-hotspot-gallery--m-slider .studio-hotspot-gallery__row {
      overflow-y: visible;
      scrollbar-width: none;
      padding-left: var(--studio-section-padding);
      padding-right: var(--studio-section-padding);
    }
    .studio-hotspot-gallery--m-slider .studio-hotspot-gallery__item {
      width: var(--hg-card-width-m);
      flex-shrink: 0;
      scroll-snap-align: start;
    }
    .studio-hotspot-gallery--m-slider .studio-hotspot-gallery__slider-escape {
      overflow: hidden;
    }
    .studio-hotspot-gallery--contained.studio-hotspot-gallery--m-slider .studio-hotspot-gallery__slider-escape {
      margin-left: calc(-1 * var(--studio-section-padding));
      margin-right: calc(-1 * var(--studio-section-padding));
    }
    .studio-hotspot-gallery--m-grid .studio-hotspot-gallery__controls {
      display: none;
    }
  }

  .studio-hotspot-gallery__row::-webkit-scrollbar {
    display: none;
  }

  /* ---- Frecce: allineamento da text_align + posizione sopra/sotto la galleria ---- */
  .studio-hotspot-gallery__controls--align-left   { justify-content: flex-start; }
  .studio-hotspot-gallery__controls--align-center { justify-content: center; }
  .studio-hotspot-gallery__controls--align-right  { justify-content: flex-end; }

  .studio-hotspot-gallery__controls--top    { margin-bottom: 16px; }
  .studio-hotspot-gallery__controls--bottom { margin-top: 16px; }

  /* ---- Item / media / pins ---- */
  .studio-hotspot-gallery__item {
    position: relative;
  }

  .studio-hotspot-gallery__media {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
  }

  .studio-hotspot-gallery__img,
  .studio-hotspot-gallery__placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-hotspot-gallery__pins {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
  }

  /* ---- Dot ---- */
  .studio-hotspot-gallery__dot-wrap {
    position: absolute;
    left: var(--dot-x);
    top: var(--dot-y);
    transform: translate(-50%, -50%);
    z-index: 10;
    pointer-events: all;
  }

  .studio-hotspot-gallery__dot {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    transition: transform 0.2s ease, background 0.2s ease;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
  }

  .studio-hotspot-gallery__dot-ring {
    position: absolute;
    inset: -6px;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, 0.7);
    animation: studio-hg-pulse 2s ease infinite;
    pointer-events: none;
  }

  @keyframes studio-hg-pulse {
    0%   { transform: scale(1); opacity: 0.8; }
    50%  { transform: scale(1.25); opacity: 0.2; }
    100% { transform: scale(1); opacity: 0.8; }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-hotspot-gallery__dot-ring { animation: none; }
  }

  .studio-hotspot-gallery__dot--active {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
    transform: scale(1.1);
  }

  .studio-hotspot-gallery__dot--active .studio-hotspot-gallery__dot-ring {
    animation: none;
    opacity: 0;
  }

  /* ---- Card ---- */
  .studio-hotspot-gallery__card {
    position: absolute;
    width: 220px;
    height: 280px;
    border-radius: var(--studio-elements-radius);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.22), 0 2px 8px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease, visibility 0.22s ease;
    z-index: 30;
    overflow: hidden;
  }

  .studio-hotspot-gallery__card--open {
    visibility: visible;
    opacity: 1;
    pointer-events: all;
  }

  .studio-hotspot-gallery__card-view {
    position: absolute;
    inset: 0;
  }

  .studio-hotspot-gallery__card-view--mobile {
    display: none;
  }

  .studio-hotspot-gallery__card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.5s ease;
  }

  @media (hover: hover) {
    .studio-hotspot-gallery__card:hover .studio-hotspot-gallery__card-img {
      transform: scale(1.05);
    }
  }

  .studio-hotspot-gallery__card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to bottom,
      transparent 30%,
      rgba(0, 0, 0, 0.75) 100%
    );
    z-index: 1;
  }

  .studio-hotspot-gallery__card-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 16px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .studio-hotspot-gallery__card-type {
    font-size: 0.5625rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
    display: block;
  }

  .studio-hotspot-gallery__card-name {
    font-family: var(--studio-font-heading-family);
    font-size: 0.8125rem;
    font-weight: 700;
    color: #fff;
    text-transform: var(--studio-heading-transform);
    letter-spacing: var(--studio-heading-letter-spacing);
    line-height: 1.25;
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 8px;
  }

  .studio-hotspot-gallery__card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
  }

  .studio-hotspot-gallery__card-pricing {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .studio-hotspot-gallery__card-price {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
  }

  .studio-hotspot-gallery__card-compare {
    font-size: 0.6875rem;
    color: rgba(255, 255, 255, 0.55);
    text-decoration: line-through;
    font-weight: 400;
    line-height: 1;
  }

  .studio-hotspot-gallery__card-atc {
    padding: 8px 12px;
    font-size: 0.625rem;
    letter-spacing: 0.12em;
    gap: 5px;
    border-radius: 999px;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.95);
    color: var(--studio-color-text);
    border-color: transparent;
    white-space: nowrap;
  }

  @media (hover: hover) {
    .studio-hotspot-gallery__card-atc:hover {
      background: #fff;
      opacity: 1;
    }
  }

  .studio-hotspot-gallery__card-close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 26px;
    height: 26px;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border-radius: 999px;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    padding: 0;
    z-index: 3;
    transition: background 0.15s ease;
  }

  @media (hover: hover) {
    .studio-hotspot-gallery__card-close:hover {
      background: rgba(0, 0, 0, 0.7);
    }
  }

  /* ---- Mobile ---- */
  @media (max-width: 768px) {
    /* Posizioni mobile dei dot: override SOLO se l'item-genitore ha foto mobile.
       Distinto da .__card--has-mobile (toggle prodotto). Senza --item--has-mobile
       resta la regola base .__dot-wrap (posizione desktop ereditata). */
    .studio-hotspot-gallery__item--has-mobile .studio-hotspot-gallery__dot-wrap {
      left: var(--dot-x-m);
      top: var(--dot-y-m);
    }

    .studio-hotspot-gallery__card {
      width: 190px;
      height: 240px;
    }

    /* Toggle prodotto mobile: classe DISTINTA .__card--has-mobile sulla card. */
    .studio-hotspot-gallery__card--has-mobile .studio-hotspot-gallery__card-view--desktop {
      display: none;
    }

    .studio-hotspot-gallery__card--has-mobile .studio-hotspot-gallery__card-view--mobile {
      display: block;
    }
  }
/* END_SECTION:hotspot-gallery */

/* START_SECTION:image-heading (INDEX:40) */
.studio-image-heading__panel {
    background-color: var(--studio-color-bg);
    padding-block: clamp(2rem, 7vw, 5rem);
  }
  .studio-image-heading__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    color: var(--studio-color-text);
    line-height: 0.9;
    letter-spacing: -0.02em;
    margin: 0;
    overflow-wrap: break-word;
  }
/* END_SECTION:image-heading */

/* START_SECTION:image-hotspot (INDEX:41) */
.studio-hotspot__stage {
    position: relative;
    width: 100%;
  }

  .studio-hotspot__media {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .studio-hotspot__img {
    width: 100%;
    display: block;
    max-height: 680px;
    object-fit: cover;
  }

  .studio-hotspot__placeholder {
    width: 100%;
    max-height: 680px;
  }

  .studio-hotspot__overlay {
    position: absolute;
    inset: 0;
    background: var(--studio-color-overlay);
    opacity: calc(var(--studio-overlay-opacity) * 0.5);
    pointer-events: none;
  }

  /* Head base */
  .studio-hotspot__head {
    z-index: 5;
  }

  .studio-hotspot__head--align-center { text-align: center; }
  .studio-hotspot__head--align-right  { text-align: right; }

  /* Inside: sovrapposto sull'immagine. Posizione verticale via --valign-* (gap fisso dai bordi). */
  .studio-hotspot__head--inside {
    position: absolute;
    left: 0;
    right: 0;
    padding: 48px var(--studio-section-padding);
    pointer-events: none;
  }

  .studio-hotspot__head--inside.studio-hotspot__head--valign-top {
    top: 0;
  }

  .studio-hotspot__head--inside.studio-hotspot__head--valign-center {
    top: 50%;
    transform: translateY(-50%);
  }

  .studio-hotspot__head--inside.studio-hotspot__head--valign-bottom {
    bottom: 0;
  }

  .studio-hotspot__head--inside .studio-hotspot__eyebrow {
    color: rgba(255, 255, 255, 0.7);
  }

  .studio-hotspot__head--inside .studio-hotspot__heading {
    color: #fff;
  }

  /* Outside: sopra l'immagine, colori dello schema */
  .studio-hotspot__head--outside {
    padding-bottom: 28px;
  }

  .studio-hotspot__head--outside .studio-hotspot__eyebrow {
    color: var(--studio-color-accent-3);
  }

  .studio-hotspot__head--outside .studio-hotspot__heading {
    color: var(--studio-color-text);
  }

  .studio-hotspot__eyebrow {
    margin-bottom: 10px;
  }

  .studio-hotspot__heading {
    margin: 0;
  }

  .studio-hotspot__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-hotspot__pins {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
  }

  .studio-hotspot__dot-wrap {
    position: absolute;
    left: var(--dot-x);
    top: var(--dot-y);
    transform: translate(-50%, -50%);
    z-index: 10;
    pointer-events: all;
  }

  .studio-hotspot__dot {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    transition: transform 0.2s ease, background 0.2s ease;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
  }

  .studio-hotspot__dot-ring {
    position: absolute;
    inset: -6px;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, 0.7);
    animation: studio-pulse 2s ease infinite;
    pointer-events: none;
  }

  @keyframes studio-pulse {
    0%   { transform: scale(1); opacity: 0.8; }
    50%  { transform: scale(1.25); opacity: 0.2; }
    100% { transform: scale(1); opacity: 0.8; }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-hotspot__dot-ring { animation: none; }
  }

  .studio-hotspot__dot--active {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
    transform: scale(1.1);
  }

  .studio-hotspot__dot--active .studio-hotspot__dot-ring {
    animation: none;
    opacity: 0;
  }

  .studio-hotspot__card {
    position: absolute;
    width: 220px;
    height: 280px;
    border-radius: var(--studio-elements-radius);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.22), 0 2px 8px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease, visibility 0.22s ease;
    z-index: 30;
    overflow: hidden;
  }

  .studio-hotspot__card--open {
    visibility: visible;
    opacity: 1;
    pointer-events: all;
  }

  .studio-hotspot__card-view {
    position: absolute;
    inset: 0;
  }

  .studio-hotspot__card-view--mobile {
    display: none;
  }

  .studio-hotspot__card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.5s ease;
  }

  @media (hover: hover) {
    .studio-hotspot__card:hover .studio-hotspot__card-img {
      transform: scale(1.05);
    }
  }

  .studio-hotspot__card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to bottom,
      transparent 30%,
      rgba(0, 0, 0, 0.75) 100%
    );
    z-index: 1;
  }

  .studio-hotspot__card-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 16px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .studio-hotspot__card-type {
    font-size: 0.5625rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
    display: block;
  }

  .studio-hotspot__card-name {
    font-family: var(--studio-font-heading-family);
    font-size: 0.8125rem;
    font-weight: 700;
    color: #fff;
    text-transform: var(--studio-heading-transform);
    letter-spacing: var(--studio-heading-letter-spacing);
    line-height: 1.25;
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 8px;
  }

  .studio-hotspot__card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
  }

  .studio-hotspot__card-pricing {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .studio-hotspot__card-price {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
  }

  .studio-hotspot__card-compare {
    font-size: 0.6875rem;
    color: rgba(255, 255, 255, 0.55);
    text-decoration: line-through;
    font-weight: 400;
    line-height: 1;
  }

  .studio-hotspot__card-atc {
    padding: 8px 12px;
    font-size: 0.625rem;
    letter-spacing: 0.12em;
    gap: 5px;
    border-radius: 999px;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.95);
    color: var(--studio-color-text);
    border-color: transparent;
    white-space: nowrap;
  }

  @media (hover: hover) {
    .studio-hotspot__card-atc:hover {
      background: #fff;
      opacity: 1;
    }
  }

  .studio-hotspot__card-close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 26px;
    height: 26px;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border-radius: 999px;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    padding: 0;
    z-index: 3;
    transition: background 0.15s ease;
  }

  @media (hover: hover) {
    .studio-hotspot__card-close:hover {
      background: rgba(0, 0, 0, 0.7);
    }
  }

  @media (max-width: 768px) {
    .studio-hotspot__head--inside {
      padding: 32px 24px;
    }

    .studio-hotspot__dot-wrap {
      left: var(--dot-x-m, var(--dot-x));
      top: var(--dot-y-m, var(--dot-y));
    }

    .studio-hotspot__card {
      width: 190px;
      height: 240px;
    }

    .studio-hotspot__card--has-mobile .studio-hotspot__card-view--desktop {
      display: none;
    }

    .studio-hotspot__card--has-mobile .studio-hotspot__card-view--mobile {
      display: block;
    }
  }
/* END_SECTION:image-hotspot */

/* START_SECTION:logo-list (INDEX:42) */
.studio-logo-list__head {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 2.5rem;
  }

  .studio-logo-list__eyebrow {
    margin: 0;
    color: var(--studio-color-accent-3);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .studio-logo-list__heading {
    margin: 0;
    color: var(--studio-color-text);
    line-height: 1.1;
  }

  .studio-logo-list__card {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .studio-logo-list__media {
    display: block;
    width: var(--ll-scale, 100%);
    border-radius: var(--studio-elements-radius);
    overflow: hidden;
  }
  .studio-logo-list__media img {
    display: block;
  }

  .studio-logo-list__placeholder-svg {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    opacity: 0.5;
  }

  /* Auto-scroll (marquee): clones hidden by default; the auto branch shows them id-scoped per breakpoint. */
  .studio-logo-list__card--clone {
    display: none;
  }

  @keyframes studio-logo-list-marquee-left {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-50%, 0, 0); }
  }
  @keyframes studio-logo-list-marquee-right {
    from { transform: translate3d(-50%, 0, 0); }
    to   { transform: translate3d(0, 0, 0); }
  }
/* END_SECTION:logo-list */

/* START_SECTION:lookbook (INDEX:43) */
.studio-lookbook__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 32px;
    gap: 24px;
    flex-wrap: wrap;
  }

  .studio-lookbook__eyebrow {
    margin-bottom: 10px;
  }

  .studio-lookbook__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin: 0;
  }

  .studio-lookbook__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-lookbook__view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--studio-color-text);
    border-bottom: 1px solid var(--studio-color-text);
    padding-bottom: 2px;
    flex-shrink: 0;
    transition: opacity 0.2s;
  }

  @media (hover: hover) {
    .studio-lookbook__view-all:hover { opacity: 0.7; }
  }

  .studio-lookbook__item {
    display: block;
    position: relative;
    overflow: hidden;
    background: var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
  }

  .studio-lookbook__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
  }

  .studio-lookbook__placeholder {
    width: 100%;
    height: 100%;
  }

  @media (hover: hover) {
    .studio-lookbook__item:hover .studio-lookbook__img {
      transform: scale(1.04);
    }
  }

  .studio-lookbook__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
  }

  @media (hover: hover) {
    .studio-lookbook__item:hover .studio-lookbook__video {
      transform: scale(1.04);
    }
  }

  /* Loop: nasconde il video per chi preferisce meno movimento → resta il poster */
  @media (prefers-reduced-motion: reduce) {
    .studio-lookbook__video--loop {
      display: none;
    }
  }

  /* Controls: parte trasparente (si vede la cover); si rivela al play. Nessun autoplay, nessuna regola reduced-motion. */
  .studio-lookbook__video--controls {
    opacity: 0;
    transition: opacity 0.35s ease, transform 0.6s ease;
  }

  .studio-lookbook__item.is-playing .studio-lookbook__video--controls {
    opacity: 1;
  }

  .studio-lookbook__link-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
  }

  .studio-lookbook__playtoggle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border: none;
    border-radius: 50%;
    background: var(--studio-color-bg);
    background: color-mix(in srgb, var(--studio-color-bg) 82%, transparent);
    color: var(--studio-color-text);
    cursor: pointer;
    transition: transform 0.2s ease, background 0.2s ease;
  }

  @media (hover: hover) {
    .studio-lookbook__playtoggle:hover {
      transform: translate(-50%, -50%) scale(1.08);
      background: var(--studio-color-bg);
    }
  }

  .studio-lookbook__playtoggle:focus-visible {
    outline: 2px solid var(--studio-color-text);
    outline-offset: 3px;
  }

  .studio-lookbook__playtoggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .studio-lookbook__playtoggle-icon svg {
    width: auto;
    height: 18px;
    fill: currentColor;
  }

  .studio-lookbook__playtoggle-icon--pause {
    display: none;
  }

  .studio-lookbook__item.is-playing .studio-lookbook__playtoggle-icon--play {
    display: none;
  }

  .studio-lookbook__item.is-playing .studio-lookbook__playtoggle-icon--pause {
    display: inline-flex;
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-lookbook__video--controls,
    .studio-lookbook__playtoggle {
      transition: none;
    }
  }

  .studio-lookbook__num {
    position: absolute;
    pointer-events: none;
    top: 12px;
    left: 12px;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 5px 9px;
    border-radius: var(--studio-elements-radius);
    line-height: 1;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }
/* END_SECTION:lookbook */

/* START_SECTION:main-gift-card (INDEX:44) */
.studio-gift-card {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-left: 24px;
    padding-right: 24px;
    color: var(--studio-color-text);
    background: var(--studio-color-bg);
  }

  .studio-gift-card__header {
    width: 100%;
    display: flex;
    justify-content: center;
    padding-bottom: 40px;
  }
  .studio-gift-card__logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
  }
  .studio-gift-card__logo-img {
    display: block;
    height: auto;
    max-width: 100%;
  }
  .studio-gift-card__logo-text {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.25rem;
    letter-spacing: 0.04em;
    color: var(--studio-color-text);
  }
  .studio-gift-card__logo:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 4px;
  }

  .studio-gift-card__inner {
    width: 100%;
    max-width: 560px;
    margin: auto;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .studio-gift-card__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.1;
    margin: 0;
    color: var(--studio-color-text);
  }

  .studio-gift-card__visual {
    width: 100%;
    aspect-ratio: 8 / 5;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-accent-2);
  }
  .studio-gift-card__visual--vertical {
    aspect-ratio: 5 / 8;
    max-width: 340px;
    align-self: center;
  }
  .studio-gift-card__visual-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .studio-gift-card__visual-icon {
    display: inline-flex;
    color: var(--studio-color-text);
  }
  .studio-gift-card__visual-icon svg {
    width: 64px;
    height: 64px;
  }

  .studio-gift-card__balance {
    font-size: 1.0625rem;
    font-weight: 500;
    margin: 0;
    color: var(--studio-color-text);
  }

  .studio-gift-card__code-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
  }
  .studio-gift-card__code {
    flex: 1;
    min-width: 0;
    text-align: center;
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-size: 1.125rem;
    letter-spacing: 0.18em;
    padding: 14px 16px;
    color: var(--studio-color-text);
    background: var(--studio-color-accent-2);
    border: 1px solid var(--studio-color-accent-3);
    border-radius: var(--studio-elements-radius);
  }
  .studio-gift-card__copy.is-copied {
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    border-color: var(--studio-color-text);
  }

  .studio-gift-card__text {
    font-size: 0.9375rem;
    line-height: 1.6;
    margin: 0;
    color: var(--studio-color-accent-3);
  }
  .studio-gift-card__expired {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--studio-color-text);
  }
  .studio-gift-card__expired-icon {
    display: inline-flex;
  }
  .studio-gift-card__expired-icon svg {
    width: 18px;
    height: 18px;
  }

  .studio-gift-card__wallet img {
    display: block;
  }

  .studio-gift-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 4px;
  }

  .studio-gift-card__code:focus-visible,
  .studio-gift-card__copy:focus-visible,
  .studio-gift-card__wallet:focus-visible,
  .studio-gift-card__actions a:focus-visible,
  .studio-gift-card__actions button:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (max-width: 600px) {
    .studio-gift-card__code-row {
      flex-direction: column;
    }
    .studio-gift-card__copy {
      width: 100%;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-gift-card__copy {
      transition: none;
    }
  }

  @media print {
    .studio-gift-card__no-print {
      display: none !important;
    }
  }
/* END_SECTION:main-gift-card */

/* START_SECTION:map (INDEX:45) */
.studio-map__frame {
    position: relative;
    width: 100%;
    overflow: hidden;
  }

  .studio-map__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
  .studio-map__image,
  .studio-map__iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
    display: block;
  }
  .studio-map__tint {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
  }

  /* Placeholder: light grid with a centred pin */
  .studio-map__placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-color: var(--studio-color-bg);
    background-image:
      linear-gradient(var(--studio-color-accent-2) 1px, transparent 1px),
      linear-gradient(90deg, var(--studio-color-accent-2) 1px, transparent 1px);
    background-size: 32px 32px;
    background-position: center center;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .studio-map__placeholder-pin {
    display: inline-flex;
    color: var(--studio-color-text);
  }
  .studio-map__placeholder-pin svg {
    width: auto;
    height: 48px;
  }
  .studio-map__placeholder-label {
    position: absolute;
    bottom: 16px;
    right: 20px;
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
  }

  /* Overlaid address card */
  .studio-map__card {
    position: absolute;
    bottom: 32px;
    left: 32px;
    right: auto;
    z-index: 2;
    max-width: 600px;
    background: var(--studio-color-bg);
    box-shadow: var(--studio-shadow);
    border-radius: var(--studio-elements-radius);
    padding: 24px 28px;
    display: flex;
    align-items: center;
    gap: 24px;
  }
  .studio-map__card--left   { left: 32px; right: auto; }
  .studio-map__card--center { left: 50%; right: auto; transform: translateX(-50%); }
  .studio-map__card--right  { right: 32px; left: auto; }

  .studio-map__card-icon {
    width: 48px;
    height: 48px;
    border-radius: 999px;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .studio-map__card-icon svg { width: 22px; height: 22px; }
  /* Fill-type theme icons (paths carry fill-rule) don't use currentColor by
     default; force it so the icon follows color_card_icon. Stroke icons use
     fill="none" + stroke="currentColor" and are intentionally left untouched. */
  .studio-map__card-icon svg [fill-rule],
  .studio-map__card-icon svg path[fill-rule] {
    fill: currentColor;
  }

  .studio-map__card-text { flex: 1; min-width: 0; }
  .studio-map__card-eyebrow {
    font-size: 0.6875rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-accent-3);
    margin: 0 0 6px;
  }
  .studio-map__card-address {
    font-family: var(--studio-font-heading-family);
    font-size: 1.125rem;
    line-height: 1.4;
    color: var(--studio-color-text);
    margin: 0;
  }

  .studio-map__btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
  }
  .studio-map__btn svg { width: 14px; height: 14px; }

  @media (max-width: 768px) {
    .studio-map__card {
      left: 16px;
      right: 16px;
      bottom: 16px;
      max-width: none;
      transform: none;
      flex-wrap: wrap;
      padding: 20px;
    }
    .studio-map__card--center { left: 16px; right: 16px; transform: none; }
    .studio-map__card--right  { left: 16px; right: 16px; }
    .studio-map__btn { width: 100%; justify-content: center; }
  }
/* END_SECTION:map */

/* START_SECTION:marquee (INDEX:46) */
.studio-marquee-section {
    overflow: hidden;
  }

  .studio-marquee-row {
    overflow: hidden;
    border-bottom: 1px solid var(--studio-color-accent-2);
  }

  .studio-marquee-row:first-child {
    border-top: 1px solid var(--studio-color-accent-2);
  }

  .studio-marquee-section.studio-section--dark .studio-marquee-row {
    border-color: rgba(255, 255, 255, 0.1);
  }

  .studio-marquee-row--empty {
    height: 80px;
  }

  .studio-marquee-row__track {
    display: flex;
    width: max-content;
    padding: 20px 0;
    /* Stabilize the compositor layer so the looping transform doesn't re-rasterize the text (anti-flicker) */
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .studio-marquee-row__track--left {
    animation: studio-marquee-left var(--marquee-speed, 30s) linear infinite;
  }

  .studio-marquee-row__track--right {
    animation: studio-marquee-right var(--marquee-speed, 30s) linear infinite;
  }

  @keyframes studio-marquee-left {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-50%, 0, 0); }
  }

  @keyframes studio-marquee-right {
    from { transform: translate3d(-50%, 0, 0); }
    to   { transform: translate3d(0, 0, 0); }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-marquee-row__track {
      animation: none !important;
    }
  }

  .studio-marquee-row__item {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    padding: 0 8px;
    line-height: 1;
    color: var(--studio-color-text);
  }

  .studio-section--dark .studio-marquee-row__item {
    color: var(--studio-color-bg);
  }

  .studio-marquee-row__sep {
    margin: 0 20px;
    opacity: 0.5;
  }

  .studio-marquee-row--sm .studio-marquee-row__item { font-size: calc(1.5rem * var(--studio-heading-size-scale)); }
  .studio-marquee-row--md .studio-marquee-row__item { font-size: calc(2.5rem * var(--studio-heading-size-scale)); }
  .studio-marquee-row--lg .studio-marquee-row__item { font-size: calc(4rem   * var(--studio-heading-size-scale)); }
  .studio-marquee-row--xl .studio-marquee-row__item { font-size: calc(6rem   * var(--studio-heading-size-scale)); }

  @media (max-width: 768px) {
    .studio-marquee-row--lg .studio-marquee-row__item { font-size: calc(2.5rem * var(--studio-heading-size-scale)); }
    .studio-marquee-row--xl .studio-marquee-row__item { font-size: calc(3.5rem * var(--studio-heading-size-scale)); }
  }
/* END_SECTION:marquee */

/* START_SECTION:material-care (INDEX:47) */
.studio-material-care__inner { display: flex; flex-direction: column; }
  .studio-material-care__head { display: flex; flex-direction: column; gap: 0.75rem; }
  .studio-material-care__eyebrow { font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--studio-color-accent-3); margin: 0; }
  .studio-material-care__heading { color: var(--studio-color-text); line-height: 1.05; margin: 0; }
  .studio-material-care__sub { color: var(--studio-color-text); max-width: 46ch; }
  .studio-material-care__sub p { margin: 0; }

  .studio-material-care__divider { height: 1px; background: var(--mc-border); margin: 2.5rem 0; }

  .studio-material-care__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3.5rem; align-items: start; }
  .studio-material-care__left { display: flex; flex-direction: column; gap: 2rem; }

  .studio-material-care__bar { display: flex; width: 100%; height: 54px; border-radius: var(--studio-elements-radius); overflow: hidden; background: var(--mc-border); }
  .studio-material-care__bar-seg { height: 100%; min-width: 2px; width: var(--mc-seg-w, 0%); transition: width 2s cubic-bezier(0.22, 1, 0.36, 1); }
  /* Fill animation: con JS i segmenti partono da 0 (html.js e' impostato nel <head> prima del paint -> niente flash) e si riempiono quando la barra entra in vista (classe is-filled aggiunta dalla IIFE). Senza JS: barra piena subito. */
  html.js .studio-material-care__bar .studio-material-care__bar-seg { width: 0; min-width: 0; }
  html.js .studio-material-care__bar.is-filled .studio-material-care__bar-seg { width: var(--mc-seg-w, 0%); min-width: 2px; }
  @media (prefers-reduced-motion: reduce) {
    html.js .studio-material-care__bar .studio-material-care__bar-seg { width: var(--mc-seg-w, 0%); min-width: 2px; transition: none; }
  }

  .studio-material-care__materials { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
  .studio-material-care__material { display: flex; align-items: center; gap: 0.85rem; padding: 0.85rem 0; border-bottom: 1px solid var(--mc-border); }
  .studio-material-care__material:last-child { border-bottom: 0; }
  .studio-material-care__swatch { flex: none; width: 14px; height: 14px; border-radius: 4px; }
  .studio-material-care__material-text { display: flex; flex-direction: column; gap: 0.1rem; flex: 1 1 auto; min-width: 0; }
  .studio-material-care__material-name { font-weight: 700; font-size: 0.95rem; color: var(--studio-color-text); }
  .studio-material-care__material-sub { font-size: 0.8125rem; color: var(--studio-color-accent-3); }
  .studio-material-care__material-pct { font-weight: 700; font-size: 1rem; color: var(--studio-color-text); font-variant-numeric: tabular-nums; }

  .studio-material-care__specs { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--mc-border); border-left: 1px solid var(--mc-border); }
  .studio-material-care__spec { display: flex; flex-direction: column; gap: 0.4rem; padding: 1.25rem 1.5rem; border-right: 1px solid var(--mc-border); border-bottom: 1px solid var(--mc-border); }
  .studio-material-care__spec-label { font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--studio-color-accent-3); }
  .studio-material-care__spec-value { font-weight: 700; font-size: 1.05rem; color: var(--studio-color-text); }

  .studio-material-care__care-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .studio-material-care__badge { display: flex; align-items: flex-start; gap: 0.85rem; padding: 1.15rem 1.25rem; border: 1px solid var(--mc-border); border-radius: var(--studio-elements-radius); }
  .studio-material-care__badge-icon { flex: none; color: var(--studio-color-text); line-height: 0; margin-top: 1px; }
  .studio-material-care__badge-icon svg { width: 22px; height: 22px; display: block; }
  .studio-material-care__badge-icon svg [fill-rule] { fill: currentColor; }
  .studio-material-care__badge-text { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }
  .studio-material-care__badge-title { font-weight: 700; font-size: 0.9rem; color: var(--studio-color-text); }
  .studio-material-care__badge-desc { font-size: 0.8125rem; line-height: 1.45; color: var(--studio-color-accent-3); }

  @media (max-width: 768px) {
    .studio-material-care__grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .studio-material-care__divider { margin: 2rem 0; }
    .studio-material-care__care-grid { grid-template-columns: 1fr; }
  }
/* END_SECTION:material-care */

/* START_SECTION:newsletter (INDEX:48) */
.studio-newsletter__inner {
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
  }

  .studio-newsletter__eyebrow {
    margin: 0 0 12px;
    color: var(--studio-color-accent-3);
  }

  .studio-newsletter__heading {
    margin: 0 0 12px;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.1;
    color: var(--studio-color-text);
  }

  .studio-newsletter__subheading {
    margin: 0 0 24px;
    color: var(--studio-color-text);
    font-size: 0.9375rem;
    line-height: 1.6;
  }

  .studio-newsletter__form {
    width: 100%;
  }

  .studio-newsletter__form .studio-form__errors {
    margin-bottom: 16px;
    text-align: left;
  }

  .studio-newsletter__row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: stretch;
  }

  .studio-newsletter__input {
    flex: 1 1 240px;
    width: auto;
    min-width: 0;
  }

  .studio-newsletter__btn {
    flex: 0 0 auto;
    justify-content: center;
    white-space: nowrap;
  }

  .studio-newsletter__success {
    margin: 0;
    color: var(--studio-color-text);
    font-size: 1rem;
    font-weight: 500;
  }

  /* Visually hidden but available to screen readers (theme has no global utility). */
  .studio-newsletter__sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  @media (max-width: 600px) {
    .studio-newsletter__row {
      flex-direction: column;
    }

    .studio-newsletter__input {
      flex: 0 0 auto;
      width: 100%;
    }

    .studio-newsletter__btn {
      width: 100%;
    }
  }

  /* ============================================================
     Optional image — two-column layout (opt-in: appears only when
     an image is set). No image → the single-column block above is
     untouched. Desktop position left/right and mobile position
     top/bottom are driven by modifier classes; the two media
     queries are mutually exclusive so the axes never collide. */
  .studio-newsletter__media {
    width: 100%;
  }
  .studio-newsletter__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--studio-elements-radius);
  }
  /* Fixed-shape ratios cover-crop; "original" keeps the natural ratio above. */
  .studio-newsletter__media--ratio-square { aspect-ratio: 1 / 1; }
  .studio-newsletter__media--ratio-portrait { aspect-ratio: 3 / 4; }
  .studio-newsletter__media--ratio-landscape { aspect-ratio: 4 / 3; }
  .studio-newsletter__media--ratio-square .studio-newsletter__image,
  .studio-newsletter__media--ratio-portrait .studio-newsletter__image,
  .studio-newsletter__media--ratio-landscape .studio-newsletter__image {
    height: 100%;
    object-fit: cover;
  }

  .studio-newsletter__layout--has-media {
    display: flex;
    max-width: var(--studio-page-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--studio-section-padding);
    padding-right: var(--studio-section-padding);
  }

  @media (min-width: 769px) {
    .studio-newsletter__layout--has-media {
      flex-direction: row;
      align-items: center;
      gap: 48px;
    }
    .studio-newsletter__layout--has-media.studio-newsletter__layout--desktop-right {
      flex-direction: row-reverse;
    }
    .studio-newsletter__layout--has-media > .studio-newsletter__media,
    .studio-newsletter__layout--has-media > .studio-newsletter__inner {
      flex: 1 1 0;
      min-width: 0;
    }
  }

  @media (max-width: 768px) {
    .studio-newsletter__layout--has-media {
      flex-direction: column;
      gap: 32px;
    }
    .studio-newsletter__layout--has-media.studio-newsletter__layout--mobile-bottom {
      flex-direction: column-reverse;
    }
  }
/* END_SECTION:newsletter */

/* START_SECTION:password (INDEX:50) */
.studio-password {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background-color: var(--studio-color-bg);
    color: var(--studio-color-text);
  }

  .studio-password__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px 24px;
    padding: 20px 24px;
    background: var(--studio-color-bg);
    border-bottom: 1px solid var(--studio-color-accent-2);
    position: relative;
    z-index: 3;
  }
  .studio-password__logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
  }
  .studio-password__logo-img {
    display: block;
    height: auto;
    max-width: 100%;
  }
  .studio-password__logo-text {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.25rem;
    letter-spacing: 0.04em;
    color: var(--studio-color-text);
  }
  .studio-password__header .studio-password__gate { width: auto; }
  .studio-password__header .studio-password__label {
    /* keep the label compact inside the header */
    margin-bottom: 6px;
  }

  /* Transparent header: the background media shows through. Light text by default;
     override via "Custom header colors" -> Header text for light backgrounds. */
  .studio-password--header-transparent .studio-password__header {
    background: transparent;
    border-bottom: none;
  }
  .studio-password--header-transparent .studio-password__logo-text,
  .studio-password--header-transparent .studio-password__label {
    color: #fff;
  }

  .studio-password__body {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    padding: 48px 24px;
  }
  .studio-password--full {
    min-height: 100vh;
  }
  .studio-password--full .studio-password__body {
    min-height: 0;
  }

  .studio-password__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: cover;
    background-position: center;
  }
  .studio-password__bg-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
  }
  @media (max-width: 768px) {
    .studio-password--has-mobile-video .studio-password__bg-video--desktop { display: none; }
  }
  @media (min-width: 769px) {
    .studio-password__bg-video--mobile { display: none; }
  }
  .studio-password__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    opacity: 0.4;
    pointer-events: none;
    z-index: 2;
  }

  .studio-password__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 540px;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  /* Follow the body's horizontal alignment for inner content (column => pos_y=vertical, pos_x=horizontal) */
  .studio-password__body { flex-direction: column; }
  .studio-password__inner {
    align-items: inherit;
  }

  .studio-password__icon {
    display: inline-flex;
    color: var(--studio-color-text);
  }
  .studio-password__icon svg {
    width: 40px;
    height: 40px;
  }

  .studio-password__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.05;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-password__title--small  { font-size: calc(2rem * var(--studio-heading-size-scale)); }
  .studio-password__title--medium { font-size: calc(3rem * var(--studio-heading-size-scale)); }
  .studio-password__title--large  { font-size: calc(4.5rem * var(--studio-heading-size-scale)); }
  .studio-password__title--xlarge { font-size: calc(6rem * var(--studio-heading-size-scale)); }

  .studio-password__text {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--studio-color-accent-3);
  }
  .studio-password__text p { margin: 0 0 0.8em; }
  .studio-password__text p:last-child { margin-bottom: 0; }
  .studio-password__text a {
    color: var(--studio-color-text);
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  .studio-password__text strong { font-weight: 600; }

  .studio-password__message {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--studio-color-accent-3);
    margin: 0 0 16px;
  }

  .studio-password__newsletter,
  .studio-password__gate {
    width: 100%;
  }

  .studio-password__label {
    display: block;
    font-size: 0.6875rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--studio-color-text);
  }

  .studio-password__field {
    display: flex;
    gap: 10px;
    width: 100%;
  }
  .studio-password__input {
    flex: 1;
    min-width: 0;
    padding: 13px 16px;
    font-size: 0.9375rem;
    color: var(--studio-color-text);
    background: var(--studio-color-bg);
    border: 1px solid var(--studio-color-accent-3);
    border-radius: var(--studio-elements-radius);
  }
  .studio-password__input::placeholder {
    color: var(--studio-color-accent-3);
  }

  .studio-password__btn {
    flex-shrink: 0;
    padding: 13px 24px;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    cursor: pointer;
    color: var(--studio-color-bg);
    background: var(--studio-color-text);
    border: 1px solid var(--studio-color-text);
    border-radius: var(--studio-btn-radius);
    transition: opacity 0.2s ease;
  }
  @media (hover: hover) {
    .studio-password__btn:hover { opacity: 0.85; }
  }

  .studio-password__errors {
    font-size: 0.875rem;
    color: #d12;
    margin-bottom: 14px;
  }
  .studio-password__errors ul { margin: 0; padding-left: 18px; }

  .studio-password__success {
    font-size: 0.9375rem;
    font-weight: 500;
    margin: 0 0 14px;
    color: var(--studio-color-text);
  }

  :where(
    .studio-password__input,
    .studio-password__btn,
    .studio-password__text a
  ):focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (max-width: 600px) {
    .studio-password__field {
      flex-direction: column;
    }
    .studio-password__btn {
      width: 100%;
    }
    .studio-password__title--large  { font-size: calc(3rem * var(--studio-heading-size-scale)); }
    .studio-password__title--xlarge { font-size: calc(3.5rem * var(--studio-heading-size-scale)); }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-password__btn {
      transition: none;
    }
  }

  /* Countdown — inlined from studio.css (.studio-countdown*) because this layout does not load studio.css.
     Colours via --cd-* with --studio-* fallbacks (provided by css-variables). Keep in sync if studio.css changes. */
  .studio-countdown {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .studio-countdown__num {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 2.5rem;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--cd-num, var(--studio-color-text));
    display: block;
  }
  .studio-countdown__label {
    font-size: 0.625rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--cd-label, var(--studio-color-accent-3));
    display: block;
    margin-top: 4px;
  }
  .studio-countdown__expired {
    font-size: 0.875rem;
    color: var(--cd-label, var(--studio-color-accent-3));
    margin: 0;
    width: 100%;
  }
  .studio-countdown--boxes {
    gap: 12px;
  }
  .studio-countdown--boxes .studio-countdown__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 20px;
    border: 1px solid var(--cd-border, var(--studio-color-accent-2));
    border-radius: var(--studio-elements-radius);
    min-width: 72px;
    background: var(--cd-box-bg, transparent);
    text-align: center;
  }
  .studio-countdown--inline {
    align-items: baseline;
    gap: 8px 16px;
  }
  .studio-countdown--inline .studio-countdown__unit {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap: 4px;
  }
  .studio-countdown--inline .studio-countdown__num {
    font-size: 2rem;
  }
  .studio-countdown--inline .studio-countdown__label {
    margin-top: 0;
    font-size: 0.5625rem;
  }
  .studio-countdown__divider {
    font-family: var(--studio-font-heading-family);
    font-size: 2rem;
    font-weight: 300;
    color: var(--cd-divider, var(--studio-color-accent-2));
    line-height: 1;
    align-self: center;
  }
  @media (max-width: 768px) {
    .studio-countdown--boxes .studio-countdown__unit {
      padding: 12px 14px;
      min-width: 60px;
    }
    .studio-countdown__num {
      font-size: 1.75rem;
    }
    .studio-countdown--inline .studio-countdown__num {
      font-size: 1.5rem;
    }
  }
/* END_SECTION:password */

/* START_SECTION:product-details (INDEX:53) */
/* ===== Product details — statico (layout 2 colonne + sticky desktop; descrizione fissa + accordion condiviso). Niente Liquid qui. ===== */
  .studio-pd__layout {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
  .studio-pd__head { display: flex; flex-direction: column; gap: 12px; }
  .studio-pd--align-center .studio-pd__head { text-align: center; align-items: center; }
  .studio-pd--align-right  .studio-pd__head { text-align: right; align-items: flex-end; }

  .studio-pd__eyebrow { margin: 0; }
  .studio-pd__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: 1.05;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-pd__highlight { color: var(--studio-color-accent-1); }

  .studio-pd__content { display: flex; flex-direction: column; gap: 40px; }
  .studio-pd__description {
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--studio-color-text);
  }
  .studio-pd__description p { margin: 0 0 1em; }
  .studio-pd__description > :last-child { margin-bottom: 0; }

  /* Accordion: componente condiviso .studio-accordion (studio.css/studio.js). Qui solo lo swap icona plus<->close (come la FAQ). */
  .studio-pd__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .studio-pd__icon > *:last-child { display: none; }
  .studio-accordion__item--open .studio-pd__icon > *:first-child { display: none; }
  .studio-accordion__item--open .studio-pd__icon > *:last-child { display: flex; }

  /* Desktop: due colonne; heading sticky SOTTO l'header sticky (offset = altezza header del tema). */
  @media (min-width: 769px) {
    .studio-pd__layout {
      flex-direction: row;
      gap: 64px;
      align-items: flex-start;
    }
    .studio-pd--pos-right .studio-pd__layout { flex-direction: row-reverse; }
    .studio-pd__head { flex: 0 0 40%; }
    .studio-pd__content { flex: 1 1 auto; min-width: 0; }
    .studio-pd--sticky .studio-pd__head {
      position: sticky;
      top: calc(var(--studio-header-height, 80px) + 24px);
    }
  }
/* END_SECTION:product-details */

/* START_SECTION:product-features (INDEX:54) */
/* ===== Product features — statico (layout 2 colonne + sticky desktop, lista feature). Niente Liquid qui. ===== */
  .studio-pf__layout {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
  .studio-pf__head { display: flex; flex-direction: column; gap: 12px; }
  .studio-pf--align-center .studio-pf__head { text-align: center; align-items: center; }
  .studio-pf--align-right  .studio-pf__head { text-align: right; align-items: flex-end; }

  .studio-pf__eyebrow { margin: 0; }
  .studio-pf__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: 1.05;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-pf__highlight { color: var(--studio-color-accent-1); }

  .studio-pf__list { display: flex; flex-direction: column; }
  .studio-pf__row {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 28px 0;
  }
  .studio-pf__row:first-child { padding-top: 0; }
  .studio-pf__row + .studio-pf__row { border-top: 1px solid var(--studio-color-accent-2); }

  .studio-pf__icon-box {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border: 1px solid var(--studio-color-text);
    border-radius: var(--studio-elements-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--studio-color-text);
  }
  .studio-pf__icon-box svg { width: 24px; height: 24px; }
  .studio-pf__icon-img { width: 28px; height: 28px; object-fit: contain; display: block; }

  .studio-pf__row-text { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; min-width: 0; }
  .studio-pf__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.25rem;
    line-height: 1.15;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-pf__desc {
    font-size: 0.9375rem;
    line-height: 1.6;
    font-weight: 300;
    margin: 0;
    color: var(--studio-color-accent-3);
  }

  /* Desktop: due colonne; heading sticky SOTTO l'header sticky (offset = altezza header del tema). */
  @media (min-width: 769px) {
    .studio-pf__layout {
      flex-direction: row;
      gap: 64px;
      align-items: flex-start;
    }
    .studio-pf--pos-right .studio-pf__layout { flex-direction: row-reverse; }
    .studio-pf__head { flex: 0 0 40%; }
    .studio-pf__list { flex: 1 1 auto; min-width: 0; }
    .studio-pf--sticky .studio-pf__head {
      position: sticky;
      top: calc(var(--studio-header-height, 80px) + 24px);
    }
  }
/* END_SECTION:product-features */

/* START_SECTION:product-recommendations (INDEX:55) */
.studio-recs__head {
    margin-bottom: 28px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .studio-recs__head--left   { text-align: left;   align-items: flex-start; }
  .studio-recs__head--center { text-align: center; align-items: center; }
  .studio-recs__head--right  { text-align: right;  align-items: flex-end; }

  .studio-recs__eyebrow {
    margin: 0;
    color: var(--studio-color-accent-3);
  }
  .studio-recs__title { color: var(--studio-color-text); }

  @media (max-width: 768px) {
    .studio-recs__head { margin-bottom: 22px; }
  }

  /* ── Second tab (optional). CSS-only tabs (radio-hack); underline style. ── */
  .studio-recs__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid color-mix(in srgb, var(--studio-color-text) 14%, transparent);
  }
  .studio-recs__tab {
    border-bottom: 2px solid transparent;
    margin: 0 0 -1px;
    padding: 0 0 14px;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--studio-color-text);
    opacity: 0.5;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.2s ease, border-color 0.2s ease;
  }
  .studio-recs__tab:hover { opacity: 0.8; }

  @media (prefers-reduced-motion: reduce) {
    .studio-recs__row { scroll-behavior: auto; }
  }
/* END_SECTION:product-recommendations */

/* START_SECTION:product-spotlight (INDEX:56) */
.studio-product-spotlight {
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }
  .studio-product-spotlight__stage {
    position: relative;
    width: 100%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* z0 sfondo */
  .studio-product-spotlight__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
  }
  .studio-product-spotlight__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .studio-product-spotlight__bg--mobile {
    display: none;
  }

  /* z1 overlay */
  .studio-product-spotlight__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
  }

  /* z2/z3 — layer heading: full-stage, heading all'angolo, DIETRO (decorativi, non interattivi) */
  .studio-product-spotlight__text-layer {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 6vw, 80px);
    pointer-events: none;
  }
  .studio-product-spotlight__text-layer--h1 { z-index: 2; justify-content: flex-start; align-items: flex-start; text-align: left; }
  .studio-product-spotlight__text-layer--h2 { z-index: 3; justify-content: flex-end; align-items: flex-end; text-align: right; }
  .studio-product-spotlight__heading {
    margin: 0;
    max-width: 18ch;
  }

  /* z5 — fila prodotti DAVANTI ai heading. Desktop: flex centrato. Mobile R1: colonna provvisoria. */
  .studio-product-spotlight__row {
    position: relative;
    z-index: 5;
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: clamp(16px, 3vw, 40px);
    padding: clamp(24px, 5vw, 64px);
  }

  /* ---- Colonna prodotto (theme block .__item) ---- */
  .studio-product-spotlight__item {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    max-width: 420px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  /* Lift PER-PRODOTTO all'apertura di un pin: colonna sopra le adiacenti, prodotto sopra la sua card */
  .studio-product-spotlight__item.is-pin-open {
    z-index: 10;
  }
  .studio-product-spotlight__item.is-pin-open .studio-product-spotlight__product {
    z-index: 2;
  }

  /* Area immagine (box di clamp dei pin della colonna) */
  .studio-product-spotlight__product {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .studio-product-spotlight__product-inner {
    position: relative;
    display: inline-block;
    max-width: 100%;
    line-height: 0;
  }
  /* Immagine CONTAIN (cutout intero, niente crop) */
  .studio-product-spotlight__product-img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
  }

  /* Float keyframes: respiro verticale. Ampiezza via --float-amplitude (default 8px). */
  @keyframes studio-ps-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(calc(-1 * var(--float-amplitude, 8px))); }
  }

  /* pin ancorati in % all'IMMAGINE (dentro .__product-inner, seguono lo scaling) */
  .studio-product-spotlight__pins {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
  }
  .studio-product-spotlight__pin {
    position: absolute;
    left: var(--dot-x);
    top: var(--dot-y);
    transform: translate(-50%, -50%);
    z-index: 4;
    pointer-events: auto;
  }
  .studio-product-spotlight__dot {
    position: relative;
    display: block;
    width: 26px;
    height: 26px;
    border: none;
    border-radius: 50%;
    padding: 0;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    transition: transform 0.2s ease;
  }
  .studio-product-spotlight__dot-ring {
    position: absolute;
    inset: -5px;
    border: 2px solid currentColor;
    border-radius: 50%;
    opacity: 0.55;
    animation: studio-ps-pulse 2s ease-out infinite;
  }
  @keyframes studio-ps-pulse {
    0%   { transform: scale(0.8); opacity: 0.55; }
    70%  { transform: scale(1.5); opacity: 0; }
    100% { transform: scale(1.5); opacity: 0; }
  }
  @media (hover: hover) {
    .studio-product-spotlight__dot:hover { transform: scale(1.12); }
  }
  .studio-product-spotlight__dot:focus-visible {
    outline: 2px solid var(--studio-color-text);
    outline-offset: 3px;
  }
  .studio-product-spotlight__dot--active {
    transform: scale(1.1);
  }
  .studio-product-spotlight__dot--active .studio-product-spotlight__dot-ring {
    animation: none;
    opacity: 0;
  }
  @media (prefers-reduced-motion: reduce) {
    .studio-product-spotlight__dot-ring { animation: none; }
  }

  /* card pin (offset parent = .__pin) — posizione finale via JS (clamp sul .__product della colonna) */
  .studio-product-spotlight__card {
    position: absolute;
    left: 0;
    width: 260px;
    max-width: calc(100vw - 32px);
    max-height: 320px;
    overflow-y: auto;
    border-radius: var(--studio-elements-radius);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.28);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
    z-index: 30;
  }
  .studio-product-spotlight__card--open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .studio-product-spotlight__card-view {
    padding: 16px;
  }
  .studio-product-spotlight__card-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    margin-bottom: 12px;
  }
  .studio-product-spotlight__card-heading {
    display: block;
    font-weight: 600;
    font-size: 1rem;
    margin: 0 0 6px;
  }
  .studio-product-spotlight__card-text {
    font-size: 0.875rem;
    line-height: 1.5;
  }
  .studio-product-spotlight__card-text > :first-child { margin-top: 0; }
  .studio-product-spotlight__card-text > :last-child { margin-bottom: 0; }
  .studio-product-spotlight__card-close {
    position: absolute;
    top: 8px;
    right: 8px;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: none;
    border-radius: 50%;
    padding: 0;
    cursor: pointer;
    z-index: 2;
  }
  .studio-product-spotlight__card-close svg {
    width: 14px;
    height: 14px;
  }

  /* ---- Card automatica: barra-link testuale (titolo + prezzo + freccia) ---- */
  .studio-product-spotlight__autocard {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 16px;
    padding: 14px 18px;
    border-radius: var(--studio-btn-radius);
    text-decoration: none;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);
  }
  .studio-product-spotlight__autocard-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
  }
  .studio-product-spotlight__autocard-title {
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.2;
  }
  .studio-product-spotlight__autocard-price {
    font-size: 0.85rem;
    opacity: 0.85;
  }
  .studio-product-spotlight--no-price .studio-product-spotlight__autocard-price {
    display: none;
  }
  .studio-product-spotlight__autocard-arrow {
    display: grid;
    place-items: center;
    flex-shrink: 0;
  }
  .studio-product-spotlight__autocard-arrow svg {
    width: 18px;
    height: 18px;
  }
  @media (hover: hover) {
    .studio-product-spotlight__autocard {
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .studio-product-spotlight__autocard:hover {
      transform: translateY(-2px);
      box-shadow: 0 14px 40px rgba(0, 0, 0, 0.3);
    }
  }
  .studio-product-spotlight__autocard:focus-visible {
    outline: 2px solid var(--studio-color-text);
    outline-offset: 3px;
  }

  /* ---- Desktop full-bleed: ogni prodotto riempie 1/N della sezione ---- */
  /* Slot esatti 1/N (no padding/gap, stretch in altezza); l'immagine cutout va ad ALTEZZA piena
     (contain), centrata nello slot -> i lati trasparenti lasciano vedere heading/sfondo dietro.
     Float invariato. Autocard = barra sovrapposta in basso. Mobile NON toccato (e' lo step 2). */
  @media (min-width: 769px) {
    .studio-product-spotlight__stage {
      align-items: stretch;
    }
    .studio-product-spotlight__row {
      align-items: stretch;
      gap: 0;
      padding: 0;
    }
    .studio-product-spotlight__item {
      max-width: none;
    }
    .studio-product-spotlight__product {
      flex: 1 1 auto;
      min-height: 0;
    }
    .studio-product-spotlight__product-inner {
      height: 100%;
    }
    .studio-product-spotlight__product-img {
      height: 100%;
      width: auto;
      max-width: 100%;
      object-fit: contain;
    }
    /* Autocard sovrapposta in basso al pannello: assoluta su .__item (position: relative) */
    .studio-product-spotlight__autocard {
      position: absolute;
      left: 16px;
      right: 16px;
      bottom: 16px;
      margin-top: 0;
    }
  }

  /* ---- Mobile ---- */
  @media (max-width: 768px) {
    .studio-product-spotlight__bg--desktop { display: none; }
    .studio-product-spotlight__bg--mobile { display: block; }

    /* Immagine cutout ad ALTEZZA piena (contain, centrata) anche su mobile, come desktop.
       L'altezza arriva dalla catena: stage stretch -> row stretch -> item -> product flex:1.
       Autocard = barra sovrapposta in basso (l'immagine prende tutta l'altezza dello slot). */
    .studio-product-spotlight__stage {
      align-items: stretch;
    }
    .studio-product-spotlight__product {
      flex: 1 1 auto;
      min-height: 0;
    }
    .studio-product-spotlight__product-inner {
      height: 100%;
    }
    .studio-product-spotlight__product-img {
      height: 100%;
      width: auto;
      max-width: 100%;
      object-fit: contain;
    }
    .studio-product-spotlight__autocard {
      position: absolute;
      left: 16px;
      right: 16px;
      bottom: 16px;
      margin-top: 0;
    }

    /* pin: coordinate mobile dedicate */
    .studio-product-spotlight__pin {
      left: var(--dot-x-m);
      top: var(--dot-y-m);
    }

    /* R2: SLIDER orizzontale un-prodotto-per-volta con PEEK del successivo.
       .__row e' lo SCROLL-CONTAINER (overflow-x:auto + scroll-snap). Gli heading sono fratelli
       di .__row nello stage (assoluti z2/z3): NON stanno nello scroll-container -> restano FISSI
       dietro mentre davanti scorrono solo i prodotti (z5). Niente frecce: swipe nativo + peek. */
    .studio-product-spotlight__row {
      flex-direction: row;
      flex-wrap: nowrap;
      justify-content: flex-start;
      align-items: stretch;
      gap: 14px;
      padding: 28px 16px;
      overflow-x: auto;
      overflow-y: hidden;
      touch-action: pan-x;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scroll-padding-left: 16px;
      scrollbar-width: none;
    }
    .studio-product-spotlight__row::-webkit-scrollbar {
      display: none;
    }
    /* Larghezza slide regolabile (mobile_slide_width): 100% = un prodotto a schermo,
       valori piu' bassi lasciano intravedere il prossimo (peek). */
    .studio-product-spotlight__item {
      flex: 0 0 var(--ps-slide-w, 85vw);
      max-width: none;
      scroll-snap-align: start;
      scroll-snap-stop: always;
    }
  }
/* END_SECTION:product-spotlight */

/* START_SECTION:product (INDEX:57) */
.studio-product__layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: stretch;
  }

  .studio-product__media-col {
    display: flex;
    flex-direction: column;
    gap: 28px;
    min-width: 0;
  }

  /* Sticky strategy: by default the gallery is sticky (rule below). When the media
     column is TALL — stacked image layouts (column_1/column_2) or a "photo_column"
     tabbed-content block under the photos — the sticky moves to the INFO column
     instead (avoids sticking a tall stack and prevents overlap with content placed
     under the photos). Desktop only; below 1025px the columns stack. */
  @media (min-width: 1025px) {
    .studio-product__layout--info-sticky .studio-product__gallery { position: static; }
    .studio-product__layout--info-sticky .studio-product__info {
      position: sticky;
      top: 100px;
      align-self: start;
    }
  }

  /* Tabbed content "below photos": sotto la gallery su desktop; in ordine naturale (flusso info) quando il layout impila */
  .studio-product__photo-col-mobile { display: none; }
  @media (max-width: 1024px) {
    .studio-product__photo-col-desktop { display: none; }
    .studio-product__photo-col-mobile { display: block; }
  }

  .studio-product__gallery {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 12px;
    align-items: start;
    position: sticky;
    top: 100px;
  }

  .studio-product__thumbs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    scrollbar-width: none;
  }
  .studio-product__thumbs::-webkit-scrollbar { display: none; }

  .studio-product__thumb {
    position: relative;
    width: 88px;
    aspect-ratio: 1/1;
    border: 1px solid var(--studio-color-accent-2);
    background: var(--studio-color-accent-2);
    cursor: pointer;
    overflow: hidden;
    padding: 0;
    transition: border-color 0.2s;
    flex-shrink: 0;
    border-radius: var(--studio-elements-radius);
  }

  .studio-product__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-product__thumb--active {
    border-color: var(--studio-color-text);
  }

  .studio-product__main-media {
    position: relative;
    background: var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    overflow: hidden;
  }

  /* Gallery layout "thumbnails below" (desktop ≥769px): main media a tutta larghezza, thumbs in riga scrollabile sotto */
  @media (min-width: 769px) {
    .studio-product__gallery--thumbs-below {
      grid-template-columns: 1fr;
    }
    .studio-product__gallery--thumbs-below .studio-product__main-media {
      order: 1;
    }
    .studio-product__gallery--thumbs-below .studio-product__thumbs {
      order: 2;
      flex-direction: row;
      overflow-x: auto;
      scrollbar-width: none;
    }
    .studio-product__gallery--thumbs-below .studio-product__thumbs::-webkit-scrollbar {
      display: none;
    }
  }

  /* Gallery pagination dots (shown when thumbnails are off, on mobile and desktop).
     Dot colour + optional background pill are merchant-controlled (see the dynamic
     <style> at the top), mirroring the product-card dots. */
  .studio-product__dots { display: none; }
  .studio-product__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.2s, transform 0.2s;
  }
  .studio-product__dot--active { opacity: 1; transform: scale(1.3); }
  @media (prefers-reduced-motion: reduce) {
    .studio-product__dot { transition: none; }
  }

  /* Gallery layout "no thumbnails" (desktop ≥769px): media a tutta larghezza + pallini di paginazione */
  @media (min-width: 769px) {
    .studio-product__gallery--no-thumbs {
      grid-template-columns: 1fr;
    }
    .studio-product__gallery--no-thumbs .studio-product__thumbs {
      display: none;
    }
    .studio-product__gallery--no-thumbs .studio-product__dots {
      display: flex;
      justify-content: center;
      gap: 8px;
      position: absolute;
      left: 50%;
      bottom: 16px;
      transform: translateX(-50%);
      z-index: 2;
    }
  }

  /* Gallery layout "stacked column" (desktop ≥769px): tutte le immagini, niente thumbnails, 1 o 2 colonne */
  @media (min-width: 769px) {
    .studio-product__gallery--column-1,
    .studio-product__gallery--column-2 {
      grid-template-columns: 1fr;
    }
    .studio-product__gallery--column-1 .studio-product__thumbs,
    .studio-product__gallery--column-2 .studio-product__thumbs {
      display: none;
    }
    /* la UI da slide singola (zoom / contatore) non ha senso quando si vedono tutte le immagini */
    .studio-product__gallery--column-1 .studio-product__zoom-btn,
    .studio-product__gallery--column-2 .studio-product__zoom-btn,
    .studio-product__gallery--column-1 .studio-product__counter,
    .studio-product__gallery--column-2 .studio-product__counter {
      display: none;
    }
    /* il wrapper main-media diventa trasparente; il contenuto è lo stack */
    .studio-product__gallery--column-1 .studio-product__main-media,
    .studio-product__gallery--column-2 .studio-product__main-media {
      background: transparent;
      border-radius: 0;
      overflow: visible;
    }
    /* il contenitore slides diventa una griglia in flusso con ogni immagine */
    .studio-product__gallery--column-1 .studio-product__slides,
    .studio-product__gallery--column-2 .studio-product__slides {
      position: static;
      aspect-ratio: auto;
      display: grid;
      gap: 12px;
    }
    .studio-product__gallery--column-2 .studio-product__slides {
      grid-template-columns: 1fr 1fr;
    }
    /* ogni slide → cella visibile col rapporto scelto */
    .studio-product__gallery--column-1 .studio-product__slide,
    .studio-product__gallery--column-2 .studio-product__slide {
      position: static;
      opacity: 1;
      pointer-events: auto;
      aspect-ratio: var(--studio-media-ratio);
      border-radius: var(--studio-elements-radius);
      overflow: hidden;
      background: var(--studio-color-accent-2);
    }
  }

  .studio-product__slides {
    position: relative;
    aspect-ratio: var(--studio-media-ratio);
  }

  .studio-product__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
  }

  .studio-product__slide--active {
    opacity: 1;
    pointer-events: all;
  }

  .studio-product__slide-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Rich media: Shopify video, external video (iframe), 3D model */
  .studio-product__media-loaded {
    width: 100%;
    height: 100%;
  }

  .studio-product__slide video,
  .studio-product__slide iframe,
  .studio-product__slide model-viewer {
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
  }

  .studio-product__slide video {
    object-fit: contain;
  }

  .studio-product__slide model-viewer {
    background: var(--studio-color-accent-2);
  }

  /* Deferred-media poster (click to play) */
  .studio-product__media-poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    cursor: pointer;
    background: none;
  }

  .studio-product__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
  }

  .studio-product__play svg {
    width: 22px;
    height: auto;
    margin-left: 3px;
    fill: currentColor;
  }

  /* Media-type badge on thumbnails (play for video, box for 3D) */
  .studio-product__thumb-badge {
    position: absolute;
    right: 4px;
    bottom: 4px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
  }

  .studio-product__thumb-badge svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
  }

  .studio-product__zoom-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    background: var(--studio-color-bg);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
    color: var(--studio-color-text);
    transition: background 0.2s;
  }

  @media (hover: hover) {
    .studio-product__zoom-btn:hover {
      background: var(--studio-color-accent-2);
    }
  }

  .studio-product__counter {
    position: absolute;
    bottom: 12px;
    left: 12px;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 5px 10px;
    border-radius: var(--studio-elements-radius);
    display: flex;
    gap: 4px;
    z-index: 2;
  }

  .studio-product__zoom-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: zoom-out;
  }

  .studio-product__zoom-overlay img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
  }

  /* Info colonna */
  .studio-product__info {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
  }

  .studio-product__vendor {
    color: var(--studio-color-accent-3);
    margin: 0;
  }

  .studio-product__badge-banner {
    display: block;
    margin: 0;
    padding: 13px 18px;
    border-radius: var(--studio-elements-radius);
    font-size: 0.95rem;
    line-height: 1.45;
    width: fit-content;
    max-width: 100%;
    align-self: flex-start;
  }
  .studio-product__badge-banner--overlay {
    position: absolute;
    top: 16px;
    left: 16px;
    max-width: calc(100% - 32px);
    z-index: 3;
  }
  .studio-product__badge-banner strong,
  .studio-product__badge-banner b { font-weight: 700; }
  .studio-product__badge-banner a { color: inherit; text-decoration: underline; }

  .studio-product__title {
    margin: 0;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
  }

  .studio-product__rating {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .studio-product__stars {
    position: relative;
    display: inline-flex;
    color: var(--studio-color-text);
  }
  .studio-product__stars-base,
  .studio-product__stars-fill {
    display: flex;
    gap: 2px;
  }
  .studio-product__stars-base svg,
  .studio-product__stars-fill svg { flex-shrink: 0; }
  .studio-product__stars-base { opacity: 0.25; }
  .studio-product__stars-fill {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--rtg-fill, 100%);
    overflow: hidden;
  }

  .studio-product__rating-score {
    font-size: 0.875rem;
    font-weight: 700;
  }

  .studio-product__rating-count {
    font-size: 0.875rem;
    color: var(--studio-color-accent-3);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .studio-product__price-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
  }

  .studio-product__price-current {
    font-family: var(--studio-font-heading-family);
    font-size: calc(2rem * var(--studio-heading-size-scale));
    font-weight: 700;
    color: var(--studio-color-text);
    line-height: 1;
  }

  .studio-product__price-was {
    font-size: 1.125rem;
    color: var(--studio-color-accent-3);
    text-decoration: line-through;
    font-weight: 400;
  }

  .studio-product__short-desc {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--studio-color-text);
    font-weight: 300;
  }

  .studio-product__variants {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .studio-product__option {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .studio-product__option-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .studio-product__option-label {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-text);
  }

  .studio-product__option-label strong {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
  }

  .studio-product__option-count {
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
  }

  .studio-product__size-guide {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-text);
  }
  .studio-product__size-guide span { text-decoration: underline; text-underline-offset: 3px; }
  .studio-product__size-guide svg { width: 15px; height: 15px; }
  .studio-product__size-guide-modal {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
  }
  .studio-product__size-guide-modal.is-open { display: flex; }
  .studio-product__size-guide-overlay {
    position: absolute;
    inset: 0;
    background: var(--studio-color-overlay);
    opacity: var(--studio-overlay-opacity, 0.5);
  }
  .studio-product__size-guide-panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 640px;
    max-height: 85vh;
    overflow-y: auto;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border-radius: var(--studio-elements-radius);
    padding: 28px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
  }
  .studio-product__size-guide-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
  }
  .studio-product__size-guide-title { font-size: 1.25rem; margin: 0; }
  .studio-product__size-guide-close {
    flex-shrink: 0;
    background: none;
    border: 0;
    cursor: pointer;
    color: inherit;
    padding: 4px;
    line-height: 0;
  }
  .studio-product__size-guide-close svg { width: 22px; height: 22px; }
  .studio-product__size-guide-body { font-size: 0.9375rem; line-height: 1.6; }
  .studio-product__size-guide-body img { max-width: 100%; height: auto; }
  .studio-product__size-guide-body table { width: 100%; border-collapse: collapse; margin: 12px 0; }
  .studio-product__size-guide-body th,
  .studio-product__size-guide-body td { border: 1px solid var(--studio-color-accent-2); padding: 8px 10px; text-align: left; font-size: 0.875rem; }
  .studio-product__size-guide-body a { color: inherit; text-decoration: underline; }

  .studio-product__option-values {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
  }

  .studio-product__swatch-input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
  }

  .studio-product__swatch {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 2px solid transparent;
    cursor: pointer;
    display: block;
    background: var(--studio-swatch-bg, #cccccc);
    background-size: cover;
    background-position: center;
    outline: 2px solid transparent;
    outline-offset: 2px;
    transition: outline-color 0.15s;
  }

  .studio-product__swatch-input:checked + .studio-product__swatch {
    outline-color: var(--studio-color-text);
  }

  .studio-product__swatch--unavailable {
    opacity: 0.4;
    cursor: not-allowed;
  }

  .studio-product__size-input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
  }

  .studio-product__size {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    height: 44px;
    padding: 0 16px;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: all 0.15s;
    color: var(--studio-color-text);
    background: var(--studio-color-bg);
  }

  .studio-product__size-input:checked + .studio-product__size {
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    border-color: var(--studio-color-text);
  }

  .studio-product__size--unavailable {
    color: var(--studio-color-accent-3);
    border-color: var(--studio-color-accent-2);
    cursor: not-allowed;
    text-decoration: line-through;
    opacity: 0.5;
  }
  .studio-product__size-label { position: relative; }
  .studio-product__low-badge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    display: none;
    z-index: 2;
    padding: 2px 6px;
    border-radius: 999px;
    color: #fff;
    font-size: 0.5625rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
    pointer-events: none;
  }
  .studio-product__size--low + .studio-product__low-badge { display: block; }
  .studio-product__option-dropdown { position: relative; }
  .studio-product__option-radios[hidden] { display: none; }
  .studio-product__option-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 160px;
    padding: 10px 14px;
    font-size: 0.8125rem;
    cursor: pointer;
    color: var(--studio-color-text);
    background: transparent;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    transition: border-color 0.2s ease;
  }
  .studio-product__option-toggle > svg { width: 14px; height: 14px; flex: none; margin-left: auto; transition: transform 0.2s ease; }
  .studio-product__option-toggle[aria-expanded="true"] > svg { transform: rotate(180deg); }
  @media (hover: hover) { .studio-product__option-toggle:hover { border-color: var(--studio-color-accent-3); } }
  .studio-product__option-list {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 20;
    min-width: 100%;
    max-height: 280px;
    overflow-y: auto;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: var(--studio-color-bg);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    box-shadow: var(--studio-shadow);
  }
  .studio-product__option-list[hidden] { display: none; }
  .studio-product__option-list li { margin: 0; }
  .studio-product__option-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: left;
    padding: 9px 12px;
    font-size: 0.8125rem;
    cursor: pointer;
    color: var(--studio-color-text);
    background: transparent;
    border: 0;
    border-radius: calc(var(--studio-elements-radius) - 2px);
    transition: background-color 0.15s ease;
  }
  .studio-product__option-item-content { display: inline-flex; align-items: center; gap: 8px; }
  @media (hover: hover) { .studio-product__option-item:hover { background: var(--studio-color-accent-2); } }
  .studio-product__option-item.is-active { font-weight: 600; background: var(--studio-color-accent-2); }
  .studio-product__option-item.is-unavailable { opacity: 0.45; text-decoration: line-through; cursor: not-allowed; }
  .studio-product__option-low { display: none; margin-left: auto; font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.85; }
  .studio-product__option-item.is-low .studio-product__option-low { display: inline; }
  .studio-product__mini-swatch {
    width: 16px;
    height: 16px;
    flex: none;
    border-radius: 50%;
    background-color: var(--studio-swatch-bg, var(--studio-color-accent-2));
    background-size: cover;
    background-position: center;
    border: 1px solid rgba(0, 0, 0, 0.1);
  }
  .studio-product__variants--swatch-square .studio-product__swatch { border-radius: var(--studio-elements-radius); }
  .studio-product__variants--swatch-square .studio-product__mini-swatch { border-radius: 4px; }
  .studio-product__size--stacked {
    flex-direction: column;
    gap: 2px;
    min-width: 64px;
    height: auto;
    min-height: 60px;
    padding: 10px 14px;
  }
  .studio-product__size-main { font-size: 0.875rem; font-weight: 700; line-height: 1.1; }
  .studio-product__size-sub { font-size: 0.6875rem; font-weight: 500; opacity: 0.65; letter-spacing: 0.02em; }

  .studio-product__qty-row {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
  }

  .studio-product__stock {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8125rem;
    color: var(--studio-color-accent-3);
  }

  .studio-product__stock-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    flex-shrink: 0;
  }

  .studio-product__stock-dot--in  { background: #22c55e; }
  .studio-product__stock-dot--out { background: var(--studio-color-accent-3); }

  .studio-product__ctas {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .studio-product__atc {
    font-size: 0.8125rem;
    padding: 18px 28px;
  }

  /* Dynamic checkout (Buy it now): match the theme button radius (pill) */
  .shopify-payment-button__button {
    border-radius: var(--studio-btn-radius);
  }

  /* The generic "Buy it now" button follows the theme's primary button */
  .shopify-payment-button__button--unbranded {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
    font-family: var(--studio-font-heading-family);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: var(--studio-btn-letter-spacing);
    text-transform: var(--studio-btn-transform);
    min-height: 0;
    padding: 18px 28px;
    transition: opacity 0.2s ease;
  }

  /* Keep it monochrome on interaction — Shopify's default unbranded button turns blue.
     Color override applies in ALL states (incl. touch sticky-hover on mobile); the dim is hover-only. */
  .shopify-payment-button__button--unbranded:hover:not([disabled]),
  .shopify-payment-button__button--unbranded:focus:not([disabled]),
  .shopify-payment-button__button--unbranded:active:not([disabled]) {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
  }

  @media (hover: hover) {
    .shopify-payment-button__button--unbranded:hover:not([disabled]) {
      opacity: 0.82;
    }
  }

  /* ---- Trust badges (line / grid / slider) ---- */
  .studio-trust {
    --tr-card-bg: color-mix(in srgb, var(--studio-color-text) 4%, transparent);
    --tr-icon: var(--studio-color-text);
    --tr-title: var(--studio-color-text);
    --tr-text: var(--studio-color-accent-3);
  }
  .studio-trust__item { display: flex; gap: 12px; align-items: flex-start; }
  .studio-trust__icon { color: var(--tr-icon); flex-shrink: 0; line-height: 0; }
  .studio-trust__icon svg { width: 22px; height: 22px; }
  .studio-trust__title { color: var(--tr-title); font-weight: 600; font-size: 0.875rem; margin: 0; }
  .studio-trust__text { color: var(--tr-text); font-size: 0.8125rem; line-height: 1.5; margin: 4px 0 0; font-weight: 300; }

  /* LINE: una sola riga, item che si auto-dimensionano (no sfondo card) */
  .studio-trust--line .studio-trust__row { display: flex; gap: 24px; }
  .studio-trust--line .studio-trust__item { flex: 1; min-width: 0; }

  /* GRID: card con sfondo */
  .studio-trust--grid .studio-trust__row { display: grid; grid-template-columns: repeat(var(--tr-cols, 2), 1fr); gap: 12px; }
  .studio-trust--grid .studio-trust__item { background: var(--tr-card-bg); padding: 20px; border-radius: var(--studio-elements-radius); }
  .studio-trust--grid .studio-trust__title { font-size: 1rem; }
  .studio-trust--grid .studio-trust__text { font-size: 0.875rem; }

  /* SLIDER: card grandi, scroll-snap CSS; navigazione a puntini (no scrollbar, no autoplay) */
  .studio-trust--slider .studio-trust__row {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .studio-trust--slider .studio-trust__row::-webkit-scrollbar { display: none; }
  .studio-trust--slider .studio-trust__item {
    flex: 0 0 calc(100% - 24px);
    scroll-snap-align: center;
    gap: 14px;
    background: var(--tr-card-bg);
    padding: 28px 28px 48px;
    border-radius: var(--studio-elements-radius);
  }
  .studio-trust--slider .studio-trust__title { font-size: 1.0625rem; }
  .studio-trust--slider .studio-trust__text { font-size: 0.9375rem; line-height: 1.6; }

  /* Puntini di navigazione: SOVRAPPOSTI in basso dentro lo slider (popolati dal JS inline) */
  .studio-trust__dots { display: none; }
  .studio-trust--slider { position: relative; }
  .studio-trust--slider .studio-trust__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    position: absolute;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    z-index: 2;
  }
  .studio-trust__dots:empty { display: none; }
  .studio-trust__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    background: color-mix(in srgb, var(--studio-color-text) 22%, transparent);
    transition: background 0.2s, transform 0.2s;
  }
  .studio-trust__dot--active { background: var(--studio-color-text); transform: scale(1.3); }
  @media (hover: hover) {
    .studio-trust__dot:hover { background: color-mix(in srgb, var(--studio-color-text) 45%, transparent); }
  }
  @media (prefers-reduced-motion: reduce) {
    .studio-trust__dot { transition: none; }
  }

  @media (max-width: 768px) {
    .studio-trust--grid .studio-trust__row { grid-template-columns: 1fr; }
  }

  .studio-product__divider {
    border: none;
    border-top: 1px solid var(--studio-color-accent-2);
    margin: 0;
  }

  .studio-product__text-block {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--studio-color-text);
    font-weight: 300;
  }

  .studio-product__text-block p { margin: 0 0 12px; }
  .studio-product__text-block p:last-child { margin: 0; }

  .studio-product__share { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
  .studio-product__share-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--studio-color-accent-3); }
  .studio-product__share-links { display: flex; gap: 10px; }
  .studio-product__share-link { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--studio-color-accent-2); border-radius: var(--studio-elements-radius); color: var(--studio-color-text); transition: background 0.2s, border-color 0.2s; }
  .studio-product__share-link svg { width: 16px; height: 16px; fill: currentColor; }
  @media (hover: hover) { .studio-product__share-link:hover { background: var(--studio-color-accent-2); } }

  @media (max-width: 1024px) {
    .studio-product__layout {
      grid-template-columns: 1fr;
      gap: 40px;
    }

    .studio-product__gallery {
      position: static;
    }
  }

  @media (max-width: 768px) {
    .studio-product__gallery {
      grid-template-columns: 1fr;
      gap: 8px;
    }

    .studio-product__thumbs {
      flex-direction: row;
      overflow-x: auto;
      order: 2;
      scrollbar-width: none;
    }

    .studio-product__thumbs::-webkit-scrollbar {
      display: none;
    }

    .studio-product__thumb {
      width: 64px;
      flex-shrink: 0;
    }

    .studio-product__main-media {
      order: 1;
    }

    /* Mobile: immagine a tutta larghezza (edge-to-edge) — esce dal padding orizzontale del .studio-container */
    .studio-product { overflow-x: clip; }
    .studio-product__gallery--full-mobile .studio-product__main-media {
      width: auto;
      margin-left: calc(-1 * var(--studio-section-padding));
      margin-right: calc(-1 * var(--studio-section-padding));
      border-radius: 0;
    }

    /* Mobile: niente thumbnails → pallini di paginazione in overlay sull'immagine */
    .studio-product__gallery--no-thumbs-mobile .studio-product__thumbs {
      display: none;
    }
    .studio-product__gallery--no-thumbs-mobile .studio-product__dots {
      display: flex;
      justify-content: center;
      gap: 8px;
      position: absolute;
      left: 50%;
      bottom: 12px;
      transform: translateX(-50%);
      z-index: 2;
    }
  }

  /* ---- Sticky add-to-cart block ----
     studio.css positions the bar (fixed, bottom); here it is shown on desktop too,
     with a single-row layout, a taller bar, and roomier side padding. Show/hide
     (toggling --visible) is in studio.js. The selectors mirror the Variant picker. */
  .studio-sticky-atc { display: block; }
  .studio-sticky-atc--visible {
    transform: translateY(0);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
  }

  /* Mirrored Variant-picker selectors, laid out compactly inside the bar. */
  .studio-sticky-atc__variants {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    min-width: 0;
  }
  .studio-sticky-atc__variants .studio-product__option { gap: 0; }
  .studio-sticky-atc .studio-product__option-toggle { min-width: 0; }
  /* The bar sits at the bottom of the viewport: open dropdowns upward. */
  .studio-sticky-atc .studio-product__option-list {
    top: auto;
    bottom: calc(100% + 6px);
  }

  /* Desktop: single row, ~25% taller, more horizontal padding. */
  @media (min-width: 750px) {
    .studio-sticky-atc .studio-sticky-atc__inner {
      gap: 20px;
      padding-top: 22px;
      padding-bottom: 18px;
      padding-left: 48px;
      padding-right: 48px;
    }
    .studio-sticky-atc__info { flex: 0 0 auto; }
    .studio-sticky-atc__variants { flex: 1; }
    .studio-sticky-atc__btn { margin-left: auto; }
  }

  /* Mobile: taller bar, two rows — row 1 selectors; row 2 thumbnail + name/price (left) and Add to cart (right). */
  @media (max-width: 749px) {
    .studio-sticky-atc .studio-sticky-atc__inner {
      flex-wrap: wrap;
      row-gap: 16px;
      padding-top: 16px;
      padding-bottom: 12px;
    }
    .studio-sticky-atc__variants { order: 1; flex: 1 0 100%; }
    .studio-sticky-atc__media    { order: 2; }
    .studio-sticky-atc__info     { order: 3; flex: 1 1 auto; }
    .studio-sticky-atc__btn      { order: 4; margin-left: auto; padding-left: 22px; padding-right: 22px; }
  }

  /* ---- Pickup availability (intervention 1) ---- */
  .studio-product__pickup { margin-top: 4px; }

  .studio-pickup__summary {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 0.875rem;
    color: var(--studio-color-text);
  }

  .studio-pickup__dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--studio-color-text);
  }

  .studio-pickup__summary--unavailable,
  .studio-pickup__time { color: var(--studio-color-accent-3); }

  .studio-pickup__more {
    margin-top: 6px;
    font-size: 0.8125rem;
  }

  .studio-pickup__more summary {
    cursor: pointer;
    color: var(--studio-color-accent-3);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .studio-pickup__list {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .studio-pickup__loc {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 0.8125rem;
  }

  .studio-pickup__loc strong { color: var(--studio-color-text); }

  .studio-pickup__loc span,
  .studio-pickup__loc address {
    color: var(--studio-color-accent-3);
    font-style: normal;
  }

  /* ---- Selling plans / subscriptions (intervention 2) ---- */
  .studio-product__selling-plans {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .studio-product__sp-option {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.875rem;
    cursor: pointer;
  }

  .studio-product__sp-option input { accent-color: var(--studio-color-accent-1); }

  .studio-product__sp-select { max-width: 320px; }

  /* ---- Unit price (intervention 3) ---- */
  .studio-product__unit-price {
    margin-top: 4px;
    font-size: 0.8125rem;
    color: var(--studio-color-accent-3);
  }

  /* ---- Tax-included note (intervention 5) ---- */
  .studio-product__tax-note {
    display: block;
    margin-top: 4px;
    font-size: 0.75rem;
    color: var(--studio-color-accent-3);
  }

  /* ---- Gift card recipient (intervention 6) ---- */
  .studio-product__recipient {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .studio-product__recipient-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.875rem;
    cursor: pointer;
  }

  .studio-product__recipient-toggle input { accent-color: var(--studio-color-accent-1); }

  .studio-product__recipient-fields {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  /* ---- Complementary products block ---- */
  .studio-complementary { margin-top: 4px; }
  .studio-complementary__head { margin-bottom: 16px; }
  .studio-complementary__head--center { text-align: center; }
  .studio-complementary__head--right { text-align: right; }
  .studio-complementary__eyebrow { margin: 0 0 6px; }
  .studio-complementary__heading { margin: 0; font-family: var(--studio-font-heading-family); font-weight: var(--studio-font-heading-weight); }

  .studio-complementary__row {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .studio-complementary__row::-webkit-scrollbar { display: none; }
  .studio-complementary__row .studio-recs__card { flex-shrink: 0; scroll-snap-align: start; }

  /* ---- Stock indicator (3-state pill with pulsing dot) ---- */
  .studio-stock {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1;
  }
  .studio-stock__text { white-space: nowrap; }
  .studio-stock--out  { background: var(--stk-out-bg); }
  .studio-stock--out  .studio-stock__text { color: var(--stk-out-txt); }
  .studio-stock--out  .studio-stock__dot  { color: var(--stk-out-pulse); }
  .studio-stock--low  { background: var(--stk-low-bg); }
  .studio-stock--low  .studio-stock__text { color: var(--stk-low-txt); }
  .studio-stock--low  .studio-stock__dot  { color: var(--stk-low-pulse); }
  .studio-stock--high { background: var(--stk-high-bg); }
  .studio-stock--high .studio-stock__text { color: var(--stk-high-txt); }
  .studio-stock--high .studio-stock__dot  { color: var(--stk-high-pulse); }
  .studio-stock__dot {
    position: relative;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
  }
  .studio-stock__dot::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: currentColor;
    animation: studio-stock-pulse 1.8s ease-out infinite;
  }
  @keyframes studio-stock-pulse {
    0%   { transform: scale(1);   opacity: .55; }
    100% { transform: scale(2.8); opacity: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    .studio-stock__dot::after { animation: none; }
  }

  /* ---- Ingredient spotlight block (CSS-only tabs) ---- */
  .studio-spotlight {
    --sp-bg: var(--studio-color-bg);
    --sp-heading: var(--studio-color-text);
    --sp-text: var(--studio-color-text);
    --sp-eyebrow: var(--studio-color-accent-3);
    --sp-meta: var(--studio-color-accent-3);
    --sp-tab-border: var(--studio-color-accent-2);
    --sp-tab-text: var(--studio-color-text);
    --sp-tab-active-bg: var(--studio-color-text);
    --sp-tab-active-text: var(--studio-color-bg);
    --sp-stat-bg: color-mix(in srgb, var(--studio-color-text) 6%, transparent);
    --sp-stat-value: var(--studio-color-text);
    --sp-stat-label: var(--studio-color-accent-3);
    background: var(--sp-bg);
    color: var(--sp-text);
    padding: clamp(20px, 3vw, 36px);
    border-radius: var(--studio-elements-radius);
  }
  .studio-spotlight__head { margin-bottom: 22px; }
  .studio-spotlight--align-center { text-align: center; }
  .studio-spotlight--align-right  { text-align: right; }
  .studio-spotlight__eyebrow { color: var(--sp-eyebrow); margin: 0 0 8px; }
  .studio-spotlight__heading { color: var(--sp-heading); margin: 0; font-family: var(--studio-font-heading-family); font-weight: var(--studio-font-heading-weight); line-height: 1.1; }
  /* radio visivamente nascosti ma focusabili (a11y) */
  .studio-spotlight__radio { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .studio-spotlight__tabs { display: flex; border: 1px solid var(--sp-tab-border); border-radius: var(--studio-elements-radius); overflow: hidden; margin-bottom: 26px; }
  .studio-spotlight__tab { flex: 1; text-align: center; padding: 14px 12px; font-size: 0.9rem; font-weight: 600; color: var(--sp-tab-text); cursor: pointer; border-right: 1px solid var(--sp-tab-border); transition: background 0.2s, color 0.2s; user-select: none; }
  .studio-spotlight__tab:last-of-type { border-right: 0; }
  .studio-spotlight__panel { display: none; }
  .studio-spotlight__title { color: var(--sp-heading); font-weight: 700; font-size: 1.05rem; margin: 0 0 6px; }
  .studio-spotlight__meta { color: var(--sp-meta); margin: 0 0 16px; font-size: 0.9rem; }
  .studio-spotlight__desc { color: var(--sp-text); line-height: 1.6; margin: 0 0 24px; opacity: 0.9; }
  .studio-spotlight__desc p { margin: 0 0 10px; }
  .studio-spotlight__desc p:last-child { margin-bottom: 0; }
  .studio-spotlight__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .studio-spotlight__stat { background: var(--sp-stat-bg); border-radius: var(--studio-elements-radius); padding: 24px 16px; text-align: center; }
  .studio-spotlight__stat-value { display: block; color: var(--sp-stat-value); font-size: 2rem; font-weight: 700; line-height: 1; }
  .studio-spotlight__stat-label { display: block; color: var(--sp-stat-label); font-size: 0.85rem; margin-top: 8px; line-height: 1.3; }
  @media (max-width: 480px) { .studio-spotlight__stats { grid-template-columns: 1fr; } }

  /* FULL: renderizzato sotto la griglia dentro .studio-container → larghezza contenuto naturale */
  .studio-spotlight--full { margin-top: 40px; }

  /* Una sola stat: centrata a tutta larghezza, non a sinistra */
  .studio-spotlight__stats--single { grid-template-columns: 1fr; }
/* END_SECTION:product */

/* START_SECTION:promo-banner (INDEX:58) */
.studio-promo-banner__frame {
    border-style: solid;
    border-color: var(--studio-color-accent-2);
    background: var(--studio-color-bg);
    overflow: hidden;
  }
  .studio-promo-banner__row {
    display: flex;
    flex-direction: column;
  }
  .studio-promo-banner__block {
    min-width: 0;
  }
  .studio-promo-banner__block--text {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 32px;
  }
  .studio-promo-banner__block--image,
  .studio-promo-banner__block--video {
    position: relative;
  }
  .studio-promo-banner__media-pic,
  .studio-promo-banner__media {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .studio-promo-banner__placeholder {
    background: var(--studio-color-accent-2);
  }
  .studio-promo-banner__link {
    position: absolute;
    inset: 0;
    text-decoration: none;
    color: inherit;
  }
  .studio-promo-banner__text {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
  }
  .studio-promo-banner__eyebrow {
    margin: 0;
  }
  .studio-promo-banner__heading {
    margin: 0;
    line-height: 1.05;
    color: var(--studio-color-text);
    font-size: calc(var(--pb-h-size, 3.5) * 1rem * var(--studio-heading-size-scale));
  }
  .studio-promo-banner__highlight {
    color: var(--studio-color-accent-1);
  }
  .studio-promo-banner__subheading {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--studio-color-text);
  }
  @media (min-width: 769px) {
    .studio-promo-banner__row {
      flex-direction: row;
      align-items: stretch;
    }
    .studio-promo-banner__block {
      flex: 1 1 0;
    }
    .studio-promo-banner__text {
      flex-direction: row;
      flex-wrap: wrap;
      gap: 0.4em 0.7em;
    }
  }
  @media (max-width: 768px) {
    .studio-promo-banner__heading {
      font-size: calc(var(--pb-h-size-mobile, 2.5) * 1rem * var(--studio-heading-size-scale));
    }
  }
  .studio-promo-banner__link:focus-visible {
    outline: 2px solid var(--studio-color-text);
    outline-offset: 3px;
  }
/* END_SECTION:promo-banner */

/* START_SECTION:recently-viewed (INDEX:60) */
.studio-recently-viewed[hidden] { display: none; }

  .studio-recently-viewed__inner {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .studio-recently-viewed__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
  }

  .studio-recently-viewed__heading {
    color: var(--studio-color-text);
    margin: 0;
  }

  .studio-recently-viewed__toggle {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: 50%;
    background: none;
    color: var(--studio-color-text);
    cursor: pointer;
    line-height: 0;
  }

  .studio-recently-viewed__chevron {
    display: inline-flex;
    transition: transform 0.2s ease;
    transform: rotate(180deg);
  }

  .studio-recently-viewed--collapsed .studio-recently-viewed__chevron {
    transform: rotate(0deg);
  }

  .studio-recently-viewed--collapsed .studio-recently-viewed__panel {
    display: none;
  }

  .studio-recently-viewed__panel {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
  }

  .studio-recently-viewed__controls {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 1.25rem;
  }

  .studio-recently-viewed__slot {
    flex-shrink: 0;
  }

  .studio-recently-viewed__clear {
    background: none;
    border: none;
    padding: 0;
    color: var(--studio-color-text);
    cursor: pointer;
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  @media (hover: hover) {
    .studio-recently-viewed__toggle:hover { background: var(--studio-color-accent-2); }
  }
/* END_SECTION:recently-viewed */

/* START_SECTION:rich-text (INDEX:61) */
.studio-rich-text__inner {
    max-width: 960px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 48px;
    row-gap: 32px;
  }

  .studio-rich-text__block--eyebrow,
  .studio-rich-text__block--heading,
  .studio-rich-text__buttons {
    grid-column: 1 / -1;
  }

  .studio-rich-text__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
  }

  .studio-rich-text__eyebrow {
    margin: 0;
  }

  .studio-rich-text__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    font-size: calc(var(--rt-h-size, 3.5) * 1rem * var(--studio-heading-size-scale));
    margin: 0;
  }

  .studio-rich-text__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-rich-text__text {
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    max-width: 680px;
    margin: 0;
  }

  .studio-rich-text__text p {
    margin: 0 0 16px;
  }

  .studio-rich-text__text p:last-child {
    margin: 0;
  }

  .studio-rich-text__btn {
    background: transparent;
    color: var(--rt-btn-color);
    border-color: var(--rt-btn-color);
  }

  .studio-rich-text__btn--solid {
    background: var(--rt-btn-color);
    color: var(--rt-btn-text);
    border-color: var(--rt-btn-color);
  }

  .studio-rich-text__btn--ghost {
    background: transparent;
    color: var(--rt-btn-color);
    border-color: var(--rt-btn-color);
  }

  .studio-rich-text__btn--underline {
    background: transparent;
    color: var(--rt-btn-color);
    border: none;
    border-bottom: 1px solid var(--rt-btn-color);
    border-radius: 0;
    padding-left: 0;
    padding-right: 0;
  }

  @media (hover: hover) {
    .studio-rich-text__btn--solid:hover {
      opacity: 0.85;
    }

    .studio-rich-text__btn--ghost:hover {
      background: var(--rt-btn-color);
      color: var(--rt-btn-text);
    }
  }

  @media (max-width: 768px) {
    .studio-rich-text__inner {
      row-gap: 24px;
    }

    .studio-rich-text__buttons {
      flex-direction: column;
    }

    .studio-rich-text__heading {
      font-size: calc(var(--rt-h-size-mobile, 2.5) * 1rem * var(--studio-heading-size-scale));
    }

    .studio-rich-text__text {
      font-size: 1rem;
    }
  }
/* END_SECTION:rich-text */

/* START_SECTION:search (INDEX:62) */
.studio-search__head {
    display: flex;
    flex-direction: column;
    max-width: 720px;
    margin: 0 auto 48px;
  }
  .studio-search__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.1;
    margin: 0 0 24px;
    color: var(--studio-color-text);
  }

  .studio-search__form {
    display: flex;
    gap: 10px;
    width: 100%;
  }
  .studio-search__input {
    flex: 1;
    min-width: 0;
  }

  .studio-search__count {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    color: var(--studio-color-accent-3);
    margin: 18px 0 0;
  }
  .studio-search__count-sep { margin: 0 4px; }

  .studio-search__empty {
    text-align: center;
    padding: 64px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
  .studio-search__empty-text {
    font-size: 1rem;
    color: var(--studio-color-accent-3);
    margin: 0;
  }

  .studio-search__group {
    margin-top: 56px;
  }
  .studio-search__group:first-of-type {
    margin-top: 0;
  }
  .studio-search__group-head {
    border-top: 1px solid var(--studio-color-accent-2);
    padding-top: 20px;
    margin-bottom: 28px;
  }
  .studio-search__group-title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: clamp(1.25rem, 2.4vw, 1.75rem);
    margin: 0;
    color: var(--studio-color-text);
  }

  .studio-search__grid {
    display: grid;
    grid-template-columns: repeat(var(--studio-cols-mobile, 2), minmax(0, 1fr));
    gap: 36px 20px;
  }
  @media (min-width: 769px) {
    .studio-search__grid {
      grid-template-columns: repeat(var(--studio-cols, 4), minmax(0, 1fr));
    }
  }
  .studio-search__grid--articles {
    --studio-cols: 3;
    --studio-cols-mobile: 1;
    gap: 40px 28px;
  }

  .studio-search__pages {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 760px;
  }
  .studio-search__page {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--studio-color-accent-2);
  }
  .studio-search__page-link {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.125rem;
    color: var(--studio-color-text);
    text-decoration: none;
    display: inline-block;
    margin-bottom: 6px;
    transition: opacity 0.2s ease;
  }
  @media (hover: hover) {
    .studio-search__page-link:hover { opacity: 0.6; }
  }
  .studio-search__page-excerpt {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--studio-color-accent-3);
    margin: 0;
  }

  :where(
    .studio-search__input,
    .studio-search__form button,
    .studio-search__page-link,
    .studio-search__empty a
  ):focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (max-width: 600px) {
    .studio-search__form {
      flex-direction: column;
    }
    .studio-search__form .studio-btn {
      width: 100%;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-search__page-link {
      transition: none;
    }
  }
/* END_SECTION:search */

/* START_SECTION:shop-the-look (INDEX:63) */
/* ===== Shop the look — statico (layout, stage, dot, popup card). Niente Liquid qui. ===== */
  .studio-stl__head { margin-bottom: 28px; }
  .studio-stl__head--align-center { text-align: center; }
  .studio-stl__head--align-right  { text-align: right; }
  .studio-stl__eyebrow { color: var(--studio-color-accent-3); margin-bottom: 10px; }
  .studio-stl__heading { color: var(--studio-color-text); margin: 0; }
  .studio-stl__highlight { color: var(--studio-color-accent-1); }

  .studio-stl__stage { position: relative; width: 100%; }
  .studio-stl__media {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: var(--studio-elements-radius);
  }
  .studio-stl__img {
    width: 100%;
    display: block;
    object-fit: cover;
  }
  .studio-stl__placeholder { width: 100%; }
  .studio-stl__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .studio-stl__pins {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: visible;
  }
  .studio-stl__dot-wrap {
    position: absolute;
    left: var(--dot-x);
    top: var(--dot-y);
    transform: translate(-50%, -50%);
    z-index: 10;
    pointer-events: all;
  }
  .studio-stl__dot {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    transition: transform 0.2s ease, background 0.2s ease;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.3);
  }
  .studio-stl__dot svg { width: 18px; height: 18px; }
  .studio-stl__dot:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: 3px; }
  .studio-stl__dot-ring {
    position: absolute;
    inset: -6px;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, 0.7);
    animation: studio-stl-pulse 2s ease infinite;
    pointer-events: none;
  }
  @keyframes studio-stl-pulse {
    0%   { transform: scale(1);    opacity: 0.8; }
    50%  { transform: scale(1.25); opacity: 0.2; }
    100% { transform: scale(1);    opacity: 0.8; }
  }
  @media (prefers-reduced-motion: reduce) {
    .studio-stl__dot-ring { animation: none; }
  }
  .studio-stl__dot--active {
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
    transform: scale(1.1);
  }
  .studio-stl__dot--active .studio-stl__dot-ring { animation: none; opacity: 0; }

  /* Popup card: foto + corpo su fondo pieno (clampato dal JS) */
  .studio-stl__card {
    position: absolute;
    width: 260px;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border-radius: var(--studio-elements-radius);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.22), 0 2px 8px rgba(0, 0, 0, 0.1);
    flex-direction: column;
    /* Chiusa: FUORI dal layout (display:none), non solo invisibile. Con visibility:hidden la card
       restava in layout: 260px ancorati al suo pin -> una card mai aperta verso destra sforava
       lateralmente (scrollWidth>clientWidth) anche da invisibile. display:none = nessun box = niente overflow.
       Il fade 0.22s si mantiene con la transizione DISCRETA su display (allow-discrete + @starting-style):
       fade dove supportato (Chrome/Safari/FF recenti), comparsa/sparizione ISTANTANEA e corretta sui browser
       che non lo supportano (degrado = niente fade, mai popup rotto). */
    display: none;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease, display 0.22s allow-discrete;
    z-index: 30;
    overflow: hidden;
  }
  .studio-stl__card--open { display: flex; opacity: 1; pointer-events: all; }
  /* stato di partenza del fade-in: appare gia' posizionata (left/top dal JS) e sale di opacita' */
  @starting-style {
    .studio-stl__card--open { opacity: 0; }
  }
  .studio-stl__card-close {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.45);
    color: #fff;
    cursor: pointer;
  }
  .studio-stl__card-close svg { width: 16px; height: 16px; }
  .studio-stl__card-close:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
  .studio-stl__card-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .studio-stl__card-type {
    font-size: 0.5625rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    margin: 0;
  }
  .studio-stl__card-name {
    font-family: var(--studio-font-heading-family);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.2;
    color: inherit;
    text-decoration: none;
  }
  .studio-stl__card-name:hover { text-decoration: underline; }
  .studio-stl__card-price {
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    gap: 8px;
    align-items: baseline;
  }
  .studio-stl__card-compare {
    font-size: 0.8rem;
    font-weight: 400;
    text-decoration: line-through;
    opacity: 0.6;
  }
  .studio-stl__card-select {
    width: 100%;
    margin-top: 2px;
    padding: 8px 10px;
    font-size: 0.85rem;
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    cursor: pointer;
  }
  .studio-stl__card-select:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: 2px; }

  /* ===== R2: layout affiancato (A) + pannello del look (porta dal bundle, senza barra/sconto) ===== */
  .studio-stl__layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
  }
  .studio-stl--panel-right .studio-stl__layout { flex-direction: row-reverse; }
  .studio-stl__stage { flex: 1 1 auto; min-width: 0; }
  .studio-stl__panel {
    flex: 0 0 360px;
    align-self: flex-start;
    position: sticky;
    top: calc(var(--studio-header-height, 80px) + 24px);
    max-height: calc(100vh - var(--studio-header-height, 80px) - 48px);
    display: flex;
    flex-direction: column;
    border-radius: var(--studio-elements-radius);
    overflow: hidden;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
  }
  .studio-stl__panel-head { position: relative; padding: 22px 24px 6px; }
  .studio-stl__panel-title {
    font-family: var(--studio-font-heading-family);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.05;
    text-transform: var(--studio-heading-transform);
    letter-spacing: var(--studio-heading-letter-spacing);
    margin: 0;
  }
  .studio-stl__toggle {
    display: none; /* desktop: nascosto; mobile: freccia del bottom sheet */
    position: absolute;
    top: 18px;
    right: 20px;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    transition: transform 0.25s ease;
  }
  .studio-stl__toggle svg { width: 22px; height: 22px; }
  .studio-stl__toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
  .studio-stl__items {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    padding: 8px 24px;
  }
  .studio-stl__empty {
    margin: auto 0;
    padding: 24px 0;
    font-size: 0.875rem;
    opacity: 0.6;
    text-align: center;
  }
  .studio-stl__item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 0;
  }
  .studio-stl__item + .studio-stl__item {
    border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
  }
  .studio-stl__item-img {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: var(--studio-badge-radius);
    background: var(--studio-color-accent-2);
  }
  .studio-stl__item-info { flex: 1 1 auto; min-width: 0; }
  .studio-stl__item-title { font-weight: 600; font-size: 0.95rem; line-height: 1.2; margin: 0; }
  .studio-stl__item-variant { font-size: 0.8rem; opacity: 0.6; margin: 0; }
  /* Taglia non ancora scelta: prompt evidenziato (accent), non sbiadito -> "evidenzia i prodotti da configurare" */
  .studio-stl__item-variant--prompt { color: var(--studio-color-accent-1); opacity: 1; font-weight: 600; }
  .studio-stl__item-variant--soldout { opacity: 0.7; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.7rem; }
  .studio-stl__item--unavailable { opacity: 0.55; }
  .studio-stl__item-price { font-size: 0.9rem; margin: 0; }
  .studio-stl__footer {
    padding: 20px 24px;
    border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
  }
  .studio-stl__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-weight: 700;
    margin-bottom: 14px;
  }
  .studio-stl__total-value { font-size: 1.4rem; }
  .studio-stl__submit:disabled { opacity: 0.45; cursor: not-allowed; }

  /* Pin con taglia CONFIGURATA (variante unica = dal boot; multi = dopo la scelta): glifo check, dot accent, anello spento */
  .studio-stl__dot-glyph { display: inline-flex; }
  .studio-stl__dot-glyph svg { width: 18px; height: 18px; }
  .studio-stl__dot-glyph--in { display: none; }
  .studio-stl__dot-wrap--ready .studio-stl__dot { background: var(--studio-color-accent-1); color: var(--studio-color-bg); }
  .studio-stl__dot-wrap--ready .studio-stl__dot-glyph--add { display: none; }
  .studio-stl__dot-wrap--ready .studio-stl__dot-glyph--in { display: inline-flex; }
  .studio-stl__dot-wrap--ready .studio-stl__dot-ring { animation: none; opacity: 0; }
  /* Pin di prodotto non disponibile: dot attenuato, anello spento (resta apribile come info) */
  .studio-stl__dot-wrap[data-stl-unavailable] .studio-stl__dot { opacity: 0.5; }
  .studio-stl__dot-wrap[data-stl-unavailable] .studio-stl__dot-ring { animation: none; opacity: 0; }

  /* ===== Mobile R3: pannello = bottom sheet fisso espandibile (docked solo quando lo STAGE e' in vista) + posizioni pin mobile ===== */
  @media (max-width: 768px) {
    /* posizioni pin dedicate al mobile (fallback alle desktop se non impostate) */
    .studio-stl__dot-wrap {
      left: var(--dot-x-m, var(--dot-x));
      top: var(--dot-y-m, var(--dot-y));
    }
    .studio-stl__layout,
    .studio-stl--panel-right .studio-stl__layout {
      flex-direction: column;
      align-items: stretch;
    }
    /* pannello fisso in basso; sta giu' (nascosto) finche' lo stage non e' in vista -> .is-stl-docked lo fa salire */
    .studio-stl__panel {
      position: fixed;
      top: auto;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 40;
      width: 100%;
      flex: none;
      max-height: 85vh;
      border-radius: var(--studio-elements-radius) var(--studio-elements-radius) 0 0;
      box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.22);
      transform: translateY(110%);
      transition: transform 0.32s ease;
    }
    .studio-stl.is-stl-docked .studio-stl__panel { transform: translateY(0); }
    .studio-stl__toggle { display: grid; }
    /* lista chiusa di default; si apre con .is-expanded (freccia) */
    .studio-stl__items {
      max-height: 0;
      padding-top: 0;
      padding-bottom: 0;
      overflow: hidden;
      transition: max-height 0.32s ease, padding 0.32s ease;
    }
    .studio-stl__panel.is-expanded .studio-stl__items {
      max-height: 44vh;
      overflow-y: auto;
      padding-top: 8px;
      padding-bottom: 8px;
    }
    /* totale visibile solo da aperto (chiuso = testa + CTA) */
    .studio-stl__total { display: none; }
    .studio-stl__panel.is-expanded .studio-stl__total { display: flex; }
    .studio-stl__panel.is-expanded .studio-stl__toggle { transform: rotate(180deg); }
  }
  @media (prefers-reduced-motion: reduce) {
    .studio-stl__panel { transition: none; }
    .studio-stl__items { transition: none; }
  }
/* END_SECTION:shop-the-look */

/* START_SECTION:size-guide (INDEX:64) */
.studio-size-guide__inner { display: flex; flex-direction: column; }
  .studio-size-guide__head { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 2.5rem; }
  .studio-size-guide__eyebrow { font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--studio-color-accent-3); margin: 0; }
  .studio-size-guide__heading { color: var(--studio-color-text); line-height: 1.05; margin: 0; }
  .studio-size-guide__sub { color: var(--studio-color-text); max-width: 52ch; }
  .studio-size-guide__sub p { margin: 0; }

  .studio-size-guide__radio,
  .studio-size-guide__unit-radio { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

  .studio-size-guide__bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
  .studio-size-guide__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; }
  .studio-size-guide__tab {
    display: inline-flex; align-items: center; padding: 0.6rem 1.25rem;
    font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600;
    color: var(--studio-color-text); background: transparent;
    border: 1px solid var(--sg-border); border-radius: 999px;
    cursor: pointer; white-space: nowrap;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }
  @media (hover: hover) { .studio-size-guide__tab:hover { border-color: var(--studio-color-text); } }

  .studio-size-guide__units { display: inline-flex; border: 1px solid var(--sg-border); border-radius: 999px; padding: 3px; }
  .studio-size-guide__unit {
    display: inline-flex; align-items: center; padding: 0.4rem 1rem;
    font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700;
    color: var(--studio-color-text); background: transparent; border-radius: 999px; cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
  }

  .studio-size-guide__panels { width: 100%; }
  .studio-size-guide__panel { display: none; }

  .studio-size-guide__main { width: 100%; }
  .studio-size-guide__main--legend { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 320px); gap: 3rem; align-items: start; }
  .studio-size-guide__main--photo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 360px); gap: 3rem; align-items: start; }

  .studio-size-guide__table-wrap { width: 100%; overflow-x: auto; }
  .studio-size-guide__table { width: 100%; border-collapse: collapse; }
  .studio-size-guide__table th,
  .studio-size-guide__table td { padding: 0.95rem 0.75rem; text-align: center; font-size: 0.95rem; }
  .studio-size-guide__table thead th { vertical-align: bottom; border-bottom: 1px solid var(--studio-color-text); }
  .studio-size-guide__table tbody td { border-bottom: 1px solid var(--sg-border); }
  .studio-size-guide__col-size { text-align: left; font-weight: 700; }
  .studio-size-guide__param { display: block; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--studio-color-accent-3); }
  .studio-size-guide__unit-label { display: block; margin-top: 2px; font-size: 0.625rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--studio-color-accent-3); opacity: 0.75; }
  .studio-size-guide__row { cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease; }
  @media (hover: hover) { .studio-size-guide__row:hover td { background: var(--studio-color-accent-2); } }
  .studio-size-guide__row.is-selected td { background: var(--sg-active-bg); color: var(--sg-active-text); }
  .studio-size-guide__row.is-selected .studio-size-guide__col-size { color: var(--sg-active-text); }
  .studio-size-guide__row:focus-visible { outline: 2px solid var(--studio-color-text); outline-offset: -2px; }

  .studio-size-guide__photo { display: flex; flex-direction: column; }
  .studio-size-guide__photo-img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--studio-elements-radius); background: var(--studio-color-accent-2); }
  .studio-size-guide__photo-caption { margin-top: 0.75rem; font-size: 0.6875rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--studio-color-accent-3); text-align: center; }

  .studio-size-guide__legend--side { display: flex; flex-direction: column; gap: 1.5rem; }
  .studio-size-guide__legend--row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2.5rem; }
  .studio-size-guide__legend-item { display: flex; gap: 0.75rem; align-items: flex-start; }
  .studio-size-guide__legend-num { flex: none; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--sg-border); border-radius: 999px; font-size: 0.6875rem; font-weight: 700; }
  .studio-size-guide__legend-text { display: flex; flex-direction: column; gap: 0.15rem; }
  .studio-size-guide__legend-name { font-weight: 700; font-size: 0.875rem; color: var(--studio-color-text); }
  .studio-size-guide__legend-desc { font-size: 0.8125rem; color: var(--studio-color-accent-3); line-height: 1.45; }

  .studio-size-guide__note { margin-top: 2rem; font-size: 0.8125rem; color: var(--studio-color-accent-3); }
  .studio-size-guide__note p { margin: 0; }
  .studio-size-guide__note strong { color: var(--studio-color-text); font-weight: 600; }

  .studio-size-guide__empty { color: var(--studio-color-accent-3); }

  @media (max-width: 768px) {
    .studio-size-guide__main--legend,
    .studio-size-guide__main--photo { grid-template-columns: 1fr; gap: 2rem; }
    .studio-size-guide__legend--row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .studio-size-guide__table th,
    .studio-size-guide__table td { padding: 0.8rem 0.6rem; font-size: 0.9rem; }
  }
/* END_SECTION:size-guide */

/* START_SECTION:slideshow (INDEX:65) */
.studio-slideshow {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--studio-color-bg);
  }

  .studio-slideshow__track {
    position: relative;
    width: 100%;
    height: 100%;
  }

  /* Fallback pre-JS: mostra il primo slide finche' il JS non aggiunge .is-loaded.
     Il :not() qui agisce SOLO sulla visibilita' slide (non sulle animazioni titoli, §8). */
  .studio-slideshow:not(.is-loaded) .studio-slideshow__slide:first-child {
    opacity: 1;
    pointer-events: auto;
  }

  /* Frecce: look frosted come video-hero, indipendenti dallo scheme della slide. */
  .studio-slideshow__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 56px;
    height: 56px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .studio-slideshow__arrow--prev {
    left: var(--studio-section-padding);
  }

  .studio-slideshow__arrow--next {
    right: var(--studio-section-padding);
  }

  .studio-slideshow__arrow:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  @media (hover: hover) {
    .studio-slideshow__arrow:hover {
      background: rgba(255, 255, 255, 0.25);
    }
  }

  /* Frecce: visibilità indipendente desktop/mobile via classe sulla root.
     Quando attive, più gap al testo left/right per non finire sotto le frecce. */
  @media (min-width: 769px) {
    .studio-slideshow--arrows-d .studio-slideshow__arrow { display: flex; }
    .studio-slideshow--arrows-d .studio-slideshow__content--left { padding-left: calc(var(--studio-section-padding) + 80px); }
    .studio-slideshow--arrows-d .studio-slideshow__content--right { padding-right: calc(var(--studio-section-padding) + 80px); }
  }

  .studio-slideshow__bottom {
    position: absolute;
    bottom: 28px;
    left: var(--studio-section-padding);
    right: var(--studio-section-padding);
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 6;
  }

  .studio-slideshow__dots {
    display: flex;
    gap: 8px;
    align-items: center;
  }

  .studio-slideshow__dot {
    width: 32px;
    height: 2px;
    background: rgba(255, 255, 255, 0.3);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, width 0.2s;
  }

  .studio-slideshow__dot--active {
    background: #fff;
    width: 48px;
  }

  .studio-slideshow__counter {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    color: rgba(255, 255, 255, 0.6);
  }

  .studio-slideshow__counter-current {
    color: #fff;
  }

  .studio-slideshow__counter-line {
    width: 32px;
    height: 1px;
    background: rgba(255, 255, 255, 0.4);
  }

  /* Content panel (section toggle "content_panel"): wraps each slide's content in a
     solid panel in the slide's color-scheme background, pushed left/right by the
     slide's own content_align. Height "auto" (fits content) or "full" (slide-tall). */
  .studio-slideshow--panel .studio-slideshow__inner {
    background: var(--ss-panel-bg, var(--studio-color-bg));
    padding: 48px;
    border-radius: var(--studio-elements-radius);
    max-width: var(--panel-width, 480px);
  }

  .studio-slideshow--panel-full .studio-slideshow__content {
    align-items: stretch;
    padding-top: 0;
    padding-bottom: 0;
  }

  .studio-slideshow--panel-full .studio-slideshow__inner {
    align-content: center;
    border-radius: 0;
  }

  @media (max-width: 768px) {
    .studio-slideshow--panel .studio-slideshow__inner {
      max-width: none;
      background: transparent;
      padding: 0;
      border-radius: 0;
    }
  }
/* END_SECTION:slideshow */

/* START_SECTION:split-editorial-slideshow (INDEX:66) */
.studio-split-slideshow {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--studio-color-bg);
  }

  /* Track = griglia 1x1: tutte le slide nella stessa cella -> si sovrappongono
     (dissolvenza via opacity) e la cella prende l'altezza dalla slide più alta. */
  .studio-split-slideshow__track {
    display: grid;
    grid-template-columns: 1fr;
  }

  /* Fallback pre-JS: mostra il primo slide finche' il JS non aggiunge .is-loaded.
     Il :not() qui agisce SOLO sulla visibilita' slide (non sulle animazioni titoli, §8). */
  .studio-split-slideshow:not(.is-loaded) .studio-split-slideshow__slide:first-child {
    opacity: 1;
    pointer-events: auto;
  }

  /* Frecce piccole nella barra in basso (accanto al counter): non si sovrappongono
     mai al testo del pannello. Look frosted, indipendenti dallo scheme della slide. */
  .studio-split-slideshow__nav {
    display: flex;
    align-items: center;
    gap: 16px;
    pointer-events: auto;
  }

  .studio-split-slideshow__nav-arrow {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .studio-split-slideshow__nav-arrow svg {
    width: 16px;
    height: 16px;
  }

  .studio-split-slideshow__nav-arrow:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  @media (hover: hover) {
    .studio-split-slideshow__nav-arrow:hover { background: rgba(255, 255, 255, 0.25); }
  }

  /* Mobile: niente frecce (navigazione via swipe + dots). */
  @media (max-width: 768px) {
    .studio-split-slideshow__nav-arrow { display: none; }
  }

  .studio-split-slideshow__bottom {
    position: absolute;
    bottom: 28px;
    left: var(--studio-section-padding);
    right: var(--studio-section-padding);
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 6;
    pointer-events: none;
  }

  .studio-split-slideshow__dots {
    display: flex;
    gap: 8px;
    align-items: center;
    pointer-events: auto;
  }

  .studio-split-slideshow__dot {
    width: 32px;
    height: 2px;
    background: rgba(255, 255, 255, 0.3);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, width 0.2s;
  }

  .studio-split-slideshow__dot--active {
    background: #fff;
    width: 48px;
  }

  .studio-split-slideshow__counter {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    color: rgba(255, 255, 255, 0.6);
    pointer-events: auto;
  }

  .studio-split-slideshow__counter-current { color: #fff; }

  .studio-split-slideshow__counter-line {
    width: 32px;
    height: 1px;
    background: rgba(255, 255, 255, 0.4);
  }
/* END_SECTION:split-editorial-slideshow */

/* START_SECTION:split-editorial (INDEX:67) */
.studio-split__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }

  .studio-split__media {
    position: relative;
    overflow: hidden;
  }

  .studio-split__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-split__placeholder {
    width: 100%;
    height: 100%;
  }

  .studio-split__content {
    height: 100%;
  }

  .studio-split__content--dark {
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
  }

  .studio-split__inner {
    padding: 80px 72px;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 40px;
  }

  .studio-split__eyebrow {
    color: var(--studio-color-accent-3);
    margin-bottom: 20px;
  }

  .studio-split__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 24px;
  }

  .studio-split__text {
    font-size: 1rem;
    color: var(--studio-color-accent-3);
    line-height: 1.7;
    font-weight: 300;
    max-width: 480px;
    margin: 0;
  }

  .studio-split__ctas {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
  }

  /* Match button heights: the primary renders a 20px arrow icon, the secondary has
     text only. On desktop flex-stretch equalises them, but when they wrap onto
     separate lines (mobile) each takes its natural height. Setting the text line-box
     to the icon height keeps both buttons the same height regardless of the arrow. */
  .studio-split__btn-primary,
  .studio-split__btn-secondary {
    line-height: 20px;
  }

  @media (hover: hover) {
    .studio-split__btn-primary:hover { opacity: 0.82; }
  }

  .studio-split__stats-wrap {
    margin: 0;
  }

  .studio-split__stats-divider {
    height: 1px;
    background: var(--studio-color-accent-2);
    margin-bottom: 32px;
  }

  .studio-split__stats {
    display: flex;
    gap: 48px;
  }
  .studio-split__stats--row {
    display: flex;
    flex-wrap: wrap;
    gap: 48px;
  }
  .studio-split__stats--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px 48px;
  }
  .studio-split__stat {
    display: flex;
    flex-direction: column;
  }
  /* Source order is label then value. value_first puts the value on top. */
  .studio-split__stats--value_first .studio-split__stat-label { order: 1; margin: 8px 0 0; }
  .studio-split__stats--value_first .studio-split__stat-value { order: 0; }
  .studio-split__stats--label_first .studio-split__stat-label { order: 0; margin: 0 0 8px; }
  .studio-split__stats--label_first .studio-split__stat-value { order: 1; }

  .studio-split__stat-label {
    font-size: 0.6875rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    font-weight: 600;
    margin: 0 0 8px;
  }

  .studio-split__stat-value {
    font-family: var(--studio-font-heading-family);
    font-size: calc(1.75rem * var(--studio-heading-size-scale));
    font-weight: 700;
    color: var(--studio-color-text);
    margin: 0;
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
  }

  /* Signature block */
  .studio-split__signature {
    display: flex;
    align-items: center;
    gap: 20px;
  }
  .studio-split__signature-img {
    max-height: 60px;
    width: auto;
    display: block;
  }
  .studio-split__signature-sep {
    width: 1px;
    align-self: stretch;
    min-height: 44px;
    background: var(--studio-color-accent-2);
    flex-shrink: 0;
  }
  .studio-split__signature-name {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--studio-color-text);
    margin: 0 0 2px;
  }
  .studio-split__signature-role {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    font-weight: 600;
    margin: 0;
  }

  /* List block */
  .studio-split__list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .studio-split__list--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 32px;
  }
  .studio-split__list--list {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .studio-split__list-item {
    position: relative;
    padding-left: 18px;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--studio-color-text);
  }
  .studio-split__list-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 6px;
    height: 6px;
    background: var(--studio-color-text);
    flex-shrink: 0;
  }

  @media (max-width: 1024px) {
    .studio-split__inner { padding: 64px 48px; }
  }

  @media (max-width: 768px) {
    .studio-split__grid {
      grid-template-columns: 1fr;
    }

    .studio-split__inner {
      padding: 48px 24px;
      gap: 28px;
    }

    .studio-split__stats {
      gap: 28px;
      flex-wrap: wrap;
    }
    .studio-split__stats--grid {
      gap: 24px 28px;
    }
  }

  @media (max-width: 480px) {
    .studio-split__list--grid {
      grid-template-columns: 1fr;
    }
  }
/* END_SECTION:split-editorial */

/* START_SECTION:stats-media (INDEX:68) */
.studio-stats-media__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-stats-media__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }

  /* Column A — media */
  .studio-stats-media__col--media {
    position: relative;
    overflow: hidden;
    min-height: 480px;
  }
  .studio-stats-media__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .studio-stats-media__overlay {
    position: absolute;
    inset: 0;
    background: var(--studio-color-text);
    opacity: 0.4;
  }
  .studio-stats-media__text {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 48px;
  }
  .studio-stats-media__eyebrow {
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-bg);
    margin: 0;
  }
  .studio-stats-media__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: 700;
    font-size: calc(var(--stm-h-size, 3.5) * 1rem * var(--studio-heading-size-scale));
    line-height: 1.05;
    color: var(--studio-color-bg);
    margin: 0;
  }
  .studio-stats-media__subtitle {
    font-size: 1rem;
    line-height: 1.6;
    font-weight: 300;
    color: var(--studio-color-bg);
    max-width: 42ch;
  }
  .studio-stats-media__subtitle p {
    margin: 0;
    color: inherit;
  }
  .studio-stats-media__subtitle p + p {
    margin-top: 0.75em;
  }

  /* Column B — stats */
  .studio-stats-media__col--stats {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px;
  }
  .studio-stats-media__stat {
    padding: 28px 0;
  }
  .studio-stats-media__col--stats .studio-stats-media__stat:first-child {
    padding-top: 0;
  }
  .studio-stats-media__col--stats .studio-stats-media__stat:last-child {
    padding-bottom: 0;
  }
  .studio-stats-media__stat + .studio-stats-media__stat {
    border-top: 1px solid var(--studio-color-accent-2);
  }
  .studio-stats-media__value {
    font-family: var(--studio-font-heading-family);
    font-weight: 700;
    font-size: clamp(2.5rem, 4vw, 4rem);
    line-height: 1;
    color: var(--studio-color-accent-1);
    margin: 0 0 8px;
  }
  .studio-stats-media__num {
    font-variant-numeric: tabular-nums;
  }
  .studio-stats-media__desc {
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--studio-color-text);
    margin: 0;
    max-width: 34ch;
  }

  /* Mobile — single column, photo+text on top, stats below (fixed order) */
  @media (max-width: 768px) {
    .studio-stats-media__grid {
      grid-template-columns: 1fr;
    }
    .studio-stats-media__col--media {
      order: 0;
      min-height: 360px;
    }
    .studio-stats-media__col--stats {
      order: 1;
      padding: 32px 24px;
    }
    .studio-stats-media__text {
      padding: 32px 24px;
    }
    .studio-stats-media__heading {
      font-size: calc(var(--stm-h-size-mobile, 2.5) * 1rem * var(--studio-heading-size-scale));
    }
  }
/* END_SECTION:stats-media */

/* START_SECTION:stats (INDEX:69) */
.studio-stats__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-stats__wrap {
    position: relative;
  }

  /* Desktop: adaptive row, equal-width items */
  .studio-stats__row {
    display: flex;
    gap: 0;
    align-items: stretch;
  }
  .studio-stats__item {
    flex: 1 1 0;
    min-width: 0;
    padding: 16px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 8px;
    position: relative;
  }

  /* Vertical dividers between items (full section height; not before the first).
     In grid the divider spans the whole section (overflows into the section padding via -pad);
     in slider modes the scroll container's overflow clips it to card height. */
  .studio-stats__item + .studio-stats__item::before {
    content: '';
    position: absolute;
    left: 0;
    top: calc(-1 * var(--stats-pad-top, 0px));
    bottom: calc(-1 * var(--stats-pad-bottom, 0px));
    width: 1px;
    background: var(--studio-color-accent-2);
  }
  .studio-stats__row--no-dividers .studio-stats__item + .studio-stats__item::before {
    display: none;
  }

  .studio-stats__value {
    font-family: var(--studio-font-heading-family);
    font-weight: 700;
    font-size: clamp(2.5rem, 4vw, 4rem);
    line-height: 1;
    color: var(--studio-color-text);
    margin: 0;
  }
  .studio-stats__num {
    font-variant-numeric: tabular-nums;
  }
  .studio-stats__label {
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--studio-color-text);
    margin: 0;
  }
  .studio-stats__desc {
    font-size: 0.8125rem;
    line-height: 1.5;
    font-weight: 300;
    color: var(--studio-color-accent-3);
    margin: 0;
  }

  /* Slider primitives (shared) */
  .studio-stats__row--slider {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .studio-stats__row--slider::-webkit-scrollbar { display: none; }
  .studio-stats__row--slider .studio-stats__item {
    scroll-snap-align: start;
    flex: 0 0 auto;
  }

  /* Desktop slider */
  @media (min-width: 769px) {
    .studio-stats__row--slider-desktop {
      overflow-x: auto;
      overflow-y: hidden;
      touch-action: pan-x;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      scrollbar-width: none;
      -ms-overflow-style: none;
      scroll-padding-left: var(--studio-section-padding);
      scroll-padding-right: var(--studio-section-padding);
      padding-left: var(--studio-section-padding);
      padding-right: var(--studio-section-padding);
      margin-left: calc(-1 * var(--studio-section-padding));
      margin-right: calc(-1 * var(--studio-section-padding));
      gap: 24px;
    }
    .studio-stats__row--slider-desktop::-webkit-scrollbar { display: none; }
    .studio-stats__row--slider-desktop .studio-stats__item {
      scroll-snap-align: start;
      flex: 0 0 280px;
      box-sizing: border-box;
    }
  }

  /* Mobile layouts */
  @media (max-width: 768px) {
    .studio-stats__row--mobile-slider {
      display: flex;
      overflow-x: auto;
      overflow-y: hidden;
      touch-action: pan-x;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      scrollbar-width: none;
      -ms-overflow-style: none;
      gap: 16px;
      scroll-padding-left: var(--studio-section-padding);
      scroll-padding-right: var(--studio-section-padding);
      padding-left: var(--studio-section-padding);
      padding-right: var(--studio-section-padding);
      margin-left: calc(-1 * var(--studio-section-padding));
      margin-right: calc(-1 * var(--studio-section-padding));
    }
    .studio-stats__row--mobile-slider::-webkit-scrollbar { display: none; }
    .studio-stats__row--mobile-slider .studio-stats__item {
      scroll-snap-align: start;
      flex: 0 0 75%;
      box-sizing: border-box;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-stats__row,
    .studio-stats__row--slider,
    .studio-stats__row--slider-desktop,
    .studio-stats__row--mobile-slider {
      scroll-behavior: auto;
    }
  }
/* END_SECTION:stats */

/* START_SECTION:store-locator (INDEX:70) */
.studio-store-locator__header {
    margin-bottom: 48px;
  }
  .studio-store-locator__eyebrow {
    display: block;
    margin: 0 0 12px;
    color: var(--studio-color-accent-3);
  }
  .studio-store-locator__heading {
    margin: 0 0 16px;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
  }
  .studio-store-locator__highlight {
    color: var(--studio-color-accent-1);
  }
  .studio-store-locator__subheading {
    max-width: 420px;
    margin: 0 auto;
    line-height: 1.6;
    color: var(--studio-color-text);
    opacity: 0.6;
  }
  .studio-store-locator__search-wrapper {
    position: relative;
    max-width: 480px;
    margin: 0 auto 48px;
  }
  .studio-store-locator__search {
    width: 100%;
    padding: 14px 20px 14px 48px;
    border: 1.5px solid var(--studio-color-accent-2);
    border-radius: 999px;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    font-family: inherit;
    font-size: 0.875rem;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
  }
  .studio-store-locator__search::placeholder {
    color: var(--studio-color-text);
    opacity: 0.5;
  }
  .studio-store-locator__search:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }
  .studio-store-locator__search-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    color: var(--studio-color-text);
    opacity: 0.45;
    pointer-events: none;
  }
  .studio-store-locator__search-icon svg {
    width: 18px;
    height: 18px;
  }
  .studio-store-locator__count {
    margin: 0 0 24px;
    text-align: center;
    font-size: 0.8125rem;
    letter-spacing: 0.05em;
    color: var(--studio-color-text);
    opacity: 0.5;
  }
  .studio-store-locator__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .studio-store-locator__card {
    position: relative;
    padding: 24px;
    border: 1.5px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    background: var(--studio-color-bg);
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  }
  .studio-store-locator__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--studio-color-accent-1);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
  }
  .studio-store-locator__card--hidden {
    display: none;
  }
  .studio-store-locator__badge {
    display: inline-block;
    margin: 0 0 12px;
    padding: 3px 10px;
    border-radius: var(--studio-badge-radius);
    background: var(--studio-color-accent-1);
    color: var(--studio-color-bg);
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }
  @media (min-width: 769px) {
    .studio-store-locator__badge {
      position: absolute;
      top: 16px;
      right: 16px;
      margin: 0;
    }
  }
  .studio-store-locator__card-name {
    margin: 0 0 10px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--studio-color-text);
  }
  .studio-store-locator__address {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.6;
    color: var(--studio-color-text);
    opacity: 0.65;
  }
  .studio-store-locator__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--studio-color-accent-2);
  }
  .studio-store-locator__phone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--studio-color-accent-1);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
  }
  .studio-store-locator__phone svg {
    width: 15px;
    height: 15px;
  }
  .studio-store-locator__maps {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    color: var(--studio-color-text);
    opacity: 0.7;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s;
  }
  .studio-store-locator__maps svg {
    width: 14px;
    height: 14px;
  }
  .studio-store-locator__empty {
    display: none;
    padding: 48px 20px;
    text-align: center;
    font-size: 0.9375rem;
    color: var(--studio-color-text);
    opacity: 0.5;
  }
  .studio-store-locator__empty--visible {
    display: block;
  }
  @media (hover: hover) {
    .studio-store-locator__card:hover::before {
      transform: scaleX(1);
    }
    .studio-store-locator__phone:hover {
      opacity: 0.7;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .studio-store-locator__card,
    .studio-store-locator__card::before {
      transition: none;
    }
  }
/* END_SECTION:store-locator */

/* START_SECTION:testimonials (INDEX:71) */
.studio-testimonials__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 40px;
  }

  .studio-testimonials__headings {
    display: flex;
    flex-direction: column;
  }

  .studio-testimonials__eyebrow {
    color: var(--studio-color-accent-3);
    margin-bottom: 16px;
  }

  .studio-testimonials__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 12px;
  }

  .studio-testimonials__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-testimonials__subheading {
    font-size: 0.9375rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    margin: 0;
    max-width: 400px;
  }

  .studio-testimonials__rating {
    flex-shrink: 0;
    padding-top: 8px;
  }

  .studio-testimonials__rating-score {
    font-family: var(--studio-font-heading-family);
    font-size: calc(4rem * var(--studio-heading-size-scale));
    font-weight: 900;
    color: var(--studio-color-text);
    line-height: 1;
    display: block;
    margin-bottom: 8px;
  }

  .studio-testimonials__stars {
    display: flex;
    gap: 4px;
    color: var(--studio-color-text);
    margin-bottom: 8px;
  }

  .studio-testimonials__reviews-count {
    font-size: 0.6875rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    margin: 0;
    font-weight: 600;
  }

  .studio-testimonials__divider {
    height: 1px;
    background: var(--studio-color-accent-2);
    margin-bottom: 32px;
  }

  .studio-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }

  .studio-testimonials__card {
    background: var(--studio-color-accent-2);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    padding: 32px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .studio-testimonials__card-image {
    margin: -32px -32px 24px;
    aspect-ratio: 16/9;
    overflow: hidden;
    border-radius: var(--studio-elements-radius) var(--studio-elements-radius) 0 0;
    flex-shrink: 0;
  }

  .studio-testimonials__card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-testimonials__card-stars {
    display: flex;
    gap: 4px;
    color: var(--studio-color-text);
    margin-bottom: 20px;
  }

  .studio-testimonials__card-text {
    font-size: 1rem;
    color: var(--studio-color-text);
    line-height: 1.65;
    font-weight: 300;
    flex: 1;
    margin: 0 0 24px;
  }

  .studio-testimonials__card-divider {
    height: 1px;
    background: var(--studio-color-accent-3);
    margin-bottom: 24px;
  }

  .studio-testimonials__author {
    display: flex;
    align-items: center;
    gap: 14px;
  }

  .studio-testimonials__avatar {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: var(--studio-color-accent-3);
    color: var(--studio-color-text);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
  }

  .studio-testimonials__avatar--photo {
    object-fit: cover;
    background: transparent;
  }

  .studio-testimonials__author-name {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--studio-color-text);
    margin: 0 0 3px;
  }

  .studio-testimonials__author-location {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    margin: 0;
    font-weight: 500;
  }

  .studio-testimonials__slider-controls {
    display: none;
    justify-content: center;
    margin-top: 24px;
  }

  @media (max-width: 1024px) {
    .studio-testimonials__grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  /* Auto-scroll marquee: clones hidden until an auto layout reveals them per-breakpoint */
  .studio-testimonials__card--clone {
    display: none;
  }

  /* Pause on hover and keyboard focus so the reader can stop to read */
  .studio-testimonials__grid:hover,
  .studio-testimonials__grid:focus-within {
    animation-play-state: paused;
  }

  @keyframes studio-testimonials-marquee-left {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-50%, 0, 0); }
  }
  @keyframes studio-testimonials-marquee-right {
    from { transform: translate3d(-50%, 0, 0); }
    to   { transform: translate3d(0, 0, 0); }
  }
/* END_SECTION:testimonials */

/* START_SECTION:text-columns-with-images (INDEX:72) */
.studio-text-columns-with-images__head {
    max-width: 680px;
    margin-bottom: 72px;
  }

  .studio-text-columns-with-images__eyebrow {
    margin-bottom: 16px;
  }

  .studio-text-columns-with-images__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 20px;
  }

  .studio-text-columns-with-images__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-text-columns-with-images__subheading {
    font-size: 1rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    line-height: 1.7;
    margin: 0;
  }

  .studio-text-columns-with-images__slider-controls {
    display: none;
    justify-content: center;
    margin-top: 24px;
  }

  .studio-text-columns-with-images__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px 32px;
  }

  .studio-text-columns-with-images__member {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .studio-text-columns-with-images__avatar-wrap {
    width: 70%;
    aspect-ratio: 1;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 28px;
    background: var(--studio-color-Background);
    flex-shrink: 0;
  }

  .studio-text-columns-with-images__avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-text-columns-with-images__avatar--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
  }

  .studio-text-columns-with-images__initials {
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    color: var(--studio-color-accent-3);
  }

  .studio-text-columns-with-images__info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
  }

  .studio-text-columns-with-images__name {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--studio-color-text);
    margin: 0;
    letter-spacing: 0.01em;
  }

  .studio-text-columns-with-images__role {
    color: var(--studio-color-accent-3);
    margin: 0;
    font-size: 0.6875rem;
  }

  .studio-text-columns-with-images__bio {
    font-size: 0.875rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    line-height: 1.6;
    margin: 4px 0 0;
    max-width: 240px;
  }

  @media (max-width: 1024px) {
    .studio-text-columns-with-images__grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }
/* END_SECTION:text-columns-with-images */

/* START_SECTION:values (INDEX:73) */
/* Contain the full-bleed grid so it never creates horizontal scroll */
  .studio-values { overflow-x: clip; }

  /* Full-width grid: break out of the container edge-to-edge (header stays contained) */
  .studio-values__grid--width-full {
    width: 100vw;
    max-width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
    border-radius: 0;
  }
  /* A touch more horizontal padding so content isn't flush to the screen edges;
     the divider lines still run to the very edge. */
  .studio-values__grid--width-full .studio-values__card {
    padding-left: clamp(24px, 3vw, 64px);
    padding-right: clamp(24px, 3vw, 64px);
  }

  .studio-values__head {
    margin-bottom: 48px;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .studio-values__head--left   { text-align: left; align-items: flex-start; }
  .studio-values__head--center { text-align: center; align-items: center; }
  .studio-values__head--right  { text-align: right; align-items: flex-end; }

  .studio-values__eyebrow { margin: 0; }

  .studio-values__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: 1.05;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-values__highlight {
    color: var(--studio-color-accent-1);
  }
  .studio-values__subheading {
    font-size: 0.9375rem;
    font-weight: 300;
    color: var(--studio-color-accent-3);
    margin: 0;
    max-width: 560px;
  }

  /* Grid: 1px gap on a divider-coloured background creates thin separator lines */
  .studio-values__grid {
    display: grid;
    gap: 1px;
    background: var(--studio-color-accent-2);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    overflow: hidden;
  }
  .studio-values__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
  .studio-values__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
  .studio-values__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
  .studio-values__grid--cols-5 { grid-template-columns: repeat(5, 1fr); }

  .studio-values__card {
    position: relative;
    background: var(--studio-color-bg);
    padding: 44px 40px 56px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    transition: background-color 0.3s ease, color 0.3s ease;
  }
  .studio-values__card--link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
  }
  .studio-values__card--align-left   { text-align: left;   align-items: flex-start; }
  .studio-values__card--align-center { text-align: center; align-items: center; }
  .studio-values__card--align-right  { text-align: right;  align-items: flex-end; }

  .studio-values__icon {
    width: 56px;
    height: 56px;
    border: 1px solid var(--studio-color-text);
    border-radius: var(--studio-elements-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--studio-color-text);
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
    flex-shrink: 0;
  }
  .studio-values__icon svg {
    width: 24px;
    height: 24px;
  }

  .studio-values__card-eyebrow {
    font-size: 0.6875rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    margin: 0;
    color: var(--studio-color-accent-3);
    transition: color 0.3s ease;
  }

  .studio-values__title {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-size: 1.25rem;
    margin: 0;
    color: var(--studio-color-text);
    transition: color 0.3s ease;
  }

  .studio-values__desc {
    font-size: 0.9375rem;
    line-height: 1.6;
    font-weight: 300;
    margin: 0;
    color: var(--studio-color-accent-3);
    transition: color 0.3s ease;
  }

  .studio-values__num {
    position: absolute;
    top: 44px;
    right: 40px;
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    font-weight: 600;
    color: var(--studio-color-accent-3);
    transition: color 0.3s ease;
  }

  .studio-values__arrow {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    color: var(--studio-color-text);
    transition: transform 0.3s ease, color 0.3s ease;
  }
  .studio-values__arrow svg {
    width: 20px;
    height: 20px;
  }

  /* Hover invert (boxed only, opt-in via --hoverable) */
  @media (hover: hover) {
    .studio-values__grid--hoverable .studio-values__card:hover {
      background: var(--studio-color-text);
    }
    .studio-values__grid--hoverable .studio-values__card:hover .studio-values__icon {
      background: var(--studio-color-bg);
      border-color: var(--studio-color-bg);
      color: var(--studio-color-text);
    }
    .studio-values__grid--hoverable .studio-values__card:hover .studio-values__card-eyebrow,
    .studio-values__grid--hoverable .studio-values__card:hover .studio-values__title,
    .studio-values__grid--hoverable .studio-values__card:hover .studio-values__desc,
    .studio-values__grid--hoverable .studio-values__card:hover .studio-values__num,
    .studio-values__grid--hoverable .studio-values__card:hover .studio-values__arrow {
      color: var(--studio-color-bg);
    }
    .studio-values__grid--hoverable .studio-values__card--link:hover .studio-values__arrow {
      transform: translateX(6px);
    }
  }

  /* ---- Minimal style (trust badges): no box, no hover invert, thin dividers ---- */
  .studio-values__grid--style-minimal {
    background: transparent;
    border: 0;
    gap: 0;
  }
  .studio-values__grid--style-minimal .studio-values__card {
    background: transparent;
    padding: 24px 32px;
    text-align: center;
    align-items: center;
    gap: 14px;
  }
  /* Thin vertical dividers between columns (not before the first) */
  .studio-values__grid--style-minimal .studio-values__card + .studio-values__card {
    border-left: 1px solid var(--studio-color-accent-2);
  }
  .studio-values__grid--style-minimal .studio-values__icon {
    width: 48px;
    height: 48px;
  }
  .studio-values__grid--style-minimal .studio-values__title {
    font-size: 1rem;
  }

  @media (max-width: 768px) {
    .studio-values__head { margin-bottom: 32px; }
    .studio-values__grid--mcols-1 { grid-template-columns: 1fr; }
    .studio-values__grid--mcols-2 { grid-template-columns: repeat(2, 1fr); }
    .studio-values__card { padding: 32px 24px 44px; }
    .studio-values__num { top: 32px; right: 24px; }

    /* Mobile slider: horizontal scroll. Breakout to the screen edges uses the theme
       padding var (same fix as the other sliders) — never a hardcoded px. */
    .studio-values__grid--mcols-slider {
      display: flex;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      scrollbar-width: none;
      -ms-overflow-style: none;
      gap: 16px;
      background: transparent;
      border: 0;
      border-radius: 0;
      scroll-padding-left: var(--studio-section-padding);
      scroll-padding-right: var(--studio-section-padding);
      padding-left: var(--studio-section-padding);
      padding-right: var(--studio-section-padding);
      margin-left: calc(-1 * var(--studio-section-padding));
      margin-right: calc(-1 * var(--studio-section-padding));
    }
    .studio-values__grid--mcols-slider::-webkit-scrollbar { display: none; }
    .studio-values__grid--mcols-slider .studio-values__card {
      flex: 0 0 80%;
      scroll-snap-align: start;
      box-sizing: border-box;
    }
    /* Boxed cards lose the shared-grid border in a scroll → each becomes its own box */
    .studio-values__grid--mcols-slider.studio-values__grid--style-boxed .studio-values__card {
      border: 1px solid var(--studio-color-accent-2);
      border-radius: var(--studio-elements-radius);
    }

    /* Minimal on mobile: keep moderate padding; swap vertical dividers for horizontal where stacked */
    .studio-values__grid--style-minimal .studio-values__card { padding: 24px; }
    .studio-values__grid--style-minimal.studio-values__grid--mcols-1 .studio-values__card + .studio-values__card {
      border-left: 0;
      border-top: 1px solid var(--studio-color-accent-2);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-values__card,
    .studio-values__icon,
    .studio-values__card-eyebrow,
    .studio-values__title,
    .studio-values__desc,
    .studio-values__num,
    .studio-values__arrow {
      transition: none;
    }
    .studio-values__card--link:hover .studio-values__arrow {
      transform: none;
    }
  }
/* END_SECTION:values */

/* START_SECTION:video-carousel (INDEX:74) */
.studio-video-carousel {
    padding-top: var(--studio-section-gap);
    padding-bottom: var(--studio-section-gap);
  }

  .studio-video-carousel__head {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
  }

  .studio-video-carousel__head-mid {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .studio-video-carousel__headings {
    flex: 1;
    max-width: 680px;
  }

  .studio-video-carousel__head-right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
  }

  .studio-video-carousel__eyebrow {
    color: var(--studio-color-accent-3);
  }

  .studio-video-carousel__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 0;
  }

  .studio-video-carousel__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-video-carousel__subheading {
    font-size: 0.9375rem;
    color: var(--studio-color-accent-3);
    font-weight: 300;
    max-width: 480px;
    line-height: 1.6;
    margin: 0;
  }

  .studio-video-carousel__counter {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    white-space: nowrap;
  }

  .studio-video-carousel__divider {
    border-bottom: 1px solid var(--studio-color-accent-2);
    margin-bottom: 24px;
  }

  @media (min-width: 769px) {
    .studio-video-carousel__head-mid {
      flex-direction: row;
      align-items: flex-start;
      justify-content: space-between;
      gap: 24px;
    }
  }

  .studio-video-carousel__card {
    display: flex;
    flex-direction: column;
    cursor: pointer;
    background: #111111;
    color: #fff;
    overflow: hidden;
  }

  .studio-video-carousel__media {
    position: relative;
    background: #0a0a0a;
  }

  .studio-video-carousel__video,
  .studio-video-carousel__placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-video-carousel__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: 12px;
    background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, transparent 40%, transparent 60%, rgba(0,0,0,0.1) 100%);
    transition: opacity 0.3s ease;
  }

  .studio-vc--playing .studio-video-carousel__overlay {
    opacity: 0;
    pointer-events: none;
  }

  .studio-video-carousel__category {
    display: inline-block;
    align-self: flex-start;
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: #fff;
    color: #111;
    padding: 3px 8px;
    border-radius: 2px;
  }

  .studio-video-carousel__duration {
    display: flex;
    align-items: center;
    gap: 4px;
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 0.6875rem;
    font-weight: 600;
    color: rgba(255,255,255,0.9);
    letter-spacing: 0.04em;
  }

  .studio-video-carousel__duration svg {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
  }

  .studio-video-carousel__play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 52px;
    height: 52px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    border: none;
    color: #111;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s, transform 0.2s;
  }

  @media (hover: hover) {
    .studio-video-carousel__play-btn:hover {
      background: #fff;
      transform: translate(-50%, -50%) scale(1.08);
    }
  }

  .studio-video-carousel__play-btn:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
  }

  .studio-video-carousel__footer {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  .studio-video-carousel__avatar-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .studio-video-carousel__avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: rgba(255,255,255,0.15);
  }

  .studio-video-carousel__avatar--initials {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: rgba(255,255,255,0.7);
  }

  .studio-video-carousel__handle {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255,255,255,0.85);
    letter-spacing: 0.02em;
  }

  .studio-video-carousel__caption {
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.6);
    line-height: 1.45;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-video-carousel__overlay,
    .studio-video-carousel__play-btn {
      transition: none;
    }
  }

  @media (max-width: 768px) {
    /* Invert arrows ↔ counter on mobile */
    .studio-video-carousel__head-right {
      flex-direction: row-reverse;
    }

    /* Optional: move counter + arrows below the videos (mobile only).
       display:contents flattens the pure-layout wrappers (no role/aria, no visual styles)
       so the single controls block can be re-ordered below the row — no DOM change,
       single arrow set preserved. Spacing re-established via the column gap. */
    .studio-video-carousel--mc-below [data-studio-slider] {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .studio-video-carousel--mc-below .studio-video-carousel__head,
    .studio-video-carousel--mc-below .studio-video-carousel__head-mid {
      display: contents;
    }
    .studio-video-carousel--mc-below .studio-video-carousel__head-right {
      order: 99;
    }
    .studio-video-carousel--mc-below .studio-video-carousel__divider {
      margin-bottom: 0;
    }
  }
/* END_SECTION:video-carousel */

/* START_SECTION:video-hero (INDEX:75) */
.studio-vh-wrap {
    background: transparent;
  }

  .studio-video-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    color: #fff;
    background: #0a0a0a;
  }

  .studio-video-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
  }

  .studio-video-hero__bg-media,
  .studio-video-hero__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Mobile video override — only when both a desktop and a mobile video are set */
  .studio-video-hero__bg-media--mobile {
    display: none;
  }

  @media (max-width: 768px) {
    .studio-video-hero__bg--has-mobile .studio-video-hero__bg-media--desktop {
      display: none;
    }
    .studio-video-hero__bg--has-mobile .studio-video-hero__bg-media--mobile {
      display: block;
    }
  }

  .studio-video-hero__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .studio-video-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    padding: var(--studio-section-padding);
    padding-bottom: 48px;
    gap: 40px;
  }

  .studio-video-hero__text {
    display: flex;
    flex-direction: column;
    flex: 1;
  }

  .studio-video-hero__eyebrow {
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 16px;
  }

  .studio-video-hero__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: #fff;
    margin-bottom: 16px;
    max-width: 600px;
  }

  .studio-video-hero__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-video-hero__subheading {
    font-size: 0.9375rem;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 300;
    line-height: 1.65;
    max-width: 480px;
    margin: 0;
  }

  .studio-video-hero__controls {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    align-self: flex-end;
  }

  .studio-video-hero__play-btn,
  .studio-video-hero__mute-btn {
    width: 56px;
    height: 56px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s, transform 0.2s;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  /* The 'play' icon is a fill-less <path> (defaults to black) — make it follow the button color */
  .studio-video-hero__play-btn svg {
    fill: currentColor;
  }

  @media (hover: hover) {
    .studio-video-hero__play-btn:hover,
    .studio-video-hero__mute-btn:hover {
      background: rgba(255, 255, 255, 0.25);
      transform: scale(1.06);
    }
  }

  .studio-video-hero__progress-wrap {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    height: 2px;
    background: rgba(255, 255, 255, 0.15);
  }

  .studio-video-hero__progress-fill {
    height: 100%;
    background: #fff;
    transition: width 0.5s linear;
  }

  @media (max-width: 768px) {
    .studio-video-hero__content {
      flex-direction: column;
      align-items: flex-start !important;
      gap: 24px;
      padding: 24px;
      padding-bottom: 32px;
    }

    .studio-video-hero__text {
      align-items: flex-start !important;
      text-align: left !important;
    }

    .studio-video-hero__controls {
      align-self: flex-end;
    }

    .studio-video-hero__play-btn,
    .studio-video-hero__mute-btn {
      width: 48px;
      height: 48px;
    }
  }
/* END_SECTION:video-hero */

/* START_SECTION:visual-step (INDEX:76) */
.studio-visual-step {
    --vstep-inactive: var(--studio-color-accent-3);
    --vstep-border: var(--studio-color-accent-2);
    background: var(--studio-color-bg);
  }

  .studio-visual-step__inner--full {
    padding-inline: var(--studio-section-padding);
  }

  .studio-visual-step__intro {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 620px;
  }
  .studio-visual-step__eyebrow {
    color: var(--studio-color-accent-3);
    margin: 0;
  }
  .studio-visual-step__heading {
    color: var(--studio-color-text);
    margin: 0;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
  }
  .studio-visual-step__subheading {
    color: var(--studio-color-text);
    opacity: 0.75;
    max-width: 46ch;
  }
  .studio-visual-step__subheading > :first-child { margin-top: 0; }
  .studio-visual-step__subheading > :last-child { margin-bottom: 0; }

  .studio-visual-step__counter-current { color: var(--studio-color-text); }

  /* Viewer + griglia */
  .studio-visual-step__viewer { margin-top: 40px; }
  .studio-visual-step__grid { display: grid; gap: 24px; }

  /* Stage = colonna media */
  .studio-visual-step__stage { position: relative; }
  .studio-visual-step__media {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.6s ease;
    pointer-events: none;
  }
  .studio-visual-step__media.is-active {
    opacity: 1;
    pointer-events: auto;
  }
  /* Fallback pre-JS: mostra il primo media finche' il JS non aggiunge .is-loaded.
     Il :not() qui agisce SOLO sulla visibilita' media (non sulle animazioni titoli, §8). */
  .studio-visual-step:not(.is-loaded) .studio-visual-step__media:first-child { opacity: 1; }

  .studio-visual-step__media-inner {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: var(--studio-color-text);
  }
  .studio-visual-step__media-inner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--vstep-overlay-color);
    opacity: var(--vstep-overlay-opacity);
    pointer-events: none;
    z-index: 1;
  }
  .studio-visual-step__media-inner .studio-visual-step__img,
  .studio-visual-step__media-inner .studio-visual-step__img img,
  .studio-visual-step__media-inner .studio-visual-step__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .studio-visual-step__video {
    position: absolute;
    inset: 0;
  }

  /* Overlay (badge / etichetta / numerone) */
  .studio-visual-step__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
  }
  .studio-visual-step__badge {
    position: absolute;
    top: 22px;
    left: 22px;
    display: inline-block;
    padding: 7px 12px;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
    border-radius: var(--studio-badge-radius);
    font-family: var(--studio-font-heading-family);
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }
  .studio-visual-step__media-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    padding: 0 24px;
    text-align: center;
    color: var(--studio-color-bg);
    opacity: 0.55;
    font-family: var(--studio-font-heading-family);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.3em;
    text-transform: uppercase;
  }
  .studio-visual-step__media-number {
    position: absolute;
    bottom: 18px;
    left: 28px;
    color: var(--studio-color-bg);
    opacity: 0.92;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 0.8;
    font-size: clamp(56px, 9vw, 150px);
  }

  /* Lista step */
  .studio-visual-step__list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .studio-visual-step__step { border-bottom: 1px solid var(--vstep-border); }
  .studio-visual-step__step:first-child { border-top: 1px solid var(--vstep-border); }
  .studio-visual-step__step-btn {
    width: 100%;
    display: flex;
    gap: 20px;
    align-items: flex-start;
    background: none;
    border: none;
    padding: 26px 4px;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
  }
  .studio-visual-step__step-num {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid var(--vstep-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--studio-font-heading-family);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--vstep-inactive);
    transition: background 0.25s, color 0.25s, border-color 0.25s;
  }
  .studio-visual-step__step-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .studio-visual-step__step-title {
    font-family: var(--studio-font-heading-family);
    font-size: 1.375rem;
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: 1.2;
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--vstep-inactive);
    transition: color 0.25s;
  }
  .studio-visual-step__step-text {
    color: var(--vstep-inactive);
    line-height: 1.6;
    transition: color 0.25s;
  }
  .studio-visual-step__step-text > :first-child { margin-top: 0; }
  .studio-visual-step__step-text > :last-child { margin-bottom: 0; }
  .studio-visual-step__step-meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--vstep-inactive);
    font-family: var(--studio-font-heading-family);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }
  .studio-visual-step__step-meta svg {
    width: 14px;
    height: 14px;
  }

  /* Step attivo */
  .studio-visual-step__step.is-active .studio-visual-step__step-title { color: var(--studio-color-text); }
  .studio-visual-step__step.is-active .studio-visual-step__step-text { color: var(--studio-color-text); }
  .studio-visual-step__step.is-active .studio-visual-step__step-num {
    background: var(--studio-color-text);
    border-color: var(--studio-color-text);
    color: var(--studio-color-bg);
  }

  @media (hover: hover) {
    .studio-visual-step__step-btn:hover .studio-visual-step__step-title { color: var(--studio-color-text); }
  }
  .studio-visual-step__step-btn:focus-visible {
    outline: 2px solid var(--studio-color-text);
    outline-offset: -2px;
  }

  /* Navigazione mobile (nascosta su desktop) */
  .studio-visual-step__mnav { display: none; }
  .studio-visual-step__dots {
    display: flex;
    gap: 8px;
    align-items: center;
  }
  .studio-visual-step__dot {
    width: 28px;
    height: 2px;
    background: var(--vstep-border);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s, width 0.2s;
  }
  .studio-visual-step__dot--active {
    background: var(--studio-color-text);
    width: 42px;
  }
  .studio-visual-step__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--studio-color-text);
    color: var(--studio-color-bg);
    padding: 16px 18px;
    border-radius: var(--studio-btn-radius);
  }
  .studio-visual-step__bar-counter {
    font-family: var(--studio-font-heading-family);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }
  .studio-visual-step__bar-counter .studio-visual-step__counter-current { color: var(--studio-color-bg); }
  .studio-visual-step__bar-arrows {
    display: flex;
    gap: 10px;
  }
  .studio-visual-step__arrow {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: transparent;
    border: 1px solid var(--studio-color-bg);
    color: var(--studio-color-bg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    transition: opacity 0.2s;
  }
  .studio-visual-step__arrow svg {
    width: 16px;
    height: 16px;
  }
  .studio-visual-step__arrow:focus-visible {
    outline: 2px solid var(--studio-color-bg);
    outline-offset: 2px;
  }
  @media (hover: hover) {
    .studio-visual-step__arrow:hover { opacity: 0.7; }
  }

  /* Layout desktop: due colonne a filo (card unica), lo stage si stira all'altezza del pannello. */
  @media (min-width: 769px) {
    /* Full width: edge-to-edge su desktop (niente gutter laterale, come split). */
    .studio-visual-step__inner--full { padding-inline: 0; }
    .studio-visual-step__grid {
      grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
      gap: 0;
      align-items: stretch;
    }
    .studio-visual-step__stage { min-height: 320px; }
    .studio-visual-step__col {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 40px;
      background: var(--studio-color-bg);
      padding: clamp(40px, 4vw, 64px);
    }
  }

  /* Layout mobile: una colonna, carosello (solo lo step attivo visibile). */
  @media (max-width: 768px) {
    .studio-visual-step__grid {
      grid-template-columns: 1fr;
      gap: 0;
    }
    /* Mobile (full e contained): la colonna si dissolve, intro sopra la foto, stage e lista riordinati.
       In contained tutto questo vive dentro la card (viewer) — sfondo/raggio/padding nel <style> dinamico. */
    .studio-visual-step__col { display: contents; }
    .studio-visual-step__intro { order: 1; margin-bottom: 24px; }
    .studio-visual-step__stage { order: 2; }
    .studio-visual-step__list { order: 3; margin-top: 24px; }
    /* Solo lo step attivo e' visibile: classe positiva, niente :not() (§24). */
    .studio-visual-step__step {
      display: none;
      border: none;
      padding: 0;
    }
    /* Il border-top del primo step (specificità 0,2,0) batterebbe il border:none qui sopra (0,1,0):
       lo neutralizzo con pari specificità, più avanti in sorgente. */
    .studio-visual-step__step:first-child { border-top: none; }
    .studio-visual-step__step.is-active { display: block; }
    .studio-visual-step:not(.is-loaded) .studio-visual-step__step:first-child { display: block; }
    .studio-visual-step__step-btn {
      padding: 0;
      cursor: default;
    }
    .studio-visual-step__step-num { display: none; }
    .studio-visual-step__media-number {
      left: auto;
      right: 22px;
    }
    .studio-visual-step__mnav {
      display: flex;
      flex-direction: column;
      gap: 18px;
      margin-top: 20px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-visual-step__media { transition: none; }
    .studio-visual-step__step-title,
    .studio-visual-step__step-text,
    .studio-visual-step__step-num { transition: none; }
  }
/* END_SECTION:visual-step */

/* START_SECTION:wishlist (INDEX:78) */
.studio-wishlist__head {
    margin-bottom: 40px;
  }
  .studio-wishlist__head--center { text-align: center; }
  .studio-wishlist__head--left   { text-align: left; }
  .studio-wishlist__head--right  { text-align: right; }

  .studio-wishlist__eyebrow {
    margin: 0 0 12px;
  }

  .studio-wishlist__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    line-height: 1.05;
    margin: 0;
    color: var(--studio-color-text);
  }
  .studio-wishlist__highlight {
    color: var(--studio-color-accent-1);
  }

  .studio-wishlist__grid {
    display: grid;
  }
  .studio-wishlist__grid[hidden] { display: none; }

  @media (max-width: 768px) {
    .studio-wishlist__head { margin-bottom: 28px; }
  }

  .studio-wishlist__empty {
    text-align: center;
    padding: 48px 24px 16px;
  }
  .studio-wishlist__empty[hidden] { display: none; }
  .studio-wishlist__empty-text {
    font-size: 1.0625rem;
    color: var(--studio-color-accent-3);
    margin: 0 0 24px;
  }
  .studio-wishlist__empty-cta:focus-visible {
    outline: 2px solid var(--studio-color-accent-1);
    outline-offset: 2px;
  }

  @media (prefers-reduced-motion: reduce) {
    .studio-wishlist__empty-cta { transition: none; }
  }
/* END_SECTION:wishlist */

/* CSS from block stylesheet tags */
/* START_BLOCK:group (INDEX:79) */
.group {
    display: flex;
    flex-wrap: nowrap;
    overflow: hidden;
    width: 100%;
  }

  .group--horizontal {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 0 var(--padding);
  }

  .group--vertical {
    flex-direction: column;
    align-items: var(--alignment);
    padding: var(--padding) 0;
  }
/* END_BLOCK:group */

/* START_BLOCK:slideshow-button (INDEX:84) */
.studio-slideshow__btn {
    flex: 0 0 auto;
  }

  /* La regola condivisa nasconde la freccia sugli outline con display:none (la toglie
     dal layout -> l'outline sarebbe piu' basso del solid). Qui la rimetto in flusso ma
     a LARGHEZZA 0 e invisibile: riserva solo l'ALTEZZA (20px, = icona) cosi' l'outline
     resta alto come il solid SENZA lo spazio vuoto a destra. gap:0 toglie il gap
     testo-freccia. Specificita' > 0,1,1 della regola condivisa, niente !important. */
  .studio-slideshow__btn.studio-btn--outline-light {
    gap: 0;
  }
  .studio-slideshow__btn.studio-btn--outline-light svg {
    display: inline-block;
    visibility: hidden;
    width: 0;
    height: 20px;
  }

  @media (max-width: 768px) {
    .studio-slideshow__btn {
      flex: 0 0 100%;
      justify-content: center;
    }
  }
/* END_BLOCK:slideshow-button */

/* START_BLOCK:slideshow-eyebrow (INDEX:85) */
.studio-slideshow__eyebrow {
    flex: 0 0 100%;
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ss-eyebrow, var(--studio-color-accent-3));
  }
/* END_BLOCK:slideshow-eyebrow */

/* START_BLOCK:slideshow-heading (INDEX:86) */
.studio-slideshow__heading {
    flex: 0 0 100%;
    margin: 0;
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    font-size: calc(var(--ss-h-size, 7) * 1rem * var(--studio-heading-size-scale));
    line-height: 0.95;
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--ss-heading, var(--studio-color-text));
  }

  .studio-slideshow__highlight {
    color: var(--ss-hl, #F97316);
    font-style: var(--ss-hl-style, italic);
  }

  @media (max-width: 768px) {
    .studio-slideshow__heading {
      font-size: calc(var(--ss-h-size-m, 3.5) * 1rem * var(--studio-heading-size-scale));
    }
  }
/* END_BLOCK:slideshow-heading */

/* START_BLOCK:slideshow-slide (INDEX:87) */
.studio-slideshow__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.7s ease;
    pointer-events: none;
  }

  /* Stato attivo gestito dal JS della sezione; fallback pre-JS sul primo slide nella sezione. */
  .studio-slideshow__slide--active {
    opacity: 1;
    pointer-events: all;
  }

  .studio-slideshow__bg {
    position: absolute;
    inset: 0;
  }

  .studio-slideshow__bg--desktop {
    display: block;
  }

  .studio-slideshow__bg--mobile {
    display: none;
  }

  .studio-slideshow__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-slideshow__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .studio-slideshow__content {
    position: absolute;
    inset: 0;
    display: flex;
    padding: 80px var(--studio-section-padding);
    z-index: 2;
  }

  .studio-slideshow__content--v-top {
    align-items: flex-start;
  }

  .studio-slideshow__content--v-center {
    align-items: center;
  }

  .studio-slideshow__content--v-bottom {
    align-items: flex-end;
  }

  .studio-slideshow__content--left {
    justify-content: flex-start;
  }

  .studio-slideshow__content--center {
    justify-content: center;
  }

  .studio-slideshow__content--right {
    justify-content: flex-end;
  }

  .studio-slideshow__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px 14px;
    max-width: 800px;
  }

  .studio-slideshow__content--left .studio-slideshow__inner {
    text-align: left;
    justify-content: flex-start;
  }

  .studio-slideshow__content--center .studio-slideshow__inner {
    text-align: center;
    justify-content: center;
  }

  .studio-slideshow__content--right .studio-slideshow__inner {
    text-align: right;
    justify-content: flex-end;
  }

  @media (max-width: 768px) {
    .studio-slideshow__bg--mobile {
      display: block;
    }

    .studio-slideshow__slide--has-mobile .studio-slideshow__bg--desktop {
      display: none;
    }

    .studio-slideshow__content {
      padding: 60px 24px;
    }
  }
/* END_BLOCK:slideshow-slide */

/* START_BLOCK:slideshow-subheading (INDEX:88) */
.studio-slideshow__subheading {
    flex: 0 0 100%;
    margin: 0;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.65;
    color: var(--ss-subheading, var(--studio-color-text));
  }
/* END_BLOCK:slideshow-subheading */

/* START_BLOCK:split-editorial-slide (INDEX:89) */
.studio-split-slideshow__slide {
    grid-area: 1 / 1;
    min-width: 0;
    background: var(--studio-color-bg);
    opacity: 0;
    transition: opacity 0.7s ease;
    pointer-events: none;
  }

  /* Stato attivo gestito dal JS della sezione; fallback pre-JS sul primo slide. */
  .studio-split-slideshow__slide--active {
    opacity: 1;
    pointer-events: all;
  }

  /* Altezza del grid impostata dalla SEZIONE (desktop fissa, mobile auto). */
  .studio-split-slideshow__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }

  .studio-split-slideshow__media {
    position: relative;
    overflow: hidden;
  }

  .studio-split-slideshow__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .studio-split-slideshow__placeholder {
    width: 100%;
    height: 100%;
  }

  .studio-split-slideshow__media--desktop { display: block; }
  .studio-split-slideshow__media--mobile { display: none; }

  .studio-split-slideshow__content {
    height: 100%;
    overflow-y: auto;
    background: var(--studio-color-bg);
    color: var(--studio-color-text);
  }

  .studio-split-slideshow__inner {
    padding: 64px 72px;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 36px;
  }

  .studio-split-slideshow__eyebrow {
    color: var(--studio-color-accent-3);
    margin-bottom: 20px;
  }

  .studio-split-slideshow__heading {
    font-family: var(--studio-font-heading-family);
    font-weight: var(--studio-font-heading-weight);
    font-style: var(--studio-font-heading-style);
    line-height: var(--studio-heading-line-height);
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
    color: var(--studio-color-text);
    margin-bottom: 24px;
  }

  .studio-split-slideshow__text {
    font-size: 1rem;
    color: var(--studio-color-accent-3);
    line-height: 1.7;
    font-weight: 300;
    max-width: 480px;
    margin: 0;
  }

  .studio-split-slideshow__ctas {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
  }

  @media (hover: hover) {
    .studio-split-slideshow__btn-primary:hover { opacity: 0.82; }
  }

  .studio-split-slideshow__stats-wrap {
    margin: 0;
  }

  .studio-split-slideshow__stats-divider {
    height: 1px;
    background: var(--studio-color-accent-2);
    margin-bottom: 32px;
  }

  .studio-split-slideshow__stats {
    display: flex;
    gap: 48px;
  }
  .studio-split-slideshow__stats--row {
    display: flex;
    flex-wrap: wrap;
    gap: 48px;
  }
  .studio-split-slideshow__stats--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px 48px;
  }
  .studio-split-slideshow__stat {
    display: flex;
    flex-direction: column;
  }
  /* Source order is label then value. value_first puts the value on top. */
  .studio-split-slideshow__stats--value_first .studio-split-slideshow__stat-label { order: 1; margin: 8px 0 0; }
  .studio-split-slideshow__stats--value_first .studio-split-slideshow__stat-value { order: 0; }
  .studio-split-slideshow__stats--label_first .studio-split-slideshow__stat-label { order: 0; margin: 0 0 8px; }
  .studio-split-slideshow__stats--label_first .studio-split-slideshow__stat-value { order: 1; }

  .studio-split-slideshow__stat-label {
    font-size: 0.6875rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--studio-color-accent-3);
    font-weight: 600;
    margin: 0 0 8px;
  }

  .studio-split-slideshow__stat-value {
    font-family: var(--studio-font-heading-family);
    font-size: calc(1.75rem * var(--studio-heading-size-scale));
    font-weight: 700;
    color: var(--studio-color-text);
    margin: 0;
    letter-spacing: var(--studio-heading-letter-spacing);
    text-transform: var(--studio-heading-transform);
  }

  @media (max-width: 1024px) {
    .studio-split-slideshow__inner { padding: 48px 48px; }
  }

  @media (max-width: 768px) {
    .studio-split-slideshow__grid {
      grid-template-columns: 1fr;
      grid-template-rows: auto auto;
      direction: ltr !important;
    }

    /* L'immagine prende l'altezza dalla sezione (image_height_mobile); il contenuto
       cresce in naturale e lo stage si dimensiona sulla slide più lunga. */
    .studio-split-slideshow__content {
      height: auto;
      overflow-y: visible;
    }

    .studio-split-slideshow__media--mobile { display: block; }

    .studio-split-slideshow__inner {
      padding: 36px 28px;
      gap: 24px;
    }

    .studio-split-slideshow__stats {
      gap: 28px;
      flex-wrap: wrap;
    }
    .studio-split-slideshow__stats--grid {
      gap: 24px 28px;
    }
  }
/* END_BLOCK:split-editorial-slide */

/* START_BLOCK:text (INDEX:90) */
.text {
    text-align: var(--text-align);
  }
  .text--title {
    font-size: 2rem;
    font-weight: 700;
  }
  .text--subtitle {
    font-size: 1.5rem;
  }
/* END_BLOCK:text */

/* CSS from snippet stylesheet tags */
/* START_SNIPPET:card-product (INDEX:94) */
/* Overlay link sull'immagine -> PDP (sempre attivo, ogni contesto). z-index:1 = sopra le immagini (auto),
     SOTTO i controlli (badge/quick-add/wishlist z-index:2, quick-view z-index:3) -> i bottoni restano cliccabili,
     solo l'area vuota dell'immagine porta alla PDP. */
  .studio-card__media-link {
    position: absolute;
    inset: 0;
    z-index: 1;
  }

  /* Dot dei color swatch un filo piu' grandi (12 -> 15px). Solo card: la PDP usa .studio-product__swatch (CSS separato).
     Esclude i .studio-swatch--full (i quadrati del tipo "swatch", che restano 24px). Restano cerchi, gap invariato. */
  .studio-swatches .studio-swatch:not(.studio-swatch--full) {
    width: 24px;
    height: 24px;
  }

  /* Anteprima swatch su hover: la 2a immagine ("second image on hover") NON deve coprire la variante.
     La regola .studio-card:hover .__img--secondary (0,3,0) batterebbe l'override swatch-active (0,2,0) di studio.css,
     facendo fade-in della 2a foto sopra l'anteprima. Qui alziamo la specificita' a (0,4,0) per vincere: durante
     l'anteprima swatch teniamo nascosta la 2a immagine e fermo lo zoom. Hover normale (senza swatch) invariato. */
  @media (hover: hover) {
    .studio-card.studio-card--swatch-active:hover .studio-card__img--secondary { opacity: 0; }
    .studio-card.studio-card--swatch-active:hover .studio-card__img--primary { transform: none; }
  }

  /* Variant dropdown (<details>) per il quick-add multi-variante (solo stile "button" persistente).
     Summary = bottone quick-add (marker nativo rimosso, chevron come la bundle); one-at-a-time via name sui <details>.
     Le opzioni usano l'handler globale [data-add-to-cart][data-variant-id] -> nessun JS in questo snippet. */
  .studio-card__variant-details { position: relative; }
  .studio-card__variant-summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
  }
  .studio-card__variant-summary::-webkit-details-marker { display: none; }
  .studio-card__variant-caret { display: inline-flex; transition: transform 0.2s ease; }
  .studio-card__variant-caret svg { width: 14px; height: 14px; }
  .studio-card__variant-details[open] .studio-card__variant-caret { transform: rotate(180deg); }
  .studio-card__variant-menu {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(100% + 8px);
    z-index: 30;
    display: flex;
    flex-direction: column;
    max-height: 220px;
    overflow-y: auto;
    padding: 6px;
    background: var(--studio-color-bg);
    border: 1px solid var(--studio-color-accent-2);
    border-radius: var(--studio-elements-radius);
    box-shadow: var(--studio-shadow);
  }
  .studio-card__variant-option {
    appearance: none;
    -webkit-appearance: none;
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 9px 12px;
    font-size: 0.85rem;
    color: var(--studio-color-text);
    cursor: pointer;
  }
  .studio-card__variant-option[disabled] { opacity: 0.4; cursor: not-allowed; text-decoration: line-through; }
  @media (hover: hover) {
    .studio-card__variant-option:hover:not([disabled]) { background: var(--studio-color-accent-2); }
  }
  .studio-card__variant-option:focus-visible { outline: 2px solid var(--studio-color-accent-1); outline-offset: -2px; }

  /* Galleria swipe (studio_card_swipe). Swipe = scroll-snap CSS puro; i dots-che-seguono-lo-scroll li gestisce
     initCardGalleries in studio.js. Selettori .studio-card__slides / data-card-dot, DISTINTI dalla galleria PDP. */
  .studio-card__slides {
    position: absolute;
    inset: 0;
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .studio-card__slides::-webkit-scrollbar { display: none; }
  .studio-card__slide {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    scroll-snap-align: start;
    display: block;
  }
  .studio-card__slide-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .studio-card__dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 12px;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }
  .studio-card__dots--bg {
    width: fit-content;
    margin: 0 auto;
    padding: 5px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--studio-card-dot-bg) 55%, transparent);
  }
  .studio-card__dot {
    appearance: none;
    -webkit-appearance: none;
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--studio-card-dot);
    opacity: 0.45;
    cursor: pointer;
    pointer-events: auto;
    transition: opacity 0.2s ease, transform 0.2s ease;
  }
  .studio-card__dot.is-active { opacity: 1; transform: scale(1.25); }
  .studio-card__dot:focus-visible { outline: 2px solid var(--studio-color-accent-1); outline-offset: 2px; }
  @media (hover: hover) {
    .studio-card:hover .studio-card__dots--hover-hide { opacity: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    .studio-card__slides { scroll-behavior: auto; }
    .studio-card__dot { transition: none; }
  }
/* END_SNIPPET:card-product */

/* START_SNIPPET:image (INDEX:102) */
.image { display: block; position: relative; overflow: hidden; width: 100%; height: auto; }
  .image > img,
  .image > svg { width: 100%; height: auto; display: block; }
/* END_SNIPPET:image */