/* International Guitar Seminars — archive stylesheet
   Palette: rosewood maroon, aged teal, cream paper, ink.
   Square edges throughout, after the original table-era site. */

:root{
  --maroon:#6b0c14;
  --maroon-dark:#4a070d;
  --maroon-light:#a3232f;
  --teal:#0e6e6e;
  --teal-dark:#095050;
  --cream:#f7f2e7;
  --cream-dark:#ece3d0;
  --paper:#fffdf8;
  --ink:#241f1d;
  --ink-soft:#5a5049;
  --rule:#d8ccb4;
  --measure:36rem;
  --wide:64rem;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Karla","Segoe UI",Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}

a{color:var(--maroon);text-decoration:none;border-bottom:1px solid var(--rule);}
a:hover,a:focus{color:var(--teal-dark);border-bottom-color:var(--teal);}
a:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}

h1,h2,h3,h4{
  font-family:"Zilla Slab",Georgia,"Times New Roman",serif;
  font-weight:600;line-height:1.18;color:var(--maroon-dark);
  margin:0 0 .5em;letter-spacing:-.005em;
}
h1{font-size:clamp(2rem,1.4rem + 2.6vw,3.05rem);margin-bottom:.35em;}
h2{font-size:clamp(1.4rem,1.15rem + 1.05vw,1.85rem);margin-top:2.1em;padding-top:.5em;border-top:1px solid var(--rule);}
h3{font-size:1.16rem;margin-top:1.9em;color:var(--teal-dark);font-weight:600;}
p{margin:0 0 1.15em;}
ul,ol{margin:0 0 1.3em;padding-left:1.3em;}
li{margin-bottom:.45em;}
strong{font-weight:700;}

/* ---------- masthead ---------- */
.masthead{background:var(--cream);border-bottom:3px solid var(--maroon);}
.masthead .inner{max-width:var(--wide);margin:0 auto;padding:1.5rem 1.25rem 1.15rem;}
.brand{display:block;border:0;}
.brand:hover{border:0;}
.brand .name{
  font-family:"Zilla Slab",Georgia,serif;font-weight:600;
  font-size:clamp(1.35rem,1.05rem + 1.5vw,2.25rem);
  color:var(--maroon);line-height:1.05;letter-spacing:-.01em;display:block;
}
.brand .tag{
  display:block;margin-top:.45rem;font-size:.76rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-soft);
}
.fretline{height:0;border:0;border-top:1px solid var(--teal);
  background:none;margin:0;opacity:.55;}

/* ---------- nav: wraps, never overflows, needs no JavaScript ---------- */
.sitenav{background:var(--maroon);}
.sitenav ul{
  max-width:var(--wide);margin:0 auto;padding:.35rem 1.25rem;
  list-style:none;display:flex;flex-wrap:wrap;gap:.1rem 1.1rem;min-width:0;
}
.sitenav li{margin:0;min-width:0;}
.sitenav a{
  display:inline-block;padding:.5rem 0;border:0;
  color:var(--cream);font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;
  border-bottom:2px solid transparent;
}
.sitenav a:hover,.sitenav a:focus{color:#fff;border-bottom-color:var(--cream);}
.sitenav a[aria-current="page"]{color:#fff;border-bottom-color:var(--cream);}

/* ---------- layout ---------- */
main{display:block;}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 1.25rem;}
.prose{max-width:var(--measure);margin:0 auto;padding:2.4rem 0 3rem;}
.prose > h1{margin-top:0;}

/* ---------- hero ---------- */
.hero{background:var(--cream-dark);border-bottom:1px solid var(--rule);}
.hero figure{max-width:var(--wide);margin:0 auto;padding:0;}
.hero img{width:100%;object-fit:cover;max-height:26rem;}
.hero figcaption{
  max-width:var(--wide);margin:0 auto;padding:.55rem 1.25rem .7rem;
  font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
}

/* ---------- editorial bits ---------- */
.lede{
  font-size:1.12rem;line-height:1.6;color:var(--ink);
  border-left:4px solid var(--teal);padding-left:1.05rem;margin-bottom:1.6em;
}
blockquote{
  margin:1.6em 0;padding:1.05rem 1.15rem .35rem;
  background:var(--cream);border-left:4px solid var(--maroon-light);
  font-size:.98rem;
}
blockquote p{margin-bottom:.9em;}
.attrib{
  text-align:right;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-soft);
}
figure.inline{margin:2rem 0;}
figure.inline figcaption{
  font-size:.76rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-soft);padding-top:.5rem;
}

/* ---------- tables ---------- */
.table-wrap{overflow-x:auto;margin:1.6em 0;}
table.schedule{border-collapse:collapse;width:100%;font-size:.94rem;min-width:20rem;}
table.schedule caption{
  text-align:left;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-soft);padding-bottom:.6rem;
}
table.schedule th,table.schedule td{
  text-align:left;padding:.5rem .8rem;border-bottom:1px solid var(--rule);vertical-align:top;
}
table.schedule th{
  white-space:nowrap;font-family:"Zilla Slab",Georgia,serif;font-weight:600;
  color:var(--maroon-dark);background:var(--cream);
}

/* ---------- archive notice ---------- */
.notice{
  margin:2.6rem 0 0;padding:1rem 1.15rem;background:var(--cream);
  border-top:2px solid var(--maroon);font-size:.88rem;color:var(--ink-soft);
}
.notice strong{color:var(--maroon-dark);}

/* ---------- footer ---------- */
footer.sitefoot{background:var(--maroon-dark);color:var(--cream-dark);margin-top:3rem;}
footer.sitefoot .inner{max-width:var(--wide);margin:0 auto;padding:2.4rem 1.25rem 1.6rem;}
.footcols{display:flex;flex-wrap:wrap;gap:1.8rem 3rem;min-width:0;}
.footcols section{min-width:0;flex:1 1 12rem;}
.footcols h2{
  font-size:.76rem;letter-spacing:.15em;text-transform:uppercase;color:#fff;
  border:0;margin:0 0 .7rem;padding:0;font-family:"Karla",sans-serif;font-weight:700;
}
.footcols ul{list-style:none;margin:0;padding:0;}
.footcols li{margin-bottom:.4rem;}
.footcols a{color:var(--cream-dark);border-bottom:1px solid rgba(247,242,231,.28);font-size:.9rem;}
.footcols a:hover,.footcols a:focus{color:#fff;border-bottom-color:#fff;}
.colophon{
  margin-top:2.1rem;padding-top:1.1rem;border-top:1px solid rgba(247,242,231,.22);
  font-size:.8rem;color:rgba(247,242,231,.7);
}
.colophon p{margin:0 0 .45em;}

/* ---------- 404 ---------- */
.err{padding:4rem 0 5rem;text-align:center;}
.err h1{font-size:clamp(2.2rem,1.6rem + 3vw,3.4rem);}
.err ul{display:inline-block;text-align:left;}

/* ---------- safeguard: content is never hidden waiting on JS ---------- */
[data-aos]{opacity:1 !important;transform:none !important;}

@media (max-width:640px){
  body{font-size:16px;}
  .prose{padding:1.8rem 0 2.4rem;}
  .sitenav ul{gap:0 .95rem;}
  .hero img{max-height:15rem;}
}
