/* ============================================================
   MonteSoprano — ms-components.css
   Libreria componenti "Allevatori Editoriale".
   USA ESCLUSIVAMENTE i token in ms-tokens.css (var(--ms-*), --sp-*, --r-*).
   Squadrato · una sola ombra · rosso #D41119 SOLO su CTA e prezzi.
   Nessun @import, nessun valore colore hardcoded al posto dei token.
   ============================================================ */

/* ============================================================
   1. BOTTONI  .ms-btn
   Varianti: primary (rosso) · secondary (bordo ink) · ghost.
   Taglie: L / M(default) / S. Modificatori: block, ondark, disabled.
   ============================================================ */
.ms-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  font-family:var(--ms-font-sans);font-weight:600;font-size:1rem;line-height:1;
  padding:14px var(--sp-4);
  border:1.5px solid transparent;border-radius:var(--r-sm);
  color:var(--ms-ink);background:transparent;cursor:pointer;
  text-align:center;white-space:nowrap;text-decoration:none;
  transition:background var(--ms-dur) var(--ms-ease),
             color var(--ms-dur) var(--ms-ease),
             border-color var(--ms-dur) var(--ms-ease),
             transform var(--ms-dur) var(--ms-ease);
}
.ms-btn:active{transform:translateY(1px)}
.ms-btn:focus-visible{outline:2px solid var(--ms-red);outline-offset:2px}
.ms-btn svg{flex:0 0 auto}

/* primary — rosso, unica CTA d'azione */
.ms-btn--primary{background:var(--ms-red);color:#fff;border-color:var(--ms-red)}
.ms-btn--primary:hover{background:var(--ms-red-hover);border-color:var(--ms-red-hover)}

/* secondary — bordo ink pieno on hover */
.ms-btn--secondary{border-color:var(--ms-ink);color:var(--ms-ink)}
.ms-btn--secondary:hover{background:var(--ms-ink);color:var(--ms-cream)}

/* ghost — link-azione, rosso-testo */
.ms-btn--ghost{color:var(--ms-red-ink);padding:14px var(--sp-2);border-color:transparent}
.ms-btn--ghost:hover{text-decoration:underline;text-underline-offset:3px}

/* on dark */
.ms-btn--ondark{border-color:rgba(245,240,232,.5);color:var(--ms-cream)}
.ms-btn--ondark:hover{background:var(--ms-cream);color:var(--ms-ink);border-color:var(--ms-cream)}

/* taglie */
.ms-btn--lg{padding:16px 28px;font-size:1.05rem}
.ms-btn--sm{padding:9px var(--sp-3);font-size:.9rem}

/* modificatori */
.ms-btn--block{width:100%}
.ms-btn--disabled,
.ms-btn[disabled],
.ms-btn[aria-disabled="true"]{
  background:var(--ms-border);color:var(--ms-muted);border-color:var(--ms-border);
  pointer-events:none;cursor:not-allowed;
}

/* ============================================================
   2. BADGE / CHIP
   Badge = rettangolo squadrato label-caps. Chip = pill di stato.
   ============================================================ */
.ms-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--ms-font-sans);font-weight:600;font-size:.68rem;line-height:1;
  letter-spacing:.08em;text-transform:uppercase;
  padding:4px var(--sp-2);border-radius:var(--r-sm);
}
.ms-badge--ochre{background:var(--ms-ochre);color:var(--ms-ink)}
.ms-badge--olive{background:var(--ms-olive);color:#fff}
.ms-badge--green{background:var(--ms-green);color:#fff}
.ms-badge--ink{background:transparent;color:var(--ms-ink);border:1px solid var(--ms-ink)}
.ms-badge--muted{background:var(--ms-border);color:var(--ms-muted)}
.ms-badge--error{background:var(--ms-error);color:#fff}

/* chip di stato — unica forma pill del sistema */
.ms-chip{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ms-font-sans);font-weight:600;font-size:.72rem;line-height:1;
  letter-spacing:.04em;
  padding:5px 10px;border-radius:var(--r-pill);
  background:var(--ms-cream-card);border:1px solid var(--ms-border);color:var(--ms-ink);
}
.ms-chip__dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}
.ms-chip--available{color:var(--ms-green);border-color:rgba(46,125,50,.35)}
.ms-chip--unavailable{color:var(--ms-muted)}

/* ============================================================
   3. HEADER STICKY + TRUST-BAR
   ============================================================ */
/* trust-bar superiore (charcoal, testo centrato) */
.ms-trustbar{
  background:var(--ms-charcoal);color:#E9E3D8;
  font-family:var(--ms-font-sans);font-size:.8rem;letter-spacing:.01em;
}
.ms-trustbar__inner{
  display:flex;align-items:center;justify-content:center;gap:var(--sp-4);
  min-height:38px;text-align:center;flex-wrap:wrap;
}
.ms-trustbar b{color:#fff;font-weight:600}

/* header sticky */
.ms-header{
  position:sticky;top:0;z-index:50;
  background:var(--ms-cream);border-bottom:1px solid var(--ms-border);
}
.ms-header--scrolled{box-shadow:var(--ms-shadow-sticky)}
.ms-header__inner{display:flex;align-items:center;gap:var(--sp-5);min-height:72px}

.ms-brand{display:flex;flex-direction:column;line-height:1;flex:0 0 auto}
.ms-brand__mark{font-family:var(--ms-font-serif);font-weight:600;font-size:1.4rem;letter-spacing:.02em;color:var(--ms-ink)}
.ms-brand__pay{font-family:var(--ms-font-sans);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ms-muted);margin-top:3px}

.ms-nav{display:flex;gap:var(--sp-4);flex:1 1 auto;flex-wrap:wrap;margin-left:var(--sp-1)}
.ms-nav a{font-family:var(--ms-font-sans);font-size:.95rem;font-weight:500;color:var(--ms-ink);padding:6px 0;position:relative}
.ms-nav a:hover{color:var(--ms-red-ink)}
.ms-nav a.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--ms-red)}

.ms-header__actions{display:flex;align-items:center;gap:var(--sp-3);flex:0 0 auto;margin-left:auto}
.ms-iconbtn{background:none;border:0;padding:6px;display:inline-flex;position:relative;color:var(--ms-ink);cursor:pointer}
.ms-iconbtn:hover{color:var(--ms-red-ink)}
.ms-cart-count{
  position:absolute;top:-2px;right:-4px;background:var(--ms-red);color:#fff;
  font-family:var(--ms-font-sans);font-size:.62rem;font-weight:700;
  min-width:16px;height:16px;padding:0 3px;border-radius:var(--r-pill);
  display:grid;place-items:center;
}
.ms-hamburger{display:none}
@media(max-width:900px){
  .ms-nav{display:none}
  .ms-hamburger{display:inline-flex}
}

/* ============================================================
   4. CARD PRODOTTO  .ms-card
   Immagine 1:1, nome, peso/formato, prezzo + prezzo/kg, CTA.
   ============================================================ */
.ms-card{
  display:flex;flex-direction:column;background:transparent;
  border-bottom:1px solid var(--ms-border);padding-bottom:var(--sp-3);
  transition:transform var(--ms-dur) var(--ms-ease);
}
.ms-card__media{position:relative;aspect-ratio:1/1;background:var(--ms-paper);overflow:hidden;margin-bottom:14px}
.ms-card__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--ms-dur) var(--ms-ease)}
.ms-card:hover .ms-card__media img{transform:scale(1.03)}
.ms-card__badges{position:absolute;top:10px;left:10px;display:flex;gap:6px;flex-wrap:wrap}
.ms-card__name{font-family:var(--ms-font-sans);font-weight:600;font-size:1.05rem;line-height:1.25;margin:0 0 2px;color:var(--ms-ink)}
.ms-card__weight{font-family:var(--ms-font-sans);font-size:.85rem;color:var(--ms-muted);margin-bottom:var(--sp-2)}
.ms-card__pricerow{display:flex;align-items:baseline;gap:var(--sp-2);margin-top:auto}
.ms-card__price{font-family:var(--ms-font-sans);font-weight:600;font-size:1.25rem;color:var(--ms-red)} /* prezzo = rosso ammesso */
.ms-card__kg{font-family:var(--ms-font-sans);font-size:.82rem;color:var(--ms-muted)}
.ms-card__cta{margin-top:var(--sp-3)}
/* esaurito: immagine desaturata, spinto in fondo dal layout */
.ms-card--out .ms-card__media img{filter:grayscale(1) opacity(.6)}

/* ============================================================
   5. CARD CAMERA  .ms-room-card
   Immagine 4/3, accento olive, capienza+servizi, prezzo "da €/notte".
   ============================================================ */
.ms-room-card{
  display:flex;flex-direction:column;
  background:var(--ms-cream-card);border:1px solid var(--ms-border);
  transition:transform var(--ms-dur) var(--ms-ease),box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-room-card:hover{box-shadow:var(--ms-shadow)}
.ms-room-card__media{position:relative;aspect-ratio:4/3;background:var(--ms-paper);overflow:hidden}
.ms-room-card__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--ms-dur) var(--ms-ease)}
.ms-room-card:hover .ms-room-card__media img{transform:scale(1.03)}
.ms-room-card__status{position:absolute;top:10px;left:10px}
.ms-room-card__body{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4) var(--sp-4)}
.ms-room-card__eyebrow{
  font-family:var(--ms-font-sans);font-weight:600;font-size:.72rem;line-height:1.4;
  letter-spacing:.10em;text-transform:uppercase;color:var(--ms-olive); /* accento olive: mondo agriturismo */
}
.ms-room-card__name{font-family:var(--ms-font-serif);font-weight:600;font-size:1.25rem;line-height:1.2;margin:0;color:var(--ms-ink)}
.ms-room-card__specs{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);margin:2px 0 var(--sp-1);font-family:var(--ms-font-sans);font-size:.85rem;color:var(--ms-muted)}
.ms-room-card__spec{display:inline-flex;align-items:center;gap:6px}
.ms-room-card__spec svg{flex:0 0 auto;color:var(--ms-olive)}
.ms-room-card__pricerow{display:flex;align-items:baseline;gap:6px;margin-top:var(--sp-1)}
.ms-room-card__from{font-family:var(--ms-font-sans);font-size:.85rem;color:var(--ms-muted)}
.ms-room-card__price{font-family:var(--ms-font-sans);font-weight:600;font-size:1.4rem;color:var(--ms-red)} /* prezzo = rosso */
.ms-room-card__per{font-family:var(--ms-font-sans);font-size:.85rem;color:var(--ms-muted)}
.ms-room-card__cta{margin-top:var(--sp-3)}
/* non disponibile: img desaturata, spinta in fondo */
.ms-room-card--unavailable{order:99}
.ms-room-card--unavailable .ms-room-card__media img{filter:grayscale(1) opacity(.6)}

/* ============================================================
   6. CARD SERVIZIO / WELLNESS  .ms-service-card
   Icona SVG 40px, titolo, 1 riga, badge "SOLO AGRITURISMO".
   ============================================================ */
.ms-service-card{
  position:relative;display:flex;flex-direction:column;gap:var(--sp-2);
  background:var(--ms-cream-card);border:1px solid var(--ms-border);
  padding:var(--sp-4);border-radius:var(--r-0);
  transition:box-shadow var(--ms-dur) var(--ms-ease);
}
.ms-service-card:hover{box-shadow:var(--ms-shadow)}
.ms-service-card__icon{width:40px;height:40px;color:var(--ms-ink);transition:color var(--ms-dur) var(--ms-ease)}
.ms-service-card:hover .ms-service-card__icon{color:var(--ms-ochre)} /* accento ochre atmosfera */
.ms-service-card__icon svg{width:100%;height:100%;stroke-width:1.5}
.ms-service-card__title{font-family:var(--ms-font-serif);font-weight:600;font-size:1.125rem;line-height:1.25;margin:0;color:var(--ms-ink)}
.ms-service-card__desc{font-family:var(--ms-font-sans);font-size:.95rem;line-height:1.6;color:var(--ms-muted);margin:0}
/* badge esclusivo agriturismo, in alto a destra */
.ms-service-card__flag{position:absolute;top:var(--sp-3);right:var(--sp-3)}

/* ============================================================
   7. RIGA MENU-LISTINO  .ms-dish-row  (registro ledger)
   Nome Fraunces + dotted leader + prezzo INK (NON rosso).
   ============================================================ */
.ms-menu-group{margin-bottom:var(--sp-6)}
.ms-menu-group__title{
  display:flex;align-items:center;gap:var(--sp-3);
  font-family:var(--ms-font-serif);font-weight:600;font-size:1.5rem;
  margin:0 0 var(--sp-3);color:var(--ms-ink);
}
.ms-menu-group__title::after{content:"";flex:1 1 auto;border-top:1px solid var(--ms-border)}

.ms-dish-row{display:flex;flex-direction:column;gap:4px;padding:var(--sp-3) 0;border-bottom:1px solid var(--ms-border)}
.ms-dish-row:last-child{border-bottom:0}
.ms-dish-row__head{display:flex;align-items:baseline;gap:8px}
.ms-dish-row__name{font-family:var(--ms-font-serif);font-weight:400;font-size:1.125rem;line-height:1.3;color:var(--ms-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* dotted leader: riempie lo spazio tra nome e prezzo */
.ms-dish-row__leader{flex:1 1 auto;border-bottom:1px dotted var(--ms-border);transform:translateY(-4px)}
.ms-dish-row__price{font-family:var(--ms-font-sans);font-weight:600;font-size:1.05rem;color:var(--ms-ink);white-space:nowrap} /* NON rosso: menu = consultazione */
.ms-dish-row__desc{font-family:var(--ms-font-sans);font-size:.875rem;line-height:1.5;color:var(--ms-muted);margin:0;max-width:54ch}
.ms-dish-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}
/* chip allergene micro */
.ms-allergen{
  font-family:var(--ms-font-sans);font-weight:600;font-size:.62rem;line-height:1;
  letter-spacing:.06em;text-transform:uppercase;
  padding:3px 6px;border:1px solid var(--ms-border);border-radius:var(--r-sm);color:var(--ms-muted);
}

/* ============================================================
   8. BOOKING WIDGET  .ms-booking-widget  (pannello prenota sticky)
   ============================================================ */
.ms-booking-widget{
  position:sticky;top:88px;align-self:start;
  background:var(--ms-cream-card);border:1px solid var(--ms-border);
  padding:var(--sp-5);box-shadow:var(--ms-shadow);
}
.ms-booking-widget__eyebrow{
  font-family:var(--ms-font-sans);font-weight:600;font-size:.72rem;line-height:1.4;
  letter-spacing:.10em;text-transform:uppercase;color:var(--ms-olive);
}
.ms-booking-widget__name{font-family:var(--ms-font-serif);font-weight:600;font-size:clamp(1.6rem,3vw,2rem);line-height:1.1;margin:4px 0 var(--sp-2);color:var(--ms-ink)}
.ms-booking-widget__pricerow{display:flex;align-items:baseline;gap:6px;margin-bottom:var(--sp-4)}
.ms-booking-widget__from{font-family:var(--ms-font-sans);font-size:.9rem;color:var(--ms-muted)}
.ms-booking-widget__price{font-family:var(--ms-font-sans);font-weight:600;font-size:1.75rem;color:var(--ms-red)} /* prezzo camera = rosso */
.ms-booking-widget__per{font-family:var(--ms-font-sans);font-size:.9rem;color:var(--ms-muted)}
.ms-booking-widget__dates{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.ms-booking-widget__guests{margin-bottom:var(--sp-3)}
/* riepilogo notti → totale */
.ms-booking-widget__summary{border-top:1px solid var(--ms-border);padding-top:var(--sp-3);margin-bottom:var(--sp-3)}
.ms-booking-widget__row{display:flex;justify-content:space-between;font-family:var(--ms-font-sans);font-size:.95rem;padding:4px 0;color:var(--ms-ink)}
.ms-booking-widget__row--total{font-weight:700;font-size:1.1rem;border-top:1px solid var(--ms-border);margin-top:6px;padding-top:var(--sp-2)}
/* riga acconto — amber tenue */
.ms-booking-widget__deposit{
  display:flex;gap:8px;align-items:flex-start;
  font-family:var(--ms-font-sans);font-size:.85rem;line-height:1.5;
  color:var(--ms-amber);
  background:rgba(184,134,11,.08);border:1px solid rgba(184,134,11,.4);
  padding:10px 12px;margin-bottom:var(--sp-3);
}
.ms-booking-widget__deposit svg{flex:0 0 auto;color:var(--ms-amber);margin-top:1px}
.ms-booking-widget__trust{font-family:var(--ms-font-sans);font-size:.8rem;line-height:1.5;color:var(--ms-muted);margin-top:var(--sp-2);text-align:center}

/* datepicker check-in/out — 2 campi 48px */
.ms-datefield{position:relative}
.ms-datefield label{display:block;font-family:var(--ms-font-sans);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-muted);margin-bottom:6px}

/* ============================================================
   9. STEPPER (ospiti / quantità)  .ms-stepper
   ============================================================ */
.ms-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--ms-ink);border-radius:var(--r-sm);overflow:hidden}
.ms-stepper button{background:none;border:0;width:40px;height:44px;font-size:1.2rem;color:var(--ms-ink);cursor:pointer;display:grid;place-items:center}
.ms-stepper button:hover{background:var(--ms-cream)}
.ms-stepper input{width:48px;height:44px;border:0;text-align:center;font-family:var(--ms-font-sans);font-size:1rem;background:transparent;color:var(--ms-ink)}
.ms-stepper input::-webkit-outer-spin-button,
.ms-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ms-stepper input[type=number]{-moz-appearance:textfield}

/* ============================================================
   10. FORM  (campi riquadrati 48px)
   ============================================================ */
.ms-field{margin-bottom:var(--sp-3)}
.ms-field label{display:block;font-family:var(--ms-font-sans);font-weight:600;font-size:.82rem;color:var(--ms-ink);margin-bottom:6px}
.ms-input,
.ms-select{
  width:100%;height:48px;
  border:1px solid var(--ms-border);border-radius:var(--r-sm);
  background:var(--ms-paper);padding:0 14px;
  font-family:var(--ms-font-sans);font-size:1rem;color:var(--ms-ink);
  transition:border-color var(--ms-dur) var(--ms-ease),box-shadow var(--ms-dur) var(--ms-ease);
}
textarea.ms-input{height:auto;min-height:88px;padding:12px 14px;resize:vertical;line-height:1.6}
.ms-input:focus,
.ms-select:focus{outline:none;border-color:var(--ms-red);box-shadow:0 0 0 1px var(--ms-red)}
.ms-input::placeholder{color:var(--ms-muted)}
.ms-input--error{border-color:var(--ms-error);box-shadow:0 0 0 1px var(--ms-error)}
.ms-field__error{display:block;font-family:var(--ms-font-sans);font-size:.8rem;color:var(--ms-error);margin-top:5px}
.ms-field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
@media(max-width:560px){.ms-field-row{grid-template-columns:1fr}}
/* checkbox privacy */
.ms-checkbox{display:flex;align-items:flex-start;gap:10px;font-family:var(--ms-font-sans);font-size:.9rem;line-height:1.5;color:var(--ms-ink)}
.ms-checkbox input{width:18px;height:18px;margin-top:2px;accent-color:var(--ms-red);flex:0 0 auto}

/* ============================================================
   11. HUB-TILE  .ms-hub-tile  (tessere landing-router)
   ============================================================ */
.ms-hub-tile{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  aspect-ratio:3/4;overflow:hidden;background:var(--ms-charcoal);
  padding:var(--sp-4);color:#fff;
}
.ms-hub-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--ms-dur) var(--ms-ease)}
.ms-hub-tile__overlay{position:absolute;inset:0;background:rgba(18,16,14,.45);transition:background var(--ms-dur) var(--ms-ease)}
.ms-hub-tile:hover img{transform:scale(1.04)}
.ms-hub-tile:hover .ms-hub-tile__overlay{background:rgba(18,16,14,.35)}
.ms-hub-tile__body{position:relative;z-index:2;transition:transform var(--ms-dur) var(--ms-ease)}
.ms-hub-tile:hover .ms-hub-tile__body{transform:translateY(-4px)}
.ms-hub-tile__eyebrow{font-family:var(--ms-font-sans);font-weight:600;font-size:.72rem;letter-spacing:.10em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.ms-hub-tile__title{font-family:var(--ms-font-serif);font-weight:600;font-size:1.5rem;line-height:1.1;margin:6px 0 0;color:#fff;display:flex;align-items:center;gap:8px}
.ms-hub-tile__title svg{flex:0 0 auto;transition:transform var(--ms-dur) var(--ms-ease)}
.ms-hub-tile:hover .ms-hub-tile__title svg{transform:translateX(4px)}

/* ============================================================
   12. CARD SEDE  .ms-place-card
   ============================================================ */
.ms-place-card{display:flex;flex-direction:column;background:var(--ms-cream-card);border:1px solid var(--ms-border)}
.ms-place-card__media{aspect-ratio:4/3;background:var(--ms-paper);overflow:hidden}
.ms-place-card__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--ms-dur) var(--ms-ease)}
.ms-place-card:hover .ms-place-card__media img{transform:scale(1.03)}
.ms-place-card__body{display:flex;flex-direction:column;gap:6px;padding:var(--sp-4)}
.ms-place-card__name{font-family:var(--ms-font-serif);font-weight:600;font-size:1.25rem;line-height:1.2;margin:0;color:var(--ms-ink)}
.ms-place-card__meta{font-family:var(--ms-font-sans);font-size:.875rem;line-height:1.5;color:var(--ms-muted)}
.ms-place-card__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}

/* ============================================================
   13. FOOTER 4-COL DARK
   ============================================================ */
.ms-footer{background:var(--ms-charcoal);color:#CFC8BC;padding:64px 0 28px}
.ms-footer__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px}
@media(max-width:860px){.ms-footer__cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ms-footer__cols{grid-template-columns:1fr}}
.ms-footer__mark{font-family:var(--ms-font-serif);font-weight:600;font-size:1.5rem;color:#F6F0E9;margin-bottom:var(--sp-2)}
.ms-footer h4{font-family:var(--ms-font-sans);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#8C8882;margin:0 0 var(--sp-3)}
.ms-footer ul{list-style:none;margin:0;padding:0}
.ms-footer li{margin-bottom:9px;font-family:var(--ms-font-sans);font-size:.92rem}
.ms-footer a{color:#CFC8BC}
.ms-footer a:hover{color:#fff}
.ms-footer__newsletter .ms-input{background:#26241F;border-color:#3A362F;color:#F6F0E9}
.ms-footer__newsletter .ms-input::placeholder{color:#8C8882}
.ms-footer__bottom{border-top:1px solid #302C26;margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--ms-font-sans);font-size:.82rem;color:#8C8882}

/* ============================================================
   14. GRIGLIE COMPONENTE (helper di disposizione)
   ============================================================ */
.ms-grid-products{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
@media(max-width:1023px){.ms-grid-products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:767px){.ms-grid-products{grid-template-columns:repeat(2,1fr)}}

.ms-grid-rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
@media(max-width:1023px){.ms-grid-rooms{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.ms-grid-rooms{grid-template-columns:1fr}}

.ms-grid-services{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}
@media(max-width:900px){.ms-grid-services{grid-template-columns:repeat(2,1fr)}}

.ms-grid-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-3)}
@media(max-width:1023px){.ms-grid-tiles{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.ms-grid-tiles{grid-template-columns:repeat(2,1fr)}}

.ms-grid-places{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4)}
@media(max-width:640px){.ms-grid-places{grid-template-columns:1fr}}

/* layout scheda camera: gallery + widget sticky */
.ms-room-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--sp-6);align-items:start}
@media(max-width:900px){.ms-room-layout{grid-template-columns:1fr}}

/* ============================================================
   15. MOTION — reduced motion
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  .ms-btn,.ms-card,.ms-card__media img,.ms-room-card,.ms-room-card__media img,
  .ms-service-card,.ms-service-card__icon,.ms-place-card__media img,
  .ms-hub-tile img,.ms-hub-tile__overlay,.ms-hub-tile__body,.ms-hub-tile__title svg,
  .ms-input,.ms-select{transition:none!important}
}
