/* Frontoffice concerti. I componenti di base rimangono in app.css. */
.concert-front{background:#f6f9ff;color:#122549;--ink:#122549;--muted:#5c6e8c;--purple:#2563eb;--purple-soft:#edf4ff;--side-width:0px}
.concert-front .workspace{margin-left:0!important}
.concert-front .main-content{max-width:1380px;padding:24px 40px 80px;min-height:65vh}
.concert-front .muted{color:#68686e}
.concert-front .btn{font-size:.9375rem;min-height:46px;padding:.7rem 1.3rem;border-radius:999px;font-weight:600}
.concert-front .btn:disabled{opacity:.6}
.concert-front .btn-outline-dark{border-color:#c8c8cd}
.concert-front .form-control:focus,.concert-front .discovery-search:focus-within{border-color:#777;box-shadow:0 0 0 3px #20212318}
.concert-front .form-check-input:checked{background-color:#202123;border-color:#202123}
.concert-front .eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;color:#6e6e74}
.concert-front .live-header{background:#fff;border-bottom:1px solid #e6e6e8}
.concert-front .live-header-inner{max-width:1380px;padding:24px 40px;margin:auto;display:flex;align-items:center;gap:30px;justify-content:space-between}
.concert-front .live-header .brand{font-size:1.7rem;letter-spacing:-.06em}
.concert-front .brand-symbol{font-size:2.1rem}
.concert-front .brand-symbol span{color:#d3d3d7}
.concert-front .live-nav{display:flex;gap:32px;align-items:center}
.concert-front .live-nav a{font-size:.9375rem;font-weight:500;padding:8px 0;border-bottom:2px solid transparent}
.concert-front .live-nav a:hover{border-bottom-color:#202123}
.concert-front .live-account{font-size:.875rem;min-height:42px;padding:.6rem 1rem}
.concert-front .demo-notice{background:#f5f5f5;border:1px solid #e5e5e5;color:#636368;font-size:.75rem;margin:0 0 22px}
.concert-front .live-hero{position:relative;isolation:isolate;overflow:hidden;border-radius:16px;background:#202123;color:#fff;display:flex;align-items:flex-end;min-width:0}
.concert-front .stage-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:saturate(1.12);z-index:-2}
.concert-front .live-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(5,23,65,.97) 0%,rgba(16,61,142,.84) 48%,rgba(17,80,179,.14) 100%)}
.concert-front .home-stage{min-height:510px}
.concert-front .home-stage .stage-image{object-position:center 58%}
.concert-front .stage-content{padding:50px 54px;width:100%;min-width:0}
.concert-front .stage-content>.eyebrow{color:#dedee1;margin-bottom:24px}
.concert-front .stage-content h1{font-size:clamp(2.5rem,5.8vw,5.3rem);font-weight:700;line-height:1.02;letter-spacing:-.055em;margin:0 0 22px;max-width:900px;overflow-wrap:anywhere;text-transform:uppercase}
.concert-front .stage-content h1 span{color:#b5b5bb}
.concert-front .stage-content>p{font-size:1rem;color:#e0e0e3;margin-bottom:26px;max-width:620px}
.concert-front .discovery-search{max-width:670px;margin:32px 0 0;padding:8px 8px 8px 20px;background:white;border:1px solid #d9d9dd;border-radius:999px;box-shadow:none;color:#202123;gap:12px}
.concert-front .discovery-search input{font-size:1rem;min-height:42px;color:#202123}
.concert-front .discovery-search input::placeholder{color:rgba(108,117,125,.55);opacity:1}
.concert-front .discovery-search .btn{border-radius:999px}
.concert-front .search-stage{min-height:350px}
.concert-front .search-stage h1{font-size:clamp(2.2rem,4vw,3.3rem)}
.concert-front .section-block{margin-top:58px}
.concert-front .section-heading{margin-bottom:26px;align-items:flex-end}
.concert-front .section-heading .eyebrow{font-size:.75rem;margin-bottom:10px}
.concert-front .section-heading h2{font-size:clamp(1.65rem,3vw,2.4rem);font-weight:700;letter-spacing:-.045em;line-height:1.1}
.concert-front .count-label{font-size:.875rem;color:#6d6d72}
.concert-front .artist-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.concert-front .artist-card{position:relative;border:0;border-radius:20px;overflow:hidden;background:#0b285d;box-shadow:0 8px 24px #173e7918;transition:box-shadow .25s,transform .25s}
.concert-front .artist-card:hover,.concert-front .artist-card:focus-visible{box-shadow:0 20px 42px #12366f38;transform:translateY(-5px)}
.concert-front .artist-picture{height:320px;border-radius:0;background:#0b285d}
.concert-front .artist-picture img{filter:saturate(1.05);object-position:center 42%;transition:transform .4s ease}
.concert-front .artist-picture:after{z-index:1;pointer-events:none;background:linear-gradient(transparent 52%,rgba(2,15,44,.5) 74%,rgba(2,13,38,.82))}
.concert-front .artist-card-overlay{position:absolute;right:0;bottom:0;left:0;z-index:2;padding:18px 21px;color:#fff;background:linear-gradient(110deg,rgba(5,35,89,.94),rgba(24,91,203,.9));transition:padding .3s ease,background .3s ease}
.concert-front .artist-card-overlay h3 {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.035em;
  text-transform: capitalize;
  margin: 0;
  overflow-wrap: anywhere;
}
.concert-front .artist-card-dates{display:block;max-height:0;margin-top:0;overflow:hidden;color:#dbeafe;font-size:.875rem;font-weight:600;line-height:1.45;opacity:0;transform:translateY(10px);transition:max-height .3s ease,margin-top .3s ease,opacity .22s ease,transform .3s ease}
.concert-front .artist-card:hover .artist-card-overlay,.concert-front .artist-card:focus-visible .artist-card-overlay{padding-top:22px;padding-bottom:22px;background:linear-gradient(110deg,rgba(4,31,81,.97),rgba(29,101,224,.94))}
.concert-front .artist-card:hover .artist-card-dates,.concert-front .artist-card:focus-visible .artist-card-dates{max-height:28px;margin-top:7px;opacity:1;transform:translateY(0)}
.concert-front .live-calendar{padding-top:35px;border-top:1px solid #dedee2}
.concert-front .event-list{border-radius:12px;border-color:#dedee2}
.concert-front .event-row{padding:22px 26px;gap:24px;background:#fff;flex-wrap:nowrap}
.concert-front .event-row:hover{background:#f7f7f8}
.concert-front .date-tile{width:70px;border-color:#d9d9dd;border-radius:8px;background:#fff}
.concert-front .date-tile span{background:#1d4ed8;color:#fff;font-size:.75rem;padding:5px}
.concert-front .date-tile strong{font-size:1.65rem;padding:7px 0}
.concert-front .event-main{flex:1;min-width:0}
.concert-front .event-main h3{font-size:1.125rem;text-transform:uppercase;font-weight:700;letter-spacing:-.02em}
.concert-front .event-main>span{font-size:.9375rem;color:#68686f}
.concert-front .event-time{font-size:.9375rem;margin-left:0}
.concert-front .event-time small{font-size:.8125rem;color:#76767b}
.concert-front .event-action{background:linear-gradient(115deg,#1d4ed8,#2563eb);color:#fff;border-radius:999px;padding:11px 20px;gap:18px;flex-shrink:0;font-size:.875rem;margin-left:10px}
.concert-front .back-link{font-size:.875rem;color:#63636b;margin:2px 0 23px}
.concert-front .artist-stage{min-height:440px}
.concert-front .artist-stage .stage-image,.concert-front .event-stage .stage-image{object-position:center 40%}
.concert-front .artist-stage .stage-content{padding-top:70px;padding-bottom:48px}
.concert-front .artist-stage h1,.concert-front .event-stage h1{max-width:850px}
.concert-front .inline-meta{font-size:.9375rem;color:#dedee3;flex-wrap:wrap;margin-bottom:27px}
.concert-front .artist-columns {
  grid-template-columns: minmax(0,2fr) 1fr;
  gap: 42px;
}
.concert-front .artist-columns .event-row{flex-wrap:wrap;padding:21px;gap:18px}
.concert-front .artist-columns .event-main{flex-basis:calc(100% - 90px)}
.concert-front .artist-columns .event-time{margin-left:82px}
.concert-front .artist-columns .event-action{margin-left:auto}
.concert-front .artist-about{margin-top:58px;padding:27px;border:1px solid #e1e1e5;border-radius:12px;background:#f7f7f8;align-self:start}
.concert-front .artist-about h2{font-size:1.5rem;font-weight:700;letter-spacing:-.035em}
.concert-front .artist-about-copy{font-size:1rem;color:#66666c;line-height:1.8;overflow-wrap:anywhere;position:relative}
.concert-front .artist-about.is-collapsed .artist-about-copy{max-height:7.2em;overflow:hidden}
.concert-front .artist-about.is-collapsed .artist-about-copy:after{content:"";position:absolute;right:0;bottom:0;left:0;height:3.6em;pointer-events:none;background:linear-gradient(to bottom,rgba(238,245,255,0),#eef5ff)}
.concert-front .artist-about-toggle{border:0;background:transparent;color:#1d4ed8;font-size:.9375rem;font-weight:600;margin-top:14px;padding:0;text-decoration:underline;text-underline-offset:4px}
.concert-front .artist-about-toggle:hover{color:#163f9d}
.concert-front .event-stage{min-height:355px}
.concert-front .event-stage .stage-content{padding-top:40px;padding-bottom:40px}
.concert-front .event-stage h1{font-size:clamp(2.5rem,5vw,4.4rem)}
.concert-front .stage-event-meta{display:flex;gap:15px 30px;flex-wrap:wrap;color:#eeeeef;font-size:.9375rem}
.concert-front .stage-event-meta>span{display:flex;align-items:center;gap:9px;max-width:100%}
.concert-front .stage-event-meta .icon{width:19px}
.concert-front .ticket-layout{grid-template-columns:minmax(0,1fr) 340px;gap:42px;margin-top:46px;align-items:start}
.concert-front .ticket-options>.muted{font-size:1rem;line-height:1.65;color:#6d6d72;margin-bottom:27px}
.concert-front .ticket-offer{border:1px solid #d6d6dc;border-left:4px solid #202123;border-radius:10px;padding:24px;margin-bottom:16px;gap:24px}
.concert-front .offer-copy h3{font-size:1.125rem;font-weight:600;margin-bottom:9px}
.concert-front .offer-copy p{font-size:.875rem;color:#727279}
.concert-front .offer-price{display:flex;align-items:center;gap:24px;flex-shrink:0}
.concert-front .offer-price strong{font-size:1.55rem;letter-spacing:-.04em;margin:0}
.concert-front .offer-price .btn{font-size:.9375rem;min-height:43px;padding:.65rem 1.2rem}
.concert-front .ticket-offer.sold-out{border-left-color:#b9b9c0;background:#f7f7f8}
.concert-front .status-badge{font-size:.75rem;color:#64646c;background:#e9e9ed}
.concert-front .event-summary{border:1px solid #d5d5dc;border-radius:12px;background:#fafafa;position:sticky;top:24px}
.concert-front .summary-top{display:flex;align-items:center;gap:12px;background:#202123;color:#fff;padding:19px 25px;font-size:.75rem;font-weight:700;letter-spacing:.13em;line-height:1.2}
.concert-front .summary-top .icon{display:block;width:19px;height:19px;flex:0 0 19px}
.concert-front .summary-top span{display:block}
.concert-front .event-summary-photo{display:block;width:100%;height:auto;max-height:none;aspect-ratio:4/5;object-fit:cover;background:#eaf2ff}
.concert-front .summary-body{padding:26px}
.concert-front .summary-body h2{font-size:1.75rem;letter-spacing:-.04em;text-transform:uppercase;font-weight:700;margin-bottom:10px;overflow-wrap:anywhere}
.concert-front .summary-tour{font-size:.9375rem;color:#66666e;margin-bottom:25px}
.concert-front .summary-detail{font-size:1rem;color:#33333a;gap:12px}
.concert-front .summary-detail>.icon{color:#6d6d76}
.concert-front .summary-detail small{font-size:.875rem;color:#77777f}
.concert-front .summary-divider{border-top:1px dashed #c6c6ce}
.concert-front .summary-body>.small{font-size:.8125rem}
.concert-front .price-footer{font-size:.8125rem;color:#75757d}
.concert-front .text-button{font-size:.875rem;color:#54545d}
.concert-front .purchase-note{background:#f4f4f5;color:#686870;font-size:.875rem;padding:21px}
.concert-front .empty-state{background:#f7f7f8;padding:40px 24px}
.concert-front .empty-state h3{font-size:1.3rem}
.concert-front .empty-state p{font-size:1rem;color:#6c6c72}
.concert-front .live-footer{background:linear-gradient(120deg,#071936,#102e68 65%,#124189);color:#fff;display:grid;grid-template-columns:1fr auto;gap:30px;max-width:none;padding:48px max(40px,calc((100vw - 1300px)/2)) 28px}
.concert-front .live-footer .brand{font-size:1.7rem;letter-spacing:-.05em}
.concert-front .live-footer p{font-size:.9375rem;color:#b7b7be;margin:12px 0 0}
.concert-front .live-footer nav{display:flex;gap:25px;align-items:flex-start;flex-wrap:wrap;font-size:.875rem;color:#ddddE2}
.concert-front .live-footer a:hover{text-decoration:underline;text-underline-offset:5px}
.concert-front .live-footer small{grid-column:1/-1;display:block;border-top:1px solid #444449;padding-top:24px;color:#acacb4;font-size:.75rem}
@media(max-width:1100px){
 .concert-front .main-content{padding-left:28px;padding-right:28px}
 .concert-front .live-header-inner{padding:20px 28px;gap:20px}
 .concert-front .live-nav{gap:20px}
 .concert-front .stage-content{padding:42px}
 .concert-front .home-stage{min-height:460px}
 .concert-front .artist-picture{height:270px}
 .concert-front .artist-columns{gap:26px;grid-template-columns:minmax(0,1fr) 270px}
 .concert-front .ticket-layout{gap:26px;grid-template-columns:minmax(0,1fr) 290px}
 .concert-front .offer-price{display:block}
 .concert-front .offer-price strong{margin-bottom:10px}
 .concert-front .live-footer{padding-left:28px;padding-right:28px}
}
@media(max-width:800px){
 .concert-front .live-header-inner{flex-wrap:wrap;gap:14px}
 .concert-front .live-nav{order:3;flex-basis:100%;justify-content:space-between;gap:12px;border-top:1px solid #eee;padding-top:10px}
 .concert-front .live-nav a{font-size:.875rem}
 .concert-front .home-stage{min-height:450px}
 .concert-front .stage-content{padding:35px}
 .concert-front .stage-content h1{font-size:clamp(2.45rem,7.4vw,3.8rem)}
 .concert-front .artist-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .concert-front .artist-columns{grid-template-columns:1fr}
 .concert-front .artist-about{margin-top:5px}
 .concert-front .ticket-layout{grid-template-columns:1fr;display:grid;gap:30px}
 .concert-front .event-summary{position:static;display:block;width:100%}
 .concert-front .offer-price{display:flex}
 .concert-front .offer-price strong{margin-bottom:0}
 .concert-front .live-footer{grid-template-columns:1fr}
 .concert-front .live-footer nav{gap:20px}
}
@media(max-width:600px){
 .concert-front .main-content{padding:18px 18px 48px}
 .concert-front .live-header-inner{padding:17px 18px 10px}
 .concert-front .live-header .brand{font-size:1.5rem}
 .concert-front .live-account{font-size:.8125rem;min-height:40px;padding:.5rem .8rem}
 .concert-front .live-nav a{font-size:.8125rem}
 .concert-front .demo-notice{font-size:.75rem;line-height:1.5;margin-bottom:18px}
 .concert-front .live-hero{border-radius:12px}
 .concert-front .home-stage{min-height:440px}
 .concert-front .stage-content{padding:30px 23px}
 .concert-front .stage-content>.eyebrow{font-size:.75rem;letter-spacing:.09em;margin-bottom:23px}
 .concert-front .stage-content h1{font-size:clamp(2rem,8.2vw,3rem);line-height:1.05;margin-bottom:20px}
 .concert-front .stage-content>p{font-size:.9375rem;line-height:1.6;margin-bottom:24px}
 .concert-front .live-hero:after{background:linear-gradient(110deg,rgba(5,23,65,.95),rgba(16,70,153,.64))}
 .concert-front .discovery-search{padding:7px 7px 7px 12px;gap:6px;border-radius:14px;margin-top:22px}
 .concert-front .discovery-search input{font-size:1rem;min-height:38px;padding:6px 0}
 .concert-front .discovery-search>span{display:none}
 .concert-front .discovery-search .btn{font-size:.875rem;min-height:42px;padding:.55rem .9rem}
 .concert-front .discovery-search .btn .icon{display:none}
 .concert-front .section-block{margin-top:38px}
 .concert-front .section-heading{gap:15px;flex-wrap:wrap;margin-bottom:21px}
 .concert-front .section-heading .eyebrow{font-size:.75rem;letter-spacing:.08em}
 .concert-front .section-heading h2{font-size:1.75rem}
 .concert-front .artist-grid{grid-template-columns:1fr;gap:24px}
 .concert-front .artist-grid>.artist-card:last-child:nth-child(odd){grid-column:auto}
 .concert-front .artist-picture,.concert-front .artist-grid>.artist-card:last-child:nth-child(odd) .artist-picture{height:310px}
 .concert-front .artist-card-overlay{padding:18px 20px}
 .concert-front .artist-card-overlay h3{font-size:1.65rem}
 .concert-front .event-row,.concert-front .artist-columns .event-row{flex-wrap:wrap;padding:20px 16px;gap:15px}
 .concert-front .date-tile{width:70px}
 .concert-front .event-main,.concert-front .artist-columns .event-main{flex-basis:calc(100% - 90px)}
 .concert-front .event-main h3{font-size:1.0625rem}
 .concert-front .event-main>span{font-size:.875rem}
 .concert-front .event-time,.concert-front .artist-columns .event-time{margin-left:85px;font-size:.875rem;min-width:0}
 .concert-front .event-action,.concert-front .artist-columns .event-action{margin-left:auto;padding:9px 15px;font-size:.875rem;gap:10px}
 .concert-front .live-calendar{padding-top:25px}
 .concert-front .artist-stage{min-height:390px}
 .concert-front .artist-stage .stage-content{padding:38px 24px}
 .concert-front .artist-stage h1,.concert-front .event-stage h1{font-size:clamp(2.2rem,10vw,3.7rem)}
 .concert-front .inline-meta{font-size:.875rem}
 .concert-front .event-stage{min-height:340px}
 .concert-front .event-stage .stage-content{padding:30px 24px}
 .concert-front .stage-event-meta{display:grid;font-size:.875rem;gap:12px}
 .concert-front .stage-event-meta>span{align-items:flex-start}
 .concert-front .stage-event-meta .icon{margin-top:2px}
 .concert-front .ticket-layout{margin-top:34px}
 .concert-front .ticket-offer{padding:20px 16px;flex-wrap:wrap;gap:20px}
 .concert-front .offer-copy{flex-basis:100%}
 .concert-front .offer-price{width:100%;justify-content:space-between;text-align:left;gap:10px;flex-wrap:wrap}
 .concert-front .offer-price strong{font-size:1.65rem}
 .concert-front .offer-price .btn{font-size:1rem;padding:.6rem 1.2rem;min-height:44px}
 .concert-front .summary-body{padding:24px}
 .concert-front .summary-body h2,.concert-front .summary-divider,.concert-front .summary-body>.small{display:block}
 .concert-front .summary-detail{margin:22px 0;font-size:1rem}
 .concert-front .summary-detail:last-of-type{margin-bottom:22px}
 .concert-front .summary-detail small{font-size:.875rem}
 .concert-front .live-footer{padding:36px 23px 24px;gap:26px}
 .concert-front .live-footer nav{flex-direction:column;gap:14px}
}
@media(prefers-reduced-motion:reduce){.concert-front .artist-card:hover,.concert-front .artist-card:focus-visible{transform:none}.concert-front .artist-card-overlay,.concert-front .artist-card-dates,.concert-front .artist-picture img{transition:none}}

/* Pagina artista: su desktop il richiamo Biglietti resta a destra; su mobile è cliccabile tutta la riga. */
.concert-front .artist-columns .artist-event-row{display:grid;grid-template-columns:70px minmax(0,1fr) max-content;align-items:center;gap:16px}
.concert-front .artist-columns .artist-event-row .date-tile{width:70px}
.concert-front .artist-columns .artist-event-row .event-main{min-width:0;overflow-wrap:anywhere}
.concert-front .artist-columns .artist-event-row .event-action{grid-column:3;grid-row:1;margin-left:0;justify-self:end;display:inline-flex;align-items:center;white-space:nowrap}
@media(max-width:600px){
 .concert-front .artist-columns .artist-event-row{grid-template-columns:70px minmax(0,1fr);gap:14px;padding:18px 12px}
 .concert-front .artist-columns .artist-event-row .date-tile{width:70px}
 .concert-front .artist-columns .artist-event-row .event-action{display:none}
}
@media(max-width:380px){
 .concert-front .artist-columns .artist-event-row .event-action .icon{display:none}
}

/* Keep the availability message above its action on every screen size. */
.concert-front .offer-price.offer-unavailable{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:10px}
.concert-front .offer-price.offer-unavailable strong{margin:0}
.concert-front .ticket-offer.sold-out{opacity:1}
.concert-front .offer-unavailable .status-badge{white-space:normal;text-align:right}

/* Blu, luce e profondità per le pagine dei concerti. */
.concert-front{background-image:radial-gradient(ellipse at 0 180px,#e4eeff 0,transparent 650px)}
.concert-front .live-header{background:#ffffffed;border-color:#dce7fa}
.concert-front .brand-symbol{background:linear-gradient(145deg,#153a92,#317ef2);box-shadow:0 4px 15px #2563eb20}
.concert-front .brand-symbol span{color:#98dcff}
.concert-front .live-nav a{color:#465c80}.concert-front .live-nav a:hover{color:#1d4ed8;border-bottom-color:#2563eb}
.concert-front .btn-dark{background:linear-gradient(115deg,#1d4ed8,#2674e9);border-color:#2563eb;box-shadow:0 5px 15px #2563eb1c;color:#fff}
.concert-front .btn-dark:hover{background:linear-gradient(115deg,#173ba9,#1d5fd5);border-color:#1d4ed8}
.concert-front .btn-outline-dark{background:#fff;color:#1d4ed8;border-color:#b8cdf3}
.concert-front .btn-outline-dark:hover{background:#eaf2ff;color:#163a96;border-color:#729feb}
.concert-front .btn-white{background:white;color:#1d4ed8;border-color:white}
.concert-front .form-control:focus,.concert-front .discovery-search:focus-within{border-color:#69a1fb;box-shadow:0 0 0 4px #2563eb20}
.concert-front .form-check-input:checked{background-color:#2563eb;border-color:#2563eb}
.concert-front .eyebrow{color:#3862a3}.concert-front .stage-content>.eyebrow{color:#cae3ff}
.concert-front .live-hero{border-radius:24px;background:#0c2e69;box-shadow:0 20px 50px #133e7e22}
.concert-front .stage-content h1 span{color:#92d9ff}
.concert-front .stage-content>p{color:#e0edff}
.concert-front .home-stage{min-height:530px}
.concert-front .discovery-search{border:1px solid #d5e2fb;box-shadow:0 10px 30px #0313332e}
.concert-front .artist-card{box-shadow:0 8px 24px #173e7918}
.concert-front .artist-card:hover,.concert-front .artist-card:focus-visible{box-shadow:0 20px 42px #12366f38}
.concert-front .live-calendar{border-color:#d5e2f4}
.concert-front .event-list{border-color:#dbe6f6;border-radius:18px;box-shadow:0 6px 22px #133e7e08}
.concert-front .event-row{border-color:#e6edf8}.concert-front .event-row:hover{background:#f0f6ff}
.concert-front .event-action{box-shadow:0 4px 12px #2563eb18}
.concert-front .date-tile{border-color:#d1e0f8}.concert-front .date-tile strong{color:#214e96}
.concert-front .artist-about{background:linear-gradient(150deg,#fff,#ebf3ff);border-color:#d9e5f8;border-radius:20px}
.concert-front .event-summary{background:#fff;border-color:#d9e5f8;border-radius:20px;box-shadow:0 10px 28px #173e7910;overflow:hidden}
.concert-front .summary-detail>.icon{color:#2563eb}
.concert-front .ticket-offer{background:#fff;border-color:#d7e4f7;border-left-color:#3178eb;border-radius:16px;box-shadow:0 5px 18px #173e7908}
.concert-front .offer-copy{min-width:0;overflow-wrap:anywhere}.concert-front .offer-copy h3{color:#19365e}
.concert-front .offer-price strong{color:#174bb0}
.concert-front .ticket-offer.sold-out{background:linear-gradient(110deg,#f0f5ff,#fff);border-left-color:#90a9cc;color:#435c7f}
.concert-front .sold-out .status-badge{background:#e5edf9;color:#425d83;padding:6px 10px;border-radius:8px;font-size:.8125rem}
.concert-front .purchase-note{background:#eaf2ff;color:#4c6689;border:1px solid #d7e5fc;border-radius:14px}
.concert-front .price-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px;font-size:.8125rem;color:#416089}
.concert-front .price-summary span{padding:5px 10px;border:1px solid #dbe6f6;background:#fff;border-radius:999px}
.concert-front .price-summary .available-count{color:#1c6b52;background:#edf8f3;border-color:#cfebdf}
.concert-front .empty-state{background:#edf4ff;border-radius:16px}
.concert-front .live-footer p,.concert-front .live-footer small{color:#b8cce9}.concert-front .live-footer nav{color:#dae8fc}
.concert-front .live-footer small{border-color:#ffffff29}
@media(max-width:600px){.concert-front .live-hero{border-radius:18px}.concert-front .home-stage{min-height:465px}}

/* I suggerimenti restano sopra le sezioni successive, anche fuori dalla hero. */
.concert-front .home-stage{overflow:visible;z-index:2}
.concert-front .home-stage .stage-image,.concert-front .home-stage:after{border-radius:inherit}
.concert-front .home-search-wrap{position:relative;max-width:670px;z-index:3}
.concert-front .home-search-wrap .discovery-search{width:100%;margin-bottom:0}
.concert-front .artist-suggestions{position:absolute;top:calc(100% - 22px);left:0;right:0;z-index:20;margin:0;padding:8px;list-style:none;background:#fff;border:1px solid #cbdcf7;border-radius:18px;box-shadow:0 22px 55px #061d4f40;max-height:340px;overflow:auto;color:#15335d}
.concert-front .artist-suggestions[hidden]{display:none}
.concert-front .artist-suggestions [role="option"]{position:relative;display:flex;align-items:center;gap:13px;min-height:68px;padding:10px 12px;border-radius:11px;cursor:pointer}
.concert-front .artist-suggestions [role="option"]:not(:last-child)::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:1px;background:#dfe7f2;pointer-events:none}
.concert-front .artist-suggestions [role="option"]:hover,.concert-front .artist-suggestions [aria-selected="true"]{background:#edf4ff}
.concert-front .artist-suggestions img{width:44px;height:44px;object-fit:cover;border-radius:10px;flex-shrink:0}
.concert-front .suggestion-copy{flex:1;min-width:0}
.concert-front .suggestion-copy strong{display:block;font-size:.9375rem;font-weight:600;overflow-wrap:anywhere}
.concert-front .suggestion-copy small{display:block;color:#607491;font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.concert-front .suggestion-arrow{color:#2563eb;font-size:1.2rem}
.concert-front .artist-search-status{font-size:.75rem;line-height:1.4;color:#d7e8ff;min-height:30px;padding:8px 10px 0}
.concert-front .suggestions-open .artist-search-status{visibility:hidden}
.concert-front .suggestions-open .artist-suggestions{top:calc(100% - 22px)}
@media(max-width:600px){.concert-front .artist-suggestions{max-height:280px;border-radius:14px}.concert-front .artist-suggestions [role="option"]{padding:9px;gap:10px}}

/* Prezzo/stato nella stessa colonna; entrambe le azioni hanno larghezza uguale. */
.concert-front .offer-price,
.concert-front .offer-price.offer-unavailable{display:grid;grid-template-columns:minmax(0,1fr) 128px;width:288px;flex:0 0 288px;align-items:center;gap:16px;text-align:right}
.concert-front .offer-price .offer-value{grid-column:1;grid-row:1;margin:0;min-width:0}
.concert-front .offer-price .offer-unavailable-label{font-size:.875rem;font-weight:500;line-height:1.4;color:#607491;overflow-wrap:anywhere}
.concert-front .offer-price .btn{grid-column:2;grid-row:1;width:128px;min-width:128px;min-height:44px;margin:0;padding:.65rem .8rem}
@media(min-width:801px) and (max-width:1100px){
 .concert-front .ticket-offer{flex-wrap:wrap}
 .concert-front .offer-price,.concert-front .offer-price.offer-unavailable{margin-left:auto}
}
@media(max-width:600px){
 .concert-front .offer-price,.concert-front .offer-price.offer-unavailable{width:100%;flex-basis:100%;gap:12px;text-align:left}
}

/* Card verticale 4:5 con riempimento e zoom al passaggio del mouse. */
.concert-front .artist-picture,.concert-front .artist-grid>.artist-card:last-child:nth-child(odd) .artist-picture{height:auto;aspect-ratio:4/5}
.concert-front .artist-picture img{object-fit:cover;object-position:center;transform:scale(1)}
.concert-front .artist-card:hover .artist-picture img,.concert-front .artist-card:focus-visible .artist-picture img{transform:scale(1.045)}
@media(hover:none),(pointer:coarse){
 .concert-front .artist-card-overlay{padding-top:20px;padding-bottom:20px}
 .concert-front .artist-card-dates{max-height:28px;margin-top:7px;opacity:1;transform:none}
}
@media(min-width:1200px){.concert-front .artist-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Footer: brand + tre colonne sulla stessa riga, social e preferenze cookie. */
.concert-front .live-footer{display:block;padding:52px max(40px,calc((100vw - 1300px)/2)) 28px;background:linear-gradient(120deg,#071936,#102e68 65%,#124189);color:#fff}
.concert-front .live-footer-inner{max-width:1300px;margin:0 auto}
.concert-front .live-footer-grid{display:grid;grid-template-columns:minmax(280px,1.45fr) minmax(150px,.75fr) minmax(180px,.9fr) minmax(160px,.75fr);gap:48px;align-items:start}
.concert-front .live-footer-branding{min-width:0;max-width:390px}
.concert-front .live-footer-brand{display:inline-flex;align-items:center;gap:7px;color:#fff;font-size:2rem;font-weight:700;letter-spacing:-.055em;text-decoration:none}
.concert-front .live-footer-brand .brand-symbol{font-size:2.45rem;line-height:1}
.concert-front .live-footer-brand .brand-symbol span{color:#8fc8ff}
.concert-front .live-footer-branding p{max-width:360px;margin:14px 0 0;color:#c6d9f3;font-size:.95rem;line-height:1.7}
.concert-front .live-footer-column h2{margin:7px 0 18px;color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.concert-front .live-footer-column nav{display:flex;flex-direction:column;align-items:flex-start;gap:11px;font-size:.9rem}
.concert-front .live-footer-column nav a,.concert-front .live-footer-link{color:#dae8fc;text-decoration:none}
.concert-front .live-footer-link{border:0;padding:0;background:transparent;font:inherit;cursor:pointer}
.concert-front .live-footer-column nav a:hover,.concert-front .live-footer-link:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.concert-front .live-footer-socials{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.concert-front .live-footer-socials a{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff35;border-radius:50%;color:#fff;background:#ffffff0d;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.concert-front .live-footer-socials a:hover{background:#ffffff1c;border-color:#ffffff80;transform:translateY(-2px)}
.concert-front .live-footer-socials .icon{width:21px;height:21px}
.concert-front .live-footer small{display:block;margin-top:38px;padding-top:24px;border-top:1px solid #ffffff29;color:#b8cce9;font-size:.75rem}
.concert-front .cookie-preferences-intro{color:#5f6f85;line-height:1.65}
.concert-front .cookie-preference-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;border-top:1px solid #e5eaf1}
.concert-front .cookie-preference-row strong{display:block;font-size:.95rem;color:#18263a}
.concert-front .cookie-preference-row small{display:block;margin-top:5px;color:#6a788b;line-height:1.5}
.concert-front .cookie-preferences-note{margin:15px 0 0;color:#738094;font-size:.8rem;line-height:1.55}
.concert-front .cookie-preferences-actions{gap:8px;flex-wrap:wrap}
.concert-front .content-copy{max-width:900px;margin:34px auto;padding:38px}
.concert-front .content-copy h1{margin-bottom:24px}
@media(max-width:1000px){.concert-front .live-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 48px}.concert-front .live-footer-branding{max-width:420px}.concert-front .live-footer-social-column{grid-column:auto}}
@media(max-width:600px){.concert-front .live-footer{padding:38px 23px 24px}.concert-front .live-footer-grid{grid-template-columns:1fr;gap:30px}.concert-front .live-footer-brand{font-size:1.75rem}.concert-front .live-footer-brand .brand-symbol{font-size:2.15rem}.concert-front .live-footer-branding p{font-size:.9rem}.concert-front .live-footer small{margin-top:28px}.concert-front .cookie-preferences-actions .btn{flex:1 1 100%}.concert-front .content-copy{margin:20px 0;padding:25px 20px}}

/* Pagina artista: date + biografia a sinistra, media e blog a destra. */
.concert-front .artist-content-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:42px;align-items:start}
.concert-front .artist-content-grid-single{grid-template-columns:1fr}
.concert-front .artist-main-column{min-width:0}
.concert-front .artist-biography{padding-top:34px;border-top:1px solid #dfe5ef}
.concert-front .artist-biography .artist-about-copy{max-width:900px;color:#556782;font-size:1rem;line-height:1.85}
.concert-front .artist-media-sidebar{margin-top:58px;display:flex;flex-direction:column;gap:20px;min-width:0}
.concert-front .artist-sidebar-card{padding:24px;border:1px solid #dbe4f0;border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(20,55,105,.06)}
.concert-front .artist-sidebar-card>.eyebrow{display:block;margin-bottom:7px}
.concert-front .artist-sidebar-card>h2{margin:0 0 17px;font-size:1.3rem;font-weight:700;letter-spacing:-.035em}
.concert-front .artist-video-frame{position:relative;overflow:hidden;border-radius:12px;background:#0b1730;aspect-ratio:16/9}
.concert-front .artist-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.concert-front .artist-media-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-radius:10px;background:#eef4ff;color:#1d4ed8;font-weight:600}
.concert-front .artist-media-link .icon{width:18px;height:18px}
.concert-front .artist-soundcloud-player{display:block;width:100%;border:0;border-radius:12px;background:#f4f6f9}
.concert-front .artist-post-list{display:flex;flex-direction:column;gap:12px}
.concert-front .artist-post-card{display:grid;grid-template-columns:82px minmax(0,1fr);gap:13px;align-items:center;padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#fbfdff;transition:transform .18s,border-color .18s,box-shadow .18s}
.concert-front .artist-post-card:hover{transform:translateY(-2px);border-color:#b9c9df;box-shadow:0 10px 22px rgba(18,55,110,.09)}
.concert-front .artist-post-card img{width:82px;height:66px;border-radius:9px;object-fit:cover}
.concert-front .artist-post-card strong{display:block;color:#122549;font-size:.92rem;line-height:1.35}
.concert-front .artist-post-card small{display:block;margin-top:6px;color:#77879f;font-size:.74rem}

/* Pagina singolo post. */
.concert-front .blog-post-page{max-width:1160px;margin:0 auto}
.concert-front .blog-post-header{max-width:880px;margin:30px 0 32px}
.concert-front .blog-post-header h1{font-size:clamp(2.2rem,5vw,4.6rem);font-weight:700;line-height:1.03;letter-spacing:-.055em;margin:10px 0 18px}
.concert-front .blog-post-header p{color:#71809a;margin:0}
.concert-front .blog-post-hero{display:block;width:100%;max-height:620px;object-fit:cover;border-radius:18px}
.concert-front .blog-post-layout{display:grid;grid-template-columns:minmax(0,2fr) 280px;gap:60px;align-items:start;margin-top:45px}
.concert-front .blog-post-content{font-size:1.075rem;line-height:1.9;color:#40516d}
.concert-front .blog-post-content p{margin:0 0 1.35em}
.concert-front .blog-post-content h2,.concert-front .blog-post-content h3{color:#122549;font-weight:700;letter-spacing:-.035em;margin:1.8em 0 .7em}
.concert-front .blog-post-content h2{font-size:1.8rem}.concert-front .blog-post-content h3{font-size:1.4rem}
.concert-front .blog-post-content blockquote{margin:1.8em 0;padding:18px 22px;border-left:4px solid #2563eb;background:#edf4ff;color:#334e7d}
.concert-front .blog-post-content a{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}
.concert-front .blog-post-artist{position:sticky;top:24px;padding:24px;border:1px solid #dce5f1;border-radius:15px;background:#fff}
.concert-front .blog-post-artist h2{font-size:1.35rem;font-weight:700;margin:7px 0 18px}

@media(max-width:991.98px){
  .concert-front .artist-content-grid{grid-template-columns:1fr}
  .concert-front .artist-media-sidebar{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .concert-front .artist-posts-card{grid-column:1/-1}
  .concert-front .blog-post-layout{grid-template-columns:1fr;gap:30px}
  .concert-front .blog-post-artist{position:static}
}
@media(max-width:650px){
  .concert-front .artist-media-sidebar{display:flex}
  .concert-front .artist-sidebar-card{padding:19px}
  .concert-front .artist-post-card{grid-template-columns:72px minmax(0,1fr)}
  .concert-front .artist-post-card img{width:72px;height:60px}
  .concert-front .blog-post-header{margin-top:18px}
  .concert-front .blog-post-hero{border-radius:13px}
  .concert-front .blog-post-layout{margin-top:30px}
  .concert-front .blog-post-content{font-size:1rem}
}
.concert-front .artist-post-thumb-placeholder{display:grid;place-items:center;width:82px;height:66px;border-radius:9px;background:#edf3fb;color:#7d8da5}.concert-front .artist-post-thumb-placeholder .icon{width:21px;height:21px}
@media(max-width:650px){.concert-front .artist-post-thumb-placeholder{width:72px;height:60px}}

/* HTML/embed inseriti nei post del blog */
.concert-front .blog-post-content img{max-width:100%;height:auto}
.concert-front .blog-post-content iframe{display:block;max-width:100%;margin:1.6rem 0;border:0;border-radius:12px}
.concert-front .blog-post-content iframe[src*="youtube.com/embed"],
.concert-front .blog-post-content iframe[src*="youtube-nocookie.com/embed"],
.concert-front .blog-post-content iframe[src*="player.vimeo.com/video"]{width:100%;height:auto;aspect-ratio:16/9}
.concert-front .blog-post-content iframe[src*="open.spotify.com/embed"]{width:100%;min-height:152px}
.concert-front .blog-post-content iframe[src*="w.soundcloud.com/player"]{width:100%}

/* Home: Prossimamente + Visti di recente */
.concert-front .home-discovery-section{padding-top:8px}
.concert-front .home-discovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
.concert-front .home-discovery-column{min-width:0}
.concert-front .home-discovery-stack{display:flex;flex-direction:column;gap:34px}
.concert-front .home-discovery-block{min-width:0}
.concert-front .home-discovery-heading{margin-bottom:18px}
.concert-front .home-discovery-heading .eyebrow{display:block;margin-bottom:8px;font-size:.73rem}
.concert-front .home-discovery-heading h2{margin:0;font-size:clamp(1.45rem,2.4vw,2rem);font-weight:700;letter-spacing:-.035em}
.concert-front .home-artist-mini-list{display:flex;flex-direction:column;border:1px solid #e4e8ef;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 8px 24px #133e7e08}
.concert-front .home-artist-mini-row{display:flex;align-items:center;gap:14px;min-height:92px;padding:10px 14px;color:inherit;text-decoration:none;border-bottom:1px solid #edf0f4;transition:background-color .18s ease,transform .18s ease}
.concert-front .home-artist-mini-row:last-child{border-bottom:0}
.concert-front .home-artist-mini-row:hover,.concert-front .home-artist-mini-row:focus-visible{background:#f7f9fc}
.concert-front .home-artist-mini-photo{flex:0 0 70px;width:70px;height:70px;border-radius:12px;overflow:hidden;background:#eef2f7}
.concert-front .home-artist-mini-photo img{display:block;width:100%;height:100%;object-fit:cover}
.concert-front .home-artist-mini-copy{display:flex;min-width:0;flex-direction:column;gap:4px}
.concert-front .home-artist-mini-copy strong{overflow:hidden;color:#111827;font-size:1.02rem;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.concert-front .home-artist-mini-copy small{color:#6b7280;font-size:.85rem;font-weight:500}
.concert-front .home-discovery-empty{min-height:92px;padding:28px 20px;border:1px dashed #d8dee8;border-radius:18px;color:#6b7280;background:#fafbfc;font-size:.92rem}
@media(max-width:800px){
 .concert-front .home-discovery-grid{grid-template-columns:1fr;gap:30px}
}
@media(max-width:480px){
 .concert-front .home-artist-mini-row{min-height:84px;padding:9px 11px;gap:12px}
 .concert-front .home-artist-mini-photo{flex-basis:64px;width:64px;height:64px;border-radius:10px}
}

/* Home: Visti di recente sotto Prossimamente, 2 per riga */
.concert-front .home-artist-mini-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px;
 overflow:visible;
 border:0;
 border-radius:0;
 background:transparent;
 box-shadow:none;
}
.concert-front .home-artist-mini-grid .home-artist-mini-row{
 min-width:0;
 min-height:82px;
 padding:8px 10px;
 border:1px solid #e4e8ef;
 border-radius:14px;
 background:#fff;
}
.concert-front .home-artist-mini-grid .home-artist-mini-row:last-child{border-bottom:1px solid #e4e8ef}
.concert-front .home-artist-mini-grid .home-artist-mini-photo{
 flex:0 0 58px;
 width:58px;
 height:58px;
 border-radius:10px;
}
.concert-front .home-artist-mini-grid .home-artist-mini-copy strong{font-size:.94rem}
.concert-front .home-artist-mini-grid .home-artist-mini-copy small{font-size:.8rem}
@media(max-width:560px){
 .concert-front .home-artist-mini-grid{grid-template-columns:1fr}
}

/* Home: Concerti più visti a sinistra; Prossimamente + recenti a destra. */
.concert-front .home-discovery-grid-single{grid-template-columns:minmax(0,1fr)}
.concert-front .home-most-viewed-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px;
 overflow:visible;
 border:0;
 border-radius:0;
 background:transparent;
 box-shadow:none;
}
.concert-front .home-most-viewed-grid .home-artist-mini-row{
 min-width:0;
 min-height:82px;
 padding:8px 10px;
 border:1px solid #e4e8ef;
 border-radius:14px;
 background:#fff;
}
.concert-front .home-most-viewed-grid .home-artist-mini-row:last-child{border-bottom:1px solid #e4e8ef}
.concert-front .home-most-viewed-grid .home-artist-mini-photo{
 flex:0 0 58px;
 width:58px;
 height:58px;
 border-radius:10px;
}
.concert-front .home-most-viewed-grid .home-artist-mini-copy strong{font-size:.94rem}
.concert-front .home-most-viewed-grid .home-artist-mini-copy small{font-size:.8rem}
@media(max-width:560px){
 .concert-front .home-most-viewed-grid{grid-template-columns:1fr}
}


/* Home: layout finale discovery */
.concert-front .home-recently-viewed-row{margin-top:34px}
.concert-front .home-recently-viewed-grid{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:12px;
 overflow:visible;
 border:0;
 border-radius:0;
 background:transparent;
 box-shadow:none;
}
.concert-front .home-recently-viewed-grid .home-artist-mini-row{
 min-width:0;
 min-height:82px;
 padding:8px 10px;
 border:1px solid #e4e8ef;
 border-radius:14px;
 background:#fff;
}
.concert-front .home-recently-viewed-grid .home-artist-mini-row:last-child{border-bottom:1px solid #e4e8ef}
.concert-front .home-recently-viewed-grid .home-artist-mini-photo{flex:0 0 58px;width:58px;height:58px;border-radius:10px}
.concert-front .home-recently-viewed-grid .home-artist-mini-copy strong{font-size:.94rem}
.concert-front .home-recently-viewed-grid .home-artist-mini-copy small{font-size:.8rem}
.concert-front .home-coming-soon-row{padding-right:16px}
.concert-front .home-coming-soon-date{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;margin-left:auto;padding-left:12px;text-align:right;line-height:1.15}
.concert-front .home-coming-soon-date small{margin-bottom:4px;color:#7b8494;font-size:.72rem;font-weight:500}
.concert-front .home-coming-soon-date strong{color:#111827;font-size:.9rem;font-weight:700;white-space:nowrap}
.concert-front .home-coming-soon-date span{margin-top:2px;color:#4b5563;font-size:.8rem;font-weight:600}
@media(max-width:1050px){.concert-front .home-recently-viewed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
 .concert-front .home-recently-viewed-grid{grid-template-columns:1fr}
 .concert-front .home-coming-soon-row{align-items:center}
 .concert-front .home-coming-soon-date{padding-left:8px}
}

/* Pagina artista: su mobile tutta la riga evento è cliccabile, quindi il pulsante Biglietti non serve. */
@media(max-width:600px){
 .concert-front .artist-content-grid .artist-event-row .event-action,
 .concert-front .artist-main-column .artist-event-row .event-action{display:none!important}
}

/* Home mobile: Concerti più visti come schede orizzontali scrollabili */
@media(max-width:600px){
 .concert-front .home-most-viewed-grid{
  display:flex;
  grid-template-columns:none;
  gap:12px;
  width:calc(100% + 16px);
  margin-right:-16px;
  padding:2px 16px 10px 0;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-padding-left:0;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
 }
 .concert-front .home-most-viewed-grid::-webkit-scrollbar{display:none}
 .concert-front .home-most-viewed-grid .home-artist-mini-row{
  flex:0 0 min(78vw,280px);
  min-width:min(78vw,280px);
  min-height:88px;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  box-shadow:0 6px 18px #133e7e0d;
 }
 .concert-front .home-most-viewed-grid .home-artist-mini-photo{
  flex-basis:64px;
  width:64px;
  height:64px;
 }
}

/* Home mobile: Concerti più visti - card fotografiche orizzontali */
@media(max-width:767.98px){
 .concert-front .home-most-viewed-grid{
  display:flex!important;
  flex-flow:row nowrap!important;
  grid-template-columns:none!important;
  align-items:stretch;
  gap:14px!important;
  width:calc(100% + 18px)!important;
  max-width:none!important;
  margin:0 -18px 0 0!important;
  padding:2px 18px 14px 0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory;
  scroll-padding-left:0;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:auto;
  scrollbar-width:none;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
 }
 .concert-front .home-most-viewed-grid::-webkit-scrollbar{display:none;width:0;height:0}
 .concert-front .home-most-viewed-grid .home-artist-mini-row{
  position:relative;
  display:block!important;
  flex:0 0 min(72vw,285px)!important;
  width:min(72vw,285px)!important;
  min-width:min(72vw,285px)!important;
  min-height:0!important;
  aspect-ratio:4/3;
  padding:0!important;
  overflow:hidden;
  border:0!important;
  border-radius:18px!important;
  background:#111827!important;
  box-shadow:0 8px 24px #081a3524!important;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  transform:none!important;
 }
 .concert-front .home-most-viewed-grid .home-artist-mini-row:last-child{margin-right:0!important;border:0!important}
 .concert-front .home-most-viewed-grid .home-artist-mini-photo{
  position:absolute;
  inset:0;
  display:block;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  border-radius:0!important;
 }
 .concert-front .home-most-viewed-grid .home-artist-mini-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
 }
 .concert-front .home-most-viewed-grid .home-artist-mini-row:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,transparent 36%,rgba(0,0,0,.18) 56%,rgba(0,0,0,.82) 100%);
  pointer-events:none;
 }
 .concert-front .home-most-viewed-grid .home-artist-mini-copy{
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:42px 16px 15px;
  color:#fff;
 }
 .concert-front .home-most-viewed-grid .home-artist-mini-copy strong{
  color:#fff!important;
  font-size:1.12rem!important;
  font-weight:700;
  line-height:1.18;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  text-shadow:0 1px 8px rgba(0,0,0,.28);
 }
 .concert-front .home-most-viewed-grid .home-artist-mini-copy small{
  color:rgba(255,255,255,.88)!important;
  font-size:.82rem!important;
  font-weight:600;
  text-shadow:0 1px 6px rgba(0,0,0,.28);
 }
}

/* Home mobile: A breve in vendita - card bianche con foto sopra e swipe orizzontale */
@media(max-width:767.98px){
 .concert-front .home-coming-soon-grid{
  display:flex!important;
  flex-flow:row nowrap!important;
  align-items:stretch;
  gap:14px!important;
  width:calc(100% + 18px)!important;
  max-width:none!important;
  margin:0 -18px 0 0!important;
  padding:2px 18px 14px 0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:auto;
  scrollbar-width:none;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
 }
 .concert-front .home-coming-soon-grid::-webkit-scrollbar{display:none;width:0;height:0}
 .concert-front .home-coming-soon-grid .home-coming-soon-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  flex:0 0 min(72vw,285px)!important;
  width:min(72vw,285px)!important;
  min-width:min(72vw,285px)!important;
  min-height:0!important;
  padding:0 0 14px!important;
  overflow:hidden;
  border:1px solid #e5e7eb!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 8px 24px #081a3514!important;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  transform:none!important;
 }
 .concert-front .home-coming-soon-grid .home-coming-soon-row:last-child{border-bottom:1px solid #e5e7eb!important}
 .concert-front .home-coming-soon-grid .home-artist-mini-photo{
  grid-column:1/-1;
  grid-row:1;
  display:block;
  width:100%!important;
  height:auto!important;
  min-width:100%!important;
  aspect-ratio:16/10;
  border-radius:0!important;
  overflow:hidden;
  background:#eef2f7;
 }
 .concert-front .home-coming-soon-grid .home-artist-mini-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
 }
 .concert-front .home-coming-soon-grid .home-artist-mini-copy{
  grid-column:1;
  grid-row:2;
  align-self:center;
  min-width:0;
  padding:14px 8px 0 14px;
 }
 .concert-front .home-coming-soon-grid .home-artist-mini-copy strong{
  color:#111827!important;
  font-size:1rem!important;
  line-height:1.2;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
 }
 .concert-front .home-coming-soon-grid .home-artist-mini-copy small{
  color:#6b7280!important;
  font-size:.8rem!important;
 }
 .concert-front .home-coming-soon-grid .home-coming-soon-date{
  grid-column:2;
  grid-row:2;
  align-self:center;
  margin:0!important;
  padding:14px 14px 0 6px!important;
  text-align:right;
 }
 .concert-front .home-coming-soon-grid .home-coming-soon-date small{
  display:block;
  margin-bottom:4px;
  font-size:.68rem;
 }
 .concert-front .home-coming-soon-grid .home-coming-soon-date strong{
  font-size:.82rem;
  white-space:nowrap;
 }
}

/* Home: load more artisti, FAQ e newsletter */
.concert-front .artists-load-more-wrap{display:flex;justify-content:center;margin-top:30px}
.concert-front .artists-load-more{min-width:180px}
.concert-front .home-faq-section{padding-top:8px}
.concert-front .home-faq-accordion{max-width:980px}
.concert-front .home-faq-accordion .accordion-item{overflow:hidden;margin-bottom:12px;border:1px solid #dce3ed;border-radius:14px;background:#fff;box-shadow:0 5px 18px #173e790d}
.concert-front .home-faq-accordion .accordion-button{padding:19px 22px;background:#fff;color:#122549;font-size:1rem;font-weight:700;box-shadow:none}
.concert-front .home-faq-accordion .accordion-button:not(.collapsed){background:#f3f7ff;color:#174ea6}
.concert-front .home-faq-accordion .accordion-button:focus{box-shadow:none}
.concert-front .home-faq-accordion .accordion-body{padding:13px 22px 22px;color:#5c6e8c;font-size:.96rem;line-height:1.75}
.concert-front .home-faq-empty{padding:24px;border:1px dashed #d8dee8;border-radius:16px;background:#fafbfc;color:#6b7280}
.concert-front .home-newsletter-section{margin-top:42px}
.concert-front .home-newsletter-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:48px;align-items:center;padding:38px 42px;border-radius:22px;background:linear-gradient(125deg,#0b285d,#174ea6);color:#fff;box-shadow:0 18px 42px #173e7924}
.concert-front .home-newsletter-copy .eyebrow{color:#b9d2ff}
.concert-front .home-newsletter-copy h2{margin:8px 0 10px;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:700;letter-spacing:-.04em}
.concert-front .home-newsletter-copy p{max-width:560px;margin:0;color:#d9e7ff;line-height:1.65}
.concert-front .home-newsletter-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;position:relative}
.concert-front .home-newsletter-form .form-control{min-height:48px;border:0;border-radius:999px;padding:11px 18px;background:#fff}
.concert-front .home-newsletter-form .btn{min-height:48px;padding-inline:22px;background:#fff;border-color:#fff;color:#0b285d}
.concert-front .home-newsletter-form .btn:hover{background:#edf4ff;border-color:#edf4ff;color:#0b285d}
.concert-front .home-newsletter-form small{grid-column:1/-1;color:#c7d9f7;font-size:.74rem;line-height:1.5}
.concert-front .home-newsletter-form small a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.concert-front .newsletter-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:900px){
 .concert-front .home-newsletter-card{grid-template-columns:1fr;gap:24px;padding:30px}
}
@media(max-width:575.98px){
 .concert-front .artists-load-more-wrap{margin-top:24px}
 .concert-front .home-faq-accordion .accordion-button{padding:17px 18px;font-size:.95rem}
 .concert-front .home-faq-accordion .accordion-body{padding:2px 18px 19px;font-size:.92rem}
 .concert-front .home-newsletter-card{padding:25px 20px;border-radius:18px}
 .concert-front .home-newsletter-form{grid-template-columns:1fr}
 .concert-front .home-newsletter-form .btn{width:100%}
 .concert-front .home-newsletter-form small{grid-column:1}
}


/* Mobile: autocomplete sempre dentro il viewport visibile anche con tastiera software aperta. */
@media(max-width:767.98px){
 .concert-front .artist-suggestions{
  position:fixed;
  right:auto;
  z-index:2200;
  max-height:280px;
  overscroll-behavior:contain;
 }
}

/* Pagina di uscita TicketOne: layout autonomo, senza header/footer. */
.concert-front.outbound-page .main-content{
 display:flex;
 align-items:center;
 justify-content:center;
 width:100%;
 max-width:none;
 min-height:100dvh;
 padding:24px 18px;
}
.concert-front.outbound-page .outbound-card{width:min(100%,720px);margin:0 auto}

/* Autocomplete mobile: ricerca a tutta schermata, indipendente dalla hero e dalla tastiera. */
.concert-front input[type="search"]::-webkit-search-cancel-button,
.concert-front input[type="search"]::-webkit-search-decoration{
 -webkit-appearance:none;
 appearance:none;
 display:none;
}
.concert-front input[type="search"]::-ms-clear{display:none;width:0;height:0}

.artist-mobile-search-layer[hidden]{display:none!important}
.artist-mobile-search-layer{
 position:fixed;
 inset:0;
 z-index:100000;
 display:flex;
 flex-direction:column;
 overflow:hidden;
 background:#f7f9fc;
 color:#102a50;
 overscroll-behavior:none;
}
.artist-mobile-search-head{
 flex:0 0 auto;
 padding:max(12px,env(safe-area-inset-top)) 14px 12px;
 background:#fff;
 border-bottom:1px solid #e1e8f2;
 box-shadow:0 4px 18px rgba(6,29,79,.06);
}
.artist-mobile-search-topline{
 display:flex;
 align-items:center;
 gap:10px;
 min-height:36px;
 margin-bottom:10px;
}
.artist-mobile-search-topline strong{font-size:1rem;font-weight:700;color:#102a50}
.artist-mobile-search-close{
 display:grid;
 place-items:center;
 width:38px;
 height:38px;
 margin:0;
 padding:0;
 border:0;
 border-radius:50%;
 background:#eef3fa;
 color:#102a50;
 font-size:1.5rem;
 line-height:1;
}
.artist-mobile-search-field{
 display:grid;
 grid-template-columns:28px minmax(0,1fr) 38px;
 align-items:center;
 min-height:52px;
 padding:0 4px 0 12px;
 border:1px solid #c8d6e9;
 border-radius:14px;
 background:#fff;
 box-shadow:0 7px 24px rgba(13,49,101,.08);
}
.artist-mobile-search-icon{font-size:1.35rem;line-height:1;color:#6c7f9d}
.artist-mobile-search-field input{
 width:100%;
 min-width:0;
 height:50px;
 padding:0 8px;
 border:0;
 outline:0;
 background:transparent;
 color:#102a50;
 font:inherit;
 font-size:16px;
 -webkit-appearance:none;
 appearance:none;
}
.artist-mobile-search-field input::placeholder{color:#8291a9}
.artist-mobile-search-clear{
 display:grid;
 place-items:center;
 width:34px;
 height:34px;
 border:0;
 border-radius:50%;
 background:#e9eef6;
 color:#50647f;
 font-size:1.35rem;
 line-height:1;
}
.artist-mobile-search-clear[hidden]{display:none!important}
.artist-mobile-search-status{
 flex:0 0 auto;
 min-height:38px;
 padding:10px 18px 7px;
 background:#f7f9fc;
 color:#71829d;
 font-size:.78rem;
 line-height:1.35;
}
.artist-mobile-search-results{
 flex:1 1 auto;
 min-height:0;
 margin:0;
 padding:0 12px calc(18px + env(safe-area-inset-bottom));
 list-style:none;
 overflow-y:auto;
 -webkit-overflow-scrolling:touch;
 overscroll-behavior:contain;
 background:#f7f9fc;
}
.artist-mobile-search-result{
 display:grid;
 grid-template-columns:58px minmax(0,1fr) 24px;
 align-items:center;
 gap:13px;
 min-height:78px;
 margin-bottom:8px;
 padding:10px 12px;
 border:1px solid #e0e7f1;
 border-radius:14px;
 background:#fff;
 box-shadow:0 4px 14px rgba(13,49,101,.05);
}
.artist-mobile-search-result[aria-selected="true"]{border-color:#a9c7f5;background:#f0f6ff}
.artist-mobile-search-result img{
 width:58px;
 height:58px;
 object-fit:cover;
 border-radius:11px;
}
.artist-mobile-search-result .suggestion-copy{min-width:0}
.artist-mobile-search-result .suggestion-copy strong{
 display:block;
 color:#102a50;
 font-size:.96rem;
 font-weight:700;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.artist-mobile-search-result .suggestion-copy small{
 display:block;
 margin-top:3px;
 color:#71829d;
 font-size:.8rem;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.artist-mobile-search-result .suggestion-arrow{justify-self:end;color:#2563eb;font-size:1.25rem}
html.artist-mobile-search-open,
body.artist-mobile-search-open{overflow:hidden!important;overscroll-behavior:none}

@media(max-width:767.98px){
 /* Il vecchio dropdown resta esclusivamente desktop. */
 .concert-front #artist-suggestions{display:none!important}
 .concert-front [data-artist-autocomplete][readonly]{cursor:pointer}
}
@media(min-width:768px){
 .artist-mobile-search-layer{display:none!important}
}


/* Prossimamente: apertura vendita e countdown */
.concert-front .coming-soon-sale-alert{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 22px;padding:18px 20px;border:1px solid #efd36b;border-radius:14px;background:#fff8d8;color:#594600}
.concert-front .coming-soon-sale-copy{display:flex;min-width:0;flex-direction:column;gap:4px}
.concert-front .coming-soon-sale-copy strong{font-size:1rem;font-weight:700}
.concert-front .coming-soon-sale-copy span{font-size:.92rem;line-height:1.5}
.concert-front .sale-countdown-badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:154px;padding:9px 12px;border-radius:999px;background:#f4c430;color:#2e2500;font-size:.82rem;font-weight:700;white-space:nowrap}
.concert-front .artist-event-row.is-sale-locked{cursor:not-allowed;background:#fafafa;color:inherit}
.concert-front .artist-event-row.is-sale-locked:hover{background:#fafafa}
.concert-front .artist-event-row.is-sale-locked .event-action.is-disabled{background:#d7dbe2;color:#737b88;box-shadow:none;cursor:not-allowed}
.concert-front .coming-soon-ticket-disabled{display:flex;align-items:center;justify-content:center;min-height:58px;padding:15px 18px;border:1px dashed #c9ced8;border-radius:14px;background:#f7f8fa;color:#6b7280;font-size:.92rem;font-weight:700;text-align:center}

/* Home desktop: Prossimamente scorre verticalmente; mobile mantiene tutte le card in swipe orizzontale. */
@media(min-width:768px){
 .concert-front .home-coming-soon-grid[data-coming-soon-ticker]{max-height:368px;overflow:hidden;scroll-behavior:auto}
}
@media(max-width:767.98px){
 .concert-front .home-coming-soon-grid[data-coming-soon-ticker]{max-height:none}
 .concert-front .coming-soon-sale-alert{align-items:flex-start;flex-direction:column}
 .concert-front .sale-countdown-badge{min-width:0}
}
/* Badge numero date nella pagina artista */
.concert-front .dates-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.concert-front .dates-count-text{margin-left:auto;padding-bottom:.15rem;color:#6d6d72;font-size:.95rem;font-weight:600;line-height:1.2;white-space:nowrap}
@media (max-width:767.98px){.concert-front .dates-section-heading{flex-wrap:nowrap}.concert-front .dates-count-text{font-size:.85rem;padding-bottom:.1rem}}


/* Autocomplete: rimuove la freccia a destra dai risultati (desktop e mobile). */
.concert-front .artist-suggestions .suggestion-arrow,
.artist-mobile-search-result .suggestion-arrow{
  display:none!important;
}


/* OmegaTicket brand: logo completo su desktop, simbolo circolare su mobile */
.concert-front .omega-site-brand{display:inline-flex;align-items:center;line-height:1;flex:0 0 auto}
.concert-front .omega-site-brand picture{display:block;line-height:0}
.concert-front .omega-brand-logo{display:block;width:190px;height:auto;max-height:60px;object-fit:contain}
.concert-front .live-header-inner{padding-top:14px;padding-bottom:14px}
.concert-front .live-footer-brand.omega-site-brand{font-size:0;letter-spacing:0;gap:0}
.concert-front .live-footer-brand .omega-brand-logo{width:205px;max-height:66px}
.concert-front .omega-mobile-menu-brand{display:inline-flex;align-items:center;line-height:0}
.concert-front .omega-mobile-menu-brand img{display:block;width:46px;height:46px;object-fit:contain}
@media(max-width:767.98px){
 .concert-front .live-header .omega-site-brand{min-width:46px}
 .concert-front .omega-brand-logo{width:46px;height:46px;max-height:none;object-fit:contain}
 .concert-front .live-header-inner{padding-top:12px;padding-bottom:10px}
 .concert-front .live-footer-brand .omega-brand-logo{width:52px;height:52px;max-height:none}
}

/* Footer: logo ball + white OmegaTicket */
.concert-front .live-footer-brand.omega-footer-brand-simple{
 display:inline-flex;
 align-items:center;
 line-height:1;
 color:#fff;
 text-decoration:none;
 font-size:2rem;
 font-weight:700;
 letter-spacing:-.055em;
}
.concert-front .live-footer-brand.omega-footer-brand-simple .omega-footer-mark{
 display:block;
 width:52px;
 height:52px;
 object-fit:contain;
 flex:0 0 auto;
}
.concert-front .live-footer-brand.omega-footer-brand-simple .omega-footer-wordmark{
 display:inline-block;
 color:#fff;
}
@media(max-width:767.98px){
 .concert-front .live-footer-brand.omega-footer-brand-simple{
  font-size:1.75rem;
 }
 .concert-front .live-footer-brand.omega-footer-brand-simple .omega-footer-mark{
  width:46px;
  height:46px;
 }
}

/* Header: logo ball + black OmegaTicket */
.concert-front .live-header .omega-header-brand-simple{
 display:inline-flex;
 align-items:center;
 line-height:1;
 color:#111827;
 text-decoration:none;
 font-size:2rem;
 font-weight:700;
 letter-spacing:-.055em;
 flex:0 0 auto;
}
.concert-front .live-header .omega-header-brand-simple .omega-header-mark{
 display:block;
 width:48px;
 height:48px;
 object-fit:contain;
 flex:0 0 auto;
}
.concert-front .live-header .omega-header-brand-simple .omega-header-wordmark{
 display:inline-block;
 color:#111827;
}
@media(max-width:767.98px){
 .concert-front .live-header .omega-header-brand-simple{
  min-width:0;
  font-size:1.35rem;
 }
 .concert-front .live-header .omega-header-brand-simple .omega-header-mark{
  width:40px;
  height:40px;
 }
}


/* Account: artist photo in saved alerts + account dropdown icons */
.concert-front .visitor-alert-event{display:flex;align-items:center;gap:12px;min-width:220px}
.concert-front .visitor-alert-artist-photo{display:block;flex:0 0 58px;width:58px;height:58px;border-radius:12px;object-fit:cover;background:#eef2f7}
.concert-front .visitor-account-dropdown .dropdown-item .icon{flex:0 0 auto;width:18px;height:18px}
.concert-front .visitor-account-dropdown .dropdown-item{gap:9px}
@media(max-width:575.98px){
 .concert-front .visitor-alert-event{min-width:200px}
 .concert-front .visitor-alert-artist-photo{flex-basis:50px;width:50px;height:50px;border-radius:10px}
}

/* Visitor profile */
.concert-front .visitor-profile-heading{margin-bottom:26px}
.concert-front .visitor-profile-heading .eyebrow{display:block;margin-bottom:8px}
.concert-front .visitor-profile-grid{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:26px;align-items:start;max-width:1050px;margin:0 auto}
.concert-front .visitor-profile-photo-card,.concert-front .visitor-profile-data-card{padding:0;overflow:hidden;border:1px solid #e1e6ee;border-radius:18px;background:#fff;box-shadow:0 10px 28px #0b2f6b0b}
.concert-front .visitor-profile-card-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid #edf0f4}
.concert-front .visitor-profile-card-heading h2{margin:0;font-size:1rem;font-weight:700;color:#122549}
.concert-front .visitor-profile-card-heading>.icon{width:20px;height:20px;color:#66758d}
.concert-front .visitor-profile-photo-card{padding-bottom:24px}
.concert-front .visitor-profile-photo-uploader{position:relative;width:180px;height:180px;margin:30px auto 18px}
.concert-front .visitor-profile-photo-preview{display:block;width:180px;height:180px;border:4px solid #edf2f8;border-radius:50%;object-fit:cover;background:#eef2f7;box-shadow:0 12px 30px #0f172a14}
.concert-front .visitor-profile-photo-button{position:absolute;right:2px;bottom:2px;display:grid;place-items:center;width:48px;height:48px;border:3px solid #fff;border-radius:50%;background:#122549;color:#fff;cursor:pointer;box-shadow:0 8px 18px #07193638;transition:transform .15s ease,background .15s ease}
.concert-front .visitor-profile-photo-button:hover{background:#1d4f91;transform:scale(1.04)}
.concert-front .visitor-profile-photo-button:focus-visible{outline:3px solid #93b7e8;outline-offset:3px}
.concert-front .visitor-profile-photo-button .icon{width:21px;height:21px}
.concert-front .visitor-profile-photo-help{max-width:250px;margin:0 auto;padding:0 12px;color:#68778d;font-size:.86rem;line-height:1.55;text-align:center}
.concert-front #visitor-profile-photo-status{text-align:center;padding:0 18px}
.concert-front .visitor-profile-data-card form{padding:24px 22px 22px}
.concert-front .visitor-profile-data-card .form-label{font-size:1rem;font-weight:500;margin-bottom:.65rem}
.concert-front .visitor-profile-divider{margin:.35rem 0 .1rem;border-color:#e5eaf1;opacity:1}
.concert-front .visitor-profile-password-title{margin:0 0 6px;font-size:1rem;font-weight:700;color:#122549}
.concert-front .visitor-profile-data-card .password-field{position:relative}
.concert-front .visitor-profile-data-card .password-field .form-control{padding-right:48px}
.concert-front .visitor-profile-data-card .password-toggle{position:absolute;right:7px;top:50%;display:grid;place-items:center;width:34px;height:34px;min-height:34px;padding:0;transform:translateY(-50%);border:1px solid #ccd5e2;border-radius:50%;background:#fff;color:#52627a}
.concert-front .visitor-profile-data-card .password-toggle .icon{width:18px;height:18px}
.concert-front .visitor-profile-actions{display:flex;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid #edf0f4}
.concert-front .visitor-profile-actions .btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #111827}
.concert-front .visitor-profile-actions .btn .icon{width:18px;height:18px}
.concert-front .visitor-mobile-menu-nav .visitor-mobile-user-only{align-items:center;gap:10px}
.concert-front .visitor-mobile-menu-nav .visitor-mobile-user-only:not(.d-none){display:flex}
.concert-front .visitor-mobile-menu-nav .visitor-mobile-user-only .icon{width:19px;height:19px;flex:0 0 auto}
.concert-front .visitor-mobile-logout{margin:0}
.concert-front .visitor-mobile-logout button{display:flex;width:100%;align-items:center;gap:10px;padding:11px 13px;border:1px solid #d6dde7;border-radius:10px;background:#fff;color:#172033;font:inherit;font-weight:600;text-align:left}
.concert-front .visitor-mobile-logout button .icon{width:19px;height:19px;flex:0 0 auto}
@media(max-width:767.98px){
 .concert-front .visitor-profile-grid{grid-template-columns:1fr;gap:20px}
 .concert-front .visitor-profile-photo-uploader{width:160px;height:160px;margin-top:24px}
 .concert-front .visitor-profile-photo-preview{width:160px;height:160px}
 .concert-front .visitor-profile-actions .btn{width:100%;justify-content:center}
}

/* Account header: profile photo beside the user name */
.concert-front .visitor-header-avatar{display:inline-grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;overflow:hidden;background:#eef2f7}
.concert-front .visitor-header-photo{display:block;width:100%;height:100%;object-fit:cover}
.concert-front .visitor-header-icon{display:grid;place-items:center;width:100%;height:100%}
.concert-front .visitor-header-icon .icon{width:18px;height:18px}
.concert-front #visitor-header-account .live-account{display:inline-flex;align-items:center;gap:8px}

/* Registrazione: checkbox con bordo coerente con gli input */
.concert-front .visitor-modal .visitor-check .form-check-input{
 width:20px;
 height:20px;
 flex:0 0 20px;
 margin-top:.15rem;
 border:1px solid var(--bs-border-color);
 background-color:#fff;
 box-shadow:none;
}
.concert-front .visitor-modal .visitor-check .form-check-input:checked{
 background-color:#2563eb;
 border-color:#2563eb;
}
.concert-front .visitor-modal .visitor-check .form-check-input:focus{
 border-color:#69a1fb;
 box-shadow:0 0 0 4px #2563eb20;
}
