/* canastamusic.com — rebuilt from sitestyles.php (2005) as responsive CSS.
   Original palette preserved: body #1C0501, main #2E2D27, nav #992828,
   left sidebar #993333, right sidebar #192222/#334545, text #D5D2B2. */

* { box-sizing: border-box; }

/* content already carries typographic quotes around <q> */
q::before, q::after { content: ""; }

body {
  margin: 0;
  padding: 0;
  color: #D5D2B2;
  background-color: #1C0501;
  background-image: url('../images/all/bg.png');
  font-family: verdana, helvetica, sans-serif;
  font-size: 0.8125rem;   /* ~13px, up from the original 10px */
  line-height: 1.45;
}

img { max-width: 100%; height: auto; border: 0; }
iframe { max-width: 100%; }

a:link, a:active, a:visited { color: #99CCCC; text-decoration: none; }
a:hover { color: #669999; }

.skip-link {
  position: absolute;
  left: -9999px;
}
.skip-link:focus {
  left: 8px; top: 8px;
  background: #992828; color: #fc6;
  padding: 6px 10px; z-index: 10;
}

#mainEnvelope {
  max-width: 880px;
  margin: 0 auto;
  padding: 0;
}

/* ---------- Header / navigation ---------- */

#topbar {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

#topbar .logo {
  flex: 0 0 auto;
  background-color: #993333;
  display: block;
  padding: 0;
}

#navigation {
  flex: 1 1 300px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  background-color: #992828;
  padding: 0 4px;
  min-height: 38px;
}

#navigation a {
  display: block;
  padding: 10px 8px;
  color: #c93;
  font-weight: bold;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
}

#navigation a:hover { color: #fc6; }
#navigation a.active { color: #cccccc; }

/* ---------- Columns ---------- */

#columns {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr) 180px;
  grid-template-areas: "left main right";
  align-items: start;
}

#main_content {
  grid-area: main;
  background-color: #2E2D27;
  background-image: url('../images/all/bg10main.gif');
  padding: 12px 15px 20px 15px;
  min-height: 450px;
  overflow-wrap: break-word;
}

#sidebar_left { grid-area: left; font-size: 0.75rem; }
#sidebar_right { grid-area: right; font-size: 0.75rem; }

#sidebar_left1a {
  background-color: #993333;
  padding: 8px 0 0 0;
  text-align: left;
}

#sidebar_left1a .social {
  display: flex;
  align-items: center;
  justify-content: space-around;
  padding: 4px 8px;
}

.jukebox-launch { display: block; margin-top: 6px; }

#sidebar_left2b {
  background-color: #993333;
  background-image: url('../images/all/bg10sidebarl3.gif');
  padding: 10px 10px 14px 10px;
}

#sidebar_right1a {
  background-color: #192222;
  background-image: url('../images/all/sidebar_rt.gif');
  background-repeat: no-repeat;
  background-position: bottom;
  padding: 10px 10px 25px 10px;
}

#sidebar_right2a {
  background-color: #334545;
  background-image: url('../images/all/bg10sidebarr2.gif');
  padding: 10px 10px 14px 10px;
}

.sidebar-heading { margin: 8px 0 6px 0; font-size: 1em; }
.allshows { margin: 0; }
#sidebar_right1a .cover { margin-bottom: 3px; }

/* ---------- Footer ---------- */

#BottomMenu {
  clear: both;
  background-color: #2E2D27;
  background-image: url('../images/all/bg10main.gif');
  text-align: center;
  padding: 8px 0 14px 0;
  margin-bottom: 30px;
  background-repeat: repeat;
}

.filagree { text-align: center; margin: 20px 0; }

/* ---------- Content typography ---------- */

h1, h2, h3 { font-family: verdana, arial, helvetica, sans-serif; }

h2, .archives-title {
  font-size: 1.1rem;
  font-weight: bold;
  margin: 24px 0 5px 0;
}

.section-heading { margin: 0 0 15px 0; }
.section-heading img { display: block; }
#main_content > h2:first-child, .archives-title:first-child { margin-top: 0; }

p { margin: 0 0 10px 0; }

ul { margin: 0 0 10px 0; }
ul li { list-style-type: none; text-indent: -10px; }

table, tr, td { border: 0; border-collapse: collapse; border-spacing: 0; empty-cells: show; }

.nowrap { white-space: nowrap; }

/* ---------- News ---------- */

.NewsDate { font-weight: bold; margin-right: 10px; }

/* ---------- Shows ---------- */

.Show { margin: 0 0 15px 0; text-align: left; }

.ShowInfo {
  font-size: 0.85rem;
  font-weight: 550;
  text-indent: -10px;
  margin-left: 10px;
}

.ShowDetails, .ShowWith, .ShowNotes, .ShowTitle {
  text-indent: 0;
  margin-left: 10px;
}

.ShowBody { margin-top: 10px; }

.ShowsHeader { font-weight: bold; font-size: 0.85rem; }
.ShowsHeader a:link, .ShowsHeader a:active, .ShowsHeader a:visited {
  color: #C5C2B2;
}

#future_shows, #past_shows { text-align: left; }

/* ---------- Songs / audio page ---------- */

.SongName { display: inline; font-weight: bold; }
.SongLinks { font-size: 0.8rem; margin-bottom: 5px; }
.SongLinks ol { list-style-position: outside; margin: 0 0 0 2.5em; padding: 0; }
.SongLinks ul { list-style: none; text-indent: -10px; margin-left: 10px; padding: 0; }
.SongLinks li { margin: 0; }
.SongTitle { font-weight: bold; text-decoration: underline; text-transform: uppercase; }

/* ---------- Forms (legacy) ---------- */

.input-box {
  color: #D5D2B2;
  background: #192222;
  border: 1px solid #334545;
  margin: 5px 0;
}

label { width: 6.5em; float: left; text-align: right; margin: 5px 1em 5px 0; }

/* ---------- Album / photo galleries ---------- */

.album-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 12px;
  text-align: left;
}

.album-card {
  display: block;
  background: rgba(0, 0, 0, 0.25);
  padding: 8px;
}

.album-card img { width: 100%; height: 110px; object-fit: cover; display: block; margin-bottom: 6px; }
.album-card .album-name { display: block; font-weight: bold; }
.album-card .album-date { display: block; font-size: 0.7rem; color: #C5C2B2; }

.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
  text-align: left;
}

.photo { margin: 0; }
.photo img { width: 100%; height: 130px; object-fit: cover; display: block; }
.photo figcaption { font-size: 0.7rem; padding-top: 3px; color: #C5C2B2; }

/* ---------- Jukebox ---------- */

#jukebox { text-align: left; max-width: 480px; }

#jb-nowplaying {
  background: #192222;
  border: 1px solid #334545;
  padding: 8px 10px;
  margin-bottom: 8px;
}

#jb-song { font-weight: bold; }
#jb-album { font-size: 0.75rem; color: #C5C2B2; }

#jb-audio { width: 100%; margin-bottom: 6px; }

#jb-controls { margin-bottom: 10px; }
#jb-controls button {
  background: #992828;
  color: #fc6;
  border: 0;
  padding: 8px 16px;
  margin-right: 6px;
  font-size: 1rem;
  cursor: pointer;
}

#jb-playlist { list-style: none; margin: 0; padding: 0; }
#jb-playlist li {
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(213, 210, 178, 0.15);
}

.jb-track {
  flex: 1;
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  color: #99CCCC;
  font: inherit;
  padding: 7px 6px;
  cursor: pointer;
}

.jb-track:hover { color: #669999; }
.jb-track.playing { color: #fc6; }
.jb-track .jb-name { display: block; font-weight: bold; }
.jb-track .jb-meta { display: block; font-size: 0.7rem; color: #C5C2B2; }
.jb-web { padding: 0 8px; }

/* ---------- Store products ---------- */

.product {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 20px;
  text-align: left;
}

.product-img { flex: 0 0 auto; width: 100px; height: auto; }
.product-info { flex: 1; min-width: 0; }

section#cds, section#tshirt, section#oldcds, section#oldtshirt,
section#order, section#retailers { clear: both; }

/* ---------- News posts ---------- */

.news-post { margin-bottom: 18px; }
.news-post .NewsDate a { color: #D5D2B2; }

/* ---------- Press quotes ---------- */

.pressquote { text-align: left; }

/* ---------- Archives ---------- */

.archive-index { text-align: center; }
.newsletter-index li { margin-bottom: 4px; }
.sent-date { color: #C5C2B2; font-size: 0.75rem; }

/* ---------- Legacy content compatibility ---------- */

/* Old inline content uses <center>, fixed-width floats, etc. Soften them. */
#main_content [style*="float"] { max-width: 100%; }
.albumentry { min-height: 70px; clear: both; text-align: left; }

/* Show blobs carry context-dependent spans: abbreviated dates in the
   sidebar ("Dec.") vs full dates in the main column ("December, 2026"). */
.DontShow, .ShowInPast { display: none; }
#sidebar_left .DontShowInSidebar { display: none; }
#main_content .DontShowInMain { display: none; }
#past_shows .ShowDetails { display: none; }
#past_shows .ShowInPast { display: inline; }

/* ---------- Mobile ---------- */

@media (max-width: 800px) {
  body { font-size: 0.9375rem; }

  #columns {
    display: block;
  }

  #topbar {
    align-items: center;
  }

  #topbar .logo { background: none; }

  #navigation a { padding: 10px 10px; font-size: 0.9375rem; }

  #main_content { min-height: 0; padding: 15px 12px; }

  #sidebar_left, #sidebar_right {
    font-size: 0.875rem;
  }

  /* On phones the sidebars stack below the content */
  #sidebar_left1a .social { justify-content: flex-start; gap: 18px; }
  #sidebar_left2b, #sidebar_right1a, #sidebar_right2a { padding: 14px 12px; }

  .photo img, .album-card img { height: 150px; }
}

@media (max-width: 480px) {
  #topbar { justify-content: center; }
}
