/* ===== detail page styles ===== */
.dt{background:var(--bg)}
.dt-in{padding:30px 24px 20px}
.dt-back{border:1px solid var(--line);background:#fff;color:var(--navy);font-weight:700;font-size:13px;
  display:inline-flex;align-items:center;gap:7px;padding:8px 16px 8px 12px;border-radius:999px;margin-bottom:22px;transition:.15s}
.dt-back:hover{border-color:var(--purple);color:var(--purple);transform:translateX(-2px)}

.dt-title{margin:0 0 8px;font-size:42px;font-weight:900;color:var(--navy);letter-spacing:-.025em;line-height:1.04}
.dt-sub{margin:0 0 14px;font-size:16px;color:var(--blue);font-weight:600;max-width:760px;line-height:1.5}
.dt-by{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.dt-by b{color:var(--navy);font-weight:800}
.dt-by .av{width:30px;height:30px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;flex:none}

/* key facts */
.facts{display:flex;flex-wrap:wrap;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  margin:22px 0 8px;box-shadow:var(--shadow-sm);overflow:hidden;border-left:5px solid var(--accent)}
.fact{display:flex;flex-direction:column;gap:6px;padding:16px 22px;flex:1 1 auto;min-width:160px;border-right:1px solid var(--line-soft)}
.fact:last-child{border-right:none}
.fact .fl{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.fact .fl svg{width:14px;height:14px;color:var(--accent)}
.fact .fv{font-size:15px;font-weight:800;color:var(--navy)}
.fact.when{flex:0 0 auto;justify-content:center;align-items:flex-start;background:#fcfcfd}

/* ANTET spectacol: afiș (stânga, INTEGRAL, fără bare) + card acțiune (dreapta) */
.dt-head{display:grid;grid-template-columns:1fr 330px;gap:32px;align-items:start;margin:22px 0 6px}
.dt-poster{min-width:0}
.dt-poster-img{display:block;width:100%;height:auto;border-radius:var(--r-lg);box-shadow:var(--shadow)}
.dt-poster image-slot{display:block;width:100%;border-radius:var(--r-lg);overflow:hidden;
  background:linear-gradient(135deg,#e9ebf1,#dfe2ea)}
.dt-head .dt-aside{position:static}
@media(max-width:880px){ .dt-head{grid-template-columns:1fr;gap:18px} }

/* layout */
.dt-grid{display:grid;grid-template-columns:1fr 330px;gap:38px;margin-top:30px;align-items:start}
.dt-main{min-width:0;max-width:900px;margin-top:30px}
.dt-sec{margin-bottom:30px}
.dt-h{margin:0 0 12px;font-size:21px;font-weight:900;color:var(--navy);letter-spacing:-.01em;padding-bottom:10px;border-bottom:2px solid var(--line);position:relative}
.dt-h:after{content:"";position:absolute;left:0;bottom:-2px;width:54px;height:2px;background:var(--accent)}
.dt-sec p{margin:0;font-size:15.5px;line-height:1.7;color:var(--ink);max-width:760px}
/* corpul „Despre" randat ca .prose (justify + SEO h2/h3) — umple coloana, fără drop-cap.
   Dimensiuni text = standardul recenziei (18px / 1.72), subtitlurile h2/h3 vin din pages.css (.prose) */
.dt-sec .prose{max-width:none;margin:0;padding:0;font-size:18px}
.dt-sec .prose p{margin:0 0 18px;max-width:none;font-size:18px;line-height:1.72}
.dt-sec .prose p:first-child:first-letter{font-size:inherit;font-weight:inherit;float:none;padding:0;line-height:inherit;color:inherit}

/* people grid */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px}
.person{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;box-shadow:var(--shadow-sm);transition:.15s}
.person:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:#dfe1ea}
.person.ln{border:none;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;background:#fff;box-shadow:none;padding-left:14px}
.person.ln:hover{transform:none;background:#fbfbfd}
.p-role{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:5px}
.p-name{font-size:14.5px;font-weight:700;color:var(--navy)}
.crew{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}

/* linked person (has artist profile) */
.person.linked{display:flex;flex-direction:column;justify-content:space-between;gap:10px;cursor:pointer;text-decoration:none}
.person.linked .p-row{display:flex;align-items:center;gap:11px}
.p-av{flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#e9ebf1,#dfe2ea);
  box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--accent)}
.p-av image-slot{width:100%;height:100%}
.person.linked .p-txt{min-width:0;display:flex;flex-direction:column;gap:3px}
.person.linked .p-role{margin:0}
.p-link{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:var(--accent);opacity:0;transform:translateY(2px);transition:.15s}
.person.linked:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.person.linked:hover .p-link{opacity:1;transform:none}
.person.linked:hover .p-name{color:var(--accent)}
.person.ln.linked{border-left:3px solid var(--accent);padding:11px 14px}

/* review band */
.reviews-band{display:flex;flex-direction:column;gap:14px;margin:6px 0 4px}
.review{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px;box-shadow:var(--shadow);
  border-left:5px solid var(--accent);position:relative;display:block;text-decoration:none;color:inherit;transition:.16s}
.review:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.rv-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.rv-pill{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,#fff);padding:4px 11px;border-radius:999px}
.rv-rating{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--muted)}
.rv-rating b{color:var(--navy);font-weight:900;font-size:16px;margin-left:2px}
.rv-title{margin:0 0 8px;font-size:20px;font-weight:900;color:var(--navy);letter-spacing:-.01em}
.rv-body{margin:0 0 14px;font-size:15px;line-height:1.65;color:var(--ink)}
.rv-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:13px;border-top:1px solid var(--line-soft)}
.rv-by{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted)}
.rv-by b{color:var(--navy);font-weight:800}
.rv-by .av{width:28px;height:28px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;flex:none}
.rv-more{border:none;background:transparent;color:var(--accent);font-weight:800;font-size:13px;display:inline-flex;align-items:center;gap:6px}
.rv-more:hover{text-decoration:underline}

/* add to calendar button */
.ac-cal{width:calc(100% - 36px);margin:0 18px 12px;border:1px solid var(--line);background:#fff;color:var(--navy);
  font-weight:800;font-size:13.5px;padding:11px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:8px;transition:.15s}
.ac-cal:hover{border-color:var(--accent);color:var(--accent)}
.ac-cal svg{width:16px;height:16px}

/* artist profile page */
.ar{background:var(--bg)}
.ar-in{padding:30px 24px 20px}
.ar-head{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  padding:34px 34px 38px;box-shadow:var(--shadow)}
/* toate blocurile pe o singură coloană centrată, aceeași lățime → aliniere perfectă */
.ar-top,.ar-photo-hero,.ar-bio-wrap{max-width:820px;margin-left:auto;margin-right:auto}
.ar-top{margin-bottom:22px}
.ar-voice{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent,var(--purple));
  background:color-mix(in srgb,var(--accent,var(--purple)) 13%,#fff);padding:4px 12px;border-radius:999px;margin-bottom:12px}
.ar-title{margin:0 0 8px;font-size:40px;font-weight:900;color:var(--navy);letter-spacing:-.025em;line-height:1.05}
.ar-stat{font-size:13px;color:var(--muted)}
.ar-stat b{color:var(--navy);font-weight:900;font-size:15px}
/* fotografie mare sub nume — raport natural pt. portret, încadrată pe față */
.ar-photo-hero{aspect-ratio:3/2;border-radius:var(--r-lg);overflow:hidden;margin-bottom:28px;
  background:linear-gradient(135deg,#e9ebf1,#dfe2ea)}
.ar-photo-hero image-slot{display:block;width:100%;height:100%}
.ar-photo-hero img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
/* bio bogat (renderRich → .ar-bio): titluri/liste/bold */
.ar-bio-wrap{}
.ar-bio{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.ar-bio img{max-width:100%;height:auto;border-radius:8px;display:block;margin:12px 0}
.ar-bio figure{margin:16px 0}
.ar-bio p{margin:0 0 18px;font-size:18px;line-height:1.72;color:var(--ink)}
.ar-bio h2{margin:24px 0 10px;font-size:28px;font-weight:900;color:var(--navy);letter-spacing:-.01em;
  border-bottom:2px solid var(--line);padding-bottom:9px;text-align:left}
.ar-bio h3{margin:20px 0 8px;font-size:22px;font-weight:800;color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:5px;text-align:left}
.ar-bio ul,.ar-bio ol{margin:0 0 18px;padding-left:22px}
.ar-bio li{margin:0 0 8px;font-size:18px;line-height:1.72;color:var(--ink)}
.ar-bio strong{color:var(--navy);font-weight:800}
.ar-bio a{color:var(--purple);font-weight:700;text-decoration:underline}
.ar-bio blockquote{margin:18px 0;padding:4px 0 4px 18px;border-left:4px solid var(--purple);font-style:italic;font-size:21px;color:var(--navy)}
.ar-role-tag{align-self:flex-start;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.ax-more{background:#fff;border:1px solid var(--line);color:var(--navy);font-family:inherit;font-size:14px;font-weight:800;
  padding:11px 26px;border-radius:999px;cursor:pointer;transition:.15s}
.ax-more:hover{border-color:var(--purple);color:var(--purple);box-shadow:var(--shadow-sm)}

@media(max-width:680px){
  .ar-head{padding:22px 20px 26px}
  .ar-title{font-size:30px}
  .ar-photo-hero{aspect-ratio:4/3}
  .ar-bio{text-align:left}
}

/* muzical */
.muzical{display:flex;gap:40px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px 22px}
.muzical>div{display:flex;flex-direction:column;gap:3px}
.muzical span{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}
.muzical b{font-size:15px;color:var(--navy)}

/* share */
.share{display:flex;align-items:center;gap:16px;padding:18px 0 4px;border-top:1px solid var(--line);margin-top:6px}
.share .sl{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:var(--navy)}
.share .sb{display:flex;gap:8px}
.share .sb a{width:34px;height:34px;border-radius:50%;background:#101114;color:#fff;display:grid;place-items:center;transition:.15s}
.share .sb a:hover{background:var(--purple);transform:translateY(-2px)}
.share .sb a svg{width:15px;height:15px}

/* aside */
.dt-aside{position:sticky;top:90px;display:flex;flex-direction:column;gap:18px}
.aside-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.ac-date{text-align:center;padding:22px 16px 18px;border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,#fff,#fbfbfd)}
.ac-date .wd{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.ac-date .big{display:block;font-size:62px;font-weight:900;color:var(--navy);line-height:.95;margin:2px 0}
.ac-date .m{display:block;font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ac-rows{padding:16px 18px;display:flex;flex-direction:column;gap:11px}
.acr{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--ink);font-weight:600}
.acr svg{width:16px;height:16px;color:var(--accent);flex:none;margin-top:1px}
.ac-cta{width:calc(100% - 36px);margin:2px 18px 12px;border:none;color:#fff;font-weight:800;font-size:14.5px;
  padding:13px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:8px;transition:.15s;white-space:nowrap}
.ac-cta:hover{filter:brightness(1.07);transform:translateY(-1px)}
.ac-note{padding:0 18px 16px;font-size:11.5px;color:var(--muted-2);text-align:center;line-height:1.4}

.aside-up{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:16px 18px}
.aside-up h4{margin:0 0 12px;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.up-list{display:flex;flex-direction:column;gap:4px}
.up{display:flex;gap:13px;align-items:center;padding:8px 6px;border-radius:8px;transition:.15s}
.up:hover{background:#f6f6f9}
.up-date{flex:none;width:42px;text-align:center;border-right:2px solid var(--accent);padding-right:10px}
.up-date b{display:block;font-size:19px;font-weight:900;color:var(--navy);line-height:1}
.up-date i{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-style:normal}
.up-body{min-width:0}
.up-t{display:block;font-size:13.5px;font-weight:700;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up:hover .up-t{color:var(--purple)}
.up-c{display:block;font-size:11.5px;color:var(--muted)}

@media(max-width:980px){
  .dt-grid{grid-template-columns:1fr}
  .dt-aside{position:static;flex-direction:row;flex-wrap:wrap}
  .aside-card,.aside-up{flex:1 1 280px}
  .dt-title{font-size:32px}
}
@media(max-width:640px){
  .facts .fact{min-width:50%;border-bottom:1px solid var(--line-soft)}
  .dt-aside{flex-direction:column}
}

/* ============ artists index page ============ */
.ax-toolbar{position:sticky;top:63px;z-index:30;background:rgba(243,244,246,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.ax-toolbar-in{max-width:var(--maxw);margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ax-toolbar .filt-label{margin-right:4px}

.ax-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:26px 0 14px}
.ax-card{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);padding:28px 24px 0;box-shadow:var(--shadow-sm);cursor:pointer;position:relative;overflow:hidden;
  transition:transform .2s, box-shadow .2s, border-color .2s}
.ax-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#dfe1ea}
.ax-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--accent,var(--purple))}
.ax-photo{width:104px;height:104px;border-radius:50%;overflow:hidden;flex:none;background:linear-gradient(135deg,#e9ebf1,#dfe2ea);
  box-shadow:0 0 0 4px #fff, 0 0 0 6px var(--accent,var(--purple));margin-bottom:16px}
.ax-photo image-slot{display:block;width:100%;height:100%}
.ax-voice{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent,var(--purple));background:color-mix(in srgb,var(--accent,var(--purple)) 11%,#fff);padding:4px 12px;border-radius:999px;margin-bottom:10px}
.ax-voice .dot{width:6px;height:6px;border-radius:50%;background:var(--accent,var(--purple))}
.ax-name{margin:0 0 9px;font-size:20px;font-weight:900;color:var(--navy);letter-spacing:-.01em;line-height:1.15}
.ax-card:hover .ax-name{color:var(--purple)}
.ax-bio{margin:0 0 18px;font-size:13.5px;line-height:1.55;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ax-foot{margin-top:auto;width:calc(100% + 48px);margin-left:-24px;border-top:1px solid var(--line-soft);background:#fcfcfd;
  padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.ax-shows{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--ink)}
.ax-shows svg{width:14px;height:14px;color:var(--muted-2);flex:none}
.ax-shows b{color:var(--navy);font-weight:900}
/* .ax-go uses the canonical card button (styles.css) */

@media(max-width:980px){ .ax-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .ax-grid{grid-template-columns:1fr} }

/* ===== Șablon spectacol — galerie, bio compozitor, eveniment încheiat, bară bilete mobil ===== */
.when-chip.past{background:#eceff3;color:var(--muted)}
.dt-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:6px}
.dt-gal-item{display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#f0eef6}
.dt-gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.dt-gal-item:hover img{transform:scale(1.04)}
/* Despre compozitor — colapsat */
.dt-composer{position:relative}
.dt-composer-body{max-height:230px;overflow:hidden;transition:max-height .3s ease}
.dt-composer-body.open{max-height:none}
.dt-composer-fade{position:absolute;left:0;right:0;bottom:38px;height:90px;pointer-events:none;
  background:linear-gradient(to bottom,rgba(243,244,246,0),var(--bg))}
.dt-composer-toggle{margin-top:8px;background:none;border:none;color:var(--purple,#6d28d9);font-weight:800;
  font-size:13.5px;cursor:pointer;font-family:inherit;padding:6px 0}
.dt-composer-toggle:hover{opacity:.75}
/* Eveniment încheiat */
.ac-ended{display:flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:14px;
  color:var(--muted);background:#eceff3;border-radius:12px;padding:11px;margin-top:4px}
.ac-ended svg{color:#16a34a}
/* Bară bilete sticky pe mobil */
.dt-buybar{display:none}
@media(max-width:980px){
  .dt-buybar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;align-items:center;gap:12px;
    background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px -8px rgba(0,0,0,.25);
    padding:10px 16px;text-decoration:none}
  .dt-buybar .bb-info{display:flex;flex-direction:column;min-width:0;flex:1}
  .dt-buybar .bb-info b{font-size:13.5px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dt-buybar .bb-info span{font-size:11.5px;color:var(--muted)}
  .dt-buybar .bb-cta{display:inline-flex;align-items:center;gap:6px;background:var(--accent,var(--purple));color:#fff;
    font-weight:800;font-size:13.5px;padding:10px 16px;border-radius:999px;white-space:nowrap;flex:none}
  .dt{padding-bottom:70px}
}
