@font-face {
  src: url("/fonts/PTSerif-Bold.ttf");
  font-family: 'Heading';
  font-weight: bold; }

@font-face {
  src: url("/fonts/PTSerif-Regular.ttf");
  font-family: 'Heading'; }

@font-face {
  src: url("/fonts/WorkSans-Regular.ttf");
  font-family: 'Content'; }

@font-face {
  src: url("/fonts/WorkSans-Medium.ttf");
  font-family: 'Content';
  font-weight: 500; }

@font-face {
  src: url("/fonts/WorkSans-SemiBold.ttf");
  font-family: 'Content';
  font-weight: 600; }

body {
  line-height: 110%;
  font-family: 'Content', sans-serif;
  line-height: 1.3;
  font-size: 16px; }

h1, h2, h3, h4, h5 {
  font-family: 'Heading', serif;
  line-height: 1.1;
  color: #0F3457; }

h1 {
  font-size: 48px; }

h2 {
  font-size: 32px;
  margin-bottom: 18px; }

h3 {
  font-size: 25px; }

h4 {
  font-size: 20px; }

h5 {
  font-size: 16px; }

.heading-subcopy {
  font-size: 25px; }

.section-label, .category-label {
  text-transform: uppercase;
  color: #F2880B;
  font-size: 16px;
  font-family: 'Content', sans-serif; }

.section-label {
  font-weight: 600; }

.category-label {
  font-weight: 500; }

button {
  font-family: 'Content';
  font-size: 16px;
  background: none;
  border: none;
  cursor: pointer; }

strong {
  font-weight: 500; }

@font-face {
  src: url("/fonts/PTSerif-Bold.ttf");
  font-family: 'Heading';
  font-weight: bold; }

@font-face {
  src: url("/fonts/PTSerif-Regular.ttf");
  font-family: 'Heading'; }

@font-face {
  src: url("/fonts/WorkSans-Regular.ttf");
  font-family: 'Content'; }

@font-face {
  src: url("/fonts/WorkSans-Medium.ttf");
  font-family: 'Content';
  font-weight: 500; }

@font-face {
  src: url("/fonts/WorkSans-SemiBold.ttf");
  font-family: 'Content';
  font-weight: 600; }

body {
  line-height: 110%;
  font-family: 'Content', sans-serif;
  line-height: 1.3;
  font-size: 16px; }

h1, h2, h3, h4, h5 {
  font-family: 'Heading', serif;
  line-height: 1.1;
  color: #0F3457; }

h1 {
  font-size: 48px; }

h2 {
  font-size: 32px;
  margin-bottom: 18px; }

h3 {
  font-size: 25px; }

h4 {
  font-size: 20px; }

h5 {
  font-size: 16px; }

.heading-subcopy {
  font-size: 25px; }

.section-label, .category-label {
  text-transform: uppercase;
  color: #F2880B;
  font-size: 16px;
  font-family: 'Content', sans-serif; }

.section-label {
  font-weight: 600; }

.category-label {
  font-weight: 500; }

button {
  font-family: 'Content';
  font-size: 16px;
  background: none;
  border: none;
  cursor: pointer; }

strong {
  font-weight: 500; }

.col-container {
  display: flex; }

.col-4 {
  box-sizing: border-box;
  margin-right: 24px;
  width: 195px; }
  .col-4:last-child {
    padding-right: 0; }

.home h3 {
  font-size: 25px;
  margin: 12px 0; }

.notice {
  padding-top: 24px; }
  .notice label {
    color: #DE180B;
    text-transform: uppercase;
    font-weight: bold; }
  .notice h2 {
    font-size: 32px;
    margin-top: 16px;
    margin-bottom: 24px; }
  .notice .date {
    color: #9A948E; }

.home-music-post {
  display: flex;
  justify-content: space-between; }
  .home-music-post h3 {
    margin: 0;
    margin-bottom: 16px;
    font-size: 40px; }

.home-music-post_text {
  width: 341px; }
  .home-music-post_text p {
    margin-bottom: 0; }

.home-music-post_image {
  width: 487px;
  height: 317px;
  margin-bottom: 25px;
  border: 1px solid #EEEEEE;
  border-radius: 4px;
  background-size: cover;
  background-position: center; }

img.home-music-post_image {
  display: none; }

.home-latest-podcasts a, .home-music-post {
  text-decoration: none; }
  .home-latest-podcasts a:hover h3, .home-music-post:hover h3 {
    text-decoration: underline; }

.home-latest-podcasts_image {
  width: 195px;
  height: 195px;
  background-size: cover;
  background-position: center; }

.how-do-i-listen a {
  display: block;
  margin-bottom: 10px; }

.k103-news h3 {
  font-size: 32px;
  margin: 16px 0; }

.collaborators {
  display: flex;
  align-items: center;
  margin-bottom: 81px; }
  .collaborators img {
    margin-left: 48px;
    margin-top: 48px; }

.music-detail {
  padding-bottom: 183px; }
  .music-detail img {
    width: 100%;
    height: auto; }
  .music-detail h1, .music-detail .category-label {
    margin-top: 24px;
    margin-bottom: 16px; }
  .music-detail h1, .music-detail .music-detail-body {
    max-width: 633px; }
  .music-detail h2 {
    font-size: 25px;
    margin-top: 64px; }
  .music-detail table {
    width: 100%;
    text-align: left;
    border-collapse: collapse; }
  .music-detail th {
    font-weight: 500; }
  .music-detail td, .music-detail th {
    padding: 8px; }
  .music-detail td:first-child {
    width: 130px; }
  .music-detail tr:nth-child(odd) {
    background: #F5F5EA; }
  .music-detail thead tr:first-child {
    background: none; }

.program-detail {
  padding-bottom: 80px; }
  .program-detail .section-label {
    display: block;
    margin-top: 24px;
    margin-bottom: 16px; }
  .program-detail .program-img {
    width: 852px;
    height: 160px;
    background-size: cover;
    background-position: center; }
  .program-detail .program-description {
    width: 559px; }
  .program-detail .program-info {
    display: flex;
    margin: 24px 0; }
  .program-detail .program-info > div {
    padding-right: 48px; }
  .program-detail h1 {
    margin: 24px 0; }
  .program-detail h2.section-label {
    margin-bottom: 24px; }
  .program-detail .program-post-list {
    overflow: hidden; }
  .program-detail .program-post {
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    margin: 24px 0; }
    .program-detail .program-post .date {
      color: #9A948E;
      margin-top: 8px; }
    .program-detail .program-post .show-more button {
      width: 93px; }
    .program-detail .program-post .podcast-listen {
      min-width: 120px;
      padding-right: 20px; }
    .program-detail .program-post .podcast-listen-mobile {
      display: none; }
    .program-detail .program-post h3 {
      font-size: 20px;
      margin: 0; }
    .program-detail .program-post > div {
      margin-right: 24px; }
  .program-detail .program-post-img {
    width: 64px;
    height: 64px;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
    margin-right: 24px; }
  .program-detail .program-post-body {
    flex-grow: 1; }
  .program-detail .podcast-player {
    padding-right: 10px; }
  .program-detail .btn-show-more:hover, .program-detail .btn-show-less:hover {
    color: #BE688C; }

.webradio-program {
  display: grid;
  grid-template-columns: 80px auto;
  padding: 16px;
  grid-gap: 16px;
  text-decoration: none; }

.webradio-program img {
  height: 80px;
  object-fit: cover; }

.webradio-program.next:nth-child(odd) {
  background-color: #F5F5EA; }

.webradio-program h3, .webradio-program p {
  margin: 0; }

.webradio-program:hover h3 {
  text-decoration: underline; }

.not-playing:hover h3 {
  text-decoration: none; }

.next-program-label {
  text-transform: uppercase;
  font-weight: 500;
  margin-top: 32px; }

.live {
  background-color: #E4F5FD; }

#volume {
  display: inline-block; }

#webradio-controls {
  background: white;
  width: 100%;
  position: fixed;
  left: 0;
  bottom: 0;
  -webkit-box-shadow: 0px -1px 9px -6px #000000;
  box-shadow: 0px -1px 9px -6px #000000;
  height: 32px;
  padding: 16px; }

@keyframes rotation {
  from {
    transform: rotate(0deg); }
  to {
    transform: rotate(359deg); } }

#loading img {
  animation: rotation 2s infinite linear; }

#volume-input {
  height: 16px;
  background: #ddd; }

.audio-controls-inner {
  display: flex;
  justify-content: center;
  max-width: 852px;
  height: 32px;
  margin: auto;
  text-align: center; }

.volume {
  display: block;
  margin-left: 10px;
  padding-top: 5px; }

.volume label {
  font-weight: bold;
  text-transform: uppercase;
  float: left;
  height: 32px;
  margin-right: 8px; }

.program-archive {
  padding-bottom: 66px; }
  .program-archive h1 {
    margin-top: 24px;
    margin-bottom: 24px; }
  .program-archive .page-description {
    width: 560px; }
  .program-archive h2 {
    font-size: 32px;
    margin-top: 48px;
    margin-bottom: 32px; }
  .program-archive .program-list {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-top: 48px;
    width: 876px; }
  .program-archive .program {
    display: flex;
    width: 268px;
    height: 104px;
    box-sizing: border-box;
    margin-right: 24px;
    margin-bottom: 24px;
    border: 1px solid #CCC8C4;
    border-radius: 8px;
    text-decoration: none; }
    .program-archive .program:hover {
      box-shadow: -6px 0px 8px rgba(0, 0, 0, 0.1), 0px 6px 8px rgba(0, 0, 0, 0.1), 6px 0px 8px rgba(0, 0, 0, 0.15); }
    .program-archive .program label {
      display: block;
      margin-top: 8px; }
    .program-archive .program h3 {
      font-size: 20px;
      margin: 0;
      margin-top: 8px; }
  .program-archive .program-img {
    width: 80px;
    height: 80px;
    margin-top: 12px;
    margin-left: 12px;
    margin-right: 16px;
    background-size: cover;
    background-position: center; }
  .program-archive .program-category-color {
    height: 8px; }

html, body {
  height: 100%; }

body {
  background: #FFFDF8;
  margin: 0;
  padding: 0; }

/* makes footer sticky */
.non-footer {
  min-height: 100%;
  margin-bottom: -213px; }

.footer-pusher {
  height: 213px; }

@media only screen and (min-width: 868px) {
  /* only shows if mobile */
  .mobile {
    display: none; } }

hr {
  margin: 24px 0; }

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

a {
  color: #151311; }

h2.category-label {
  margin-top: 24px;
  margin-bottom: 16px; }

body {
  background-image: url("/svg/header_bg");
  background-repeat: no-repeat;
  background-position-x: center; }

header, main, .web-radio-bar_inner {
  max-width: 852px;
  margin: auto; }

header {
  height: 88px; }

header .logo {
  box-sizing: border-box;
  padding-top: 18px;
  padding-bottom: 18px; }

header nav {
  float: right;
  margin-top: 36px; }

header nav a {
  color: black;
  text-decoration: none;
  margin-left: 20px;
  font-size: 20px; }
  header nav a:hover {
    text-decoration: underline; }

.web-radio-bar {
  background: #E4F5FD; }

.web-radio-link {
  background: #F4D7E3;
  border: 1px solid #BE688C;
  padding: 8px 16px;
  border-radius: 8px;
  color: #151311;
  text-decoration: none;
  float: right;
  margin-top: 15px; }

.web-radio-now-playing {
  display: inline-block;
  padding-top: 24px;
  padding-bottom: 23px; }

.send-radio-with-us {
  font-size: 25px;
  margin-bottom: 32px; }
  .send-radio-with-us a {
    color: #151311; }

.title {
  margin-top: 24px;
  margin-bottom: 16px; }

hr {
  border: none;
  border-bottom: 1px dashed #554D46; }

footer {
  background: #C6CFAB;
  padding-top: 32px;
  padding-bottom: 48px; }
  footer h2 {
    font-size: 20px;
    color: #151311; }
  footer section:last-child {
    text-align: right; }

.footer-inner {
  display: grid;
  grid-template-columns: 47% 33% 20%;
  width: 852px;
  margin: auto; }

figure {
  width: 633px;
  margin: 32px 0; }
  figure img {
    display: block; }

figcaption {
  font-size: 13px;
  padding: 16px;
  padding-bottom: 0; }

.img {
  background-size: cover;
  background-position: center; }

.social-media-links {
  display: grid;
  grid-template-columns: repeat(5, auto); }

.social-media-links a {
  text-decoration: none;
  margin-right: 16px; }

/* buttons */
.btn.pink {
  color: #BE688C; }

.btn.pink.active, .btn.pink:hover {
  color: #fff;
  border-color: #BE688C;
  background-color: #BE688C; }

.btn.teal {
  color: #15B9A5; }

.btn.teal.active, .btn.teal:hover {
  color: #fff;
  border-color: #15B9A5;
  background-color: #15B9A5; }

.btn.green {
  color: #7A894D; }

.btn.green.active, .btn.green:hover {
  color: #fff;
  border-color: #7A894D;
  background-color: #7A894D; }

.btn.yellow {
  color: #DEA41D; }

.btn.yellow.active, .btn.yellow:hover {
  color: #fff;
  border-color: #DEA41D;
  background-color: #DEA41D; }

.btn.blue {
  color: #0F3457; }

.btn.blue.active, .btn.blue:hover {
  color: #fff;
  border-color: #0F3457;
  background-color: #0F3457; }

/* tables */
table {
  width: 100%;
  border-collapse: collapse; }

th {
  font-weight: 500;
  text-align: left; }

th, td {
  padding: 8px; }

table.alternate-color tr:nth-child(odd) {
  background: #F5F5EA; }

table.alternate-color tr:nth-child(even) {
  background: #fffdf8; }

/* music posts */
.music-post {
  display: grid;
  grid-template-columns: auto 414px;
  text-decoration: none; }

.music-post h2 {
  font-size: 25px;
  margin: 0; }

.music-post:hover h2 {
  text-decoration: underline; }

.music-post img {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 233px;
  margin-bottom: 32px; }

/* programs */
.filters {
  margin-bottom: 32px; }

.filters .btn {
  margin-right: 4px; }

.programs {
  display: grid;
  grid-template-columns: repeat(4, 195px);
  gap: 16px; }

.program {
  box-sizing: border-box;
  border: 1px solid #CCC8C4;
  border-radius: 8px;
  text-decoration: none; }

.program img {
  width: 193px;
  height: 193px;
  object-fit: cover; }

.program h3, .program p {
  margin: 0; }

.program h3 {
  font-size: 24px;
  margin-top: 8px;
  margin-bottom: 16px; }

.program-body {
  padding: 9px;
  word-break: break-word; }

.program:hover {
  box-shadow: -6px 0px 8px rgba(0, 0, 0, 0.1), 0px 6px 8px rgba(0, 0, 0, 0.1), 6px 0px 8px rgba(0, 0, 0, 0.15); }

.btn {
  display: inline-block;
  padding: 4px 16px;
  border-radius: 18.5px;
  text-decoration: none;
  border-style: solid;
  border-width: 1px; }

.slab {
  height: 8px; }

/* schedule */
.schedule td {
  padding: 12px 8px; }

.schedule .time {
  width: 140px;
  font-variant-numeric: tabular-nums; }

.schedule .category {
  width: 220px;
  font-variant-numeric: tabular-nums; }

/* archive */
.archive {
  display: grid;
  grid-template-columns: repeat(3, 268px);
  grid-gap: 8px; }

#mobile-nav-button {
  display: none; }

@media only screen and (max-width: 868px) {
  body {
    background-position-x: -60px;
    background-position-y: 60px; }
  h1 {
    font-size: 32px; }
  h2, h3 {
    font-size: 28px; }
  header, main, .web-radio-bar_inner, footer {
    max-width: none;
    padding-left: 16px;
    padding-right: 16px; }
  header {
    background: #fffdf8;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    height: 64px;
    width: 100%; }
  header .logo {
    padding-top: 16px;
    padding-bottom: 16px; }
  header .mobile-bg {
    background: #fffdf8;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 64px;
    z-index: -1; }
  #mobile-nav-button {
    display: block;
    margin-top: 18px; }
  #main-nav {
    background: #faf8f5;
    box-sizing: border-box;
    position: fixed;
    top: -100%;
    margin-top: 0;
    left: 0;
    width: 100%;
    padding: 32px 16px;
    padding-bottom: 0;
    border: 1px solid #d0d5dc;
    height: 100%;
    transition: top 0.3s;
    z-index: -999; }
    #main-nav.show {
      top: 0;
      margin-top: 64px; }
    #main-nav a {
      display: block;
      margin-bottom: 24px;
      margin-left: 0;
      width: 100%;
      font-size: 23px; }
  .web-radio-bar {
    margin-top: 64px;
    padding-bottom: 16px; }
  .web-radio-now-playing {
    display: block;
    padding-top: 16px;
    padding-bottom: 12px; }
  .web-radio-link {
    float: none;
    display: block;
    margin: 0; }
  h1.title {
    font-size: 28px;
    margin-top: 16px;
    margin-bottom: 12px; }
  footer {
    padding-bottom: 0; }
  .footer-inner {
    width: 100%;
    flex-direction: column;
    align-items: normal; }
    .footer-inner section, .footer-inner section:first-child {
      width: 100%;
      margin: 0;
      margin-bottom: 48px; }
    .footer-inner p {
      margin-top: 0; }
  footer section:last-child {
    text-align: left; }
  .home .collaborators {
    display: block;
    padding-top: 32px; }
    .home .collaborators img {
      display: block;
      margin: auto;
      margin-bottom: 48px; }
  .home .send-radio-with-us {
    font-size: 16px;
    margin-bottom: 16px; }
  .home .home-music-post {
    display: block; }
    .home .home-music-post h3 {
      font-size: 28px; }
  .home div.home-music-post_image {
    display: none; }
  .home img.home-music-post_image {
    display: block;
    width: 100%;
    height: auto; }
  .home .col-container {
    flex-wrap: wrap; }
  .home .col-4 {
    width: 100%; }
  .home .how-do-i-listen .col-4 {
    margin-bottom: 24px; }
  .home .how-do-i-listen h3 {
    margin-top: 0; }
  .home .home-latest-podcasts.col-container a {
    box-sizing: border-box;
    width: 50%; }
    .home .home-latest-podcasts.col-container a:nth-child(odd) {
      padding-right: 10px; }
    .home .home-latest-podcasts.col-container a:nth-child(even) {
      padding-left: 10px; }
  .music .music-info {
    flex-direction: column; }
    .music .music-info > div {
      margin-bottom: 16px; }
  .music .music-btn-rss {
    width: 100%;
    margin-bottom: 16px; }
  .music .music-post {
    flex-direction: column;
    margin-bottom: 48px; }
  .music .music-post-text, .music .music-post-image {
    width: 100%; }
  .music .music-post-image {
    order: -1;
    margin: 0;
    height: 51vw; }
  .music-detail img {
    height: 51vw;
    object-fit: cover; }
  .music-detail h1 {
    font-size: 23px;
    margin-top: 16px; }
  .music-detail h2 {
    margin-top: 24px;
    font-size: 19px; }
  .programs .page-description {
    width: 100%; }
  .programs h2 {
    margin-bottom: 16px;
    margin-top: 32px; }
  .programs .filters {
    margin-bottom: 32px; }
  .programs .filters label {
    display: block; }
  .programs .btn {
    margin: 8px 16px;
    margin-left: 0; }
  .programs .btn:last-child {
    margin-right: 0; }
  .programs .program-list {
    width: 100%; }
  .programs .program {
    width: calc(50% - 10px);
    margin: 0;
    margin-bottom: 32px; }
    .programs .program .program-img {
      width: 100%;
      height: auto;
      object-fit: cover; }
  .programs .program:nth-child(odd) {
    margin-right: 20px; }
  .programs .archive-info h2 {
    margin-top: 32px;
    font-size: 23px; }
  .program-archive .page-description {
    width: 100%; }
  .program-archive .program-list {
    width: 100%; }
  .program-archive .program {
    width: 100%;
    margin-right: 0;
    height: 88px;
    margin-bottom: 16px; }
  .program-archive .program-img {
    width: 64px;
    height: 64px; }
  .program-detail .section-label {
    margin-top: 24px;
    margin-bottom: 32px; }
  .program-detail h1 {
    margin-top: 32px;
    margin-bottom: 32px; }
  .program-detail .program-description {
    width: 100%;
    margin-top: 32px;
    margin-bottom: 32px; }
  .program-detail .program-img {
    width: 100%;
    height: auto; }
  .program-detail .program-info {
    flex-direction: column; }
    .program-detail .program-info > div {
      margin-bottom: 16px; }
  .program-detail h2.section-label {
    margin-top: 16px;
    margin-bottom: 16px; }
  .program-detail .program-post {
    width: 100%; }
    .program-detail .program-post .podcast-listen {
      display: none; }
    .program-detail .program-post .podcast-listen-mobile {
      display: block; }
    .program-detail .program-post > div {
      margin-right: 8px; }
  .program-detail .podcast-player {
    margin-right: 16px;
    padding: 0; }
  .program-detail .program-post-img {
    display: none; }
  .program-detail .program-post-body {
    margin-right: 16px; }
  .program-detail .show-more {
    margin: 0; }
    .program-detail .show-more button {
      width: 14px !important;
      height: 8px;
      color: rgba(0, 0, 0, 0);
      background-size: contain; }
  .program-detail .btn-show-more {
    background: url(/images/ArrowDown.png) no-repeat; }
    .program-detail .btn-show-more:hover {
      color: rgba(0, 0, 0, 0); }
  .program-detail .btn-show-less {
    background: url(/images/ArrowUp.png) no-repeat; }
    .program-detail .btn-show-less:hover {
      color: rgba(0, 0, 0, 0); }
  .about, .engage {
    padding-bottom: 40px; }
    .about h1, .engage h1 {
      margin-top: 24px;
      margin-bottom: 32px; }
    .about p, .engage p {
      width: 100%; }
    .about figure, .engage figure {
      width: 100%; }
    .about figcaption, .engage figcaption {
      padding-left: 0; }
    .about h2, .engage h2 {
      font-size: 23px; }
  .webradio {
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box; }
    .webradio p, .webradio .live-label {
      font-size: 13px; }
    .webradio h2 {
      font-size: 23px; }
    .webradio h3 {
      font-size: 19px; }
  .schedule .airtime-title {
    display: none; }
  .schedule .airtime-title-mobile {
    display: block; }
  .schedule .live-column {
    display: none; }
  .schedule .live-column-mobile {
    display: block;
    text-align: left; } }
