/*
Theme Name: Noblessere Luxury
Author: Noblessere
Description: Tema WordPress black & gold per Noblessere Milano. Home, operatrici, trattamenti, galleria e contatti con pagine dettaglio multimediali.
Version: 2.4
*/
:root{--black:#050504;--black2:#0c0b09;--black3:#12100d;--gold:#cda45b;--gold2:#f1d18b;--white:#f8f3ea;--muted:#b7afa3;--line:#3c2c18;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--white);font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{text-decoration:none;color:inherit}img{max-width:100%;height:auto;display:block}.container{width:92%;max-width:var(--max);margin:auto}
.site-header{position:sticky;top:0;z-index:100;background:rgba(5,5,4,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(205,164,91,.35)}.nav{min-height:94px;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:215px}.brand-logo{width:72px;height:72px;object-fit:cover;border-radius:50%;border:1px solid var(--gold)}.brand-copy{display:block}.brand-name{display:block;font:21px Georgia,serif;letter-spacing:3px;color:var(--gold2)}.brand-sub{display:block;text-align:center;color:var(--gold);font-size:8px;letter-spacing:5px}.menu{display:flex;align-items:center;gap:22px;text-transform:uppercase;font-size:10px;letter-spacing:1.2px}.menu ul{display:flex;gap:22px;list-style:none;margin:0;padding:0}.menu a:hover{color:var(--gold2)}.cta{white-space:nowrap;border:1px solid var(--gold);background:linear-gradient(135deg,#e5c37d,#b9893f);color:#111;padding:12px 17px;font-weight:bold;font-size:10px;letter-spacing:1px}
.hero{min-height:670px;display:flex;align-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 75% 45%,rgba(205,164,91,.20),transparent 32%),radial-gradient(circle at 20% 70%,rgba(205,164,91,.08),transparent 28%),linear-gradient(135deg,#050504 0%,#15100a 52%,#050504 100%)}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 20%,rgba(0,0,0,.65) 100%);pointer-events:none}.hero-copy{position:relative;z-index:2;padding:110px 0;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:4px;color:var(--gold);font-size:10px}.hero h1,.section-title{font-family:Georgia,serif;font-weight:400;color:var(--gold2)}.hero h1{font-size:clamp(58px,8vw,105px);line-height:.95;margin:20px 0 12px;letter-spacing:4px}.hero h2{font-size:15px;letter-spacing:6px;font-weight:400}.hero p,.intro{color:var(--muted);max-width:650px}.btn{display:inline-block;margin-top:20px;padding:14px 22px;background:linear-gradient(135deg,#f1d18b,#c99d50);color:#111;font-weight:bold;text-transform:uppercase;letter-spacing:1px;font-size:11px}.btn.alt{background:transparent;color:var(--gold2);border:1px solid var(--gold);margin-left:8px}
.section{padding:88px 0;border-bottom:1px solid rgba(205,164,91,.13)}.section-alt{background:linear-gradient(180deg,#090806,#050504)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:36px}.section-title{font-size:46px;line-height:1.08;margin:10px 0 0}.section-link,.link{color:var(--gold2);font-size:10px;text-transform:uppercase;letter-spacing:1.5px}.grid{display:grid;gap:20px}.grid4{grid-template-columns:repeat(4,1fr)}.operator-status{position:absolute;z-index:3;top:14px;left:14px;display:inline-flex;align-items:center;padding:9px 12px;border-radius:5px;color:#fff;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;line-height:1.2;box-shadow:0 4px 16px rgba(0,0,0,.35)}.status-arrivo{background:#168c24}.status-non-disponibile{background:#c92828}.status-breve{background:#e67e00}.card{position:relative;background:var(--black2);border:1px solid var(--line);overflow:hidden;transition:transform .25s ease,border-color .25s ease}.card:hover{transform:translateY(-4px);border-color:var(--gold)}.card img{width:100%;aspect-ratio:4/5;object-fit:cover;background:#100e0b}.card-body{padding:17px}.card h3{font:400 22px Georgia,serif;color:var(--gold2);margin:0 0 6px}.card p{font-size:12px;color:var(--muted);min-height:38px}.empty-state{grid-column:1/-1;border:1px dashed var(--line);padding:30px;color:var(--muted)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gallery-item{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--black2)}.gallery-item img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .3s}.gallery-item:hover img{transform:scale(1.04)}.gallery-item span{display:block;padding:10px 12px;color:var(--gold2);font-size:11px;text-transform:uppercase;letter-spacing:1px}.contact-section{padding:90px 0;background:#090806}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.contact-list{display:grid;gap:18px;margin:28px 0}.contact-list div{display:grid;gap:3px}.contact-list strong{font-size:10px;letter-spacing:2px;color:var(--gold)}.contact-list span{color:var(--white)}.map-card{min-height:330px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#241b10,#0b0907 65%)}.map-placeholder{text-align:center;display:grid;gap:7px;color:var(--gold2)}.map-placeholder span{font-size:45px}.map-placeholder small{color:var(--muted)}
.detail{min-height:75vh}.detail-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:55px;align-items:center}.detail-media{border:1px solid var(--line);background:#100e0b}.detail-media img{width:100%;aspect-ratio:4/5;object-fit:cover}.detail-copy .lead{color:var(--muted);font-size:16px}.detail-content{max-width:1000px;margin:60px auto 0;color:var(--muted)}.detail-content h2{font:400 32px Georgia,serif;color:var(--gold2)}.detail-content img{display:block;width:100%;max-width:100%;height:auto;margin:20px 0}.detail-content figure,.detail-content .wp-block-image{width:100%;max-width:100%;margin:30px 0}.detail-content figure img,.detail-content .wp-block-image img{width:100%;height:auto;max-width:100%;object-fit:cover}.detail-content video,.detail-content iframe{max-width:100%;width:100%;margin:20px 0}.content-note{color:var(--muted);font-size:13px;border-left:2px solid var(--gold);padding-left:15px}.featured-detail img{width:100%;max-height:800px;object-fit:cover}.gallery-detail{width:100%}.gallery-detail > p:has(img), .gallery-detail > figure{width:100%}.gallery-detail img{min-height:0}.archive-grid{margin-top:40px}.contact-page{min-height:75vh}
.footer{padding:50px 0;border-top:1px solid var(--line);color:var(--muted)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer h3{font:400 22px Georgia,serif;color:var(--gold2)}
@media(max-width:1000px){.brand-copy{display:none}.brand{min-width:auto}.menu{gap:12px}.grid4,.gallery{grid-template-columns:repeat(2,1fr)}.contact-grid,.detail-hero{grid-template-columns:1fr}.detail-media{max-width:650px}.section-head{align-items:start;flex-direction:column}}
@media(max-width:700px){.nav{min-height:76px}.brand-logo{width:58px;height:58px}.menu{display:none}.cta{margin-left:auto;padding:10px 12px}.hero{min-height:590px}.hero-copy{padding:80px 0}.hero h1{font-size:50px}.hero h2{font-size:10px;letter-spacing:3px}.hero p{font-size:14px}.btn,.btn.alt{display:block;width:max-content;margin-left:0}.section{padding:65px 0}.section-title{font-size:36px}.grid4,.gallery{grid-template-columns:1fr 1fr;gap:12px}.card-body{padding:12px}.card h3{font-size:18px}.card p{font-size:11px}.contact-grid{gap:30px}.footer-grid{grid-template-columns:1fr}.detail-content{margin-top:40px}}

/* Galleria dettagli: foto grandi, niente miniature */
.detail-content .gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:30px 0}.detail-content .gallery-item{display:block;width:100%;border:1px solid var(--line);background:var(--black2);overflow:hidden}.detail-content .gallery-item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;margin:0;transition:transform .3s ease}.detail-content .gallery-item:hover img{transform:scale(1.02)}.detail-content .gallery-item .gallery-caption{padding:12px 14px;color:var(--gold2);font-size:12px}.detail-content .gallery-item br{display:none}
@media(max-width:700px){.detail-content .gallery{grid-template-columns:1fr;gap:16px}}

/* WordPress gallery: immagini grandi nelle pagine dettaglio */
.detail-content .gallery, .detail-content .wp-block-gallery {
 display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:24px !important; width:100% !important; margin:30px 0 !important;
}
.detail-content .gallery .gallery-item,
.detail-content .gallery-columns-1 .gallery-item,
.detail-content .gallery-columns-2 .gallery-item,
.detail-content .gallery-columns-3 .gallery-item,
.detail-content .gallery-columns-4 .gallery-item,
.detail-content .gallery-columns-5 .gallery-item,
.detail-content .gallery-columns-6 .gallery-item,
.detail-content .gallery-columns-7 .gallery-item,
.detail-content .gallery-columns-8 .gallery-item,
.detail-content .gallery-columns-9 .gallery-item {
 float:none !important; width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important;
}
.detail-content .gallery .gallery-item img,
.detail-content .wp-block-gallery figure.wp-block-image,
.detail-content .wp-block-gallery figure.wp-block-image img {
 width:100% !important; max-width:100% !important; height:auto !important; min-height:0 !important; aspect-ratio:4/3; object-fit:cover; margin:0 !important;
}
.detail-content .gallery .gallery-caption { padding:12px 14px; color:var(--gold2); font-size:12px; }
@media(max-width:700px){ .detail-content .gallery, .detail-content .wp-block-gallery { grid-template-columns:1fr !important; gap:16px !important; } }

/* Mobile navigation */
.mobile-menu-toggle,.mobile-menu-panel{display:none}
@media(max-width:700px){
  .mobile-menu-toggle{display:flex;width:44px;height:44px;margin-left:auto;padding:8px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:6px;cursor:pointer}
  .mobile-menu-toggle span{display:block;width:28px;height:2px;background:var(--gold2);margin:auto}
  .site-header .cta{display:none}
  .mobile-menu-panel{position:fixed;inset:0 0 0 auto;width:min(88vw,390px);height:100dvh;z-index:999;background:rgba(7,7,6,.98);border-left:1px solid rgba(205,164,91,.35);padding:88px 28px 32px;box-shadow:-20px 0 60px rgba(0,0,0,.55);transform:translateX(105%);transition:transform .28s ease;overflow:auto}
  .mobile-menu-panel.open{display:block;transform:translateX(0)}
  .mobile-menu-panel nav{display:block}
  .mobile-menu-panel nav ul{list-style:none;margin:0;padding:0}
  .mobile-menu-panel nav li{border-bottom:1px solid rgba(205,164,91,.18)}
  .mobile-menu-panel nav a{display:block;padding:20px 0;color:#f5ead6;text-decoration:none;text-transform:uppercase;font-size:15px;letter-spacing:2px}
  .mobile-menu-panel nav a:hover{color:var(--gold2)}
  .mobile-menu-close{position:absolute;right:22px;top:18px;background:none;border:0;color:#f5ead6;font-size:42px;font-weight:200;line-height:1;cursor:pointer}
  .mobile-menu-cta{display:block;text-align:center;margin-top:28px;padding:15px 18px;background:linear-gradient(135deg,#e5c37d,#b9893f);color:#111;text-decoration:none;font-weight:bold;letter-spacing:1.5px}
  body.menu-open{overflow:hidden}
}

/* v8 mobile menu hardening */
.mobile-menu-panel[hidden]{display:none!important}
@media(min-width:701px){.mobile-menu-toggle{display:none!important}.mobile-menu-panel{display:none!important}.site-header .menu{display:flex!important}.site-header .cta{display:inline-block!important}}
@media(max-width:700px){.site-header .menu{display:none!important}.site-header .cta{display:none!important}.mobile-menu-toggle{display:flex!important;flex:0 0 44px!important;position:relative!important;z-index:1002!important}.mobile-menu-panel{display:block;position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(88vw,390px)!important;height:100vh!important;height:100dvh!important;z-index:1001!important;background:#070706!important;color:#f5ead6!important;border-left:1px solid rgba(205,164,91,.45)!important;padding:88px 28px 32px!important;box-shadow:-24px 0 70px rgba(0,0,0,.65)!important;transform:translateX(110%)!important;transition:transform .28s ease!important;overflow-y:auto!important}.mobile-menu-panel.open{transform:translateX(0)!important}.mobile-menu-panel nav ul{display:block!important;list-style:none!important;margin:0!important;padding:0!important}.mobile-menu-panel nav li{display:block!important;margin:0!important;padding:0!important;border-bottom:1px solid rgba(205,164,91,.18)!important}.mobile-menu-panel nav a{display:block!important;padding:20px 0!important;color:#f5ead6!important;font-size:15px!important;letter-spacing:2px!important;text-transform:uppercase!important}.mobile-menu-close{display:block!important;position:absolute!important;right:22px!important;top:18px!important;color:#f5ead6!important;background:transparent!important;border:0!important;font-size:42px!important;line-height:1!important}.mobile-menu-cta{display:block!important;text-align:center!important;margin-top:28px!important;padding:15px 18px!important;background:linear-gradient(135deg,#e5c37d,#b9893f)!important;color:#111!important;font-weight:bold!important}}

/* v11: mobile menu reliable close */
@media(max-width:700px){.mobile-menu-panel{visibility:hidden!important;opacity:0!important;pointer-events:none!important;transform:translateX(110%)!important}.mobile-menu-panel.open{visibility:visible!important;opacity:1!important;pointer-events:auto!important;transform:translateX(0)!important}.mobile-menu-close{z-index:99999!important;pointer-events:auto!important;touch-action:manipulation!important;display:flex!important;align-items:center!important;justify-content:center!important;width:52px!important;height:52px!important;right:18px!important;top:16px!important;position:absolute!important;cursor:pointer!important}.mobile-menu-panel nav,.mobile-menu-panel nav ul,.mobile-menu-panel nav li,.mobile-menu-panel nav a{pointer-events:auto!important}}

/* Lo Studio: foto reali prese dalle gallerie WordPress inserite nei contenuti */
.studio-home-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.studio-home-item{border:1px solid var(--line);background:var(--black2);overflow:hidden}.studio-home-item>a{display:block}.studio-home-item .studio-photo-grid{display:block}.studio-home-item .studio-photo{display:block}.studio-home-item .studio-photo img{width:100%;height:280px;object-fit:cover}.studio-home-caption{padding:16px}.studio-home-caption h3{font:400 21px Georgia,serif;color:var(--gold2);margin:0 0 7px}.studio-home-caption span{color:var(--gold2);font-size:10px;letter-spacing:1.5px}.studio-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;width:100%;margin:24px 0}.studio-photo{display:block;border:1px solid var(--line);overflow:hidden;background:var(--black2)}.studio-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;margin:0!important}.gallery-detail .studio-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-detail .studio-photo img{aspect-ratio:4/3}.archive-gallery .gallery-item img{aspect-ratio:4/3}.menu a{white-space:nowrap}
@media(max-width:1000px){.studio-home-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.studio-home-gallery{grid-template-columns:1fr 1fr;gap:12px}.studio-home-item .studio-photo img{height:210px}.studio-photo-grid,.gallery-detail .studio-photo-grid{grid-template-columns:1fr;gap:16px}.studio-photo img{aspect-ratio:4/3}}


/* =========================================================
   NOBLESSERE V33 — MOBILE HEADER CORRETTO
   Logo a sinistra | NOBLESSERE centrato | hamburger a destra
   ========================================================= */

.mobile-brand-name{
  display:none;
}

@media (max-width:700px){

  .site-header .nav{
    position:relative !important;
    min-height:94px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:0 !important;
  }

  .site-header .brand{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    gap:0 !important;
    margin-right:0 !important;
    min-width:0 !important;
    z-index:20 !important;
  }

  .site-header .brand-logo{
    width:72px !important;
    height:72px !important;
    display:block !important;
  }

  /* Nasconde SOLO la scritta già presente dentro al logo/header,
     perché ne usiamo una dedicata e perfettamente centrata. */
  .site-header .brand-copy{
    display:none !important;
  }

  .site-header .mobile-brand-name{
    display:block !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    z-index:15 !important;
    color:var(--gold2) !important;
    font-family:Georgia,serif !important;
    font-size:18px !important;
    font-weight:400 !important;
    letter-spacing:3px !important;
    line-height:1 !important;
    white-space:nowrap !important;
    pointer-events:none !important;
  }

  .site-header .mobile-menu-toggle{
    display:flex !important;
    position:relative !important;
    z-index:30 !important;
    margin-left:auto !important;
    flex:0 0 44px !important;
  }

  .site-header .menu,
  .site-header .cta{
    display:none !important;
  }
}


/* =========================================================
   NOBLESSERE V34 — HERO BACKGROUND
   ========================================================= */

.hero{
  background:
    linear-gradient(
      90deg,
      rgba(5,5,4,.92) 0%,
      rgba(5,5,4,.78) 38%,
      rgba(5,5,4,.34) 68%,
      rgba(5,5,4,.18) 100%
    ),
    url('assets/noblessere-hero-bg.jpg') center center / cover no-repeat !important;
  min-height: 670px !important;
}

@media (max-width: 768px){
  .hero{
    min-height: 680px !important;
    background:
      linear-gradient(
        180deg,
        rgba(5,5,4,.88) 0%,
        rgba(5,5,4,.68) 48%,
        rgba(5,5,4,.80) 100%
      ),
      url('assets/noblessere-hero-bg.jpg') 68% center / cover no-repeat !important;
  }

  .hero-copy{
    position:relative !important;
    z-index:2 !important;
  }
}


/* =========================================================
   NOBLESSERE V36 — BANNER INCONTRA NOBLESSERE
   Posizionato PRIMA dell'hero con titolo grande e CTA.
   ========================================================= */

.operator-banner{
  position:relative;
  overflow:hidden;
  padding:30px 0 34px;
  background:#090908;
  border-bottom:1px solid rgba(216,183,106,.24);
}

.operator-banner-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:20px;
}

.operator-banner-head h2{
  margin:4px 0 2px;
  color:#f0d08a;
  font-family:Georgia,serif;
  font-size:28px;
  font-weight:400;
  letter-spacing:.04em;
}

.operator-banner-head p{
  margin:0;
  color:#b9b1a5;
  font-size:13px;
}

.operator-banner-link{
  color:#d8b76a;
  text-decoration:none;
  font-size:11px;
  letter-spacing:.14em;
  white-space:nowrap;
}

.operator-banner-shell{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
}

.operator-banner-viewport{
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scrollbar-width:none;
  flex:1;
  overscroll-behavior-x:contain;
  touch-action:pan-x;
}
.operator-banner-viewport::-webkit-scrollbar{display:none}

.operator-banner-track{
  display:flex;
  gap:15px;
  width:max-content;
  padding:0 2px;
}

.operator-banner-card{
  position:relative;
  display:block;
  flex:0 0 220px;
  width:220px;
  height:280px;
  overflow:hidden;
  border:1px solid rgba(216,183,106,.30);
  background:#0b0b0b;
  text-decoration:none;
}

.operator-banner-photo{
  position:absolute;
  inset:0;
}
.operator-banner-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease;
}
.operator-banner-card:hover .operator-banner-photo img{
  transform:scale(1.04);
}
.operator-banner-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.84) 100%);
  pointer-events:none;
}
.operator-banner-name{
  position:absolute;
  left:16px;
  right:12px;
  bottom:14px;
  z-index:2;
  color:#f0d08a;
  font-family:Georgia,serif;
  font-size:19px;
  letter-spacing:.04em;
}

.operator-banner-arrow{
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(216,183,106,.75);
  background:rgba(5,5,5,.86);
  color:#d8b76a;
  font-size:30px;
  line-height:36px;
  cursor:pointer;
  z-index:4;
}
.operator-banner-arrow:hover{
  background:#d8b76a;
  color:#080808;
}

@media (max-width:768px){
  .operator-banner{
    padding:24px 0 28px;
  }
  .operator-banner-head{
    align-items:flex-end;
    padding:0 16px;
    margin-bottom:15px;
  }
  .operator-banner-head h2{
    font-size:22px;
  }
  .operator-banner-head p{
    font-size:11px;
    max-width:220px;
  }
  .operator-banner-link{
    font-size:9px;
  }
  .operator-banner-shell{
    gap:5px;
  }
  .operator-banner-arrow{
    flex-basis:34px;
    width:34px;
    height:34px;
    font-size:24px;
    line-height:28px;
  }
  .operator-banner-track{
    gap:10px;
  }
  .operator-banner-card{
    flex-basis:170px;
    width:170px;
    height:235px;
  }
  .operator-banner-name{
    left:12px;
    bottom:11px;
    font-size:17px;
  }
}


/* =========================================================
   NOBLESSERE V38 — BANNER PULITO E COMPATTO
   ========================================================= */

/* Nessuna scritta sopra le foto */
.operator-banner .operator-banner-head{
  display:none !important;
}

/* La sezione occupa solo lo spazio necessario al carosello */
.operator-banner{
  padding:12px 0 8px !important;
  margin:0 !important;
  border-top:0 !important;
}

/* Foto leggermente più piccole */
.operator-banner-card{
  flex-basis:195px !important;
  width:195px !important;
  height:245px !important;
}

/* Niente fascia vuota tra banner e Hero */
.operator-banner + .hero,
.operator-banner ~ .hero{
  margin-top:0 !important;
  padding-top:0 !important;
}

.hero{
  margin-top:0 !important;
}

/* Rimuove eventuale spazio introdotto dal primo contenitore dell'Hero */
.hero .container:first-child{
  margin-top:0 !important;
}

@media (max-width:768px){
  .operator-banner{
    padding:8px 0 4px !important;
    margin:0 !important;
  }

  .operator-banner-card{
    flex-basis:150px !important;
    width:150px !important;
    height:205px !important;
  }

  .operator-banner-track{
    gap:8px !important;
  }

  .operator-banner-shell{
    gap:3px !important;
  }

  .operator-banner-arrow{
    flex-basis:30px !important;
    width:30px !important;
    height:30px !important;
    font-size:22px !important;
    line-height:24px !important;
  }
}


/* =========================================================
   NOBLESSERE V40 — AUTO SLIDE REALE + CTA
   ========================================================= */

.operator-banner{
  padding:8px 0 2px !important;
  margin:0 !important;
}

.operator-banner-shell{
  margin:0 !important;
  padding:0 !important;
}

.operator-banner-link{
  flex:0 0 auto !important;
  align-self:center !important;
  margin-left:8px !important;
  padding:10px 13px !important;
  border:1px solid rgba(216,183,106,.75) !important;
  color:#d8b76a !important;
  background:rgba(5,5,5,.72) !important;
  text-decoration:none !important;
  font-size:10px !important;
  letter-spacing:.12em !important;
  white-space:nowrap !important;
}

.operator-banner-card{
  flex-basis:190px !important;
  width:190px !important;
  height:238px !important;
}

.hero{
  margin-top:0 !important;
  padding-top:0 !important;
}

.hero h1{
  font-size:clamp(46px,6vw,78px) !important;
}

@media (max-width:768px){
  .operator-banner{
    padding:5px 0 1px !important;
  }

  .operator-banner-card{
    flex-basis:148px !important;
    width:148px !important;
    height:200px !important;
  }

  .operator-banner-link{
    position:absolute !important;
    right:10px !important;
    bottom:-34px !important;
    padding:7px 9px !important;
    font-size:8px !important;
    z-index:10 !important;
  }

  .operator-banner-shell{
    padding-bottom:38px !important;
  }

  .hero{
    margin-top:0 !important;
    padding-top:0 !important;
  }

  .hero h1{
    font-size:clamp(38px,10vw,52px) !important;
  }
}


/* =========================================================
   NOBLESSERE V42 — SLIDE PIÙ VELOCE + HERO CENTRATO
   ========================================================= */

.hero{
  text-align:center !important;
}

.hero .hero-copy,
.hero .hero-content,
.hero .hero-inner,
.hero .container{
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.hero h1,
.hero .section-title{
  margin-left:auto !important;
  margin-right:auto !important;
}

.hero p,
.hero .lead{
  margin-left:auto !important;
  margin-right:auto !important;
}

.hero .hero-actions,
.hero .actions,
.hero .buttons{
  justify-content:center !important;
}

@media (max-width:768px){
  .hero{
    text-align:center !important;
  }

  .hero .hero-copy,
  .hero .hero-content,
  .hero .hero-inner,
  .hero .container{
    text-align:center !important;
  }
}


/* V45 — mobile CTA layout only; JavaScript/slider untouched */
@media (max-width:768px){
  .operator-banner-shell{
    display:grid !important;
    grid-template-columns:30px minmax(0,1fr) 30px !important;
    grid-template-rows:auto auto !important;
    column-gap:3px !important;
    row-gap:0 !important;
    align-items:center !important;
    justify-content:initial !important;
    padding-bottom:0 !important;
  }
  .operator-banner-prev{
    grid-column:1 !important;
    grid-row:1 !important;
  }
  .operator-banner-viewport{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:0 !important;
  }
  .operator-banner-next{
    grid-column:3 !important;
    grid-row:1 !important;
  }
  .operator-banner-link{
    grid-column:1 / 4 !important;
    grid-row:2 !important;
    position:static !important;
    justify-self:center !important;
    display:block !important;
    margin:12px 0 16px !important;
    padding:8px 12px !important;
    font-size:9px !important;
    z-index:10 !important;
  }
}


/* NOBLESSERE V46 — slider stabile su iPhone/mobile */
.operator-banner-viewport{
  scroll-behavior:auto !important;
}

@media (max-width:768px){
  .operator-banner-shell{
    position:relative !important;
    z-index:5 !important;
  }
  .operator-banner-arrow{
    position:relative !important;
    z-index:20 !important;
    pointer-events:auto !important;
    -webkit-tap-highlight-color:transparent;
  }
  .operator-banner-viewport{
    position:relative !important;
    z-index:10 !important;
    -webkit-overflow-scrolling:touch !important;
    touch-action:pan-x !important;
  }
}

/* V47 - equal breathing room above and below mobile operator slider */
@media (max-width:768px){
  .operator-banner-shell{
    padding-top:14px !important;
    padding-bottom:14px !important;
  }
}


/* V49 - iPhone autoplay: transform-based continuous marquee */
.operator-banner-track{will-change:transform;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}

/* V50 - Rea photo: keep the head visible in the home slider */
.operator-banner-card.operator-rea .operator-banner-photo img{
  object-position:center top !important;
}

/* V51 - Rea mobile: show the full photo without cropping the head */
@media (max-width:768px){
  .operator-banner-card.operator-rea .operator-banner-photo img{
    object-fit:contain !important;
    object-position:center center !important;
    background:#0b0b0b !important;
    transform:none !important;
  }
}

/* V52 - Rea mobile: preserve the top of the original portrait */
@media (max-width:768px){
  .operator-banner-card.operator-rea .operator-banner-photo{
    overflow:hidden !important;
  }
  .operator-banner-card.operator-rea .operator-banner-photo img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center top !important;
    transform:none !important;
  }
}


/* V53 - Rea: use the supplied original portrait on the home slider. */
.operator-banner-card.operator-rea .operator-banner-photo{
  background:#0b0b0b !important;
}
.operator-banner-card.operator-rea .operator-banner-photo img{
  object-fit:contain !important;
  object-position:center center !important;
  background:#0b0b0b !important;
  transform:none !important;
}


/* V54 — Rea: source images pre-fitted to the exact slider aspect ratio.
   This prevents cover-cropping on both desktop and mobile. */
.operator-banner-card.operator-rea .operator-banner-photo picture{
  display:block !important;
  width:100% !important;
  height:100% !important;
}
.operator-banner-card.operator-rea .operator-banner-photo picture img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:none !important;
  display:block !important;
}

/* V55 — Rea: show the complete supplied portrait, never crop it. */
.operator-banner-card.operator-rea .operator-banner-photo,
.operator-banner-card.operator-rea .operator-banner-photo picture{
  background:#080808 !important;
}
.operator-banner-card.operator-rea .operator-banner-photo img{
  object-fit:contain !important;
  object-position:center center !important;
  width:100% !important;
  height:100% !important;
  transform:none !important;
}

/* V56 — Rea: force the complete original portrait, with no crop. */
.operator-banner-card.operator-rea .operator-banner-photo.operator-rea-photo{
  inset:0 !important;
  overflow:hidden !important;
  background:#080808 !important;
}
.operator-banner-card.operator-rea .operator-banner-photo.operator-rea-photo img{
  object-fit:contain !important;
  object-position:center center !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  transform:none !important;
}

/* V57 — Rea: card più verticale per mostrare meglio la foto originale. */
.operator-banner-card.operator-rea{
  flex-basis:190px !important;
  width:190px !important;
  height:280px !important;
}
.operator-banner-card.operator-rea .operator-banner-photo{
  height:calc(100% - 34px) !important;
}
@media (max-width:768px){
  .operator-banner-card.operator-rea{
    flex-basis:148px !important;
    width:148px !important;
    height:230px !important;
  }
  .operator-banner-card.operator-rea .operator-banner-photo{
    height:calc(100% - 32px) !important;
  }
}

/* V58 — rifinitura spaziature banner + card Rea allineata alle altre. */

/* Rea torna esattamente alle dimensioni standard delle altre card. */
.operator-banner-card.operator-rea{
  flex-basis:190px !important;
  width:190px !important;
  height:238px !important;
}
.operator-banner-card.operator-rea .operator-banner-photo{
  height:calc(100% - 34px) !important;
}

@media (max-width:768px){
  .operator-banner-card.operator-rea{
    flex-basis:148px !important;
    width:148px !important;
    height:200px !important;
  }
  .operator-banner-card.operator-rea .operator-banner-photo{
    height:calc(100% - 32px) !important;
  }

  /* Stesso respiro sopra e sotto il banner/CTA. */
  .operator-banner{
    padding-top:10px !important;
    padding-bottom:10px !important;
  }

  .operator-banner-shell{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  .operator-banner-link{
    margin-top:10px !important;
    margin-bottom:10px !important;
  }

  /* Riduce ulteriormente lo spazio tra banner e prima sezione Hero. */
  .hero{
    margin-top:-10px !important;
    padding-top:0 !important;
  }
}

/* V59 — spaziatura uniforme del banner e riduzione del distacco dal Hero. */
.operator-banner{
  padding-top:8px !important;
  padding-bottom:8px !important;
}
.operator-banner-shell{
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.operator-banner-link{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.hero{
  margin-top:-8px !important;
  padding-top:0 !important;
}

@media (max-width:768px){
  .operator-banner{
    padding-top:8px !important;
    padding-bottom:8px !important;
  }
  .operator-banner-link{
    margin-top:8px !important;
    margin-bottom:8px !important;
  }
  .hero{
    margin-top:-14px !important;
    padding-top:0 !important;
  }
}

/* V60 — elimina il vuoto eccessivo tra le sezioni, uniformando il blocco Hero. */
.hero{
  min-height:620px !important;
  margin-top:-18px !important;
  padding-top:20px !important;
  padding-bottom:30px !important;
}
.hero .hero-inner{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

@media (max-width:768px){
  .hero{
    min-height:600px !important;
    margin-top:-18px !important;
    padding-top:18px !important;
    padding-bottom:24px !important;
  }
  .hero .hero-inner{
    padding-top:0 !important;
    padding-bottom:0 !important;
  }
}

/* V61 — riduzione drastica del vuoto tra il banner/sezione 2 e la sezione successiva. */
.operator-banner{
  margin-bottom:-18px !important;
}
.hero{
  min-height:560px !important;
  margin-top:-34px !important;
  padding-top:8px !important;
  padding-bottom:12px !important;
}
.hero .hero-inner{
  margin-top:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

@media (max-width:768px){
  .operator-banner{
    margin-bottom:-18px !important;
  }
  .hero{
    min-height:540px !important;
    margin-top:-34px !important;
    padding-top:6px !important;
    padding-bottom:10px !important;
  }
  .hero .hero-inner{
    margin-top:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
  }
}

/* V62 — Home compatta come da preview approvata. */
.hero{
  min-height:500px !important;
  height:auto !important;
  margin-top:-42px !important;
  padding-top:4px !important;
  padding-bottom:8px !important;
}
.hero .hero-inner{
  min-height:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}
.hero h1{
  margin-top:0 !important;
  margin-bottom:10px !important;
}

@media (max-width:768px){
  .hero{
    min-height:440px !important;
    height:auto !important;
    margin-top:-28px !important;
    padding-top:4px !important;
    padding-bottom:6px !important;
  }
  .hero .hero-inner{
    min-height:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
  }
  .hero h1{
    margin-top:0 !important;
    margin-bottom:8px !important;
  }
}

/* V63 — Home: ulteriore riduzione del distacco tra Hero e sezione professioniste. */
.hero{
  margin-bottom:-28px !important;
  padding-bottom:0 !important;
}
.hero + section{
  margin-top:0 !important;
  padding-top:0 !important;
}
@media (max-width:768px){
  .hero{
    margin-bottom:-22px !important;
    padding-bottom:0 !important;
  }
  .hero + section{
    margin-top:0 !important;
    padding-top:0 !important;
  }
}

/* V65 — Home: centratura reale dei nomi nelle card operatrici. */
#operatrici .grid4 .card .card-body h3{
  text-align:center !important;
  width:100% !important;
  display:block !important;
}

/* V66 — spazio sopra la sezione professioniste ridotto rispetto al banner.
   Mantiene il respiro sotto già approvato. */
.hero{
  margin-bottom:-18px !important;
  padding-bottom:0 !important;
}
.hero + section{
  margin-top:-12px !important;
  padding-top:0 !important;
}

@media (max-width:768px){
  .hero{
    margin-bottom:-12px !important;
    padding-bottom:0 !important;
  }
  .hero + section{
    margin-top:-10px !important;
    padding-top:0 !important;
  }
}

/* V69 — badge stato operatrici Home: tutti gli stati sono sempre visibili. */
#operatrici .card .operator-status{
  position:absolute !important;
  z-index:5 !important;
  top:12px !important;
  left:12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  max-width:calc(100% - 24px) !important;
  min-height:30px !important;
  padding:7px 10px !important;
  border-radius:4px !important;
  color:#fff !important;
  font-size:9px !important;
  font-weight:700 !important;
  letter-spacing:.7px !important;
  text-transform:uppercase !important;
  line-height:1.15 !important;
  text-align:center !important;
  box-shadow:0 4px 16px rgba(0,0,0,.35) !important;
}
#operatrici .card .operator-status.status-disponibile{background:#168c24 !important;}
#operatrici .card .operator-status.status-arrivo{background:#168c24 !important;}
#operatrici .card .operator-status.status-non-disponibile{background:#c92828 !important;}
#operatrici .card .operator-status.status-breve{background:#e67e00 !important;}

/* V70 — badge Home posizionato sotto il nome e sopra "Scopri di più". */
#operatrici .card .operator-status{
  position:static !important;
  display:flex !important;
  width:max-content !important;
  max-width:100% !important;
  min-height:0 !important;
  margin:7px auto 6px !important;
  padding:5px 9px !important;
  font-size:8px !important;
  line-height:1.15 !important;
  box-shadow:none !important;
}

/* V72 — mappa contatti cliccabile: apre direttamente Google Maps. */
.map-card{display:block;text-decoration:none;color:inherit;cursor:pointer}.map-placeholder em{display:block;margin-top:12px;font-size:9px;letter-spacing:.16em;color:#d7b46a;font-style:normal;font-weight:700}.map-card:hover .map-placeholder{transform:translateY(-2px)}.map-card:focus-visible{outline:2px solid #d7b46a;outline-offset:4px}


/* V74 — blocca lo scorrimento orizzontale accidentale su mobile */
html{
  width:100%;
  max-width:100%;
  overflow-x:hidden !important;
  overscroll-behavior-x:none !important;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden !important;
  overscroll-behavior-x:none !important;
}
img,video,iframe,svg{
  max-width:100%;
}
@media (max-width:768px){
  .site, main, .site-main, .container{
    max-width:100%;
    overflow-x:clip;
  }
}

/* V75 — mappa più compatta e contenuto centrato */
.map-card{
  max-width:520px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.map-card .map-placeholder{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  padding:34px 20px !important;
  min-height:170px !important;
}
.map-card .map-placeholder strong,
.map-card .map-placeholder small,
.map-card .map-placeholder em{
  display:block;
  width:100%;
  text-align:center !important;
}
@media(max-width:768px){
  .map-card{
    max-width:330px !important;
  }
  .map-card .map-placeholder{
    min-height:145px !important;
    padding:26px 16px !important;
  }
}

/* V75 — menu desktop: stato attivo solo sulla pagina corrente */
@media(min-width:769px){
  .site-header .nav-menu a{
    color:var(--text) !important;
  }
  .site-header .nav-menu a.active,
  .site-header .nav-menu a[aria-current="page"]{
    color:var(--gold) !important;
  }
}

/* V76 — evidenzia esclusivamente la voce della pagina corrente */
@media(min-width:769px){
  .site-header .menu a{
    color:var(--text) !important;
  }
  .site-header .menu a[aria-current="page"]{
    color:var(--gold2) !important;
  }
}

/* V78 — pagina Operatrici: badge nella riga tra nome e Scopri di più */
.archive-grid .operator-card-body{
  position:relative !important;
}
.archive-grid .operator-name-row{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  min-height:42px !important;
}
.archive-grid .operator-name-row h3{
  flex:1 1 auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.archive-grid .operator-name-row .operator-status{
  position:static !important;
  flex:0 1 auto !important;
  width:auto !important;
  max-width:58% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:6px 9px !important;
  border-radius:999px !important;
  box-sizing:border-box !important;
  font-size:8px !important;
  line-height:1.15 !important;
  text-align:center !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:anywhere !important;
}
.archive-grid .operator-name-row .operator-status.status-disponibile{background:#168c24 !important;color:#fff !important;}
.archive-grid .operator-name-row .operator-status.status-arrivo{background:#168c24 !important;color:#fff !important;}
.archive-grid .operator-name-row .operator-status.status-non-disponibile{background:#c92828 !important;color:#fff !important;}
.archive-grid .operator-name-row .operator-status.status-breve{background:#e67e00 !important;color:#fff !important;}
@media(max-width:768px){
  .archive-grid .operator-name-row{
    gap:7px !important;
    min-height:42px !important;
  }
  .archive-grid .operator-name-row .operator-status{
    max-width:56% !important;
    padding:5px 7px !important;
    font-size:7px !important;
  }
}

/* V79 — il badge non spezza mai le parole */
.operatrici-grid .card .operator-status,
.page-operatrici .card .operator-status,
.operatrici-page .card .operator-status{
  overflow-wrap:normal !important;
  
  hyphens:none !important;
  white-space:normal !important;
  max-width:58% !important;
}
.operatrici-grid .card .operator-status *{
  overflow-wrap:normal !important;
  
  hyphens:none !important;
}

/* Il badge può andare su due righe, ma solo tra parole */

/* V80 — badge: mai spezzare una parola; larghezza sufficiente per "MOMENTANEAMENTE" */
.operatrici-grid .card .operator-status,
.page-operatrici .card .operator-status,
.operatrici-page .card .operator-status{
  width:175px !important;
  max-width:175px !important;
  min-width:175px !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:keep-all !important;
  hyphens:none !important;
  box-sizing:border-box !important;
  text-align:center !important;
}
.operatrici-grid .card .operator-name,
.page-operatrici .card .operator-name,
.operatrici-page .card .operator-name{
  padding-right:190px !important;
}
@media(max-width:768px){
  .operatrici-grid .card .operator-status,
  .page-operatrici .card .operator-status,
  .operatrici-page .card .operator-status{
    width:155px !important;
    max-width:155px !important;
    min-width:155px !important;
    font-size:8px !important;
  }
  .operatrici-grid .card .operator-name,
  .page-operatrici .card .operator-name,
  .operatrici-page .card .operator-name{
    padding-right:165px !important;
  }
}

/* V81 — mobile: badge a destra del nome, mai spezzare le parole */
@media (max-width:768px){
  .operatrici-grid .card .operator-status,
  .page-operatrici .card .operator-status,
  .operatrici-page .card .operator-status{
    width:140px !important;
    min-width:140px !important;
    max-width:140px !important;
    padding:5px 6px !important;
    font-size:7px !important;
    line-height:1.18 !important;
    letter-spacing:.35px !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    word-break:keep-all !important;
    hyphens:none !important;
    text-align:center !important;
  }
  .operatrici-grid .card .operator-name,
  .page-operatrici .card .operator-name,
  .operatrici-page .card .operator-name{
    padding-right:150px !important;
    min-width:0 !important;
  }
}

/* V82 — pagina Operatrici: pallino solo per In studio / Non disponibile */
.operatrici-grid .card .operator-status-dot,
.page-operatrici .card .operator-status-dot,
.operatrici-page .card .operator-status-dot{
  position:static !important;
  display:inline-block !important;
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
  max-width:10px !important;
  padding:0 !important;
  margin:0 0 0 8px !important;
  border-radius:50% !important;
  transform:none !important;
  box-shadow:none !important;
  vertical-align:middle !important;
}
.operatrici-grid .card .operator-status-dot.status-disponibile,
.page-operatrici .card .operator-status-dot.status-disponibile,
.operatrici-page .card .operator-status-dot.status-disponibile{background:#168c24 !important;}
.operatrici-grid .card .operator-status-dot.status-non-disponibile,
.page-operatrici .card .operator-status-dot.status-non-disponibile,
.operatrici-page .card .operator-status-dot.status-non-disponibile{background:#c92828 !important;}

.operatrici-grid .card .operator-status-text,
.page-operatrici .card .operator-status-text,
.operatrici-page .card .operator-status-text{
  position:static !important;
  display:inline-block !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  padding:0 !important;
  margin:0 0 0 8px !important;
  border-radius:0 !important;
  transform:none !important;
  box-shadow:none !important;
  background:transparent !important;
  font-size:9px !important;
  line-height:1.15 !important;
  letter-spacing:.5px !important;
  white-space:nowrap !important;
  vertical-align:middle !important;
}
.operatrici-grid .card .operator-status-text.status-arrivo,
.page-operatrici .card .operator-status-text.status-arrivo,
.operatrici-page .card .operator-status-text.status-arrivo{color:#168c24 !important;}
.operatrici-grid .card .operator-status-text.status-breve,
.page-operatrici .card .operator-status-text.status-breve,
.operatrici-page .card .operator-status-text.status-breve{color:#e67e00 !important;}

@media(max-width:768px){
  .operatrici-grid .card .operator-status-text,
  .page-operatrici .card .operator-status-text,
  .operatrici-page .card .operator-status-text{
    font-size:8px !important;
    letter-spacing:.35px !important;
  }
  .operatrici-grid .card .operator-status-dot,
  .page-operatrici .card .operator-status-dot,
  .operatrici-page .card .operator-status-dot{
    width:9px !important;
    height:9px !important;
    min-width:9px !important;
    max-width:9px !important;
  }
}

/* V83 — Home: badge più compatto e pallino nell'angolo della foto */
#operatrici .card .operator-status{
  position:absolute !important;
  z-index:8 !important;
  top:10px !important;
  right:10px !important;
  left:auto !important;
  transform:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* In studio / non disponibile: piccolo pallino sull'angolo foto */
#operatrici .card .operator-status-dot{
  width:11px !important;
  height:11px !important;
  min-width:11px !important;
  max-width:11px !important;
  padding:0 !important;
  border:2px solid #080808 !important;
  border-radius:50% !important;
  box-shadow:0 2px 7px rgba(0,0,0,.45) !important;
}

/* In arrivo / ritorna a breve: rettangolino molto più compatto */
#operatrici .card .operator-status-text{
  width:auto !important;
  min-width:0 !important;
  max-width:145px !important;
  padding:4px 7px !important;
  border-radius:3px !important;
  font-size:8px !important;
  line-height:1.1 !important;
  letter-spacing:.45px !important;
  color:#fff !important;
  white-space:normal !important;
  text-align:center !important;
  box-shadow:0 3px 10px rgba(0,0,0,.3) !important;
}
#operatrici .card .operator-status-text.status-arrivo{
  background:#168c24 !important;
}
#operatrici .card .operator-status-text.status-breve{
  background:#e67e00 !important;
}

@media(max-width:768px){
  #operatrici .card .operator-status{
    top:8px !important;
    right:8px !important;
  }
  #operatrici .card .operator-status-dot{
    width:10px !important;
    height:10px !important;
    min-width:10px !important;
    max-width:10px !important;
  }
  #operatrici .card .operator-status-text{
    max-width:125px !important;
    padding:3px 6px !important;
    font-size:7px !important;
  }
}

/* V84 — Home: stesso pallino della pagina Operatrici + stato anche nel banner */
#operatrici .card .operator-status-dot{
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
  max-width:10px !important;
  border:0 !important;
}
@media(max-width:768px){
  #operatrici .card .operator-status-dot{
    width:9px !important;
    height:9px !important;
    min-width:9px !important;
    max-width:9px !important;
  }
}

/* Banner operatori Home */
.operator-banner-card .operator-status{
  position:absolute !important;
  z-index:7 !important;
  top:8px !important;
  right:8px !important;
  left:auto !important;
  margin:0 !important;
  transform:none !important;
}
.operator-banner-card .operator-status-dot{
  display:inline-block !important;
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
  max-width:10px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:50% !important;
  box-shadow:0 2px 6px rgba(0,0,0,.45) !important;
}
.operator-banner-card .operator-status-text{
  display:inline-block !important;
  width:auto !important;
  max-width:120px !important;
  min-width:0 !important;
  padding:3px 6px !important;
  border-radius:3px !important;
  font-size:7px !important;
  line-height:1.1 !important;
  letter-spacing:.35px !important;
  color:#fff !important;
  white-space:normal !important;
  text-align:center !important;
  box-shadow:0 2px 8px rgba(0,0,0,.35) !important;
}
.operator-banner-card .operator-status-text.status-arrivo{background:#168c24 !important;}
.operator-banner-card .operator-status-text.status-breve{background:#e67e00 !important;}
@media(max-width:768px){
  .operator-banner-card .operator-status{top:7px !important;right:7px !important;}
  .operator-banner-card .operator-status-dot{
    width:9px !important;height:9px !important;min-width:9px !important;max-width:9px !important;
  }
  .operator-banner-card .operator-status-text{max-width:105px !important;font-size:6.5px !important;}
}

/* V85 — stati realmente presenti nel banner Home */
.operator-banner-card{position:relative !important;overflow:hidden !important;}
.operator-banner-card .operator-status{pointer-events:none !important;}
.operator-banner-card .operator-status-dot{
  position:absolute !important;top:8px !important;right:8px !important;z-index:20 !important;
  display:block !important;width:10px !important;height:10px !important;
  min-width:10px !important;max-width:10px !important;padding:0 !important;
  border-radius:50% !important;border:0 !important;transform:none !important;
}
.operator-banner-card .operator-status-dot.status-disponibile{background:#168c24 !important;}
.operator-banner-card .operator-status-dot.status-non-disponibile{background:#c92828 !important;}
.operator-banner-card .operator-status-text{
  position:absolute !important;top:7px !important;right:7px !important;z-index:20 !important;
  display:block !important;width:max-content !important;max-width:120px !important;
  padding:4px 6px !important;margin:0 !important;border-radius:3px !important;
  font-size:7px !important;line-height:1.1 !important;letter-spacing:.35px !important;
  color:#fff !important;text-align:center !important;white-space:normal !important;
  box-sizing:border-box !important;transform:none !important;
}
.operator-banner-card .operator-status-text.status-arrivo{background:#168c24 !important;}
.operator-banner-card .operator-status-text.status-breve{background:#e67e00 !important;}
@media(max-width:768px){
 .operator-banner-card .operator-status-dot{width:9px !important;height:9px !important;min-width:9px !important;max-width:9px !important;top:7px !important;right:7px !important;}
 .operator-banner-card .operator-status-text{max-width:105px !important;font-size:6.5px !important;top:6px !important;right:6px !important;}
}

/* V87 — pagina Operatrici: stato In studio/Non disponibile come vero pallino */
.operatrici-grid .card .operator-status-dot,
.page-operatrici .card .operator-status-dot,
.operatrici-page .card .operator-status-dot{
  display:inline-block !important;
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
  max-width:10px !important;
  min-height:10px !important;
  max-height:10px !important;
  padding:0 !important;
  margin:0 0 0 8px !important;
  border-radius:50% !important;
  box-sizing:border-box !important;
  flex:0 0 10px !important;
  line-height:0 !important;
  vertical-align:middle !important;
  transform:none !important;
}
@media(max-width:768px){
  .operatrici-grid .card .operator-status-dot,
  .page-operatrici .card .operator-status-dot,
  .operatrici-page .card .operator-status-dot{
    width:9px !important;
    height:9px !important;
    min-width:9px !important;
    max-width:9px !important;
    min-height:9px !important;
    max-height:9px !important;
    flex-basis:9px !important;
  }
}


/* V88 — stato banner Home: usa esclusivamente la tassonomia stato_operatrice */
.operator-banner-card .operator-status-text.status-breve,
.operator-banner-card .operator-status-text.status-arrivo{
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

/* V88 — pagina Operatrici: pallino realmente circolare, senza ereditarietà dai vecchi badge */
.archive-grid .operator-name-row .operator-status.operator-status-dot,
.operatrici-grid .card .operator-status.operator-status-dot,
.page-operatrici .card .operator-status.operator-status-dot,
.operatrici-page .card .operator-status.operator-status-dot{
  position:static !important;
  display:block !important;
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
  max-width:10px !important;
  min-height:10px !important;
  max-height:10px !important;
  flex:0 0 10px !important;
  flex-grow:0 !important;
  flex-shrink:0 !important;
  flex-basis:10px !important;
  aspect-ratio:1 / 1 !important;
  padding:0 !important;
  margin:0 0 0 8px !important;
  border:0 !important;
  border-radius:50% !important;
  box-sizing:border-box !important;
  line-height:0 !important;
  overflow:hidden !important;
  transform:none !important;
}
.archive-grid .operator-name-row .operator-status.operator-status-dot.status-disponibile,
.operatrici-grid .card .operator-status.operator-status-dot.status-disponibile,
.page-operatrici .card .operator-status.operator-status-dot.status-disponibile,
.operatrici-page .card .operator-status.operator-status-dot.status-disponibile{background:#168c24 !important;}
.archive-grid .operator-name-row .operator-status.operator-status-dot.status-non-disponibile,
.operatrici-grid .card .operator-status.operator-status-dot.status-non-disponibile,
.page-operatrici .card .operator-status.operator-status-dot.status-non-disponibile,
.operatrici-page .card .operator-status.operator-status-dot.status-non-disponibile{background:#c92828 !important;}
@media(max-width:768px){
  .archive-grid .operator-name-row .operator-status.operator-status-dot,
  .operatrici-grid .card .operator-status.operator-status-dot,
  .page-operatrici .card .operator-status.operator-status-dot,
  .operatrici-page .card .operator-status.operator-status-dot{
    width:9px !important;
    height:9px !important;
    min-width:9px !important;
    max-width:9px !important;
    min-height:9px !important;
    max-height:9px !important;
    flex:0 0 9px !important;
    flex-basis:9px !important;
  }
}

/* V90 SAFE — solo due stati testuali, nessun pallino */
.operator-status-dot{display:none !important;}
.operator-status-text{
  display:inline-block !important;
  width:auto !important;
  min-width:0 !important;
  max-width:180px !important;
  padding:5px 9px !important;
  margin:0 !important;
  border-radius:3px !important;
  box-sizing:border-box !important;
  font-size:8px !important;
  line-height:1.15 !important;
  letter-spacing:.06em !important;
  white-space:normal !important;
  text-align:center !important;
  vertical-align:middle !important;
}
.operator-status-text.status-disponibile{background:#168c24 !important;color:#fff !important;}
.operator-status-text.status-breve{background:#e67e00 !important;color:#fff !important;}

.operator-banner-card .operator-status-text{
  position:absolute !important;top:8px !important;right:8px !important;z-index:20 !important;
}
#operatrici .card .operator-status-text{
  position:absolute !important;top:8px !important;right:8px !important;z-index:8 !important;
}
.operatrici-grid .card .operator-status-text,
.page-operatrici .card .operator-status-text,
.operatrici-page .card .operator-status-text{
  position:static !important;transform:none !important;margin-left:8px !important;
}
@media(max-width:768px){
  .operator-status-text{font-size:7px !important;padding:4px 7px !important;max-width:150px !important;}
  .operator-banner-card .operator-status-text,#operatrici .card .operator-status-text{top:7px !important;right:7px !important;}
}

/* V91 — rimozione definitiva dei vecchi pallini */
.operator-status-dot,
.status-disponibile.operator-status-dot,
.status-non-disponibile.operator-status-dot{
  display:none !important;
  width:0 !important;
  height:0 !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:0 !important;
  max-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:none !important;
}

/* Gli stati ammessi sono sempre testuali */
.operator-status-text{
  display:inline-block !important;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:180px !important;
  max-height:none !important;
  padding:5px 9px !important;
  margin:0 !important;
  border:0 !important;
  border-radius:3px !important;
  box-sizing:border-box !important;
  line-height:1.15 !important;
  font-size:8px !important;
  letter-spacing:.06em !important;
  white-space:normal !important;
  text-align:center !important;
  vertical-align:middle !important;
}
.operator-status-text.status-disponibile{background:#168c24 !important;color:#fff !important;}
.operator-status-text.status-breve{background:#e67e00 !important;color:#fff !important;}

#operatrici .card .operator-status-text,
.operator-banner-card .operator-status-text{
  position:absolute !important;
  top:8px !important;
  right:8px !important;
  left:auto !important;
  z-index:30 !important;
}
.operatrici-grid .card .operator-status-text,
.page-operatrici .card .operator-status-text,
.operatrici-page .card .operator-status-text{
  position:static !important;
  margin-left:8px !important;
  transform:none !important;
}
@media(max-width:768px){
  .operator-status-text{font-size:7px !important;padding:4px 7px !important;}
}

/* V93 iPhone — stato pagina Operatrici: una riga, senza sovrapposizioni */
@media (max-width: 768px){
  .operatrici-grid .card .operator-status-text,
  .page-operatrici .card .operator-status-text,
  .operatrici-page .card .operator-status-text{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
    width:auto !important;
    max-width:none !important;
    min-width:max-content !important;
    white-space:nowrap !important;
    overflow:visible !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    line-height:1 !important;
    font-size:7px !important;
    padding:4px 6px !important;
    margin-left:8px !important;
    vertical-align:middle !important;
  }

  .operatrici-grid .card .operator-status-text.status-disponibile,
  .page-operatrici .card .operator-status-text.status-disponibile,
  .operatrici-page .card .operator-status-text.status-disponibile{
    min-width:68px !important;
  }

  .operatrici-grid .card .operator-status-text.status-breve,
  .page-operatrici .card .operator-status-text.status-breve,
  .operatrici-page .card .operator-status-text.status-breve{
    min-width:92px !important;
  }

  /* Evita che il contenitore del nome restringa il testo fino a mandarlo a capo. */
  .operatrici-grid .card .operator-meta,
  .page-operatrici .card .operator-meta,
  .operatrici-page .card .operator-meta{
    display:flex !important;
    align-items:center !important;
    flex-wrap:nowrap !important;
    min-width:0 !important;
  }

  .operatrici-grid .card .operator-meta .operator-name,
  .page-operatrici .card .operator-meta .operator-name,
  .operatrici-page .card .operator-meta .operator-name{
    flex:1 1 auto !important;
    min-width:0 !important;
    white-space:nowrap !important;
  }
}

/* V97 — video di sfondo nella hero di Home, senza alterare il resto della pagina */
.hero.hero-video{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  background:#050505 !important;
  min-height:clamp(430px, 58vw, 680px) !important;
}
.hero-video .hero-video-bg{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  z-index:-2 !important;
  display:block !important;
}
.hero-video .hero-video-overlay{
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(180deg,rgba(0,0,0,.30),rgba(0,0,0,.46)) !important;
  z-index:-1 !important;
  pointer-events:none !important;
}
.hero-video .hero-copy{position:relative !important;z-index:1 !important;}
@media(max-width:768px){
  .hero.hero-video{min-height:560px !important;}
  .hero-video .hero-video-bg{object-position:center center !important;}
}

/* V99 — video reale, nitido e panoramico: nessun blur / nessun fondo duplicato */
.hero.hero-video{
  height:clamp(560px, 56.25vw, 720px) !important;
  min-height:0 !important;
  background:#050505 !important;
}
.hero-video .hero-video-bg{
  object-fit:cover !important;
  object-position:center center !important;
  filter:none !important;
  transform:none !important;
}
.hero-video .hero-video-overlay{
  background:linear-gradient(180deg,rgba(0,0,0,.20),rgba(0,0,0,.38)) !important;
}
@media(max-width:768px){
  .hero.hero-video{
    height:560px !important;
    min-height:0 !important;
  }
}


/* =========================================================
 * RECENSIONI INTEGRATE
 * ========================================================= */
.noblessere-reviews-page{min-height:70vh}
.noblessere-reviews-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  margin-top:10px;
}
.noblessere-review-card{
  background:linear-gradient(180deg,#12100d,#090807);
  border:1px solid var(--line);
  padding:28px;
  box-shadow:0 12px 35px rgba(0,0,0,.18);
}
.noblessere-review-stars{
  color:var(--gold2);
  font-size:18px;
  letter-spacing:3px;
  margin-bottom:12px;
}
.noblessere-review-card h3{
  margin:0;
  color:var(--gold2);
  font:400 24px Georgia,serif;
}
.noblessere-review-operator{
  margin-top:4px;
  color:var(--gold);
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
}
.noblessere-review-text{
  margin-top:16px;
  color:var(--muted);
  font-size:14px;
}
.noblessere-review-text p:last-child{margin-bottom:0}
@media(max-width:700px){
  .noblessere-reviews-grid{grid-template-columns:1fr;gap:16px}
  .noblessere-review-card{padding:22px}
}
