.xo-event-calendar {
  font-family: "Helvetica Neue", Helvetica, "Hiragino Kaku Gothic ProN", Meiryo, "MS PGothic", sans-serif;
  position: relative;
  overflow: auto; }
  .xo-event-calendar th, .xo-event-calendar td {
    padding: 0 !important; }
  .xo-event-calendar .calendar:nth-child(n + 2) .month-prev,
  .xo-event-calendar .calendar:nth-child(n + 2) .month-next {
    visibility: hidden; }
  .xo-event-calendar table {
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    margin: 0;
    padding: 0;
    width: 100%;
    background-color: transparent;
    color: #333; }
    .xo-event-calendar table caption, .xo-event-calendar table tbody, .xo-event-calendar table tfoot, .xo-event-calendar table thead, .xo-event-calendar table tr, .xo-event-calendar table th, .xo-event-calendar table td {
      margin: 0;
      padding: 0;
      border: 0;
      outline: 0;
      vertical-align: baseline;
      background: transparent;
      opacity: 1; }
    .xo-event-calendar table table tr {
      display: table-row; }
    .xo-event-calendar table table td,
    .xo-event-calendar table table th {
      display: table-cell;
      padding: 0; }
  .xo-event-calendar table.xo-month {
    margin: 0 0 8px 0;
    padding: 0;
    border: 1px solid #ccc;
    border-width: 1px 0 1px 1px; }
    .xo-event-calendar table.xo-month th,
    .xo-event-calendar table.xo-month td {
      padding: 0;
      border: 1px solid #ccc;
      background-color: #fff; }
    .xo-event-calendar table.xo-month caption {
      caption-side: top; }
    .xo-event-calendar table.xo-month .month-header {
      display: flex;
      flex-flow: wrap;
      justify-content: center;
      margin: 4px 0; }
    .xo-event-calendar table.xo-month .month-header > span {
      flex-grow: 1;
      text-align: center; }
    .xo-event-calendar table.xo-month button {
      margin: 0;
      padding: 0;
      color: #333;
      background-color: transparent;
      border: 0;
      box-shadow: none;
      text-shadow: none;
      cursor: pointer;
      overflow: hidden;
      width: 38px; }
    .xo-event-calendar table.xo-month button[disabled] {
      opacity: 0.3;
      cursor: default; }
    .xo-event-calendar table.xo-month button > span {
      text-align: center;
      vertical-align: middle; }
    .xo-event-calendar table.xo-month button span.nav-prev {
      display: inline-block;
      font-size: 0;
      border-left: 2px solid #333;
      border-bottom: 2px solid #333;
      transform: rotate(45deg);
      width: 13px;
      height: 13px; }
    .xo-event-calendar table.xo-month button span.nav-next {
      display: inline-block;
      font-size: 0;
      border-top: 2px solid #333;
      border-right: 2px solid #333;
      transform: rotate(45deg);
      width: 13px;
      height: 13px; }
    .xo-event-calendar table.xo-month button:hover span.nav-prev,
    .xo-event-calendar table.xo-month button:hover span.nav-next {
      border-width: 3px; }
    .xo-event-calendar table.xo-month > thead th {
      border-width: 0 1px 0 0;
      padding: 1px 0;
      text-align: center;
      font-size: .9em;
      font-weight: bold; }
    .xo-event-calendar table.xo-month > thead th {
      color: #333; }
    .xo-event-calendar table.xo-month > thead th.sunday {
      color: #d00; }
    .xo-event-calendar table.xo-month > thead th.saturday {
      color: #00d; }
    .xo-event-calendar table.xo-month .month-week {
      position: relative;
      padding: 0;
      border: 0;
      width: 100%;
      overflow: hidden; }
    .xo-event-calendar table.xo-month .month-week table {
      border: 0;
      margin: 0;
      padding: 0; }
    .xo-event-calendar table.xo-month .month-dayname {
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      border-width: 1px 0 0 1px; }
    .xo-event-calendar table.xo-month .month-dayname td {
      border-width: 1px 1px 0 0;
      padding: 0; }
    .xo-event-calendar table.xo-month .month-dayname td div {
      height: 1000px;
      padding: 4px;
      border-width: 1px 1px 0 0;
      text-align: right;
      font-size: 100%;
      line-height: 1.2em; }
    .xo-event-calendar table.xo-month .month-dayname td div.other-month {
      opacity: 0.6; }
    .xo-event-calendar table.xo-month .month-dayname td div.today {
      color: #00d;
      font-weight: bold; }
    .xo-event-calendar table.xo-month .month-dayname-space {
      position: relative;
      top: 0;
      height: 1.5em; }
    .xo-event-calendar table.xo-month .month-event {
      position: relative;
      top: 0;
      background-color: transparent; }
    .xo-event-calendar table.xo-month .month-event td {
      padding: 0 1px 2px 1px;
      border-width: 0 1px 0 0;
      background-color: transparent; }
    .xo-event-calendar table.xo-month .month-event-space {
      height: 1.5em;
      background-color: transparent; }
    .xo-event-calendar table.xo-month .month-event-space td {
      border-width: 0 1px 0 0; }
    .xo-event-calendar table.xo-month .month-event tr,
    .xo-event-calendar table.xo-month .month-event-space tr {
      background-color: transparent; }
    .xo-event-calendar table.xo-month .month-event-title {
      margin: 1px;
      padding: 0 4px;
      display: block;
      color: #666;
      text-align: left;
      font-size: 0.8em;
      background-color: #ccc;
      border-radius: 3px;
      white-space: nowrap;
      overflow: hidden; }
  .xo-event-calendar p.holiday-title {
    margin: 0;
    padding: 2px 0;
    font-size: 90%;
    vertical-align: middle; }
  .xo-event-calendar p.holiday-title span {
    margin: 0 6px 0 0;
    padding: 0 0 0 18px;
    border: 1px solid #ccc; }
  .xo-event-calendar .loading-animation {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -20px 0 0 -20px; }
  @media (min-width: 600px) {
    .xo-event-calendar .calendars.columns-2 {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      column-gap: 15px;
      row-gap: 5px; }
      .xo-event-calendar .calendars.columns-2 .month-prev,
      .xo-event-calendar .calendars.columns-2 .month-next {
        visibility: hidden; }
      .xo-event-calendar .calendars.columns-2 .calendar:first-child .month-prev {
        visibility: visible; }
      .xo-event-calendar .calendars.columns-2 .calendar:nth-child(2) .month-next {
        visibility: visible; }
    .xo-event-calendar .calendars.columns-3 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      column-gap: 15px;
      row-gap: 5px; }
      .xo-event-calendar .calendars.columns-3 .month-prev,
      .xo-event-calendar .calendars.columns-3 .month-next {
        visibility: hidden; }
      .xo-event-calendar .calendars.columns-3 .calendar:first-child .month-prev {
        visibility: visible; }
      .xo-event-calendar .calendars.columns-3 .calendar:nth-child(3) .month-next {
        visibility: visible; }
    .xo-event-calendar .calendars.columns-4 {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      column-gap: 15px;
      row-gap: 5px; }
      .xo-event-calendar .calendars.columns-4 .month-prev,
      .xo-event-calendar .calendars.columns-4 .month-next {
        visibility: hidden; }
      .xo-event-calendar .calendars.columns-4 .calendar:first-child .month-prev {
        visibility: visible; }
      .xo-event-calendar .calendars.columns-4 .calendar:nth-child(4) .month-next {
        visibility: visible; } }
  .xo-event-calendar.xo-calendar-loading .xo-months {
    opacity: 0.5; }
  .xo-event-calendar.xo-calendar-loading .loading-animation {
    width: 40px;
    height: 40px;
    border: 5px rgba(0, 0, 0, 0.2) solid;
    border-top: 5px #4285f4 solid;
    border-radius: 50%;
    -webkit-animation: loadingCircRot .8s infinite linear;
    animation: loadingCircRot .8s infinite linear; }
@-webkit-keyframes loadingCircRot {
  from {
    -webkit-transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(359deg); } }
@keyframes loadingCircRot {
  from {
    transform: rotate(0deg); }
  to {
    transform: rotate(359deg); } }
.xo-event-calendar.is-style-legacy table.xo-month .month-header > span {
  font-size: 120%;
  line-height: 28px; }
.xo-event-calendar.is-style-regular table.xo-month button:not(:hover):not(:active):not(.has-background) {
  color: #333;
  background-color: transparent; }
.xo-event-calendar.is-style-regular table.xo-month button > span {
  text-align: center;
  vertical-align: middle; }
.xo-event-calendar.is-style-regular table.xo-month button > span:not(.dashicons) {
  font-size: 2em;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden; }
.xo-event-calendar.is-style-regular table.xo-month .month-prev,
.xo-event-calendar.is-style-regular table.xo-month .month-next {
  width: 2em;
  height: 2em; }
.xo-event-calendar.is-style-regular table.xo-month .month-header {
  padding: .2em 0;
  display: flex;
  justify-content: center;
  align-items: center; }
  .xo-event-calendar.is-style-regular table.xo-month .month-header .calendar-caption {
    flex-grow: 1; }
.xo-event-calendar.is-style-regular table.xo-month .month-header > span {
  font-size: 1.1em; }
.xo-event-calendar.is-style-regular table.xo-month > thead th {
  font-size: .8em;
  background: #fafafa; }
.xo-event-calendar.is-style-regular table.xo-month .month-dayname td div {
  padding: 0.2em;
  font-size: 1em; }
.xo-event-calendar.is-style-regular table.xo-month .month-dayname td div.today {
  color: #339;
  font-weight: bold; }
.xo-event-calendar.is-style-regular .holiday-titles {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .25em 1em; }
.xo-event-calendar.is-style-regular p.holiday-title {
  margin: 0 0 .5em 0;
  font-size: 0.875em; }
.xo-event-calendar.is-style-regular p.holiday-title span {
  margin: 0 .25em 0 0;
  padding: 0 0 0 1.25em; }
