/* Inspiral Taiji & Qigong in Newcastle — static rebuild
   Fonts (same as original site): Kaushan Script, Montserrat Alternates, Signika
   Primary colour: #1e73be   Hover/dark: #00418c  (from the original Spacious theme)
   Page body text is Dave Robinson's own words, reproduced verbatim from the
   original taichinewcastle.co.uk. Navigation, footer and layout are new. */

:root {
  --blue: #1e73be;
  --blue-dark: #00418c;
  --text: #444;
  --heading: #33383b;
  --light: #f7f9fb;
  --border: #e4e8ec;
  --max: 980px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: "Signika", "Helvetica Neue", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  color: var(--text);
  background: #fff;
}

a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--blue-dark); text-decoration: underline; }

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

h1, h2, h3, h4, h5 {
  font-family: "Montserrat Alternates", "Signika", sans-serif;
  color: var(--heading);
  line-height: 1.3;
  font-weight: 600;
}

.wrap { max-width: var(--max); margin: 0 auto; padding: 0 22px; }

/* ---------- Header ---------- */
.site-header { text-align: center; padding: 0 0 8px; }
.site-header .header-banner { display: block; width: 100%; height: auto; max-height: none; margin: 0; }
.site-header .site-title, .site-header .site-tagline { padding: 0 16px; }
.site-title {
  font-family: "Montserrat Alternates", sans-serif;
  font-size: 2rem;
  margin: 14px 0 2px;
  color: var(--blue-dark);
  font-weight: 700;
}
.site-title a { color: inherit; text-decoration: none; }
.site-tagline {
  font-family: "Kaushan Script", cursive;
  font-size: 1.5rem;
  color: var(--blue);
  margin: 0 0 6px;
  font-weight: 400;
}

/* ---------- Navigation (with dropdowns) ---------- */
.main-nav { background: var(--blue); }
.main-nav > ul {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.main-nav li { position: relative; }
.main-nav a {
  display: block;
  color: #fff;
  padding: 14px 20px;
  font-family: "Montserrat Alternates", sans-serif;
  font-size: 0.95rem;
  letter-spacing: .2px;
  white-space: nowrap;
}
.main-nav a:hover, .main-nav li:hover > a, .main-nav .current > a {
  background: var(--blue-dark);
  text-decoration: none;
}
.main-nav .has-sub > a::after { content: " \25be"; opacity: .8; }
.main-nav ul ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 230px;
  background: var(--blue-dark);
  z-index: 40;
  padding: 0;
  margin: 0;
  list-style: none;
}
.main-nav li:hover > ul { display: block; }
.main-nav ul ul a { padding: 11px 18px; border-top: 1px solid rgba(255,255,255,.12); white-space: normal; }
.main-nav ul ul a:hover { background: var(--blue); }

@media (max-width: 720px) {
  .main-nav > ul { justify-content: flex-start; }
  .main-nav ul ul { position: static; min-width: 0; }
  .main-nav ul ul a { padding-left: 38px; }
}

/* ---------- Content ---------- */
.content { padding: 34px 0 20px; }
.page-title {
  font-size: 1.9rem;
  color: var(--blue-dark);
  border-bottom: 2px solid var(--border);
  padding-bottom: 10px;
  margin: 0 0 22px;
}
.content h2 {
  font-family: "Kaushan Script", cursive;
  font-weight: 400;
  font-size: 1.9rem;
  line-height: 1.35;
  color: var(--blue-dark);
  margin: 1.5em 0 .5em;
}
/* Classes day-bars stay in the label font, not the script face */
.content h2.day-heading {
  font-family: "Montserrat Alternates", sans-serif;
  font-size: 1.2rem;
  line-height: 1.3;
  color: #fff;
}
.content h3 { font-size: 1.2rem; margin: 1.3em 0 .4em; color: var(--blue-dark); }
.content h4 { font-size: 1.05rem; margin: 1.1em 0 .3em; }
.content p { margin: 0 0 1.15em; }
.content ul, .content ol { margin: 0 0 1.2em; padding-left: 1.4em; }
.content li { margin: .25em 0; }

.content img { border-radius: 6px; max-width: 100%; }
.content .align-left  { float: left;  margin: 6px 22px 12px 0; }
.content .align-right { float: right; margin: 6px 0 12px 22px; }
.content .align-center { display: block; margin: 16px auto; }
/* headings clear floated images so they never overlap */
.content h1, .content h2, .content h3 { clear: both; }
/* small logo/character images placed inside a heading stay inline */
.content h3 > img { max-height: 60px; width: auto; float: none; vertical-align: middle; margin: 0 12px 0 0; }

@media (max-width: 560px) {
  .content .align-left, .content .align-right { float: none; display: block; margin: 12px auto; }
}
.content .clearfix { clear: both; }

/* Site map nested list */
.sitemap { list-style: none; padding-left: 0; }
.sitemap > li { margin: .5em 0; font-weight: 600; }
.sitemap ul { list-style: disc; margin: .3em 0 .8em 1.6em; }
.sitemap ul li { font-weight: 400; }

blockquote {
  margin: 1.3em 0;
  padding: 12px 22px;
  border-left: 4px solid var(--blue);
  background: var(--light);
  font-style: italic;
}
blockquote p { margin: 0; }

figure { margin: 1.2em 0; text-align: center; }

.btn {
  display: inline-block;
  background: var(--blue);
  color: #fff !important;
  padding: 11px 22px;
  border-radius: 4px;
  font-family: "Montserrat Alternates", sans-serif;
  margin: 6px 0;
}
.btn:hover { background: var(--blue-dark); text-decoration: none; }

.notice {
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 14px 20px;
  margin: 1.4em 0;
}

/* ---------- Classes / venues ---------- */
.day-group { margin: 0 0 30px; }
.day-heading {
  font-family: "Montserrat Alternates", sans-serif;
  background: var(--blue);
  color: #fff;
  padding: 8px 16px;
  border-radius: 4px;
  font-size: 1.2rem;
  margin: 0 0 16px;
}
.venue {
  border: 1px solid var(--border);
  border-left: 4px solid var(--blue);
  border-radius: 5px;
  padding: 14px 18px;
  margin: 0 0 14px;
  background: #fff;
}
.venue h3 { margin: 0 0 4px; font-size: 1.1rem; color: var(--blue-dark); }
.venue .time { font-weight: 600; color: var(--heading); margin: 0; }
.venue .meta { font-size: 0.92rem; color: #666; margin: 6px 0 0; }
.venue .meta span { display: inline-block; margin-right: 14px; }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--blue-dark);
  color: #dbe6f2;
  margin-top: 40px;
  padding: 28px 0;
  font-size: 0.92rem;
  text-align: center;
}
.site-footer a { color: #fff; }
.site-footer .foot-nav { margin-bottom: 12px; line-height: 2; }
.site-footer .foot-nav a { margin: 0 9px; display: inline-block; }
.site-footer .contact-line { margin: 0 0 10px; }
