/*
 * MAKECASA DESIGN SYSTEM
 * Stile moderno: glassmorphism, glow, animazioni fluide.
 * Caricato DOPO theme.min.css. NON modificare theme.min.css.
 */

/* =================================================================
 * Variables
 * ================================================================= */
:root,
[data-bs-theme="light"] {
  --fn-primary:               #3a7d2c;
  --fn-primary-rgb:           58, 125, 44;
  --fn-primary-text-emphasis: #2a5c1f;
  --fn-primary-bg-subtle:     #eef7ec;
  --fn-primary-border-subtle: #b8ddb0;

  --mc: #3a7d2c;
  --mc-dark: #2a5c1f;
  --mc-medium: #4e9c3c;
  --mc-light: #b8ddb0;
  --mc-pale: #eef7ec;
  --mc-ghost: #f0f4ef;
  --mc-bg: #f3f5f2;
  --mc-bg-card: #ffffff;
  --mc-border: rgba(58, 125, 44, .08);
  --mc-border-hover: rgba(58, 125, 44, .2);
  --mc-ink: #111;
  --mc-ink-secondary: #555;
  --mc-ink-muted: #888;
  --mc-radius: 20px;
  --mc-radius-sm: 12px;
  --mc-radius-xs: 8px;
  --mc-shadow: 0 4px 20px rgba(0,0,0,.05);
  --mc-shadow-md: 0 8px 32px rgba(0,0,0,.07);
  --mc-shadow-lg: 0 20px 60px rgba(0,0,0,.1);
  --mc-shadow-xl: 0 24px 64px rgba(0,0,0,.12);
  --mc-shadow-glow: 0 8px 32px rgba(58,125,44,.18);
  --mc-tr: .3s cubic-bezier(.4,0,.2,1);
}

[data-bs-theme="dark"] {
  --fn-primary: #4e9c3c;
  --fn-primary-rgb: 78, 156, 60;
  --fn-primary-text-emphasis: #b8ddb0;
  --fn-primary-bg-subtle: #1a2e16;
  --fn-primary-border-subtle: #2a5c1f;
}

/* =================================================================
 * Global
 * ================================================================= */
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  background: var(--mc-bg);
  overflow-x: clip;
}

/* =================================================================
 * Buttons
 * ================================================================= */
.btn { transition: all var(--mc-tr); }
.btn-primary,
[data-bs-theme="dark"] .product-card:hover .product-card-button {
  --fn-btn-bg: #3a7d2c; --fn-btn-border-color: #3a7d2c;
  --fn-btn-hover-bg: #2a5c1f; --fn-btn-hover-border-color: #2a5c1f;
  --fn-btn-active-bg: #245219; --fn-btn-active-border-color: #245219;
  --fn-btn-disabled-bg: #3a7d2c; --fn-btn-disabled-border-color: #3a7d2c;
}
.btn-outline-primary {
  --fn-btn-color: #3a7d2c; --fn-btn-border-color: #3a7d2c;
  --fn-btn-hover-bg: #3a7d2c; --fn-btn-hover-border-color: #3a7d2c;
  --fn-btn-active-bg: #2a5c1f; --fn-btn-active-border-color: #2a5c1f;
}
.btn-primary:hover { transform: translateY(-1px); box-shadow: var(--mc-shadow-glow); }
.btn-outline-primary:hover { transform: translateY(-1px); }

/* =================================================================
 * Colors
 * ================================================================= */
.text-primary { color: #3a7d2c !important; }
.text-bg-primary { background-color: #3a7d2c !important; color: #fff !important; }
a { --fn-link-color: #3a7d2c; --fn-link-hover-color: #2a5c1f; text-decoration: none; }
a:hover { text-decoration: none; color: var(--mc-dark); }

/* =================================================================
 * Forms
 * ================================================================= */
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--mc-light); box-shadow: 0 0 0 3px rgba(58,125,44,.08);
}
.form-check-input:checked { background-color: var(--mc); border-color: var(--mc); }
.page-item.active .page-link { background-color: var(--mc); border-color: var(--mc); }

/* =================================================================
 * Choices.js overrides (theme Finder uses Choices.js via data-select)
 * ================================================================= */
.choices .choices__inner {
  background: #fff !important;
  border: 1px solid var(--mc-border) !important;
  border-radius: var(--mc-radius-sm) !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.04) !important;
  transition: all var(--mc-tr) !important;
}
.choices.is-open .choices__inner,
.choices.is-focused .choices__inner {
  border-color: var(--mc-light) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(58,125,44,.1) !important;
}
.choices .choices__list--dropdown {
  border: 1px solid var(--mc-border) !important; border-radius: var(--mc-radius-sm) !important;
  background: #fff !important;
  box-shadow: 0 12px 48px rgba(0,0,0,.12), 0 4px 12px rgba(0,0,0,.04) !important;
  z-index: 99999 !important;
}
.choices .choices__list--dropdown .choices__item--selectable.is-highlighted {
  background: var(--mc-pale) !important; color: var(--mc) !important;
}
/* Search input inside dropdown */
.choices .choices__list--dropdown .choices__input {
  border-color: rgba(58,125,44,.1) !important; border-radius: var(--mc-radius-xs) !important;
  background: #f8f8f8 !important;
}
/* Remove button (X) styling */
.choices .choices__button { border-left-color: rgba(58,125,44,.15) !important; }
/* Selected text: left-align, no wrap — applies to ALL Choices instances */
.choices .choices__inner { text-align: left !important; min-height: auto !important; }
.choices .choices__list--single { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left !important; }
.choices .choices__list--single .choices__item { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left !important; }
.choices .choices__list--dropdown .choices__item { white-space: normal; word-break: break-word; text-align: left !important; }
/* Choices placeholder also left-aligned */
.choices .choices__placeholder { text-align: left !important; }
/* Z-index: NO z-index on containers (avoids stacking-context trap).
   Only the individual .choices.is-open gets a high z-index so its
   dropdown escapes above ALL siblings (buttons, accordion, etc.). */
/* Hide placeholder option from dropdown list — it should only show as
   selected text, never as a selectable item in the list */
.choices .choices__list--dropdown .choices__placeholder { display: none !important; }
/* If Choices doesn't flag it as placeholder, hide items with empty value */
.choices .choices__list--dropdown .choices__item[data-value=""] { display: none !important; }

/* No z-index on .choices by default — avoids creating stacking contexts
   that trap the dropdown. Only .is-open gets a high z-index so the
   dropdown floats above ALL sibling elements (buttons, accordion, etc.). */
.choices { position: relative; z-index: auto; }
.choices.is-open { z-index: 9999 !important; }
/* Always open downward */
.choices .choices__list--dropdown { top: 100% !important; bottom: auto !important; }
.choices.is-flipped .choices__list--dropdown { top: 100% !important; bottom: auto !important; margin-top: 1px; margin-bottom: 0; }

/* Hero form labels */
.mc-adv-label { font-size: 11px; font-weight: 600; color: var(--mc-ink-muted); margin-bottom: 4px; display: block; letter-spacing: .04em; }
/* Hero form buttons */
.mc-hero-btn {
  padding: 12px 18px; border-radius: var(--mc-radius-sm);
  background: var(--mc-pale); border: 1px solid var(--mc-light);
  color: var(--mc-dark); cursor: pointer;
  font: 600 14px 'Plus Jakarta Sans', sans-serif;
  transition: all var(--mc-tr); text-decoration: none;
  display: inline-flex; align-items: center; gap: 6px;
}
.mc-hero-btn:hover {
  background: var(--mc); color: #fff; border-color: var(--mc);
  transform: translateY(-1px);
}
.mc-hero-btn-primary {
  padding: 12px 24px; border-radius: var(--mc-radius-sm);
  background: var(--mc); color: #fff; border: none; cursor: pointer;
  font: 600 15px 'Plus Jakarta Sans', sans-serif;
  box-shadow: var(--mc-shadow-glow); transition: all var(--mc-tr);
  display: inline-flex; align-items: center;
}
.mc-hero-btn-primary:hover {
  background: var(--mc-dark); transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(58,125,44,.3);
}

/* =================================================================
 * Toggle button — component styles
 * ================================================================= */
.mc-toggle-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 16px; border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.6); border: 1.5px solid rgba(255,255,255,.5);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  font: 600 13px 'Plus Jakarta Sans', sans-serif;
  color: var(--mc-ink-secondary);
  cursor: pointer; transition: all .2s ease; user-select: none;
  box-shadow: 0 2px 8px rgba(0,0,0,.03), inset 0 1px 0 rgba(255,255,255,.7);
}
.mc-toggle-btn input { display: none; }
.mc-toggle-btn i { font-size: 14px; color: var(--mc-ink-muted); transition: color .15s ease; }
.mc-toggle-btn:hover { border-color: var(--mc); color: var(--mc); }
.mc-toggle-btn:hover i { color: var(--mc); }
.mc-toggle-btn.active {
  background: var(--mc); border-color: var(--mc); color: #fff;
  box-shadow: 0 2px 8px rgba(58,125,44,.25);
}
.mc-toggle-btn.active i { color: #fff; }

/* =================================================================
 * Liquid glass — Apple-style
 * Frosted glass: you see color/motion through it, but content is readable.
 * ================================================================= */
.mc-glass {
  background: rgba(255,255,255,.45);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255,255,255,.6);
  border-top-color: rgba(255,255,255,.8);
  border-radius: var(--mc-radius);
  box-shadow: 0 4px 24px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.8);
  transition: box-shadow var(--mc-tr);
}
.mc-glass:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.08), inset 0 1px 0 rgba(255,255,255,.9);
}
/* Strong — hero cards, main forms. Solid white. */
.mc-glass-strong {
  position: relative;
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--mc-radius);
  box-shadow: 0 8px 40px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.03);
  transition: box-shadow var(--mc-tr), transform var(--mc-tr);
  overflow: visible;
}
.mc-glass-strong::before { display: none; }
.mc-glass-strong:hover {
  box-shadow: 0 16px 48px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.05);
}
/* Dark variant */
.mc-glass-dark {
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid rgba(255,255,255,.15);
  border-top-color: rgba(255,255,255,.25);
  border-radius: var(--mc-radius);
  box-shadow: 0 8px 32px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.1);
}

/* =================================================================
 * Navbar — glass
 * ================================================================= */
.navbar { backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); background: rgba(250,252,249,.8) !important; }
.navbar.navbar-stuck { background: rgba(250,252,249,.95) !important; box-shadow: var(--mc-shadow); }
.navbar .nav-link {
  position: relative; border-radius: var(--mc-radius-xs);
  transition: all var(--mc-tr); padding: 8px 14px !important;
}
.navbar .nav-link:hover {
  background: rgba(255,255,255,.5); color: var(--mc) !important;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.navbar .nav-link.active {
  color: var(--mc) !important; font-weight: 600;
  background: rgba(238,247,236,.5);
}
.navbar .dropdown-item.active, .navbar .dropdown-item:active { background-color: var(--fn-primary); }
/* Hover auto-open dropdown on desktop */
@media (min-width: 992px) {
  .navbar .nav-item.dropdown:hover > .dropdown-menu { display: block; margin-top: 0; }
  .navbar .nav-item.dropdown > .dropdown-toggle::after { transition: transform var(--mc-tr); }
  .navbar .nav-item.dropdown:hover > .dropdown-toggle::after { transform: rotate(180deg); }
}

/* Dropdown menu — glass (opaque enough to read) */
.dropdown-menu {
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%);
  border: 1px solid rgba(255,255,255,.6);
  border-top-color: rgba(255,255,255,.9);
  border-radius: var(--mc-radius-sm);
  box-shadow: 0 12px 48px rgba(0,0,0,.1), inset 0 1px 0 rgba(255,255,255,.9);
  padding: 8px; margin-top: 4px;
  animation: fadeUp .2s ease;
}
.dropdown-item {
  border-radius: var(--mc-radius-xs); font-size: 14px; font-weight: 500;
  padding: 8px 14px; transition: all var(--mc-tr);
}
.dropdown-item:hover { background: rgba(238,247,236,.6); color: var(--mc); }

/* =================================================================
 * Hero
 * ================================================================= */
.mc-hero {
  position: relative; min-height: 100vh;
  display: flex; flex-direction: column; justify-content: center; align-items: stretch;
  overflow-x: clip; overflow-y: visible;
  background: #f8faf7;
}
.mc-hero::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 120px;
  background: linear-gradient(to bottom, transparent, var(--mc-bg));
  pointer-events: none; z-index: 0;
}

.mc-hero-grid, .mc-hero-glow, .mc-hero-glow-2 { display: none; }

/* Hero photos collage */
.mc-hero-photos {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width: 42%; pointer-events: none;
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-right: 4%; z-index: 1;
}
.mc-hero-photo { border-radius: 16px; overflow: hidden; opacity: 0; box-shadow: 0 8px 32px rgba(0,0,0,.08); }
.mc-hero-photo:nth-child(1) { animation: fadeUp .7s ease forwards .8s; grid-row: 1/3; }
.mc-hero-photo:nth-child(2) { animation: fadeUp .7s ease forwards 1s; }
.mc-hero-photo:nth-child(3) { animation: fadeUp .7s ease forwards 1.2s; }
.mc-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mc-hero-photo:nth-child(1) img { aspect-ratio: 3/4; }
.mc-hero-photo:nth-child(2) img, .mc-hero-photo:nth-child(3) img { aspect-ratio: 4/3; }

/* Typewriter cursor */
.mc-typewriter-cursor {
  display: inline-block; width: 3px; height: 1em; background: var(--mc);
  margin-left: 2px; vertical-align: text-bottom;
  animation: cursorBlink .8s ease-in-out infinite;
}

/* Scroll hint */
.mc-scroll-hint {
  position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  opacity: 0; animation: fadeUp .5s ease forwards 1.2s;
}
.mc-scroll-hint span { font-size: 10px; letter-spacing: .15em; text-transform: uppercase; color: var(--mc-ink-muted); }
.mc-scroll-line { width: 1px; height: 32px; background: var(--mc-border); position: relative; overflow: hidden; }
.mc-scroll-line::after { content: ''; position: absolute; inset: 0; background: var(--mc); animation: scrollDrop 2s ease-in-out infinite; }

/* =================================================================
 * Search card (glass)
 * ================================================================= */
.mc-search-card {
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%);
  border: 1px solid rgba(255,255,255,.7);
  border-top-color: rgba(255,255,255,.95);
  border-radius: var(--mc-radius); padding: 28px;
  box-shadow: 0 24px 64px rgba(0,0,0,.08), 0 8px 24px rgba(58,125,44,.04), inset 0 1px 0 rgba(255,255,255,.95);
}

/* =================================================================
 * Marquee
 * ================================================================= */
.mc-marquee {
  overflow: hidden; padding: 20px 0;
  background: var(--mc-ghost); border-top: 1px solid var(--mc-border); border-bottom: 1px solid var(--mc-border);
}
.mc-marquee-track { display: flex; gap: 48px; width: max-content; animation: marquee 30s linear infinite; will-change: transform; }
.mc-marquee:hover .mc-marquee-track { animation-play-state: paused; }
.mc-marquee-item { font-size: 14px; font-weight: 600; color: var(--mc-ink-muted); white-space: nowrap; display: flex; align-items: center; gap: 8px; }
.mc-marquee-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--mc-light); }

/* =================================================================
 * Section helpers
 * ================================================================= */
.mc-section-alt {
  background: linear-gradient(180deg, var(--mc-pale) 0%, #e4f0e0 50%, var(--mc-pale) 100%);
  position: relative;
}
.mc-section-alt::before {
  content: ''; position: absolute; top: 0; right: 0; width: 50%; height: 100%;
  background: radial-gradient(ellipse at 80% 50%, rgba(58,125,44,.08), transparent 70%);
  pointer-events: none;
}
.mc-section-alt > * { position: relative; z-index: 1; }
.mc-section-tag {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
  color: var(--mc); margin-bottom: 12px;
}
.mc-section-tag::before {
  content: ''; width: 24px; height: 2px; background: var(--mc); border-radius: 1px;
}
.mc-section-title {
  font-size: clamp(32px, 5vw, 52px); font-weight: 900; letter-spacing: -2px;
  line-height: 1.05;
}
.mc-section-desc {
  font-size: 17px; color: var(--mc-ink-secondary); line-height: 1.7;
}

/* Wave divider between sections */
.mc-wave-top, .mc-wave-bottom { position: absolute; left: 0; right: 0; overflow: hidden; line-height: 0; pointer-events: none; }
.mc-wave-top { top: -1px; }
.mc-wave-bottom { bottom: -1px; }
.mc-wave-top svg, .mc-wave-bottom svg { display: block; width: 100%; height: 40px; }
.mc-wave-top svg { transform: rotate(180deg); }
.mc-wave-fill-bg { fill: var(--mc-bg); }
.mc-wave-fill-ghost { fill: var(--mc-ghost); }
.mc-wave-fill-white { fill: #fff; }

/* =================================================================
 * Stats
 * ================================================================= */
/* Variant 1: solid gradient (original) */
.mc-stats {
  background: linear-gradient(135deg, var(--mc) 0%, #2d6b20 50%, var(--mc-dark) 100%);
  color: #fff; position: relative; overflow: hidden;
}
.mc-stats::before {
  content: ''; position: absolute; top: -60%; right: -15%; width: 500px; height: 500px;
  border-radius: 50%; background: rgba(255,255,255,.06);
}
.mc-stats::after {
  content: ''; position: absolute; bottom: -40%; left: -10%; width: 350px; height: 350px;
  border-radius: 50%; background: rgba(255,255,255,.04);
}
/* Variant 2: glass — lighter, more transparent */
.mc-stats-glass {
  background: rgba(255,255,255,.5);
  backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%);
  border-top: 1px solid rgba(255,255,255,.8);
  border-bottom: 1px solid rgba(255,255,255,.6);
  color: var(--mc-ink); position: relative; overflow: hidden;
}
.mc-stats-glass::before {
  content: ''; position: absolute; top: -50%; right: -10%;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.06) 0%, transparent 70%);
  pointer-events: none;
}
.mc-stats-glass .mc-stat-value { color: var(--mc); }
.mc-stats-glass .mc-stat-label { color: var(--mc-ink-secondary); }
.mc-stat-value { font-size: 3rem; font-weight: 900; letter-spacing: -2px; line-height: 1; }
.mc-stat-label { font-size: 13px; opacity: .8; margin-top: 6px; font-weight: 500; }
.mc-stat-card {
  position: relative; padding: 24px 16px;
  border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.12);
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-stat-card:hover {
  background: rgba(255,255,255,.12);
  transform: translateY(-4px);
  border-color: rgba(255,255,255,.25);
}
.mc-stat-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; color: #fff; margin-bottom: 16px;
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-stat-card:hover .mc-stat-icon {
  background: #fff; color: var(--mc-dark);
  transform: scale(1.1) rotate(-5deg);
}

/* =================================================================
 * Cards
 * ================================================================= */
.card {
  transition: transform var(--mc-tr), box-shadow var(--mc-tr);
  border: 1px solid rgba(0,0,0,.06) !important;
  border-radius: var(--mc-radius-sm) !important;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,.06), 0 1px 4px rgba(0,0,0,.03);
}
.card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(0,0,0,.12), 0 8px 20px rgba(0,0,0,.06);
  border-color: rgba(58,125,44,.15) !important;
}
.card .card-img-top img, .card .ratio img { transition: transform .5s ease; max-width: 100%; }
.card:hover .card-img-top img, .card:hover .ratio img { transform: scale(1.03); }
.card .swiper, .card .card-img-top { max-width: 100%; min-width: 0; }

/* Card preview popup — glass */
/* Card preview popup — opens to the side on hover */
/* Reveal/col wrappers around cards need to fill the row-cols col height */
.row > .reveal,
.row > .col.reveal { display: flex; flex-direction: column; }
.row > .reveal > .mc-card-preview,
.row > .reveal > .mc-cantiere-card,
.row > .reveal > .mc-blog-card,
.row > .col.reveal > .mc-cantiere-card,
.row > .col.reveal > .mc-blog-card { flex: 1; min-height: 0; }
/* Bootstrap row-cols apply width only to .col children — apply same width AND gutter padding to .reveal wrappers */
.row > .reveal:not(.col) {
  padding-right: 12px;
  padding-left: 12px;
  margin-top: 1rem;
}
.row.g-3 > .reveal:not(.col) { padding-right: 8px; padding-left: 8px; margin-top: 1rem; }
.row.g-md-4 > .reveal:not(.col),
.row.g-4 > .reveal:not(.col) { padding-right: 12px; padding-left: 12px; margin-top: 1.5rem; }
@media (min-width: 992px) {
  .row.g-lg-5 > .reveal:not(.col) { padding-right: 24px; padding-left: 24px; margin-top: 3rem; }
}
.row[class*="row-cols-2"] > .reveal:not(.col) { flex: 0 0 50%; max-width: 50%; }
@media (min-width: 768px) {
  .row[class*="row-cols-md-3"] > .reveal:not(.col) { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .row[class*="row-cols-md-2"] > .reveal:not(.col) { flex: 0 0 50%; max-width: 50%; }
  .row[class*="row-cols-md-4"] > .reveal:not(.col) { flex: 0 0 25%; max-width: 25%; }
}
@media (min-width: 992px) {
  .row[class*="row-cols-lg-4"] > .reveal:not(.col) { flex: 0 0 25%; max-width: 25%; }
  .row[class*="row-cols-lg-3"] > .reveal:not(.col) { flex: 0 0 33.333333%; max-width: 33.333333%; }
}
.mc-card-preview { position: relative; height: 100%; min-width: 0; max-width: 100%; display: flex; flex-direction: column; }
.mc-card-preview > .col, .mc-card-preview > article { flex: 1; }
.mc-card-preview > .col { height: 100%; min-width: 0; flex: none; width: 100%; padding: 0; }
.mc-card-preview > article { height: 100%; min-width: 0; }
.mc-card-preview .mc-preview-popup {
  position: absolute; top: -20px; left: calc(100% - 16px);
  transform: translate(-8px, 10px);
  width: 280px; padding-left: 20px; /* bridge between card and popup */
  opacity: 0; visibility: hidden;
  transition: all .3s cubic-bezier(.4,0,.2,1); pointer-events: none;
}
/* Flip to left when flagged by JS */
.mc-card-preview.mc-preview-left .mc-preview-popup {
  left: auto; right: calc(100% - 16px);
  padding-left: 0; padding-right: 20px;
  transform: translate(8px, 10px);
}
.mc-card-preview.mc-preview-left:hover .mc-preview-popup {
  transform: translate(-12px, -20px);
}
.mc-card-preview .mc-preview-popup-inner {
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%);
  border: 1px solid rgba(255,255,255,.7);
  border-radius: var(--mc-radius);
  box-shadow: 0 12px 48px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06),
              inset 0 1px 0 rgba(255,255,255,.9);
  padding: 16px;
}
/* On hover: popup visible, PARENT wrapper z-index raised above siblings.
   The .reveal wrapper (or .col) has transform → creates stacking context,
   so z-index must be on the wrapper, not just the card. */
.mc-card-preview:hover { z-index: 100; position: relative; }
.reveal:has(.mc-card-preview:hover),
.col:has(.mc-card-preview:hover) { z-index: 100; position: relative; }
.mc-card-preview:hover .mc-preview-popup {
  opacity: 1; visibility: visible;
  transform: translate(12px, -20px);
  pointer-events: auto;
}
.mc-preview-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 12px; }
.mc-preview-gallery > .mc-img-progressive { aspect-ratio: 4/3; border-radius: var(--mc-radius-xs); }
.mc-preview-gallery img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--mc-radius-xs); }
.mc-preview-title { font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.mc-preview-detail { font-size: 12px; color: var(--mc-ink-muted); line-height: 1.5; }
.mc-preview-detail span { display: flex; align-items: center; gap: 4px; margin-bottom: 2px; }
.mc-preview-cta {
  display: block; text-align: center; margin-top: 10px;
  padding: 8px; border-radius: var(--mc-radius-sm);
  background: rgba(248,251,247,.6); color: var(--mc); font-size: 12px; font-weight: 600;
  text-decoration: none; transition: all var(--mc-tr);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.mc-preview-cta:hover { background: var(--mc); color: #fff; box-shadow: var(--mc-shadow-glow); }
@media (max-width: 1100px) { .mc-card-preview .mc-preview-popup { display: none; } }

/* Action cards */
.mc-action-card { transition: transform var(--mc-tr), box-shadow var(--mc-tr); overflow: hidden; }
.mc-action-card:hover { transform: translateY(-6px); box-shadow: var(--mc-shadow-lg); }
.mc-action-card:hover .btn { transform: translateX(4px); }

/* Card divider */
.mc-card-divider { width: 1px; height: 14px; background: var(--mc-border); align-self: center; }

/* =================================================================
 * CTA
 * ================================================================= */
.mc-cta {
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 50%, #1a3d14 100%);
  color: #fff !important; position: relative; overflow: hidden;
}
.mc-cta::before {
  content: ''; position: absolute; top: -50%; right: -10%;
  width: 500px; height: 500px; border-radius: 50%;
  background: rgba(255,255,255,.04); pointer-events: none;
}
.mc-cta::after {
  content: ''; position: absolute; bottom: -40%; left: -15%;
  width: 400px; height: 400px; border-radius: 50%;
  background: rgba(78,156,60,.15); pointer-events: none;
}
.mc-cta * { color: inherit; }
.mc-cta .mc-section-tag { color: var(--mc-light) !important; }
/* Dark section form inputs */
.mc-cta .form-control, .mc-cta .form-select { color: #fff; }
.mc-cta .form-control::placeholder { color: rgba(255,255,255,.5); }

/* =================================================================
 * Split layout (listings — sticky map, normal page scroll)
 * ================================================================= */
.mc-split-view { display: flex; gap: 0; min-height: calc(100vh - 70px); }
.mc-split-map {
  flex: 0 0 50%; position: sticky; top: 70px;
  height: calc(100vh - 70px); z-index: 1;
}
.mc-split-list { flex: 0 0 50%; min-width: 0; }
@media (max-width: 767.98px) {
  .mc-split-view { flex-direction: column; }
  .mc-split-map { position: relative; top: auto; flex: none; height: 50vh; }
  .mc-split-list { flex: none; width: 100%; }
}

/* Columns selector (listings) — pill track */
.mc-cols-selector {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--mc-ink-muted);
  padding: 4px 6px 4px 12px;
  background: var(--mc-ghost);
  border: 1px solid var(--mc-border);
  border-radius: 50px;
}
.mc-cols-label {
  white-space: nowrap; font-weight: 700;
  font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
  color: var(--mc-ink-muted);
  margin-right: 2px;
}
.mc-cols-btn {
  display: flex; align-items: center; justify-content: center;
  min-width: 26px; height: 26px; padding: 0 8px;
  border-radius: 50px;
  font-size: 12px; font-weight: 700; text-decoration: none;
  color: var(--mc-ink-muted); background: transparent;
  border: 0; transition: all var(--mc-tr);
}
.mc-cols-btn:hover { color: var(--mc-dark); background: rgba(255,255,255,.6); }
.mc-cols-btn.active {
  background: #fff; color: var(--mc) !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}

/* =================================================================
 * Mascot
 * ================================================================= */
/* (.mc-chat-backdrop defined below with desktop-transparent behavior) */
.mc-mascot {
  position: fixed; bottom: 24px; right: 24px; z-index: 90;
  width: 64px; height: 64px; cursor: pointer;
  transition: transform var(--mc-tr);
}
.mc-mascot:hover { transform: scale(1.1) rotate(-5deg); }
@keyframes mc-mascot-bounce {
  0%, 100% { transform: translateY(0); }
  20%       { transform: translateY(-14px); }
  50%       { transform: translateY(-6px); }
  75%       { transform: translateY(-11px); }
}
.mc-mascot-bounce { animation: mc-mascot-bounce .64s ease 5; }
.mc-mascot svg { width: 100%; height: 100%; filter: drop-shadow(0 4px 12px rgba(0,0,0,.15)); }
.mc-mascot-bubble {
  position: absolute; bottom: 72px; right: 0; width: 200px;
  background: var(--mc-bg-card); border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm); padding: 12px 16px;
  box-shadow: var(--mc-shadow-md); font-size: 13px;
  opacity: 0; transform: translateY(8px); transition: all .3s ease; pointer-events: none;
}
.mc-mascot-bubble::after {
  content: ''; position: absolute; bottom: -6px; right: 24px;
  width: 12px; height: 12px; background: var(--mc-bg-card);
  border-right: 1px solid var(--mc-border); border-bottom: 1px solid var(--mc-border);
  transform: rotate(45deg);
}
.mc-mascot:hover .mc-mascot-bubble,
.mc-mascot .mc-mascot-bubble.mc-mascot-bubble-show { opacity: 1; transform: translateY(0); }
.mc-mascot-notify {
  position: absolute; top: -4px; right: -4px;
  min-width: 20px; height: 20px; border-radius: 10px;
  background: #e53935; color: #fff;
  font-size: 11px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0 6px;
  border: 2px solid #fff;
  animation: mcPulse 1.6s ease-in-out infinite;
}
@keyframes mcPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.15); } }

/* =================================================================
 * Bot chat window
 * ================================================================= */
#mc-bot-window {
  position: fixed; bottom: 100px; right: 24px; z-index: 1040;
  width: 360px; max-width: calc(100vw - 32px);
  max-height: calc(100vh - 120px);
  display: flex;
}
.mc-bot-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: var(--mc-radius);
  box-shadow: 0 20px 60px rgba(0,0,0,.15), 0 4px 16px rgba(0,0,0,.08);
  overflow: hidden;
  display: flex; flex-direction: column;
  width: 100%;
  height: min(560px, calc(100vh - 120px));
}
.mc-bot-header {
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 100%);
  color: #fff;
  padding: 14px 16px;
  display: flex; align-items: center; gap: 12px;
}
.mc-bot-header-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-bot-header-text { flex: 1; line-height: 1.2; }
.mc-bot-header-text strong { display: block; font-size: 15px; font-weight: 700; color: #fff; }
.mc-bot-header-text span { display: block; font-size: 11px; color: rgba(255,255,255,.92); margin-top: 2px; font-weight: 500; }
.mc-bot-close-btn {
  background: rgba(255,255,255,.15); border: none; color: #fff;
  width: 28px; height: 28px; border-radius: 50%;
  cursor: pointer; font-size: 14px; line-height: 1;
  transition: background .2s;
}
.mc-bot-close-btn:hover { background: rgba(255,255,255,.28); }

.mc-bot-chat {
  padding: 16px; background: var(--mc-ghost);
  overflow-y: auto; flex: 1 1 auto;
  min-height: 0;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.mc-bot-chat::-webkit-scrollbar { width: 4px; }
.mc-bot-chat::-webkit-scrollbar-thumb { background: var(--mc-border); border-radius: 2px; }

.mc-bot-msg { margin-bottom: 10px; display: flex; animation: mcBotBubble .3s ease-out; }
.mc-bot-msg.bot { justify-content: flex-start; }
.mc-bot-msg.user { justify-content: flex-end; }
@keyframes mcBotBubble { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

.mc-bot-bubble {
  display: inline-block; padding: 10px 14px; border-radius: 16px;
  font-size: 13px; line-height: 1.5;
  max-width: 85%;
  word-wrap: break-word;
}
.mc-bot-bubble.bot {
  background: #fff; color: var(--mc-ink);
  border-bottom-left-radius: 4px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.mc-bot-bubble.user {
  background: var(--mc); color: #fff;
  border-bottom-right-radius: 4px;
  font-weight: 500;
}
.mc-bot-bubble em { color: var(--mc-dark); font-style: normal; background: rgba(58,125,44,.06); padding: 2px 6px; border-radius: 4px; display: inline-block; }
.mc-bot-bubble-wide {
  max-width: 100% !important; width: 100%;
  display: block !important;
}
.mc-info-grid {
  display: grid; grid-template-columns: 1fr;
  gap: 7px; margin-top: 10px;
}
.mc-info-box {
  background: rgba(58,125,44,.07);
  border: 1px solid rgba(58,125,44,.18);
  border-radius: 10px; padding: 9px 11px;
  display: flex; flex-direction: column; gap: 2px;
}
.mc-info-box-full { grid-column: 1 / -1; }
.mc-info-box-icon { font-size: 17px; line-height: 1; margin-bottom: 4px; }
.mc-info-box-label {
  font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--mc-ink-muted);
}
.mc-info-box-value {
  font-size: 13px; font-weight: 700;
  color: var(--mc-ink); line-height: 1.3;
}

/* Bot inline widgets */
.mc-bot-inline-form { display: flex; flex-direction: column; gap: 8px; }
.mc-bot-inline-row {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px;
}
.mc-bot-inline-row label { width: 70px; color: var(--mc-ink-secondary); font-weight: 700; flex-shrink: 0; font-size: 12px; }
.mc-bot-inline-row input, .mc-bot-inline-row select {
  flex: 1; padding: 6px 10px; border: 1px solid var(--mc-border);
  border-radius: 6px; background: #fff; font-size: 13px; min-width: 0;
  font-family: inherit;
}
.mc-bot-inline-row span { font-size: 11px; color: var(--mc-ink-muted); flex-shrink: 0; }
.mc-bot-inline-row-stack { align-items: flex-start; }
.mc-bot-inline-row-stack > label { padding-top: 6px; }
.mc-bot-chips-compact { flex: 1; }
.mc-bot-chips-compact button { padding: 5px 10px; font-size: 12px; }
.mc-bot-inline-result {
  margin-top: 6px; padding: 10px 12px;
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 100%);
  color: #fff; border-radius: 8px; text-align: center;
  font-size: 16px; letter-spacing: -.3px;
}

.mc-bot-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mc-bot-chips button {
  padding: 7px 12px; border-radius: 50px; border: 1px solid var(--mc-border);
  background: #fff; color: var(--mc-ink);
  font-size: 12px; font-weight: 600; cursor: pointer;
  transition: all .2s; flex: 0 0 auto;
}
.mc-bot-chips button:hover { border-color: var(--mc); background: var(--mc-pale); color: var(--mc-dark); }
.mc-bot-chips button.active {
  background: var(--mc); color: #fff; border-color: var(--mc);
  box-shadow: 0 2px 6px rgba(58,125,44,.25);
}

.mc-bot-input {
  width: 100%; padding: 8px 10px;
  border: 1px solid var(--mc-border); border-radius: 6px;
  background: #fff; font-size: 13px; margin-bottom: 6px;
  font-family: inherit;
}
.mc-bot-input:focus { outline: none; border-color: var(--mc); box-shadow: 0 0 0 2px rgba(58,125,44,.15); }
textarea.mc-bot-input { resize: vertical; }

.mc-bot-privacy {
  display: flex; align-items: flex-start; gap: 6px;
  font-size: 11px; color: var(--mc-ink-secondary);
  margin: 6px 0 10px; cursor: pointer; line-height: 1.4;
}
.mc-bot-privacy a { color: var(--mc); text-decoration: underline; }
.mc-bot-submit {
  width: 100%; padding: 10px;
  border: none; border-radius: 8px;
  background: var(--mc); color: #fff;
  font-weight: 700; font-size: 13px;
  cursor: pointer; transition: all .2s;
}
.mc-bot-submit:hover { background: var(--mc-dark); }
.mc-bot-submit:disabled { opacity: .6; cursor: not-allowed; }
.mc-bot-error { color: #dc2626; font-size: 11px; margin-top: 6px; }

/* Typing indicator */
.mc-bot-dots { display: inline-flex; gap: 4px; padding: 2px 0; }
.mc-bot-dots i {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--mc-light);
  display: inline-block;
  animation: mcBotDot 1.2s ease-in-out infinite;
}
.mc-bot-dots i:nth-child(2) { animation-delay: .2s; }
.mc-bot-dots i:nth-child(3) { animation-delay: .4s; }
@keyframes mcBotDot { 0%,60%,100% { opacity: .3; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

.mc-bot-options {
  padding: 12px 14px; background: #fff;
  border-top: 1px solid rgba(0,0,0,.06);
  display: flex; flex-wrap: wrap; gap: 6px;
  flex: 0 0 auto;
}
.mc-bot-header { flex: 0 0 auto; }
.mc-bot-opt {
  padding: 8px 14px; border-radius: 50px;
  border: 1px solid var(--mc-border); background: #fff;
  color: var(--mc-dark); font-size: 12px; font-weight: 600;
  cursor: pointer; transition: all .2s;
  white-space: nowrap;
}
.mc-bot-opt:hover {
  background: var(--mc); color: #fff; border-color: var(--mc);
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(58,125,44,.2);
}

/* Chat backdrop — dim+blur on desktop and mobile, stronger on mobile */
.mc-chat-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.18);
  backdrop-filter: blur(6px) saturate(140%);
  -webkit-backdrop-filter: blur(6px) saturate(140%);
  z-index: 89;
  animation: mcFadeIn .25s ease-out;
}
@media (max-width: 576px) {
  .mc-chat-backdrop {
    background: rgba(0,0,0,.3);
    backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  }
}

/* Scroll-offset margin for section targets (works with scrollIntoView & href#anchor) */
.mc-detail-card, .mc-detail-header-card, [id="mappa"], [id="prenota-visita"], [id="mutuo-sim"], [id="costi-totali"], [id="priorita"], [id="visita-checklist"], [id="caratteristiche"], [id="descrizione"], [id="servizi-zona"], [id="faq"], [id="quickact"], [id="agente"], [id="consumi-sim"], [id="budget-sim"] {
  scroll-margin-top: 130px;
}

/* Target highlight pulse (when bot scrolls to a section) */
@keyframes mcTargetPulse {
  0%   { box-shadow: 0 0 0 0 rgba(58,125,44,.4), 0 2px 12px rgba(0,0,0,.04); }
  40%  { box-shadow: 0 0 0 10px rgba(58,125,44,.18), 0 12px 40px rgba(58,125,44,.18); }
  100% { box-shadow: 0 0 0 0 rgba(58,125,44,0), 0 2px 12px rgba(0,0,0,.04); }
}
.mc-highlight-target {
  animation: mcTargetPulse 1.6s ease-out 2;
  border-color: var(--mc-light) !important;
  position: relative; z-index: 2;
}

/* Theme's "Top" floating button: hide everywhere (mascot + sticky CTA already provide quick actions, and the theme button overlaps content on wide layouts) */
.floating-buttons { display: none !important; }

/* =================================================================
 * Contact Wizard — sidebar form immobile
 * ================================================================= */
.mc-wizard-path-btn {
  width: 100%; display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; border-radius: var(--mc-radius-sm);
  border: 1.5px solid var(--mc-border); background: var(--mc-bg-card);
  text-align: left; cursor: pointer; transition: all .2s;
  margin-bottom: 10px; color: var(--mc-ink);
}
.mc-wizard-path-btn:hover { border-color: var(--mc); background: var(--mc-pale); }
.mc-wizard-path-btn:last-child { margin-bottom: 0; }
.mc-wizard-path-btn i { font-size: 22px; color: var(--mc); flex-shrink: 0; }
.mc-wizard-path-btn strong { display: block; font-size: 14px; }
.mc-wizard-path-btn em { display: block; font-size: 12px; color: var(--mc-ink-muted); font-style: normal; }
.mc-wizard-back {
  background: none; border: none; padding: 0; margin-bottom: 14px;
  font-size: 13px; color: var(--mc-ink-muted); cursor: pointer;
  display: inline-flex; align-items: center; gap: 4px;
}
.mc-wizard-back:hover { color: var(--mc-ink); }
.mc-wizard-avail {
  display: flex; align-items: center; gap: 8px;
  background: var(--mc-pale); border: 1px solid rgba(58,125,44,.2);
  border-radius: var(--mc-radius-sm); padding: 10px 14px;
  font-size: 13px; color: var(--mc-ink-secondary); margin-bottom: 14px;
}
.mc-wizard-avail i { color: var(--mc); }
.mc-wizard-vendere > p { font-size: 13px; font-weight: 600; margin-bottom: 8px; color: var(--mc-ink); }
.mc-wizard-vendere-chips { display: flex; gap: 8px; }
.mc-wizard-vendere-chips button {
  flex: 1; padding: 8px 0; border-radius: var(--mc-radius-sm);
  border: 1.5px solid var(--mc-border); background: var(--mc-bg-card);
  font-size: 13px; font-weight: 600; cursor: pointer;
  transition: all .2s; color: var(--mc-ink);
}
.mc-wizard-vendere-chips button:hover { border-color: var(--mc); color: var(--mc); }
.mc-wizard-vendere-chips button.active { background: var(--mc); color: #fff; border-color: var(--mc); }
.mc-wizard-error {
  font-size: 12px; color: #e53935;
  margin-top: 8px; margin-bottom: 14px;
  padding: 8px 12px; background: rgba(229,57,53,.06);
  border-radius: var(--mc-radius-sm); border: 1px solid rgba(229,57,53,.2);
}
.mc-wizard-vendere.is-invalid p { color: #e53935; }
.mc-wizard-vendere.is-invalid .mc-wizard-vendere-chips button {
  border-color: rgba(229,57,53,.5);
}
.form-check.is-invalid .form-check-label,
.form-check.is-invalid .form-check-label a {
  color: #e53935;
}
.form-check.is-invalid .form-check-input { border-color: #e53935; }

/* Bot wizard path buttons (inside chat bubble) */
.mc-bot-wizard-path {
  width: 100%; display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: 10px;
  border: 1.5px solid rgba(0,0,0,.1); background: rgba(58,125,44,.06);
  text-align: left; cursor: pointer; transition: all .2s;
  margin-bottom: 8px; color: var(--mc-ink);
}
.mc-bot-wizard-path:last-of-type { margin-bottom: 0; }
.mc-bot-wizard-path:hover { border-color: var(--mc); background: rgba(58,125,44,.12); }
.mc-bot-wizard-path > span { font-size: 20px; flex-shrink: 0; }
.mc-bot-wizard-path strong { display: block; font-size: 13px; }
.mc-bot-wizard-path small { display: block; font-size: 11px; color: var(--mc-ink-muted); }
.mc-bot-wizard-avail {
  font-size: 12px; padding: 8px 10px; margin-bottom: 10px;
  background: rgba(58,125,44,.08); border-radius: 8px; color: var(--mc-ink-secondary);
}
.mc-bot-wizard-vendere { margin: 10px 0 6px; }
.mc-bot-wizard-vendere > div:first-child {
  font-size: 12px; font-weight: 700; margin-bottom: 6px; color: var(--mc-ink-secondary);
}

@media (max-width: 991.98px) {
  /* When bot chat is open: hide CTA bar + mascot (chat has its own close button) */
  body.mc-bot-open .mc-mobile-cta-bar { display: none; }
  body.mc-bot-open .mc-mascot,
  body.mc-bot-open .mc-mascot-bubble { display: none !important; }
}
@media (max-width: 767.98px) {
  /* Bot chat as centered floating popup on mobile */
  #mc-bot-window {
    top: 50%; left: 50%; right: auto; bottom: auto;
    transform: translate(-50%, -50%);
    width: calc(100vw - 24px); max-width: 420px;
    max-height: min(82vh, 82dvh);
    padding: 0;
    z-index: 1050;
  }
  .mc-chat-backdrop { z-index: 1040; background: rgba(0,0,0,.5); }
  .mc-bot-card {
    height: min(82vh, 82dvh);
    max-height: min(82vh, 82dvh);
    border-radius: 18px;
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 20px 60px rgba(0,0,0,.35), 0 8px 24px rgba(0,0,0,.15);
  }
  .mc-bot-chat { min-height: 140px; }
  .mc-bot-options {
    padding: 10px 12px;
  }
  .mc-bot-options .mc-bot-opt { font-size: 12px; padding: 7px 12px; }
  .mc-bot-header { padding: 12px 14px; }
  .mc-bot-header-avatar { width: 36px; height: 36px; }
  /* Mobile-safer card padding for detail header */
  .mc-detail-header-card { padding: 18px 14px; }
}

/* =================================================================
 * Forms — glass style
 * ================================================================= */
.form-control, .form-select {
  border-color: var(--mc-border); border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  transition: all var(--mc-tr);
}
.form-control:hover, .form-select:hover {
  border-color: var(--mc-border-hover);
  background: rgba(255,255,255,.85);
}
.form-control::placeholder { color: var(--mc-ink-muted); }
.form-label {
  font-size: 13px; font-weight: 600; color: var(--mc-ink-secondary);
}
/* Radio & checkbox — verde Makecasa, glass */
.form-check-input {
  border-color: var(--mc-border-hover); border-radius: 6px;
  background-color: rgba(255,255,255,.5);
  transition: all var(--mc-tr);
}
.form-check-input[type="radio"] { border-radius: 50%; }
.form-check-input:checked {
  background-color: var(--mc) !important; border-color: var(--mc) !important;
  box-shadow: 0 0 0 3px rgba(58,125,44,.12);
  /* Forza icona check bianca */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") !important;
}
.form-check-input[type="radio"]:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e") !important;
}
.form-check-input:focus {
  box-shadow: 0 0 0 3px rgba(58,125,44,.12); border-color: var(--mc-light);
}
/* Form switch */
.form-switch .form-check-input:checked { background-color: var(--mc); border-color: var(--mc); }

/* =================================================================
 * Alerts — glass
 * ================================================================= */
.alert {
  border-radius: var(--mc-radius-sm); border: 1px solid;
  font-size: 14px; font-weight: 500;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.alert-info { --fn-alert-bg: rgba(238,247,236,.7); --fn-alert-border-color: var(--mc-light); --fn-alert-color: var(--mc-dark); }
.alert-success {
  --fn-alert-bg: rgba(238,247,236,.7); --fn-alert-border-color: #b8ddb0; --fn-alert-color: #1a5c1f;
}
.alert-warning {
  --fn-alert-bg: rgba(254,248,236,.7); --fn-alert-border-color: #f5dda0; --fn-alert-color: #7a5a00;
}
.alert-danger {
  --fn-alert-bg: rgba(254,240,240,.7); --fn-alert-border-color: #f5b8b8; --fn-alert-color: #8b1a1a;
}
/* Swiper pagination — single row, hide overflow dots */
.swiper-pagination { max-width: 100%; overflow: hidden; white-space: nowrap; height: 12px; display: flex; align-items: center; justify-content: center; gap: 4px; }
.swiper-pagination-bullet { flex-shrink: 0; width: 6px !important; height: 6px !important; opacity: .4; transition: all .2s ease; }
.swiper-pagination-bullet-active { background-color: var(--fn-primary) !important; opacity: 1 !important; width: 18px !important; border-radius: 3px !important; }

/* =================================================================
 * Accordion — glass
 * ================================================================= */
.accordion { --fn-accordion-border-color: transparent; border-radius: var(--mc-radius-sm); }
.accordion-item {
  border: 1px solid rgba(255,255,255,.5) !important;
  border-top-color: rgba(255,255,255,.8) !important;
  border-radius: var(--mc-radius-sm) !important;
  overflow: visible; margin-bottom: 10px;
  background: rgba(255,255,255,.45);
  backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%);
  box-shadow: 0 2px 12px rgba(0,0,0,.04), inset 0 1px 0 rgba(255,255,255,.8);
}
.accordion-collapse { overflow: visible; }
.accordion-item:last-child { margin-bottom: 0; }
.accordion-button {
  font-weight: 600; font-size: 15px; color: var(--mc-ink);
  border-radius: var(--mc-radius-sm) !important;
  padding: 18px 24px;
  background: transparent;
  border: none !important;
  box-shadow: none !important;
}
.accordion-button:not(.collapsed) {
  background: rgba(248,251,247,.5); color: var(--mc);
  border: none !important; box-shadow: none !important;
}
.accordion-button:focus { box-shadow: none !important; outline: none; }
.accordion-button::after { --fn-accordion-btn-icon-color: var(--mc); }
.accordion-body { padding: 0 24px 24px; font-size: 14px; color: var(--mc-ink-secondary); line-height: 1.7; }

/* =================================================================
 * Modal — same glass as mc-detail-sidebar
 * ================================================================= */
.modal-content {
  border: 1px solid rgba(255,255,255,.7);
  border-top-color: rgba(255,255,255,.95);
  border-radius: var(--mc-radius);
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%);
  box-shadow: 0 8px 40px rgba(0,0,0,.1), inset 0 1px 0 rgba(255,255,255,1);
  overflow: hidden;
}
.modal-header {
  border-bottom: 1px solid rgba(58,125,44,.06); padding: 24px 28px;
  background: transparent;
}
.modal-title { font-weight: 800; }
.modal-body { padding: 28px; }
.modal-footer {
  border-top: 1px solid rgba(58,125,44,.06); padding: 20px 28px;
  background: transparent;
}
.modal-backdrop.show { backdrop-filter: blur(6px); }

/* =================================================================
 * Pagination — pill style
 * ================================================================= */
.pagination { gap: 6px; }
.page-link {
  border-radius: var(--mc-radius-sm) !important;
  border: 1px solid rgba(255,255,255,.5);
  font-weight: 600; font-size: 14px; color: var(--mc-ink-secondary);
  background: rgba(255,255,255,.5);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 2px 8px rgba(0,0,0,.03), inset 0 1px 0 rgba(255,255,255,.7);
  transition: all var(--mc-tr);
}
.page-link:hover {
  background: rgba(238,247,236,.6); border-color: var(--mc-light); color: var(--mc);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(58,125,44,.1), inset 0 1px 0 rgba(255,255,255,.9);
}
.page-item.active .page-link {
  color: #fff;
  box-shadow: var(--mc-shadow-glow), inset 0 1px 0 rgba(255,255,255,.2);
  border-radius: var(--mc-radius-sm) !important;
}

/* =================================================================
 * Buttons — global radius
 * ================================================================= */
.btn { border-radius: var(--mc-radius-sm); }
.btn-sm { border-radius: var(--mc-radius-xs); }
.btn-lg { border-radius: var(--mc-radius-sm); }

/* Input group */
.input-group-text {
  border-color: var(--mc-border); border-radius: var(--mc-radius-sm);
  background: rgba(248,251,247,.6); font-size: 13px; color: var(--mc-ink-muted);
}

/* =================================================================
 * Nav tabs & pills
 * ================================================================= */
.nav-pills {
  gap: 6px;
}
.nav-pills .nav-link {
  border-radius: var(--mc-radius-sm); font-weight: 600; font-size: 14px;
  color: var(--mc-ink-secondary); padding: 10px 20px;
  background: rgba(255,255,255,.4);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.5);
  box-shadow: 0 2px 8px rgba(0,0,0,.02), inset 0 1px 0 rgba(255,255,255,.6);
  transition: all var(--mc-tr);
}
.nav-pills .nav-link:hover {
  background: rgba(238,247,236,.5); color: var(--mc); border-color: var(--mc-light);
}
.nav-pills .nav-link.active {
  background: var(--mc) !important; color: #fff !important; border-color: var(--mc) !important;
  box-shadow: var(--mc-shadow-glow);
}

/* =================================================================
 * Tooltip & Popover — glass
 * ================================================================= */
.tooltip-inner {
  background: rgba(17,17,17,.85) !important;
  backdrop-filter: blur(16px) !important; -webkit-backdrop-filter: blur(16px) !important;
  border-radius: var(--mc-radius-xs) !important;
  font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; font-weight: 500;
  padding: 6px 12px;
}
.popover {
  border: 1px solid rgba(255,255,255,.6); border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%);
  box-shadow: 0 8px 40px rgba(0,0,0,.1), inset 0 1px 0 rgba(255,255,255,.9);
}
.popover-header {
  background: transparent; border-bottom: 1px solid rgba(58,125,44,.06);
  font-weight: 700; font-size: 14px;
}
.popover-body { font-size: 13px; color: var(--mc-ink-secondary); }

/* =================================================================
 * Shimmer animation (skeleton)
 * ================================================================= */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* =================================================================
 * Progressive image loader: tn_ placeholder → md_ fade-in + shimmer
 * Used by card immobile/cantiere/novita gallery, swipe deck, etc.
 * Pattern (HTML usato nei template Django):
 *   div.mc-img-progressive  with background-image pointing to THUMBNAIL (tn_)
 *   img src=MEDIUM (md_) with onload adding is-loaded / onerror is-loaded has-error
 * Vedi `templates/partials/_card_immobile.html` per esempio concreto.
 * ================================================================= */
.mc-img-progressive {
  position: relative;
  background-size: cover;
  background-position: center center;
  background-color: var(--bs-tertiary-bg, #f3f4f1);
  overflow: hidden;
}
.mc-img-progressive::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg,
    transparent 0%,
    rgba(255, 255, 255, 0.35) 50%,
    transparent 100%);
  background-size: 200% 100%;
  animation: mc-img-shimmer 1.6s infinite ease-in-out;
  pointer-events: none;
  z-index: 3;
  opacity: 1;
  transition: opacity .25s ease;
}
.mc-img-progressive.is-loaded::after { opacity: 0; }
.mc-img-progressive > img,
.mc-img-progressive > a > img {
  opacity: 0;
  transition: opacity .35s ease;
}
.mc-img-progressive.is-loaded > img,
.mc-img-progressive.is-loaded > a > img { opacity: 1; }
.mc-img-progressive.has-error > img { opacity: 0; }

@keyframes mc-img-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Breadcrumb */
.breadcrumb {
  padding: 12px 20px; border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.45);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.5);
  box-shadow: 0 2px 8px rgba(0,0,0,.03), inset 0 1px 0 rgba(255,255,255,.7);
}
.breadcrumb-item a { color: var(--mc); text-decoration: none; font-weight: 500; }
.breadcrumb-item a:hover { color: var(--mc-dark); }
.breadcrumb-item.active { color: var(--mc-ink-muted); font-weight: 500; }

/* =================================================================
 * HTMX
 * ================================================================= */
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator { display: inline-block; }
.htmx-request #risultati { opacity: .5; pointer-events: none; transition: opacity .2s; }

/* =================================================================
 * Animations
 * ================================================================= */
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes blink { 0%,100% { opacity: 1; } 50% { opacity: .2; } }
@keyframes cursorBlink { 0%,100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes scrollDrop {
  0% { transform: scaleY(0); transform-origin: top; }
  50% { transform: scaleY(1); transform-origin: top; }
  51% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.reveal { opacity: 0; transform: translateY(30px); transition: all .6s ease; min-width: 0; }
.reveal.visible, .reveal.revealed { opacity: 1; transform: translateY(0); }
.reveal-item { opacity: 0; transform: translateY(20px); transition: opacity .5s ease, transform .5s ease; }
.reveal-item.revealed { opacity: 1; transform: translateY(0); }

/* =================================================================
 * Filter bar (listings)
 * ================================================================= */
.mc-filter-bar {
  backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%);
  background: rgba(255,255,255,.86) !important;
  border-bottom: 1px solid var(--mc-border) !important;
  transition: box-shadow var(--mc-tr);
  position: relative; z-index: 10;
}
.mc-filter-row-selects { position: relative; z-index: 2; }
.mc-filter-bar.shadow-on { box-shadow: 0 6px 24px rgba(0,0,0,.06); }

/* Campi filter bar: flex flessibile che si adatta al contenuto */
.mc-filter-field {
  flex: 1 1 0;
  min-width: 140px;
  max-width: 220px;
}
.mc-filter-field-dove { min-width: 160px; max-width: 280px; flex-grow: 1.3; }

/* Form select base (include Choices.js inner) */
.mc-filter-bar .form-select,
.mc-filter-bar .choices__inner {
  border: 1px solid var(--mc-border) !important;
  border-radius: var(--mc-radius-xs) !important;
  background-color: #fff !important;
  font-size: 13px !important; font-weight: 500 !important;
  min-height: 40px !important;
  padding: 8px 34px 8px 14px !important;
  transition: border-color var(--mc-tr), box-shadow var(--mc-tr), background-color var(--mc-tr) !important;
}
.mc-filter-bar .form-select:hover,
.mc-filter-bar .choices:hover .choices__inner { border-color: var(--mc-light) !important; }
.mc-filter-bar .form-select:focus,
.mc-filter-bar .choices.is-focused .choices__inner,
.mc-filter-bar .choices.is-open .choices__inner {
  border-color: var(--mc) !important;
  box-shadow: 0 0 0 3px rgba(58,125,44,.10) !important;
  background-color: #fff !important;
}

/* Choices.js selected item color: brand quando selezionato, muted quando placeholder */
.mc-filter-bar .choices__list--single .choices__item { color: var(--mc-ink); font-weight: 600; }
.mc-filter-bar .choices__list--single .choices__placeholder { color: var(--mc-ink-muted); font-weight: 500; opacity: 1; }

/* Choices.js dropdown menu */
.mc-filter-bar .choices__list--dropdown {
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm);
  box-shadow: 0 12px 32px rgba(0,0,0,.1);
  margin-top: 6px;
}
.mc-filter-bar .choices__list--dropdown .choices__item--selectable {
  padding: 8px 14px; font-size: 13px;
}
.mc-filter-bar .choices__list--dropdown .choices__item--selectable.is-highlighted {
  background: var(--mc-pale); color: var(--mc-dark);
}

/* Button Cerca (pill verde brand) */
.mc-filter-cerca {
  background: var(--mc) !important; border-color: var(--mc) !important;
  border-radius: var(--mc-radius-xs) !important;
  font-weight: 700 !important;
  min-height: 40px;
  padding: 8px 22px !important;
  box-shadow: 0 4px 14px rgba(58,125,44,.2);
  transition: background var(--mc-tr), transform var(--mc-tr), box-shadow var(--mc-tr) !important;
}
.mc-filter-cerca:hover {
  background: var(--mc-dark) !important; border-color: var(--mc-dark) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(58,125,44,.28);
}

.mc-filter-reset {
  min-height: 40px; padding: 8px 16px !important;
  border-radius: var(--mc-radius-xs) !important;
  font-weight: 600 !important;
}

.mc-filter-bar .btn-outline-secondary {
  border-color: var(--mc-border); border-radius: var(--mc-radius-xs);
  font-weight: 600;
}
.mc-filter-bar .btn-outline-secondary:hover,
.mc-filter-bar .btn-outline-secondary.active {
  background: var(--mc-ghost); border-color: var(--mc-light); color: var(--mc);
}

@media (max-width: 767.98px) {
  .mc-filter-bar .btn { font-size: 13px; padding: 7px 12px; }
  .mc-filter-bar .mc-btn-map { font-size: 13px; padding: 7px 12px; }
  .mc-filter-bar .form-select,
  .mc-filter-bar .choices__inner { font-size: 13px !important; min-height: 38px !important; padding: 7px 30px 7px 12px !important; }
  .mc-filter-field,
  .mc-filter-field-dove { min-width: 100%; max-width: 100%; }
  .mc-geo-banner { font-size: 12px; }
  .mc-geo-banner-remove { font-size: 11px; padding: 3px 10px; }
}
/* Filter bar actions row + trigger pill grande */
.mc-filter-actions {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
}
.mc-filter-trigger {
  flex: 1 1 auto;
  min-height: 56px;
  padding: 10px 20px;
  background: #fff;
  border: 1px solid var(--mc-border);
  border-radius: 50px;
  display: inline-flex; align-items: center; gap: 14px;
  text-align: left; cursor: pointer;
  transition: all var(--mc-tr);
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  max-width: 680px;
}
.mc-filter-trigger:hover {
  border-color: var(--mc-light);
  box-shadow: 0 6px 20px rgba(58,125,44,.1);
  transform: translateY(-1px);
}
.mc-filter-trigger > i {
  flex-shrink: 0;
  width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--mc-pale);
  color: var(--mc);
  font-size: 16px;
}
.mc-filter-trigger-text {
  display: flex; flex-direction: column; gap: 1px;
  min-width: 0;
}
/* Primary: citta + tipo in evidenza (bold grosso) */
.mc-filter-trigger-primary {
  font-size: 16px; font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: -.2px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  line-height: 1.2;
}
/* Secondary: altri filtri (piccoli) con separator */
.mc-filter-trigger-extras {
  display: flex; align-items: center; gap: 6px;
  flex-wrap: nowrap; overflow: hidden;
  font-size: 12px; color: var(--mc-ink-muted);
  font-weight: 500;
  max-width: 500px;
}
.mc-filter-trigger-extras > span {
  display: inline-flex; align-items: center;
  padding: 2px 8px;
  background: var(--mc-pale);
  color: var(--mc-dark);
  border-radius: 50px;
  white-space: nowrap;
  font-weight: 600; font-size: 11px;
}
.mc-filter-trigger-extras > span.mc-filter-trigger-badge {
  background: rgba(58,125,44,.15);
  color: var(--mc-dark); font-weight: 700;
  gap: 5px;
}
.mc-filter-trigger-badge-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 16px; height: 16px;
  padding: 0 5px;
  background: var(--mc);
  color: #fff;
  border-radius: 50px;
  font-size: 10px; font-weight: 800;
  line-height: 1;
}
.mc-filter-trigger-placeholder > span {
  background: transparent !important; color: var(--mc-ink-muted) !important;
  font-weight: 500 !important; padding: 0 !important;
}
.mc-filter-reset {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 40px;
  padding: 8px 16px;
  background: rgba(225,29,72,.08);
  border: 1px solid rgba(225,29,72,.2);
  border-radius: 50px;
  color: #be123c; font-weight: 600; font-size: 13px;
  text-decoration: none;
  transition: all var(--mc-tr);
}
.mc-filter-reset:hover {
  background: #e11d48; color: #fff; border-color: #e11d48;
}
.mc-filter-reset i { font-size: 13px; }

@media (max-width: 767.98px) {
  .mc-filter-trigger { min-height: 48px; padding: 8px 14px; gap: 10px; }
  .mc-filter-trigger > i { width: 30px; height: 30px; font-size: 14px; }
  .mc-filter-trigger-primary { font-size: 14px; }
  .mc-filter-trigger-extras { font-size: 11px; max-width: calc(100vw - 200px); }
  .mc-filter-trigger-extras > span { padding: 1px 6px; font-size: 10px; }
  .mc-filter-reset { min-height: 40px; padding: 8px 14px !important; }
  .mc-filter-reset i { font-size: 14px; }
}

/* Fix mobile Choices.js: evita wrap del testo selezionato o nel dropdown */
@media (max-width: 767.98px) {
  .mc-adv-modal .choices__inner,
  .mc-adv-modal .choices__list--single .choices__item {
    white-space: nowrap !important;
    overflow: hidden; text-overflow: ellipsis;
  }
  .mc-adv-modal .choices__list--dropdown {
    min-width: max-content;
    max-width: 80vw;
  }
  .mc-adv-modal .choices__list--dropdown .choices__item {
    white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
  }
  /* I campi con valori lunghi diventano full-width su mobile */
  .mc-adv-modal .col-6.mc-adv-wide { flex: 0 0 100%; max-width: 100%; }
}

/* Modale filtri avanzati (stile dettaglio) */
.mc-adv-modal {
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius);
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.18);
}
.mc-adv-modal .modal-header {
  border-bottom: 1px solid var(--mc-border);
  padding: 18px 24px;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.mc-adv-modal .modal-title { font-size: 18px; letter-spacing: -.2px; color: var(--mc-ink); }
.mc-adv-modal .modal-body {
  padding: 22px 24px 8px;
  background: linear-gradient(180deg, #fff 0%, rgba(238,247,236,.35) 100%);
}
.mc-adv-section {
  padding-bottom: 22px;
  margin-bottom: 22px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.mc-adv-section:last-of-type { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.mc-adv-section-title {
  font-size: 13px; font-weight: 800;
  color: var(--mc); letter-spacing: -.2px;
  margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.mc-adv-section-title::before {
  content: '';
  width: 20px; height: 2px;
  background: var(--mc);
  border-radius: 2px;
}
.mc-adv-modal .modal-body .form-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--mc-ink-secondary) !important;
  margin-bottom: 6px;
}
.mc-adv-modal .form-select,
.mc-adv-modal .choices__inner {
  border: 1px solid var(--mc-border) !important;
  border-radius: var(--mc-radius-xs) !important;
  background: #fff !important;
  font-size: 13px !important;
  min-height: 38px !important;
  padding: 7px 32px 7px 12px !important;
}
.mc-adv-modal .form-select:focus,
.mc-adv-modal .choices.is-open .choices__inner {
  border-color: var(--mc) !important;
  box-shadow: 0 0 0 3px rgba(58,125,44,.10) !important;
}
.mc-adv-modal .modal-footer {
  border-top: 1px solid var(--mc-border);
  padding: 14px 24px;
  background: #fff;
}
.mc-adv-modal .modal-footer .btn-primary {
  background: var(--mc); border-color: var(--mc);
  font-weight: 700; border-radius: var(--mc-radius-xs);
  box-shadow: 0 4px 14px rgba(58,125,44,.2);
}
.mc-adv-modal .modal-footer .btn-primary:hover {
  background: var(--mc-dark); border-color: var(--mc-dark);
}

/* Amenity chip: pattern .mc-toggle-btn della home con icona e stato active */
.mc-adv-amenities {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.mc-amenity-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  border-radius: 50px;
  background: #fff;
  border: 1.5px solid var(--mc-border);
  font-size: 13px; font-weight: 600;
  color: var(--mc-ink-secondary);
  cursor: pointer; user-select: none;
  transition: all .2s ease;
  line-height: 1;
}
.mc-amenity-chip i {
  font-size: 14px; color: var(--mc-ink-muted);
  transition: color .2s ease;
}
.mc-amenity-chip input { display: none; }
.mc-amenity-chip:hover {
  border-color: var(--mc);
  color: var(--mc); background: var(--mc-pale);
}
.mc-amenity-chip:hover i { color: var(--mc); }
.mc-amenity-chip:has(input:checked) {
  background: var(--mc);
  border-color: var(--mc);
  color: #fff;
  box-shadow: 0 2px 8px rgba(58,125,44,.25);
}
.mc-amenity-chip:has(input:checked) i { color: #fff; }

.mc-results-bar {
  font-size: 13px; color: var(--mc-ink-muted);
  font-weight: 500;
}
.mc-results-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 34px; padding: 4px 12px;
  background: var(--mc-pale);
  border-radius: 50px;
  font-weight: 800; color: var(--mc-dark); font-size: 14px;
  letter-spacing: -.2px;
}
.mc-sort-select {
  border: 1px solid var(--mc-border) !important;
  background: #fff !important;
  font-size: 13px; font-weight: 600; color: var(--mc-ink); cursor: pointer;
  padding: 7px 32px 7px 14px !important;
  border-radius: 50px !important;
  transition: border-color var(--mc-tr);
}
.mc-sort-select:hover { border-color: var(--mc-light) !important; }
.mc-sort-select:focus { box-shadow: 0 0 0 3px rgba(58,125,44,.10) !important; border-color: var(--mc) !important; }

/* Offcanvas filters — same glass as mc-detail-sidebar */
.mc-offcanvas {
  border-left: none !important;
  border: 1px solid rgba(255,255,255,.7) !important;
  border-right: none !important;
  border-top-color: rgba(255,255,255,.95) !important;
  background: rgba(255,255,255,.97) !important;
  backdrop-filter: blur(40px) saturate(180%) !important; -webkit-backdrop-filter: blur(40px) saturate(180%) !important;
  box-shadow: -8px 0 40px rgba(0,0,0,.07), inset 1px 0 0 rgba(255,255,255,1) !important;
  border-radius: var(--mc-radius) 0 0 var(--mc-radius) !important;
}
.mc-offcanvas .offcanvas-header {
  border-bottom: 1px solid rgba(58,125,44,.06); padding: 20px 24px;
}
.mc-offcanvas .offcanvas-title { font-weight: 800; font-size: 18px; }
.mc-offcanvas .offcanvas-body { padding: 24px; }
.mc-offcanvas .form-label {
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--mc-ink-muted); margin-bottom: 6px;
}
.mc-offcanvas .form-select {
  border-radius: var(--mc-radius-xs); border-color: var(--mc-border);
  background-color: var(--mc-ghost); font-size: 13px; transition: all var(--mc-tr);
}
.mc-offcanvas .form-select:focus {
  border-color: var(--mc-light); box-shadow: 0 0 0 3px rgba(58,125,44,.08);
}
.mc-offcanvas .form-check-input:checked { background-color: var(--mc); border-color: var(--mc); }
.mc-offcanvas .form-check-label { font-size: 13px; font-weight: 500; }
.mc-offcanvas .btn-primary {
  border-radius: var(--mc-radius-xs); font-weight: 700; padding: 10px 20px;
}
.mc-offcanvas .btn-outline-secondary {
  border-radius: var(--mc-radius-xs); border-color: var(--mc-border);
}

/* Card grid stagger animation */
.mc-card-grid .col { opacity: 0; animation: fadeUp .5s ease forwards; }
.mc-card-grid .col:nth-child(1) { animation-delay: 0s; }
.mc-card-grid .col:nth-child(2) { animation-delay: .05s; }
.mc-card-grid .col:nth-child(3) { animation-delay: .1s; }
.mc-card-grid .col:nth-child(4) { animation-delay: .15s; }
.mc-card-grid .col:nth-child(5) { animation-delay: .2s; }
.mc-card-grid .col:nth-child(6) { animation-delay: .25s; }
.mc-card-grid .col:nth-child(7) { animation-delay: .3s; }
.mc-card-grid .col:nth-child(8) { animation-delay: .35s; }
.mc-card-grid .col:nth-child(9) { animation-delay: .4s; }
.mc-card-grid .col:nth-child(10) { animation-delay: .45s; }
.mc-card-grid .col:nth-child(11) { animation-delay: .5s; }
.mc-card-grid .col:nth-child(12) { animation-delay: .55s; }

/* Map button glow (pill glass) */
.mc-btn-map {
  background: rgba(58,125,44,.08); border: 1px solid rgba(58,125,44,.18);
  border-radius: 50px; color: var(--mc-dark); font-weight: 600;
  font-size: 13px; padding: 7px 16px;
  transition: all var(--mc-tr);
}
.mc-btn-map:hover {
  background: var(--mc); color: #fff; border-color: var(--mc);
  box-shadow: 0 6px 18px rgba(58,125,44,.25);
  transform: translateY(-1px);
}
.mc-btn-map i { color: var(--mc); transition: transform var(--mc-tr), color var(--mc-tr); }
.mc-btn-map:hover i { transform: scale(1.15); color: #fff; }
.mc-btn-map-badge {
  position: absolute; top: -4px; right: -4px;
  width: 10px; height: 10px; border-radius: 50%;
  background: #dc3545; border: 2px solid #fff;
  animation: mc-pulse-dot 2s infinite;
}
@keyframes mc-pulse-dot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220,53,69,.4); }
  50% { box-shadow: 0 0 0 4px rgba(220,53,69,0); }
}

/* Geo filter banner */
.mc-geo-banner {
  background: rgba(220,53,69,.06); border-bottom: 1px solid rgba(220,53,69,.15);
  font-size: 13px; color: #dc3545; font-weight: 500;
}
.mc-geo-banner i { font-size: 14px; }
.mc-geo-banner-remove {
  margin-left: auto; font-size: 12px; font-weight: 600;
  color: #dc3545; text-decoration: none; white-space: nowrap;
  padding: 4px 12px; border-radius: 50px;
  border: 1px solid rgba(220,53,69,.3); transition: all var(--mc-tr);
}
.mc-geo-banner-remove:hover {
  background: #dc3545; color: #fff; border-color: #dc3545;
}

/* =================================================================
 * Leaflet popup — card immobile glass
 * ================================================================= */
.leaflet-popup-content-wrapper,
.leaflet-popup-content-wrapper * { box-sizing: border-box; }
.leaflet-popup-content-wrapper {
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(40px) saturate(180%) !important; -webkit-backdrop-filter: blur(40px) saturate(180%) !important;
  border: 1px solid rgba(255,255,255,.6) !important;
  border-radius: var(--mc-radius-sm) !important;
  box-shadow: 0 8px 40px rgba(0,0,0,.1), inset 0 1px 0 rgba(255,255,255,.9) !important;
  padding: 0 !important; margin: 0 !important; overflow: hidden !important;
}
.leaflet-popup-content {
  margin: 0 !important; padding: 0 !important; width: auto !important; min-width: 240px;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 14px !important; line-height: 1.5 !important;
  overflow: hidden !important;
  color: var(--bs-body-color, #1d2826) !important;
}
.leaflet-popup-content,
.leaflet-popup-content strong,
.leaflet-popup-content b,
.leaflet-popup-content span {
  color: var(--bs-body-color, #1d2826) !important;
}
.leaflet-popup-content a { color: var(--mc, #3a7d2c) !important; }

/* Override: badges colorati e CTA verde nel popup mappa devono mantenere il testo bianco.
   Sovrascrive il blocco !important sopra che forza tutto al body color. */
.leaflet-popup-content .mc-card-badge,
.leaflet-popup-content .mc-card-badge *,
.leaflet-popup-content .mc-map-popup-badge,
.leaflet-popup-content .mc-map-popup-badge * { color: #fff !important; }
.leaflet-popup-content a.mc-map-pop-cta,
.leaflet-popup-content a.mc-map-pop-cta *,
.leaflet-popup-content a.mc-map-popup-btn,
.leaflet-popup-content a.mc-map-popup-btn * { color: #fff !important; }

/* Popup semplice pagina sede: padding interno per non incollare testo ai bordi */
.mc-sede-popup .leaflet-popup-content {
  padding: 12px 16px !important;
  min-width: 200px;
  max-width: 260px;
}
.mc-sede-popup .leaflet-popup-content strong { font-size: 15px; }
.leaflet-popup-content > * { width: 100% !important; }
.leaflet-popup-content p { margin: 0 !important; }
.leaflet-popup-content img { display: block !important; width: 100% !important; }
.leaflet-popup-tip {
  background: rgba(255,255,255,.92) !important;
  box-shadow: none !important;
}

/* Map popup card styles */
.mc-map-popup-wrap .leaflet-popup-content-wrapper {
  background: #fff !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(0,0,0,.06) !important;
  border-radius: var(--mc-radius-sm) !important;
  box-shadow: 0 16px 48px rgba(0,0,0,.18) !important;
}
.mc-map-popup-wrap .leaflet-popup-tip {
  background: #fff !important;
}
.mc-map-popup {
  width: 260px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  color: var(--mc-ink);
}
.mc-map-popup-img {
  position: relative;
  width: 100%; height: 140px;
  overflow: hidden;
  border-radius: var(--mc-radius-sm) var(--mc-radius-sm) 0 0;
}
.mc-map-popup-img img {
  width: 100% !important; height: 100% !important; object-fit: cover;
  display: block;
}
.mc-map-popup-badge {
  position: absolute; top: 12px; left: 12px;
  padding: 5px 12px; border-radius: 50px;
  background: var(--mc); color: #fff;
  font-size: 10px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .04em;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.mc-map-popup-body {
  padding: 16px 18px 16px;
}
.mc-map-popup-price {
  font-size: 20px; font-weight: 900;
  color: var(--mc-ink);
  letter-spacing: -.5px;
  margin-bottom: 6px;
}
.mc-map-popup-type {
  font-size: 12px; font-weight: 700;
  color: var(--mc); text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 8px;
}
.mc-map-popup-loc {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--mc-ink-secondary);
  margin-bottom: 10px;
  line-height: 1.4;
}
.mc-map-popup-loc i { color: var(--mc); flex-shrink: 0; }
.mc-map-popup-feats {
  display: inline-block;
  padding: 6px 12px; border-radius: 50px;
  background: var(--mc-pale);
  font-size: 11px; font-weight: 700;
  color: var(--mc-dark);
  margin-bottom: 14px;
}
.mc-map-popup-btn {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%;
  padding: 11px 16px; border-radius: var(--mc-radius-xs);
  background: var(--mc); color: #fff !important;
  text-decoration: none !important;
  font-size: 13px; font-weight: 700;
  transition: all .2s ease;
  box-shadow: 0 6px 16px rgba(58,125,44,.25);
}
.mc-map-popup-btn:hover {
  background: var(--mc-dark);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(58,125,44,.35);
}
/* X in alto a destra dentro la card */
.leaflet-popup-close-button {
  color: #fff !important; font-size: 14px !important;
  top: 8px !important; right: 8px !important;
  width: 28px !important; height: 28px !important;
  background: rgba(0,0,0,.4) !important;
  backdrop-filter: blur(8px) !important; -webkit-backdrop-filter: blur(8px) !important;
  border: none !important;
  border-radius: 50% !important; text-align: center !important; line-height: 28px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.15) !important;
  z-index: 10 !important; padding: 0 !important;
  transition: all .2s ease;
}
.leaflet-popup-close-button:hover {
  color: #fff !important; background: var(--mc) !important;
}

/* Leaflet draw toolbar — rounded */
.leaflet-draw-toolbar a { border-radius: var(--mc-radius-xs) !important; }
.leaflet-draw-actions a { border-radius: var(--mc-radius-xs) !important; }

/* No results */
.mc-empty {
  padding: 80px 20px; text-align: center;
  background: rgba(255,255,255,.4);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.5);
  border-radius: var(--mc-radius);
  box-shadow: var(--mc-shadow), inset 0 1px 0 rgba(255,255,255,.8);
}
.mc-empty > i { font-size: 3rem; color: var(--mc-light); margin-bottom: 16px; }
.mc-empty .mc-hero-btn i, .mc-empty .btn i { font-size: inherit; color: inherit; margin-bottom: 0; }
.mc-empty h5 { font-weight: 700; margin-bottom: 8px; }
.mc-empty p { color: var(--mc-ink-muted); font-size: 14px; }

/* View toggle pill (grid/split) */
.mc-view-toggle {
  background: var(--mc-ghost);
  border: 1px solid var(--mc-border);
  border-radius: 50px !important;
  padding: 3px !important;
  gap: 0 !important;
}
.mc-view-toggle .btn {
  border: 0 !important;
  border-radius: 50px !important;
  background: transparent !important;
  color: var(--mc-ink-muted) !important;
  padding: 6px 14px !important;
  font-size: 14px;
  transition: all var(--mc-tr);
}
.mc-view-toggle .btn.active {
  background: #fff !important;
  color: var(--mc) !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.mc-view-toggle .btn:not(.active):hover { color: var(--mc-dark) !important; }

/* "Filtri avanzati" button (pill outlined → riveste outline-secondary) */
.mc-filter-bar #btn-adv-toggle {
  background: #fff;
  border: 1px solid var(--mc-border);
  border-radius: 50px !important;
  color: var(--mc-ink);
  font-weight: 600; padding: 7px 16px;
  font-size: 13px;
  transition: all var(--mc-tr);
  position: relative;
}
.mc-filter-bar #btn-adv-toggle i { color: var(--mc); transition: color var(--mc-tr); }
.mc-filter-bar #btn-adv-toggle:hover {
  background: var(--mc-pale);
  border-color: rgba(58,125,44,.25);
  color: var(--mc-dark);
}

/* =================================================================
 * Detail page
 * ================================================================= */
.mc-detail-gallery a {
  border-radius: var(--mc-radius) !important; overflow: hidden;
  transition: transform var(--mc-tr), box-shadow var(--mc-tr);
}
.mc-detail-gallery a:hover { transform: scale(1.01); box-shadow: var(--mc-shadow-md); }
.mc-detail-gallery img { transition: transform .6s ease; }
.mc-detail-gallery a:hover img { transform: scale(1.04); }

/* Gallery variants — different layouts for property images */
.mc-gallery { border-radius: var(--mc-radius-sm); overflow: hidden; }
.mc-gallery a { display: block; overflow: hidden; border-radius: var(--mc-radius-sm); transition: all var(--mc-tr); position: relative; }
.mc-gallery a:hover { box-shadow: var(--mc-shadow-md); }
.mc-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease, filter .3s ease; }
.mc-lazy-img { filter: blur(2px); }
.mc-lazy-img.mc-img-loaded { filter: none; }
.mc-gallery a:hover img { transform: scale(1.04); }
/* Hero + grid: 1 large left, 4 small right */
.mc-gallery-hero {
  display: grid; grid-template-columns: 3fr 2fr; grid-template-rows: repeat(2, 1fr); gap: 6px;
  height: 460px; border-radius: var(--mc-radius); overflow: hidden;
}
.mc-gallery-hero > a:first-child { grid-row: 1 / -1; }
.mc-gallery-hero > a { overflow: hidden; }
/* When 5 images: right column becomes 2x2 sub-grid */
.mc-gallery-hero.mc-gallery-5 { grid-template-columns: 3fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.mc-gallery-hero.mc-gallery-5 > a:first-child { grid-row: 1 / -1; grid-column: 1; }
/* Mobile gallery (swiper) */
.mc-gallery-mobile {
  border-radius: var(--mc-radius);
  overflow: hidden;
  position: relative;
  background: var(--mc-pale);
  box-shadow: 0 6px 22px rgba(0,0,0,.08);
}
.mc-gallery-mobile-img {
  width: 100%; height: 320px; object-fit: cover; display: block;
  transition: transform .6s ease;
}
.mc-gallery-mobile .swiper-slide.swiper-slide-active .mc-gallery-mobile-img { transform: scale(1.02); }
/* Swipe nativo basta — buttons prev/next nascosti su mobile */
.mc-gallery-mobile-prev,
.mc-gallery-mobile-next { display: none !important; }
.mc-gallery-mobile-counter {
  position: absolute; top: 12px; right: 12px; z-index: 3;
  background: rgba(0,0,0,.55); color: #fff; font-size: 12px; font-weight: 700;
  padding: 6px 12px; border-radius: 50px;
  backdrop-filter: blur(10px) saturate(180%); -webkit-backdrop-filter: blur(10px) saturate(180%);
  border: 1px solid rgba(255,255,255,.15);
  letter-spacing: .02em;
}
.mc-gallery-mobile .swiper-pagination { bottom: 10px !important; z-index: 4; }
.mc-gallery-mobile .swiper-pagination-bullet {
  background: rgba(255,255,255,.7); opacity: 1;
  width: 6px; height: 6px; margin: 0 3px !important;
  transition: all .2s ease;
}
.mc-gallery-mobile .swiper-pagination-bullet-active {
  background: var(--mc);
  width: 20px; border-radius: 3px;
}
/* Masonry: 2-column auto-height */
.mc-gallery-masonry { columns: 2; gap: 6px; }
.mc-gallery-masonry a { break-inside: avoid; margin-bottom: 6px; }
/* Strip: horizontal scroll thumbnails */
.mc-gallery-strip { display: flex; gap: 6px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
.mc-gallery-strip::-webkit-scrollbar { height: 4px; }
.mc-gallery-strip::-webkit-scrollbar-thumb { background: var(--mc-light); border-radius: 2px; }
.mc-gallery-strip a { flex: 0 0 auto; scroll-snap-align: start; width: 200px; height: 140px; }
/* Full-width hero single */
.mc-gallery-full a { display: block; height: 400px; }
@media (max-width: 767.98px) {
  .mc-gallery-full a { height: 240px; }
}

.mc-detail-badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px;
  border-radius: 50px; font-size: 12px; font-weight: 700; letter-spacing: .02em;
}
.mc-detail-badge-sale { background: var(--mc-pale); color: var(--mc-dark); }
.mc-detail-badge-rent { background: #fff3e0; color: #e65100; }
.mc-detail-badge-status { background: var(--mc-ghost); color: var(--mc-ink-secondary); }
.mc-detail-price {
  font-size: clamp(28px, 4vw, 36px); font-weight: 900; color: var(--mc);
  letter-spacing: -1px;
}
.mc-detail-features {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.mc-detail-feature {
  flex: 1; min-width: 90px; text-align: center; padding: 18px 12px;
  border: 1px solid rgba(255,255,255,.5);
  border-top-color: rgba(255,255,255,.8);
  border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.45);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 2px 8px rgba(0,0,0,.03), inset 0 1px 0 rgba(255,255,255,.7);
  transition: all var(--mc-tr);
}
.mc-detail-feature:hover {
  background: rgba(255,255,255,.65); transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.9);
}
.mc-detail-feature-value { font-size: 20px; font-weight: 800; color: var(--mc-ink); }
.mc-detail-feature-label { font-size: 11px; color: var(--mc-ink-muted); text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }

/* Detail sidebar glass */
.mc-detail-sidebar {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--mc-radius); padding: 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,.06);
  transition: box-shadow .4s cubic-bezier(.4,0,.2,1), transform .4s cubic-bezier(.4,0,.2,1);
}
.mc-detail-sidebar:hover {
  box-shadow: 0 20px 60px rgba(0,0,0,.1);
  transform: translateY(-4px);
}

/* Detail info table */
.mc-detail-table {
  background: rgba(255,255,255,.35);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-radius: var(--mc-radius-sm); overflow: hidden;
  border: 1px solid rgba(255,255,255,.5);
  box-shadow: 0 2px 8px rgba(0,0,0,.03), inset 0 1px 0 rgba(255,255,255,.7);
}
.mc-detail-table th {
  font-size: 12px; font-weight: 600; color: var(--mc-ink-muted);
  text-transform: uppercase; letter-spacing: .05em; padding: 12px 20px !important;
  white-space: nowrap;
}
.mc-detail-table td {
  font-size: 14px; font-weight: 500; color: var(--mc-ink);
  padding: 12px 20px !important;
}
.mc-detail-table tr { border-bottom: 1px solid rgba(58,125,44,.06); }
.mc-detail-table tr:last-child { border-bottom: none; }

/* Amenity pills */
.mc-amenity {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px; border-radius: 50px;
  background: rgba(255,255,255,.5); border: 1px solid rgba(255,255,255,.5);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  font-size: 13px; font-weight: 500; color: var(--mc-ink);
  transition: all var(--mc-tr);
  box-shadow: 0 2px 8px rgba(0,0,0,.03), inset 0 1px 0 rgba(255,255,255,.7);
}
.mc-amenity:hover {
  border-color: var(--mc-light); background: rgba(238,247,236,.6);
  transform: translateY(-1px); box-shadow: 0 4px 16px rgba(58,125,44,.08);
}
.mc-amenity i { color: var(--mc); font-size: 14px; }

/* Mortgage calculator card */
.mc-mutuo-card {
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%);
  border: 1px solid rgba(255,255,255,.6);
  border-top-color: rgba(255,255,255,.9);
  border-radius: var(--mc-radius); padding: 24px;
  box-shadow: 0 8px 40px rgba(0,0,0,.07), inset 0 1px 0 rgba(255,255,255,.9);
}
.mc-mutuo-card .input-group-sm .form-control,
.mc-mutuo-card .input-group-sm .input-group-text {
  padding-top: 8px; padding-bottom: 8px;
}
.mc-mutuo-result {
  font-size: 28px; font-weight: 900; color: var(--mc); letter-spacing: -1px;
}

/* Detail section headers */
.mc-detail-heading {
  font-size: 18px; font-weight: 800; color: var(--mc-ink);
  padding: 14px 20px; margin-bottom: 20px;
  background: rgba(255,255,255,.4);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.5);
  border-radius: var(--mc-radius-sm);
  box-shadow: 0 2px 8px rgba(0,0,0,.03), inset 0 1px 0 rgba(255,255,255,.7);
  display: flex; align-items: center; gap: 8px;
}
.mc-detail-heading i { color: var(--mc); font-size: 16px; }

/* Photo count button */
.mc-photo-count {
  background: rgba(0,0,0,.6); color: #fff; border: none;
  border-radius: var(--mc-radius-xs); padding: 8px 16px;
  font-size: 13px; font-weight: 600; backdrop-filter: blur(8px);
  transition: all var(--mc-tr);
}
.mc-photo-count:hover { background: rgba(0,0,0,.8); }

/* Share button */
.mc-share-btn {
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--mc-border); background: var(--mc-ghost);
  display: flex; align-items: center; justify-content: center;
  transition: all var(--mc-tr); color: var(--mc-ink-secondary);
}
.mc-share-btn:hover { background: var(--mc-pale); border-color: var(--mc-light); color: var(--mc); }

/* Correlati section */
.mc-correlati {
  background: var(--mc-ghost); border-top: 1px solid var(--mc-border);
}

/* =================================================================
 * Swipe deck (mobile) — sfoglia immobili simili a carte
 * ================================================================= */
.mc-correlati-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
}
.mc-correlati-view-toggle {
  display: none;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--mc-border);
  background: #fff;
  color: var(--mc-ink-secondary);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
}
.mc-correlati-view-toggle:hover,
.mc-correlati-view-toggle:active {
  background: var(--mc-pale);
  color: var(--mc);
  border-color: var(--mc-light);
}
.mc-correlati-view-toggle i { font-size: 14px; }

/* Default: grid desktop, deck mobile */
.mc-correlati-grid { display: flex; }
.mc-correlati-deck { display: none; }
@media (max-width: 991.98px) {
  .mc-correlati-view-toggle { display: inline-flex; }
  .mc-correlati-grid { display: none; }
  .mc-correlati-deck { display: block; }
  /* Override toggle: utente preferisce griglia anche su mobile */
  .mc-correlati.is-grid-view .mc-correlati-grid { display: flex; }
  .mc-correlati.is-grid-view .mc-correlati-deck { display: none; }
}

.mc-correlati-deck {
  max-width: 420px;
  margin: 0 auto;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.mc-deck-progress {
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-ink-secondary);
  margin-bottom: 12px;
  letter-spacing: .02em;
}
.mc-deck-progress-current { color: var(--mc); font-size: 16px; }
.mc-deck-progress-sep { margin: 0 6px; opacity: .5; }

.mc-deck-stack {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  max-height: 560px;
  perspective: 1200px;
}

.mc-deck-card {
  position: absolute;
  inset: 0;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 12px 36px rgba(0,0,0,.18), 0 2px 8px rgba(0,0,0,.08);
  transform: translate3d(0,0,0) scale(1) rotate(0deg);
  transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s ease, box-shadow .3s ease;
  will-change: transform;
  cursor: grab;
}
.mc-deck-card.is-dragging { transition: none; cursor: grabbing; }
.mc-deck-card.is-out-left {
  transform: translate3d(-140%, 30px, 0) rotate(-22deg) !important;
  opacity: 0;
  pointer-events: none;
}
.mc-deck-card.is-out-right {
  transform: translate3d(140%, 30px, 0) rotate(22deg) !important;
  opacity: 0;
  pointer-events: none;
}
.mc-deck-card.is-top { z-index: 3; }
.mc-deck-card.is-next { z-index: 2; transform: translate3d(0, 16px, 0) scale(.94); }
.mc-deck-card.is-prev { z-index: 1; transform: translate3d(0, 28px, 0) scale(.88); opacity: .8; }
.mc-deck-card.is-hidden { display: none; }

.mc-deck-card-media {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.mc-deck-card-media .mc-card-noimg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  background-size: cover; background-position: center;
}
.mc-deck-card-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; display: block;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease;
}
.mc-deck-card-img.is-loaded { opacity: 1; }
.mc-deck-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.25) 60%, rgba(0,0,0,.78) 100%);
  pointer-events: none;
}

/* Indicatori a barrette (stile Stories) */
.mc-deck-img-bars {
  position: absolute; top: 10px; left: 10px; right: 10px;
  display: flex; gap: 4px;
  z-index: 4;
  pointer-events: none;
}
.mc-deck-img-bar {
  flex: 1;
  height: 3px;
  background: rgba(255,255,255,.35);
  border-radius: 999px;
  transition: background .25s ease;
}
.mc-deck-img-bar.is-active { background: #fff; }

.mc-deck-card-badges {
  position: absolute; top: 22px; left: 14px;
  display: flex; flex-wrap: wrap; gap: 6px;
  z-index: 2;
}

.mc-deck-card-body {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 16px 18px 20px;
  color: #fff;
  z-index: 2;
}
.mc-deck-card-price {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -.5px;
  margin-bottom: 4px;
  text-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.mc-deck-card-price .mc-card-price-suffix {
  font-size: 14px; font-weight: 600; opacity: .85; margin-left: 4px;
}
.mc-deck-card-address {
  font-size: 13px;
  line-height: 1.35;
  margin-bottom: 8px;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}
.mc-deck-card-street { display: block; font-weight: 600; }
.mc-deck-card-city { display: block; opacity: .85; }
.mc-deck-card-meta {
  display: flex; flex-wrap: wrap; gap: 10px 14px;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 12px;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}
.mc-deck-card-meta-item { display: inline-flex; align-items: center; gap: 4px; }
.mc-deck-card-meta-item i { font-size: 14px; opacity: .9; }
.mc-deck-card-meta .mc-energy-badge { text-shadow: none; }

.mc-deck-card-cta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  background: rgba(255,255,255,.95);
  color: var(--mc-ink);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  backdrop-filter: blur(6px);
  transition: background .2s, transform .2s;
}
.mc-deck-card-cta:hover, .mc-deck-card-cta:active {
  background: #fff;
  color: var(--mc);
  transform: translateY(-1px);
}
.mc-deck-card-cta i { font-size: 12px; }

.mc-deck-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 18px;
}
.mc-deck-btn {
  width: 56px; height: 56px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,.1);
  transition: transform .15s ease, box-shadow .2s, color .2s, border-color .2s;
  color: var(--mc-ink-secondary);
  text-decoration: none;
}
.mc-deck-btn:active { transform: scale(.92); }
.mc-deck-btn-prev,
.mc-deck-btn-next {
  color: var(--mc-ink-secondary);
}
.mc-deck-btn-prev:hover,
.mc-deck-btn-next:hover {
  border-color: var(--mc-light);
  color: var(--mc);
  box-shadow: 0 6px 18px rgba(58,125,44,.18);
}
.mc-deck-btn:disabled,
.mc-deck-btn[disabled] {
  opacity: .35;
  cursor: not-allowed;
  box-shadow: none;
}
.mc-deck-btn-view {
  width: 64px; height: 64px;
  font-size: 22px;
  color: #fff;
  background: var(--mc);
  border-color: var(--mc);
}
.mc-deck-btn-view:hover { background: var(--mc-dark); border-color: var(--mc-dark); color: #fff; }

.mc-deck-hint {
  text-align: center;
  font-size: 12px;
  color: var(--mc-ink-secondary);
  margin-top: 12px;
  opacity: .7;
}

.mc-deck-empty {
  position: absolute; inset: 0;
  display: none;
  align-items: center; justify-content: center;
  border-radius: 22px;
  background: linear-gradient(135deg, var(--mc-pale), #fff);
  border: 1px dashed var(--mc-light);
  padding: 24px;
  text-align: center;
  z-index: 0;
}
.mc-deck-empty.is-visible { display: flex; }
.mc-deck-empty-inner { max-width: 280px; }
.mc-deck-empty i {
  font-size: 44px;
  color: var(--mc);
  margin-bottom: 12px;
  display: inline-block;
}
.mc-deck-empty h3 {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 8px;
}
.mc-deck-empty p {
  font-size: 13px;
  color: var(--mc-ink-secondary);
  margin-bottom: 16px;
}
.mc-deck-empty-actions {
  display: flex; flex-direction: column; gap: 8px;
}
.mc-deck-empty-actions .btn { font-size: 13px; padding: 8px 16px; }

/* =================================================================
 * Detail card — unified container for ALL detail sections
 * ================================================================= */
.mc-detail-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--mc-radius);
  padding: 24px 28px;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
  transition: box-shadow .35s cubic-bezier(.4,0,.2,1), transform .35s cubic-bezier(.4,0,.2,1), border-color .3s;
  margin-bottom: 20px;
}
.mc-detail-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.06);
  border-color: rgba(58,125,44,.1);
}
.mc-detail-card > :last-child { margin-bottom: 0; }

/* Heading inside card: flat, with underline divider (NOT its own glass box) */
.mc-detail-card > .mc-detail-heading {
  background: transparent;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  border: none; box-shadow: none;
  padding: 0 0 14px;
  margin: 0 0 20px;
  border-bottom: 1px solid rgba(0,0,0,.06);
  border-radius: 0;
  font-size: 17px;
  letter-spacing: -.2px;
}
.mc-detail-card > .mc-detail-heading i {
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--mc-pale); border-radius: 8px;
  font-size: 15px;
}

/* Header card: hero of the page (title, prezzo, badges) — aligned with other cards */
.mc-detail-header-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--mc-radius);
  padding: 28px;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
.mc-detail-header-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--mc) 0%, var(--mc-light) 100%);
}

/* Price meta strip */
.mc-detail-price-meta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px;
  background: var(--mc-ghost);
  border: 1px solid var(--mc-border);
  border-radius: 50px;
  font-size: 13px; color: var(--mc-ink-secondary);
}
.mc-detail-price-meta strong { color: var(--mc-ink); font-weight: 700; }

/* Note blocks inside card */
.mc-detail-note { margin-bottom: 16px; }
.mc-detail-note:last-child { margin-bottom: 0; }
.mc-detail-note-title {
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--mc); margin-bottom: 6px;
}
.mc-detail-note-body {
  font-size: 14px; line-height: 1.7; color: var(--mc-ink-secondary);
  margin: 0;
}

/* Sidebar trust chip */
.mc-trust-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 50px;
  background: rgba(58,125,44,.08); color: var(--mc-dark);
  font-size: 11px; font-weight: 700;
  letter-spacing: .02em;
}
.mc-trust-chip i { font-size: 11px; }

/* Sidebar reply-time line */
.mc-reply-time {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; margin-bottom: 16px;
  background: rgba(58,125,44,.05);
  border: 1px solid rgba(58,125,44,.12);
  border-radius: var(--mc-radius-xs);
  font-size: 13px; color: var(--mc-ink-secondary);
}
.mc-reply-time i { color: var(--mc); font-size: 14px; }
.mc-reply-time strong { color: var(--mc-ink); font-weight: 700; }

/* =================================================================
 * Mobile sticky CTA bar (bottom)
 * ================================================================= */
.mc-mobile-cta-bar {
  position: fixed; bottom: 0; left: 0; right: 0;
  display: none;
  border-top: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 -6px 24px rgba(0,0,0,.08);
  padding: 10px 12px calc(env(safe-area-inset-bottom, 0px) + 10px);
  z-index: 1040;
  backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%);
  background: rgba(255,255,255,.94);
}
.mc-mobile-cta-bar-inner { display: flex; align-items: stretch; gap: 8px; }
.mc-mobile-cta-price {
  flex: 0 0 auto; padding: 4px 10px 4px 2px;
  border-right: 1px solid var(--mc-border);
  display: flex; flex-direction: column; justify-content: center;
  min-width: 0;
}
.mc-mobile-cta-price-value { font-size: 17px; font-weight: 900; color: var(--mc); letter-spacing: -.5px; line-height: 1.05; white-space: nowrap; }
.mc-mobile-cta-price-label { font-size: 10px; color: var(--mc-ink-muted); text-transform: uppercase; letter-spacing: .06em; margin-top: 3px; font-weight: 700; white-space: nowrap; }
.mc-mobile-cta-btn {
  height: 46px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font-weight: 700; font-size: 14px; text-decoration: none;
  border: none; cursor: pointer;
  transition: transform .15s, box-shadow .15s;
}
.mc-mobile-cta-btn-icon { flex: 0 0 46px; padding: 0; }
.mc-mobile-cta-btn-primary { flex: 1 1 auto; padding: 0 14px; min-width: 0; }
.mc-mobile-cta-btn-call { background: var(--mc-pale); color: var(--mc-dark); border: 1px solid rgba(58,125,44,.18); }
.mc-mobile-cta-btn-wa   { background: #25d366; color: #fff; }
.mc-mobile-cta-btn-save { background: #fff; color: var(--mc-ink-secondary); border: 1px solid var(--mc-border); }
.mc-mobile-cta-btn-save.is-saved { background: var(--mc-pale); color: var(--mc); border-color: var(--mc-light); }
.mc-mobile-cta-btn-save.is-saved i::before { content: "♥"; font-style: normal; }
.mc-mobile-cta-btn-info { background: var(--mc); color: #fff; box-shadow: 0 4px 14px rgba(58,125,44,.25); }
.mc-mobile-cta-btn i { font-size: 18px; }
.mc-mobile-cta-btn:active { transform: scale(.96); }

/* =================================================================
 * Salva & Condividi — quick actions card
 * ================================================================= */
.mc-quickact {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px;
}
.mc-quickact-btn {
  background: #fff; border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm);
  padding: 14px 10px;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  cursor: pointer; transition: all var(--mc-tr);
  color: var(--mc-ink);
  font-size: 13px; font-weight: 600;
  text-decoration: none;
}
.mc-quickact-btn:hover {
  border-color: var(--mc-light); background: var(--mc-pale);
  transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.06);
  color: var(--mc-dark);
}
.mc-quickact-icon {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--mc-ghost);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 18px; color: var(--mc);
  transition: all var(--mc-tr);
}
.mc-quickact-btn:hover .mc-quickact-icon { background: #fff; transform: scale(1.05); }
.mc-quickact-btn.is-active { border-color: var(--mc); background: var(--mc-pale); color: var(--mc-dark); }
.mc-quickact-btn.is-active .mc-quickact-icon { background: var(--mc); color: #fff; }
.mc-quickact-btn.is-active .mc-quickact-icon i::before { content: "♥"; font-style: normal; }
.mc-quickact-copied {
  position: absolute; background: var(--mc-ink); color: #fff;
  padding: 6px 10px; border-radius: 6px; font-size: 11px; font-weight: 700;
  opacity: 0; pointer-events: none; transition: opacity .2s;
  transform: translate(-50%, -32px); left: 50%;
}
.mc-quickact-copied.show { opacity: 1; }

/* Highlight bar (Matterport / Planimetria) */
.mc-quickact-highlight {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.mc-quickact-highlight-btn {
  flex: 1; min-width: 0;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 16px; border-radius: var(--mc-radius-sm);
  font-size: 14px; font-weight: 700; text-decoration: none;
  transition: all var(--mc-tr); cursor: pointer;
}
.mc-quickact-highlight-primary {
  background: var(--mc); color: #fff; border: 2px solid var(--mc);
}
.mc-quickact-highlight-primary:hover {
  background: var(--mc-dark); border-color: var(--mc-dark); color: #fff;
  transform: translateY(-2px); box-shadow: 0 6px 18px rgba(58,125,44,.3);
}
.mc-quickact-highlight-secondary {
  background: #fff; color: var(--mc); border: 2px solid var(--mc);
}
.mc-quickact-highlight-secondary:hover {
  background: var(--mc-pale); color: var(--mc-dark); border-color: var(--mc-dark);
  transform: translateY(-2px); box-shadow: 0 6px 18px rgba(58,125,44,.15);
}

/* =================================================================
 * Budget simulator — reverse mortgage ("Quanto posso permettermi?")
 * ================================================================= */
.mc-budget-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }
.mc-budget-field label {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--mc-ink-secondary); margin-bottom: 6px;
  display: block;
}
.mc-budget-slider-wrap { position: relative; }
.mc-budget-input-row {
  display: flex; align-items: center; gap: 8px;
  background: var(--mc-ghost); border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-xs); padding: 10px 14px;
}
.mc-budget-input-row input {
  border: none; background: transparent; width: 100%;
  font-size: 15px; font-weight: 700; color: var(--mc-ink);
  outline: none;
}
.mc-budget-input-row span { color: var(--mc-ink-muted); font-weight: 600; flex-shrink: 0; }
.mc-budget-result {
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 100%);
  color: #fff;
  border-radius: var(--mc-radius);
  padding: 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.mc-budget-result-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .85; }
.mc-budget-result-value { font-size: 26px; font-weight: 900; letter-spacing: -.5px; font-variant-numeric: tabular-nums; margin-top: 2px; }
.mc-budget-vs {
  margin-top: 14px; padding: 12px 16px;
  border-radius: var(--mc-radius-xs);
  display: flex; align-items: center; gap: 8px;
  font-size: 13px;
}
.mc-budget-vs-ok { background: rgba(34,197,94,.08); color: #16a34a; border: 1px solid rgba(34,197,94,.2); }
.mc-budget-vs-no { background: rgba(220,38,38,.06); color: #dc2626; border: 1px solid rgba(220,38,38,.2); }
.mc-budget-vs i { font-size: 16px; }

/* =================================================================
 * Visita inline form (embedded lead capture after chip selection)
 * ================================================================= */
.mc-visita-form {
  margin-top: 14px; padding-top: 16px;
  border-top: 1px dashed rgba(58,125,44,.2);
  display: none;
}
.mc-visita-form.open { display: block; animation: mcFadeIn .3s ease-out; }
@keyframes mcFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.mc-visita-form-summary {
  padding: 10px 14px; border-radius: var(--mc-radius-xs);
  background: var(--mc-pale); color: var(--mc-dark);
  font-size: 13px; font-weight: 600;
  margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.mc-visita-form-summary i { color: var(--mc); }
.mc-visita-form-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  margin-bottom: 12px;
}
.mc-visita-form-grid input, .mc-visita-form-grid textarea {
  width: 100%; padding: 10px 12px;
  border: 1px solid var(--mc-border); border-radius: var(--mc-radius-xs);
  background: #fff; font-size: 14px;
}
.mc-visita-form-grid input:focus, .mc-visita-form-grid textarea:focus { outline: none; border-color: var(--mc); box-shadow: 0 0 0 3px rgba(58,125,44,.1); }
.mc-visita-form-grid .full { grid-column: 1 / -1; }
.mc-visita-form-privacy { font-size: 12px; color: var(--mc-ink-muted); margin-bottom: 12px; display: flex; align-items: flex-start; gap: 8px; cursor: pointer; }
.mc-visita-form-privacy a { color: var(--mc); }
.mc-visita-success {
  padding: 24px 20px; border-radius: var(--mc-radius-sm);
  background: linear-gradient(135deg, var(--mc-pale) 0%, #fff 100%);
  border: 1px solid var(--mc-light);
  text-align: center;
  display: none;
}
.mc-visita-success.show { display: block; animation: mcFadeIn .4s ease-out; }
.mc-visita-success-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--mc); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 12px;
}
.mc-visita-success h4 { font-size: 18px; font-weight: 800; margin-bottom: 6px; color: var(--mc-ink); }
.mc-visita-success p { font-size: 14px; color: var(--mc-ink-secondary); margin: 0; }

/* =================================================================
 * Stima consumi annui
 * ================================================================= */
.mc-consumi-hero {
  display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: center;
  padding: 18px; margin-bottom: 16px;
  background: linear-gradient(135deg, var(--mc-pale) 0%, rgba(238,247,236,.4) 100%);
  border: 1px solid var(--mc-light);
  border-radius: var(--mc-radius-sm);
}
.mc-consumi-hero-value { font-size: 28px; font-weight: 900; color: var(--mc); letter-spacing: -.5px; font-variant-numeric: tabular-nums; line-height: 1; }
.mc-consumi-hero-label { font-size: 12px; font-weight: 700; color: var(--mc-dark); text-transform: uppercase; letter-spacing: .06em; margin-top: 4px; }
.mc-consumi-hero-right { text-align: right; }
.mc-consumi-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.mc-consumi-item {
  padding: 14px 16px; border-radius: var(--mc-radius-xs);
  background: #fff; border: 1px solid var(--mc-border);
}
.mc-consumi-item-icon {
  width: 32px; height: 32px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--mc-ghost); margin-bottom: 8px;
}
.mc-consumi-item-icon i { color: var(--mc); font-size: 16px; }
.mc-consumi-item-label { font-size: 12px; color: var(--mc-ink-muted); font-weight: 600; margin-bottom: 2px; }
.mc-consumi-item-value { font-size: 18px; font-weight: 800; color: var(--mc-ink); font-variant-numeric: tabular-nums; }
.mc-consumi-scale {
  height: 8px; border-radius: 4px; overflow: hidden;
  background: linear-gradient(90deg, #00a651 0%, #8bc34a 25%, #ffeb3b 50%, #ff9800 75%, #e53935 100%);
  position: relative; margin: 16px 0 6px;
}
.mc-consumi-scale-marker {
  position: absolute; top: -6px; width: 20px; height: 20px;
  background: #fff; border: 3px solid var(--mc-ink);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.mc-consumi-scale-labels {
  display: flex; justify-content: space-between;
  font-size: 10px; color: var(--mc-ink-muted); font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em;
}

/* =================================================================
 * Agente card
 * ================================================================= */
.mc-agente-card {
  display: grid; grid-template-columns: auto 1fr auto; gap: 20px;
  align-items: center;
}
.mc-agente-photo {
  width: 80px; height: 80px; border-radius: 50%;
  overflow: hidden; position: relative;
  background: var(--mc-ghost); border: 3px solid var(--mc-border);
  flex-shrink: 0;
}
.mc-agente-photo img { width: 100%; height: 100%; object-fit: cover; }
.mc-agente-photo-empty {
  display: flex; align-items: center; justify-content: center; height: 100%;
  color: var(--mc-light); font-size: 32px;
}
.mc-agente-online {
  position: absolute; bottom: 2px; right: 2px;
  width: 18px; height: 18px; border-radius: 50%;
  background: #22c55e; border: 3px solid #fff;
}
.mc-agente-info h4 { font-size: 18px; font-weight: 800; margin: 0 0 4px; color: var(--mc-ink); letter-spacing: -.2px; }
.mc-agente-info .mc-agente-role { font-size: 13px; color: var(--mc-ink-muted); margin-bottom: 8px; }
.mc-agente-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.mc-agente-actions { display: flex; flex-direction: column; gap: 8px; }
.mc-agente-action-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: var(--mc-radius-xs);
  font-weight: 700; font-size: 13px; text-decoration: none;
  border: 1px solid var(--mc-border); background: #fff;
  color: var(--mc-ink); transition: all var(--mc-tr);
  white-space: nowrap;
}
.mc-agente-action-btn:hover { border-color: var(--mc); background: var(--mc-pale); color: var(--mc-dark); transform: translateY(-1px); }
.mc-agente-action-btn i { color: var(--mc); font-size: 14px; }
.mc-agente-action-btn.mc-agente-action-wa { background: #25d366; color: #fff; border-color: #25d366; }
.mc-agente-action-btn.mc-agente-action-wa:hover { background: #1fb957; border-color: #1fb957; color: #fff; }
.mc-agente-action-btn.mc-agente-action-wa i { color: #fff; }
@media (max-width: 768px) {
  .mc-agente-card { grid-template-columns: auto 1fr; }
  .mc-agente-actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; margin-top: 8px; }
  .mc-agente-action-btn { flex: 1; justify-content: center; min-width: 110px; }
  .mc-agente-photo { width: 64px; height: 64px; }
  .mc-agente-info h4 { font-size: 16px; }
}

/* =================================================================
 * Priorità checklist (match score)
 * ================================================================= */
.mc-prio-score {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 20px; margin-bottom: 14px;
  background: linear-gradient(135deg, var(--mc-pale) 0%, #fff 100%);
  border: 1px solid var(--mc-light);
  border-radius: var(--mc-radius-sm);
}
.mc-prio-score-ring {
  width: 56px; height: 56px; border-radius: 50%;
  background: conic-gradient(var(--mc) 0%, var(--mc-ghost) 0%);
  display: flex; align-items: center; justify-content: center;
  position: relative; flex-shrink: 0;
  transition: background .4s;
}
.mc-prio-score-ring::after {
  content: ""; position: absolute; inset: 6px; border-radius: 50%; background: #fff;
}
.mc-prio-score-num { position: relative; z-index: 1; font-size: 16px; font-weight: 900; color: var(--mc); }
.mc-prio-score-text { flex: 1; }
.mc-prio-score-text strong { font-size: 15px; color: var(--mc-ink); display: block; }
.mc-prio-score-text span { font-size: 13px; color: var(--mc-ink-muted); }
.mc-prio-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.mc-prio-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 14px; border-radius: var(--mc-radius-xs);
  border: 1px solid var(--mc-border); background: #fff;
  cursor: pointer; transition: all var(--mc-tr);
}
.mc-prio-item:hover { border-color: var(--mc-light); background: var(--mc-pale); }
.mc-prio-check {
  flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px;
  border: 2px solid var(--mc-border); background: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all var(--mc-tr);
  margin-top: 1px;
}
.mc-prio-check i { font-size: 11px; color: #fff; opacity: 0; transition: opacity .2s; }
.mc-prio-item.checked .mc-prio-check { background: var(--mc); border-color: var(--mc); }
.mc-prio-item.checked .mc-prio-check i { opacity: 1; }
.mc-prio-label { flex: 1; font-size: 13px; color: var(--mc-ink); font-weight: 500; line-height: 1.4; }
.mc-prio-match {
  flex-shrink: 0; font-size: 10px; font-weight: 800; padding: 3px 8px; border-radius: 50px;
  text-transform: uppercase; letter-spacing: .04em;
  display: none;
}
.mc-prio-item.checked[data-matches="1"] .mc-prio-match { display: inline-block; background: rgba(34,197,94,.12); color: #16a34a; }
.mc-prio-item.checked[data-matches="0"] .mc-prio-match { display: inline-block; background: rgba(220,38,38,.1); color: #dc2626; }
.mc-prio-item.checked[data-matches="1"] .mc-prio-match::before { content: "✓ c'è"; }
.mc-prio-item.checked[data-matches="0"] .mc-prio-match::before { content: "✗ manca"; }

/* =================================================================
 * Checklist per la visita
 * ================================================================= */
.mc-checklist { list-style: none; padding: 0; margin: 0; }
.mc-checklist-item {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid rgba(0,0,0,.05);
  cursor: pointer;
}
.mc-checklist-item:last-child { border-bottom: none; }
.mc-checklist-check {
  flex-shrink: 0; width: 22px; height: 22px; border-radius: 6px;
  border: 2px solid var(--mc-border); background: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all var(--mc-tr);
  margin-top: 1px;
}
.mc-checklist-check i { font-size: 12px; color: #fff; opacity: 0; transition: opacity .2s; }
.mc-checklist-item.checked .mc-checklist-check {
  background: var(--mc); border-color: var(--mc);
}
.mc-checklist-item.checked .mc-checklist-check i { opacity: 1; }
.mc-checklist-text { font-size: 14px; color: var(--mc-ink); line-height: 1.5; font-weight: 500; }
.mc-checklist-item.checked .mc-checklist-text { color: var(--mc-ink-muted); text-decoration: line-through; }
.mc-checklist-hint { display: block; font-size: 12px; color: var(--mc-ink-muted); font-weight: 400; margin-top: 2px; }
.mc-checklist-progress {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; margin-bottom: 14px;
  background: var(--mc-ghost); border-radius: var(--mc-radius-xs);
  font-size: 13px; color: var(--mc-ink-secondary);
}
.mc-checklist-progress-bar {
  flex-grow: 1; height: 8px; background: #fff;
  border-radius: 4px; overflow: hidden;
}
.mc-checklist-progress-fill {
  height: 100%; background: linear-gradient(90deg, var(--mc) 0%, var(--mc-light) 100%);
  transition: width .4s cubic-bezier(.4,0,.2,1);
}
.mc-checklist-progress-num { font-weight: 800; color: var(--mc); }

/* =================================================================
 * Costi gate (lead capture)
 * ================================================================= */
.mc-costi-gate {
  background: linear-gradient(135deg, rgba(238,247,236,.5) 0%, #fff 100%);
  border: 1px dashed var(--mc-light);
  border-radius: var(--mc-radius-sm);
  padding: 20px;
  text-align: center;
}
.mc-costi-gate-teaser {
  font-size: 14px; color: var(--mc-ink-secondary);
  margin-bottom: 16px; line-height: 1.6;
}
.mc-costi-gate-preview {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; border-radius: var(--mc-radius-xs);
  background: #fff; border: 1px solid var(--mc-border);
  margin-bottom: 20px;
  font-size: 14px;
}
.mc-costi-gate-preview-left { color: var(--mc-ink-muted); font-weight: 500; }
.mc-costi-gate-preview-right {
  font-weight: 800; color: var(--mc); filter: blur(6px);
  user-select: none; letter-spacing: -.3px;
}
.mc-costi-gate-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; text-align: left; }
.mc-costi-gate-fields input {
  width: 100%; padding: 10px 12px;
  border: 1px solid var(--mc-border); border-radius: var(--mc-radius-xs);
  background: #fff; font-size: 14px;
}
.mc-costi-gate-fields input:focus { outline: none; border-color: var(--mc); box-shadow: 0 0 0 3px rgba(58,125,44,.1); }
.mc-costi-gate-fields .full { grid-column: 1 / -1; }
.mc-costi-gate-privacy { font-size: 12px; color: var(--mc-ink-muted); margin-bottom: 14px; text-align: left; }
.mc-costi-gate-privacy a { color: var(--mc); }
.mc-costi-gate-submit {
  width: 100%; padding: 14px 20px; border-radius: var(--mc-radius-xs);
  background: var(--mc); color: #fff; border: none;
  font-size: 15px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  cursor: pointer; transition: all var(--mc-tr);
}
.mc-costi-gate-submit:hover { background: var(--mc-dark); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(58,125,44,.3); }
.mc-costi-gate-submit:disabled { opacity: .6; cursor: not-allowed; }
.mc-costi-gate-error {
  color: #dc2626; font-size: 13px; margin-top: 8px;
}
@media (max-width: 991.98px) {
  .mc-mobile-cta-bar { display: block; }
  /* Transizione per show/hide smart sullo scroll */
  .mc-mobile-cta-bar {
    transition: transform .3s cubic-bezier(.4,0,.2,1), opacity .25s ease;
    will-change: transform;
  }
  .mc-mobile-cta-bar.is-hidden {
    transform: translateY(110%);
    opacity: 0;
    pointer-events: none;
  }
  /* Reserve space so footer not hidden (include safe-area per iPhone) */
  body.has-mobile-cta {
    padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }
  /* Mascot sopra la CTA bar, sempre (include safe-area) */
  body.has-mobile-cta .mc-mascot {
    bottom: calc(92px + env(safe-area-inset-bottom, 0px));
    transition: bottom .3s cubic-bezier(.4,0,.2,1);
  }
  /* Quando la CTA bar è nascosta, il mascot scende */
  body.has-mobile-cta.cta-hidden .mc-mascot {
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  }
  body.has-mobile-cta #scrollTop,
  body.has-mobile-cta .btn-scroll-top {
    bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* =================================================================
 * Costi totali acquisto — interactive calculator
 * ================================================================= */
.mc-costi-toggle {
  display: inline-flex; padding: 4px; gap: 4px;
  background: var(--mc-ghost); border: 1px solid var(--mc-border);
  border-radius: 50px; margin-bottom: 16px;
}
.mc-costi-toggle-btn {
  padding: 8px 18px; border-radius: 50px; border: none; background: transparent;
  font-size: 13px; font-weight: 600; color: var(--mc-ink-secondary);
  cursor: pointer; transition: all var(--mc-tr);
}
.mc-costi-toggle-btn.active {
  background: var(--mc); color: #fff;
  box-shadow: 0 2px 8px rgba(58,125,44,.25);
}
.mc-costi-breakdown {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px;
  margin-bottom: 16px;
}
.mc-costi-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 0; border-bottom: 1px dashed rgba(0,0,0,.06);
}
.mc-costi-item-label { font-size: 13px; color: var(--mc-ink-secondary); display: flex; align-items: center; gap: 6px; }
.mc-costi-item-label i { color: var(--mc); font-size: 13px; }
.mc-costi-item-value { font-size: 14px; font-weight: 700; color: var(--mc-ink); font-variant-numeric: tabular-nums; }
.mc-costi-total {
  background: linear-gradient(135deg, var(--mc-pale) 0%, rgba(238,247,236,.6) 100%);
  border: 1px solid var(--mc-light);
  border-radius: var(--mc-radius-sm);
  padding: 16px 20px;
  display: flex; justify-content: space-between; align-items: center;
}
.mc-costi-total-label { font-size: 13px; font-weight: 700; color: var(--mc-dark); text-transform: uppercase; letter-spacing: .06em; }
.mc-costi-total-value { font-size: 24px; font-weight: 900; color: var(--mc); letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.mc-costi-note { font-size: 11px; color: var(--mc-ink-muted); margin-top: 10px; line-height: 1.5; }

/* =================================================================
 * Prenota visita — interactive booking widget
 * ================================================================= */
.mc-visita-grid {
  display: grid; grid-template-columns: 1fr; gap: 16px;
}
.mc-visita-label {
  font-size: 12px; font-weight: 700; color: var(--mc-ink);
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px;
  display: flex; align-items: center; gap: 6px;
}
.mc-visita-label i { color: var(--mc); font-size: 14px; }
.mc-visita-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.mc-visita-chip {
  flex: 1; min-width: 100px;
  padding: 12px 10px; border-radius: var(--mc-radius-xs);
  background: #fff; border: 2px solid var(--mc-border);
  font-size: 13px; font-weight: 600; color: var(--mc-ink);
  text-align: center; cursor: pointer; transition: all var(--mc-tr);
  display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.mc-visita-chip-day { font-size: 11px; color: var(--mc-ink-muted); font-weight: 700; }
.mc-visita-chip-date { font-size: 18px; font-weight: 800; color: var(--mc-ink); line-height: 1; }
.mc-visita-chip-month { font-size: 11px; color: var(--mc-ink-muted); font-weight: 600; }
.mc-visita-chip:hover {
  border-color: var(--mc-light);
  background: var(--mc-pale);
}
.mc-visita-chip.active {
  border-color: var(--mc);
  background: var(--mc-pale);
  box-shadow: 0 4px 12px rgba(58,125,44,.15);
}
.mc-visita-chip.active .mc-visita-chip-day,
.mc-visita-chip.active .mc-visita-chip-date,
.mc-visita-chip.active .mc-visita-chip-month { color: var(--mc-dark); }
.mc-visita-slot {
  padding: 10px 16px;
}
.mc-visita-submit {
  width: 100%; margin-top: 4px;
  padding: 14px 20px; border-radius: var(--mc-radius-xs);
  background: var(--mc); color: #fff; border: none;
  font-weight: 700; font-size: 15px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  cursor: pointer; transition: all var(--mc-tr);
}
.mc-visita-submit:hover { background: var(--mc-dark); box-shadow: 0 6px 20px rgba(58,125,44,.3); }
.mc-visita-submit:disabled { background: var(--mc-border); color: var(--mc-ink-muted); cursor: not-allowed; box-shadow: none; }
.mc-visita-success {
  padding: 20px; border-radius: var(--mc-radius-sm);
  background: linear-gradient(135deg, var(--mc-pale) 0%, #fff 100%);
  border: 1px solid var(--mc-light);
  text-align: center;
}
.mc-visita-success-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--mc); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 12px;
}

/* =================================================================
 * FAQ accordion
 * ================================================================= */
.mc-faq-item {
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.mc-faq-item:last-child { border-bottom: none; }
.mc-faq-question {
  width: 100%; background: transparent; border: none;
  padding: 16px 0; text-align: left;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  font-size: 15px; font-weight: 700; color: var(--mc-ink);
  cursor: pointer; transition: color var(--mc-tr);
}
.mc-faq-question:hover { color: var(--mc); }
.mc-faq-question-icon {
  width: 28px; height: 28px; flex-shrink: 0;
  border-radius: 50%; background: var(--mc-ghost);
  display: inline-flex; align-items: center; justify-content: center;
  transition: all var(--mc-tr);
}
.mc-faq-question-icon i { font-size: 12px; color: var(--mc); transition: transform .3s; }
.mc-faq-question[aria-expanded="true"] .mc-faq-question-icon { background: var(--mc); }
.mc-faq-question[aria-expanded="true"] .mc-faq-question-icon i { color: #fff; transform: rotate(180deg); }
.mc-faq-answer {
  padding: 0 0 16px; font-size: 14px; line-height: 1.7;
  color: var(--mc-ink-secondary);
}
.mc-faq-answer-yes { color: var(--mc-dark); font-weight: 700; }
.mc-faq-answer-no  { color: #c62828; font-weight: 700; }

/* Features strip inside header card */
.mc-detail-header-card .mc-detail-features {
  border-top: 1px solid rgba(0,0,0,.06);
  padding-top: 20px; margin-top: 20px;
}
.mc-detail-header-card .mc-detail-feature {
  background: var(--mc-ghost);
  border: 1px solid var(--mc-border);
  box-shadow: none;
}
.mc-detail-header-card .mc-detail-feature:hover {
  background: var(--mc-pale); border-color: var(--mc-light);
  box-shadow: 0 4px 16px rgba(58,125,44,.08);
}

/* Mobile: reduce card padding */
@media (max-width: 768px) {
  .mc-detail-card { padding: 18px 18px; margin-bottom: 14px; }
  .mc-detail-header-card { padding: 20px; margin-bottom: 14px; }
  /* Features strip — even grid instead of flex-wrap (no odd widows) */
  .mc-detail-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .mc-detail-header-card .mc-detail-feature { padding: 12px 8px; min-width: 0; }
  .mc-detail-feature-value { font-size: 17px; }
  .mc-detail-feature-label { font-size: 10px; letter-spacing: .06em; }
  .mc-detail-card > .mc-detail-heading { font-size: 16px; margin-bottom: 16px; padding-bottom: 12px; }
  .mc-detail-card > .mc-detail-heading i { width: 28px; height: 28px; font-size: 13px; }
  .mc-costi-breakdown { grid-template-columns: 1fr; gap: 0; }
  .mc-costi-total-value { font-size: 20px; }
  .mc-visita-chip { min-width: 72px; padding: 10px 6px; }
  .mc-visita-chip-date { font-size: 16px; }
  .mc-budget-grid { grid-template-columns: 1fr; }
  .mc-budget-result-value { font-size: 22px; }
  .mc-costi-gate-fields { grid-template-columns: 1fr; }
  .mc-visita-form-grid { grid-template-columns: 1fr; }
  .mc-consumi-hero { grid-template-columns: 1fr; gap: 12px; }
  .mc-consumi-hero-right { text-align: left; }
  .mc-consumi-breakdown { grid-template-columns: 1fr; }
  .mc-prio-grid { grid-template-columns: 1fr; }
}
@media (max-width: 576px) {
  .mc-detail-card { padding: 16px 14px; border-radius: var(--mc-radius-sm); }
  .mc-detail-header-card { padding: 18px 14px; border-radius: var(--mc-radius-sm); }
  .mc-detail-features { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .mc-detail-header-card .mc-detail-feature { padding: 10px 6px; }
  .mc-detail-feature-value { font-size: 16px; }
}

/* =================================================================
 * GLightbox — glass theme overrides
 * ================================================================= */
/* ── Kill all scroll ── */
.glightbox-open { overflow: hidden !important; }
.glightbox-container,
.glightbox-container .gcontainer,
.glightbox-container .gslider,
.glightbox-container .gslide,
.glightbox-container .gslide-inner-content,
.glightbox-container .ginner-container,
.glightbox-container .gslide-media,
.glightbox-container .gslide-image { overflow: hidden !important; }

/* ── Overlay — dark glass ── */
.glightbox-container .goverlay {
  background: rgba(0,0,0,.92) !important;
  backdrop-filter: blur(24px) !important; -webkit-backdrop-filter: blur(24px) !important;
}

/* ── Layout — image centered, gutters for arrows ── */
.glightbox-container .ginner-container {
  padding: 0 72px !important;
  box-sizing: border-box !important;
  height: 100vh !important;
}

/* ── Remove "card" wrapper — no border, no shadow, no bg ── */
.glightbox-container .gslide-media {
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  border: none !important;
  max-width: 100% !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

/* ── Image — contain, centered, rounded corners on the image itself ── */
.gslide-image {
  display: flex !important; align-items: center !important; justify-content: center !important;
}
.gslide-image img {
  max-height: 88vh !important;
  max-width: 100% !important;
  min-width: 0 !important;
  width: auto !important; height: auto !important;
  object-fit: contain !important;
  border-radius: var(--mc-radius-sm) !important;
  box-shadow: 0 16px 64px rgba(0,0,0,.5) !important;
}
/* With thumbnail strip — make room */
body.mc-lightbox-has-thumbs .gslide-image img { max-height: 72vh !important; }

/* ── Arrows — glass circles in the dark gutters ── */
.glightbox-container .gnext,
.glightbox-container .gprev {
  width: 48px !important; height: 48px !important;
  background: rgba(255,255,255,.1) !important;
  backdrop-filter: blur(20px) saturate(180%) !important; -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: 50% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  transition: all .2s ease !important;
  top: calc(50% - 24px) !important;
  margin: 0 !important;
}
.glightbox-container .gprev { left: 12px !important; }
.glightbox-container .gnext { right: 12px !important; }
.glightbox-container .gnext:hover,
.glightbox-container .gprev:hover {
  background: rgba(255,255,255,.22) !important;
  border-color: rgba(255,255,255,.35) !important;
  transform: scale(1.08) !important;
}
.glightbox-container .gnext svg,
.glightbox-container .gprev svg { fill: #fff !important; width: 20px !important; height: 20px !important; }

/* ── Close — glass pill top-right ── */
.glightbox-container .gclose {
  width: 44px !important; height: 44px !important;
  background: rgba(255,255,255,.08) !important;
  backdrop-filter: blur(20px) !important; -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: 50% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  opacity: 1 !important; top: 12px !important; right: 12px !important;
  transition: all .2s ease !important;
}
.glightbox-container .gclose:hover {
  background: rgba(255,255,255,.2) !important;
  border-color: rgba(255,255,255,.3) !important;
}
.glightbox-container .gclose svg { fill: #fff !important; width: 18px !important; height: 18px !important; }

/* ── Counter — glass pill ── */
.glightbox-container .gcounter {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 12px !important; font-weight: 600 !important;
  color: rgba(255,255,255,.7) !important;
  background: rgba(255,255,255,.08) !important;
  backdrop-filter: blur(16px) !important; -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 50px !important; padding: 6px 14px !important;
}

/* ── Description — hidden ── */
.glightbox-container .gslide-description { display: none !important; }

/* ── Mobile ── */
@media (max-width: 768px) {
  .glightbox-container .ginner-container { padding: 0 8px !important; }
  .gslide-image img {
    max-height: 78vh !important;
    border-radius: var(--mc-radius-xs) !important;
  }
  body.mc-lightbox-has-thumbs .gslide-image img { max-height: 60vh !important; }
  /* Arrows: nasconde su mobile — swipe touch è più naturale */
  .glightbox-container .gnext,
  .glightbox-container .gprev { display: none !important; }
  /* Close pill in alto a destra */
  .glightbox-container .gclose {
    width: 40px !important; height: 40px !important;
    top: 12px !important; right: 12px !important;
  }
  .glightbox-container .gclose svg { width: 16px !important; height: 16px !important; }
  /* Counter: pill in alto a sinistra */
  .glightbox-container .gcounter {
    font-size: 12px !important; padding: 6px 12px !important;
    top: 14px !important; left: 12px !important;
    right: auto !important;
  }
  /* Thumb strip più compatta */
  .mc-lightbox-thumbs { bottom: 12px !important; padding: 8px 10px !important; gap: 5px !important; max-width: 94vw !important; }
  .mc-lightbox-thumbs img { width: 52px !important; height: 40px !important; border-radius: 5px !important; }
  /* Hide hover preview on touch */
  .mc-thumb-preview { display: none !important; }
}

/* Thumbnail strip (advanced mode) */
.mc-lightbox-thumbs {
  position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%);
  z-index: 999999; display: flex; gap: 6px;
  padding: 8px 14px; border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(255,255,255,.15);
  border-top-color: rgba(255,255,255,.25);
  box-shadow: 0 8px 32px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.1);
  overflow-x: auto; max-width: 90vw;
}
.mc-lightbox-thumbs::-webkit-scrollbar { height: 3px; }
.mc-lightbox-thumbs::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); border-radius: 2px; }
.mc-lightbox-thumbs img {
  width: 64px; height: 48px; object-fit: cover; border-radius: 6px;
  cursor: pointer; opacity: .4; transition: all .2s ease;
  border: 2px solid transparent; flex-shrink: 0;
}
.mc-lightbox-thumbs img:hover { opacity: .7; transform: scale(1.05); }
.mc-lightbox-thumbs img.active {
  opacity: 1; border-color: #fff;
  box-shadow: 0 0 16px rgba(255,255,255,.3);
}
/* When thumbs are visible, shrink image to make room */
body.mc-lightbox-has-thumbs .gslide-image img {
  max-height: 68vh !important;
}
/* Thumbnail hover preview popup */
.mc-lightbox-thumbs img { position: relative; }
.mc-thumb-preview {
  position: fixed; z-index: 9999999;
  width: 200px; height: 140px;
  border-radius: var(--mc-radius-xs);
  overflow: hidden; pointer-events: none;
  border: 2px solid rgba(255,255,255,.5);
  box-shadow: 0 12px 40px rgba(0,0,0,.5);
  opacity: 0; transform: translateY(8px);
  transition: opacity .15s ease, transform .15s ease;
}
.mc-thumb-preview.visible {
  opacity: 1; transform: translateY(0);
}
.mc-thumb-preview img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; border: none !important;
  border-radius: 0 !important; opacity: 1 !important;
}

/* =================================================================
 * Agent card — photo variant
 * ================================================================= */
.mc-agent-photo {
  width: 88px; height: 88px; border-radius: 50%;
  object-fit: cover; display: block;
  border: 3px solid rgba(255,255,255,.8);
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  margin: 0 auto 16px;
}
.mc-agent-name { font-weight: 700; font-size: 16px; margin-bottom: 2px; }
.mc-agent-role { font-size: 13px; color: var(--mc-ink-muted); margin-bottom: 16px; }
.mc-agent-contact { display: flex; gap: 8px; justify-content: center; }
.mc-agent-btn {
  padding: 8px 14px; font-size: 12px;
}

/* =================================================================
 * Hide theme customizer
 * ================================================================= */
.customizer-toggle, .offcanvas[data-customizer] { display: none !important; }

/* =================================================================
 * Icon box — container for icons, avatars, value indicators
 * ================================================================= */
.mc-icon-box {
  width: 56px; height: 56px; border-radius: var(--mc-radius-sm);
  background: var(--mc-pale);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-icon-box i { color: var(--mc); }
.mc-icon-box-sm { width: 40px; height: 40px; border-radius: var(--mc-radius-xs); }
.mc-icon-box-lg { width: 80px; height: 80px; }
.mc-icon-box-xl { width: 100px; height: 100px; }
.mc-icon-box-round { border-radius: 50%; }

/* =================================================================
 * Step number — circular numbered step indicator
 * ================================================================= */
.mc-step-number {
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--mc); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 18px;
  box-shadow: var(--mc-shadow-glow); margin-bottom: 12px;
}

/* =================================================================
 * Card content — price, address, area (inside .card-body)
 * ================================================================= */
/* Card no-image placeholder */
.mc-card-noimg {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  height: 100%; background: linear-gradient(135deg, var(--mc-ghost) 0%, var(--mc-pale) 100%);
  color: var(--mc-light); gap: 6px;
}
.mc-card-noimg i { font-size: 28px; }
.mc-card-noimg span { font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--mc-ink-muted); opacity: .5; }

/* =================================================================
 * Leaflet popup — card immobile (mappa)
 * Stile allineato a .mc-card v3
 * ================================================================= */
.leaflet-popup-content-wrapper {
  padding: 0 !important;
  border-radius: var(--mc-radius-sm) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.18) !important;
  overflow: hidden !important;
  border: 1px solid var(--mc-border) !important;
}
.leaflet-popup-content {
  margin: 0 !important;
  width: 260px !important;
  line-height: 1.4 !important;
}
.leaflet-popup-tip { box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.leaflet-popup-close-button {
  top: 8px !important; right: 8px !important;
  width: 26px !important; height: 26px !important;
  background: rgba(255,255,255,.95) !important;
  border-radius: 50% !important;
  color: var(--mc-ink) !important;
  font-size: 18px !important; line-height: 24px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  z-index: 2 !important;
}
.leaflet-popup-close-button:hover { background: #fff !important; color: var(--mc) !important; }

.mc-map-pop { display: flex; flex-direction: column; background: #fff; }
.mc-map-pop-cover {
  position: relative;
  display: block;
  height: 140px;
  overflow: hidden;
  background: var(--mc-ghost);
}
.mc-map-pop-cover img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .4s ease;
}
.mc-map-pop-cover:hover img { transform: scale(1.04); }
.mc-map-pop-noimg {
  display: flex; align-items: center; justify-content: center;
  height: 100%; color: var(--mc-light); font-size: 28px;
  background: linear-gradient(135deg, var(--mc-ghost), var(--mc-pale));
}
.mc-map-pop-badges {
  position: absolute; top: 8px; left: 8px; z-index: 2;
  display: flex; flex-direction: column; gap: 4px;
  max-width: calc(100% - 40px);
}
.mc-map-pop-badges .mc-card-badge { font-size: 9px; padding: 3px 7px; }

.mc-map-pop-body {
  padding: 12px 14px 14px;
  display: flex; flex-direction: column; gap: 8px;
}
.mc-map-pop-price-row {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.mc-map-pop-price {
  font-size: 18px; font-weight: 800; letter-spacing: -.2px;
  color: var(--mc-ink); line-height: 1.1;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-map-pop-suffix { font-size: 12px; font-weight: 500; color: var(--mc-ink-muted); }
.mc-map-pop-price-row .mc-energy-badge {
  min-width: 28px; padding: 4px 8px; font-size: 11px;
}
.mc-map-pop-address {
  display: flex; flex-direction: column; gap: 1px;
  text-decoration: none !important; color: inherit !important;
  line-height: 1.25;
}
.mc-map-pop-address:hover { color: var(--mc-dark) !important; }
.mc-map-pop-street {
  font-size: 13px; font-weight: 700; color: var(--mc-ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mc-map-pop-city {
  font-size: 11px; font-weight: 500; color: var(--mc-ink-muted);
  text-transform: uppercase; letter-spacing: .04em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mc-map-pop-meta {
  display: flex; flex-wrap: wrap; gap: 4px 12px;
  font-size: 11px; font-weight: 600; color: var(--mc-ink-secondary);
}
.mc-map-pop-meta .mc-card-meta-item i {
  font-size: 12px; color: var(--mc-ink-muted);
}
.mc-map-pop-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 14px;
  margin-top: 2px;
  background: var(--mc); color: #fff !important;
  border-radius: 50px;
  font-size: 12px; font-weight: 700;
  text-decoration: none !important;
  box-shadow: 0 4px 12px rgba(58,125,44,.22);
  transition: background .2s, transform .2s;
}
.mc-map-pop-cta:hover { background: var(--mc-dark); transform: translateY(-1px); }
.mc-map-pop-cta i { font-size: 12px; transition: transform .2s; }
.mc-map-pop-cta:hover i { transform: translateX(2px); }

/* =================================================================
 * Card immobile v3 — layout unificato, editoriale
 * ================================================================= */
.card.mc-card {
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm);
  background: #fff;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  transition: transform .3s cubic-bezier(.4,0,.2,1),
              box-shadow .3s cubic-bezier(.4,0,.2,1),
              border-color .3s;
}
.card.mc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,.12);
  border-color: var(--mc-light);
}
.card.mc-card .card-img-top { position: relative; background: var(--mc-ghost); }
.card.mc-card .card-img-top img { transition: transform .6s cubic-bezier(.4,0,.2,1); }
.card.mc-card:hover .card-img-top img { transform: scale(1.04); }
/* Gradient overlay bottom su hover (depth) */
.card.mc-card .card-img-top::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 100%);
  opacity: 0; pointer-events: none;
  transition: opacity .3s ease;
  z-index: 1;
}
.card.mc-card:hover .card-img-top::after { opacity: 1; }

/* Swiper nav arrows (hover desktop) */
.mc-card-nav {
  position: absolute; top: 50%; z-index: 3;
  transform: translateY(-50%);
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 0;
  background: rgba(255,255,255,.95);
  color: var(--mc-ink);
  box-shadow: 0 2px 10px rgba(0,0,0,.18);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity .25s, background .2s, transform .2s;
}
.card.mc-card:hover .mc-card-nav { opacity: 1; }
.mc-card-nav:hover { background: #fff; transform: translateY(-50%) scale(1.1); }
.mc-card-nav-prev { left: 10px; }
.mc-card-nav-next { right: 10px; }
.mc-card-nav i { font-size: 14px; }
@media (hover: none) { .mc-card-nav { display: none; } }

/* Pagination dots scuri su bianco */
.mc-card-pagination {
  bottom: 10px !important;
  z-index: 3;
}
.mc-card-pagination .swiper-pagination-bullet {
  background: rgba(255,255,255,.7);
  opacity: 1; width: 6px; height: 6px;
  transition: width .25s;
}
.mc-card-pagination .swiper-pagination-bullet-active {
  background: #fff; width: 18px; border-radius: 3px;
}

/* Badge stack su cover */
.mc-card-badges {
  position: absolute; top: 12px; left: 12px; z-index: 3;
  display: flex; flex-direction: column; gap: 5px;
  max-width: calc(100% - 24px);
}
.mc-card-badge {
  display: inline-flex; align-items: center;
  padding: 4px 9px;
  border-radius: 6px;
  font-size: 10px; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase;
  line-height: 1; color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
.mc-card-badge-sale      { background: var(--mc); }
.mc-card-badge-rent      { background: #e09f00; }
.mc-card-badge-nuovo     { background: #0284c7; }
.mc-card-badge-prestigio { background: linear-gradient(135deg, #b8860b, #daa520); }
.mc-card-badge-ribassato { background: #e11d48; }
.mc-card-badge-mutuo     { background: #2563eb; }

/* Unified body info */
.mc-card-info {
  padding: 14px 16px 16px;
  display: flex; flex-direction: column; gap: 10px;
  position: relative;
}
.mc-card-price-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px;
}
.mc-card-price {
  font-size: 22px; font-weight: 800; letter-spacing: -.3px;
  color: var(--mc-ink); line-height: 1.1;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-card-price-suffix {
  font-size: 13px; font-weight: 500; color: var(--mc-ink-muted);
  margin-left: 2px;
}

/* Address gerarchico: via (bold) + citta (regular) */
.mc-card-address {
  display: flex; flex-direction: column; gap: 1px;
  text-decoration: none;
  color: inherit;
  line-height: 1.3;
}
.mc-card-address:hover { color: var(--mc-dark); }
.mc-card-address-street {
  font-size: 14px; font-weight: 700;
  color: var(--mc-ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mc-card-address-city {
  font-size: 12px; font-weight: 500;
  color: var(--mc-ink-muted);
  text-transform: uppercase; letter-spacing: .04em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Meta riga con icone piccole */
.mc-card-meta-list {
  display: flex; flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 12px; font-weight: 600;
  color: var(--mc-ink-secondary);
}
.mc-card-meta-item {
  display: inline-flex; align-items: center; gap: 4px;
  white-space: nowrap;
}
.mc-card-meta-item i {
  font-size: 13px;
  color: var(--mc-ink-muted);
}

/* Energy badge piu visibile, colori CTI gia nelle regole :data-energy esistenti */
.mc-energy-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 34px; padding: 5px 10px;
  border-radius: 6px;
  font-size: 12px; font-weight: 800; line-height: 1;
  letter-spacing: .02em; color: #fff;
  flex-shrink: 0;
}

/* Legacy .mc-card-price/.mc-card-address/.mc-card-meta backward compat
   (usate da altre pagine: home cards-ig, cantieri, ecc.) */
.mc-card-price-legacy, .card-body .mc-card-price { margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Responsive card */
@media (max-width: 575.98px) {
  /* Forza 1 card per riga su viewport stretti (sotto sm) */
  .mc-card-grid > .col { flex: 0 0 100%; max-width: 100%; }
  .mc-card-info { padding: 12px 14px 14px; gap: 8px; }
  .mc-card-price { font-size: 20px; }
  .mc-card-address-street { font-size: 14px; }
  .mc-card-address-city { font-size: 11px; }
  .mc-card-meta-list { gap: 8px 12px; font-size: 11px; }
}
@media (max-width: 767.98px) {
  .mc-card-badge { font-size: 9px; padding: 3px 7px; }
  .mc-card-badges { gap: 4px; top: 10px; left: 10px; }
}

/* =================================================================
 * Timeline — vertical timeline (cantiere, processo)
 * ================================================================= */
.mc-timeline { display: flex; flex-direction: column; gap: 12px; }
.mc-timeline-item { display: flex; gap: 12px; }
.mc-timeline-track {
  width: 12px; display: flex; flex-direction: column;
  align-items: center; flex-shrink: 0;
}
.mc-timeline-dot {
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--mc); flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(58,125,44,.15);
}
.mc-timeline-dot-current {
  background: #fff; border: 3px solid var(--mc);
  box-shadow: 0 0 0 3px rgba(58,125,44,.15);
}
.mc-timeline-dot-pending {
  background: var(--mc-ghost); border: 2px solid var(--mc-border);
  box-shadow: none;
}
.mc-timeline-line {
  width: 2px; flex: 1; margin-top: 4px;
  background: var(--mc);
}
.mc-timeline-line-light { background: var(--mc-light); }
.mc-timeline-content { padding-bottom: 4px; }
.mc-timeline-title { font-weight: 700; font-size: 14px; }
.mc-timeline-title-current { color: var(--mc); }
.mc-timeline-desc { font-size: 12px; color: var(--mc-ink-muted); }

/* =================================================================
 * Progress bar — slim, green fill
 * ================================================================= */
.mc-progress {
  height: 6px; background: var(--mc-ghost);
  border-radius: 3px; overflow: hidden;
}
.mc-progress-bar {
  height: 100%; background: var(--mc);
  border-radius: 3px; transition: width .4s ease;
}
.mc-progress-label {
  display: flex; justify-content: space-between;
  font-size: 12px; margin-bottom: 4px;
}
.mc-progress-label-value { font-weight: 700; color: var(--mc); }

/* =================================================================
 * Service pill — area services (zona dettaglio)
 * ================================================================= */
.mc-service-pill {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: var(--mc-radius-xs);
  background: rgba(238,247,236,.4);
  font-size: 14px; font-weight: 500;
}
.mc-service-pill i { color: var(--mc); }

/* =================================================================
 * Info row — key/value pairs (spese, dettagli)
 * ================================================================= */
.mc-info-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(58,125,44,.06);
}
.mc-info-row:last-child { border-bottom: none; }
.mc-info-row-label { font-size: 14px; color: var(--mc-ink-muted); }
.mc-info-row-value { font-weight: 700; font-size: 14px; }

/* =================================================================
 * Status dot — small colored indicator
 * ================================================================= */
.mc-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--mc); flex-shrink: 0;
}
.mc-dot-warning { background: #f7941d; }
.mc-dot-muted { background: var(--mc-ink-muted); }

/* =================================================================
 * Energy class bars — APE energy rating visualization
 * ================================================================= */
.mc-energy-bar {
  height: 28px; border-radius: 6px 14px 14px 6px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 800; font-size: 12px;
}
.mc-energy-bar.active {
  height: 32px; font-size: 13px;
  box-shadow: 0 0 0 3px var(--mc), 0 4px 16px rgba(58,125,44,.2);
}
.mc-energy-label { font-size: 12px; color: var(--mc-ink-muted); }
.mc-energy-label-active { font-weight: 700; color: var(--mc); font-size: 12px; }

/* =================================================================
 * Play button — video/tour overlay
 * ================================================================= */
.mc-play-btn {
  width: 80px; height: 80px; border-radius: 50%;
  background: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: var(--mc-shadow-glow);
  cursor: pointer; transition: all var(--mc-tr);
}
.mc-play-btn:hover { transform: scale(1.1); }
.mc-play-btn-sm {
  width: 56px; height: 56px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 4px 20px rgba(0,0,0,.2);
}
.mc-play-btn-sm i { color: var(--mc); font-size: 20px; margin-left: 3px; }

/* =================================================================
 * Compass — exposure indicator
 * ================================================================= */
.mc-compass {
  width: 160px; height: 160px; border-radius: 50%;
  border: 2px solid var(--mc-border);
  margin: 0 auto 16px; position: relative;
  background: var(--mc-ghost);
  overflow: hidden;
}
.mc-compass svg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.mc-compass-label {
  position: absolute; font-weight: 800; font-size: 14px;
  color: var(--mc-ink-muted); z-index: 2;
}
.mc-compass-n { top: 8px; left: 50%; transform: translateX(-50%); }
.mc-compass-s { bottom: 8px; left: 50%; transform: translateX(-50%); color: var(--mc); }
.mc-compass-e { right: 8px; top: 50%; transform: translateY(-50%); color: var(--mc); }
.mc-compass-o { left: 8px; top: 50%; transform: translateY(-50%); }
.mc-compass-label.active { color: var(--mc); font-weight: 900; }

/* =================================================================
 * Chat window — bot dialog
 * ================================================================= */
.mc-chat-header {
  background: var(--mc); color: #fff;
  padding: 16px 20px;
  display: flex; align-items: center; justify-content: space-between;
}
.mc-chat-header-title { font-weight: 600; }
.mc-chat-close {
  background: none; border: none; color: #fff;
  cursor: pointer; font-size: 18px; line-height: 1;
}
.mc-chat-body { padding: 16px; min-height: 180px; }
.mc-chat-msg {
  display: inline-block; padding: 8px 14px;
  border-radius: var(--mc-radius-sm);
  font-size: 13px; max-width: 85%;
  background: var(--mc-ghost); color: var(--mc-ink);
  margin-bottom: 8px;
}
.mc-chat-msg-user {
  background: var(--mc); color: #fff;
}
.mc-chat-options {
  padding: 12px 16px;
  background: rgba(248,251,247,.5);
  border-top: 1px solid rgba(58,125,44,.06);
}
.mc-chat-option {
  padding: 6px 14px; font-size: 12px;
  border-radius: 50px; margin: 0 4px 4px 0;
}

/* =================================================================
 * Stat box — info stat with label + value (cantiere, agenzie)
 * ================================================================= */
.mc-stat-box { text-align: center; }
.mc-stat-box-label { font-size: 12px; color: var(--mc-ink-muted); }
.mc-stat-box-value { font-weight: 700; font-size: 14px; }
.mc-stat-box-highlight { color: var(--mc); }

/* =================================================================
 * Dark section form — inputs on dark/gradient backgrounds
 * ================================================================= */
.mc-dark-label {
  font-size: 11px; font-weight: 600;
  color: rgba(255,255,255,.7);
  margin-bottom: 4px; display: block;
}
.mc-dark-input {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.25) !important;
  color: #fff !important;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.mc-dark-input::placeholder { color: rgba(255,255,255,.5) !important; }
.mc-dark-glass {
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--mc-radius); padding: 24px;
}

/* =================================================================
 * Mega menu card — image + label for nav dropdowns
 * ================================================================= */
.mc-mega-card {
  display: block; text-decoration: none;
  border-radius: var(--mc-radius-sm); overflow: hidden;
  transition: all var(--mc-tr); position: relative;
}
.mc-mega-card:hover { transform: translateY(-2px); }
.mc-mega-card img {
  width: 100%; height: 120px; object-fit: cover;
  display: block; transition: transform .4s ease;
}
.mc-mega-card:hover img { transform: scale(1.05); }
.mc-mega-card-overlay {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 10px 14px;
  background: linear-gradient(transparent, rgba(0,0,0,.6));
}
.mc-mega-card-label { color: #fff; font-weight: 700; font-size: 14px; }
.mc-mega-card-count { font-size: 12px; color: var(--mc-ink-muted); margin-top: 8px; }

/* =================================================================
 * Mobile nav link — offcanvas navigation
 * ================================================================= */
.mc-mobile-nav-link {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 12px; text-decoration: none;
  color: var(--mc-ink); font-weight: 500; font-size: 15px;
  margin-bottom: 2px; border-radius: var(--mc-radius-xs);
  transition: all var(--mc-tr);
}
.mc-mobile-nav-link:hover { background: rgba(238,247,236,.3); color: var(--mc); }
.mc-mobile-nav-link i { color: var(--mc-ink-muted); }
.mc-mobile-nav-link.active {
  color: var(--mc); background: rgba(238,247,236,.5); font-weight: 600;
}
.mc-mobile-nav-link.active i { color: var(--mc); }

/* =================================================================
 * Rich dropdown item — icon + title + description
 * ================================================================= */
.mc-dropdown-rich {
  display: flex; align-items: center; gap: 12px;
  padding: 12px; text-decoration: none;
  border-radius: var(--mc-radius-xs);
  transition: all var(--mc-tr);
}
.mc-dropdown-rich:hover { background: rgba(238,247,236,.5); }
.mc-dropdown-rich-title { font-weight: 600; font-size: 14px; color: var(--mc-ink); }
.mc-dropdown-rich-desc { font-size: 12px; color: var(--mc-ink-muted); }

/* =================================================================
 * Media aspect — tour, video, planimetria containers
 * ================================================================= */
.mc-media-container {
  position: relative; aspect-ratio: 16/9;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
}
.mc-media-container-dark { background: #111; }
.mc-media-container-light { background: var(--mc-ghost); }
.mc-media-title { font-weight: 700; margin-bottom: 4px; }
.mc-media-desc { font-size: 14px; color: var(--mc-ink-muted); }

/* =================================================================
 * File row — document download entry
 * ================================================================= */
.mc-file-row {
  display: flex; align-items: center; gap: 12px;
}
.mc-file-icon {
  width: 48px; height: 48px; border-radius: var(--mc-radius-xs);
  background: var(--mc-pale);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-file-icon i { color: var(--mc); font-size: 20px; }
.mc-file-name { font-weight: 700; font-size: 14px; }
.mc-file-meta { font-size: 12px; color: var(--mc-ink-muted); }

/* =================================================================
 * Showcase TOC — offcanvas with floating trigger
 * ================================================================= */
.mc-toc-fab {
  position: fixed; bottom: 100px; left: 20px; z-index: 89;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--mc); color: #fff; border: none;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--mc-shadow-glow);
  cursor: pointer; transition: all var(--mc-tr);
  font-size: 18px;
}
.mc-toc-fab:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 12px 40px rgba(58,125,44,.3);
}
.mc-toc-offcanvas {
  width: 260px !important;
  border-right: none !important;
  border: 1px solid rgba(255,255,255,.6) !important;
  border-left: none !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(40px) saturate(180%) !important; -webkit-backdrop-filter: blur(40px) saturate(180%) !important;
  box-shadow: 8px 0 40px rgba(0,0,0,.07), inset -1px 0 0 rgba(255,255,255,.9) !important;
  border-radius: 0 var(--mc-radius) var(--mc-radius) 0 !important;
}
.mc-toc-offcanvas .offcanvas-header {
  border-bottom: 1px solid rgba(58,125,44,.06); padding: 20px 24px;
}
.mc-toc-offcanvas .offcanvas-title { font-size: 16px; }
.mc-toc { padding: 16px 20px; overflow-y: auto; }
.mc-toc::-webkit-scrollbar { width: 3px; }
.mc-toc::-webkit-scrollbar-thumb { background: var(--mc-light); border-radius: 3px; }
.mc-toc-link {
  display: block; padding: 6px 14px;
  font-size: 13px; font-weight: 500; color: var(--mc-ink-muted);
  text-decoration: none; border-left: 2px solid transparent;
  transition: all .15s ease; line-height: 1.7;
  border-radius: 0 var(--mc-radius-xs) var(--mc-radius-xs) 0;
}
.mc-toc-link:hover { color: var(--mc); border-left-color: var(--mc-light); background: rgba(238,247,236,.3); }
.mc-toc-link.active {
  color: var(--mc); font-weight: 700; border-left-color: var(--mc);
  background: rgba(238,247,236,.5);
}

/* =================================================================
 * Mini Hero (section intro pattern)
 * ================================================================= */
.mc-mini-hero {
  background: var(--mc-ghost);
  border-bottom: 1px solid var(--mc-border);
  padding: 56px 0;
}
.mc-mini-hero-sm { padding: 48px 0; }

/* =================================================================
 * Section Description
 * ================================================================= */
.mc-section-desc {
  font-size: 17px; color: var(--mc-ink-secondary);
  max-width: 560px;
}

/* =================================================================
 * Icon Circle (step / feature icon)
 * ================================================================= */
.mc-icon-circle {
  width: 72px; height: 72px; border-radius: 50%;
  background: linear-gradient(135deg, var(--mc-pale) 0%, #dcefd8 100%);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 16px; flex-shrink: 0;
  transition: all .4s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 4px 16px rgba(58,125,44,.08);
}
.mc-icon-circle:hover,
.mc-detail-sidebar:hover .mc-icon-circle {
  transform: scale(1.1);
  box-shadow: 0 8px 28px rgba(58,125,44,.18);
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 100%);
}
.mc-icon-circle:hover i,
.mc-detail-sidebar:hover .mc-icon-circle i { color: #fff; }
.mc-icon-circle i { color: var(--mc); transition: color .3s; }
.mc-icon-circle-sm { width: 48px; height: 48px; margin-bottom: 12px; }
.mc-icon-circle-md { width: 56px; height: 56px; margin-bottom: 14px; }
.mc-icon-circle-sq {
  width: 52px; height: 52px; border-radius: var(--mc-radius-xs);
  background: var(--mc-pale);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px; flex-shrink: 0;
}
.mc-icon-circle-sq i { color: var(--mc); }
.mc-icon-circle-ghost {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--mc-ghost); border: 2px solid var(--mc-border);
  display: flex; align-items: center; justify-content: center;
}
.mc-icon-circle-ghost i { color: var(--mc-light); }
.mc-icon-circle-solid {
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--mc);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-icon-circle-solid i { color: #fff; }

/* =================================================================
 * Step Card (step label + title + text)
 * ================================================================= */
.mc-step-label {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--mc); margin-bottom: 8px;
}
.mc-step-title {
  font-size: 18px; font-weight: 700; margin-bottom: 8px;
}
.mc-step-title-sm { font-size: 16px; margin-bottom: 6px; }
.mc-step-text {
  font-size: 14px; color: var(--mc-ink-secondary); margin-bottom: 0;
}
.mc-step-text-sm { font-size: 13px; }

/* =================================================================
 * CTA section helpers
 * ================================================================= */
.mc-cta-title {
  font-size: 28px; font-weight: 800; color: #fff; margin-bottom: 12px;
}
.mc-cta-text {
  opacity: .75; margin-bottom: 24px; font-size: 16px;
}
.mc-cta-btn {
  font-weight: 700;
}

/* =================================================================
 * Navbar Glass
 * ================================================================= */
.mc-nav-glass {
  background: rgba(255,255,255,.45);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(255,255,255,.3);
  box-shadow: 0 1px 12px rgba(0,0,0,.04);
  transition: all .3s cubic-bezier(.4,0,.2,1);
}
.mc-nav-brand { font-weight: 800; font-size: 22px; }
.mc-nav-brand-accent { color: var(--mc); }
.mc-nav-logo { height: 36px; width: auto; display: block; }
.mc-nav-link { font-size: 14px; font-weight: 500; }

/* =================================================================
 * Mega menu desktop (hover-trigger dropdown full width)
 * ================================================================= */
.mc-nav-mega .dropdown-toggle::after { display: none; }
.mc-nav-mega .mc-mega-panel {
  left: 0 !important; right: 0 !important; top: 100% !important;
  width: 100%; max-width: 100%;
  margin-top: 0; border: 0;
  padding: 28px 0;
  border-radius: 0 0 var(--mc-radius-sm) var(--mc-radius-sm);
  background: rgba(255,255,255,.98);
  backdrop-filter: blur(40px) saturate(180%);
  -webkit-backdrop-filter: blur(40px) saturate(180%);
  box-shadow: 0 20px 40px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);
  border-top: 1px solid rgba(0,0,0,.04);
  transform: none !important;
}
/* Bridge invisibile sopra il panel per tenere l'hover continuo
   fra il link nav e il panel full-width (evita chiusura al passaggio del mouse) */
.mc-nav-mega .mc-mega-panel::before {
  content: '';
  position: absolute;
  left: 0; right: 0;
  top: -16px; height: 16px;
  background: transparent;
}
.mc-mega-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.2fr;
  gap: 36px;
  align-items: stretch;
}
.mc-mega-col { min-width: 0; }
.mc-mega-col-title {
  font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--mc); margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(58,125,44,.15);
}
.mc-mega-col-link {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px; margin: 0 -10px;
  color: var(--mc-ink); text-decoration: none;
  font-size: 14px; font-weight: 500;
  border-radius: var(--mc-radius-xs);
  transition: background .15s, color .15s, padding .15s;
}
.mc-mega-col-link:hover {
  background: var(--mc-pale); color: var(--mc-dark);
  padding-left: 14px;
}
.mc-mega-col-link-all {
  color: var(--mc-dark); font-weight: 700;
  margin-bottom: 4px;
}
.mc-mega-col-link-all i { font-size: 12px; transition: transform .2s; }
.mc-mega-col-link-all:hover i { transform: translateX(3px); }
.mc-mega-col-list {
  list-style: none; padding: 0; margin: 0;
}
.mc-mega-col-list li a {
  display: block;
  padding: 6px 10px; margin: 0 -10px;
  color: var(--mc-ink-secondary); text-decoration: none;
  font-size: 13px; font-weight: 500;
  border-radius: var(--mc-radius-xs);
  transition: background .15s, color .15s, padding .15s;
}
.mc-mega-col-list li a:hover {
  background: var(--mc-pale); color: var(--mc-dark);
  padding-left: 14px;
}
.mc-mega-col-empty {
  font-size: 12px; color: var(--mc-ink-muted);
  font-style: italic; padding: 8px 10px; margin: 0 -10px;
}
.mc-mega-featured {
  position: relative; display: block;
  min-height: 200px;
  border-radius: var(--mc-radius-sm);
  overflow: hidden;
  text-decoration: none;
  background:
    linear-gradient(135deg, rgba(58,125,44,.15), rgba(58,125,44,.55)),
    radial-gradient(circle at 30% 20%, var(--mc-light), var(--mc-dark));
  transition: transform .3s, box-shadow .3s;
}
.mc-mega-featured:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(58,125,44,.25);
}
.mc-mega-featured-overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 22px;
  color: #fff;
}
.mc-mega-featured-eyebrow {
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .12em; opacity: .85; margin-bottom: 4px;
}
.mc-mega-featured-title {
  font-size: 22px; font-weight: 800; letter-spacing: -.3px;
  line-height: 1.15; margin-bottom: 12px;
}
.mc-mega-featured-cta {
  display: inline-flex; align-items: center;
  font-size: 13px; font-weight: 700;
  padding: 8px 14px; border-radius: 50px;
  background: rgba(255,255,255,.95); color: var(--mc-dark);
  align-self: flex-start;
  transition: background .2s;
}
.mc-mega-featured-cta i { font-size: 12px; transition: transform .2s; }
.mc-mega-featured:hover .mc-mega-featured-cta { background: #fff; }
.mc-mega-featured:hover .mc-mega-featured-cta i { transform: translateX(3px); }

/* Mobile offcanvas — accordion sub-menu for Immobili */
.mc-mobile-nav-group { margin-bottom: 4px; }
.mc-mobile-nav-toggle {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%;
  padding: 14px 16px;
  border: 0; background: transparent;
  color: var(--mc-ink); font-family: inherit;
  font-size: 16px; font-weight: 500;
  border-radius: var(--mc-radius-xs);
  cursor: pointer;
  transition: background .2s;
}
.mc-mobile-nav-toggle > span { display: flex; align-items: center; }
.mc-mobile-nav-toggle i.fi-home,
.mc-mobile-nav-toggle i.fi-key,
.mc-mobile-nav-toggle i.fi-star {
  color: var(--mc); font-size: 18px; width: 24px; text-align: center;
}
.mc-mobile-nav-chev {
  color: var(--mc-ink-muted); font-size: 14px;
  transition: transform .25s;
}
.mc-mobile-nav-toggle[aria-expanded="true"] .mc-mobile-nav-chev {
  transform: rotate(180deg);
}
.mc-mobile-nav-toggle:hover {
  background: var(--mc-pale); color: var(--mc);
}
.mc-mobile-nav-sublist {
  list-style: none; padding: 4px 0 8px 20px; margin: 0 0 4px 16px;
  border-left: 2px solid rgba(58,125,44,.15);
}
.mc-mobile-nav-subgroup { margin-bottom: 10px; }
.mc-mobile-nav-subgroup-title {
  font-size: 10px; font-weight: 800; color: var(--mc);
  text-transform: uppercase; letter-spacing: .1em;
  padding: 6px 10px 4px; margin-top: 4px;
}
.mc-mobile-nav-sublink {
  display: block;
  padding: 8px 10px; margin: 0;
  color: var(--mc-ink-secondary); text-decoration: none;
  font-size: 14px; font-weight: 500;
  border-radius: var(--mc-radius-xs);
  transition: all .2s ease;
}
.mc-mobile-nav-sublink:hover,
.mc-mobile-nav-sublink:active { background: var(--mc-pale); color: var(--mc); }
.mc-mobile-nav-sublink-all { color: var(--mc-dark); font-weight: 700; }

/* Mobile offcanvas — clean white panel */
.mc-mobile-offcanvas {
  background: #fff !important;
  border-right: 1px solid rgba(0,0,0,.06) !important;
  width: 300px !important;
  box-shadow: 8px 0 40px rgba(0,0,0,.1);
}
.mc-mobile-offcanvas-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 24px 24px 20px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.mc-mobile-offcanvas-brand {
  font-size: 24px; font-weight: 800; color: var(--mc-ink); text-decoration: none;
}
.mc-mobile-offcanvas-body {
  padding: 16px 24px 24px;
  display: flex; flex-direction: column; height: 100%;
}
.mc-mobile-nav-list {
  list-style: none; padding: 0; margin: 0; flex: 1;
}
.mc-mobile-nav-list li a {
  display: flex; align-items: center;
  padding: 14px 16px; margin-bottom: 4px;
  color: var(--mc-ink); text-decoration: none;
  font-size: 16px; font-weight: 500;
  border-radius: var(--mc-radius-xs);
  transition: all .2s ease;
}
.mc-mobile-nav-list li a i {
  color: var(--mc); font-size: 18px; width: 24px; text-align: center;
}
.mc-mobile-nav-list li a:hover,
.mc-mobile-nav-list li a:active {
  background: var(--mc-pale); color: var(--mc);
}
.mc-mobile-nav-footer {
  padding-top: 20px; border-top: 1px solid rgba(0,0,0,.06);
  margin-top: auto;
}
.mc-mobile-nav-cta {
  display: flex; align-items: center; justify-content: center;
  padding: 14px 24px; border-radius: var(--mc-radius-sm);
  background: var(--mc); color: #fff; text-decoration: none;
  font-weight: 700; font-size: 15px;
  box-shadow: 0 8px 24px rgba(58,125,44,.3);
  transition: all .3s ease; margin-bottom: 16px;
}
.mc-mobile-nav-cta:hover { background: var(--mc-dark); color: #fff; transform: translateY(-1px); }
.mc-mobile-nav-secondary {
  display: flex; align-items: center; justify-content: center;
  width: 100%;
  padding: 12px 20px; border-radius: var(--mc-radius-sm);
  background: var(--mc-pale); color: var(--mc-dark);
  border: 1px solid rgba(58,125,44,.15);
  text-decoration: none;
  font-weight: 600; font-size: 14px; font-family: inherit;
  cursor: pointer;
  transition: all .25s ease; margin-bottom: 16px;
}
.mc-mobile-nav-secondary:hover {
  background: var(--mc); color: #fff; border-color: var(--mc);
}
.mc-mobile-nav-divider {
  height: 1px; margin: 12px 16px;
  background: rgba(0,0,0,.06);
  list-style: none;
}
.mc-mobile-nav-links {
  display: flex; gap: 16px; justify-content: center;
}
.mc-mobile-nav-links a {
  color: var(--mc-ink-muted); font-size: 12px; text-decoration: none;
  transition: color .2s;
}
.mc-mobile-nav-links a:hover { color: var(--mc); }
/* Center logo between hamburger and CTA on mobile */
@media (max-width: 991.98px) {
  .mc-nav-glass .container { position: relative; }
  .mc-nav-glass .mc-nav-brand {
    position: absolute; left: 50%; transform: translateX(-50%);
  }
}
.mc-nav-cta {
  padding: 10px 24px; border-radius: 50px;
  font-size: 14px; font-weight: 600;
  background: var(--mc); color: #fff;
  text-decoration: none; transition: all .3s;
  box-shadow: 0 8px 32px rgba(58,125,44,.15);
}
.mc-nav-cta:hover { background: var(--mc-dark); color: #fff; }

/* Favorites navbar link */
.mc-fav-link {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--mc-pale); color: var(--mc-dark);
  border: 0;
  padding: 0;
  text-decoration: none;
  margin-right: 8px;
  transition: all .25s ease;
}
.mc-fav-link:hover {
  background: var(--mc); color: #fff;
  transform: scale(1.05);
}
.mc-fav-link i { font-size: 18px; }
.mc-fav-badge {
  position: absolute; top: -4px; right: -4px;
  min-width: 20px; height: 20px; padding: 0 6px;
  border-radius: 50px;
  background: #e74c3c; color: #fff;
  font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(231,76,60,.4);
}
.mc-fav-badge.is-empty { display: none; }

/* Navbar icon button — login/dashboard/logout */
.mc-nav-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--mc-pale); color: var(--mc-dark);
  border: 0;
  text-decoration: none;
  margin-right: 8px;
  transition: all .25s ease;
}
.mc-nav-icon-btn:hover {
  background: var(--mc); color: #fff;
  transform: scale(1.05);
}
.mc-nav-icon-btn i { font-size: 17px; }

/* Mobile menu favorites badge inline */
.mc-fav-badge-mobile {
  margin-left: auto;
  min-width: 22px; height: 22px; padding: 0 8px; border-radius: 50px;
  background: var(--mc); color: #fff;
  font-size: 11px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center;
}
.mc-fav-badge-mobile.is-empty { display: none; }

/* =================================================================
 * Favorites modal
 * ================================================================= */
.mc-favs-modal { border-radius: var(--mc-radius); border: none; }
.mc-favs-modal .modal-header { padding: 18px 24px; border-bottom: 1px solid var(--mc-border); }
.mc-favs-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 24px; height: 24px; padding: 0 8px;
  border-radius: 50px;
  background: var(--mc-pale); color: var(--mc-dark);
  font-size: 12px; font-weight: 800;
  margin-left: 6px;
}
.mc-favs-loading {
  padding: 40px 20px; text-align: center;
  color: var(--mc-ink-muted); font-size: 14px;
  display: flex; align-items: center; justify-content: center; gap: 10px;
}
.mc-favs-empty {
  padding: 60px 32px; text-align: center;
  display: none;
}
.mc-favs-empty.is-visible { display: block; }
.mc-favs-empty-icon {
  width: 80px; height: 80px; border-radius: 50%;
  background: var(--mc-pale); color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 36px; margin-bottom: 18px;
}
.mc-favs-empty-title {
  font-size: 18px; font-weight: 800; color: var(--mc-ink);
  margin-bottom: 8px;
}
.mc-favs-empty-text {
  font-size: 13px; color: var(--mc-ink-secondary);
  max-width: 400px; margin: 0 auto; line-height: 1.6;
}
.mc-favs-list {
  display: none;
  flex-direction: column; gap: 0;
}
.mc-favs-list.is-visible { display: flex; }
.mc-favs-item {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 24px;
  border-bottom: 1px solid var(--mc-border);
  transition: opacity .25s ease, transform .25s ease, background .2s;
}
.mc-favs-item:hover { background: var(--mc-pale); }
.mc-favs-item:last-child { border-bottom: none; }
.mc-favs-item-img {
  flex-shrink: 0; width: 92px; height: 72px;
  border-radius: var(--mc-radius-xs);
  overflow: hidden; background: var(--mc-pale);
  display: block;
}
.mc-favs-item-img img {
  width: 100%; height: 100%; object-fit: cover;
}
.mc-favs-item-noimg {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; color: var(--mc);
}
.mc-favs-item-body {
  flex: 1; min-width: 0;
}
.mc-favs-item-link { text-decoration: none; color: inherit; display: block; }
.mc-favs-item-price {
  font-size: 17px; font-weight: 900; color: var(--mc-ink);
  letter-spacing: -.3px; line-height: 1.1;
  margin-bottom: 4px;
}
.mc-favs-item-price small { font-size: 11px; font-weight: 600; color: var(--mc-ink-muted); }
.mc-favs-item-loc {
  display: flex; align-items: center; gap: 4px;
  font-size: 12px; color: var(--mc-ink-secondary);
  margin-bottom: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-favs-item-loc i { color: var(--mc); flex-shrink: 0; }
.mc-favs-item-meta {
  font-size: 11px; font-weight: 600; color: var(--mc-ink-muted);
}
.mc-favs-item-remove {
  flex-shrink: 0;
  width: 32px; height: 32px; border-radius: 50%;
  background: transparent; border: none;
  color: var(--mc-ink-muted); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  transition: all .2s;
}
.mc-favs-item-remove:hover {
  background: #fde8e8; color: #d04545;
}
.mc-favs-footer {
  padding: 14px 24px;
  border-top: 1px solid var(--mc-border);
  display: flex; justify-content: space-between; align-items: center;
}

/* Footer — remove glassmorphism halos from accordion items */
.footer .accordion-item {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  border: none !important;
}
/* Footer mobile: accordion-button ha colore nero di default di Bootstrap,
   invisibile su sfondo dark. Forziamo il colore light del dark theme. */
.footer .accordion-button {
  color: rgb(202, 208, 217) !important;
  font-weight: 600;
  font-size: 1.15rem;
  letter-spacing: -0.01em;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* ul dentro accordion già a padding 0 — ora il testo del button si allinea ai link */
.footer .accordion-button:not(.collapsed) {
  color: #fff !important;
}
.footer .accordion-button:focus {
  box-shadow: none;
  border-color: transparent;
}
/* Icona chevron — override con svg bianco (Bootstrap's default è scuro e il filter
   tende a non funzionare con data-URI con fill specifico). */
.footer .accordion-button::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23cad0d9'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E") !important;
}
.footer .accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E") !important;
}

/* =================================================================
 * Pagination
 * ================================================================= */
.mc-pagination { font-size: 14px; }
.mc-pagination .page-link {
  border-radius: var(--mc-radius-xs);
  border-color: var(--mc-border);
  min-width: 38px; text-align: center; font-weight: 500;
}
.mc-pagination .page-item.active .page-link {
  background: var(--mc); border-color: var(--mc);
  font-weight: 700;
}

/* =================================================================
 * Contact Info List
 * ================================================================= */
.mc-contact-list {
  display: flex; flex-direction: column; gap: 8px; font-size: 13px;
}
.mc-contact-list a,
.mc-contact-list span {
  color: var(--mc-ink-secondary); text-decoration: none;
}
.mc-contact-list a:hover { color: var(--mc); }
.mc-contact-list i { color: var(--mc); margin-right: 6px; }
.mc-contact-list-lg { font-size: 14px; flex-direction: row; flex-wrap: wrap; gap: 16px; }

/* =================================================================
 * Wizard (multi-step form)
 * ================================================================= */
.mc-wizard-progress {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; margin-bottom: 24px;
}
.mc-wizard-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--mc-border); transition: all .3s;
}
.mc-wizard-dot.active { background: var(--mc); }
.mc-wizard-bar {
  width: 32px; height: 2px;
  background: var(--mc-border); border-radius: 1px;
}
.mc-wizard-title { font-weight: 700; margin-bottom: 4px; }
.mc-wizard-subtitle {
  font-size: 13px; color: var(--mc-ink-muted); margin-bottom: 20px;
}

/* =================================================================
 * Option Card (radio selection grid)
 * ================================================================= */
.mc-option-card {
  display: block;
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm);
  text-align: center; padding: 20px 12px;
  cursor: pointer; transition: all .3s;
  background: var(--mc-ghost);
}
.mc-option-card:hover { border-color: var(--mc-border-hover); }
.mc-option-card.selected,
.mc-option-card:has(input:checked) {
  border-color: var(--mc); background: var(--mc-pale);
}
.mc-option-card i { color: var(--mc); }
.mc-option-card-label {
  font-weight: 600; font-size: 13px;
}

/* =================================================================
 * Form Helpers
 * ================================================================= */
.mc-form-input {
  border-radius: var(--mc-radius-xs);
  border-color: var(--mc-border);
}
.mc-form-input:focus { border-color: var(--mc-light); box-shadow: 0 0 0 .25rem rgba(58,125,44,.1); }
.mc-form-btn {
  border-radius: var(--mc-radius-xs); font-weight: 700; padding: 12px;
}
.mc-form-btn-outline {
  border-radius: var(--mc-radius-xs); font-weight: 600;
}

/* =================================================================
 * Newsletter Banner
 * ================================================================= */
.mc-newsletter {
  background: var(--mc-pale);
  border: 1px solid var(--mc-light);
  border-radius: var(--mc-radius);
  padding: 24px;
}

/* =================================================================
 * Info Banner (delivery dates, alerts)
 * ================================================================= */
.mc-info-banner {
  background: var(--mc-pale);
  border: 1px solid var(--mc-light);
  border-radius: var(--mc-radius-xs);
  padding: 14px 20px; font-size: 14px;
}
.mc-info-banner i { color: var(--mc); }

/* =================================================================
 * Breadcrumb
 * ================================================================= */
.mc-breadcrumb { font-weight: 500; }
.mc-breadcrumb a { color: var(--mc); }

/* =================================================================
 * Card Content (body/text patterns for list cards)
 * ================================================================= */
.mc-card-body { padding: 20px 24px; }
.mc-card-title {
  font-size: 16px; font-weight: 700; margin-bottom: 6px;
}
.mc-card-title a { color: var(--mc-ink); text-decoration: none; }
.mc-card-title a:hover { color: var(--mc); }
.mc-card-subtitle {
  font-size: 12px; color: var(--mc-ink-muted);
  font-weight: 600; text-transform: uppercase; letter-spacing: .05em;
}
.mc-card-text {
  font-size: 13px; color: var(--mc-ink-secondary);
  margin-bottom: 8px; line-height: 1.6;
}
.mc-card-date { font-size: 12px; color: var(--mc-ink-muted); }
.mc-card-footer-sep { border-top: 1px solid var(--mc-border); }
.mc-card-loc { font-size: 13px; color: var(--mc-ink-secondary); }
.mc-card-loc i { color: var(--mc); }

/* =================================================================
 * Page heading (detail pages h1)
 * ================================================================= */
.mc-page-title {
  font-size: clamp(24px, 4vw, 38px);
  font-weight: 800; letter-spacing: -1px; line-height: 1.2;
}
.mc-page-title-sm {
  font-size: clamp(24px, 3.5vw, 34px);
  font-weight: 800; letter-spacing: -.5px;
}
.mc-page-subtitle {
  font-size: 15px; color: var(--mc-ink-secondary);
}

/* =================================================================
 * Article Content
 * ================================================================= */
.mc-article-body {
  font-size: 16px; line-height: 1.8; color: var(--mc-ink-secondary);
}
.mc-article-meta {
  font-size: 14px; color: var(--mc-ink-muted); margin-bottom: 24px;
}
.mc-article-sep { border-top: 1px solid var(--mc-border); }

/* =================================================================
 * Map Container
 * ================================================================= */
.mc-map-container {
  height: 250px;
  border-radius: var(--mc-radius-sm);
  border: 1px solid var(--mc-border);
}

/* =================================================================
 * Agency card inline title
 * ================================================================= */
.mc-agency-title {
  font-size: 17px; font-weight: 700; margin-bottom: 14px;
}
.mc-agency-title a { color: var(--mc-ink); text-decoration: none; }
.mc-agency-title a:hover { color: var(--mc); }

/* =================================================================
 * Card Image Overlay
 * ================================================================= */
.mc-img-overlay {
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.11) 100%);
}

/* =================================================================
 * Agent Team Card
 * ================================================================= */
.mc-agent-team-name { font-size: 14px; font-weight: 600; margin-bottom: 2px; }
.mc-agent-team-email { font-size: 12px; color: var(--mc-ink-muted); margin-bottom: 0; }

/* =================================================================
 * Team grid (chi-siamo, agenzia-detail)
 * ================================================================= */
.mc-team-card {
  padding: 16px 8px;
  transition: transform .25s ease;
}
.mc-team-card:hover { transform: translateY(-2px); }
.mc-team-photo,
.mc-team-initials {
  width: 96px; height: 96px;
  border-radius: 50%;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  background: linear-gradient(135deg, var(--mc-pale), var(--mc-light));
  color: #fff;
  font-weight: 600;
  font-size: 28px;
  letter-spacing: 1px;
  box-shadow: 0 2px 12px rgba(58,125,44,.18);
}
.mc-team-photo { background: var(--mc-ghost); }
.mc-team-name {
  font-size: 15px; font-weight: 700; margin-bottom: 2px;
  color: var(--mc-ink);
}
.mc-team-role {
  font-size: 12.5px; color: var(--mc); margin-bottom: 2px;
  font-weight: 500;
}
.mc-team-agency {
  font-size: 12px; color: var(--mc-ink-muted); margin-bottom: 0;
}

/* =================================================================
 * Placeholder block (per sezioni image-text in pagine istituzionali)
 * Usato finch&eacute; non arrivano gli asset fotografici reali.
 * ================================================================= */
.mc-placeholder-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 320px;
  border-radius: var(--mc-radius);
  background: linear-gradient(135deg, var(--mc-pale) 0%, var(--mc-light) 100%);
  color: #fff;
  text-align: center;
  padding: 32px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(58,125,44,.12);
}
.mc-placeholder-block::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.18) 0%, transparent 50%);
  pointer-events: none;
}
.mc-placeholder-block i { font-size: 64px; opacity: .85; }
.mc-placeholder-block span {
  font-size: 14px; font-weight: 600; letter-spacing: .3px;
  text-transform: uppercase; opacity: .9;
}

/* =================================================================
 * Feature list (icona + voce, usato in pagine istituzionali)
 * ================================================================= */
.mc-feature-list {
  list-style: none; padding: 0; margin: 0 0 8px;
}
.mc-feature-list li {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 8px 0;
  font-size: 15px;
  color: var(--mc-ink);
}
.mc-feature-list li i {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--mc-ghost);
  color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px;
  margin-top: 2px;
}

/* =================================================================
 * Pill item (chip con icona, usato per liste compatte)
 * ================================================================= */
.mc-pill-item {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--mc-ghost);
  font-size: 13.5px;
  font-weight: 500;
  color: var(--mc-ink);
  border: 1px solid rgba(58,125,44,.08);
}
.mc-pill-item i { color: var(--mc); font-size: 14px; }

/* =================================================================
 * Price tag (per area-tecnica e similari)
 * ================================================================= */
.mc-price-tag {
  display: inline-block;
  margin-top: 12px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--mc-pale);
  color: var(--mc-dark);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .2px;
}

/* =================================================================
 * Accordion (FAQ) override Bootstrap nello stile makecasa
 * ================================================================= */
.mc-accordion .accordion-item {
  border: 1px solid rgba(58,125,44,.10);
  border-radius: var(--mc-radius-xs) !important;
  margin-bottom: 10px;
  background: #fff;
  overflow: hidden;
}
.mc-accordion .accordion-button {
  font-weight: 600;
  font-size: 15.5px;
  color: var(--mc-ink);
  background: #fff;
  padding: 18px 22px;
}
.mc-accordion .accordion-button:not(.collapsed) {
  background: var(--mc-ghost);
  color: var(--mc-dark);
  box-shadow: none;
}
.mc-accordion .accordion-button:focus { box-shadow: none; }
.mc-accordion .accordion-body {
  padding: 4px 22px 22px;
  font-size: 14.5px;
  color: var(--mc-ink-muted);
  line-height: 1.65;
}

/* =================================================================
 * Service number badge (lista numerata in /servizi/)
 * ================================================================= */
.mc-service-num {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 10px;
  background: var(--mc-pale);
  color: var(--mc-dark);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px;
  letter-spacing: -.5px;
}
.mc-service-title {
  font-size: 15px; font-weight: 700; margin-bottom: 4px;
  color: var(--mc-ink);
}
.mc-service-text {
  font-size: 13.5px; color: var(--mc-ink-muted);
  margin-bottom: 0; line-height: 1.5;
}

/* mc-sidebar-p-sm: padding ridotto per card piu' compatte */
.mc-sidebar-p-sm { padding: 16px 18px; }

/* =================================================================
 * Section alternativa (background grigio chiaro per separare blocchi)
 * ================================================================= */
.mc-section-alt {
  background: var(--mc-ghost);
  border-top: 1px solid rgba(58,125,44,.06);
  border-bottom: 1px solid rgba(58,125,44,.06);
}

/* =================================================================
 * Budget radio cards (richiedi-immobile)
 * ================================================================= */
.mc-budget-card {
  display: block;
  cursor: pointer;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fff;
  border: 1.5px solid rgba(58,125,44,.12);
  text-align: center;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--mc-ink);
  transition: all .2s ease;
}
.mc-budget-card:hover {
  border-color: var(--mc);
  background: var(--mc-ghost);
}
.mc-budget-card input[type=radio] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.mc-budget-card.selected,
.mc-budget-card:has(input:checked) {
  background: var(--mc);
  border-color: var(--mc);
  color: #fff;
  box-shadow: 0 4px 12px rgba(58,125,44,.25);
}
.mc-budget-card span { display: block; }

/* =================================================================
 * Form label (richiedi-immobile, carriere)
 * ================================================================= */
.mc-form-label {
  display: block;
  font-size: 13px; font-weight: 600;
  color: var(--mc-ink);
  margin-bottom: 8px;
  letter-spacing: .2px;
}

/* =================================================================
 * Job card (carriere) — hover lift sottile
 * ================================================================= */
.mc-job-card { display: flex; flex-direction: column; }
.mc-job-card .mc-step-title { margin-top: 4px; margin-bottom: 8px; }
.mc-job-card a { margin-top: auto; align-self: flex-start; }

/* =================================================================
 * Step list numerata (richiedi-immobile sidebar)
 * ================================================================= */
.mc-step-list {
  list-style: none;
  counter-reset: step;
  padding: 0;
  margin: 0;
}
.mc-step-list li {
  position: relative;
  padding-left: 38px;
  margin-bottom: 18px;
  counter-increment: step;
}
.mc-step-list li::before {
  content: counter(step);
  position: absolute;
  left: 0; top: 0;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--mc);
  color: #fff;
  font-size: 13px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.mc-step-list li strong {
  display: block;
  font-size: 14.5px;
  color: var(--mc-ink);
  margin-bottom: 2px;
}
.mc-step-list li p {
  font-size: 13px;
  color: var(--mc-ink-muted);
  margin: 0;
  line-height: 1.5;
}

/* =================================================================
 * PAGE HERO — versione ricca per pagine istituzionali
 * (mc-mini-hero resta per back-compat; le pagine nuove usano questa)
 * ================================================================= */
.mc-page-hero {
  position: relative;
  background: linear-gradient(160deg, var(--mc-pale) 0%, #ffffff 65%);
  padding: 100px 0 80px;
  overflow: hidden;
  border-bottom: 1px solid rgba(58,125,44,.06);
}
.mc-page-hero::before {
  content: '';
  position: absolute;
  top: -120px; right: -140px;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.14), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.mc-page-hero::after {
  content: '';
  position: absolute;
  bottom: -100px; left: -60px;
  width: 320px; height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,221,176,.30), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.mc-page-hero > .container { position: relative; z-index: 1; }
.mc-page-hero-content { max-width: 720px; }
.mc-page-hero-title {
  font-size: clamp(36px, 5.5vw, 64px);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -2px;
  color: var(--mc-ink);
  margin: 14px 0 18px;
}
.mc-page-hero-title .accent {
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.mc-page-hero-subtitle {
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 1.65;
  color: var(--mc-ink-secondary);
  margin-bottom: 28px;
  max-width: 660px;
}
@media (max-width: 768px) {
  .mc-page-hero { padding: 72px 0 56px; }
  .mc-page-hero::before { width: 280px; height: 280px; right: -90px; }
  .mc-page-hero::after { width: 200px; height: 200px; left: -50px; }
}

/* =================================================================
 * STAT RIBBON — strip stats sotto hero
 * ================================================================= */
.mc-stat-ribbon {
  position: relative;
  background: linear-gradient(135deg, var(--mc) 0%, #2d6b20 50%, var(--mc-dark) 100%);
  color: #fff;
  padding: 36px 0;
  overflow: hidden;
}
.mc-stat-ribbon::before {
  content: '';
  position: absolute; top: -50%; right: -10%;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  pointer-events: none;
}
.mc-stat-ribbon::after {
  content: '';
  position: absolute; bottom: -50%; left: -10%;
  width: 300px; height: 300px;
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  pointer-events: none;
}
.mc-stat-ribbon-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media (max-width: 768px) {
  .mc-stat-ribbon-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
.mc-stat-item { text-align: center; position: relative; }
.mc-stat-item:not(:last-child)::after {
  content: ''; position: absolute;
  right: -12px; top: 12px; bottom: 12px; width: 1px;
  background: rgba(255,255,255,.18);
}
@media (max-width: 768px) {
  .mc-stat-item:not(:last-child)::after { display: none; }
}
.mc-stat-item-value {
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -1.5px;
  color: #fff;
}
.mc-stat-item-label {
  font-size: 12px;
  font-weight: 600;
  margin-top: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .9;
}

/* =================================================================
 * FEATURE VISUAL — sostituisce mc-placeholder-block, look magazine
 * Pattern dot bg + cluster icone composto + soft shadow
 * ================================================================= */
.mc-feature-visual {
  position: relative;
  border-radius: var(--mc-radius);
  min-height: 360px;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.55), transparent 55%),
    linear-gradient(135deg, var(--mc-pale) 0%, var(--mc-light) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 36px rgba(58,125,44,.14);
}
.mc-feature-visual::before {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.4) 1.5px, transparent 1.5px);
  background-size: 22px 22px;
  opacity: .35;
  pointer-events: none;
}
.mc-feature-visual-cluster {
  position: relative;
  z-index: 1;
}
.mc-feature-visual-main {
  display: flex; align-items: center; justify-content: center;
  width: 120px; height: 120px;
  border-radius: 24px;
  background: #fff;
  color: var(--mc);
  font-size: 56px;
  box-shadow: 0 10px 28px rgba(58,125,44,.20);
  transform: rotate(-4deg);
}
.mc-feature-visual-sub {
  position: absolute;
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--mc);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.mc-feature-visual-sub.tr { top: -16px; right: -28px; transform: rotate(8deg); }
.mc-feature-visual-sub.bl { bottom: -16px; left: -28px; transform: rotate(-8deg); background: var(--mc-dark); }

.mc-feature-visual--blue {
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.55), transparent 55%),
    linear-gradient(135deg, #d3e3f3 0%, #7eaad6 100%);
}
.mc-feature-visual--blue .mc-feature-visual-main { color: #2f5c83; }
.mc-feature-visual--blue .mc-feature-visual-sub { background: #2f5c83; }
.mc-feature-visual--blue .mc-feature-visual-sub.bl { background: #1f4365; }

.mc-feature-visual--warm {
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.55), transparent 55%),
    linear-gradient(135deg, #f5e6c8 0%, #d4b07f 100%);
}
.mc-feature-visual--warm .mc-feature-visual-main { color: #8d6c3b; }
.mc-feature-visual--warm .mc-feature-visual-sub { background: #8d6c3b; }
.mc-feature-visual--warm .mc-feature-visual-sub.bl { background: #6b5026; }

/* =================================================================
 * SECTION SOFT — gradient soft con orbs (pattern da .mc-zones-section)
 * ================================================================= */
.mc-section-soft {
  position: relative;
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
  padding: 80px 0;
  overflow: hidden;
}
.mc-section-soft::before {
  content: '';
  position: absolute; top: 5%; right: -10%;
  width: 360px; height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.06), transparent 70%);
  pointer-events: none;
}
.mc-section-soft::after {
  content: '';
  position: absolute; bottom: 5%; left: -10%;
  width: 280px; height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,221,176,.20), transparent 70%);
  pointer-events: none;
}
.mc-section-soft > .container { position: relative; z-index: 1; }

/* =================================================================
 * BIG NUMBER CARD (per /servizi/ — magazine style)
 * ================================================================= */
.mc-big-num-card {
  display: flex;
  gap: 18px;
  padding: 24px;
  border-radius: var(--mc-radius-xs);
  background: #fff;
  border: 1px solid rgba(58,125,44,.08);
  height: 100%;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.mc-big-num-card:hover {
  transform: translateY(-3px);
  border-color: rgba(58,125,44,.22);
  box-shadow: 0 12px 28px rgba(58,125,44,.12);
}
.mc-big-num {
  flex-shrink: 0;
  font-size: 44px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -2px;
  background: linear-gradient(135deg, var(--mc), var(--mc-light));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  min-width: 56px;
}
.mc-big-num-body { flex: 1; }
.mc-big-num-title {
  font-size: 16px; font-weight: 700;
  color: var(--mc-ink);
  margin-bottom: 6px;
  line-height: 1.3;
}
.mc-big-num-text {
  font-size: 14px;
  color: var(--mc-ink-muted);
  margin-bottom: 0;
  line-height: 1.55;
}

/* =================================================================
 * FOUNDER CARDS — hero chi-siamo
 * 2 colonne pulite con foto quadrata + badge + info sotto
 * ================================================================= */
.mc-founders-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 575px) {
  .mc-founders-row { grid-template-columns: 1fr; max-width: 320px; margin: 0 auto; }
}

.mc-founder-card {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(58,125,44,.12), 0 1px 3px rgba(0,0,0,.04);
  display: flex; flex-direction: column;
  transition: transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease;
}
.mc-founder-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(58,125,44,.20);
}

.mc-founder-photo-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--mc-pale);
}
.mc-founder-photo {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.mc-founder-card:hover .mc-founder-photo { transform: scale(1.04); }

.mc-founder-badge {
  position: absolute;
  top: 10px; left: 10px;
  padding: 4px 10px;
  background: rgba(255,255,255,.95);
  color: var(--mc-dark);
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .14em;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

.mc-founder-info {
  padding: 14px 14px 16px;
  text-align: center;
}
.mc-founder-name {
  font-size: 15.5px; font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 4px;
  letter-spacing: -.2px;
  line-height: 1.2;
}
.mc-founder-role {
  font-size: 11px; font-weight: 700;
  color: var(--mc);
  text-transform: uppercase;
  letter-spacing: .14em;
  margin: 0 0 10px;
}
.mc-founder-email {
  display: inline-flex; align-items: center;
  gap: 6px;
  padding: 5px 12px;
  background: var(--mc-pale);
  color: var(--mc-dark);
  border-radius: 999px;
  font-size: 11.5px; font-weight: 700;
  text-decoration: none;
  transition: all .2s ease;
}
.mc-founder-email:hover {
  background: var(--mc); color: #fff;
  transform: translateY(-1px);
}
.mc-founder-email i { font-size: 12px; }

/* Email pill nella team card */
.mc-team-card { position: relative; padding: 18px 8px 28px; }
.mc-team-email {
  position: absolute;
  bottom: -14px; left: 50%; transform: translateX(-50%);
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--mc);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  text-decoration: none;
  font-size: 13px;
  box-shadow: 0 4px 12px rgba(58,125,44,.30);
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
}
.mc-team-card:hover .mc-team-email {
  opacity: 1;
  transform: translateX(-50%) translateY(-2px);
}
.mc-team-email:hover { background: var(--mc-dark); color: #fff; }

/* =================================================================
 * PAGE HERO IMAGE — area visuale a destra dell'hero (chi-siamo)
 * ================================================================= */
.mc-page-hero-image-wrap {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(58,125,44,.18);
  aspect-ratio: 4 / 5;
  background: var(--mc-pale);
  max-height: 520px;
}
.mc-page-hero-image {
  width: 100%; height: 100%;
  display: block;
  object-fit: cover;
}
.mc-page-hero-image-placeholder {
  position: relative;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,.55), transparent 55%),
    linear-gradient(135deg, var(--mc-pale) 0%, var(--mc-light) 100%);
}
.mc-page-hero-image-placeholder::before {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.4) 1.5px, transparent 1.5px);
  background-size: 24px 24px;
  opacity: .35;
  pointer-events: none;
}
@media (max-width: 991px) {
  .mc-page-hero-image-wrap { aspect-ratio: 16 / 10; max-height: 360px; }
}

/* =================================================================
 * TEAM CARD (pretty) — foto top + body con name/ruolo/sede/email
 * ================================================================= */
.mc-tcard {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.05);
  border: 1px solid rgba(0,0,0,.04);
  transition: transform .35s ease, box-shadow .35s ease;
  display: flex; flex-direction: column;
}
.mc-tcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(58,125,44,.16);
}
.mc-tcard-media {
  position: relative;
  aspect-ratio: 4 / 5;
  background: var(--mc-pale);
  overflow: hidden;
}
.mc-tcard-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  transition: transform .5s ease;
}
.mc-tcard:hover .mc-tcard-media img { transform: scale(1.04); }
.mc-tcard-body {
  padding: 16px 14px 18px;
  text-align: center;
  flex: 1;
  display: flex; flex-direction: column;
  align-items: center;
}
.mc-tcard-name {
  font-size: 15.5px; font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 4px;
  letter-spacing: -.2px;
  line-height: 1.2;
}
.mc-tcard-role {
  font-size: 12px; font-weight: 700;
  color: var(--mc);
  margin: 0 0 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.mc-tcard-sede {
  font-size: 12.5px;
  color: var(--mc-ink-muted);
  margin: 0 0 12px;
  display: inline-flex; align-items: center; gap: 4px;
}
.mc-tcard-sede i { color: var(--mc); font-size: 12px; }
.mc-tcard-email-text {
  margin-top: auto;
  display: block;
  font-size: 12px;
  color: var(--mc-ink-muted);
  text-decoration: none;
  word-break: break-word;
  line-height: 1.4;
  padding: 0 4px;
  margin-bottom: 8px;
  transition: color .2s ease;
}
.mc-tcard-email-text:hover { color: var(--mc); }
.mc-tcard-email {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px;
  font-size: 12.5px; font-weight: 600;
  color: var(--mc-dark);
  background: var(--mc-pale);
  border-radius: 999px;
  text-decoration: none;
  transition: all .2s ease;
}
/* Se preceduto dalla email in chiaro, non spinge da solo a fondo */
.mc-tcard-email-text + .mc-tcard-email { margin-top: 0; }
.mc-tcard-email:hover {
  background: var(--mc); color: #fff;
  transform: translateY(-1px);
}

/* Badge "Co-Fondatore" su team card (sostituisce il founder hero) */
.mc-tcard-badge {
  position: absolute;
  top: 10px; left: 10px;
  padding: 4px 10px;
  background: rgba(255,255,255,.95);
  color: var(--mc-dark);
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .14em;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.mc-tcard--founder { border: 1px solid rgba(58,125,44,.18); }
.mc-tcard--founder .mc-tcard-name { color: var(--mc-dark); }

/* =================================================================
 * CALCOLATRICE costi acquisto (per-chi-compra)
 * ================================================================= */
.mc-calc-card {
  background: #fff;
  border-radius: 24px;
  border: 1px solid rgba(58,125,44,.08);
  box-shadow: 0 12px 40px rgba(58,125,44,.10);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
}
@media (max-width: 991px) {
  .mc-calc-card { grid-template-columns: 1fr; }
}

.mc-calc-controls {
  padding: 32px 30px;
  background: linear-gradient(160deg, var(--mc-pale) 0%, #ffffff 100%);
  position: relative;
}
.mc-calc-controls::before {
  content: '';
  position: absolute; bottom: -100px; right: -80px;
  width: 240px; height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.10), transparent 70%);
  pointer-events: none;
}

.mc-calc-input-row {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 14px;
}
.mc-calc-label {
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc-ink-muted);
  margin: 0;
}
.mc-calc-price-display {
  display: flex; align-items: baseline; gap: 4px;
  color: var(--mc-dark);
}
.mc-calc-currency { font-size: 18px; font-weight: 700; }
.mc-calc-price {
  font-size: clamp(28px, 3.5vw, 38px);
  font-weight: 900;
  letter-spacing: -1.5px;
  line-height: 1;
}

/* Slider */
.mc-calc-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: rgba(58,125,44,.18);
  outline: none;
  margin: 4px 0 6px;
}
.mc-calc-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--mc);
  border: 3px solid #fff;
  cursor: grab;
  box-shadow: 0 4px 14px rgba(58,125,44,.35);
  transition: transform .15s ease;
}
.mc-calc-slider::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.1); }
.mc-calc-slider::-moz-range-thumb {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--mc);
  border: 3px solid #fff;
  cursor: grab;
  box-shadow: 0 4px 14px rgba(58,125,44,.35);
}
.mc-calc-slider-labels {
  display: flex; justify-content: space-between;
  font-size: 11px; font-weight: 600;
  color: var(--mc-ink-muted);
  margin-bottom: 24px;
}

/* Toggle */
.mc-calc-toggle-group {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 8px;
  position: relative;
  z-index: 1;
}
.mc-calc-toggle {
  display: block;
  cursor: pointer;
  margin: 0;
}
.mc-calc-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.mc-calc-toggle span {
  display: flex; align-items: center; justify-content: center;
  gap: 8px;
  padding: 12px 14px;
  background: #fff;
  border: 1.5px solid rgba(58,125,44,.15);
  border-radius: 12px;
  font-size: 13.5px; font-weight: 700;
  color: var(--mc-ink);
  transition: all .2s ease;
}
.mc-calc-toggle span i { color: var(--mc); font-size: 14px; }
.mc-calc-toggle:hover span { border-color: var(--mc); background: var(--mc-ghost); }
.mc-calc-toggle input:checked + span {
  background: var(--mc);
  border-color: var(--mc);
  color: #fff;
  box-shadow: 0 6px 16px rgba(58,125,44,.28);
}
.mc-calc-toggle input:checked + span i { color: #fff; }

/* Results */
.mc-calc-results {
  padding: 28px 30px 24px;
  background: #fff;
}
.mc-calc-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.mc-calc-row:first-child { padding-top: 4px; }
.mc-calc-row-label {
  display: flex; align-items: flex-start; gap: 12px;
  flex: 1;
}
.mc-calc-row-label > i {
  flex-shrink: 0;
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--mc-ghost);
  color: var(--mc);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
}
.mc-calc-row-label strong {
  display: block;
  font-size: 14px; font-weight: 700;
  color: var(--mc-ink);
  line-height: 1.3;
}
.mc-calc-row-label small {
  display: block;
  font-size: 11.5px;
  color: var(--mc-ink-muted);
  margin-top: 2px;
}
.mc-calc-row-value {
  font-size: 16px; font-weight: 700;
  color: var(--mc-ink);
  white-space: nowrap;
}
.mc-calc-row-total {
  border-bottom: none;
  padding-bottom: 18px;
}
.mc-calc-row-total .mc-calc-row-value {
  color: var(--mc-dark);
  font-size: 18px;
}
.mc-calc-grand {
  margin-top: 12px;
  padding: 18px 20px;
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 100%);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: space-between;
  color: #fff;
}
.mc-calc-grand-label {
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
  opacity: .9;
}
.mc-calc-grand-value {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 900;
  letter-spacing: -1px;
}
.mc-calc-disclaimer {
  margin: 18px 30px 24px;
  padding: 12px 16px;
  background: var(--mc-pale);
  border-radius: 10px;
  font-size: 12.5px;
  color: var(--mc-ink-muted);
  display: flex; gap: 10px; align-items: flex-start;
  line-height: 1.5;
}
.mc-calc-disclaimer > i {
  flex-shrink: 0;
  color: var(--mc); font-size: 13px;
  margin-top: 2px;
}
.mc-calc-disclaimer a {
  color: var(--mc-dark); font-weight: 700; text-decoration: none;
}
.mc-calc-disclaimer a:hover { color: var(--mc); }
@media (max-width: 991px) {
  .mc-calc-disclaimer { margin: 0 20px 20px; }
  .mc-calc-controls, .mc-calc-results { padding: 24px 20px; }
}

/* =================================================================
 * Calcolatrice GATE — overlay form per sbloccare i risultati
 * ================================================================= */
.mc-calc-results-wrap { position: relative; }
.mc-calc-results-wrap:not(.unlocked) .mc-calc-results,
.mc-calc-results-wrap:not(.unlocked) .mc-calc-disclaimer {
  filter: blur(7px);
  pointer-events: none;
  user-select: none;
}
.mc-calc-results-wrap.unlocked .mc-calc-gate { display: none; }

.mc-calc-gate {
  position: absolute;
  inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.85) 100%);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  z-index: 5;
  padding: 24px;
}
.mc-calc-gate-card {
  background: #fff;
  border-radius: 18px;
  padding: 24px 26px 22px;
  box-shadow: 0 18px 48px rgba(58,125,44,.22);
  max-width: 380px;
  width: 100%;
  text-align: center;
  border: 1px solid rgba(58,125,44,.10);
}
.mc-calc-gate-icon {
  width: 54px; height: 54px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px;
  margin-bottom: 14px;
  box-shadow: 0 8px 22px rgba(58,125,44,.32);
}
.mc-calc-gate-card h3 {
  font-size: 18px; font-weight: 800;
  margin: 0 0 6px;
  color: var(--mc-ink);
  letter-spacing: -.3px;
}
.mc-calc-gate-desc {
  font-size: 13px;
  color: var(--mc-ink-muted);
  margin: 0 0 18px;
  line-height: 1.5;
}
.mc-calc-gate-form {
  display: grid;
  gap: 9px;
  text-align: left;
}
.mc-calc-gate-form input[type=text],
.mc-calc-gate-form input[type=email],
.mc-calc-gate-form input[type=tel] {
  width: 100%;
  padding: 10px 13px;
  border: 1.5px solid rgba(58,125,44,.18);
  border-radius: 10px;
  font-size: 14px;
  font-family: inherit;
  color: var(--mc-ink);
  background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.mc-calc-gate-form input[type=text]:focus,
.mc-calc-gate-form input[type=email]:focus,
.mc-calc-gate-form input[type=tel]:focus {
  outline: none;
  border-color: var(--mc);
  box-shadow: 0 0 0 3px rgba(58,125,44,.12);
}
.mc-calc-gate-privacy {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 12px;
  color: var(--mc-ink-muted);
  cursor: pointer;
  margin-top: 4px;
  line-height: 1.4;
}
.mc-calc-gate-privacy input { margin-top: 2px; flex-shrink: 0; }
.mc-calc-gate-privacy a { color: var(--mc); font-weight: 600; }
.mc-calc-gate-submit {
  margin-top: 8px;
  padding: 12px 18px;
  background: var(--mc);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-weight: 700;
  font-size: 14px;
  font-family: inherit;
  cursor: pointer;
  transition: all .2s ease;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.mc-calc-gate-submit:hover:not(:disabled) {
  background: var(--mc-dark);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(58,125,44,.30);
}
.mc-calc-gate-submit:disabled,
.mc-calc-gate-submit.loading { opacity: .65; cursor: wait; }
.mc-calc-gate-submit.loading::after {
  content: '';
  width: 14px; height: 14px;
  border: 2px solid #fff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: mcCalcSpin .8s linear infinite;
  margin-left: 6px;
}
@keyframes mcCalcSpin { to { transform: rotate(360deg); } }
.mc-calc-gate-error {
  margin-top: 6px;
  padding: 8px 12px;
  background: #ffe5e5;
  color: #b30000;
  border-radius: 8px;
  font-size: 12.5px;
  display: none;
}
.mc-calc-gate-error.visible { display: block; }

@media (max-width: 991px) {
  .mc-calc-gate { padding: 16px; }
  .mc-calc-gate-card { padding: 20px 22px 18px; }
}

/* =================================================================
 * QUIZ "Sei pronto a comprare casa?" (per-chi-compra)
 * ================================================================= */
.mc-quiz-card {
  background: #fff;
  border-radius: 24px;
  border: 1px solid rgba(58,125,44,.08);
  box-shadow: 0 14px 40px rgba(58,125,44,.12);
  padding: 32px 36px 28px;
  position: relative;
}
@media (max-width: 575px) { .mc-quiz-card { padding: 24px 20px 22px; } }

.mc-quiz-progress {
  height: 4px;
  width: 100%;
  background: rgba(58,125,44,.10);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 6px;
}
.mc-quiz-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--mc), var(--mc-dark));
  transition: width .4s cubic-bezier(.4,0,.2,1);
}
.mc-quiz-step-counter {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mc-ink-muted);
  margin-bottom: 20px;
}

.mc-quiz-step { display: none; animation: mcQuizFadeIn .4s ease-out; }
.mc-quiz-step.active { display: block; }
@keyframes mcQuizFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.mc-quiz-icon {
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--mc-pale);
  color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px;
  margin-bottom: 14px;
  box-shadow: 0 4px 12px rgba(58,125,44,.15);
}
.mc-quiz-question {
  font-size: clamp(20px, 2.6vw, 28px);
  font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 6px;
  letter-spacing: -.4px;
  line-height: 1.2;
}
.mc-quiz-hint {
  font-size: 13.5px;
  color: var(--mc-ink-muted);
  margin: 0 0 22px;
}

.mc-quiz-options { display: grid; gap: 10px; }
.mc-quiz-option {
  display: block;
  cursor: pointer;
  margin: 0;
  position: relative;
}
.mc-quiz-option input { position: absolute; opacity: 0; pointer-events: none; }
.mc-quiz-option > span {
  display: block;
  padding: 14px 18px;
  background: #fff;
  border: 1.5px solid rgba(58,125,44,.12);
  border-radius: 12px;
  transition: all .2s ease;
}
.mc-quiz-option > span strong {
  display: block;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--mc-ink);
  margin-bottom: 2px;
  line-height: 1.3;
}
.mc-quiz-option > span small {
  display: block;
  font-size: 12.5px;
  color: var(--mc-ink-muted);
  line-height: 1.4;
}
.mc-quiz-option:hover > span {
  border-color: var(--mc);
  background: var(--mc-ghost);
  transform: translateX(2px);
}
.mc-quiz-option.selected > span,
.mc-quiz-option input:checked + span {
  background: var(--mc-pale);
  border-color: var(--mc);
  border-width: 2px;
  padding: 13px 17px;
  box-shadow: 0 6px 18px rgba(58,125,44,.18);
}
.mc-quiz-option.selected > span strong { color: var(--mc-dark); }

/* Nav */
.mc-quiz-nav {
  display: flex; justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.mc-quiz-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px;
  border-radius: 999px;
  font-size: 14px; font-weight: 700;
  font-family: inherit;
  border: none;
  cursor: pointer;
  transition: all .2s ease;
}
.mc-quiz-btn-back {
  background: transparent;
  color: var(--mc-ink-muted);
  border: 1.5px solid rgba(0,0,0,.10);
}
.mc-quiz-btn-back:hover:not(:disabled) {
  background: rgba(0,0,0,.04);
  color: var(--mc-ink);
}
.mc-quiz-btn-back:disabled { opacity: .4; cursor: not-allowed; }
.mc-quiz-btn-next {
  background: var(--mc);
  color: #fff;
  box-shadow: 0 6px 16px rgba(58,125,44,.25);
}
.mc-quiz-btn-next:hover:not(:disabled) {
  background: var(--mc-dark);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(58,125,44,.32);
}
.mc-quiz-btn-next:disabled {
  opacity: .45; cursor: not-allowed;
  box-shadow: none;
}

/* Result */
.mc-quiz-result { text-align: center; padding: 12px 0; }
.mc-quiz-result-badge {
  width: 88px; height: 88px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 38px;
  margin-bottom: 18px;
  color: #fff;
}
.mc-quiz-result-pronto .mc-quiz-result-badge {
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  box-shadow: 0 12px 32px rgba(58,125,44,.36);
}
.mc-quiz-result-quasi .mc-quiz-result-badge {
  background: linear-gradient(135deg, #d49a1a, #a76f0a);
  box-shadow: 0 12px 32px rgba(212,154,26,.36);
}
.mc-quiz-result-inizio .mc-quiz-result-badge {
  background: linear-gradient(135deg, #5a7fa3, #2f5c83);
  box-shadow: 0 12px 32px rgba(47,92,131,.36);
}
.mc-quiz-result-title {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 900;
  color: var(--mc-ink);
  margin: 0 0 12px;
  letter-spacing: -1px;
}
.mc-quiz-result-desc {
  font-size: 15px;
  color: var(--mc-ink-secondary);
  line-height: 1.65;
  max-width: 560px;
  margin: 0 auto 22px;
}
.mc-quiz-result-list {
  list-style: none; padding: 0;
  max-width: 480px;
  margin: 0 auto 26px;
  text-align: left;
}
.mc-quiz-result-list li {
  display: flex; align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  font-size: 14px;
  color: var(--mc-ink);
}
.mc-quiz-result-list li i {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--mc-pale);
  color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px;
  margin-top: 1px;
}
.mc-quiz-result-cta {
  display: flex; flex-wrap: wrap; gap: 12px;
  justify-content: center;
  margin-bottom: 18px;
}
.mc-quiz-restart {
  background: transparent;
  border: none;
  color: var(--mc-ink-muted);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  padding: 6px 12px;
  display: inline-flex; align-items: center; gap: 6px;
  font-family: inherit;
  transition: color .2s ease, gap .2s ease;
}
.mc-quiz-restart:hover { color: var(--mc); gap: 10px; }

/* =================================================================
 * TIMELINE INTERATTIVA (per-chi-vende: come funziona la vendita)
 * NB: condivide il prefisso .mc-timeline con il vertical timeline
 * di style_demo (linea 3302). Le regole sotto ridichiarano
 * esplicitamente le proprieta' che vanno sovrascritte (display,
 * flex-direction, width) per evitare leak da quelle vecchie.
 * ================================================================= */
.mc-timeline {
  display: block;            /* override vecchio: display:flex column */
  background: #fff;
  border-radius: 24px;
  padding: 32px 28px;
  box-shadow: 0 14px 40px rgba(58,125,44,.10);
  border: 1px solid rgba(58,125,44,.08);
  gap: 0;                     /* override vecchio: gap:12px non serve qui */
}
@media (max-width: 575px) { .mc-timeline { padding: 22px 18px; } }

/* Track: 5 step distribuiti su tutta la larghezza */
.mc-timeline-track {
  position: relative;
  display: flex;
  flex-direction: row;       /* override vecchio: flex-direction:column */
  width: auto;               /* override vecchio: width:12px */
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 36px;
  padding: 8px 8px 4px;
}
.mc-timeline-step {
  flex: 1 1 0;
  min-width: 0;
}
.mc-timeline-line {
  position: absolute;
  top: 32px;
  left: calc(8px + 10%);
  right: calc(8px + 10%);
  width: auto;               /* override vecchio: width:2px */
  margin-top: 0;             /* override vecchio: margin-top:4px */
  flex: none;                /* override vecchio: flex:1 */
  height: 3px;
  background: linear-gradient(90deg, rgba(58,125,44,.20), rgba(58,125,44,.12), rgba(58,125,44,.20));
  border-radius: 2px;
  z-index: 0;
}

.mc-timeline-step {
  position: relative;
  z-index: 1;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  transition: transform .25s ease;
}
.mc-timeline-step:hover { transform: translateY(-2px); }

.mc-timeline-num {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid rgba(58,125,44,.22);
  color: var(--mc);
  font-weight: 800;
  font-size: 18px;
  display: flex; align-items: center; justify-content: center;
  transition: all .3s ease;
}
.mc-timeline-step:hover .mc-timeline-num { border-color: var(--mc); }
.mc-timeline-step.active .mc-timeline-num {
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  border-color: var(--mc);
  color: #fff;
  box-shadow: 0 6px 18px rgba(58,125,44,.40);
  transform: scale(1.1);
}

.mc-timeline-title {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--mc-ink-muted);
  text-align: center;
  line-height: 1.35;
  letter-spacing: .01em;
  width: 100%;
  padding: 0 4px;
  transition: color .25s ease;
}
@media (max-width: 991px) {
  .mc-timeline-track { gap: 8px; padding: 4px; }
  .mc-timeline-num { width: 44px; height: 44px; font-size: 16px; }
  .mc-timeline-title { font-size: 11.5px; padding: 0 2px; }
  .mc-timeline-line { top: 28px; left: calc(4px + 10%); right: calc(4px + 10%); }
}
.mc-timeline-step.active .mc-timeline-title { color: var(--mc-dark); }

@media (max-width: 575px) {
  .mc-timeline-track {
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 8px;
    justify-content: flex-start;
    gap: 14px;
  }
  .mc-timeline-track::-webkit-scrollbar { display: none; }
  .mc-timeline-line { display: none; }
  .mc-timeline-step { flex: 0 0 auto; min-width: 90px; }
  .mc-timeline-num { width: 40px; height: 40px; font-size: 14px; }
  .mc-timeline-title { font-size: 11px; }
}

/* Pannelli di dettaglio */
.mc-timeline-panels { position: relative; }
.mc-timeline-panel {
  display: none;
  animation: mcTimelineFadeIn .35s ease-out;
}
.mc-timeline-panel.active { display: block; }
@keyframes mcTimelineFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.mc-timeline-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.mc-timeline-panel-head h3 {
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 800;
  color: var(--mc-ink);
  margin: 0;
  letter-spacing: -.4px;
}
.mc-timeline-duration {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px;
  background: var(--mc-pale);
  color: var(--mc-dark);
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .04em;
}
.mc-timeline-duration i { font-size: 12px; color: var(--mc); }

.mc-timeline-panel > p {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--mc-ink-secondary);
  margin-bottom: 22px;
}

.mc-timeline-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
@media (max-width: 768px) {
  .mc-timeline-detail-grid { grid-template-columns: 1fr; gap: 18px; }
}

.mc-timeline-detail-col {
  background: var(--mc-ghost);
  padding: 16px 18px;
  border-radius: 12px;
}
.mc-timeline-detail-label {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--mc-dark);
  margin-bottom: 10px;
}
.mc-timeline-detail-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.mc-timeline-detail-col li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  color: var(--mc-ink);
  padding: 4px 0;
  line-height: 1.45;
}
.mc-timeline-detail-col li i {
  flex-shrink: 0;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #fff;
  color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px;
  margin-top: 2px;
  box-shadow: 0 1px 3px rgba(58,125,44,.15);
}

/* =================================================================
 * COMPARATORE "Da solo vs Con Makecasa" (per-chi-vende)
 * ================================================================= */
.mc-compare {
  background: #fff;
  border-radius: 24px;
  padding: 0;
  box-shadow: 0 14px 40px rgba(58,125,44,.10);
  border: 1px solid rgba(58,125,44,.08);
  overflow: hidden;
}

/* Toggle (mostra solo su mobile) */
.mc-compare-toggle {
  display: none;
  padding: 14px 14px 0;
  gap: 8px;
}
.mc-compare-toggle button {
  flex: 1;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 12px;
  border: 1.5px solid rgba(0,0,0,.10);
  border-radius: 999px;
  background: #fff;
  font-family: inherit;
  font-size: 13px; font-weight: 700;
  color: var(--mc-ink-muted);
  cursor: pointer;
  transition: all .2s ease;
}
.mc-compare-toggle button.active {
  background: var(--mc); color: #fff;
  border-color: var(--mc);
  box-shadow: 0 4px 12px rgba(58,125,44,.25);
}
.mc-compare-toggle button.active i,
.mc-compare-toggle button.active i { color: #fff; }

/* Grid 2 colonne (desktop) */
.mc-compare-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.mc-compare-col {
  padding: 24px 26px 26px;
  display: flex; flex-direction: column;
}
.mc-compare-col-solo { background: #fff; border-right: 1px solid rgba(0,0,0,.06); }
.mc-compare-col-agenzia { background: linear-gradient(180deg, #f5f9f3 0%, #ffffff 100%); }

/* Header colonna */
.mc-compare-header {
  display: flex; align-items: center; gap: 12px;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.mc-compare-header-icon {
  width: 40px; height: 40px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.mc-compare-header-bad .mc-compare-header-icon {
  background: #fce8e8; color: #b14444;
}
.mc-compare-header-good .mc-compare-header-icon {
  background: var(--mc-pale); color: var(--mc-dark);
}
.mc-compare-header-title {
  font-size: 17px; font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: -.2px;
}

/* Righe */
.mc-compare-rows {
  display: flex; flex-direction: column;
  gap: 12px;
}
.mc-compare-row {
  display: flex; align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  transition: transform .25s ease, background .25s ease;
}
.mc-compare-row:hover { transform: translateX(2px); }
.mc-compare-row-bad {
  background: rgba(252,232,232,.45);
  border: 1px solid rgba(177,68,68,.10);
}
.mc-compare-row-bad:hover { background: rgba(252,232,232,.75); }
.mc-compare-row-good {
  background: rgba(232,243,227,.55);
  border: 1px solid rgba(58,125,44,.12);
}
.mc-compare-row-good:hover { background: rgba(232,243,227,.85); }

.mc-compare-row-icon {
  flex-shrink: 0;
  width: 24px; height: 24px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px;
  margin-top: 2px;
}
.mc-compare-row-bad .mc-compare-row-icon {
  background: #b14444; color: #fff;
}
.mc-compare-row-good .mc-compare-row-icon {
  background: var(--mc); color: #fff;
}

.mc-compare-row strong {
  display: block;
  font-size: 14px; font-weight: 700;
  color: var(--mc-ink);
  margin-bottom: 2px;
  line-height: 1.3;
}
.mc-compare-row small {
  display: block;
  font-size: 12.5px;
  color: var(--mc-ink-muted);
  line-height: 1.45;
}

/* Mobile: toggle visibile, una sola colonna alla volta */
@media (max-width: 768px) {
  .mc-compare-toggle { display: flex; }
  .mc-compare-grid { grid-template-columns: 1fr; }
  .mc-compare-col { display: none; padding: 18px 18px 22px; }
  .mc-compare-col.active { display: flex; }
  .mc-compare-col-solo { border-right: none; }
}

/* =================================================================
 * WIZARD VENDERE-CASA — 5 step + recap finale
 * ================================================================= */
.mc-wiz {
  background: #fff;
  border-radius: 24px;
  padding: 32px 36px 28px;
  box-shadow: 0 14px 40px rgba(58,125,44,.12);
  border: 1px solid rgba(58,125,44,.08);
  position: relative;
}
@media (max-width: 575px) { .mc-wiz { padding: 24px 20px 22px; } }

.mc-wiz-progress {
  height: 4px;
  width: 100%;
  background: rgba(58,125,44,.10);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 6px;
}
.mc-wiz-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--mc), var(--mc-dark));
  transition: width .4s cubic-bezier(.4,0,.2,1);
}
.mc-wiz-step-counter {
  font-size: 11px; font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mc-ink-muted);
  margin-bottom: 22px;
}

.mc-wiz-step { display: none; animation: mcWizFadeIn .35s ease-out; }
.mc-wiz-step.active { display: block; }
@keyframes mcWizFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.mc-wiz-icon {
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--mc-pale);
  color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px;
  margin-bottom: 14px;
  box-shadow: 0 4px 12px rgba(58,125,44,.15);
}
.mc-wiz-question {
  font-size: clamp(20px, 2.6vw, 28px);
  font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 6px;
  letter-spacing: -.4px;
  line-height: 1.2;
}
.mc-wiz-hint {
  font-size: 13.5px;
  color: var(--mc-ink-muted);
  margin: 0 0 22px;
}

/* Card grid (radio cards visuali) */
.mc-wiz-grid {
  display: grid;
  gap: 12px;
}
.mc-wiz-grid-2 { grid-template-columns: repeat(2, 1fr); }
.mc-wiz-grid-3 { grid-template-columns: repeat(3, 1fr); }
.mc-wiz-grid-5 { grid-template-columns: repeat(5, 1fr); gap: 8px; }
@media (max-width: 768px) {
  .mc-wiz-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .mc-wiz-grid-2 { grid-template-columns: 1fr; }
  .mc-wiz-grid-5 { grid-template-columns: repeat(5, 1fr); }
}

.mc-wiz-card {
  display: block;
  cursor: pointer;
  margin: 0;
  position: relative;
}
.mc-wiz-card input { position: absolute; opacity: 0; pointer-events: none; }
.mc-wiz-card-inner {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 8px;
  padding: 18px 14px;
  background: #fff;
  border: 1.5px solid rgba(58,125,44,.12);
  border-radius: 14px;
  transition: all .2s ease;
  text-align: center;
  min-height: 110px;
}
.mc-wiz-card-inner i { font-size: 26px; color: var(--mc); transition: color .2s ease; }
.mc-wiz-card-inner span {
  font-size: 13.5px; font-weight: 700;
  color: var(--mc-ink);
  letter-spacing: -.1px;
}
.mc-wiz-card:hover .mc-wiz-card-inner {
  border-color: var(--mc);
  background: var(--mc-ghost);
  transform: translateY(-2px);
}
.mc-wiz-card.selected .mc-wiz-card-inner,
.mc-wiz-card input:checked ~ .mc-wiz-card-inner {
  background: var(--mc);
  border-color: var(--mc);
  box-shadow: 0 8px 22px rgba(58,125,44,.30);
  transform: translateY(-2px);
}
.mc-wiz-card.selected .mc-wiz-card-inner i,
.mc-wiz-card.selected .mc-wiz-card-inner span,
.mc-wiz-card input:checked ~ .mc-wiz-card-inner i,
.mc-wiz-card input:checked ~ .mc-wiz-card-inner span { color: #fff; }

/* Card variante row (label + descrizione) */
.mc-wiz-card-row .mc-wiz-card-inner {
  flex-direction: row;
  align-items: center;
  text-align: left;
  padding: 14px 16px;
  min-height: auto;
  gap: 14px;
}
.mc-wiz-card-row .mc-wiz-card-inner i {
  flex-shrink: 0;
  width: 42px; height: 42px;
  border-radius: 10px;
  background: var(--mc-pale);
  color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 18px;
  margin: 0;
  transition: background .2s ease, color .2s ease;
}
.mc-wiz-card-row.selected .mc-wiz-card-inner i,
.mc-wiz-card-row input:checked ~ .mc-wiz-card-inner i {
  background: rgba(255,255,255,.18);
  color: #fff;
}
.mc-wiz-card-row .mc-wiz-card-inner > div { flex: 1; min-width: 0; }
.mc-wiz-card-row .mc-wiz-card-inner strong {
  display: block;
  font-size: 14.5px; font-weight: 700;
  color: var(--mc-ink);
  margin-bottom: 2px;
  line-height: 1.3;
}
.mc-wiz-card-row .mc-wiz-card-inner small {
  display: block;
  font-size: 12.5px;
  color: var(--mc-ink-muted);
  line-height: 1.4;
}
.mc-wiz-card-row.selected .mc-wiz-card-inner strong,
.mc-wiz-card-row.selected .mc-wiz-card-inner small,
.mc-wiz-card-row input:checked ~ .mc-wiz-card-inner strong,
.mc-wiz-card-row input:checked ~ .mc-wiz-card-inner small { color: #fff; }
.mc-wiz-card-row.selected .mc-wiz-card-inner small,
.mc-wiz-card-row input:checked ~ .mc-wiz-card-inner small { opacity: .92; }

/* Card variante sm (numeri locali compatti) */
.mc-wiz-card-sm .mc-wiz-card-inner { padding: 12px 6px; min-height: 80px; gap: 4px; }
.mc-wiz-num {
  font-size: 22px; font-weight: 900;
  color: var(--mc); letter-spacing: -.5px;
  transition: color .2s ease;
}
.mc-wiz-card-sm .mc-wiz-card-inner span:not(.mc-wiz-num) { font-size: 11px; }
.mc-wiz-card-sm.selected .mc-wiz-num,
.mc-wiz-card-sm input:checked ~ .mc-wiz-card-inner .mc-wiz-num { color: #fff; }

/* Slider block */
.mc-wiz-slider-block {
  margin-bottom: 24px;
  padding: 18px 20px;
  background: var(--mc-ghost);
  border-radius: 14px;
}
.mc-wiz-slider-row {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 8px;
}
.mc-wiz-slider-label {
  font-size: 13px; font-weight: 700;
  color: var(--mc-ink);
  letter-spacing: -.1px;
}
.mc-wiz-slider-value {
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 900;
  color: var(--mc-dark);
  letter-spacing: -.5px;
}

/* Inputs */
.mc-wiz-fields {
  display: flex; flex-direction: column; gap: 10px;
}
.mc-wiz-fields-2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
@media (max-width: 575px) { .mc-wiz-fields-2 { grid-template-columns: 1fr; } }
.mc-wiz-input {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid rgba(58,125,44,.18);
  border-radius: 12px;
  font-size: 15px;
  font-family: inherit;
  color: var(--mc-ink);
  background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.mc-wiz-input:focus {
  outline: none;
  border-color: var(--mc);
  box-shadow: 0 0 0 3px rgba(58,125,44,.12);
}
textarea.mc-wiz-input { resize: vertical; min-height: 88px; }

.mc-wiz-privacy {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13px;
  color: var(--mc-ink-muted);
  cursor: pointer;
  margin-top: 14px;
  line-height: 1.4;
}
.mc-wiz-privacy input { margin-top: 2px; flex-shrink: 0; }
.mc-wiz-privacy a { color: var(--mc); font-weight: 600; }

/* Recap card (step 5) */
.mc-wiz-recap {
  margin-bottom: 22px;
  padding: 18px 20px;
  background: linear-gradient(135deg, var(--mc-pale) 0%, #ffffff 100%);
  border: 1px solid rgba(58,125,44,.16);
  border-radius: 14px;
}
.mc-wiz-recap-title {
  font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc-dark);
  margin-bottom: 12px;
}
.mc-wiz-recap-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 575px) { .mc-wiz-recap-grid { grid-template-columns: 1fr; } }
.mc-wiz-recap-item {
  display: flex; flex-direction: column;
}
.mc-wiz-recap-label {
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--mc-ink-muted);
  margin-bottom: 2px;
}
.mc-wiz-recap-value {
  font-size: 14px; font-weight: 700;
  color: var(--mc-ink);
}

/* Nav */
.mc-wiz-nav {
  display: flex; justify-content: space-between;
  gap: 12px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.mc-wiz-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px;
  border-radius: 999px;
  font-size: 14px; font-weight: 700;
  font-family: inherit;
  border: none;
  cursor: pointer;
  transition: all .2s ease;
}
.mc-wiz-btn-back {
  background: transparent;
  color: var(--mc-ink-muted);
  border: 1.5px solid rgba(0,0,0,.10);
}
.mc-wiz-btn-back:hover:not(:disabled) {
  background: rgba(0,0,0,.04);
  color: var(--mc-ink);
}
.mc-wiz-btn-back:disabled { opacity: .4; cursor: not-allowed; }
.mc-wiz-btn-next, .mc-wiz-btn-submit {
  background: var(--mc);
  color: #fff;
  box-shadow: 0 6px 16px rgba(58,125,44,.25);
}
.mc-wiz-btn-next:hover:not(:disabled),
.mc-wiz-btn-submit:hover:not(:disabled) {
  background: var(--mc-dark);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(58,125,44,.32);
}
.mc-wiz-btn-next:disabled, .mc-wiz-btn-submit:disabled {
  opacity: .45; cursor: not-allowed;
  box-shadow: none;
}

/* Trust strip sotto al wizard */
.mc-wiz-trust {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 14px 28px;
}
.mc-wiz-trust-item {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600;
  color: var(--mc-ink-muted);
}
.mc-wiz-trust-item i { color: var(--mc); font-size: 14px; }

/* =================================================================
 * QUICK INFO STRIP (contatti — orari + canali)
 * ================================================================= */
.mc-quick-info {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  padding: 22px 26px;
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(58,125,44,.08);
  box-shadow: 0 6px 24px rgba(58,125,44,.06);
}
.mc-quick-info-item {
  display: flex; align-items: center; gap: 12px;
  min-width: 0;
}
.mc-quick-info-icon {
  flex-shrink: 0;
  width: 42px; height: 42px;
  border-radius: 12px;
  background: var(--mc-pale);
  color: var(--mc);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.mc-quick-info-item strong {
  display: block;
  font-size: 14px; font-weight: 700;
  color: var(--mc-ink);
  letter-spacing: -.1px;
  line-height: 1.2;
}
.mc-quick-info-item small {
  display: block;
  font-size: 12px;
  color: var(--mc-ink-muted);
  margin-top: 2px;
}
@media (max-width: 991px) {
  .mc-quick-info { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .mc-quick-info { grid-template-columns: 1fr; padding: 18px 20px; }
}

/* =================================================================
 * CONTACT CARD (contatti — wrapper form)
 * ================================================================= */
.mc-contact-card {
  background: #fff;
  border-radius: 22px;
  padding: 32px 36px;
  box-shadow: 0 14px 40px rgba(58,125,44,.10);
  border: 1px solid rgba(58,125,44,.08);
}
@media (max-width: 575px) {
  .mc-contact-card { padding: 24px 20px; border-radius: 18px; }
}

/* =================================================================
 * NEWSLETTER CARD (contatti — strip email)
 * ================================================================= */
.mc-newsletter-card {
  background: linear-gradient(135deg, var(--mc-pale) 0%, #ffffff 100%);
  border-radius: 18px;
  padding: 22px 26px;
  border: 1px solid rgba(58,125,44,.12);
  box-shadow: 0 6px 24px rgba(58,125,44,.08);
}
.mc-newsletter-icon {
  flex-shrink: 0;
  width: 48px; height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  box-shadow: 0 6px 16px rgba(58,125,44,.28);
}
.mc-newsletter-title {
  font-size: 17px; font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 2px;
  letter-spacing: -.2px;
}
.mc-newsletter-text {
  font-size: 13px;
  color: var(--mc-ink-muted);
  margin: 0;
  line-height: 1.4;
}
.mc-newsletter-form {
  display: flex; align-items: stretch;
  border: 1.5px solid rgba(58,125,44,.20);
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
  flex-shrink: 0;
  width: 100%;
  max-width: 360px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.mc-newsletter-form:focus-within {
  border-color: var(--mc);
  box-shadow: 0 0 0 3px rgba(58,125,44,.12);
}
.mc-newsletter-form input[type=email] {
  flex: 1;
  border: none;
  padding: 11px 18px;
  font-size: 14px;
  font-family: inherit;
  color: var(--mc-ink);
  background: transparent;
  outline: none;
}
.mc-newsletter-form button {
  flex-shrink: 0;
  width: 44px;
  border: none;
  background: var(--mc);
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s ease;
}
.mc-newsletter-form button:hover { background: var(--mc-dark); }
@media (max-width: 575px) {
  .mc-newsletter-form { max-width: none; }
}

/* =================================================================
 * SEDE FINDER (contatti — geolocation + comune lookup)
 * ================================================================= */
.mc-finder {
  background: linear-gradient(135deg, #ffffff 0%, var(--mc-pale) 100%);
  border-radius: 22px;
  padding: 28px 32px;
  border: 1px solid rgba(58,125,44,.12);
  box-shadow: 0 12px 36px rgba(58,125,44,.10);
}
@media (max-width: 575px) { .mc-finder { padding: 22px 20px; border-radius: 18px; } }

.mc-finder-head {
  display: flex; align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
}
.mc-finder-icon {
  flex-shrink: 0;
  width: 52px; height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  box-shadow: 0 6px 18px rgba(58,125,44,.30);
}
.mc-finder-title {
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 800;
  color: var(--mc-ink);
  margin: 6px 0 4px;
  letter-spacing: -.3px;
}
.mc-finder-text {
  font-size: 13.5px;
  color: var(--mc-ink-muted);
  margin: 0;
  line-height: 1.5;
}

.mc-finder-controls {
  display: flex; align-items: stretch;
  gap: 12px;
  flex-wrap: wrap;
}
.mc-finder-or {
  font-size: 12px; font-weight: 600;
  color: var(--mc-ink-muted);
  text-transform: uppercase; letter-spacing: .14em;
  display: flex; align-items: center;
  padding: 0 4px;
}
.mc-finder-geo-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px;
  background: var(--mc);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 14px; font-weight: 700;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(58,125,44,.25);
  transition: all .2s ease;
}
.mc-finder-geo-btn:hover {
  background: var(--mc-dark);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(58,125,44,.32);
}
.mc-finder-geo-btn.loading { opacity: .7; cursor: wait; }
.mc-finder-geo-btn.loading::after {
  content: '';
  width: 14px; height: 14px;
  border: 2px solid #fff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: mcCalcSpin .8s linear infinite;
  margin-left: 6px;
}

.mc-finder-input-group {
  display: flex; align-items: stretch;
  flex: 1;
  min-width: 240px;
  border: 1.5px solid rgba(58,125,44,.20);
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.mc-finder-input-group:focus-within {
  border-color: var(--mc);
  box-shadow: 0 0 0 3px rgba(58,125,44,.12);
}
.mc-finder-input {
  flex: 1;
  border: none;
  padding: 11px 18px;
  font-size: 14px;
  font-family: inherit;
  color: var(--mc-ink);
  background: transparent;
  outline: none;
}
.mc-finder-search-btn {
  flex-shrink: 0;
  width: 44px;
  border: none;
  background: var(--mc);
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s ease;
}
.mc-finder-search-btn:hover { background: var(--mc-dark); }

@media (max-width: 575px) {
  .mc-finder-or { width: 100%; justify-content: center; padding: 4px 0; }
  .mc-finder-geo-btn { width: 100%; justify-content: center; }
  .mc-finder-input-group { width: 100%; }
}

/* Result card */
.mc-finder-result {
  margin-top: 24px;
  animation: mcFinderReveal .4s cubic-bezier(.4,0,.2,1);
}
@keyframes mcFinderReveal {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.mc-finder-result-card {
  background: #fff;
  border-radius: 16px;
  padding: 22px 24px;
  border: 2px solid var(--mc);
  box-shadow: 0 12px 32px rgba(58,125,44,.20);
}
.mc-finder-result-head {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(58,125,44,.12);
}
.mc-finder-result-label {
  font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc-dark);
}
.mc-finder-distance {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px;
  background: var(--mc);
  color: #fff;
  border-radius: 999px;
  font-size: 12px; font-weight: 700;
}
.mc-finder-distance i { font-size: 12px; }
.mc-finder-distance-match {
  background: var(--mc-pale);
  color: var(--mc-dark);
}
.mc-finder-distance-match i { color: var(--mc); }

.mc-finder-result-name {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 12px;
  letter-spacing: -.3px;
}
.mc-finder-result-meta {
  list-style: none; padding: 0; margin: 0 0 18px;
}
.mc-finder-result-meta li {
  display: flex; align-items: flex-start;
  gap: 10px;
  padding: 5px 0;
  font-size: 14px;
  color: var(--mc-ink);
  line-height: 1.45;
}
.mc-finder-result-meta li i {
  flex-shrink: 0;
  width: 18px;
  color: var(--mc);
  font-size: 14px;
  margin-top: 2px;
}
.mc-finder-result-meta a {
  color: var(--mc-ink);
  text-decoration: none;
  font-weight: 600;
}
.mc-finder-result-meta a:hover { color: var(--mc); }
.mc-finder-result-cta {
  display: flex; flex-wrap: wrap; gap: 10px;
}

.mc-finder-empty {
  margin-top: 16px;
  padding: 14px 18px;
  background: rgba(252,232,232,.5);
  border-radius: 12px;
  font-size: 13.5px;
  color: #8b3a3a;
  display: flex; align-items: center; gap: 10px;
}
.mc-finder-empty i { font-size: 16px; flex-shrink: 0; }

/* =================================================================
 * LIVE STATUS BOARD (contatti — sedi aperte/chiuse adesso)
 * ================================================================= */
.mc-status {
  background: linear-gradient(135deg, #ffffff 0%, var(--mc-pale) 100%);
  border-radius: 22px;
  padding: 28px 32px;
  border: 1px solid rgba(58,125,44,.12);
  box-shadow: 0 12px 36px rgba(58,125,44,.10);
}
@media (max-width: 575px) { .mc-status { padding: 22px 20px; border-radius: 18px; } }

.mc-status-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(58,125,44,.10);
}
.mc-status-title {
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 800;
  color: var(--mc-ink);
  margin: 6px 0 8px;
  letter-spacing: -.3px;
}
.mc-status-subtitle {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-ink-muted);
  margin: 0;
}
.mc-status-subtitle-open { color: var(--mc-dark); }
.mc-status-subtitle-closed { color: #8b3a3a; }

.mc-status-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--mc-ink-muted);
  position: relative;
  flex-shrink: 0;
}
.mc-status-subtitle-open .mc-status-dot { background: var(--mc); }
.mc-status-subtitle-open .mc-status-dot::after {
  content: ''; position: absolute; inset: 0;
  border-radius: 50%;
  background: var(--mc);
  animation: mcStatusPulse 1.6s ease-out infinite;
}
.mc-status-subtitle-closed .mc-status-dot { background: #c14e4e; }
@keyframes mcStatusPulse {
  0% { transform: scale(1); opacity: .6; }
  100% { transform: scale(2.6); opacity: 0; }
}

.mc-status-clock {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px;
  background: #fff;
  border: 1px solid rgba(58,125,44,.15);
  border-radius: 999px;
  font-size: 14px; font-weight: 700;
  color: var(--mc-ink);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
.mc-status-clock i { color: var(--mc); font-size: 14px; }

/* Grid 6 sedi */
.mc-status-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 991px) { .mc-status-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .mc-status-grid { grid-template-columns: 1fr; } }

.mc-status-card {
  background: #fff;
  border-radius: 14px;
  padding: 16px 18px;
  border: 1.5px solid rgba(58,125,44,.10);
  display: flex; flex-direction: column;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.mc-status-card.open {
  border-color: rgba(58,125,44,.30);
  box-shadow: 0 4px 14px rgba(58,125,44,.08);
}
.mc-status-card.closed {
  background: rgba(255,255,255,.65);
  opacity: .85;
}
.mc-status-card.open:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(58,125,44,.14); }

.mc-status-card-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.mc-status-pin {
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--mc-ink-muted);
  position: relative;
  flex-shrink: 0;
}
.mc-status-card.open .mc-status-pin { background: var(--mc); }
.mc-status-card.open .mc-status-pin::after {
  content: ''; position: absolute; inset: 0;
  border-radius: 50%;
  background: var(--mc);
  animation: mcStatusPulse 1.8s ease-out infinite;
  animation-delay: -1s; /* sfasa dal pulse del subtitle */
}
.mc-status-card.closed .mc-status-pin { background: #c14e4e; }

.mc-status-state {
  font-size: 10.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--mc-ghost);
  color: var(--mc-ink-muted);
}
.mc-status-card.open .mc-status-state {
  background: var(--mc-pale); color: var(--mc-dark);
}
.mc-status-card.closed .mc-status-state {
  background: #fce8e8; color: #8b3a3a;
}

.mc-status-card-name {
  font-size: 15px; font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 4px;
  letter-spacing: -.2px;
  line-height: 1.25;
}
.mc-status-card-meta {
  font-size: 12.5px;
  color: var(--mc-ink-muted);
  margin-bottom: 10px;
}
.mc-status-card-meta i { color: var(--mc); font-size: 12px; margin-right: 2px; }
.mc-status-card-info {
  font-size: 12.5px;
  color: var(--mc-ink-secondary);
  margin-bottom: 12px;
  font-style: italic;
}
.mc-status-card-cta {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--mc);
  color: #fff !important;
  font-size: 13px; font-weight: 700;
  text-decoration: none !important;
  transition: background .2s ease, transform .2s ease;
  align-self: flex-start;
}
.mc-status-card-cta:hover { background: var(--mc-dark); transform: translateY(-1px); }
.mc-status-card-cta i { font-size: 12px; }

.mc-status-foot {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(58,125,44,.08);
  font-size: 12px;
  color: var(--mc-ink-muted);
  display: flex; align-items: center; gap: 8px;
  justify-content: center;
}
.mc-status-foot-pulse {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--mc);
  animation: mcStatusPulse 1.8s ease-out infinite;
  position: relative;
}

/* =================================================================
 * FILTER BAR + CHIPS (cantieri lista, riusabile)
 * ================================================================= */
.mc-filter-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(58,125,44,.08);
  box-shadow: 0 4px 16px rgba(58,125,44,.06);
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.mc-filter-bar-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc-ink-muted);
  flex-shrink: 0;
}
.mc-filter-bar-label i { color: var(--mc); font-size: 13px; }

.mc-filter-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
  flex: 1;
  min-width: 0;
}
.mc-filter-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px;
  background: var(--mc-ghost);
  color: var(--mc-ink);
  border: 1.5px solid transparent;
  border-radius: 999px;
  font-size: 13px; font-weight: 700;
  text-decoration: none;
  transition: all .2s ease;
}
.mc-filter-chip:hover {
  background: var(--mc-pale);
  color: var(--mc-dark);
  transform: translateY(-1px);
}
.mc-filter-chip.active {
  background: var(--mc);
  color: #fff;
  border-color: var(--mc);
  box-shadow: 0 6px 16px rgba(58,125,44,.28);
}
.mc-filter-chip-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px;
  padding: 1px 7px;
  border-radius: 999px;
  background: rgba(0,0,0,.08);
  font-size: 11px; font-weight: 800;
  color: var(--mc-ink-muted);
}
.mc-filter-chip.active .mc-filter-chip-count {
  background: rgba(255,255,255,.22);
  color: #fff;
}

.mc-filter-chip-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.mc-filter-chip-dot-pulse {
  background: var(--mc);
  position: relative;
}
.mc-filter-chip-dot-pulse::after {
  content: ''; position: absolute; inset: 0;
  border-radius: 50%;
  background: var(--mc);
  animation: mcStatusPulse 1.8s ease-out infinite;
}
.mc-filter-chip.active .mc-filter-chip-dot-pulse,
.mc-filter-chip.active .mc-filter-chip-dot-pulse::after { background: #fff; }
.mc-filter-chip-dot-done { background: var(--mc-dark); }
.mc-filter-chip.active .mc-filter-chip-dot-done { background: #fff; }

/* =================================================================
 * CANTIERE CARD v2 (lista cantieri)
 * Card cliccabile con progress bar consegna + badge stato + units count
 * ================================================================= */
.mc-cantiere-card-v2 {
  display: flex; flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(58,125,44,.08);
  box-shadow: 0 6px 22px rgba(0,0,0,.06);
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.mc-cantiere-card-v2:hover {
  transform: translateY(-4px);
  border-color: rgba(58,125,44,.20);
  box-shadow: 0 18px 44px rgba(58,125,44,.16);
  color: inherit;
}

.mc-cantiere-card-v2-media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--mc-pale);
  overflow: hidden;
}
.mc-cantiere-card-v2-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}
.mc-cantiere-card-v2:hover .mc-cantiere-card-v2-media img { transform: scale(1.06); }
.mc-cantiere-card-v2-noimg {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(circle at 25% 30%, rgba(255,255,255,.5), transparent 55%),
    linear-gradient(135deg, var(--mc-pale) 0%, var(--mc-light) 100%);
}
.mc-cantiere-card-v2-noimg i { font-size: 60px; color: var(--mc); opacity: .8; }

/* Badge stato in alto a sinistra */
.mc-cantiere-card-v2-badge {
  position: absolute;
  top: 12px; left: 12px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .12em;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 8px rgba(0,0,0,.10);
}
.mc-cantiere-card-v2-badge-progress {
  background: rgba(255,255,255,.95);
  color: var(--mc-dark);
}
.mc-cantiere-card-v2-badge-done {
  background: var(--mc);
  color: #fff;
}
.mc-cantiere-card-v2-badge-done i { font-size: 11px; }
.mc-cantiere-card-v2-badge-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--mc);
  position: relative;
}
.mc-cantiere-card-v2-badge-dot::after {
  content: ''; position: absolute; inset: 0;
  border-radius: 50%;
  background: var(--mc);
  animation: mcStatusPulse 1.8s ease-out infinite;
}

/* Pill "X unità" in alto a destra */
.mc-cantiere-card-v2-units {
  position: absolute;
  top: 12px; right: 12px;
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 11px;
  background: rgba(0,0,0,.65);
  color: #fff;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 999px;
  font-size: 11.5px; font-weight: 700;
  letter-spacing: .04em;
}
.mc-cantiere-card-v2-units i { font-size: 11px; }

/* Body */
.mc-cantiere-card-v2-body {
  padding: 18px 20px 20px;
  flex: 1;
  display: flex; flex-direction: column;
}
.mc-cantiere-card-v2-title {
  font-size: 17px; font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 8px;
  letter-spacing: -.3px;
  line-height: 1.25;
}
.mc-cantiere-card-v2-loc {
  display: flex; align-items: flex-start; gap: 6px;
  font-size: 13px;
  color: var(--mc-ink-muted);
  margin: 0 0 14px;
  line-height: 1.4;
}
.mc-cantiere-card-v2-loc i {
  color: var(--mc); font-size: 13px;
  margin-top: 2px;
  flex-shrink: 0;
}

/* Progress bar */
.mc-cantiere-card-v2-progress {
  margin-bottom: 14px;
}
.mc-cantiere-card-v2-progress-row {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 6px;
}
.mc-cantiere-card-v2-progress-label {
  font-size: 11.5px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--mc-ink-muted);
}
.mc-cantiere-card-v2-progress-pct {
  font-size: 14px; font-weight: 800;
  color: var(--mc-dark);
  letter-spacing: -.2px;
}
.mc-cantiere-card-v2-progress-bar {
  height: 6px;
  background: rgba(58,125,44,.10);
  border-radius: 3px;
  overflow: hidden;
}
.mc-cantiere-card-v2-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--mc), var(--mc-dark));
  border-radius: 3px;
  transition: width 1.2s cubic-bezier(.4,0,.2,1);
}

/* Footer card */
.mc-cantiere-card-v2-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.mc-cantiere-card-v2-tag {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 700;
  color: var(--mc-ink-muted);
  letter-spacing: .04em;
}
.mc-cantiere-card-v2-tag i { color: var(--mc); font-size: 11px; }
.mc-cantiere-card-v2-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 800;
  color: var(--mc);
  letter-spacing: .02em;
  transition: gap .25s ease;
}
.mc-cantiere-card-v2-cta i { font-size: 12px; }
.mc-cantiere-card-v2:hover .mc-cantiere-card-v2-cta { gap: 10px; color: var(--mc-dark); }

/* =================================================================
 * BANNER HERO — verde scuro full-width (variante per /cantieri/)
 * Distinto dal mc-page-hero (pale + cluster) per evitare ripetizione
 * ================================================================= */
.mc-banner-hero {
  position: relative;
  background: linear-gradient(135deg, #2a5a1f 0%, var(--mc) 45%, var(--mc-dark) 100%);
  color: #fff;
  padding: 80px 0 100px;
  overflow: hidden;
  margin-bottom: -40px;  /* fa scivolare la lista sotto il banner */
}
.mc-banner-hero-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 600px 380px at 80% 20%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(ellipse 500px 320px at 10% 90%, rgba(255,255,255,.06), transparent 60%);
  pointer-events: none;
}
/* Pattern dot subtle sopra il bg */
.mc-banner-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 28px 28px;
  opacity: .5;
  pointer-events: none;
  mask-image: linear-gradient(180deg, transparent 0%, black 50%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, black 50%, transparent 100%);
}

.mc-banner-hero-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
}
.mc-banner-hero-tag {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  color: #fff;
  font-size: 11.5px; font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 20px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.mc-banner-hero-tag-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #fff;
  position: relative;
}
.mc-banner-hero-tag-dot::after {
  content: ''; position: absolute; inset: 0;
  border-radius: 50%;
  background: #fff;
  animation: mcStatusPulse 1.8s ease-out infinite;
}

.mc-banner-hero-title {
  font-size: clamp(38px, 6vw, 68px);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -2px;
  color: #fff;
  margin: 0 0 18px;
}
.mc-banner-hero-accent {
  background: linear-gradient(135deg, #ffffff 0%, #c8e0bd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-style: italic;
}

.mc-banner-hero-subtitle {
  font-size: clamp(15px, 1.6vw, 18px);
  line-height: 1.6;
  color: rgba(255,255,255,.88);
  max-width: 600px;
  margin: 0;
}

@media (max-width: 768px) {
  .mc-banner-hero { padding: 56px 0 80px; }
}

/* =================================================================
 * LIST HERO — header editoriale minimale per pagine di lista
 * Niente background colorato, niente cluster icone: solo tipografia
 * ================================================================= */
.mc-list-hero {
  padding: 64px 0 32px;
  background: #fff;
  border-bottom: 1px solid rgba(58,125,44,.08);
}
.mc-list-hero-inner { max-width: 740px; }
.mc-list-hero-title {
  font-size: clamp(34px, 4.6vw, 52px);
  font-weight: 900;
  letter-spacing: -1.5px;
  color: var(--mc-ink);
  margin: 12px 0 14px;
  line-height: 1.08;
}
.mc-list-hero-subtitle {
  font-size: clamp(15px, 1.5vw, 18px);
  color: var(--mc-ink-secondary);
  line-height: 1.6;
  margin: 0;
}
@media (max-width: 768px) {
  .mc-list-hero { padding: 48px 0 24px; }
}

/* =================================================================
 * CANTIERI SHOWCASE HERO — title + photo mosaic dei cantieri reali
 * ================================================================= */
.mc-cantieri-showcase {
  position: relative;
  padding: 72px 0 88px;
  overflow: hidden;
  background: linear-gradient(160deg, #f5f9f3 0%, #ffffff 70%);
  border-bottom: 1px solid rgba(58,125,44,.08);
}
.mc-cantieri-showcase-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 600px 380px at 90% 10%, rgba(58,125,44,.08), transparent 60%),
    radial-gradient(ellipse 400px 300px at 5% 90%, rgba(184,221,176,.18), transparent 60%);
  pointer-events: none;
}
.mc-cantieri-showcase > .container { position: relative; z-index: 1; }

.mc-cantieri-showcase-title {
  font-size: clamp(38px, 5.6vw, 64px);
  font-weight: 900;
  letter-spacing: -2px;
  line-height: 1.05;
  color: var(--mc-ink);
  margin: 14px 0 18px;
}
.mc-cantieri-showcase-accent {
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-style: italic;
}
.mc-cantieri-showcase-subtitle {
  font-size: clamp(15px, 1.6vw, 18px);
  color: var(--mc-ink-secondary);
  line-height: 1.65;
  margin: 0 0 22px;
  max-width: 480px;
}
.mc-cantieri-showcase-scroll {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc);
  text-decoration: none;
  padding: 8px 0;
  border-bottom: 2px solid transparent;
  transition: gap .25s ease, border-color .25s ease;
}
.mc-cantieri-showcase-scroll:hover {
  color: var(--mc-dark);
  gap: 12px;
  border-bottom-color: var(--mc);
}
.mc-cantieri-showcase-scroll i {
  font-size: 14px;
  animation: mcScrollBounce 2s ease-in-out infinite;
}
@keyframes mcScrollBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(3px); }
}

/* Mosaic: big main + 3 thumbs verticali */
.mc-cantieri-showcase-mosaic {
  display: grid;
  grid-template-columns: 2.4fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  gap: 14px;
  height: 480px;
}
.mc-cantieri-mosaic-main {
  grid-column: 1;
  grid-row: 1 / span 3;
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 44px rgba(58,125,44,.18);
  text-decoration: none;
  transform: translateY(0);
  transition: transform .4s cubic-bezier(.4,0,.2,1), box-shadow .4s ease;
}
.mc-cantieri-mosaic-main:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px rgba(58,125,44,.26);
}
.mc-cantieri-mosaic-main img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .8s cubic-bezier(.4,0,.2,1);
}
.mc-cantieri-mosaic-main:hover img { transform: scale(1.05); }
.mc-cantieri-mosaic-main-overlay {
  position: absolute;
  inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 22px 26px;
  background: linear-gradient(180deg, transparent 0%, transparent 50%, rgba(0,0,0,.10) 65%, rgba(0,0,0,.78) 100%);
  color: #fff;
}

.mc-cantieri-mosaic-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px;
  background: rgba(255,255,255,.95);
  color: var(--mc-dark);
  border-radius: 999px;
  font-size: 10.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  align-self: flex-start;
  margin-bottom: 12px;
  backdrop-filter: blur(8px);
}
.mc-cantieri-mosaic-badge-done {
  background: var(--mc); color: #fff;
}
.mc-cantieri-mosaic-badge-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--mc);
  position: relative;
}
.mc-cantieri-mosaic-badge-dot::after {
  content: ''; position: absolute; inset: 0;
  border-radius: 50%;
  background: var(--mc);
  animation: mcStatusPulse 1.8s ease-out infinite;
}

.mc-cantieri-mosaic-main-name {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 800;
  letter-spacing: -.4px;
  line-height: 1.15;
  margin-bottom: 6px;
}
.mc-cantieri-mosaic-main-name i {
  flex-shrink: 0;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: var(--mc-dark);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  transition: transform .3s ease, background .3s ease;
}
.mc-cantieri-mosaic-main:hover .mc-cantieri-mosaic-main-name i {
  background: var(--mc);
  color: #fff;
  transform: translateX(3px);
}
.mc-cantieri-mosaic-main-loc {
  font-size: 13.5px;
  font-weight: 600;
  opacity: .92;
  display: inline-flex; align-items: center; gap: 6px;
}

/* Thumbs verticali a destra */
.mc-cantieri-mosaic-thumbs {
  grid-column: 2;
  grid-row: 1 / span 3;
  display: grid;
  grid-template-rows: repeat(auto-fit, minmax(0, 1fr));
  gap: 14px;
}
.mc-cantieri-mosaic-thumb {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(58,125,44,.10);
  transition: transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease;
}
.mc-cantieri-mosaic-thumb:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 14px 32px rgba(58,125,44,.22);
}
.mc-cantieri-mosaic-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}
.mc-cantieri-mosaic-thumb:hover img { transform: scale(1.06); }
.mc-cantieri-mosaic-thumb-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.78) 100%);
  display: flex; align-items: flex-end;
  padding: 12px 14px;
  color: #fff;
  font-size: 12.5px; font-weight: 700;
  letter-spacing: -.1px;
  line-height: 1.25;
}

/* Overlay "+N altri" sull'ultimo thumb quando ci sono pi&ugrave; cantieri di quelli visibili */
.mc-cantieri-mosaic-thumb-more {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(58,125,44,.92), rgba(42,90,31,.94));
  color: #fff;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 2px;
  text-align: center;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  pointer-events: none;
}
.mc-cantieri-mosaic-thumb-more-num {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -1px;
}
.mc-cantieri-mosaic-thumb-more-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  opacity: .9;
}

/* Scroll-margin per anchor "Sfoglia tutti" (compensa navbar sticky) */
#cantieri-grid {
  scroll-margin-top: 90px;
}

/* Layouts adattivi: se ci sono <4 elementi cambia struttura */
.mc-cantieri-mosaic-1 {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}
.mc-cantieri-mosaic-1 .mc-cantieri-mosaic-thumbs { display: none; }
.mc-cantieri-mosaic-2 .mc-cantieri-mosaic-thumbs { grid-template-rows: 1fr; }
.mc-cantieri-mosaic-3 .mc-cantieri-mosaic-thumbs { grid-template-rows: repeat(2, 1fr); }

@media (max-width: 991px) {
  .mc-cantieri-showcase { padding: 56px 0 64px; }
  .mc-cantieri-showcase-mosaic { height: 380px; }
}
@media (max-width: 767px) {
  .mc-cantieri-showcase-mosaic {
    height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: 240px;
  }
  .mc-cantieri-mosaic-main {
    grid-column: 1;
    grid-row: 1;
  }
  .mc-cantieri-mosaic-thumbs {
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 90px;
    gap: 10px;
  }
}
@media (max-width: 575px) {
  .mc-cantieri-showcase-mosaic { grid-template-rows: 220px; }
  .mc-cantieri-mosaic-thumbs { grid-template-rows: 80px; }
}

/* =================================================================
 * CANTIERE DETAIL — pagina /cantieri/<slug>/
 * Layout listing: header pulito + body bicol con sidebar sticky
 * ================================================================= */

/* Header pulito (no bg image) */
.mc-detail-header {
  background: #fff;
  padding: 28px 0 32px;
  border-bottom: 1px solid rgba(58,125,44,.10);
}

/* Modifier per pagine istituzionali (sede): stesso stile gradient
   + cerchi decorativi di .mc-page-hero (chi-siamo). */
.mc-detail-header.mc-detail-header-soft {
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, var(--mc-pale) 0%, #ffffff 65%);
  border-bottom-color: rgba(58,125,44,.10);
}
.mc-detail-header.mc-detail-header-soft::before {
  content: '';
  position: absolute;
  top: -120px; right: -140px;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.14), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.mc-detail-header.mc-detail-header-soft::after {
  content: '';
  position: absolute;
  bottom: -100px; left: -60px;
  width: 320px; height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,221,176,.30), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.mc-detail-header.mc-detail-header-soft > .container {
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .mc-detail-header.mc-detail-header-soft::before { width: 280px; height: 280px; right: -90px; }
  .mc-detail-header.mc-detail-header-soft::after { width: 200px; height: 200px; left: -50px; }
}

.mc-detail-breadcrumb {
  font-size: 13px;
  color: var(--mc-ink-muted);
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  margin-bottom: 22px;
}
.mc-detail-breadcrumb a {
  color: var(--mc-ink-muted);
  text-decoration: none;
  transition: color .2s ease;
}
.mc-detail-breadcrumb a:hover { color: var(--mc); }
.mc-detail-breadcrumb .sep { opacity: .4; }
.mc-detail-breadcrumb .current { color: var(--mc-ink); font-weight: 600; }

.mc-detail-header-row { min-height: 240px; }

.mc-detail-title {
  font-size: clamp(30px, 4.4vw, 48px);
  font-weight: 900;
  letter-spacing: -1.5px;
  line-height: 1.08;
  color: var(--mc-ink);
  margin: 12px 0 12px;
}
.mc-detail-subtitle {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 15.5px;
  font-weight: 600;
  color: var(--mc-ink-secondary);
  margin: 0 0 18px;
}
.mc-detail-subtitle i { color: var(--mc); font-size: 16px; }

.mc-detail-badges {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.mc-detail-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 11.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .12em;
}
.mc-detail-pill-progress {
  background: var(--mc-pale);
  color: var(--mc-dark);
}
.mc-detail-pill-done {
  background: var(--mc);
  color: #fff;
}
.mc-detail-pill-done i { font-size: 11px; }
.mc-detail-pill-tag {
  background: var(--mc-ghost);
  color: var(--mc-ink-muted);
  border: 1px solid rgba(0,0,0,.06);
}
.mc-detail-pill-tag i { color: var(--mc); font-size: 11px; }
.mc-detail-pill-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--mc);
  position: relative;
}
.mc-detail-pill-dot::after {
  content: ''; position: absolute; inset: 0;
  border-radius: 50%;
  background: var(--mc);
  animation: mcStatusPulse 1.8s ease-out infinite;
}

/* Header image: contained, rounded, hover zoom icon */
.mc-detail-header-img {
  position: relative;
  display: block;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: 0 14px 40px rgba(58,125,44,.16);
  transition: box-shadow .3s ease, transform .3s ease;
}
.mc-detail-header-img:hover {
  box-shadow: 0 22px 56px rgba(58,125,44,.24);
  transform: translateY(-2px);
}
.mc-detail-header-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s cubic-bezier(.4,0,.2,1);
}
.mc-detail-header-img:hover img { transform: scale(1.05); }
.mc-detail-header-img-zoom {
  position: absolute;
  bottom: 14px; right: 14px;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: var(--mc-dark);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .25s ease, transform .25s ease, background .25s ease;
}
.mc-detail-header-img:hover .mc-detail-header-img-zoom {
  opacity: 1;
  transform: translateY(0);
}
.mc-detail-header-img:hover .mc-detail-header-img-zoom { background: var(--mc); color: #fff; }

@media (max-width: 991px) {
  .mc-detail-header-row { min-height: auto; }
  .mc-detail-header-img { aspect-ratio: 16 / 9; }
}

/* Section title left-aligned (no centered) */
.mc-detail-section-title {
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: -.6px;
  margin: 0 0 14px;
  position: relative;
  padding-left: 16px;
  line-height: 1.2;
}
.mc-detail-section-title::before {
  content: '';
  position: absolute;
  left: 0; top: 0.18em;
  bottom: 0.18em;
  width: 4px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--mc), var(--mc-dark));
}
.mc-detail-section-lead {
  font-size: 14.5px;
  color: var(--mc-ink-muted);
  margin: 0 0 22px;
  line-height: 1.6;
}

/* Article wrapper (descrizione, tipologie, info) */
.mc-detail-block { margin-bottom: 56px; }
.mc-detail-block:last-child { margin-bottom: 0; }

/* Specs — dl table style per info tecniche */
.mc-detail-specs {
  margin: 0;
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(58,125,44,.10);
  overflow: hidden;
  box-shadow: 0 6px 22px rgba(58,125,44,.06);
}
.mc-detail-specs-row {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 16px;
  padding: 14px 22px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.mc-detail-specs-row:last-child { border-bottom: none; }
.mc-detail-specs-row dt {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 700;
  color: var(--mc-ink-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 0;
}
.mc-detail-specs-row dt i {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 8px;
  background: var(--mc-pale);
  color: var(--mc);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
}
.mc-detail-specs-row dd {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--mc-ink);
  letter-spacing: -.1px;
  align-self: center;
}
@media (max-width: 575px) {
  .mc-detail-specs-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .mc-detail-specs-row dd { padding-left: 38px; }
}

/* Sidebar sticky: top deve scavalcare main navbar (~70px) + section
   anchor-nav (.mc-cantiere-nav top:70 + ~56h = ~126) altrimenti la
   card scorre dietro la nav e viene tagliata in alto. */
.mc-detail-aside {
  position: sticky;
  top: 140px;
  display: flex; flex-direction: column;
  gap: 16px;
}
@media (max-width: 991px) {
  .mc-detail-aside { position: static; }
}

.mc-detail-form-card {
  background: #fff;
  border-radius: 18px;
  padding: 24px 26px;
  border: 1px solid rgba(58,125,44,.10);
  box-shadow: 0 10px 32px rgba(58,125,44,.10);
}
.mc-detail-form-head { margin-bottom: 18px; }
.mc-detail-form-title {
  font-size: 22px; font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: -.4px;
  margin: 8px 0 6px;
}
.mc-detail-form-text {
  font-size: 13.5px;
  color: var(--mc-ink-muted);
  line-height: 1.5;
  margin: 0;
}

.mc-detail-agency-card {
  background: linear-gradient(135deg, #ffffff 0%, var(--mc-pale) 100%);
  border-radius: 18px;
  padding: 22px 24px;
  border: 1px solid rgba(58,125,44,.14);
}
.mc-detail-agency-label {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc-dark);
  margin-bottom: 8px;
}
.mc-detail-agency-label i { color: var(--mc); font-size: 12px; }
.mc-detail-agency-name {
  font-size: 17px; font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: -.3px;
  margin: 0 0 12px;
}
.mc-detail-agency-phone {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 14px;
  padding: 10px 18px;
  background: var(--mc);
  color: #fff !important;
  border-radius: 999px;
  font-size: 13.5px; font-weight: 700;
  text-decoration: none !important;
  width: 100%;
  transition: background .2s ease, transform .2s ease;
}
.mc-detail-agency-phone:hover {
  background: var(--mc-dark);
  transform: translateY(-1px);
}

/* Quick info strip sotto l'hero */
.mc-cantiere-strip {
  background: #fff;
  padding: 22px 0;
  border-bottom: 1px solid rgba(58,125,44,.08);
}
.mc-cantiere-strip-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 991px) { .mc-cantiere-strip-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (max-width: 575px) { .mc-cantiere-strip-grid { grid-template-columns: 1fr; } }

.mc-cantiere-strip-item {
  display: flex; align-items: center; gap: 12px;
  min-width: 0;
}
.mc-cantiere-strip-icon {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--mc-pale);
  color: var(--mc);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.mc-cantiere-strip-item strong {
  display: block;
  font-size: 15px; font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: -.2px;
  line-height: 1.2;
}
.mc-cantiere-strip-item small {
  display: block;
  font-size: 11.5px;
  color: var(--mc-ink-muted);
  margin-top: 2px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 600;
}

/* Sticky anchor nav */
.mc-cantiere-nav {
  position: sticky;
  top: 70px;
  z-index: 30;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid rgba(58,125,44,.10);
  box-shadow: 0 4px 16px rgba(0,0,0,.04);
}
.mc-cantiere-nav-inner {
  display: flex; align-items: center;
  gap: 4px;
  padding: 10px 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.mc-cantiere-nav-inner::-webkit-scrollbar { display: none; }
.mc-cantiere-nav-link {
  flex-shrink: 0;
  padding: 9px 16px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--mc-ink-muted);
  text-decoration: none;
  border-radius: 999px;
  transition: all .2s ease;
  white-space: nowrap;
}
.mc-cantiere-nav-link:hover {
  color: var(--mc-dark);
  background: var(--mc-ghost);
}
.mc-cantiere-nav-link.active {
  color: var(--mc-dark);
  background: var(--mc-pale);
}
.mc-cantiere-nav-cta {
  margin-left: auto;
  background: var(--mc);
  color: #fff !important;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 18px;
}
.mc-cantiere-nav-cta:hover { background: var(--mc-dark); color: #fff !important; }
.mc-cantiere-nav-cta i { font-size: 12px; }
@media (max-width: 575px) {
  .mc-cantiere-nav-cta { display: none; }
}

/* Galleria Swiper */
.mc-cantiere-gallery { position: relative; overflow: hidden; padding-bottom: 36px; }
.mc-cantiere-gallery .swiper-slide {
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--mc-pale);
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
}
.mc-cantiere-gallery .swiper-slide a { display: block; height: 100%; cursor: zoom-in; }
.mc-cantiere-gallery .swiper-slide img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.mc-cantiere-gallery .swiper-slide:hover img { transform: scale(1.04); }

.mc-cantiere-gallery .swiper-button-next,
.mc-cantiere-gallery .swiper-button-prev {
  width: 44px; height: 44px;
  background: rgba(255,255,255,.95);
  border-radius: 50%;
  color: var(--mc-dark);
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
  margin-top: -22px;
  transition: background .2s ease, transform .2s ease;
}
.mc-cantiere-gallery .swiper-button-next::after,
.mc-cantiere-gallery .swiper-button-prev::after {
  font-size: 16px; font-weight: 800;
}
.mc-cantiere-gallery .swiper-button-next:hover,
.mc-cantiere-gallery .swiper-button-prev:hover {
  background: var(--mc); color: #fff;
  transform: scale(1.05);
}
.mc-cantiere-gallery .swiper-pagination-bullet {
  background: var(--mc-ink-muted);
  opacity: .4;
}
.mc-cantiere-gallery .swiper-pagination-bullet-active {
  background: var(--mc);
  opacity: 1;
}

/* Descrizione */
.mc-cantiere-desc {
  font-size: 16px;
  line-height: 1.75;
  color: var(--mc-ink-secondary);
}
.mc-cantiere-desc p { margin-bottom: 1em; }
.mc-cantiere-desc p:last-child { margin-bottom: 0; }

/* Tipologie */
.mc-cantiere-tipo-block + .mc-cantiere-tipo-block { margin-top: 40px; }
.mc-cantiere-tipo-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--mc-pale);
}
.mc-cantiere-tipo-title {
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 800;
  color: var(--mc-ink);
  margin: 0;
  letter-spacing: -.3px;
}
.mc-cantiere-tipo-count {
  display: inline-flex; align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--mc-pale);
  color: var(--mc-dark);
  font-size: 12px; font-weight: 700;
  letter-spacing: .04em;
}

/* Info tecniche */
.mc-cantiere-info-card {
  height: 100%;
  background: #fff;
  border-radius: 16px;
  padding: 22px 24px;
  border: 1px solid rgba(58,125,44,.10);
  box-shadow: 0 6px 22px rgba(58,125,44,.06);
  transition: transform .3s ease, box-shadow .3s ease;
}
.mc-cantiere-info-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(58,125,44,.14);
}
.mc-cantiere-info-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--mc-pale), var(--mc-light));
  color: var(--mc-dark);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  margin-bottom: 14px;
}
.mc-cantiere-info-label {
  font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc-ink-muted);
  margin-bottom: 4px;
}
.mc-cantiere-info-value {
  font-size: 16px; font-weight: 700;
  color: var(--mc-ink);
  letter-spacing: -.2px;
  line-height: 1.3;
}

/* Sede di riferimento (sidebar contatto) */
.mc-cantiere-agency {
  background: linear-gradient(135deg, #ffffff 0%, var(--mc-pale) 100%);
  border-radius: 18px;
  padding: 24px 26px;
  border: 1px solid rgba(58,125,44,.12);
  box-shadow: 0 8px 28px rgba(58,125,44,.10);
}
.mc-cantiere-agency-label {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--mc-dark);
  margin-bottom: 8px;
}
.mc-cantiere-agency-label i { color: var(--mc); font-size: 12px; }
.mc-cantiere-agency-name {
  font-size: 18px; font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: -.3px;
  margin: 0 0 14px;
}

.mc-cantiere-trust {
  display: flex; flex-wrap: wrap; gap: 14px 22px;
  justify-content: center;
  padding: 14px 18px;
  background: var(--mc-ghost);
  border-radius: 14px;
}

/* =================================================================
 * AGENCY CARD (pretty) — banner sede + body con address/phone/email + CTA
 * ================================================================= */
.mc-acard {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,.05);
  border: 1px solid rgba(0,0,0,.04);
  transition: transform .35s ease, box-shadow .35s ease;
  display: flex; flex-direction: column;
}
.mc-acard:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(58,125,44,.15);
}
.mc-acard-media {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--mc-pale);
  overflow: hidden;
}
.mc-acard-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.mc-acard:hover .mc-acard-media img { transform: scale(1.04); }
.mc-acard-badge {
  position: absolute;
  top: 12px; left: 12px;
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 11px;
  background: rgba(255,255,255,.95);
  color: var(--mc-dark);
  border-radius: 999px;
  font-size: 10.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.mc-acard-badge i { color: var(--mc); font-size: 11px; }
.mc-acard-body {
  padding: 18px 20px 20px;
  flex: 1;
  display: flex; flex-direction: column;
}
.mc-acard-name {
  font-size: 17px; font-weight: 800;
  color: var(--mc-ink);
  margin: 0 0 12px;
  letter-spacing: -.3px;
  line-height: 1.3;
}
.mc-acard-name a {
  color: inherit; text-decoration: none;
  transition: color .2s ease;
}
.mc-acard-name a:hover { color: var(--mc); }
.mc-acard-meta {
  list-style: none; padding: 0; margin: 0 0 14px;
}
.mc-acard-meta li {
  display: flex; align-items: flex-start;
  gap: 10px;
  padding: 5px 0;
  font-size: 13.5px;
  color: var(--mc-ink-muted);
  line-height: 1.45;
}
.mc-acard-meta li i {
  flex-shrink: 0;
  width: 18px;
  color: var(--mc);
  font-size: 14px;
  margin-top: 2px;
}
.mc-acard-meta a {
  color: var(--mc-ink-muted);
  text-decoration: none;
  transition: color .2s ease;
}
.mc-acard-meta a:hover { color: var(--mc); }
.mc-acard-cta {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.06);
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13.5px; font-weight: 700;
  color: var(--mc);
  text-decoration: none;
  transition: gap .25s ease;
}
.mc-acard-cta:hover { gap: 10px; color: var(--mc-dark); }
.mc-acard:hover .mc-acard-cta { gap: 10px; }

/* =================================================================
 * SEDI MAP — sezione interattiva chi-siamo
 * ================================================================= */
.mc-sedi-map-wrap {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(58,125,44,.14);
  border: 1px solid rgba(58,125,44,.08);
  background: #f5f9f3;
}
.mc-sedi-map {
  height: 480px;
  width: 100%;
}
@media (max-width: 768px) {
  .mc-sedi-map { height: 380px; }
}

/* Custom marker (drop pin verde con pulse) */
.mc-sede-marker { background: transparent !important; border: none !important; }
.mc-sede-marker-pin {
  width: 36px; height: 36px;
  border-radius: 50% 50% 50% 0;
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 100%);
  transform: rotate(-45deg);
  box-shadow: 0 4px 12px rgba(58,125,44,.45);
  display: flex; align-items: center; justify-content: center;
  position: relative;
  animation: mcSedePulse 2.4s ease-out infinite;
}
.mc-sede-marker-pin::after {
  content: '';
  position: absolute;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #fff;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
@keyframes mcSedePulse {
  0%, 100% {
    box-shadow: 0 4px 12px rgba(58,125,44,.45),
                0 0 0 0 rgba(58,125,44,.55);
  }
  50% {
    box-shadow: 0 4px 12px rgba(58,125,44,.45),
                0 0 0 16px rgba(58,125,44,0);
  }
}

/* Popup styling override Leaflet */
.mc-leaflet-popup .leaflet-popup-content-wrapper {
  border-radius: 14px !important;
  padding: 0 !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.20) !important;
  overflow: hidden;
}
.mc-leaflet-popup .leaflet-popup-content {
  margin: 0 !important;
  width: auto !important;
  min-width: 230px;
  max-width: 280px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  line-height: 1.5;
}
.mc-leaflet-popup .leaflet-popup-tip {
  box-shadow: 0 4px 10px rgba(0,0,0,.12);
}
.mc-leaflet-popup .leaflet-popup-close-button {
  top: 6px !important;
  right: 8px !important;
  color: var(--mc-ink-muted) !important;
  font-size: 20px !important;
  width: 26px !important;
  height: 26px !important;
  font-weight: 400 !important;
  line-height: 24px !important;
  border-radius: 50%;
  transition: all .2s ease;
}
.mc-leaflet-popup .leaflet-popup-close-button:hover {
  color: var(--mc-ink) !important;
  background: rgba(0,0,0,.05);
}

.mc-sede-popup {
  padding: 16px 18px 14px;
}
.mc-sede-popup strong {
  display: block;
  font-size: 15px; font-weight: 800;
  color: var(--mc-ink);
  margin-bottom: 10px;
  letter-spacing: -.2px;
  line-height: 1.3;
  padding-right: 22px; /* lascia spazio al close button */
}
.mc-sede-popup-row {
  display: flex; align-items: flex-start;
  gap: 9px;
  font-size: 13px;
  color: var(--mc-ink-muted);
  margin-bottom: 6px;
  line-height: 1.45;
}
.mc-sede-popup-row > i {
  color: var(--mc);
  font-size: 13px;
  margin-top: 2px;
  flex-shrink: 0;
  width: 14px;
  text-align: center;
}
.mc-sede-popup-row a {
  color: var(--mc-ink-muted);
  text-decoration: none;
  font-weight: 600;
}
.mc-sede-popup-row a:hover { color: var(--mc); }
.mc-sede-popup-cta {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 12px;
  padding: 8px 16px;
  background: var(--mc);
  color: #fff !important;
  border-radius: 999px;
  font-size: 12.5px; font-weight: 700;
  text-decoration: none !important;
  letter-spacing: .04em;
  transition: all .25s ease;
}
.mc-sede-popup-cta:hover {
  background: var(--mc-dark);
  gap: 10px;
  transform: translateY(-1px);
}
.mc-sede-popup-cta i { font-size: 12px; }

/* =================================================================
 * Sidebar Hero Banner (agency sidebar header)
 * ================================================================= */
.mc-sidebar-hero {
  background: var(--mc);
  border-radius: var(--mc-radius-xs);
  padding: 20px; margin: -28px -28px 20px;
  color: #fff; text-align: center;
}
.mc-sidebar-hero h5 { font-weight: 700; color: #fff; margin-bottom: 0; font-size: 16px; }

/* =================================================================
 * Type label (development detail)
 * ================================================================= */
.mc-type-label {
  font-size: 13px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--mc);
  margin-top: 24px; margin-bottom: 16px;
}

/* =================================================================
 * Description Text (detail pages)
 * ================================================================= */
.mc-desc-text {
  font-size: 14px; line-height: 1.8; color: var(--mc-ink-secondary);
}

/* =================================================================
 * Gallery Thumb (development gallery)
 * ================================================================= */
.mc-gallery-thumb {
  border-radius: var(--mc-radius-xs); overflow: hidden;
}
.mc-gallery-thumb img {
  height: 120px; border-radius: var(--mc-radius-xs);
}

/* =================================================================
 * Detail sidebar padding helpers
 * ================================================================= */
.mc-sidebar-p { padding: 28px 24px; }
.mc-sidebar-p-lg { padding: 32px; }
.mc-sidebar-p-sm { padding: 20px; }
.mc-sidebar-p-card { padding: 24px 16px; }

/* =================================================================
 * Hero image container
 * ================================================================= */
.mc-hero-img { border-radius: var(--mc-radius); overflow: hidden; }

/* =================================================================
 * Animation Utilities
 * ================================================================= */
.mc-fade-1 { opacity: 0; animation: fadeUp .6s ease forwards .2s; }
.mc-fade-2 { opacity: 0; animation: fadeUp .7s ease forwards .3s; }
.mc-fade-3 { opacity: 0; animation: fadeUp .7s ease forwards .5s; }
.mc-fade-4 { opacity: 0; animation: fadeUp .7s ease forwards .6s; }

/* =================================================================
 * Hero Content (home hero inner layout)
 * ================================================================= */
.mc-hero-container { position: relative; z-index: 2; }
.mc-hero-inner {
  max-width: 640px; margin: 0 auto;
  padding: 80px 0 40px; text-align: center;
}
.mc-hero-tag {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: var(--mc);
  margin-bottom: 24px; justify-content: center;
}
.mc-hero-tag-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--mc); animation: blink 2s ease-in-out infinite;
  box-shadow: 0 0 8px rgba(58,125,44,.5);
}
.mc-hero-title {
  font-size: clamp(38px, 6.5vw, 68px); font-weight: 900;
  line-height: .95; letter-spacing: -3px; margin-bottom: 24px;
}
.mc-hero-title-gradient {
  background: linear-gradient(135deg, var(--mc), var(--mc-medium));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}
.mc-hero-subtitle {
  font-size: 18px; color: var(--mc-ink-secondary);
  max-width: 500px; margin: 0 auto 40px; line-height: 1.6;
}

/* =================================================================
 * Home Search Card
 * ================================================================= */
.mc-home-search { position: relative; padding: 24px; overflow: visible; }
.mc-search-grid-home { overflow: visible; }
.mc-search-grid-home {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.mc-search-grid-home .choices { min-width: 0; }
.mc-search-grid-home .choices__inner {
  overflow: hidden;
  background: #edf0eb !important;
  border: 2px solid var(--mc-medium) !important;
  padding: 11px 14px !important;
  font-size: 15px !important;
  color: var(--mc-ink) !important;
}
.mc-search-grid-home .choices .choices__placeholder { color: var(--mc-ink-secondary) !important; }
.mc-search-grid-home .choices.is-open .choices__inner,
.mc-search-grid-home .choices.is-focused .choices__inner {
  border-color: var(--mc) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(58,125,44,.15) !important;
}
.mc-search-btn-group {
  display: flex; gap: 10px;
}
.mc-search-btn-group .mc-hero-btn { flex: 1; justify-content: center; }
.mc-filters-modal { border-radius: var(--mc-radius) !important; border: none !important; }
.mc-filters-modal .modal-header { padding: 16px 24px; }
.mc-filters-modal .modal-footer { padding: 16px 24px; }
.mc-filters-modal .choices .choices__inner {
  background: #f8f9fa !important;
  border-color: rgba(0,0,0,.1) !important;
}
.mc-filters-modal .choices.is-open .choices__inner,
.mc-filters-modal .choices.is-focused .choices__inner {
  background: #fff !important;
  border-color: var(--mc-light) !important;
}
.mc-search-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px; margin-bottom: 16px;
}
.mc-search-grid .choices { min-width: 0; }
.mc-search-grid .choices__inner { overflow: hidden; }
.mc-search-grid-home .mc-hero-btn-primary {
  justify-content: center; white-space: nowrap;
}
/* Dropdown z-index above buttons */
.mc-search-grid-home .choices.is-open { z-index: 99999; }

/* =================================================================
 * Gruppo Tabs
 * ================================================================= */
.mc-gruppo-tabs {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px;
}

/* =================================================================
 * Advanced Filter Grid (hero)
 * ================================================================= */
.mc-adv-grid {
  border-top: 1px solid var(--mc-border); padding-top: 16px;
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px;
}
.mc-toggle-wrap { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

/* =================================================================
 * Section Header (title + "Vedi tutti" link)
 * ================================================================= */
.mc-section-header {
  display: flex; align-items: flex-end;
  justify-content: space-between; margin-bottom: 40px;
}
.mc-section-link {
  font-size: 14px; font-weight: 600; color: var(--mc);
  text-decoration: none; display: flex; align-items: center; gap: 6px;
  transition: gap var(--mc-tr);
}
.mc-section-link:hover { gap: 10px; color: var(--mc-dark); }

/* =================================================================
 * Content Section (max-width container)
 * ================================================================= */
.mc-content-section {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 120px 24px;
}
/* Full-width white wrapper */
.mc-section-white {
  background: #fff; width: 100%;
}
.mc-content-section-sm { padding: 0 24px 80px; }

/* =================================================================
 * Stat Label
 * ================================================================= */
.mc-stat-label { opacity: .7; }

/* =================================================================
 * Categoria Grid (home)
 * ================================================================= */
.mc-categoria-grid {
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius); padding: 24px 0;
}
.mc-categoria-item {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; width: 100%; padding: 8px 16px;
  transition: background .2s;
}
.mc-categoria-item:hover { background: var(--mc-ghost); }
.mc-categoria-title {
  font-size: 16px; font-weight: 700; margin-bottom: 4px;
}
.mc-categoria-title a {
  text-decoration: none; color: var(--mc-ink);
  transition: color var(--mc-tr);
}
.mc-categoria-title a:hover { color: var(--mc); }
.mc-categoria-count {
  font-size: 12px; color: var(--mc-ink-muted);
}
.mc-categoria-count i { margin-right: 4px; }

/* =================================================================
 * Action Cards (home)
 * ================================================================= */
.mc-action-card-dark {
  background: linear-gradient(135deg, var(--mc) 0%, #2d6b20 50%, var(--mc-dark) 100%);
  position: relative; overflow: hidden;
}
.mc-action-card-dark::before {
  content: ''; position: absolute; top: -30%; right: -20%; width: 200px; height: 200px;
  border-radius: 50%; background: rgba(255,255,255,.06); pointer-events: none;
}
.mc-action-card-light {
  background: #fff;
  border: 1px solid var(--mc-border) !important;
  position: relative; overflow: hidden;
}
.mc-action-card-light::before {
  content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%;
  background: linear-gradient(180deg, var(--mc) 0%, var(--mc-medium) 100%);
}
.mc-action-card-light::after {
  content: ''; position: absolute; bottom: -50px; right: -50px;
  width: 150px; height: 150px; border-radius: 50%;
  background: radial-gradient(circle, var(--mc-pale) 0%, transparent 70%);
  pointer-events: none;
}
.mc-action-title { font-size: 22px; font-weight: 800; }
.mc-action-text { font-size: 15px; margin-bottom: 24px; }
.mc-action-text-muted { color: var(--mc-ink-secondary); }
.mc-action-text-white { opacity: .8; }

/* =================================================================
 * Configurator section (home)
 * ================================================================= */
.mc-configurator-section {
  padding: 140px 0;
  background: #fff;
  position: relative; overflow: hidden;
}
.mc-configurator-section::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(58,125,44,.05), transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(184,221,176,.12), transparent 50%);
  pointer-events: none;
}
.mc-configurator-section::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(58,125,44,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(58,125,44,.025) 1px, transparent 1px);
  background-size: 50px 50px;
  mask-image: radial-gradient(ellipse 60% 60% at center, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 60% 60% at center, black 30%, transparent 80%);
}
.mc-configurator-section .container { position: relative; z-index: 1; }

/* =================================================================
 * Configurator (home)
 * ================================================================= */
.mc-configurator-wrap {
  max-width: 1100px; margin: 0 auto;
  position: relative;
}
.mc-configurator {
  background: #fff;
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius);
  box-shadow: 0 30px 80px rgba(58,125,44,.12), 0 8px 20px rgba(0,0,0,.04);
  min-height: 540px;
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  position: relative;
  overflow: hidden;
}
.mc-configurator > * { min-width: 0; }
@media (max-width: 768px) {
  .mc-configurator { grid-template-columns: 1fr; }
}
/* Sidebar info */
.mc-cfg-sidebar {
  background: linear-gradient(160deg, var(--mc) 0%, var(--mc-dark) 60%, #1a3d14 100%);
  color: #fff;
  padding: 48px 36px;
  position: relative;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.mc-cfg-sidebar::before {
  content: ''; position: absolute; top: -30%; right: -30%;
  width: 250px; height: 250px; border-radius: 50%;
  background: rgba(255,255,255,.07);
  pointer-events: none;
}
.mc-cfg-sidebar::after {
  content: ''; position: absolute; bottom: -40%; left: -20%;
  width: 220px; height: 220px; border-radius: 50%;
  background: rgba(255,255,255,.05);
  pointer-events: none;
}
.mc-cfg-side-icon {
  width: 64px; height: 64px; border-radius: var(--mc-radius-sm);
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.2);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 28px; color: #fff;
  margin-bottom: 24px;
  position: relative; z-index: 1;
  transition: all .4s ease;
}
.mc-cfg-side-step {
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .15em;
  color: var(--mc-light);
  margin-bottom: 12px;
  position: relative; z-index: 1;
}
.mc-cfg-side-title {
  font-size: 28px; font-weight: 900;
  color: #fff; margin: 0 0 12px;
  letter-spacing: -.5px; line-height: 1.2;
  position: relative; z-index: 1;
}
.mc-cfg-side-desc {
  font-size: 14px; line-height: 1.6;
  color: rgba(255,255,255,.75); margin: 0 0 28px;
  position: relative; z-index: 1;
}
.mc-cfg-progress {
  position: relative; z-index: 1;
  height: 6px; border-radius: 3px;
  background: rgba(255,255,255,.15);
  overflow: hidden;
  margin-bottom: 28px;
}
.mc-cfg-progress-bar {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 0;
  background: linear-gradient(90deg, var(--mc-light), #fff);
  border-radius: 3px;
  transition: width .4s cubic-bezier(.4,0,.2,1);
}
.mc-cfg-summary {
  display: flex; flex-direction: column; gap: 8px;
  position: relative; z-index: 1;
  margin-top: auto;
}
.mc-cfg-sum-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 14px; border-radius: var(--mc-radius-xs);
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.12);
  font-size: 12px;
  animation: cfgSumFadeIn .3s ease;
}
@keyframes cfgSumFadeIn {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
.mc-cfg-sum-key {
  font-weight: 600; color: rgba(255,255,255,.7);
  text-transform: uppercase; letter-spacing: .04em;
}
.mc-cfg-sum-val {
  font-weight: 800; color: #fff;
}
/* Content area */
.mc-cfg-content {
  padding: 48px;
  display: flex; flex-direction: column; justify-content: center;
}
.mc-cfg-title {
  font-size: 22px; font-weight: 800; margin-bottom: 28px;
  color: var(--mc-ink); text-align: center;
  letter-spacing: -.3px;
}
.mc-cfg-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.mc-cfg-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mc-cfg-grid-4 { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 12px; }
.mc-cfg-option-pill {
  padding: 28px 16px; border: 2px solid var(--mc-border);
  border-radius: var(--mc-radius); background: #fff;
  cursor: pointer; text-align: center;
  font-weight: 800; font-size: 22px;
  color: var(--mc-ink);
  transition: all .35s cubic-bezier(.4,0,.2,1);
}
.mc-cfg-option-pill:hover {
  border-color: var(--mc-light); transform: translateY(-3px);
  background: linear-gradient(135deg, var(--mc-pale), #fff);
  box-shadow: 0 12px 32px rgba(58,125,44,.12);
  color: var(--mc-dark);
}
.mc-cfg-option-pill.selected {
  border-color: var(--mc); background: var(--mc-pale); color: var(--mc-dark);
  box-shadow: 0 8px 24px rgba(58,125,44,.18);
}
.mc-cfg-option {
  padding: 28px 20px; border: 2px solid var(--mc-border);
  border-radius: var(--mc-radius); background: #fff;
  cursor: pointer; text-align: center;
  transition: all .35s cubic-bezier(.4,0,.2,1); font-family: inherit;
  position: relative; overflow: hidden;
}
.mc-cfg-option::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--mc-pale) 0%, transparent 100%);
  opacity: 0; transition: opacity .35s;
}
.mc-cfg-option:hover {
  border-color: var(--mc-light); transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(58,125,44,.12);
}
.mc-cfg-option:hover::before { opacity: 1; }
.mc-cfg-option.selected {
  border-color: var(--mc); background: var(--mc-pale);
  box-shadow: 0 8px 24px rgba(58,125,44,.18);
}
.mc-cfg-option > * { position: relative; z-index: 1; }
.mc-cfg-option-icon {
  width: 64px; height: 64px; border-radius: var(--mc-radius-sm);
  background: linear-gradient(135deg, var(--mc-pale), #d8eed3);
  color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 26px; margin: 0 auto 16px;
  transition: all .35s cubic-bezier(.4,0,.2,1);
}
.mc-cfg-option:hover .mc-cfg-option-icon,
.mc-cfg-option.selected .mc-cfg-option-icon {
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  color: #fff;
  transform: rotate(-5deg) scale(1.05);
  box-shadow: 0 10px 24px rgba(58,125,44,.3);
}
.mc-cfg-option-label { font-weight: 700; font-size: 15px; color: var(--mc-ink); }
.mc-cfg-option-price {
  padding: 24px 16px; border: 2px solid var(--mc-border);
  border-radius: var(--mc-radius); background: #fff;
  cursor: pointer; font-weight: 800; font-size: 18px;
  color: var(--mc-ink);
  transition: all .35s cubic-bezier(.4,0,.2,1); font-family: inherit;
}
.mc-cfg-option-price:hover {
  border-color: var(--mc-light); transform: translateY(-3px);
  background: linear-gradient(135deg, var(--mc-pale), #fff);
  box-shadow: 0 12px 32px rgba(58,125,44,.12);
  color: var(--mc-dark);
}
.mc-cfg-option-price.selected {
  border-color: var(--mc); background: var(--mc-pale); color: var(--mc-dark);
  box-shadow: 0 8px 24px rgba(58,125,44,.18);
}
.mc-cfg-result { text-align: center; padding: 40px 0; }
.mc-cfg-result-icon {
  width: 88px; height: 88px; border-radius: 50%;
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 40px; color: #fff; margin-bottom: 24px;
  box-shadow: 0 16px 48px rgba(58,125,44,.3);
}
.mc-cfg-result-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 16px 36px; border-radius: 50px;
  background: var(--mc); color: #fff; text-decoration: none;
  font-weight: 700; font-size: 15px;
  box-shadow: 0 16px 40px rgba(58,125,44,.3);
  transition: all .3s;
}
.mc-cfg-result-btn:hover { background: var(--mc-dark); color: #fff; }

/* =================================================================
 * Valutazione Form (home)
 * ================================================================= */
.mc-valutazione-form {
  background: var(--mc-bg-card);
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius);
  padding: 32px; box-shadow: var(--mc-shadow-md);
}
.mc-valutazione-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 12px; margin-bottom: 12px;
}
.mc-valutazione-input {
  padding: 12px 16px;
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm);
  font-size: 14px; font-family: inherit;
  background: var(--mc-ghost);
  outline: none; transition: all .2s;
  width: 100%;
}
.mc-valutazione-input:focus {
  border-color: var(--mc-light); background: #fff;
}
.mc-valutazione-textarea {
  width: 100%; padding: 12px 16px;
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm);
  font-size: 14px; font-family: inherit;
  background: var(--mc-ghost); outline: none;
  resize: vertical; margin-bottom: 16px; transition: all .2s;
}
.mc-valutazione-textarea:focus {
  border-color: var(--mc-light); background: #fff;
}
.mc-valutazione-btn {
  width: 100%; padding: 14px;
  border-radius: var(--mc-radius-sm);
  background: var(--mc); color: #fff;
  border: none; cursor: pointer;
  font: 600 15px 'Plus Jakarta Sans', sans-serif;
  box-shadow: var(--mc-shadow-glow);
  transition: all .3s;
}
.mc-valutazione-btn:hover { background: var(--mc-dark); }
.mc-valutazione-bg {
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
  position: relative;
  padding: 120px 0;
}

/* =================================================================
 * CTA Section Enhanced (home)
 * ================================================================= */
.mc-cta-title-lg {
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 900; letter-spacing: -2px;
  color: #fff; margin-bottom: 16px;
}
.mc-cta-text-lg {
  font-size: 16px; opacity: .75; margin-bottom: 32px;
  max-width: 500px; margin-left: auto; margin-right: auto; line-height: 1.6;
}
.mc-cta-btn-white {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 16px 36px; border-radius: 50px;
  background: #fff; color: var(--mc); text-decoration: none;
  font-weight: 700; font-size: 15px;
  transition: all var(--mc-tr);
  box-shadow: 0 8px 32px rgba(0,0,0,.15);
}
.mc-cta-btn-white:hover { background: #f0f0f0; color: var(--mc); }
.mc-cta-btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 16px 36px; border-radius: 50px;
  background: transparent; border: 1px solid rgba(255,255,255,.3);
  color: #fff; text-decoration: none;
  font-weight: 600; font-size: 15px;
  transition: all var(--mc-tr);
}
.mc-cta-btn-ghost:hover { background: rgba(255,255,255,.1); color: #fff; }

/* =================================================================
 * Zones — place cards eleganti
 * ================================================================= */
.mc-zones-section {
  position: relative; padding: 120px 0;
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
  overflow: hidden;
}
.mc-zones-section::before {
  content: ''; position: absolute; top: 10%; right: -10%;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.05), transparent 70%);
  pointer-events: none; z-index: 1;
}
.mc-zones-section::after {
  content: ''; position: absolute; bottom: 10%; left: -10%;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(184,221,176,.15), transparent 70%);
  pointer-events: none; z-index: 1;
}
.mc-zones-mapbg {
  position: absolute; inset: 0; pointer-events: none;
  z-index: 0;
  mask-image: radial-gradient(ellipse 80% 70% at center, black 30%, transparent 90%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at center, black 30%, transparent 90%);
}
.mc-zones-mapbg svg { width: 100%; height: 100%; display: block; }
.mc-zones-content { position: relative; z-index: 2; }
.mc-zones-swiper { padding: 16px 4px 24px !important; overflow: visible !important; }
.mc-zones-swiper .swiper-wrapper { overflow: visible; }

.mc-zone-place {
  display: block; text-decoration: none;
  position: relative; aspect-ratio: 3/4;
  border-radius: var(--mc-radius);
  overflow: hidden; cursor: pointer;
  background: linear-gradient(160deg, #1a3d14 0%, var(--mc-dark) 40%, var(--mc) 100%);
  box-shadow: 0 12px 40px rgba(15,29,12,.18);
  transition: all .45s cubic-bezier(.4,0,.2,1);
}
.mc-zone-place:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 60px rgba(15,29,12,.3);
}
/* Big initial letter background */
.mc-zone-place-letter {
  position: absolute; top: -20px; right: -10px;
  font-size: 280px; font-weight: 900; line-height: 1;
  color: rgba(255,255,255,.08);
  letter-spacing: -10px;
  pointer-events: none;
  font-family: 'Plus Jakarta Sans', sans-serif;
  transition: all .5s cubic-bezier(.4,0,.2,1);
}
.mc-zone-place:hover .mc-zone-place-letter {
  color: rgba(255,255,255,.14);
  transform: scale(1.05) translate(-8px, 8px);
}
/* Subtle pattern overlay */
.mc-zone-place-overlay {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.08), transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(184,221,176,.12), transparent 50%);
}
.mc-zone-place-overlay::before {
  content: ''; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 32px 32px;
}
.mc-zone-place-content {
  position: relative; z-index: 1; height: 100%;
  display: flex; flex-direction: column;
  justify-content: flex-end;
  padding: 28px 26px;
}
.mc-zone-place-pin {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.25);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 18px; color: #fff;
  margin-bottom: 16px;
  align-self: flex-start;
  transition: all .4s ease;
}
.mc-zone-place:hover .mc-zone-place-pin {
  background: #fff; color: var(--mc-dark);
  transform: scale(1.1);
}
.mc-zone-place-name {
  font-size: 28px; font-weight: 900; color: #fff;
  margin: 0 0 6px; letter-spacing: -.8px; line-height: 1.1;
}
.mc-zone-place-count {
  font-size: 13px; font-weight: 600;
  color: rgba(255,255,255,.7);
  margin-bottom: 16px;
}
.mc-zone-place-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700;
  color: var(--mc-light);
  text-transform: uppercase; letter-spacing: .08em;
  transition: gap .3s, color .3s;
}
.mc-zone-place:hover .mc-zone-place-cta {
  gap: 12px; color: #fff;
}

/* =================================================================
 * Zone più cercate (home) — legacy card (ora non usata su home)
 * ================================================================= */
.mc-zone-card {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: 36px 24px; border-radius: var(--mc-radius);
  background: #fff; border: 1px solid var(--mc-border);
  box-shadow: 0 4px 24px rgba(0,0,0,.06);
  transition: all .4s cubic-bezier(.4,0,.2,1);
  position: relative; overflow: hidden;
}
.mc-zone-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--mc), var(--mc-light));
  transform: scaleX(0); transition: transform .4s cubic-bezier(.4,0,.2,1);
  transform-origin: left;
}
.mc-zone-card:hover::before { transform: scaleX(1); }
.mc-zone-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 60px rgba(58,125,44,.15), 0 8px 20px rgba(0,0,0,.06);
  border-color: var(--mc-light);
}
.mc-zone-card-icon {
  width: 64px; height: 64px; border-radius: 50%;
  background: var(--mc-pale); color: var(--mc);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 20px;
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-zone-card:hover .mc-zone-card-icon {
  background: var(--mc); color: #fff;
  transform: scale(1.1);
  box-shadow: 0 8px 24px rgba(58,125,44,.3);
}
.mc-zone-card-title {
  font-size: 20px; font-weight: 800; color: var(--mc-ink);
  margin-bottom: 4px;
}
.mc-zone-card-count {
  font-size: 13px; font-weight: 600; color: var(--mc-ink-muted);
  letter-spacing: .02em;
}

/* =================================================================
 * Actions section (home — services)
 * ================================================================= */
.mc-actions-section {
  padding: 120px 0;
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
}
.mc-action-icon {
  width: 56px; height: 56px; border-radius: var(--mc-radius-sm);
  background: var(--mc-pale); color: var(--mc);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 20px;
}
.mc-action-card-dark .mc-action-icon {
  background: rgba(255,255,255,.15); color: #fff;
}

/* =================================================================
 * Map section — animated background
 * ================================================================= */
.mc-map-section {
  position: relative; overflow: hidden;
  padding: 120px 0; min-height: 600px;
  display: flex; align-items: center;
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
}
.mc-map-bg {
  position: absolute; inset: 0; pointer-events: none;
}
.mc-map-pattern { width: 100%; height: 100%; }
.mc-map-orb {
  animation: mapOrbFloat 12s ease-in-out infinite alternate;
  transform-origin: center;
}
.mc-map-orb-2 { animation-duration: 16s; animation-direction: alternate-reverse; }
@keyframes mapOrbFloat {
  0% { transform: translate(0,0) scale(1); }
  100% { transform: translate(40px,-30px) scale(1.1); }
}
.mc-map-route {
  stroke-dasharray: 6 6;
  animation: mapDash 30s linear infinite;
}
@keyframes mapDash {
  to { stroke-dashoffset: -1000; }
}
.mc-map-pin-anim {
  animation: mapPinPulse 2.4s ease-in-out infinite;
  transform-origin: center; transform-box: fill-box;
}
@keyframes mapPinPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.6); opacity: .6; }
}
.mc-map-content { position: relative; z-index: 2; }
.mc-map-btn {
  display: inline-flex; align-items: center;
  padding: 18px 44px; border-radius: 50px;
  background: var(--mc); color: #fff; text-decoration: none;
  font-weight: 700; font-size: 16px; border: none; cursor: pointer;
  box-shadow: 0 16px 48px rgba(58,125,44,.3);
  transition: all var(--mc-tr);
}
.mc-map-btn:hover {
  background: var(--mc-dark); color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 20px 60px rgba(58,125,44,.4);
}

/* =================================================================
 * Makecasa è — banner valori rotanti (minimal premium dark)
 * ================================================================= */
.mc-values-banner {
  background: #0f1d0c;
  overflow: hidden; position: relative;
  padding: 160px 0;
}
.mc-values-banner::before {
  content: ''; position: absolute; inset: 0;
  background-image:
    radial-gradient(ellipse at 30% 50%, rgba(58,125,44,.35) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 50%, rgba(78,156,60,.25) 0%, transparent 50%);
  pointer-events: none;
}
.mc-values-banner::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, black 0%, transparent 100%);
}
.mc-values-banner > .container { position: relative; z-index: 2; }
.mc-values-title {
  margin: 0; line-height: 1; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 32px;
}
.mc-values-label {
  font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .4em;
  color: rgba(255,255,255,.4);
  display: inline-flex; align-items: center; gap: 20px;
}
.mc-values-label::before,
.mc-values-label::after {
  content: ''; width: 60px; height: 1px;
  background: rgba(255,255,255,.2);
}
.mc-values-word {
  font-size: clamp(48px, 9vw, 110px);
  font-weight: 900; letter-spacing: -3px;
  background: linear-gradient(180deg, #fff 0%, #b8ddb0 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: opacity .35s ease, transform .35s ease;
  display: inline-block;
  padding: 0;
}

/* =================================================================
 * Novità section — IG-style stories
 * ================================================================= */
.mc-novita-section {
  padding: 120px 0;
  background: #fff;
  position: relative;
}
.mc-novita-card {
  position: relative; border-radius: var(--mc-radius);
  overflow: hidden; height: 420px;
  cursor: pointer;
  box-shadow: 0 12px 40px rgba(0,0,0,.1);
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-novita-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(0,0,0,.18);
}
.mc-novita-card-img {
  position: relative; width: 100%; height: 100%;
}
.mc-novita-card-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s ease;
}
.mc-novita-card:hover .mc-novita-card-img img {
  transform: scale(1.08);
}
.mc-novita-card-noimg {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--mc-pale), var(--mc-light));
  display: flex; align-items: center; justify-content: center;
  font-size: 56px; color: var(--mc);
}
.mc-novita-badge {
  position: absolute; top: 16px; left: 16px; z-index: 2;
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 14px; border-radius: 50px;
  background: var(--mc); color: #fff;
  font-size: 11px; font-weight: 800; letter-spacing: .08em;
  box-shadow: 0 4px 16px rgba(58,125,44,.4);
}
.mc-novita-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.85) 100%);
  pointer-events: none;
}
.mc-novita-card-info {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 24px 20px;
  color: #fff; z-index: 1;
}
.mc-novita-price {
  font-size: 24px; font-weight: 900; letter-spacing: -.5px;
  margin-bottom: 6px;
}
.mc-novita-title {
  font-size: 16px; font-weight: 700; margin-bottom: 12px;
  color: #fff;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.mc-novita-meta {
  display: flex; gap: 16px; flex-wrap: wrap;
  font-size: 13px; opacity: .9;
}
.mc-novita-meta span { display: inline-flex; align-items: center; gap: 4px; }

/* =================================================================
 * Energy class badge — pill colorato semplice (used everywhere)
 * ================================================================= */
.mc-energy-wrap {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 700;
  color: var(--mc-ink-muted);
  text-transform: uppercase; letter-spacing: .04em;
}
.mc-energy-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 30px; padding: 4px 9px;
  border-radius: 6px;
  font-size: 11px; font-weight: 800; line-height: 1;
  letter-spacing: .02em;
  color: #fff; background: #888;
}
/* Colori CTI per ogni classe energetica */
.mc-energy-badge[data-energy="A4"],
.mc-energy-badge[data-energy="A3"],
.mc-energy-badge[data-energy="A2"],
.mc-energy-badge[data-energy="A1"] { background: #1e8e3e; }
.mc-energy-badge[data-energy="B"]  { background: #4caf50; }
.mc-energy-badge[data-energy="C"]  { background: #8bc34a; }
.mc-energy-badge[data-energy="D"]  { background: #ffc107; color: #333; }
.mc-energy-badge[data-energy="E"]  { background: #ff9800; }
.mc-energy-badge[data-energy="F"]  { background: #ff5722; }
.mc-energy-badge[data-energy="G"]  { background: #d32f2f; }

/* =================================================================
 * Cards Instagram-style (Immobili in evidenza home)
 * ================================================================= */
.mc-cards-ig .card {
  border-radius: var(--mc-radius) !important;
  border: 1px solid var(--mc-border) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.06) !important;
  overflow: hidden;
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-cards-ig .card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(0,0,0,.14) !important;
  border-color: var(--mc-light) !important;
}
/* Image area: aspect ratio square-ish for IG feel */
.mc-cards-ig .card .card-img-top { background: var(--mc-pale); }
.mc-cards-ig .card .ratio {
  --fn-aspect-ratio: 100% !important; /* 1:1 square */
}
/* Card body: dense layout with badges */
.mc-cards-ig .card .card-body {
  padding: 20px 22px 14px !important;
  position: relative;
}
.mc-cards-ig .mc-card-price {
  font-size: 22px !important; font-weight: 900;
  color: var(--mc-ink); line-height: 1.1;
  margin-bottom: 8px;
  letter-spacing: -.5px;
}
.mc-cards-ig .mc-card-price-suffix {
  font-size: 12px; font-weight: 600; color: var(--mc-ink-muted);
}
.mc-cards-ig .mc-card-address {
  font-size: 13px !important; font-weight: 600;
  color: var(--mc-ink-secondary);
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 6px;
}
.mc-cards-ig .mc-card-area { display: none; }
/* Footer chips: locali / mq / bagni / energy */
.mc-cards-ig .card .card-footer {
  padding: 0 20px 18px !important;
  background: transparent !important; border: none !important;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px !important;
  margin-top: 6px;
}
.mc-cards-ig .card .card-footer > span:not(.mc-card-divider):not(.mc-energy-wrap) {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 10px; border-radius: 50px;
  background: var(--mc-pale);
  font-size: 11px; font-weight: 700;
  color: var(--mc-dark);
  text-transform: lowercase;
}
.mc-cards-ig .card .card-footer .mc-card-divider { display: none !important; }
/* Top badges (contratto / nuovo) */
.mc-cards-ig .card .badge.text-bg-primary,
.mc-cards-ig .card .badge.text-bg-warning,
.mc-cards-ig .card .badge.text-bg-info {
  border-radius: 50px;
  padding: 6px 12px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.mc-cards-ig .card .badge.text-bg-primary { background: var(--mc) !important; color: #fff !important; }
.mc-cards-ig .card .badge.text-bg-warning { background: #f5a623 !important; color: #fff !important; }
.mc-cards-ig .card .badge.text-bg-info { background: var(--mc-medium) !important; color: #fff !important; }

/* =================================================================
 * Cantieri section (home)
 * ================================================================= */
.mc-cantieri-section {
  padding: 120px 0;
  background: #fff;
}
.mc-cantiere-card {
  display: flex; flex-direction: column; height: 100%;
  text-decoration: none; color: inherit;
  background: #fff; border-radius: var(--mc-radius);
  border: 1px solid var(--mc-border);
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(0,0,0,.06);
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-cantiere-card-body { display: flex; flex-direction: column; flex: 1; }
.mc-cantiere-card-meta { margin-top: auto; }
.mc-cantiere-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(0,0,0,.14);
  border-color: var(--mc-light);
}
.mc-cantiere-card-img {
  position: relative; width: 100%; aspect-ratio: 4/3;
  overflow: hidden; background: var(--mc-pale);
}
.mc-cantiere-card-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s ease;
}
.mc-cantiere-card:hover .mc-cantiere-card-img img { transform: scale(1.08); }
.mc-cantiere-card-noimg {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 56px; color: var(--mc);
  background: linear-gradient(135deg, var(--mc-pale), var(--mc-light));
}
.mc-cantiere-badge {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 50px;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  font-size: 11px; font-weight: 800; letter-spacing: .04em;
  color: var(--mc-ink); text-transform: uppercase;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.mc-cantiere-badge-dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--mc);
  animation: cantiereDotPulse 2s ease-in-out infinite;
}
.mc-cantiere-badge-progress .mc-cantiere-badge-dot { background: #f5a623; }
@keyframes cantiereDotPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(58,125,44,.5); }
  50% { box-shadow: 0 0 0 6px rgba(58,125,44,0); }
}
.mc-cantiere-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.15) 100%);
  pointer-events: none;
}
.mc-cantiere-card-body { padding: 22px 20px; }
.mc-cantiere-card-title {
  font-size: 18px; font-weight: 800; color: var(--mc-ink);
  margin-bottom: 8px;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
}
.mc-cantiere-card-loc {
  font-size: 13px; color: var(--mc-ink-secondary);
  margin-bottom: 16px;
  display: flex; align-items: center; gap: 6px;
}
.mc-cantiere-card-loc i { color: var(--mc); }
.mc-cantiere-card-meta {
  display: flex; gap: 16px; padding-top: 14px;
  border-top: 1px solid var(--mc-border);
  font-size: 12px; font-weight: 600; color: var(--mc-ink-muted);
}
.mc-cantiere-card-meta span { display: inline-flex; align-items: center; gap: 5px; }
.mc-cantiere-card-meta i { color: var(--mc); }

/* =================================================================
 * Blog section (home) — magazine style
 * ================================================================= */
.mc-blog-section {
  padding: 120px 0;
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
}
.mc-blog-card {
  display: flex; flex-direction: column; text-decoration: none; color: inherit;
  background: #fff; border-radius: var(--mc-radius);
  border: 1px solid var(--mc-border); overflow: hidden;
  box-shadow: 0 8px 28px rgba(0,0,0,.06);
  transition: all .4s cubic-bezier(.4,0,.2,1);
  height: 100%;
}
.mc-blog-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(0,0,0,.14);
}
.mc-blog-card-img {
  position: relative; width: 100%; aspect-ratio: 16/10;
  overflow: hidden;
}
.mc-blog-card-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s ease;
}
.mc-blog-card:hover .mc-blog-card-img img { transform: scale(1.08); }
.mc-blog-card-noimg {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 48px; color: var(--mc);
  background: linear-gradient(135deg, var(--mc-pale), var(--mc-light));
}
.mc-blog-category {
  position: absolute; top: 14px; left: 14px;
  padding: 6px 14px; border-radius: 50px;
  background: var(--mc); color: #fff;
  font-size: 11px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: 0 4px 16px rgba(58,125,44,.3);
}
.mc-blog-card-body {
  padding: 22px 20px;
  display: flex; flex-direction: column; flex: 1;
}
.mc-blog-card-body .mc-blog-read { margin-top: auto; }
.mc-blog-date {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; color: var(--mc-ink-muted);
  margin-bottom: 12px;
}
.mc-blog-date i { color: var(--mc); }
.mc-blog-title {
  font-size: 17px; font-weight: 800; color: var(--mc-ink);
  margin-bottom: 10px; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.mc-blog-card:hover .mc-blog-title { color: var(--mc); }
.mc-blog-excerpt {
  font-size: 14px; color: var(--mc-ink-secondary); line-height: 1.6;
  margin-bottom: 14px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.mc-blog-read {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: var(--mc);
  transition: gap .3s;
}
.mc-blog-card:hover .mc-blog-read { gap: 12px; }

/* =================================================================
 * Perché Makecasa — premium cards with numbers
 * ================================================================= */
.mc-perche-section {
  padding: 140px 0;
  background: #fff;
  position: relative; overflow: hidden;
}
.mc-perche-section::before {
  content: ''; position: absolute; top: -100px; right: -100px;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.08), transparent 60%);
  pointer-events: none;
}
.mc-perche-section::after {
  content: ''; position: absolute; bottom: -100px; left: -100px;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(184,221,176,.15), transparent 60%);
  pointer-events: none;
}
.mc-perche-card {
  position: relative; height: 100%;
  background: #fff; border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius);
  padding: 36px 28px 32px;
  box-shadow: 0 8px 28px rgba(0,0,0,.06);
  transition: all .4s cubic-bezier(.4,0,.2,1);
  overflow: hidden;
}
.mc-perche-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--mc), var(--mc-medium));
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.mc-perche-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 60px rgba(58,125,44,.15);
  border-color: var(--mc-light);
}
.mc-perche-card:hover::before { transform: scaleX(1); }
.mc-perche-num {
  position: absolute; top: 16px; right: 22px;
  font-size: 72px; font-weight: 900; line-height: 1;
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-medium) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -3px; opacity: .15;
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-perche-card:hover .mc-perche-num {
  opacity: .35;
  transform: scale(1.15) translate(-4px, -4px);
}
.mc-perche-icon {
  width: 64px; height: 64px; border-radius: var(--mc-radius-sm);
  background: linear-gradient(135deg, var(--mc-pale), #d4ebd0);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 26px; color: var(--mc);
  margin-bottom: 24px; position: relative; z-index: 1;
  transition: all .4s cubic-bezier(.4,0,.2,1);
}
.mc-perche-card:hover .mc-perche-icon {
  background: linear-gradient(135deg, var(--mc), var(--mc-dark));
  color: #fff;
  transform: rotate(-5deg) scale(1.05);
  box-shadow: 0 12px 28px rgba(58,125,44,.3);
}
.mc-perche-title {
  font-size: 19px; font-weight: 800; color: var(--mc-ink);
  margin-bottom: 12px; position: relative; z-index: 1;
}
.mc-perche-text {
  font-size: 14px; color: var(--mc-ink-secondary);
  line-height: 1.6; margin: 0; position: relative; z-index: 1;
}

/* =================================================================
 * Builder canvas — costruisci il tuo immobile ideale
 * ================================================================= */
.mc-builder-section {
  padding: 100px 0;
  background: #fff;
  position: relative; overflow: hidden;
}
.mc-builder-section::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    radial-gradient(ellipse at 15% 30%, rgba(58,125,44,.05), transparent 50%),
    radial-gradient(ellipse at 85% 70%, rgba(184,221,176,.12), transparent 50%);
}
.mc-builder-section .container { position: relative; z-index: 1; }

.mc-builder {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  max-width: 1100px; margin: 0 auto;
  background: #fff;
  border-radius: var(--mc-radius);
  border: 1px solid var(--mc-border);
  box-shadow: 0 30px 80px rgba(58,125,44,.12);
  overflow: hidden;
  min-height: 440px;
}
.mc-builder > * { min-width: 0; }
.mc-builder-rooms { min-width: 0; }
.mc-builder-room { min-width: 0; }
.mc-builder-room span { min-width: 0; }
@media (max-width: 768px) {
  .mc-builder { grid-template-columns: 1fr; }
}

/* Palette sidebar */
.mc-builder-palette {
  background: linear-gradient(160deg, var(--mc) 0%, var(--mc-dark) 60%, #1a3d14 100%);
  color: #fff;
  padding: 22px 18px;
  display: flex; flex-direction: column;
}
.mc-builder-side-title {
  font-size: 10px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--mc-light);
  margin-bottom: 10px;
}
.mc-builder-rooms {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px;
}
.mc-builder-room {
  display: flex; flex-direction: column; align-items: center;
  padding: 10px 4px; border-radius: var(--mc-radius-xs);
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff; cursor: grab; font-family: inherit;
  transition: all .25s ease;
  text-align: center;
}
.mc-builder-room:active { cursor: grabbing; }
.mc-builder-room:hover {
  background: rgba(255,255,255,.2);
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.3);
}
.mc-builder-room i { font-size: 16px; margin-bottom: 3px; color: var(--mc-light); }
.mc-builder-room span { font-size: 9px; font-weight: 700; line-height: 1.1; }
.mc-builder-side-title.mt-3 { margin-top: 14px !important; }
.mc-builder-tip {
  margin-top: 14px;
  padding: 8px 10px; border-radius: var(--mc-radius-xs);
  background: rgba(255,255,255,.08);
  font-size: 10px; color: rgba(255,255,255,.7);
  display: flex; align-items: center; gap: 6px;
}
.mc-builder-tip i { color: var(--mc-light); }

/* Canvas area */
.mc-builder-canvas-wrap {
  display: flex; flex-direction: column;
  padding: 22px;
}
.mc-builder-canvas {
  flex: 1; min-height: 200px;
  border: 2px dashed var(--mc-border);
  border-radius: var(--mc-radius-sm);
  background:
    linear-gradient(rgba(58,125,44,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(58,125,44,.02) 1px, transparent 1px);
  background-size: 24px 24px;
  background-color: #fafcf9;
  padding: 16px;
  display: flex; align-items: center; justify-content: center;
  transition: all .3s;
}
.mc-builder-canvas.mc-builder-drag-over {
  border-color: var(--mc); background-color: var(--mc-pale);
  transform: scale(1.005);
}
.mc-builder-empty {
  text-align: center; color: var(--mc-ink-muted);
}
.mc-builder-empty-icon {
  width: 52px; height: 52px; border-radius: 50%;
  background: var(--mc-pale); color: var(--mc);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; margin-bottom: 10px;
}
.mc-builder-empty-text {
  font-size: 14px; font-weight: 700; color: var(--mc-ink); margin-bottom: 2px;
}
.mc-builder-empty-hint {
  font-size: 12px; color: var(--mc-ink-muted);
}

.mc-builder-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
  gap: 8px; width: 100%;
  align-content: flex-start;
  align-self: stretch;
}
.mc-builder-tile {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 14px 8px 12px; border-radius: var(--mc-radius-xs);
  background: linear-gradient(135deg, #fff 0%, var(--mc-pale) 100%);
  border: 2px solid var(--mc-light);
  cursor: pointer;
  transition: all .25s ease;
  animation: builderTileIn .35s cubic-bezier(.4,0,.2,1);
}
@keyframes builderTileIn {
  from { opacity: 0; transform: scale(.85) translateY(8px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
.mc-builder-tile:hover {
  border-color: #d04545; background: linear-gradient(135deg, #fff 0%, #fde8e8 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(208,69,69,.18);
}
.mc-builder-tile i { font-size: 22px; color: var(--mc); margin-bottom: 4px; transition: color .25s; }
.mc-builder-tile:hover i { color: #d04545; }
.mc-builder-tile-name {
  font-size: 10px; font-weight: 700; color: var(--mc-ink);
  text-transform: capitalize; line-height: 1.1;
}
.mc-builder-tile-x {
  position: absolute; top: -7px; right: -7px;
  width: 22px; height: 22px; border-radius: 50%;
  background: #d04545; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; line-height: 1;
  border: 2px solid #fff;
  box-shadow: 0 4px 12px rgba(208,69,69,.35);
  transition: all .25s ease;
  opacity: .92;
}
.mc-builder-tile:hover .mc-builder-tile-x {
  opacity: 1; transform: scale(1.15);
}

/* Stats footer */
.mc-builder-stats {
  display: grid; grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 8px; margin-top: 14px;
}
.mc-builder-stat {
  text-align: center;
  padding: 10px 6px;
  border-radius: var(--mc-radius-xs);
  background: var(--mc-pale);
  border: 1px solid var(--mc-light);
}
.mc-builder-stat-num {
  font-size: 22px; font-weight: 900; color: var(--mc-dark);
  letter-spacing: -.5px; line-height: 1;
}
.mc-builder-stat-label {
  font-size: 10px; font-weight: 700; color: var(--mc);
  text-transform: uppercase; letter-spacing: .04em;
  margin-top: 2px;
}

/* Actions footer */
.mc-builder-actions {
  display: flex; justify-content: space-between; gap: 10px;
  margin-top: 14px; flex-wrap: wrap;
}
.mc-builder-actions .btn { padding: 8px 18px; font-size: 13px; }
@media (max-width: 576px) {
  .mc-builder-actions { flex-direction: column; }
  .mc-builder-actions .btn { width: 100%; }
}

/* =================================================================
 * Swipe Tinder-style section
 * ================================================================= */
.mc-swipe-section {
  padding: 100px 0;
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
  position: relative; overflow: hidden;
}
.mc-swipe-section::before {
  content: ''; position: absolute; top: 10%; right: -10%;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,90,90,.08), transparent 70%);
  pointer-events: none;
}
.mc-swipe-section::after {
  content: ''; position: absolute; bottom: 10%; left: -10%;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(58,125,44,.1), transparent 70%);
  pointer-events: none;
}
.mc-swipe-section .container { position: relative; z-index: 1; }
.mc-swipe-hint-row {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 999px;
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(58,125,44,.12);
  font-size: 12px; font-weight: 600;
  color: var(--mc-dark);
  margin-bottom: 0;
}
.mc-swipe-hint-row i { color: var(--mc); font-size: 14px; }
.mc-swipe-deck-wrap {
  max-width: 380px; margin: 0 auto;
  position: relative;
}
.mc-swipe-counter {
  position: absolute; top: -36px; left: 50%;
  transform: translateX(-50%);
  padding: 6px 16px; border-radius: 50px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  font-size: 12px; font-weight: 800;
  color: var(--mc-ink);
  letter-spacing: .04em;
  z-index: 2;
  z-index: 10;
}
.mc-swipe-counter span { color: var(--mc); }
/* Mobile: counter non absolute per non sovrapporsi all'hint row */
@media (max-width: 767.98px) {
  .mc-swipe-section .text-center.mb-5 {
    margin-bottom: 20px !important;
  }
  .mc-swipe-counter {
    position: static;
    transform: none;
    display: inline-block;
    margin: 0 auto 14px;
  }
  .mc-swipe-deck-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}
.mc-swipe-deck {
  position: relative;
  width: 100%; height: 520px;
}
.mc-swipe-card {
  position: absolute; inset: 0;
  border-radius: var(--mc-radius);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 16px 48px rgba(0,0,0,.18);
  cursor: grab;
  transition: transform .35s cubic-bezier(.4,0,.2,1), opacity .35s ease;
  user-select: none;
  touch-action: none;
}
.mc-swipe-card:active { cursor: grabbing; }
.mc-swipe-card-img {
  position: relative; width: 100%; height: 100%;
}
.mc-swipe-card-img img {
  width: 100%; height: 100%; object-fit: cover;
  pointer-events: none; user-select: none;
}
.mc-swipe-card-gallery {
  position: absolute; inset: 0;
}
.mc-swipe-card-slide {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity .28s ease;
}
/* Default: solo la prima foto è visibile (statica).
   L'hold sulla card (gestito in JS) toggla .is-cycling sulla gallery e .is-active
   sulla slide corrente, ciclando rapidamente tra le foto. */
.mc-swipe-card-slide.is-active { opacity: 1; }
.mc-swipe-card-gallery:not(.is-cycling) > .mc-swipe-card-slide:first-child { opacity: 1; }

/* Hold indicator: pallini in alto tipo "stories" che segnalano quale foto sta scorrendo */
.mc-swipe-card-gallery .mc-swipe-dots {
  position: absolute; top: 10px; left: 12px; right: 12px;
  display: flex; gap: 4px; z-index: 4;
  opacity: 0;
  transition: opacity .2s ease;
  pointer-events: none;
}
.mc-swipe-card-gallery.is-cycling .mc-swipe-dots { opacity: 1; }
.mc-swipe-card-gallery .mc-swipe-dot {
  flex: 1 1 0;
  height: 3px; border-radius: 3px;
  background: rgba(255,255,255,.35);
  transition: background-color .2s ease;
}
.mc-swipe-card-gallery .mc-swipe-dot.is-active { background: rgba(255,255,255,.95); }

.mc-swipe-card-noimg {
  position: absolute; inset: 0;
  overflow: hidden;
  background: linear-gradient(135deg, var(--mc-pale), var(--mc-light));
}
.mc-swipe-card-noimg svg {
  width: 100%; height: 100%; display: block;
}
.mc-swipe-noimg-label {
  position: absolute; bottom: 18px; left: 18px;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  color: var(--mc-dark);
  font-size: 12px; font-weight: 600;
  padding: 6px 12px; border-radius: 999px;
  display: inline-flex; align-items: center;
}
.mc-swipe-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.85) 100%);
  pointer-events: none;
}
/* Stamps LIKE / NOPE */
.mc-swipe-stamp {
  position: absolute; top: 32px;
  padding: 10px 22px; border-radius: 8px;
  font-size: 28px; font-weight: 900;
  letter-spacing: 2px;
  border: 4px solid;
  text-transform: uppercase;
  opacity: 0; pointer-events: none;
}
.mc-swipe-stamp-like {
  right: 24px; color: #2ecc71; border-color: #2ecc71;
  transform: rotate(15deg);
}
.mc-swipe-stamp-nope {
  left: 24px; color: #e74c3c; border-color: #e74c3c;
  transform: rotate(-15deg);
}
/* Card info bottom */
.mc-swipe-card-info {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 22px 24px;
  color: #fff;
  pointer-events: none;
}
.mc-swipe-card-badge {
  display: inline-flex;
  padding: 5px 12px; border-radius: 50px;
  background: rgba(255,255,255,.95);
  color: var(--mc-dark);
  font-size: 10px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .04em;
  margin-bottom: 10px;
}
.mc-swipe-seen-badge {
  position: absolute;
  top: 14px; right: 14px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 50px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 11px; font-weight: 700;
  letter-spacing: .02em;
  backdrop-filter: blur(8px);
  z-index: 3;
}
.mc-swipe-seen-badge i { font-size: 13px; }
.mc-swipe-card-price {
  font-size: 32px; font-weight: 900;
  color: #fff; line-height: 1;
  letter-spacing: -1px;
  margin-bottom: 8px;
  text-shadow: 0 2px 12px rgba(0,0,0,.3);
}
.mc-swipe-card-loc {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 600;
  margin-bottom: 12px;
  opacity: .95;
}
.mc-swipe-card-loc i { color: var(--mc-light); }
.mc-swipe-card-meta {
  display: flex; gap: 8px; flex-wrap: wrap;
  align-items: center;
}
.mc-swipe-card-meta > span {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 11px; border-radius: 50px;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  font-size: 11px; font-weight: 700;
}
.mc-swipe-card-meta i { font-size: 11px; }
/* Action buttons */
.mc-swipe-actions {
  display: flex; justify-content: center; gap: 28px;
  margin-top: 32px;
}
.mc-swipe-btn {
  width: 64px; height: 64px; border-radius: 50%;
  background: #fff; border: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; cursor: pointer;
  box-shadow: 0 12px 32px rgba(0,0,0,.15);
  transition: all .25s cubic-bezier(.4,0,.2,1);
}
.mc-swipe-btn:hover {
  transform: translateY(-4px) scale(1.08);
  box-shadow: 0 16px 40px rgba(0,0,0,.2);
}
.mc-swipe-btn:active { transform: translateY(-2px) scale(0.98); }
.mc-swipe-btn-nope { color: #e74c3c; }
.mc-swipe-btn-nope:hover { background: #e74c3c; color: #fff; }
.mc-swipe-btn-like { color: #2ecc71; }
.mc-swipe-btn-like:hover { background: #2ecc71; color: #fff; }
/* Empty state (after all swiped) */
.mc-swipe-empty {
  position: absolute; inset: 0;
  background: #fff; border-radius: var(--mc-radius);
  border: 1px solid var(--mc-border);
  box-shadow: 0 16px 48px rgba(0,0,0,.12);
  display: none;
  flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 40px 32px;
  z-index: 200;
}
.mc-swipe-empty.is-visible { display: flex; }
.mc-swipe-empty-icon {
  width: 88px; height: 88px; border-radius: 50%;
  background: linear-gradient(135deg, #ff6b6b, #ee5a52);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 40px; margin-bottom: 20px;
  box-shadow: 0 12px 32px rgba(238,90,82,.4);
}
.mc-swipe-empty-title {
  font-size: 26px; font-weight: 900;
  color: var(--mc-ink);
  margin-bottom: 8px; letter-spacing: -.5px;
}
.mc-swipe-empty-text {
  font-size: 14px; color: var(--mc-ink-secondary);
  margin-bottom: 24px;
}
.mc-swipe-empty-text strong { color: var(--mc); font-size: 18px; }
.mc-swipe-empty-actions {
  display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;
}

/* =================================================================
 * Bottom sections spacing (home)
 * ================================================================= */
.mc-testimonials-section {
  padding: 120px 0;
  background: #fff;
}
.mc-contact-section {
  padding: 120px 0;
  background: linear-gradient(180deg, #f5f9f3 0%, #eaf3e6 100%);
}
.mc-categories-section {
  padding: 120px 0;
  background: #fff;
}
.mc-cta-section {
  padding: 140px 0;
}

/* =================================================================
 * Contact card wrapper (home)
 * ================================================================= */
.mc-contact-card {
  background: #fff;
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius);
  padding: 48px;
  box-shadow: 0 20px 60px rgba(0,0,0,.08);
  max-width: 1100px; margin: 0 auto;
}
@media (max-width: 768px) {
  .mc-contact-card { padding: 28px 24px; }
}

/* =================================================================
 * Contact form (home)
 * ================================================================= */
.mc-contact-home-form .form-control {
  border-radius: var(--mc-radius-xs);
  border: 1px solid var(--mc-border);
  padding: 12px 16px;
  font-size: 14px;
  transition: all var(--mc-tr);
}
.mc-contact-home-form .form-control:focus {
  border-color: var(--mc-light);
  box-shadow: 0 0 0 3px rgba(58,125,44,.1);
}

/* =================================================================
 * Map Search Bar (home map modal)
 * ================================================================= */
.mc-map-search-bar {
  position: absolute; bottom: 24px; left: 50%;
  transform: translateX(-50%); z-index: 1000;
  background: #fff; border-radius: var(--mc-radius-sm);
  box-shadow: var(--mc-shadow-lg);
  padding: 12px 20px; display: none;
  align-items: center; gap: 12px;
}
.mc-map-search-count { font-size: 14px; font-weight: 600; }
.mc-map-search-hint { color: var(--mc-ink-muted); font-size: 13px; }

/* =================================================================
 * Banner Wow (animated visual break)
 * ================================================================= */
.mc-banner-wow {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--mc) 0%, var(--mc-dark) 50%, #1a3d14 100%);
  color: #fff;
}
.mc-banner-wow-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 600px 400px at 20% 50%, rgba(78,156,60,.4), transparent),
    radial-gradient(ellipse 400px 300px at 80% 30%, rgba(184,221,176,.15), transparent);
  animation: bannerShift 8s ease-in-out infinite alternate;
}
@keyframes bannerShift {
  0% { transform: translateX(-20px) scale(1); }
  100% { transform: translateX(20px) scale(1.05); }
}
.mc-banner-wow-title {
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 800; letter-spacing: -1px;
  color: #fff; margin-bottom: 12px;
}
.mc-banner-wow-text {
  font-size: 16px; opacity: .8; margin-bottom: 0;
  max-width: 500px; line-height: 1.6;
}

/* =================================================================
 * Makeaffitti CTA (mostrata quando site_config.mostra_affitto=False)
 * ================================================================= */
.mc-makeaffitti-cta {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #3f75a4 0%, #2f5c83 55%, #1f4365 100%);
  color: #fff;
}
.mc-makeaffitti-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 700px 420px at 15% 45%, rgba(120,175,220,.35), transparent),
    radial-gradient(ellipse 380px 280px at 85% 60%, rgba(190,215,240,.18), transparent);
  animation: bannerShift 10s ease-in-out infinite alternate;
  pointer-events: none;
}
.mc-makeaffitti-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; letter-spacing: .4px;
  text-transform: uppercase;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  padding: 6px 14px; border-radius: 999px;
  margin-bottom: 16px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.mc-makeaffitti-title {
  font-size: clamp(24px, 3.6vw, 34px);
  font-weight: 800; letter-spacing: -.6px;
  color: #fff; margin-bottom: 10px; line-height: 1.15;
}
.mc-makeaffitti-title strong { color: #e6f1fb; font-weight: 800; }
.mc-makeaffitti-text {
  font-size: 16px; opacity: .88; margin-bottom: 0;
  max-width: 560px; line-height: 1.6;
}
.mc-makeaffitti-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 14px 28px; border-radius: 50px;
  background: #fff; color: #2f5c83;
  font-weight: 700; font-size: 15px; text-decoration: none;
  box-shadow: 0 8px 28px rgba(0,0,0,.22);
  transition: all var(--mc-tr);
}
.mc-makeaffitti-btn:hover {
  background: #e6f1fb; color: #1f4365;
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0,0,0,.28);
}
.mc-makeaffitti-btn i { transition: transform var(--mc-tr); }
.mc-makeaffitti-btn:hover i { transform: translateX(4px); }
@media (max-width: 767.98px) {
  .mc-makeaffitti-cta .row { text-align: center; }
  .mc-makeaffitti-cta .text-lg-end { text-align: center !important; }
  .mc-makeaffitti-text { margin-left: auto; margin-right: auto; }
}

/* =================================================================
 * Lifestyle Matcher Cards
 * ================================================================= */
.mc-lifestyle-card {
  display: block; text-decoration: none; color: var(--mc-ink);
  padding: 28px 20px; text-align: center;
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius);
  background: var(--mc-bg-card);
  transition: all .3s var(--mc-tr);
  height: 100%;
}
.mc-lifestyle-card:hover {
  border-color: var(--mc); color: var(--mc-ink);
  transform: translateY(-6px);
  box-shadow: var(--mc-shadow-lg);
}
.mc-lifestyle-icon { font-size: 40px; margin-bottom: 16px; }
.mc-lifestyle-title {
  font-size: 17px; font-weight: 700; margin-bottom: 8px;
}
.mc-lifestyle-desc {
  font-size: 13px; color: var(--mc-ink-secondary);
  line-height: 1.5; margin-bottom: 16px;
}
.mc-lifestyle-tag {
  display: inline-block;
  font-size: 11px; font-weight: 600; color: var(--mc);
  background: var(--mc-pale);
  padding: 4px 12px; border-radius: 50px;
}

/* =================================================================
 * Aurora Break (animated canvas section)
 * ================================================================= */
.mc-aurora-break {
  position: relative; overflow: hidden;
  min-height: 360px; display: flex; align-items: center;
}
.mc-aurora-break canvas {
  position: absolute; inset: 0; width: 100%; height: 100%;
}
/* Glass frost overlay on top of canvas */
.mc-aurora-break::after {
  content: ''; position: absolute; inset: 0;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(2px) saturate(120%);
  -webkit-backdrop-filter: blur(2px) saturate(120%);
  pointer-events: none; z-index: 1;
}
.mc-aurora-content {
  position: relative; z-index: 2;
  padding: 80px 0; width: 100%;
}
.mc-aurora-title {
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 900; letter-spacing: -2px;
  color: #fff; margin-bottom: 16px;
  text-shadow: 0 4px 32px rgba(0,0,0,.3);
}
.mc-aurora-text {
  font-size: 18px; color: rgba(255,255,255,.85);
  max-width: 480px; margin: 0 auto; line-height: 1.6;
  text-shadow: 0 1px 8px rgba(0,0,0,.15);
}

/* =================================================================
 * Energy badge (detail page)
 * ================================================================= */
.mc-energy-badge {
  display: flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: 12px;
  font-size: 20px; font-weight: 800; color: #fff;
  background: var(--mc); flex-shrink: 0;
}

/* Amenity row (detail page grid) */
.mc-amenity-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--mc-ink-secondary); padding: 4px 0;
}

/* =================================================================
 * Horizontal card (lista immobili stile Immobiliare.it)
 * ================================================================= */
.mc-hcard {
  display: flex; background: #fff; border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm); overflow: hidden;
  transition: var(--mc-tr); margin-bottom: 16px;
}
.mc-hcard:hover { box-shadow: var(--mc-shadow-md); border-color: var(--mc-light); }
.mc-hcard-img {
  flex: 0 0 280px; position: relative; overflow: hidden; background: var(--mc-ghost);
}
.mc-hcard-photo {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.mc-hcard-badges {
  position: absolute; top: 8px; left: 8px; z-index: 3;
  display: flex; flex-direction: column; gap: 4px;
}
.mc-hcard-body {
  flex: 1; min-width: 0; padding: 16px 20px; display: flex;
  flex-direction: column; gap: 6px;
}
.mc-hcard-top {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
}
.mc-hcard-price {
  font-size: 22px; font-weight: 800; color: var(--mc-ink);
  letter-spacing: -.5px;
}
.mc-hcard-price-suffix { font-size: 13px; font-weight: 400; color: var(--mc-ink-muted); }
.mc-hcard-agency { font-size: 12px; color: var(--mc-ink-muted); white-space: nowrap; }
.mc-hcard-title {
  font-size: 15px; font-weight: 600; margin: 0;
  line-height: 1.3; color: var(--mc-ink);
}
.mc-hcard-title a { color: inherit; text-decoration: none; }
.mc-hcard-title a:hover { color: var(--mc); }
.mc-hcard-stats {
  display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px;
  color: var(--mc-ink-secondary);
}
.mc-hcard-stats span { display: flex; align-items: center; gap: 4px; }
.mc-hcard-stats i { font-size: 14px; color: var(--mc-ink-muted); }
.mc-hcard-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.mc-hcard-pill {
  font-size: 11px; padding: 3px 10px; border-radius: 50px;
  background: var(--mc-ghost); color: var(--mc-ink-secondary);
  border: 1px solid var(--mc-border);
}
.mc-hcard-excerpt {
  font-size: 13px; color: var(--mc-ink-muted); line-height: 1.5;
  margin: 0; display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.mc-hcard-actions {
  display: flex; gap: 8px; margin-top: auto; padding-top: 8px;
}
.mc-hcard-action-btn {
  font-size: 12px; font-weight: 600; padding: 6px 14px;
  border-radius: 6px; border: 1px solid var(--mc-border);
  color: var(--mc-ink-secondary); text-decoration: none;
  transition: var(--mc-tr);
}
.mc-hcard-action-btn:hover { border-color: var(--mc); color: var(--mc); }
@media (max-width: 767.98px) {
  .mc-hcard { flex-direction: column; }
  .mc-hcard-img { flex: none; height: 200px; }
}

/* =================================================================
 * Listings: filter pills
 * ================================================================= */
.mc-filter-pills {
  display: flex; align-items: center; gap: 8px;
  overflow-x: auto; padding: 12px 0;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.mc-filter-pills::-webkit-scrollbar { display: none; }
.mc-filter-pill {
  display: flex; align-items: center; gap: 4px;
  font-size: 13px; font-weight: 500; white-space: nowrap;
  padding: 7px 16px; border-radius: 50px;
  border: 1px solid var(--mc-border); background: #fff;
  color: var(--mc-ink); cursor: pointer; transition: var(--mc-tr);
  text-decoration: none;
}
.mc-filter-pill:hover { border-color: var(--mc); color: var(--mc); }
.mc-filter-pill.active, .mc-filter-pill[aria-expanded="true"] {
  background: var(--mc); color: #fff; border-color: var(--mc);
}
.mc-filter-pill i { font-size: 14px; }
.mc-filter-pill-count {
  font-size: 11px; background: var(--mc); color: #fff;
  border-radius: 50%; width: 18px; height: 18px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
}

/* =================================================================
 * Detail: sticky header bar
 * ================================================================= */
.mc-detail-stickybar {
  position: fixed; left: 0; right: 0; z-index: 1015;
  top: var(--mc-navbar-h, 64px);
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%);
  border-bottom: 1px solid var(--mc-border);
  box-shadow: 0 2px 16px rgba(0,0,0,.06);
  transform: translateY(-200%); transition: transform .3s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
}
.mc-detail-stickybar.visible { transform: translateY(0); pointer-events: auto; }
/* Scroll offset for sections targeted by sticky tabs */
#gallery, #descrizione, #caratteristiche, #planimetrie, #mappa {
  scroll-margin-top: calc(var(--mc-navbar-h, 64px) + 60px);
}
@media (max-width: 767.98px) {
  .mc-detail-stickybar { display: none !important; }
  #gallery, #descrizione, #caratteristiche, #planimetrie, #mappa {
    scroll-margin-top: var(--mc-navbar-h, 64px);
  }
}

/* Lightbox: no zoom cursor on image */
.gslide-image img { cursor: default !important; }
.gslide-image img.zoomable { cursor: default !important; }
.mc-detail-stickybar-inner {
  display: flex; align-items: center; gap: 16px; padding: 8px 0;
}
.mc-detail-stickybar-thumb {
  width: 48px; height: 36px; border-radius: 6px;
  object-fit: cover; flex-shrink: 0;
}
.mc-detail-stickybar-price {
  font-size: 18px; font-weight: 800; color: var(--mc-ink);
  white-space: nowrap;
}
.mc-detail-stickybar-stats {
  display: flex; gap: 10px; font-size: 13px; color: var(--mc-ink-secondary);
  white-space: nowrap;
}
.mc-detail-stickybar-stats span { display: flex; align-items: center; gap: 3px; }

/* Detail: tab navigation */
.mc-detail-tabs {
  display: flex; gap: 0; overflow-x: auto; margin-left: auto;
  scrollbar-width: none;
}
.mc-detail-tabs::-webkit-scrollbar { display: none; }
.mc-detail-tab {
  font-size: 13px; font-weight: 600; padding: 8px 16px;
  color: var(--mc-ink-muted); text-decoration: none;
  border-bottom: 2px solid transparent; white-space: nowrap;
  transition: var(--mc-tr);
}
.mc-detail-tab:hover { color: var(--mc); }
.mc-detail-tab.active { color: var(--mc); border-bottom-color: var(--mc); }

/* Detail: characteristics grid (2-col with icons) */
.mc-chars-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
}
.mc-char-item {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--mc-ghost);
}
.mc-char-item i { font-size: 18px; color: var(--mc-ink-muted); margin-top: 2px; flex-shrink: 0; }
.mc-char-label { font-size: 13px; color: var(--mc-ink-muted); }
.mc-char-value { font-size: 14px; font-weight: 600; color: var(--mc-ink); }
@media (max-width: 575.98px) { .mc-chars-grid { grid-template-columns: 1fr; } }

/* Detail: sidebar contact card */
.mc-contact-sidebar {
  background: #fff; border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius-sm); padding: 20px;
}
.mc-contact-sidebar-title {
  font-size: 16px; font-weight: 700; margin-bottom: 16px; color: var(--mc-ink);
}
.mc-contact-btn-primary {
  display: block; width: 100%; padding: 12px;
  background: var(--mc); color: #fff; border: none;
  border-radius: var(--mc-radius-xs); font-size: 14px;
  font-weight: 700; cursor: pointer; transition: var(--mc-tr);
  text-align: center; text-decoration: none;
}
.mc-contact-btn-primary:hover { background: var(--mc-dark); color: #fff; }
.mc-contact-btn-outline {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; padding: 10px; background: #fff;
  border: 1px solid var(--mc-border); border-radius: var(--mc-radius-xs);
  font-size: 13px; font-weight: 600; color: var(--mc-ink);
  cursor: pointer; transition: var(--mc-tr); text-decoration: none;
}
.mc-contact-btn-outline:hover { border-color: var(--mc); color: var(--mc); }
.mc-contact-divider {
  display: flex; align-items: center; gap: 12px;
  font-size: 12px; color: var(--mc-ink-muted); margin: 12px 0;
}
.mc-contact-divider::before, .mc-contact-divider::after {
  content: ''; flex: 1; border-top: 1px solid var(--mc-border);
}

/* Detail: price per sqm */
.mc-price-mq {
  font-size: 14px; color: var(--mc-ink-muted); font-weight: 500;
}

/* Detail: costs table */
.mc-costs-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.mc-cost-item-label { font-size: 13px; color: var(--mc-ink-muted); }
.mc-cost-item-value { font-size: 15px; font-weight: 600; color: var(--mc-ink); }

/* Detail: energy class colors */
.mc-energy-A4 { background: #00843d; }
.mc-energy-A3 { background: #00843d; }
.mc-energy-A2 { background: #2d9e41; }
.mc-energy-A1 { background: #3fae49; }
.mc-energy-B  { background: #8cc63f; }
.mc-energy-C  { background: #d4e157; color: #333; }
.mc-energy-D  { background: #ffeb3b; color: #333; }
.mc-energy-E  { background: #ffb300; }
.mc-energy-F  { background: #f57c00; }
.mc-energy-G  { background: #e53935; }

/* =================================================================
 * Responsive
 * ================================================================= */
@media (max-width: 992px) { .mc-hero-photos { display: none; } }

/* ── Tablet (≤768px) ── */
@media (max-width: 768px) {
  .mc-search-grid-home { grid-template-columns: 1fr; }
  .mc-search-btn-group { flex-direction: row; }
  .mc-search-grid { grid-template-columns: 1fr; }
  .mc-adv-grid { grid-template-columns: 1fr 1fr; }
  .mc-cfg-grid-3 { grid-template-columns: 1fr 1fr; }
  .mc-cfg-grid-4 { grid-template-columns: 1fr 1fr; }
  /* Hero su mobile/tablet: niente piu' 100vh forzato, il contenuto si
     accomoda sotto la navbar senza spazio vuoto sopra. */
  .mc-hero { min-height: auto; justify-content: flex-start; }
  .mc-hero-inner { padding: 32px 0 40px; }

  /* Hero search card — tighter padding */
  .mc-home-search { padding: 16px; }

  /* Section header — stack title and link vertically */
  .mc-section-header { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 28px; }

  /* Content section — less vertical padding */
  .mc-content-section { padding: 40px 16px; }
  .mc-content-section-sm { padding: 0 16px 40px; }

  /* Configurator — less padding */
  .mc-configurator { padding: 24px 16px; }

  /* Valutazione form — less padding + single column grid */
  .mc-valutazione-form { padding: 24px 16px; }
  .mc-valutazione-grid { grid-template-columns: 1fr; }

  /* Stat numbers — smaller */
  .mc-stat-value { font-size: 2rem; letter-spacing: -1px; }

  /* Categoria grid — less padding */
  .mc-categoria-grid { padding: 16px 0; }
  .mc-categoria-item { padding: 6px 10px; }
  .mc-categoria-title { font-size: 14px; }

  /* Banner wow text */
  .mc-banner-wow-title { font-size: clamp(20px, 5vw, 28px); }
  .mc-banner-wow-text { font-size: 14px; }

  /* CTA section */
  .mc-cta-title-lg { font-size: clamp(24px, 5vw, 32px); }
  .mc-cta-text-lg { font-size: 14px; }

  /* Action cards less padding */
  .mc-action-card .card-body { padding: 24px !important; }
  .mc-action-title { font-size: 18px; }
  .mc-action-text { font-size: 14px; margin-bottom: 16px; }

  /* Disable card hover lift on touch */
  .card:hover { transform: none; }

  /* === New sections mobile padding === */
  .mc-zones-section,
  .mc-cantieri-section,
  .mc-actions-section,
  .mc-perche-section,
  .mc-novita-section,
  .mc-blog-section,
  .mc-testimonials-section,
  .mc-contact-section,
  .mc-categories-section,
  .mc-cta-section,
  .mc-configurator-section,
  .mc-builder-section,
  .mc-map-section { padding: 60px 0 !important; min-height: auto; }
  .mc-valutazione-bg { padding: 60px 0; }
  .mc-values-banner { padding: 70px 0; }

  /* === Configuratore: layout mobile semplificato === */
  .mc-configurator {
    grid-template-columns: 1fr; min-height: auto;
    overflow: hidden;
  }
  /* Mini header al posto della sidebar dark */
  .mc-cfg-sidebar {
    padding: 18px 20px 16px;
    flex-direction: row; align-items: center; gap: 14px;
    border-top-left-radius: var(--mc-radius);
    border-top-right-radius: var(--mc-radius);
  }
  .mc-cfg-sidebar::before, .mc-cfg-sidebar::after { display: none; }
  .mc-cfg-side-icon {
    width: 44px; height: 44px; font-size: 20px;
    margin-bottom: 0; flex-shrink: 0;
  }
  .mc-cfg-side-step {
    margin-bottom: 2px; font-size: 10px;
  }
  .mc-cfg-side-title {
    font-size: 16px; margin-bottom: 0;
  }
  .mc-cfg-side-desc { display: none; }
  .mc-cfg-progress {
    position: absolute; bottom: 0; left: 0; right: 0;
    height: 4px; border-radius: 0; margin: 0;
  }
  .mc-cfg-summary { display: none; }
  .mc-cfg-content { padding: 28px 20px 32px; }
  .mc-cfg-title { font-size: 18px; margin-bottom: 20px; }

  /* === Builder: stack mobile === */
  .mc-builder {
    grid-template-columns: 1fr; min-height: auto;
    overflow: visible; /* allow tile X badge to overflow */
    box-shadow: 0 16px 40px rgba(58,125,44,.1);
  }
  /* Stats e canvas in alto */
  .mc-builder-canvas-wrap { order: 1; padding: 18px; }
  .mc-builder-canvas {
    min-height: 140px; padding: 18px 14px 14px;
    overflow: visible;
  }
  .mc-builder-grid { padding-top: 4px; }
  .mc-builder-palette {
    order: 2; padding: 20px 16px 24px;
    border-bottom-left-radius: var(--mc-radius);
    border-bottom-right-radius: var(--mc-radius);
  }
  /* Room buttons: column layout (icon sopra, label sotto multi-line) */
  .mc-builder-rooms { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  .mc-builder-room {
    flex-direction: column; justify-content: center; align-items: center;
    padding: 12px 6px 10px; gap: 4px;
    min-width: 0;
  }
  .mc-builder-room i { font-size: 20px; margin-bottom: 0; flex-shrink: 0; }
  .mc-builder-room span {
    font-size: 11px; line-height: 1.2;
    text-align: center; flex: 1;
    white-space: normal; word-break: break-word;
    width: 100%;
  }
  .mc-builder-tip { font-size: 11px; padding: 10px 12px; }
  .mc-builder-side-title { font-size: 11px; }

  /* === Cards uniform: row-cols 2 column on tablet === */
  .mc-novita-card { height: 360px; }
  .mc-novita-price { font-size: 20px; }
  .mc-novita-title { font-size: 14px; }
  .mc-novita-meta { font-size: 11px; gap: 10px; }

  /* Cantieri */
  .mc-cantiere-card-body { padding: 16px 14px; }
  .mc-cantiere-card-title { font-size: 15px; }
  .mc-cantiere-card-loc { font-size: 12px; margin-bottom: 10px; }
  .mc-cantiere-card-meta { font-size: 11px; gap: 10px; padding-top: 10px; }

  /* Blog */
  .mc-blog-card-body { padding: 16px 14px; }
  .mc-blog-title { font-size: 15px; }
  .mc-blog-excerpt { font-size: 13px; -webkit-line-clamp: 2; }
  .mc-blog-date { font-size: 11px; margin-bottom: 8px; }

  /* Perché Makecasa */
  .mc-perche-card { padding: 28px 22px 24px; }
  .mc-perche-num { font-size: 56px; top: 12px; right: 16px; }
  .mc-perche-icon { width: 56px; height: 56px; font-size: 22px; margin-bottom: 18px; }
  .mc-perche-title { font-size: 17px; }
  .mc-perche-text { font-size: 13px; }

  /* Stat cards (already responsive) — fine-tune */
  .mc-stat-card { padding: 18px 12px; }
  .mc-stat-icon { width: 44px; height: 44px; font-size: 18px; margin-bottom: 10px; }

  /* Map button */
  .mc-map-btn { padding: 14px 28px; font-size: 14px; }

  /* Contact card padding già responsive in mc-contact-card */
  .mc-contact-card { padding: 28px 20px; }

  /* Zone place card */
  .mc-zone-place-letter { font-size: 200px; top: -10px; right: -5px; letter-spacing: -8px; }
  .mc-zone-place-name { font-size: 22px; }
  .mc-zone-place-content { padding: 22px 20px; }
  .mc-zone-place-pin { width: 40px; height: 40px; font-size: 16px; margin-bottom: 12px; }

  /* Mc-content-section spacing */
  .mc-section-white .mc-content-section { padding: 60px 16px; }

  /* === Letter spacing fix tablet === */
  .mc-section-title { letter-spacing: -.8px !important; }
  .mc-cta-title-lg { letter-spacing: -.8px !important; }
  .mc-hero-title { letter-spacing: -1px !important; }
}

/* ── Phone (≤576px) ── */
@media (max-width: 576px) {
  .mc-adv-grid { grid-template-columns: 1fr; }
  .mc-cfg-grid-3 { grid-template-columns: 1fr; }
  .mc-cfg-grid-2 { grid-template-columns: 1fr; }

  /* Hero — tighter on small phones */
  .mc-hero-inner { padding: 40px 0 24px; }
  .mc-scroll-hint { display: none; }
  .mc-hero-title { font-size: clamp(28px, 8vw, 38px); letter-spacing: -1.5px; margin-bottom: 16px; }
  .mc-hero-subtitle { font-size: 15px; margin-bottom: 28px; }

  /* Search card — minimal padding */
  .mc-home-search { padding: 12px; }

  /* Gruppo tabs — tutti e 4 devono stare sulla stessa riga su mobile.
     Flex equamente distribuito, font+padding compatti. */
  .mc-gruppo-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 4px;
    overflow: visible;
    padding-bottom: 0;
    margin-bottom: 12px;
    width: 100%;
  }
  .mc-gruppo-tabs .btn {
    flex: 1 1 0;
    min-width: 0;
    padding: 5px 6px;
    font-size: 11px;
    letter-spacing: -.2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* Su phone piccoli (<360px) font ancora più compatto per reggere "Residenziale" */
  @media (max-width: 359.98px) {
    .mc-gruppo-tabs .btn { font-size: 10px; padding: 5px 4px; }
  }

  /* Toggle buttons smaller */
  .mc-toggle-btn { font-size: 12px; padding: 6px 10px; }

  /* Content section even tighter */
  .mc-content-section { padding: 32px 12px; }
  .mc-content-section-sm { padding: 0 12px 32px; }

  /* Section titles */
  .mc-section-title { font-size: clamp(22px, 5vw, 28px); }

  /* Stats tighter */
  .mc-stat-value { font-size: 1.6rem; letter-spacing: -1px; }
  .mc-stat-label { font-size: 11px; }

  /* Categoria grid — hide vertical rule */
  .mc-categoria-grid .vr { display: none; }

  /* Icon circles */
  .mc-icon-circle { width: 56px; height: 56px; }

  /* Wave dividers smaller on phone */
  .mc-wave-top svg, .mc-wave-bottom svg { height: 24px; }

  /* Zone cards compact */
  .mc-zone-card { padding: 24px 16px; }
  .mc-zone-card-icon { width: 48px; height: 48px; font-size: 18px; }
  .mc-zone-card-title { font-size: 16px; }

  /* Values banner */
  .mc-values-title { gap: 8px 12px; }
  .mc-values-word { padding: 2px 12px; }

  /* Configurator options */
  .mc-cfg-option { padding: 14px 10px; }
  .mc-cfg-option-icon { font-size: 22px; }
  .mc-cfg-option-label { font-size: 13px; }
  .mc-cfg-option-price { padding: 12px; font-size: 14px; }

  /* Card price */
  .mc-card-price { font-size: 17px; }

  /* Banner wow — stack CTA below */
  .mc-banner-wow .row { flex-direction: column; text-align: center; }
  .mc-banner-wow .text-lg-end { text-align: center !important; }

  /* Marquee smaller */
  .mc-marquee-item { font-size: 12px; }

  /* Search action buttons — smaller on phone */
  .mc-hero-btn { padding: 10px 14px; font-size: 13px; }
  .mc-hero-btn-primary { padding: 10px 18px; font-size: 14px; }
  .mc-search-actions { gap: 8px; }

  /* Cards compact for 2-col mobile grid */
  .row[class*="row-cols"] > * { min-width: 0; }

  /* === Cards scroll horizontale mobile (immobili in evidenza) === */
  .mc-cards-scroll-mobile {
    display: flex !important; flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 14px;
    /* 4vw padding + 82vw card = ~14vw peek card successiva a destra → hint scroll */
    padding: 8px 4vw 16px !important;
    margin: 0 -16px -10px !important;
    scroll-padding-inline: 4vw;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    position: relative;
  }
  .mc-cards-scroll-mobile::-webkit-scrollbar { display: none; }
  .mc-cards-scroll-mobile > .reveal,
  .mc-cards-scroll-mobile > .col {
    flex: 0 0 82vw !important;
    max-width: 82vw !important;
    scroll-snap-align: start;
    padding: 0 !important;
    /* Bypass reveal fade: in scroll orizzontale mobile le card off-screen non
       entrerebbero mai in viewport finché non si scrolla, rendendole invisibili.
       Qui le forziamo sempre visibili così si vede subito il peek della 2a card. */
    opacity: 1;
    transform: none;
    transition: none;
  }
  .mc-cards-scroll-mobile > .reveal:not(.col) {
    flex: 0 0 82vw !important; max-width: 82vw !important;
  }
  /* Neutralise nested .col inside .reveal so row-cols-2 works */
  .row[class*="row-cols"] > .reveal > .mc-card-preview > .col,
  .row[class*="row-cols"] > .reveal > .col,
  .row[class*="row-cols"] > .mc-card-preview > .col {
    flex: none; width: 100%; padding: 0;
  }
  .card .card-body { padding: 12px 14px !important; }
  .card .card-footer { padding: 4px 14px 12px !important; font-size: 11px; }
  .mc-card-price { font-size: 15px; }
  .mc-card-price-suffix { font-size: 11px; }
  .mc-card-address, .card .card-body h3 { font-size: 12px !important; }
  .mc-card-area { font-size: 11px; }
  .mc-card-meta { font-size: 11px; }
  .mc-card-divider { height: 10px; }
  .mc-card-title { font-size: 13px; }
  .mc-card-text { font-size: 12px; }

  /* Badge smaller on mobile cards */
  .card .badge { font-size: 10px; padding: 3px 6px; }

  /* === Phone fine-tunes === */
  .mc-zones-section,
  .mc-cantieri-section,
  .mc-actions-section,
  .mc-perche-section,
  .mc-novita-section,
  .mc-blog-section,
  .mc-testimonials-section,
  .mc-contact-section,
  .mc-categories-section,
  .mc-cta-section,
  .mc-configurator-section,
  .mc-builder-section,
  .mc-map-section { padding: 48px 0 !important; }
  .mc-valutazione-bg { padding: 48px 0; }
  .mc-values-banner { padding: 56px 0; }

  /* Builder phone */
  .mc-builder-rooms { grid-template-columns: repeat(3, 1fr); }
  .mc-builder-stats { grid-template-columns: 1fr 1fr; }
  .mc-builder-actions { flex-direction: column; }
  .mc-builder-actions .btn { width: 100%; }

  /* Section description */
  .mc-section-desc { font-size: 14px; }

  /* Stats card phone */
  .mc-stat-card { padding: 14px 8px; }
  .mc-stat-value { font-size: 1.7rem; }
  .mc-stat-icon { width: 40px; height: 40px; font-size: 16px; }

  /* Section title margin */
  .text-center.mb-5 { margin-bottom: 28px !important; }

  /* === Letter spacing fix mobile (titoli appiccicati) === */
  .mc-section-title { letter-spacing: -.5px !important; }
  .mc-cta-title-lg { letter-spacing: -.5px !important; }
  .mc-hero-title { letter-spacing: -.8px !important; }
  .mc-perche-num { letter-spacing: -1px !important; }
  .mc-zone-place-name { letter-spacing: -.3px !important; }
  .mc-cfg-side-title { letter-spacing: -.3px !important; }
  .mc-novita-price { letter-spacing: 0 !important; }
  .mc-card-price { letter-spacing: 0; }
  .mc-stat-value { letter-spacing: -.3px !important; }
  .mc-builder-stat-num { letter-spacing: -.3px !important; }
  .mc-values-word { letter-spacing: -1px !important; }
  .mc-values-label { letter-spacing: .25em !important; }

  /* Contact form on contact section */
  .mc-contact-card .row { --bs-gutter-y: 1.5rem; }

  /* Valutazione form full width */
  .mc-valutazione-bg .col-lg-6 { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0s !important; transition-duration: 0s !important; }
}

/* =============================================================
   Toast messages (Django messages → fixed top-right, auto-dismiss)
   ============================================================= */
.mc-toasts {
  position: fixed;
  top: 80px; right: 20px;
  z-index: 2000;
  display: flex; flex-direction: column; gap: 10px;
  max-width: calc(100vw - 40px); width: 380px;
  pointer-events: none;
}
.mc-toast {
  pointer-events: auto;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px 12px 16px;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(16px) saturate(180%);
  border-radius: 14px;
  box-shadow: 0 8px 32px rgba(0,0,0,.12);
  border-left: 4px solid var(--mc);
  color: var(--mc-dark);
  font-size: 14px; font-weight: 500;
  opacity: 0; transform: translateX(20px);
  animation: mcToastIn .35s ease forwards;
}
.mc-toast.is-leaving { animation: mcToastOut .4s ease forwards; }
.mc-toast-text { flex: 1; }
.mc-toast-close {
  background: transparent; border: 0; padding: 4px 8px;
  font-size: 20px; line-height: 1;
  color: currentColor; opacity: .55; cursor: pointer;
}
.mc-toast-close:hover { opacity: 1; }
.mc-toast-success { border-left-color: #22c55e; }
.mc-toast-error, .mc-toast-danger { border-left-color: #ef4444; }
.mc-toast-warning { border-left-color: #f59e0b; }
.mc-toast-info { border-left-color: #3b82f6; }
@keyframes mcToastIn  { to { opacity: 1; transform: translateX(0); } }
@keyframes mcToastOut { to { opacity: 0; transform: translateX(20px); } }
@media (max-width: 576px) {
  .mc-toasts { top: 72px; right: 10px; left: 10px; width: auto; }
}

/* ============================================================================
   Upload zone (dashboard) — drop area per upload multiplo via AJAX
   ============================================================================ */
.mc-upload-zone {
  display: block;
  cursor: pointer;
  border: 2px dashed rgba(58, 125, 44, .25);
  border-radius: 14px;
  background: #fafafa;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.mc-upload-zone:hover {
  border-color: rgba(58, 125, 44, .55);
  background: #f4f9f1;
}
.mc-upload-zone.is-drag {
  border-color: var(--mc, #3a7d2c);
  background: #e8f3e2;
  transform: scale(1.01);
}
.mc-upload-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--mc-pale, #e8f3e2);
  color: var(--mc, #3a7d2c);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ============================================================================
   Pagina dettaglio sede (/agenzie/<slug>/) — v2 con hero split
   ============================================================================ */

/* Breadcrumb band — sottile, sopra il hero */
.mc-sede-bc-band {
  background: var(--mc-pale, #f4f9f1);
  border-bottom: 1px solid rgba(58, 125, 44, .08);
  padding: 12px 0;
}
.mc-sede-bc-band .breadcrumb { margin: 0; padding: 0; background: transparent; }
.mc-sede-bc-band .breadcrumb-item a {
  color: var(--mc-dark, #2c5f21);
  text-decoration: none;
  font-weight: 500;
}
.mc-sede-bc-band .breadcrumb-item a:hover { text-decoration: underline; }
.mc-sede-bc-band .breadcrumb-item.active {
  color: var(--bs-body-color);
  font-weight: 600;
}
.mc-sede-bc-band .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(58, 125, 44, .4);
}

/* Hero split — info a sinistra, mappa a destra */
.mc-sede-hero2 {
  background: linear-gradient(180deg, var(--mc-pale, #f4f9f1) 0%, #fff 100%);
  padding: 40px 0 56px;
}
.mc-sede-hero-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 0;
}
.mc-sede-tag {
  display: inline-block;
  align-self: flex-start;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(58, 125, 44, .12);
  color: var(--mc-dark, #2c5f21);
  padding: 5px 12px;
  border-radius: 999px;
}
.mc-sede-title {
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  font-weight: 900;
  letter-spacing: -.02em;
  margin: 14px 0 8px;
  line-height: 1.1;
  color: var(--bs-body-color);
}
.mc-sede-addr {
  font-size: 1.02rem;
  color: var(--bs-secondary-color, #6c757d);
  margin-bottom: 22px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.mc-sede-addr i { color: var(--mc, #3a7d2c); margin-top: 4px; flex-shrink: 0; }

.mc-sede-info-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 22px;
}
.mc-sede-info-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 12px;
  padding: 10px 14px;
}
.mc-sede-info-row > i {
  width: 36px; height: 36px;
  background: var(--mc-pale, #e8f3e2);
  color: var(--mc, #3a7d2c);
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  flex-shrink: 0;
}
.mc-sede-info-label {
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--bs-secondary-color, #6c757d);
  font-weight: 600;
}
.mc-sede-info-value {
  font-size: .98rem;
  font-weight: 600;
  color: var(--bs-body-color);
  line-height: 1.25;
}
.mc-sede-info-value a { color: inherit; text-decoration: none; }
.mc-sede-info-value a:hover { color: var(--mc, #3a7d2c); }

.mc-sede-cta-inline {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* Hero visual (mappa o foto) */
.mc-sede-hero-visual {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  background: var(--mc-pale, #e8f3e2);
  min-height: 360px;
  box-shadow: 0 14px 40px rgba(28, 40, 38, .12);
}
.mc-sede-map-wrap {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 14px 40px rgba(28, 40, 38, .12);
}
.mc-sede-map-inline { width: 100%; height: 100%; min-height: 380px; }
.mc-sede-map-link {
  position: absolute;
  bottom: 14px;
  right: 14px;
  z-index: 500;
  background: #fff;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--mc-dark, #2c5f21);
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .15);
  transition: transform .15s ease;
}
.mc-sede-map-link:hover { transform: translateY(-1px); color: var(--mc, #3a7d2c); }

.mc-sede-hero-photo {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  display: block;
}
.mc-sede-hero-placeholder {
  width: 100%;
  height: 100%;
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  color: var(--mc, #3a7d2c);
  background: linear-gradient(135deg, var(--mc-pale) 0%, var(--mc-light, #c8e3bf) 100%);
}

@media (max-width: 991.98px) {
  .mc-sede-hero2 { padding: 32px 0 40px; }
  .mc-sede-hero-visual,
  .mc-sede-map-inline,
  .mc-sede-hero-photo,
  .mc-sede-hero-placeholder { min-height: 280px; }
}
@media (max-width: 575.98px) {
  .mc-sede-hero-visual,
  .mc-sede-map-inline,
  .mc-sede-hero-photo,
  .mc-sede-hero-placeholder { min-height: 240px; }
}

/* Link "vedi tutti" con freccia */
.mc-sede-link-arrow {
  color: var(--mc, #3a7d2c);
  font-weight: 600;
}
.mc-sede-link-arrow:hover { color: var(--mc-dark, #2c5f21); }

/* Sezioni dettaglio sede */
.mc-sede-section-head { margin-bottom: 22px; }
.mc-sede-section-title {
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -.01em;
  margin: 0;
}
.mc-sede-section-desc {
  color: var(--bs-secondary-color, #6c757d);
  font-size: .95rem;
  margin: 4px 0 0;
}

/* Galleria + lightbox */
.mc-sede-gallery-item {
  display: block;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #f4f4f4;
  position: relative;
  transition: transform .2s ease, box-shadow .2s ease;
}
.mc-sede-gallery-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.mc-sede-gallery-item:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0,0,0,.12); }
.mc-sede-gallery-item:hover img { transform: scale(1.04); }

.mc-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .92);
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.mc-lightbox[hidden] { display: none !important; }
.mc-lightbox-img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .5);
}
.mc-lightbox-close,
.mc-lightbox-prev,
.mc-lightbox-next {
  position: absolute;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  border: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  cursor: pointer;
  transition: background .15s ease;
}
.mc-lightbox-close:hover,
.mc-lightbox-prev:hover,
.mc-lightbox-next:hover { background: rgba(255, 255, 255, .25); }
.mc-lightbox-close { top: 18px; right: 18px; }
.mc-lightbox-prev { left: 18px; top: 50%; transform: translateY(-50%); }
.mc-lightbox-next { right: 18px; top: 50%; transform: translateY(-50%); }

@media (max-width: 575.98px) {
  .mc-lightbox-prev, .mc-lightbox-next { width: 38px; height: 38px; }
  .mc-lightbox-close { width: 38px; height: 38px; top: 12px; right: 12px; }
}

/* Contact card (sezione 'Tutti i contatti') */
.mc-sede-contact-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 14px;
  padding: 18px 20px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.mc-sede-contact-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(0, 0, 0, .07);
}
.mc-sede-contact-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--mc-pale, #e8f3e2);
  color: var(--mc, #3a7d2c);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  flex-shrink: 0;
}
.mc-sede-contact-label {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--bs-secondary-color, #6c757d);
  font-weight: 600;
  margin-bottom: 4px;
}
.mc-sede-contact-value {
  font-size: .98rem;
  font-weight: 600;
  color: var(--bs-body-color);
  line-height: 1.35;
  word-break: break-word;
}
.mc-sede-contact-value a { color: inherit; text-decoration: none; }
.mc-sede-contact-value a:hover { color: var(--mc); }
.mc-sede-contact-link {
  display: inline-block;
  margin-top: 6px;
  font-size: .8rem;
  color: var(--mc, #3a7d2c);
  text-decoration: none;
  font-weight: 600;
}
.mc-sede-contact-link:hover { text-decoration: underline; }

/* Altre sedi (mini-card cross-link) */
.mc-sede-mini {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 14px;
  overflow: hidden;
  height: 100%;
  transition: transform .15s ease, box-shadow .15s ease;
}
.mc-sede-mini:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .08);
  color: inherit;
}
.mc-sede-mini-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: var(--mc-pale, #e8f3e2);
}
.mc-sede-mini-img-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--mc, #3a7d2c);
  font-size: 1.4rem;
}
.mc-sede-mini-body { padding: 12px 14px; }
.mc-sede-mini-name {
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: -.01em;
  line-height: 1.25;
}
.mc-sede-mini-citta {
  font-size: .78rem;
  color: var(--bs-secondary-color, #6c757d);
  margin-top: 2px;
}

/* CTA finale */
.mc-sede-cta-box {
  background: linear-gradient(135deg, #1d2826 0%, #2c5f21 100%);
  color: #fff;
  border-radius: 22px;
  padding: 36px 32px;
  box-shadow: 0 24px 60px rgba(28, 40, 38, .25);
}
.mc-sede-cta-title {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -.01em;
  color: #fff;
  margin-bottom: 6px;
}
.mc-sede-cta-text {
  color: rgba(255, 255, 255, .82);
  font-size: 1rem;
}
.mc-sede-cta-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
@media (max-width: 991.98px) {
  .mc-sede-cta-actions { justify-content: flex-start; }
}
@media (max-width: 575.98px) {
  .mc-sede-cta-box { padding: 26px 20px; border-radius: 18px; }
  .mc-sede-cta-actions .btn { width: 100%; }
}

/* ============================================================================
   Pagina /vendere-casa/ — sezioni potenziate (hero stats, why, how, FAQ, CTA)
   Tutto namespaced .mc-vc-*
   ============================================================================ */

/* Hero mini-stats */
.mc-vc-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 28px 36px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid rgba(0, 0, 0, .08);
}
.mc-vc-stat-num {
  font-size: 1.85rem;
  font-weight: 800;
  line-height: 1;
  color: var(--mc);
  letter-spacing: -.01em;
}
.mc-vc-stat-label {
  font-size: .82rem;
  color: var(--bs-secondary-color, #6c757d);
  margin-top: 4px;
  max-width: 160px;
}

@media (max-width: 575.98px) {
  .mc-vc-stats {
    gap: 12px;
    margin-top: 22px;
    padding-top: 18px;
    justify-content: space-between;
  }
  .mc-vc-stat { flex: 1 1 0; min-width: 0; }
  .mc-vc-stat-num { font-size: 1.25rem; }
  .mc-vc-stat-label { font-size: .7rem; max-width: 100%; }
}

/* Hero CTA full-width sotto a 576 */
@media (max-width: 575.98px) {
  .mc-vc-hero-cta { width: 100%; justify-content: center; display: inline-flex; align-items: center; }
}

/* Pagina vendere-casa: piu' respiro orizzontale su mobile, allineato fra
   hero / wizard / sezioni sotto. Scopato a .page-vendere-casa. */
@media (max-width: 767.98px) {
  .page-vendere-casa .container {
    padding-left: 22px;
    padding-right: 22px;
  }
}

/* Fake map (hero) — la tua casa + comps con prezzi */
.mc-vc-map-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 5 / 4;
  border-radius: 22px;
  background: linear-gradient(135deg, #f4f9f1 0%, #e8f3e2 100%);
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(28, 40, 38, .12);
  border: 1px solid rgba(58, 125, 44, .12);
  padding: 16px;
}
.mc-vc-map-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(58, 125, 44, .08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(58, 125, 44, .08) 1px, transparent 1px);
  background-size: 32px 32px;
  pointer-events: none;
}
.mc-vc-map-badge {
  position: absolute;
  top: 14px; left: 14px;
  z-index: 5;
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: .76rem;
  font-weight: 700;
  color: var(--mc-dark, #2c5f21);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.mc-vc-map-comp {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 3;
}
.mc-vc-map-comp-r { flex-direction: row-reverse; }
.mc-vc-map-pin {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #6c757d;
  border: 3px solid #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
  flex-shrink: 0;
}
.mc-vc-map-tag {
  background: #fff;
  padding: 6px 12px;
  border-radius: 10px;
  font-size: .82rem;
  font-weight: 700;
  color: #1d2826;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
  line-height: 1.2;
  display: flex;
  flex-direction: column;
  white-space: nowrap;
}
.mc-vc-map-tag span {
  font-size: .68rem;
  font-weight: 500;
  color: var(--bs-secondary-color, #6c757d);
  margin-top: 2px;
}
.mc-vc-map-you {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.mc-vc-map-you-pulse {
  position: absolute;
  top: 0;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: rgba(58, 125, 44, .3);
  animation: mcVcPulse 2.2s ease-out infinite;
  pointer-events: none;
}
@keyframes mcVcPulse {
  0%   { transform: scale(.5); opacity: .9; }
  100% { transform: scale(1.8); opacity: 0; }
}
.mc-vc-map-you-pin {
  position: relative;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--mc, #3a7d2c) 0%, var(--mc-dark, #2c5f21) 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  box-shadow: 0 6px 18px rgba(58, 125, 44, .35);
  border: 4px solid #fff;
  z-index: 1;
}
.mc-vc-map-you-label {
  position: relative;
  background: #1d2826;
  color: #fff;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
}

@media (max-width: 991.98px) {
  .mc-vc-map-visual {
    aspect-ratio: 4 / 3;
    max-width: 520px;
    margin: 0 auto;
  }
}
@media (max-width: 575.98px) {
  .mc-vc-map-visual { aspect-ratio: 5 / 4; border-radius: 16px; padding: 12px; }
  .mc-vc-map-grid { background-size: 22px 22px; }
  .mc-vc-map-badge { font-size: .68rem; padding: 4px 10px; }
  .mc-vc-map-tag { font-size: .68rem; padding: 4px 8px; }
  .mc-vc-map-tag span { font-size: .58rem; }
  .mc-vc-map-pin { width: 9px; height: 9px; border-width: 2px; }
  .mc-vc-map-you-pin { width: 38px; height: 38px; font-size: 15px; border-width: 3px; }
  .mc-vc-map-you-pulse { width: 38px; height: 38px; }
  .mc-vc-map-you-label { font-size: .65rem; padding: 3px 9px; }
}

/* Why cards */
.mc-vc-why-card {
  background: #fff;
  border-radius: 18px;
  padding: 28px 24px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
  border: 1px solid rgba(0, 0, 0, .06);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.mc-vc-why-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, .08);
  border-color: rgba(58, 125, 44, .25);
}
.mc-vc-why-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--mc-pale, #e8f3e2);
  color: var(--mc, #3a7d2c);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin-bottom: 18px;
}
.mc-vc-why-title {
  font-size: 1.08rem;
  font-weight: 700;
  margin-bottom: 8px;
  letter-spacing: -.01em;
}
.mc-vc-why-text {
  font-size: .95rem;
  color: var(--bs-secondary-color, #6c757d);
  margin: 0;
  line-height: 1.55;
}

/* Timeline "Come funziona" */
.mc-vc-timeline {
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
}
.mc-vc-timeline::before {
  content: '';
  position: absolute;
  left: 27px;
  top: 28px;
  bottom: 28px;
  width: 2px;
  background: linear-gradient(to bottom, var(--mc, #3a7d2c) 0%, rgba(58, 125, 44, .15) 100%);
  border-radius: 2px;
}
.mc-vc-step {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  position: relative;
  z-index: 1;
}
.mc-vc-step-num {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--mc, #3a7d2c) 0%, var(--mc-dark, #2c5f21) 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: 800;
  box-shadow: 0 6px 18px rgba(58, 125, 44, .28);
  border: 4px solid #fff;
}
.mc-vc-step-body {
  flex: 1;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 14px;
  padding: 18px 22px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .03);
}
.mc-vc-step-title {
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 4px;
  letter-spacing: -.01em;
}
.mc-vc-step-text {
  font-size: .93rem;
  color: var(--bs-secondary-color, #6c757d);
  margin: 0;
  line-height: 1.5;
}

@media (max-width: 575.98px) {
  .mc-vc-timeline::before { left: 22px; }
  .mc-vc-step { gap: 14px; }
  .mc-vc-step-num { width: 46px; height: 46px; font-size: 1.15rem; border-width: 3px; }
  .mc-vc-step-body { padding: 14px 16px; }
}

/* FAQ accordion override (theme native + brand tweaks) */
.mc-vc-accordion .accordion-item {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .07);
  border-radius: 12px !important;
  margin-bottom: 12px;
  overflow: hidden;
}
.mc-vc-accordion .accordion-item:last-child { margin-bottom: 0; }
.mc-vc-accordion .accordion-button {
  background: #fff;
  font-weight: 600;
  font-size: 1rem;
  padding: 18px 22px;
  border-radius: 12px !important;
  color: var(--bs-body-color);
  box-shadow: none;
}
.mc-vc-accordion .accordion-button:not(.collapsed) {
  background: var(--mc-pale, #e8f3e2);
  color: var(--mc-dark, #2c5f21);
}
.mc-vc-accordion .accordion-button:focus {
  box-shadow: 0 0 0 .15rem rgba(58, 125, 44, .25);
}
.mc-vc-accordion .accordion-body {
  padding: 4px 22px 22px;
  color: var(--bs-secondary-color, #6c757d);
  font-size: .95rem;
  line-height: 1.6;
}

/* CTA finale box scuro */
.mc-vc-cta-box {
  background: linear-gradient(135deg, #1d2826 0%, #2c5f21 100%);
  color: #fff;
  border-radius: 22px;
  padding: 40px 36px;
  box-shadow: 0 24px 60px rgba(28, 40, 38, .25);
}
.mc-vc-cta-tag {
  display: inline-block;
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(255, 255, 255, .65);
  margin-bottom: 10px;
}
.mc-vc-cta-title {
  font-size: 1.85rem;
  font-weight: 800;
  letter-spacing: -.015em;
  margin-bottom: 10px;
  color: #fff;
}
.mc-vc-cta-text {
  color: rgba(255, 255, 255, .8);
  font-size: 1rem;
  margin: 0;
  max-width: 560px;
  line-height: 1.5;
}
.mc-vc-cta-actions { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.mc-vc-cta-actions .btn { white-space: nowrap; }

@media (max-width: 991.98px) {
  .mc-vc-cta-actions { align-items: stretch; }
  .mc-vc-cta-actions .btn { width: 100%; }
}
@media (max-width: 575.98px) {
  .mc-vc-cta-box { padding: 28px 22px; border-radius: 18px; }
  .mc-vc-cta-title { font-size: 1.4rem; }
}

/* =========================================================================
   Sponsor territorio — card per /territorio/ + striscia footer + home/chi-siamo
   ========================================================================= */
.mc-sponsor-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.mc-sponsor-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(58,125,44,.10);
  border-color: rgba(58,125,44,.18);
}
.mc-sponsor-logo {
  background: #f6f8f4;
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  border-bottom: 1px solid rgba(0,0,0,.04);
}
.mc-sponsor-logo.is-dark {
  background: linear-gradient(135deg, #1a2819 0%, #2a4423 100%);
  border-bottom-color: rgba(255,255,255,.06);
}
.mc-sponsor-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.mc-sponsor-body {
  padding: 20px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.mc-sponsor-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--mc, #3a7d2c);
}
.mc-sponsor-dot { color: rgba(0,0,0,.25); }
.mc-sponsor-name {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -.01em;
  color: #1a2819;
  margin: 0;
}
.mc-sponsor-desc {
  color: #4a5d48;
  font-size: .92rem;
  line-height: 1.5;
  margin: 0;
  flex: 1;
}
.mc-sponsor-link {
  display: inline-flex;
  align-items: center;
  font-size: .9rem;
  font-weight: 600;
  color: var(--mc, #3a7d2c);
  text-decoration: none;
  margin-top: 4px;
}
.mc-sponsor-link:hover { color: var(--mc-dark, #2a5b1f); text-decoration: underline; }

/* Striscia loghi compatta (homepage, chi-siamo, footer) */
.mc-sponsor-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 32px;
}
.mc-sponsor-strip-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  padding: 8px 14px;
  border-radius: 12px;
  background: transparent;
  transition: transform .25s ease, background .25s ease;
}
.mc-sponsor-strip-item.is-dark {
  background: linear-gradient(135deg, #1a2819 0%, #2a4423 100%);
}
.mc-sponsor-strip-item:hover { transform: translateY(-2px); }
.mc-sponsor-strip-item img {
  max-height: 100%;
  max-width: 140px;
  object-fit: contain;
  filter: grayscale(20%);
  opacity: .9;
  transition: filter .25s ease, opacity .25s ease;
}
.mc-sponsor-strip-item:hover img { filter: none; opacity: 1; }
.mc-sponsor-strip-item.is-dark img { filter: none; opacity: 1; }

/* Sezione home/chi-siamo: titolo + claim + strip + CTA */
.mc-sponsor-section {
  background: linear-gradient(180deg, #fafcf6 0%, #f1f6ec 100%);
  padding: 64px 0;
}
.mc-sponsor-section-claim {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 32px;
  color: #4a5d48;
}

/* Footer mini-strip: piccolo, sopra il copyright.
   Loghi mostrati a colori originali, senza filtri (preserva i dettagli interni). */
.mc-footer-sponsors {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 22px 0 18px;
  text-align: center;
}
.mc-footer-sponsors-label {
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(255,255,255,.45);
  margin-bottom: 14px;
}
.mc-footer-sponsors .mc-sponsor-strip { gap: 20px; }
.mc-footer-sponsors .mc-sponsor-strip-item {
  height: 64px;
  padding: 8px 10px;
  border-radius: 10px;
  /* Tile chiaro per loghi colorati: leggibili su footer scuro */
  background: rgba(255,255,255,.96);
}
.mc-footer-sponsors .mc-sponsor-strip-item.is-dark {
  /* Tile scuro per loghi gia' chiari (es. logo bianco) */
  background: transparent;
}
.mc-footer-sponsors .mc-sponsor-strip-item img {
  filter: none;
  opacity: 1;
  max-width: 120px;
  max-height: 100%;
}

@media (max-width: 575.98px) {
  .mc-sponsor-logo { height: 140px; padding: 22px; }
  .mc-sponsor-strip { gap: 22px; }
  .mc-sponsor-strip-item { height: 52px; }
  .mc-sponsor-section { padding: 48px 0; }
}

/* =========================================================================
   Hero pagina /territorio/ — mosaic loghi sponsor (riusa wrapper cantieri)
   ========================================================================= */
.mc-territorio-mosaic {
  display: grid;
  grid-template-columns: 2.2fr 1fr;
  gap: 14px;
  height: 460px;
}
.mc-territorio-mosaic-main {
  grid-column: 1;
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  text-decoration: none;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 16px 44px rgba(58,125,44,.10);
  transition: transform .35s ease, box-shadow .35s ease;
}
.mc-territorio-mosaic-main-media {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 56px;
}
.mc-territorio-mosaic-main.is-dark {
  background: linear-gradient(135deg, #1a2819 0%, #2a4423 60%, #3a7d2c 130%);
  border-color: rgba(255,255,255,.06);
}
.mc-territorio-mosaic-main:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px rgba(58,125,44,.20);
}
.mc-territorio-mosaic-main img {
  max-width: 78%;
  max-height: 78%;
  object-fit: contain;
}
.mc-territorio-mosaic-main-overlay {
  position: absolute;
  left: 22px; right: 22px; bottom: 22px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mc-territorio-mosaic-badge {
  align-self: flex-start;
  display: inline-flex; align-items: center;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--mc, #3a7d2c);
  background: rgba(58,125,44,.10);
  padding: 5px 10px;
  border-radius: 999px;
}
.mc-territorio-mosaic-main.is-dark .mc-territorio-mosaic-badge {
  color: #fff;
  background: rgba(255,255,255,.14);
}
.mc-territorio-mosaic-main-name {
  display: flex; align-items: center; gap: 8px;
  font-size: 1.2rem;
  font-weight: 800;
  color: #1a2819;
  letter-spacing: -.01em;
}
.mc-territorio-mosaic-main.is-dark .mc-territorio-mosaic-main-name { color: #fff; }
.mc-territorio-mosaic-main-name i {
  font-size: .9rem;
  transition: transform .25s ease;
}
.mc-territorio-mosaic-main:hover .mc-territorio-mosaic-main-name i { transform: translate(2px, -2px); }
.mc-territorio-mosaic-main-loc {
  font-size: .85rem;
  color: #4a5d48;
  display: flex; align-items: center; gap: 6px;
}
.mc-territorio-mosaic-main.is-dark .mc-territorio-mosaic-main-loc { color: rgba(255,255,255,.75); }

.mc-territorio-mosaic-thumbs {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 14px;
}
.mc-territorio-mosaic-thumb {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  text-decoration: none;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 26px rgba(58,125,44,.06);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px 26px;
  transition: transform .3s ease, box-shadow .3s ease;
}
.mc-territorio-mosaic-thumb.is-dark {
  background: linear-gradient(135deg, #1a2819 0%, #2a4423 100%);
  border-color: rgba(255,255,255,.06);
}
.mc-territorio-mosaic-thumb:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px rgba(58,125,44,.14);
}
.mc-territorio-mosaic-thumb img {
  max-width: 78%;
  max-height: 70%;
  object-fit: contain;
}
.mc-territorio-mosaic-thumb-overlay {
  position: absolute;
  left: 12px; right: 12px; bottom: 12px;
  font-size: .78rem;
  font-weight: 700;
  color: #1a2819;
}
.mc-territorio-mosaic-thumb.is-dark .mc-territorio-mosaic-thumb-overlay { color: #fff; }

/* Solo 1 sponsor: main full-width, niente thumbs */
.mc-territorio-mosaic-1 { grid-template-columns: 1fr; }
.mc-territorio-mosaic-1 .mc-territorio-mosaic-main { grid-column: 1; }
.mc-territorio-mosaic-1 .mc-territorio-mosaic-thumbs { display: none; }
/* 2 sponsor: una thumb sola, espande verticalmente */
.mc-territorio-mosaic-2 .mc-territorio-mosaic-thumbs { grid-template-rows: 1fr; }

@media (max-width: 991.98px) {
  .mc-territorio-mosaic { height: 380px; }
  .mc-territorio-mosaic-main-media { padding: 36px 40px; }
}
@media (max-width: 575.98px) {
  .mc-territorio-mosaic {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    height: auto;
    gap: 12px;
  }
  /* Main card mobile: layout stacked classico (media sopra, body sotto staccato) */
  .mc-territorio-mosaic-main {
    display: flex;
    flex-direction: column;
  }
  .mc-territorio-mosaic-main-media {
    position: static;
    inset: auto;
    padding: 32px 24px;
    background: #f6f8f4;
    min-height: 180px;
  }
  .mc-territorio-mosaic-main.is-dark .mc-territorio-mosaic-main-media {
    background: linear-gradient(135deg, #1a2819 0%, #2a4423 100%);
  }
  .mc-territorio-mosaic-main-media img {
    max-width: 60%;
    max-height: 140px;
  }
  .mc-territorio-mosaic-main-overlay {
    position: static;
    left: auto; right: auto; bottom: auto;
    padding: 16px 20px 18px;
    background: #fff;
    border-top: 1px solid rgba(0,0,0,.06);
  }
  /* Su mobile il body e' sempre bianco: ripristina colori "su chiaro" anche per is-dark */
  .mc-territorio-mosaic-main.is-dark .mc-territorio-mosaic-badge {
    color: var(--mc, #3a7d2c);
    background: rgba(58,125,44,.10);
  }
  .mc-territorio-mosaic-main.is-dark .mc-territorio-mosaic-main-name { color: #1a2819; }
  .mc-territorio-mosaic-main.is-dark .mc-territorio-mosaic-main-loc { color: #4a5d48; }

  .mc-territorio-mosaic-thumbs { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
  .mc-territorio-mosaic-thumb { padding: 14px 18px; }
}

/* Anchor scroll: lascia spazio sotto la navbar sticky.
   Riusa la stessa variabile usata da #gallery, #descrizione, ecc. */
#sponsor-grid {
  scroll-margin-top: calc(var(--mc-navbar-h, 64px) + 24px);
}

/* Hero wrappers: garantisce padding orizzontale ai contenuti su mobile/tablet,
   dove .container Bootstrap ha solo gutter-x/2 = 12px (poco con titoli grandi).
   Su desktop il container e' gia' centrato dentro la viewport con max-width. */
@media (max-width: 991.98px) {
  .mc-page-hero,
  .mc-cantieri-showcase,
  .mc-mini-hero {
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* =========================================================================
   Descrizione immobile — testo leggibile, paragrafi con respiro
   ========================================================================= */
.mc-detail-description {
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--mc-ink);
  max-width: 68ch;
}
.mc-detail-description p {
  margin: 0 0 1em;
}
.mc-detail-description p:last-child {
  margin-bottom: 0;
}

/* =========================================================================
   Area utente (clienti pubblici): shell con sidebar + offcanvas mobile
   ========================================================================= */
.mc-account-section {
  padding: 48px 0 64px;
  background: linear-gradient(180deg, var(--mc-pale, #f5fbf2) 0%, #ffffff 220px);
  min-height: 60vh;
}
.mc-account-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
}
.mc-account-greeting {
  font-size: clamp(24px, 3.4vw, 34px);
  font-weight: 800;
  letter-spacing: -.5px;
  color: var(--mc-ink);
  margin: 6px 0 0;
}
.mc-account-mobile-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--mc-border, rgba(0,0,0,.08));
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-ink, #1a2819);
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}
.mc-account-mobile-toggle:hover {
  border-color: var(--mc, #3a7d2c);
  color: var(--mc, #3a7d2c);
}

.mc-account-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 24px;
  align-items: start;
}
@media (max-width: 991.98px) {
  .mc-account-layout { grid-template-columns: 1fr; }
}

.mc-account-sidebar {
  flex-direction: column;
  position: sticky;
  top: calc(var(--mc-navbar-h, 64px) + 16px);
  background: #fff;
  border-radius: 16px;
  border: 1px solid var(--mc-border, rgba(0,0,0,.06));
  padding: 10px;
  box-shadow: 0 6px 22px rgba(58,125,44,.06);
}

.mc-account-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mc-account-nav-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  color: var(--mc-ink-secondary, #4a5d48);
  font-size: 14.5px;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
  position: relative;
}
.mc-account-nav-link i {
  font-size: 16px;
  color: var(--mc, #3a7d2c);
  flex-shrink: 0;
}
.mc-account-nav-link:hover {
  background: var(--mc-pale, #f5fbf2);
  color: var(--mc-ink, #1a2819);
}
.mc-account-nav-link.is-active {
  background: var(--mc, #3a7d2c);
  color: #fff;
}
.mc-account-nav-link.is-active i {
  color: #fff;
}
.mc-account-nav-soon {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  background: rgba(0,0,0,.06);
  color: var(--mc-ink-muted, #6a7768);
  padding: 2px 7px;
  border-radius: 999px;
}
.mc-account-nav-link.is-active .mc-account-nav-soon {
  background: rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
}
.mc-account-nav-divider {
  height: 1px;
  background: var(--mc-border, rgba(0,0,0,.06));
  margin: 8px 4px;
}
.mc-account-nav-logout {
  color: var(--mc-ink-muted, #6a7768);
}
.mc-account-nav-logout i { color: var(--mc-ink-muted, #6a7768); }
.mc-account-nav-logout:hover {
  color: #e11d48;
  background: rgba(225,29,72,.08);
}
.mc-account-nav-logout:hover i { color: #e11d48; }

.mc-account-content {
  background: #fff;
  border-radius: 18px;
  border: 1px solid var(--mc-border, rgba(0,0,0,.06));
  padding: 28px 28px 32px;
  box-shadow: 0 8px 30px rgba(58,125,44,.05);
}
@media (max-width: 575.98px) {
  .mc-account-content { padding: 22px 18px 26px; border-radius: 14px; }
}
.mc-account-content-head {
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--mc-border, rgba(0,0,0,.06));
}
.mc-account-content-title {
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 800;
  letter-spacing: -.3px;
  color: var(--mc-ink, #1a2819);
  margin: 0;
}
.mc-account-content-subtitle {
  font-size: 14px;
  color: var(--mc-ink-secondary, #4a5d48);
  margin: 6px 0 0;
  line-height: 1.55;
}

/* Lista valori "etichetta → valore" stile dl/dt/dd */
.mc-account-data-list {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 12px 24px;
  font-size: 14.5px;
}
@media (max-width: 575.98px) {
  .mc-account-data-list { grid-template-columns: 1fr; gap: 4px 0; }
  .mc-account-data-list dt { margin-top: 10px; }
}
.mc-account-data-list dt {
  font-weight: 600;
  color: var(--mc-ink-muted, #6a7768);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 11.5px;
  display: flex;
  align-items: center;
}
.mc-account-data-list dd {
  margin: 0;
  color: var(--mc-ink, #1a2819);
  font-weight: 500;
}

/* Empty state */
.mc-account-empty {
  text-align: center;
  padding: 48px 16px;
  color: var(--mc-ink-muted, #6a7768);
}
.mc-account-empty > i {
  font-size: 44px;
  color: rgba(58,125,44,.35);
  margin-bottom: 14px;
  display: block;
}
.mc-account-empty h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--mc-ink, #1a2819);
  margin: 0 0 6px;
}
.mc-account-empty p {
  font-size: 14px;
  margin: 0 0 18px;
  max-width: 400px;
  margin-inline: auto;
  line-height: 1.55;
}

/* Offcanvas mobile: stesso look della sidebar ma full-height */
.mc-account-offcanvas .offcanvas-body { padding: 8px 14px 24px; }
.mc-account-offcanvas .mc-account-nav-link { padding: 12px 14px; }

/* =========================================================================
   Area utente — timeline richieste + lista cronologia visite
   ========================================================================= */
.mc-account-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.mc-account-timeline::before {
  content: '';
  position: absolute;
  top: 10px; bottom: 10px;
  left: 17px;
  width: 2px;
  background: var(--mc-border, rgba(0,0,0,.08));
}
.mc-account-timeline-item {
  position: relative;
  padding-left: 50px;
  padding-bottom: 22px;
}
.mc-account-timeline-item:last-child { padding-bottom: 0; }
.mc-account-timeline-marker {
  position: absolute;
  left: 0; top: 0;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--mc, #3a7d2c);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  box-shadow: 0 4px 12px rgba(58,125,44,.25);
}
.mc-account-timeline-body {
  background: var(--mc-pale, #f5fbf2);
  border: 1px solid rgba(58,125,44,.10);
  border-radius: 14px;
  padding: 14px 16px 14px;
}
.mc-account-timeline-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.mc-account-timeline-type {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--mc, #3a7d2c);
}
.mc-account-timeline-date {
  font-size: 12px;
  color: var(--mc-ink-muted, #6a7768);
}
.mc-account-timeline-ref {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--mc-ink, #1a2819);
  text-decoration: none;
  margin-bottom: 8px;
}
.mc-account-timeline-ref:hover { color: var(--mc, #3a7d2c); text-decoration: underline; }
.mc-account-timeline-ref i { color: var(--mc, #3a7d2c); font-size: 13px; }
.mc-account-timeline-msg {
  font-size: 13.5px;
  color: var(--mc-ink-secondary, #4a5d48);
  line-height: 1.55;
  margin: 0 0 10px;
  /* clamp a 3 righe */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mc-account-timeline-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* Cronologia visite */
.mc-account-visits {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.mc-account-visit-row {
  display: grid;
  grid-template-columns: 92px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 10px;
  border-radius: 14px;
  border: 1px solid var(--mc-border, rgba(0,0,0,.06));
  background: #fff;
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.mc-account-visit-row:hover {
  border-color: var(--mc, #3a7d2c);
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(58,125,44,.08);
}
.mc-account-visit-img {
  width: 92px; height: 72px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--mc-pale, #f5fbf2);
  flex-shrink: 0;
}
.mc-account-visit-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.mc-account-visit-noimg {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
  color: rgba(58,125,44,.4);
  font-size: 22px;
}
.mc-account-visit-body { min-width: 0; }
.mc-account-visit-title {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--mc-ink, #1a2819);
  margin-bottom: 4px;
  letter-spacing: -.1px;
}
.mc-account-visit-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12.5px;
  color: var(--mc-ink-secondary, #4a5d48);
}
.mc-account-visit-meta i { color: var(--mc, #3a7d2c); margin-right: 4px; }
.mc-account-visit-price {
  font-weight: 800;
  color: var(--mc, #3a7d2c);
}
.mc-account-visit-side {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}
.mc-account-visit-date {
  font-size: 11.5px;
  color: var(--mc-ink-muted, #6a7768);
}
@media (max-width: 575.98px) {
  .mc-account-visit-row { grid-template-columns: 72px 1fr; }
  .mc-account-visit-img { width: 72px; height: 60px; }
  .mc-account-visit-side {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    text-align: left;
    border-top: 1px solid var(--mc-border, rgba(0,0,0,.06));
    padding-top: 8px;
    margin-top: 4px;
  }
  .mc-account-timeline-item { padding-left: 44px; }
  .mc-account-timeline-marker { width: 32px; height: 32px; }
  .mc-account-timeline::before { left: 15px; }
}

/* =========================================================================
   Area utente — Preferiti: card compatte dedicate
   Struttura minimale (no swiper, no badge multipli) per evitare le card
   "giganti" del partial della home in un container stretto come la
   content area dell'area utente. */
.mc-fav-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}
.mc-fav-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--mc-border, rgba(0,0,0,.08));
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.mc-fav-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(58,125,44,.10);
  border-color: rgba(58,125,44,.30);
}
.mc-fav-card-media {
  position: relative;
  aspect-ratio: 3 / 2;
  background: var(--mc-pale, #f5fbf2);
  overflow: hidden;
}
.mc-fav-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.mc-fav-card-noimg {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(58,125,44,.4);
  font-size: 28px;
}
.mc-fav-card-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 9px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
}
.mc-fav-card-badge-sale { background: var(--mc, #3a7d2c); }
.mc-fav-card-badge-rent { background: #e09f00; }
.mc-fav-card-body {
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}
.mc-fav-card-price {
  font-size: 17px;
  font-weight: 800;
  color: var(--mc-ink, #1a2819);
  letter-spacing: -.3px;
  line-height: 1.1;
}
.mc-fav-card-price-suffix {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mc-ink-muted, #6a7768);
  margin-left: 2px;
}
.mc-fav-card-title {
  font-size: 13px;
  color: var(--mc-ink-secondary, #4a5d48);
  line-height: 1.3;
  /* clamp a 2 righe */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mc-fav-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mc-ink-muted, #6a7768);
  align-items: center;
}
.mc-fav-card-energy {
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10.5px;
  font-weight: 800;
  color: #fff;
  letter-spacing: .02em;
}

/* =========================================================================
   Confronto immobili — tabella comparativa
   ========================================================================= */
.mc-compare-link.is-empty .mc-fav-badge { display: none; }

.mc-compare-table-wrap {
  border: 1px solid var(--mc-border, rgba(0,0,0,.06));
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(58,125,44,.04);
}
.mc-compare-table-wrap { overflow-x: auto; }
.mc-compare-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 640px;
  font-size: 14px;
}
.mc-compare-table th,
.mc-compare-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--mc-border, rgba(0,0,0,.06));
  vertical-align: middle;
  text-align: left;
  background: #fff;
}
.mc-compare-table tr:last-child td,
.mc-compare-table tr:last-child th { border-bottom: none; }

/* Header card (immobile column) */
.mc-compare-th-card {
  vertical-align: top;
  padding: 0 !important;
  border-bottom: 2px solid var(--mc-border, rgba(0,0,0,.08)) !important;
  width: 30%;
  min-width: 200px;
  background: var(--mc-pale, #f5fbf2) !important;
}
.mc-compare-th-label {
  background: var(--mc-pale, #f5fbf2) !important;
  border-bottom: 2px solid var(--mc-border, rgba(0,0,0,.08)) !important;
}
.mc-compare-th-card-media {
  display: block;
  aspect-ratio: 16 / 10;
  background: #fff;
  overflow: hidden;
  border-bottom: 1px solid var(--mc-border, rgba(0,0,0,.06));
}
.mc-compare-th-card-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.mc-compare-th-card-media:hover img { transform: scale(1.04); }
.mc-compare-noimg {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%; height: 100%;
  color: rgba(58,125,44,.35);
  font-size: 32px;
  background: var(--mc-pale, #f5fbf2);
}
.mc-compare-th-body {
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mc-compare-th-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-ink, #1a2819);
  text-decoration: none;
  line-height: 1.3;
}
.mc-compare-th-title:hover { color: var(--mc, #3a7d2c); }
.mc-compare-remove {
  align-self: flex-start;
  background: rgba(225,29,72,.06);
  border: 1px solid rgba(225,29,72,.30);
  color: #e11d48;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all .2s ease;
}
.mc-compare-remove:hover {
  background: #e11d48;
  color: #fff;
  border-color: #e11d48;
}

/* Row label (prima colonna) */
.mc-compare-row-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--mc-ink-muted, #6a7768);
  width: 160px;
  background: var(--mc-pale, #f5fbf2) !important;
  position: sticky;
  left: 0;
  z-index: 1;
}

/* Highlight celle */
.mc-compare-table td.is-best {
  background: rgba(58,125,44,.08) !important;
  border-left: 3px solid var(--mc, #3a7d2c);
  font-weight: 700;
}
.mc-compare-table td.is-worst {
  background: rgba(0,0,0,.02) !important;
  color: var(--mc-ink-muted, #6a7768);
}
.mc-compare-suffix {
  font-weight: 500;
  font-size: 12px;
  color: var(--mc-ink-muted, #6a7768);
}

/* Cella dotazioni: lista chip */
.mc-compare-feats {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: var(--mc-ink-secondary, #4a5d48);
}
.mc-compare-feats i { color: var(--mc, #3a7d2c); margin-right: 4px; font-size: 11px; }

@media (max-width: 768px) {
  /* Mobile: hint scroll, header foto ridotto, colonne strette ma leggibili.
     Prima colonna sticky a sinistra cosi' le label restano sempre visibili. */
  .mc-compare-table-wrap {
    border-radius: 12px;
    /* Hint visivo che si puo' scorrere: ombra a destra che sfuma */
    position: relative;
  }
  .mc-compare-table-wrap::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 24px;
    background: linear-gradient(to left, rgba(0,0,0,.06), transparent);
    pointer-events: none;
    border-radius: 0 12px 12px 0;
  }
  .mc-compare-table {
    font-size: 12.5px;
    min-width: 480px;
  }
  .mc-compare-table th,
  .mc-compare-table td { padding: 8px 10px; }
  .mc-compare-row-label {
    width: 90px;
    min-width: 90px;
    max-width: 90px;
    font-size: 10px;
    padding: 8px 8px !important;
    /* Sticky a sinistra dentro lo scroll orizzontale */
    box-shadow: 4px 0 8px -4px rgba(0,0,0,.10);
  }
  .mc-compare-th-card {
    min-width: 130px;
    width: auto;
  }
  .mc-compare-th-card-media { aspect-ratio: 4 / 3; }
  .mc-compare-th-body { padding: 8px 10px; gap: 5px; }
  .mc-compare-th-title { font-size: 12px; line-height: 1.25; }
  .mc-compare-remove {
    padding: 3px 7px;
    font-size: 10.5px;
  }
  .mc-compare-remove span,
  .mc-compare-remove { /* nascondi il testo, mostra solo icona */
  }
  .mc-compare-table td.is-best { border-left-width: 2px; }
  .mc-compare-feats { font-size: 11.5px; gap: 3px; }
  .mc-compare-feats i { font-size: 10px; }
  /* Pulsante "Vedi scheda" piu' compatto */
  .mc-compare-table td .btn {
    padding: 4px 10px;
    font-size: 11px;
  }
}
@media (max-width: 480px) {
  .mc-compare-remove { font-size: 0; padding: 5px 7px; }
  .mc-compare-remove i { font-size: 11px; margin: 0; }
}
