/* ---------- Hero slider ---------- */
.myc-hero { position: relative; height: 92vh; min-height: 600px; background: var(--myc-ink); color: #fff; overflow: hidden; }
.myc-hero-slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.12); transition: opacity 1.4s ease, transform 0s linear 1.4s; }
.myc-hero-slide.is-active { opacity: 1; transform: scale(1); transition: opacity 1.4s ease, transform var(--myc-hero-zoom-duration, 8400ms) linear; }
.myc-hero-img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 65% 40%; }
.myc-hero-scrim { position: absolute; inset: 0; background: var(--myc-scrim-hero); pointer-events: none; }
.myc-hero-content-wrap { position: absolute; left: 0; right: 0; bottom: clamp(64px,10vh,120px); max-width: var(--myc-container-max); margin: 0 auto; padding: 0 var(--myc-container-pad); }
.myc-hero-content { max-width: 720px; animation: myc-fade-up 1.1s ease .2s both; }
@keyframes myc-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.myc-hero h1 { font: 400 var(--myc-text-hero)/1.02 var(--myc-font-serif); letter-spacing: -.005em; margin: 0 0 24px; color: #fff; }
.myc-hero p { font-weight: 400; font-size: 1.1875rem; line-height: 1.6; max-width: 40ch; margin: 0 0 34px; color: var(--myc-text-on-dark-2); }
.myc-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.myc-hero-meta { display: flex; flex-wrap: wrap; gap: 16px 26px; margin-top: 34px; font-size: 0.875rem; font-weight: 400; color: var(--myc-text-on-dark-2); }
.myc-hero-dots { position: absolute; left: 0; right: 0; bottom: 40px; max-width: var(--myc-container-max); margin: 0 auto; padding: 0 var(--myc-container-pad); display: flex; justify-content: flex-end; gap: 10px; }
.myc-hero-dot { position: relative; width: 44px; height: 14px; padding: 0; background: none; border: 0; cursor: pointer; display: flex; align-items: center; }
.myc-hero-dot::before { content: ""; position: absolute; inset: -15px 0; } /* 44px tall hit area, same visual line (DEVL-23) */
.myc-hero-dot span { display: block; width: 100%; height: 1px; background: rgba(255,255,255,.35); position: relative; overflow: hidden; }
.myc-hero-dot span::after { content: ""; position: absolute; inset: 0; background: #fff; transform-origin: left; transform: scaleX(0); transition: transform .3s ease; }
.myc-hero-dot.is-done span::after { transform: scaleX(1); }
.myc-hero-dot.is-active span::after { transform: scaleX(1); transition: transform var(--myc-hero-interval, 7000ms) linear; }
@media (max-width: 767px) {
  .myc-hero { height: 100svh; }
  /* Portrait phones show ~a quarter of a 16:9 photo: each slide sets --mpos (Customizer) to keep its subject in frame. */
  .myc-hero-img { object-position: var(--mpos, 50% 50%); }
  .myc-hero-content-wrap { bottom: 72px; }
  .myc-hero h1 br.myc-hero-br { display: none; }
  .myc-hero p { font-size: 1.0625rem; }
  .myc-hero-meta { margin-top: 18px; font-size: 0.78125rem; gap: 14px; }
  .myc-hero-dots { bottom: 32px; }
}
@media (prefers-reduced-motion: reduce) { .myc-hero-slide, .myc-hero-slide.is-active { transform: none; transition: opacity .6s ease; } .myc-hero-content { animation: none; } .myc-model-card img { transition: none; transform: none !important; } }

/* ---------- USP strip ---------- */
.myc-usp { background: #fff; border-bottom: 1px solid var(--myc-line); }
.myc-usp-grid { max-width: var(--myc-container-max); margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); }
.myc-usp-item { display: flex; gap: 16px; align-items: flex-start; padding: 30px clamp(24px,3vw,40px); border-right: 1px solid var(--myc-line); }
.myc-usp-item:last-child { border-right: 0; }
.myc-usp-item > span { color: var(--myc-blue); font-size: 0.9375rem; }
.myc-usp-title { font-size: 0.9375rem; font-weight: 500; }
.myc-usp-text { font-size: 0.84375rem; font-weight: 400; color: var(--myc-grey-2); margin-top: 4px; line-height: 1.45; }
@media (max-width: 1099px) { .myc-usp-grid { grid-template-columns: 1fr 1fr; } .myc-usp-item { border-bottom: 1px solid var(--myc-line); } .myc-usp-item:nth-child(2n) { border-right: 0; } }
@media (max-width: 767px) { .myc-usp-grid { grid-template-columns: 1fr; } .myc-usp-item { border-right: 0; padding: 26px 16px; } }

/* ---------- Sections ---------- */
.myc-section { padding-top: var(--myc-section-pad-y); padding-bottom: var(--myc-section-pad-y); }
.myc-section--white { background: #fff; }
.myc-section--ink, .myc-on-dark { background: var(--myc-ink); color: #fff; }
.myc-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--myc-grid-gap-wide); align-items: center; }
@media (max-width: 767px) { .myc-two-col { grid-template-columns: 1fr; gap: 40px; } }

/* Models */
.myc-models-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--myc-grid-gap); }
.myc-model-card { display: block; color: inherit; }
.myc-model-card figure { margin: 0; aspect-ratio: 4/5; background: var(--myc-sand-2); overflow: hidden; }
.myc-model-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.myc-model-card:hover img, .myc-model-card:focus-visible img { transform: scale(1.04); }
.myc-model-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 8px; margin-top: 16px; }
.myc-model-name { font: 400 1.5rem/1.2 var(--myc-font-serif); margin: 0; }
.myc-model-price { font-size: 0.875rem; font-weight: 400; white-space: nowrap; }
.myc-model-desc { font-size: 0.875rem; font-weight: 400; color: var(--myc-grey-2); line-height: 1.45; margin: 10px 0 12px; }
.myc-model-cta { font: 500 0.75rem/1 var(--myc-font-sans); letter-spacing: var(--myc-ls-nav); text-transform: uppercase; }
@media (max-width: 1099px) { .myc-models-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .myc-model-name { font-size: 1.25rem; } }

/* Configurator */
.myc-config .myc-section { padding-top: var(--myc-section-pad-y-tight); padding-bottom: var(--myc-section-pad-y-tight); }
.myc-steps { list-style: none; padding: 0; margin: 0 0 44px; }
.myc-steps li { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 18px 0; border-top: 1px solid var(--myc-line-on-dark); }
.myc-steps li:last-child { border-bottom: 1px solid var(--myc-line-on-dark); }
.myc-steps-num { font: 500 1.25rem/1 var(--myc-font-serif); color: #9fb0cc; }
.myc-steps-title { font-weight: 500; }
.myc-steps-text { font-size: 0.90625rem; font-weight: 400; color: #b8bfca; margin-top: 2px; }
.myc-config-preview { position: relative; display: block; background: var(--myc-stone); color: var(--myc-ink); }
.myc-config-render { aspect-ratio: 4/4.6; overflow: hidden; }
.myc-config-render img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; transition: transform .8s; }
.myc-config-preview:hover .myc-config-render img { transform: scale(1.03); }
/* Chips overlaid on the photo (prototype .frame .badge / .chipset). */
.myc-config-badge { position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.myc-config-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.myc-chip { display: inline-block; padding: 9px 12px; background: rgba(255,255,255,.92); color: var(--myc-ink); font: 400 0.75rem/1 var(--myc-font-sans); letter-spacing: .06em; }
.myc-chip--ink { background: var(--myc-ink); color: #fff; }

/* Measures */
.myc-photo { position: relative; background: var(--myc-sand-2); overflow: hidden; width: 100%; }
.myc-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.myc-photo--11 { aspect-ratio: 1; max-width: 480px; }
@media (max-width: 767px) { .myc-photo--11 { max-width: none; } }

/* Fabrics banner */
.myc-banner { position: relative; background: #8c8c8c center/cover; color: #fff; overflow: hidden; }
.myc-banner::before { content: ""; position: absolute; inset: 0; background: var(--myc-scrim-banner); }
.myc-banner .myc-container { position: relative; padding-top: clamp(64px,8vw,110px); padding-bottom: clamp(64px,8vw,110px); }
.myc-banner-content { max-width: 620px; }
.myc-banner .myc-eyebrow { color: rgba(255,255,255,.8); }
.myc-banner p { font-weight: 400; font-size: 1.125rem; line-height: 1.6; margin: 18px 0 30px; max-width: 44ch; color: var(--myc-text-on-dark-2); }

/* Swatches */
.myc-swatch-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: var(--myc-grid-gap); }
.myc-swatch { display: block; color: inherit; }
.myc-swatch figure { margin: 0; aspect-ratio: 1; border: 1px solid var(--myc-line); background: var(--myc-sand-2) center/cover; overflow: hidden; }
.myc-swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.myc-swatch-name { margin-top: 10px; font-size: 0.9375rem; font-weight: 400; line-height: 1.3; }
.myc-swatch-meta { font-size: 0.78125rem; font-weight: 400; letter-spacing: .04em; color: var(--myc-grey-2); margin-top: 4px; }
@media (max-width: 1099px) { .myc-swatch-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 767px) { .myc-swatch-grid { grid-template-columns: 1fr 1fr; } }

/* Laboratory */
.myc-lab { position: relative; background: var(--myc-stone) center/cover; }
.myc-lab .myc-container { padding-top: clamp(64px,8vw,110px); padding-bottom: clamp(64px,8vw,110px); display: flex; justify-content: flex-end; }
.myc-lab-card { background: #fff; padding: clamp(28px,4vw,56px) clamp(20px,3.5vw,48px); max-width: 460px; width: 100%; text-align: center; }
.myc-lab-card .myc-h2 { font-size: var(--myc-text-h2-card); margin-bottom: 18px; }
.myc-lab-card p { color: var(--myc-grey-2); margin: 0 0 28px; }
@media (max-width: 1099px) { .myc-lab .myc-container { justify-content: center; } }

/* Details */
.myc-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; max-width: 440px; margin: 34px 0 38px; border-top: 1px solid var(--myc-line); }
.myc-stat { padding: 18px 0; border-bottom: 1px solid var(--myc-line); }
.myc-stat-label { font-size: 0.75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--myc-grey-2); }
.myc-stat-value { font: 400 1.625rem/1.1 var(--myc-font-serif); margin: 6px 0 0; }

/* Testimonials */
.myc-rating-summary { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; margin-bottom: 40px; }
.myc-rating-score { font: 400 4.5rem/1 var(--myc-font-serif); }
.myc-rating-sub { color: var(--myc-grey-2); margin-top: 4px; }
.myc-reviews-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(18px,3vw,40px); margin-top: 48px; }
.myc-review { margin: 0; border-top: 1px solid var(--myc-ink); padding-top: 24px; }
.myc-review blockquote { border-left: 0; padding-left: 0; margin: 0 0 18px; font: 400 1.375rem/1.35 var(--myc-font-serif); text-wrap: pretty; }
.myc-review figcaption { font-size: 0.8125rem; letter-spacing: .12em; text-transform: uppercase; color: var(--myc-grey-2); }
@media (max-width: 767px) { .myc-reviews-grid { grid-template-columns: 1fr; } }

/* Gift + newsletter */
.myc-gift-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--myc-grid-gap); }
.myc-gift-card { padding: clamp(32px,3.5vw,48px) clamp(28px,3vw,40px); }
.myc-gift-card--sand { background: var(--myc-sand); }
.myc-gift-card--white { background: #fff; border: 1px solid var(--myc-line); }
.myc-gift-card .myc-h3 { font-size: 2rem; margin-bottom: 16px; }
.myc-gift-card p { color: var(--myc-grey-2); margin: 0 0 22px; max-width: 42ch; }
.myc-newsletter-form { display: flex; max-width: 440px; }
.myc-newsletter-form input[type=email] { flex: 1; width: 0; min-width: 0; padding: 15px 16px; border: 1px solid var(--myc-ink); border-right: 0; font: 400 1rem var(--myc-font-sans); background: #fff; border-radius: 0; color: var(--myc-ink); }
.myc-newsletter-form .myc-btn { padding: 0 20px; font-size: 0.75rem; letter-spacing: .16em; border: 0; }
.myc-newsletter-note { font-size: 0.75rem; font-weight: 400; color: var(--myc-grey-2); margin-top: 10px; }
@media (max-width: 767px) { .myc-gift-grid { grid-template-columns: 1fr; } }
.myc-newsletter-message { font-size: 0.75rem; font-weight: 400; margin: 10px 0 0; }
.myc-newsletter-message.is-success { color: var(--myc-success-text); }
.myc-newsletter-message.is-error { color: var(--myc-error-text); }

/* "A partire da" price (template-parts/homepage/hero-price.php): the <del> is the lowest price of
   the previous 30 days (art. 17-bis Codice del Consumo), kept visible but subdued. */
.myc-hero-price del { opacity: .7; margin-right: 2px; }
.myc-hero-price ins { text-decoration: none; }
/* Promo footnote (offer terms) under the hero CTAs. */
.myc-hero-footnote { margin-top: 18px; font-size: 0.75rem; font-weight: 400; color: var(--myc-text-on-dark-2); }

/* "Hanno parlato di noi": closes the reviews block (same white ground), logos in ink, full colour on hover. */
.myc-press { padding-top: 0; }
.myc-press .myc-container { border-top: 1px solid var(--myc-line); padding-top: 40px; text-align: center; }
.myc-press-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 28px 56px; }
.myc-press-logo img { display: block; height: 26px; width: auto; max-width: 140px; object-fit: contain; filter: grayscale(1); opacity: .55; transition: opacity .3s ease, filter .3s ease; }
.myc-press-logo:hover img, .myc-press-logo:focus-visible img { filter: none; opacity: 1; }
@media (max-width: 767px) { .myc-press-row { gap: 24px 36px; } .myc-press-logo img { height: 22px; max-width: 110px; } }

/* Latest blog posts: shared blog card (blog.css), v3 grid. */
.myc-home-blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
@media (max-width: 767px) { .myc-home-blog-grid { grid-template-columns: 1fr; } }

/* "La misura giusta" (template-parts/homepage/measures.php) */
.myc-measures { background: var(--myc-paper); }
.myc-measures-in { display: flex; flex-wrap: wrap; align-items: center; gap: 96px; max-width: calc(1180px + 2 * var(--myc-container-pad)); padding-top: 112px; padding-bottom: 112px; }
.myc-measures-in > * { flex: 1 1 460px; min-width: 0; }
.myc-measures-in > .myc-measures-photo { flex-basis: 420px; }
.myc-measures .myc-eyebrow { margin-bottom: 20px; }
.myc-measures .myc-h2 { font-size: clamp(2.125rem, 3.4vw, 3rem); line-height: 1.12; letter-spacing: -.01em; }
.myc-measures-lead { margin: 24px 0 0; max-width: 480px; font-size: 1.0625rem; font-weight: 400; line-height: 1.65; color: var(--myc-grey-1); }
.myc-measures-steps { list-style: none; margin: 40px 0 0; padding: 0; max-width: 520px; border-top: 1px solid var(--myc-line); }
.myc-measures-steps li { display: flex; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--myc-line); font-size: 0.9375rem; font-weight: 400; line-height: 1.6; color: var(--myc-grey-2); }
.myc-measures-steps li > span { flex: 0 0 28px; font: 400 1.125rem/1.4 var(--myc-font-serif); color: var(--myc-blue); }
.myc-measures-steps b { display: block; margin-bottom: 6px; font-size: 1rem; font-weight: 500; color: var(--myc-ink); }
.myc-measures-cta { display: inline-flex; align-items: center; gap: 12px; margin-top: 40px; }
.myc-measures-note { margin: 16px 0 0; font-size: 0.8125rem; font-weight: 400; color: var(--myc-grey-2); }
.myc-measures-photo { position: relative; }
.myc-measures-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; object-position: center 30%; }
.myc-measures-badge { position: absolute; left: -32px; bottom: 40px; display: flex; align-items: center; gap: 16px; padding: 20px 24px; background: #fff; color: var(--myc-blue); box-shadow: 0 12px 32px rgba(28,38,51,.08); font-size: 0.8125rem; font-weight: 400; }
.myc-measures-badge div { color: var(--myc-grey-2); }
.myc-measures-badge b { display: block; font: 400 1.125rem/1.3 var(--myc-font-serif); color: var(--myc-ink); }
@media (max-width: 1099px) { .myc-measures-in { gap: 56px; } }
@media (max-width: 767px) {
  .myc-measures-in { gap: 40px; padding-top: var(--myc-section-pad-y); padding-bottom: var(--myc-section-pad-y); }
  .myc-measures-photo { order: -1; }
  .myc-measures-badge { left: 16px; bottom: 16px; padding: 14px 18px; }
}
