
/* Albums grid (shortcode) */
.aza-page-heading{
  margin: 0 0 16px 0;
  font-size: 30px;
  line-height: 1.15;
}
.aza-page-heading--tracks{
  margin-bottom: 14px;
}
.aza-albums-wrap{ margin: 0; }
.aza-albums-grid{
  --aza-cols: 3;
  display:grid;
  grid-template-columns: repeat(var(--aza-cols), minmax(0, 1fr));
  gap: 28px 44px;
  margin: 0;
  padding: 0;
}
.aza-album-card{ margin:0; }
.aza-album-link{
  text-decoration:none;
  display:block;
}
.aza-album-thumb{
  display:block;
  width:100%;
  aspect-ratio: 1 / 1;
  overflow:hidden;
  border-radius: 8px;
  background: #eef2f6;
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
}
.aza-album-thumb img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}
.aza-album-title{
  display:block;
  margin-top: 10px;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.25;
  color: #1e73be;
}
.aza-album-link:hover .aza-album-title{
  text-decoration: underline;
}
.aza-empty{ margin: 10px 0; }

/* Responsive */
@media (max-width: 980px){
  .aza-albums-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 26px; }
}
@media (max-width: 600px){
  .aza-albums-grid{ grid-template-columns: repeat(1, minmax(0, 1fr)); }
}

/* Albums slider (tracks page) */
.aza-album-slider{
  display:flex;
  align-items:center;
  gap: 10px;
  margin: 0 0 18px 0;
}
.aza-slider-btn{
  width: 40px;
  height: 40px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex: 0 0 auto;
}
.aza-slider-btn:hover{ transform: translateY(-1px); }
.aza-slider-viewport{
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  flex: 1 1 auto;
  padding: 4px 2px;
}
.aza-slider-viewport::-webkit-scrollbar{ display:none; }
.aza-slider-track{
  display:flex;
  gap: 14px;
  align-items: flex-start;
}
.aza-slider-item{
  display:block;
  width: 140px;
  flex: 0 0 auto;
  text-decoration:none;
  scroll-snap-align: start;
}
.aza-slider-thumb{
  display:block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow:hidden;
  border-radius: 10px;
  background: #eef2f6;
  box-shadow: 0 10px 28px rgba(0,0,0,.12);
}
.aza-slider-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}
.aza-slider-title{
  display:block;
  margin-top: 8px;
  font-weight: 600;
  font-size: 13px;
  line-height: 1.2;
  color: #1e73be;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.aza-slider-item.is-active .aza-slider-thumb{
  outline: 3px solid rgba(30,115,190,.45);
  outline-offset: 2px;
}
@media (max-width: 600px){
  .aza-slider-btn{ width: 36px; height: 36px; }
  .aza-slider-item{ width: 120px; }
}

/* Single album page */
.aza-album-single{
  max-width: 1120px;
  margin: 0 auto;
  padding: 18px 0 42px;
}

/*
  Layout fix (Hello Elementor / custom themes)
  Some setups apply full-height flex styles to the main <article> and use
  justify-content: space-between. This pushes the title to the top and the
  content to the bottom, creating a huge white gap.
  We scope the override to pages where the plugin is active via body.aza-fix-layout.
*/
body.aza-fix-layout .site-main,
body.aza-fix-layout .site-content,
body.aza-fix-layout #content{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*
  Stronger flex reset:
  Some setups put the flex/100vh on wrappers like .site-content / .content-area / .site-main
  (not just the <article>), which still creates a huge gap.
*/
body.aza-fix-layout .site-content,
body.aza-fix-layout .content-area,
body.aza-fix-layout #primary,
body.aza-fix-layout .site-main,
body.aza-fix-layout main.site-main{
  display: block !important;
  min-height: auto !important;
  height: auto !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  flex-direction: initial !important;
}
body.aza-fix-layout #page,
body.aza-fix-layout .site{
  justify-content: flex-start !important;
}
body.aza-fix-layout .site-main > article,
body.aza-fix-layout .site-main article.hentry,
body.aza-fix-layout .site-main article.page,
body.aza-fix-layout .site-main article.post{
  display: block !important;
  min-height: auto !important;
  height: auto !important;
  align-items: initial !important;
  justify-content: initial !important;
  flex-direction: initial !important;
  gap: 0 !important;
}
body.aza-fix-layout .entry-header{
  margin-top: 0 !important;
  padding-top: 0 !important;
  margin-bottom: 16px !important;
}
body.aza-fix-layout .entry-content,
body.aza-fix-layout .entry-content > .elementor{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Flexbox safety: if your theme/Elementor vertically centers content, this pins our output to the top */
.aza-album-shortcode{
  width: 100%;
  margin-bottom: auto;
}
.aza-album-header h1{
  margin: 0 0 6px 0;
  font-size: 38px;
  line-height: 1.1;
}
.aza-album-byline{
  margin: 0 0 18px 0;
  color: #667085;
  font-size: 15px;
}
.aza-album-layout{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 44px;
  align-items:start;
}
@media (max-width: 980px){
  .aza-album-layout{ grid-template-columns: 1fr; }
}

.aza-player{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 14px 16px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.aza-now-playing{
  margin: 8px 0 0 0;
  font-size: 13px;
  color: #475467;
}
.aza-audio-player,
#aza-audio-player{
  width: 100%;
  margin-top: 2px;
}

/* Single track embed */
.aza-track-embed{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 14px 16px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.aza-track-embed--button{
  border: none;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.aza-track-embed-title{
  font-weight: 600;
  margin: 0 0 10px 0;
}
.aza-track-embed-audio{
  width: 100%;
}
.aza-track-embed-duration{
  margin-top: 8px;
  font-size: 13px;
  color: #475467;
}

.aza-tracklist{
  margin: 16px 0 0 0;
  padding: 0;
  list-style: none;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.aza-track{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 12px 14px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.aza-track:first-child{ border-top: none; }
.aza-track.is-active{
  background: rgba(30,115,190,.08);
}
.aza-track-play{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor: pointer;
  flex: 0 0 auto;
}
.aza-track-play:before{
  content: '';
  display:block;
  width:0; height:0;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
  border-left:9px solid #101828;
  margin-left:2px;
}
.aza-track-meta{
  flex: 1 1 auto;
  min-width: 0;
}
.aza-track-title{
  font-weight: 600;
  color:#101828;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.aza-track-duration{
  flex: 0 0 auto;
  color:#667085;
  font-variant-numeric: tabular-nums;
  font-size: 13px;
}

.aza-album-description{
  margin-top: 16px;
  color:#344054;
}

.aza-album-side{
  position: sticky;
  top: 18px;
}
@media (max-width: 980px){
  .aza-album-side{ position: static; }
}
.aza-cover{
  border-radius: 16px;
  overflow: hidden;
  background: #eef2f6;
  box-shadow: 0 18px 44px rgba(0,0,0,.14);
}
.aza-cover img{
  width:100%;
  height:auto;
  display:block;
}
.aza-side-meta{
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.aza-side-meta .aza-meta-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding: 6px 0;
  border-top: 1px dashed rgba(0,0,0,.10);
}
.aza-side-meta .aza-meta-row:first-child{ border-top:none; }
.aza-side-meta .aza-meta-label{ color:#667085; }
.aza-side-meta .aza-meta-value{ color:#101828; font-weight:600; }
