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

:root {

  --kungfu-heading-bg-color: #130d0f;
  --kungfu-heading-texture:
    linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.035) 36%, rgba(0,0,0,.24) 100%),
    repeating-linear-gradient(132deg, rgba(255,255,255,.075) 0 1px, rgba(255,255,255,.025) 1px 2px, rgba(0,0,0,0) 2px 7px),
    repeating-linear-gradient(48deg, rgba(0,0,0,.22) 0 1px, rgba(0,0,0,0) 1px 6px),
    radial-gradient(ellipse at 16% 18%, rgba(255,255,255,.07) 0%, rgba(255,255,255,0) 32%),
    linear-gradient(180deg, #20161a 0%, #130d0f 55%, #090708 100%);
}
body {
  margin: 0;
  padding: 0;
  font: 16px/1.5 Arial, Geneva, Verdana, Helvetica, sans-serif;
  color: #000;
  background: #000 url('/images/kungfu-bg9.jpg') no-repeat top center;
  text-align: center;
}
body.hc-bw {
  background: #000 !important;
  color: #fff !important;
}
body.hc-bw .site-main,
body.hc-bw .content-shell,
body.hc-bw .content-panel,
body.hc-bw .sidebar-card,
body.hc-bw .home-intro,
body.hc-bw .home-hero-caption,
body.hc-bw .news-scroll,
body.hc-bw .post-card {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}
body.hc-bw a { color: #fff !important; text-decoration: underline !important; }
body.hc-bw .section-title,
body.hc-bw .sidebar-title,
body.hc-bw .news-banner { background: #fff !important; color: #000 !important; }
body.hc-bw img { filter: grayscale(1) contrast(1.15); }

img { max-width: 100%; height: auto; }
a, a:visited { color: #292929; text-decoration: none; }
a:hover, a:focus { color: #000; text-decoration: underline; }
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus,
[tabindex]:focus {
  outline: 2px solid #fff !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(0,0,0,.85) !important;
}
.skip-link {
  position: absolute;
  left: -9999px;
  top: 10px;
  z-index: 10000;
  padding: 10px 14px;
  background: #fff;
  color: #000;
  border: 3px solid #000;
  font-weight: bold;
}
.skip-link:focus { left: 10px; }

.site-wrap {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  text-align: left;
}
.site-header {
  min-height: 150px;
  color: #fff;
}
.header-inner {
  display: table;
  width: 100%;
  min-height: 150px;
}
.header-logo {
  display: table-cell;
  width: 130px;
  vertical-align: top;
}
.header-logo img { display: block; }
.header-main {
  display: table-cell;
  width: auto;
  vertical-align: top;
  text-align: right;
}
.site-title {
  margin: 0;
  padding: 40px 10px 16px;
  color: #fff;
  font-size: 32px;
  line-height: 1.2;
  font-weight: bold;
  letter-spacing: 1px;
}
.navbar-kungfu {
  min-height: 40px;
  margin: 0;
  border: 0;
  background: transparent;
}
.navbar-kungfu .navbar-collapse { padding-right: 0; }
.navbar-kungfu .navbar-nav > li > a {
  color: #fff;
  font-size: 15px;
  font-weight: bold;
  text-transform: uppercase;
  padding: 8px 8px;
  text-shadow: none;
}
.navbar-kungfu .navbar-nav > li > a:hover,
.navbar-kungfu .navbar-nav > li > a:focus,
.navbar-kungfu .navbar-nav > .active > a,
.navbar-kungfu .navbar-nav > .active > a:hover,
.navbar-kungfu .navbar-nav > .active > a:focus {
  color: #fff;
  background: rgba(255,255,255,.14);
  text-decoration: underline;
}
.navbar-kungfu .navbar-toggle { border-color: #fff; margin-right: 10px; }
.navbar-kungfu .navbar-toggle .icon-bar { background: #fff; }

.site-main {
  clear: both;
  width: 100%;
  background: #efefef;
  border-radius: 5px;
}
.content-shell {
  min-height: 600px;
  background: #efefef url('/images/lion.jpg') no-repeat right center;
  border-radius: 5px;
  padding: 5px 0;
}
.home-shell {
  min-height: 1200px;
  background-position: bottom right;
}
.content-row { margin-left: 0; margin-right: 0; }
.main-column, .sidebar-column { padding-left: 5px; padding-right: 5px; }
.content-panel {
  background: #fff;
  border: 1px solid #696969;
  border-radius: 6px;
  margin: 0 5px 10px;
  overflow: hidden;
}
.content-panel.no-border { border: 0; background: transparent; }
.section-title,
.news-banner {
  min-height: 70px;
  margin: 0;
  padding: 24px 15px 16px;
  color: #fff;
  background-color: var(--kungfu-heading-bg-color);
  background-image: var(--kungfu-heading-texture);
  background-repeat: repeat;
  background-size: auto;
  border-radius: 6px 6px 0 0;
  font-size: 30px;
  line-height: 1.1;
  font-weight: bold;
  font-style: italic;
  text-transform: uppercase;
}
.page-content,
.post-content {
  padding: 18px 20px 24px;
  color: #000;
  font-size: 16px;
  line-height: 1.55;
}
.page-content h2, .page-content h3,
.post-content h2, .post-content h3 {
  color: #000;
  font-weight: bold;
  line-height: 1.25;
  margin-top: 18px;
}
.page-content p,
.post-content p { margin: 0 0 14px; }
.page-content ul,
.page-content ol,
.post-content ul,
.post-content ol { margin: 12px 0 18px 28px; padding-left: 18px; }
.page-content ul, .post-content ul { list-style: disc; }
.page-content table, .post-content table { width: 100%; max-width: 100%; margin: 15px 0; border-collapse: collapse; }
.page-content th, .post-content th { background: #000; color: #fff; }
.page-content th, .page-content td, .post-content th, .post-content td { padding: 8px 10px; border: 1px dotted #696969; }
.page-content img, .post-content img { max-width: 100% !important; height: auto !important; }
.gallery-link { display: inline-block; }

.home-hero {
  position: relative;
  width: 100%;
  max-width: 642px;
  min-height: 394px;
  margin: 0 auto 12px;
  padding: 0;
  background: transparent url('/images/shaolin-kungfu-header.jpg') no-repeat top center;
  background-size: 100% auto;
}
.home-hero-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  padding: 14px 16px 13px;
  background: rgba(0,0,0,.74);
  color: #fff;
  text-align: center;
}
.home-hero-caption h1 {
  margin: 0 0 5px;
  color: #fff;
  font-size: 27px;
  line-height: 1.15;
  font-weight: bold;
}
.home-hero-caption h2 {
  margin: 0;
  color: #fff;
  font-size: 20px;
  line-height: 1.25;
  font-weight: bold;
  text-transform: uppercase;
}
.home-intro {
  max-width: 642px;
  min-height: 0;
  margin: 0 auto 12px;
  padding: 12px 10px 12px;
  color: #000;
}
.home-intro p { margin: 0 0 12px; }
.brochure-link {
  display: block;
  text-align: center;
  margin: 12px 0 0;
  padding: 10px;
  font-size: 18px;
  font-weight: bold;
  color: #292929;
}
.brochure-link .download-text { color: #008000; }
.news-scroll {
  height: 550px;
  overflow: auto;
  padding: 15px 12px;
  border: 1px solid #696969;
  border-radius: 5px;
  background: rgba(255,255,255,.25);
}
.news-item { padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid #999; }
.news-item h3 { margin: 0 0 6px; font-size: 22px; font-weight: normal; }
.news-meta { margin: 0 0 10px; font-size: 14px; }

.sidebar-card {
  width: auto;
  min-height: 100%;
  margin: 0 0 10px;
  background: #fff;
  border: 1px solid #696969;
  border-radius: 6px;
  color: #000;
}
.sidebar-title {
  margin: 0;
  min-height: 45px;
  padding: 12px 15px 4px;
  color: #fff;
  background-color: var(--kungfu-heading-bg-color);
  background-image: var(--kungfu-heading-texture);
  background-repeat: repeat;
  background-size: auto;
  border-radius: 5px 5px 0 0;
  font-size: 16px;
  line-height: 1.2;
  font-weight: bold;
  font-style: italic;
  text-transform: uppercase;
}
.sidebar-body { padding: 18px 15px 20px; }
.sidebar-body h3 { margin: 0 0 8px; color: #000; font-size: 19px; }
.social-list { list-style: none; margin: 0; padding: 0; }
.social-list li { display: inline-block; margin: 0 4px 6px 0; }
.social-icon {
  display: block;
  width: 64px;
  height: 64px;
  overflow: hidden;
  text-indent: -9999px;
  background-position: 0 0;
  background-repeat: no-repeat;
}
.social-icon:hover, .social-icon:focus { background-position: -64px 0; }
.social-facebook { background-image: url('/images/facebook.png'); }
.social-twitter { background-image: url('/images/twitter.png'); }
.social-linkedin { background-image: url('/images/linkedin.png'); }
.social-rss { background-image: url('/images/rss.png'); }


/* Local JavaScript shadow box for External Arts photos. */
.js-shadowbox-gallery img {
  cursor: zoom-in;
}
.js-shadowbox-gallery a.shadowbox-trigger,
.js-shadowbox-gallery img.shadowbox-trigger {
  display: inline-block;
}
.shadowbox-modal {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0,0,0,.88);
}
.shadowbox-modal.is-open { display: flex; }
.shadowbox-dialog {
  position: relative;
  width: 100%;
  max-width: 940px;
  max-height: 92vh;
  margin: 0 auto;
  text-align: center;
}
.shadowbox-figure {
  margin: 0;
  padding: 0;
}
.shadowbox-image {
  display: block;
  max-width: 100%;
  max-height: 82vh;
  margin: 0 auto;
  border: 4px solid #fff;
  background: #fff;
  box-shadow: 0 0 22px rgba(0,0,0,.7);
}
.shadowbox-caption {
  margin: 8px 44px 0;
  color: #fff;
  font-size: 14px;
  line-height: 1.35;
}
.shadowbox-close,
.shadowbox-prev,
.shadowbox-next {
  position: absolute;
  z-index: 2;
  border: 2px solid #fff;
  background: rgba(0,0,0,.72);
  color: #fff;
  font-weight: bold;
  line-height: 1;
}
.shadowbox-close {
  top: -14px;
  right: -14px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 28px;
}
.shadowbox-prev,
.shadowbox-next {
  top: 50%;
  width: 42px;
  height: 52px;
  margin-top: -26px;
  font-size: 30px;
}
.shadowbox-prev { left: -12px; }
.shadowbox-next { right: -12px; }
.shadowbox-close:hover,
.shadowbox-close:focus,
.shadowbox-prev:hover,
.shadowbox-prev:focus,
.shadowbox-next:hover,
.shadowbox-next:focus {
  background: #fff;
  color: #000;
}
body.shadowbox-open { overflow: hidden; }

.post-card {
  margin: 0 5px 15px;
  padding: 0;
  background: #fff;
  border: 1px solid #696969;
  border-radius: 6px;
  overflow: hidden;
}
.post-card-title {
  margin: 0;
  padding: 15px 16px;
  background-color: var(--kungfu-heading-bg-color);
  background-image: var(--kungfu-heading-texture);
  background-repeat: repeat;
  background-size: auto;
  color: #fff;
  font-size: 22px;
  line-height: 1.25;
  font-style: italic;
}
.post-card-title a { color: #fff; }
.post-card-body { padding: 14px 16px 18px; }
.post-meta { margin: 0 0 12px; color: #222; font-size: 14px; }
body.hc-bw .post-meta { color: #fff; }
.read-more { font-weight: bold; }

.site-footer {
  clear: both;
  min-height: 42px;
  color: #fff;
  overflow: hidden;
  text-align: right;
  padding: 8px 15px 20px;
}
.site-footer a { color: #fff; font-size: 12px; }
.footer-links { float: left; max-width: 430px; text-align: left; }
.footer-copy { float: right; max-width: 520px; color: #fff; font-size: 11px; }

.accessibility-fixed-button {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  padding: 4px;
  border: 2px solid #fff;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.35);
}
.accessibility-fixed-button img { display: block; width: 36px; height: 36px; }
.accessibility-modal-content { border-radius: 8px; }
.accessibility-modal-content .close { font-size: 32px; }
.accessibility-statement-box {
  height: auto;
  border: 1px dotted #ddd;
  padding: 10px;
  margin-bottom: 20px;
  overflow: hidden;
}
.accessibility-statement-box .row { margin: 0; }
.accessibility-statement-box p { margin-top: 15px; }
.wcag-badge { max-width: 250px; height: auto; margin-top: 20px; }
.accessibility-help-text { margin-top: 10px; font-size: 13px; color: #666; }
.audio-reader-control { margin-top: 18px; }

/* User-provided accessibility sizing controls. */
#accessibility-content.acc-font-small { font-size: 13px !important; line-height: 1.3 !important; }
#accessibility-content.acc-font-normal { font-size: 16px !important; line-height: 1.5 !important; }
#accessibility-content.acc-font-large { font-size: 20px !important; line-height: 1.8 !important; }
#accessibility-content,
#accessibility-content.acc-font-default { font-size: 16px; line-height: 1.5; }
#accessibility-content.acc-font-small *,
#accessibility-content.acc-font-normal *,
#accessibility-content.acc-font-large * { font-size: inherit !important; line-height: inherit !important; }

/* Keep sidebar card headings locked to the original visual size when accessibility text sizing is changed. */
#accessibility-content.acc-font-small .sidebar-title,
#accessibility-content.acc-font-normal .sidebar-title,
#accessibility-content.acc-font-large .sidebar-title,
#accessibility-content.acc-font-small .sidebar-title *,
#accessibility-content.acc-font-normal .sidebar-title *,
#accessibility-content.acc-font-large .sidebar-title * {
  font-size: 16px !important;
  line-height: 1.2 !important;
}
#accessibility-content.acc-font-small .btn,
#accessibility-content.acc-font-small button,
#accessibility-content.acc-font-small input[type="button"],
#accessibility-content.acc-font-small input[type="submit"] { font-size: .9em; padding: 4px 10px; min-height: 2em; height: auto; }
#accessibility-content.acc-font-normal .btn,
#accessibility-content.acc-font-normal button,
#accessibility-content.acc-font-normal input[type="button"],
#accessibility-content.acc-font-normal input[type="submit"] { font-size: 1em; padding: 8px 16px; min-height: 2.5em; height: auto; }
#accessibility-content.acc-font-large .btn,
#accessibility-content.acc-font-large button,
#accessibility-content.acc-font-large input[type="button"],
#accessibility-content.acc-font-large input[type="submit"] { font-size: 1.2em; padding: 12px 20px; min-height: 3em; height: auto; }

.privacy-consent-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9998;
  background: #111;
  color: #fff;
  border-top: 3px solid #fff;
  text-align: left;
  padding: 12px 15px;
}
.privacy-consent-inner {
  max-width: 1000px;
  margin: 0 auto;
  display: table;
  width: 100%;
}
.privacy-consent-inner p { display: table-cell; vertical-align: middle; margin: 0; padding-right: 15px; }
.privacy-consent-actions { display: table-cell; vertical-align: middle; white-space: nowrap; text-align: right; }
.privacy-consent-actions .btn { margin-left: 4px; }

@media (max-width: 991px) {
  .site-wrap { max-width: 100%; }
  .site-title { font-size: 26px; }
  .section-title, .news-banner { font-size: 25px; }
  .home-hero { min-height: 360px; }
}
@media (max-width: 767px) {
  body { background-size: auto; }
  .site-header {
    min-height: 0;
    padding: 8px 10px 10px;
    background: rgba(0,0,0,.72);
    border-bottom: 1px solid rgba(255,255,255,.18);
  }
  .header-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    min-height: 0;
  }
  .header-logo {
    display: block;
    flex: 0 0 74px;
    width: 74px;
    padding-top: 0;
    text-align: left;
  }
  .header-logo img {
    display: block;
    width: 70px;
    height: auto;
    margin: 0;
  }
  .header-main {
    display: block;
    flex: 1 1 calc(100% - 74px);
    width: auto;
    min-width: 0;
    min-height: 70px;
    padding: 2px 0 0 8px;
    position: relative;
    text-align: left;
  }
  .site-title {
    margin: 0;
    padding: 6px 58px 6px 0;
    font-size: 17px;
    line-height: 1.15;
    letter-spacing: .2px;
  }
  .navbar-kungfu {
    min-height: 0;
    position: static;
  }
  .navbar-kungfu .navbar-header {
    position: absolute;
    top: 4px;
    right: 0;
    text-align: right;
  }
  .navbar-kungfu .navbar-toggle {
    margin: 0;
    padding: 7px 8px 5px;
    border-color: rgba(255,255,255,.9);
    border-radius: 4px;
    background: rgba(0,0,0,.45);
  }
  .navbar-kungfu .navbar-toggle:hover,
  .navbar-kungfu .navbar-toggle:focus {
    background: rgba(255,255,255,.14);
  }
  .navbar-kungfu .navbar-toggle .icon-bar {
    width: 22px;
    height: 2px;
    background: #fff;
  }
  .mobile-menu-label {
    display: block;
    margin-top: 3px;
    color: #fff;
    font-size: 10px;
    line-height: 1;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: .4px;
  }
  .navbar-kungfu .navbar-collapse {
    width: 100%;
    margin: 8px 0 0;
    padding-left: 0;
    padding-right: 0;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 5px;
    background: rgba(0,0,0,.88);
    box-shadow: none;
  }
  .navbar-kungfu .navbar-nav {
    margin: 0;
    text-align: left;
  }
  .navbar-kungfu .navbar-nav > li > a {
    padding: 12px 14px;
    border-top: 1px solid rgba(255,255,255,.18);
    font-size: 14px;
    line-height: 1.25;
  }
  .navbar-kungfu .navbar-nav > li:first-child > a { border-top: 0; }
  .navbar-kungfu .navbar-nav > .active > a,
  .navbar-kungfu .navbar-nav > .active > a:hover,
  .navbar-kungfu .navbar-nav > .active > a:focus {
    background: rgba(255,255,255,.18);
  }
  .content-shell { background-position: right bottom; }
  .main-column, .sidebar-column { padding-left: 10px; padding-right: 10px; }
  .content-panel, .post-card { margin-left: 0; margin-right: 0; }
  .section-title, .news-banner { font-size: 22px; padding-top: 18px; min-height: 58px; }
  .home-hero { min-height: 330px; background-size: 100% auto; }
  .home-hero-caption { padding: 10px 12px; }
  .home-hero-caption h1 { font-size: 22px; }
  .home-hero-caption h2 { font-size: 16px; }
  .home-intro { min-height: 0; padding: 14px 12px 12px; background: rgba(239,239,239,.85); }
  .news-scroll { height: auto; max-height: none; }
  .shadowbox-modal { padding: 12px; }
  .shadowbox-image { max-height: 78vh; border-width: 3px; }
  .shadowbox-close { top: -10px; right: -8px; }
  .shadowbox-prev { left: -6px; }
  .shadowbox-next { right: -6px; }
  .footer-links, .footer-copy { float: none; max-width: none; text-align: center; margin-bottom: 8px; }
  .privacy-consent-inner,
  .privacy-consent-inner p,
  .privacy-consent-actions { display: block; text-align: left; white-space: normal; }
  .privacy-consent-actions { margin-top: 10px; }
  .privacy-consent-actions .btn { margin: 4px 4px 0 0; }
}
@media (max-width: 480px) {
  .header-logo { flex-basis: 62px; width: 62px; }
  .header-logo img { width: 58px; }
  .header-main { flex-basis: calc(100% - 62px); min-height: 60px; padding-left: 7px; }
  .site-title { padding-right: 54px; font-size: 15.5px; line-height: 1.15; }
  .navbar-kungfu .navbar-toggle { padding: 6px 7px 4px; }
  .mobile-menu-label { font-size: 9px; }
  .home-hero { min-height: 260px; }
  .home-hero-caption h1 { font-size: 19px; }
  .home-hero-caption h2 { font-size: 14px; }
  .accessibility-fixed-button { right: 10px; bottom: 10px; }
}

/* Defensive responsive overrides for imported inline widths/floats. */
.page-content [style*="width"],
.post-content [style*="width"],
.news-scroll [style*="width"] { max-width: 100% !important; }
@media (max-width: 767px) {
  .page-content [style*="float"],
  .post-content [style*="float"],
  .news-scroll [style*="float"] {
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
.class-info-block {
  margin: 10px 0 20px;
}

.class-info-hero {
  margin: 0 0 18px;
  padding: 18px 18px 16px;
  color: #fff;
  background-color: var(--kungfu-heading-bg-color);
  background-image: var(--kungfu-heading-texture);
  background-repeat: repeat;
  background-size: auto;
  border: 1px solid #333;
  border-bottom: 1px solid rgba(255,255,255,.12);
  border-radius: 6px;
  text-align: center;
}

.class-info-hero h3 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 24px;
  line-height: 1.2;
  font-weight: bold;
  text-transform: uppercase;
}

.class-info-hero p {
  margin: 0;
  color: #f2f2f2;
  font-size: 15px;
}

.class-contact-grid,
.class-schedule-grid {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-spacing: 10px;
  margin: 0 -10px 14px;
}

.class-contact-card,
.class-schedule-card {
  display: table-cell;
  vertical-align: top;
  padding: 14px 15px;
  background: #f7f7f7;
  border: 1px solid #999;
  border-radius: 6px;
}

.class-contact-card h4,
.class-schedule-card h4 {
  margin: 0 0 8px;
  color: #000;
  font-size: 18px;
  line-height: 1.25;
  font-weight: bold;
}

.class-contact-card p,
.class-schedule-card p {
  margin: 0 0 8px;
}

.class-time {
  display: inline-block;
  margin-bottom: 10px !important;
  padding: 5px 9px;
  color: #fff;
  background: #111;
  border-radius: 4px;
  font-weight: bold;
}

.class-map-link {
  display: inline-block;
  padding: 5px 10px;
  color: #fff !important;
  background: #0b5f1f;
  border-radius: 4px;
  font-weight: bold;
  text-decoration: none;
}

.class-map-link:hover,
.class-map-link:focus {
  color: #fff !important;
  background: #063d14;
  text-decoration: underline;
}

.class-schedule-panel {
  margin: 0 0 18px;
}

.class-schedule-panel > h3,
.class-section h3 {
  margin: 20px 0 10px;
  padding: 9px 12px;
  color: #fff;
  background-color: var(--kungfu-heading-bg-color);
  background-image: var(--kungfu-heading-texture);
  background-repeat: repeat;
  background-size: auto;
  border-bottom: 1px solid rgba(255,255,255,.12);
  border-radius: 5px;
  font-size: 20px;
  line-height: 1.25;
  font-weight: bold;
}

.class-section {
  margin: 0 0 18px;
}

.class-section p {
  margin: 0 0 13px;
}

.class-etiquette-list {
  margin: 12px 0 18px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.class-etiquette-list li {
  position: relative;
  margin: 0 0 8px !important;
  padding: 8px 10px 8px 32px;
  background: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.class-etiquette-list li:before {
  content: "\2713";
  position: absolute;
  left: 10px;
  top: 8px;
  color: #0b5f1f;
  font-weight: bold;
}

body.hc-bw .class-info-hero,
body.hc-bw .class-schedule-panel > h3,
body.hc-bw .class-section h3,
body.hc-bw .class-time,
body.hc-bw .class-map-link {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}

body.hc-bw .class-contact-card,
body.hc-bw .class-schedule-card,
body.hc-bw .class-etiquette-list li {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

@media (max-width: 767px) {
  .class-contact-grid,
  .class-schedule-grid,
  .class-contact-card,
  .class-schedule-card {
    display: block;
    width: 100%;
  }

  .class-contact-grid,
  .class-schedule-grid {
    margin: 0 0 14px;
    border-spacing: 0;
  }

  .class-contact-card,
  .class-schedule-card {
    margin: 0 0 10px;
  }

  .class-info-hero h3 {
    font-size: 20px;
  }

  .class-schedule-panel > h3,
  .class-section h3 {
    font-size: 18px;
  }
}
.class-photo-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  margin: 12px 0 18px;
}

.class-photo-card {
  flex: 0 0 calc(25% - 8px);
  max-width: calc(25% - 8px);
  min-height: 160px;
  margin: 0;
  padding: 10px;
  background: #fff;
  border: 1px solid #898989;
  border-radius: 5px;
  text-align: center;
}

.class-photo-card a {
  display: block;
  width: 100%;
}

.class-photo-card img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #000;
}

.class-photo-card figcaption {
  margin: 8px 0 0;
  color: #000;
  font-size: 14px;
  line-height: 1.25;
}

/* High contrast accessibility mode */
body.hc-bw .class-photo-card {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.hc-bw .class-photo-card figcaption {
  color: #fff !important;
}

/* Tablet/mobile: 2 columns */
@media (max-width: 767px) {
  .class-photo-card {
    flex: 0 0 calc(50% - 6px);
    max-width: calc(50% - 6px);
    min-height: 0;
  }
}

/* Mobile: 2 columns / col-6 */
@media (max-width: 767px) {
  .class-photo-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
  }

  .class-photo-card {
    flex: 0 0 calc(50% - 5px);
    max-width: calc(50% - 5px);
    width: calc(50% - 5px);
    min-height: 0;
  }
}

.class-lineage-list {
  margin: 12px 0 18px 0 !important;
  padding: 0 !important;
  list-style-position: inside;
  background: #f7f7f7;
  border: 1px solid #999;
  border-radius: 6px;
}

.class-lineage-list li {
  margin: 0 !important;
  padding: 8px 12px;
  border-bottom: 1px solid #ddd;
}

.class-lineage-list li:last-child {
  border-bottom: 0;
}

.class-media-row {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 16px 0 18px;
}

.class-media-copy,
.class-media-image {
  display: table-cell;
  vertical-align: top;
}

.class-media-copy {
  padding-right: 16px;
}

.class-media-image {
  width: 42%;
}

.class-media-image img,
.class-feature-image img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #000;
}

.class-feature-image {
  margin: 18px 0 20px;
  text-align: center;
}

.class-feature-image img {
  max-width: 100%;
}

.class-feature-image figcaption {
  margin-top: 8px;
  color: #333;
  font-size: 14px;
  line-height: 1.35;
}

body.hc-bw .class-photo-card,
body.hc-bw .class-lineage-list,
body.hc-bw .class-lineage-list li {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.hc-bw .class-photo-card figcaption,
body.hc-bw .class-feature-image figcaption {
  color: #fff !important;
}

@media (max-width: 767px) {
  .class-photo-grid {
    justify-content: center;
  }

  .class-photo-card {
    flex: 0 0 46%;
    width: 46%;
    min-height: 0;
  }

  .class-media-row,
  .class-media-copy,
  .class-media-image {
    display: block;
    width: 100%;
  }

  .class-media-copy {
    padding-right: 0;
  }

  .class-media-image {
    margin-top: 12px;
  }
}

@media (max-width: 480px) {
  .class-photo-card {
    flex-basis: 100%;
    width: 100%;
  }
}

/* High contrast readability fix.
   Keeps existing layout and heading treatment, but forces normal body text
   inside content areas to remain readable when the black/white mode is active. */
body.hc-bw .page-content,
body.hc-bw .post-content,
body.hc-bw .sidebar-body,
body.hc-bw .post-card-body,
body.hc-bw .news-item,
body.hc-bw .news-meta,
body.hc-bw .class-section,
body.hc-bw .class-contact-card,
body.hc-bw .class-schedule-card,
body.hc-bw .class-media-copy,
body.hc-bw .class-lineage-list,
body.hc-bw .class-photo-card {
  color: #fff !important;
}

body.hc-bw .page-content p,
body.hc-bw .page-content li,
body.hc-bw .page-content td,
body.hc-bw .page-content blockquote,
body.hc-bw .page-content em,
body.hc-bw .page-content strong,
body.hc-bw .post-content p,
body.hc-bw .post-content li,
body.hc-bw .post-content td,
body.hc-bw .post-content blockquote,
body.hc-bw .post-content em,
body.hc-bw .post-content strong,
body.hc-bw .sidebar-body p,
body.hc-bw .sidebar-body li,
body.hc-bw .sidebar-body h3,
body.hc-bw .post-card-body p,
body.hc-bw .news-item p,
body.hc-bw .news-item h3,
body.hc-bw .class-contact-card h4,
body.hc-bw .class-contact-card p,
body.hc-bw .class-schedule-card h4,
body.hc-bw .class-schedule-card p,
body.hc-bw .class-section p,
body.hc-bw .class-section li,
body.hc-bw .class-section figcaption,
body.hc-bw .class-media-copy p,
body.hc-bw .class-lineage-list li,
body.hc-bw .class-photo-card figcaption {
  color: #fff !important;
}

body.hc-bw .page-content > h1,
body.hc-bw .page-content > h2,
body.hc-bw .page-content > h3,
body.hc-bw .page-content > h4,
body.hc-bw .page-content > h5,
body.hc-bw .page-content > h6,
body.hc-bw .post-content > h1,
body.hc-bw .post-content > h2,
body.hc-bw .post-content > h3,
body.hc-bw .post-content > h4,
body.hc-bw .post-content > h5,
body.hc-bw .post-content > h6 {
  color: #fff !important;
}

body.hc-bw .page-content table,
body.hc-bw .post-content table,
body.hc-bw .class-lineage-list,
body.hc-bw .class-contact-card,
body.hc-bw .class-schedule-card,
body.hc-bw .class-photo-card,
body.hc-bw .class-etiquette-list li {
  background: #000 !important;
  border-color: #fff !important;
}

body.hc-bw .page-content th,
body.hc-bw .post-content th {
  background: #fff !important;
  color: #000 !important;
}

body.hc-bw .class-info-hero,
body.hc-bw .class-schedule-panel > h3,
body.hc-bw .class-section h3,
body.hc-bw .class-time,
body.hc-bw .class-map-link {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}
body.hc-bw .class-info-hero h1,
body.hc-bw .class-info-hero h2,
body.hc-bw .class-info-hero h3,
body.hc-bw .class-info-hero h4,
body.hc-bw .class-info-hero h5,
body.hc-bw .class-info-hero h6,
body.hc-bw .class-info-hero p,
body.hc-bw .class-info-hero span,
body.hc-bw .class-info-hero strong,
body.hc-bw .class-info-hero em {
  color: #000 !important;
}


/* Final high contrast override for class time badges. */
body.hc-bw #accessibility-content .class-section .class-schedule-card p.class-time,
body.hc-bw .class-section .class-schedule-card p.class-time,
body.hc-bw .class-schedule-card p.class-time,
body.hc-bw p.class-time {
  display: inline-block !important;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  color: #000 !important;
  border: 1px solid #000 !important;
  text-shadow: none !important;
  box-shadow: none !important;
}

body.hc-bw #accessibility-content .class-section .class-schedule-card p.class-time *,
body.hc-bw .class-section .class-schedule-card p.class-time *,
body.hc-bw .class-schedule-card p.class-time *,
body.hc-bw p.class-time * {
  color: #000 !important;
}


/* High contrast modal text-only fix. */
body.hc-bw #accessibilityModal .modal-title,
body.hc-bw #accessibilityModal #accessibilityModalLabel,
body.hc-bw #accessibilityModal .accessibility-statement-box p,
body.hc-bw #accessibilityModal .form-group > label,
body.hc-bw #accessibilityModal .form-group > label strong,
body.hc-bw #accessibilityModal .audio-reader-control > label,
body.hc-bw #accessibilityModal .audio-reader-control > label strong,
body.hc-bw #accessibilityModal .accessibility-help-text {
  color: #000 !important;
}

body.hc-bw #accessibilityModal .accessibility-statement-box a,
body.hc-bw #accessibilityModal .modal-body a {
  color: #000 !important;
  text-decoration: underline !important;
}

body.hc-bw #accessibilityModal .close,
body.hc-bw #accessibilityModal .close span {
  color: #000 !important;
  opacity: 1 !important;
}