@charset "UTF-8";

/* =======================================
	#opencampus
======================================= */
/* =======================================
	common
======================================= */
#fixed_top {
    display: none!important;
}

.entry_base .oc-main h2 {
    margin: 0;
    padding: 0;
    line-height: 1.5;
    font-size: 20px;
    letter-spacing: 0;
    background: none;
}

.entry_base .oc-main h3 {
    margin: 0;
    padding: 0;
    font-size: 18px;
    line-height: 1.5;
}

.entry_base .oc-main h3:after {
    display: none;
}

.entry_base .oc-main p {
    margin: 0; 
    line-height: 1.5; 
}

.oc-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    aspect-ratio: 1;
    background-color: #D1D1D1;
    border-radius: 50%;
    flex: none;
    transition: background-color 0.3s;
}

.oc-icon--check {
    mask-image: url(/open-campus/files/icon-check.svg);
    mask-repeat: no-repeat;
    mask-size: contain;
    width: 12px;
    aspect-ratio: 1;
    background-color: #939393;
    transition: background-color 0.3s;
}

@media (max-width: 768px) {
    .entry_base .oc-main h2 {
        font-size: 18px;
    }
}

@media (hover: hover) {
    .entry_base .oc-main a:not(.btn):hover {
        opacity: 1 !important;
    }

    .entry_base .oc-main a:hover img {
        opacity: 1 !important;
    }
}

.c-oc { background: linear-gradient(312.51deg, #98C6F9 12.5%, #C2A0FF 48.51%, #EB9DD9 84.51%); }
.c-all { background: linear-gradient(270deg, #B29E06 0%, #009362 100%) }
.c-music { background: linear-gradient(90deg, #D35DE1 0%, #F77A45 100%); }
.c-photo { background: linear-gradient(90deg, #626EEB 0%, #F3439C 100%); }
.c-movie { background: linear-gradient(270deg, #004098 0%, #1ED195 100%); }
.c-publication { background: linear-gradient(90deg, #01B8E5 0%, #00C58B 100%); }
.c-make { background: linear-gradient(90deg, #934DE2 0%, #CB9DFF 100%); }
.c-performing { background: linear-gradient(90deg, #FF655B 0%, #FF7AB5 100%); }
.c-dance { background: linear-gradient(90deg, #F3429C 0%, #AC42F3 50%, #43D2FF 100%); }
.c-briefing { background: linear-gradient(90deg, #DE2D2D 0%, #FFBF3B 100%); }


/* =======================================
	oc-filter
======================================= */
.oc-filter {
    max-width: 1056px;
    position: relative;
    margin: 102px auto 0;
    padding: 64px 32px 48px;
    border-radius: 16px;
    border: 2px solid #000000;
}

.oc-filter-tab {
    width: calc(100% - 64px);
    max-width: 824px;
    position: absolute;
    top: -31px;
    left: 50%;
    transform: translateX(-50%);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    z-index: 1;
}

.oc-filter-tab__button {
    position: relative;
    width: 100%;
    max-width: 400px;
    padding: 12px 16px;
    border-radius: 99px;
    background-color: #D9D9D9;
    color: #878787;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-align: center;
    transition: background-color 0.3s, color 0.3s;
}

/* アクティブ時 */
.oc-filter-tab__button.is-active {
    background-color: #000000;
    color: #FFFFFF;
}

.oc-filter-tab__button.is-active::after {
    content: '';
      position: absolute;
      bottom: -18px;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      border-style: solid;
      border-width: 18px 12px 0 12px;
      border-color: #000000 transparent transparent transparent;
}


.oc-filter-button {
    position: relative;
    width: 274px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 16px;
    border-radius: 99px;
    background: linear-gradient(90deg, #FF6BB2 0%, #C76EE1 50%, #878AF6 100%);
    isolation: isolate;
    transition: outline 0.3s;
	cursor:pointer;
}

.oc-filter-button::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 99px;
    background: linear-gradient(90deg, #878AF6 0%, #C76EE1 50%, #FF6BB2 100%);
    opacity: 0;
    transition: opacity 0.3s;
    z-index: -1;
}

@media (hover: hover) {
    .oc-filter-button:hover::before {
        opacity: 1;
    }

    .oc-filter-button:hover {
        outline: 2px solid #000000;
        outline-offset: -2px;
    }

    .oc-filter-tab__button:hover {
        background-color: #000000;
        color: #FFFFFF;
    }
}

.oc-filter-button p {
    font-size: 18px;
    font-weight: 600;
    color: #FFFFFF;
}

@media (max-width: 768px) {
    .oc-filter {
        margin-top: 83px;
        padding: 65px 0 64px;
        border-radius: 0;
        border: 0;
    }

    .oc-filter::before,
    .oc-filter::after {
        content: '';
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 100vw;
        height: 2px;
        background-color: #000000;
    }

    .oc-filter::before {
        bottom: 0;
    }

    .oc-filter::after {
        top: 0;
    }

    .oc-filter-tab {
        top: -23px;
        gap: 8px;
        width: 95vw;
    }

    .oc-filter-tab__button {
        padding: 12px;
        font-size: 15px;
    }

    .oc-filter-button {
        width: 100%;
        max-width: 310px;
    }

    .oc-filter-button p {
        font-size: 16px;
    }

    .oc-filter-tab__button.is-active::after {
        bottom: -10px;
        border-width: 10px 6px 0 6px;
    }
}

/* =======================================
	oc-filter--oc
======================================= */
.oc-filter--oc {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 48px;
}

.oc-filter--oc.is-hidden,
.oc-filter--cons.is-hidden {
    visibility: hidden;
    opacity: 0;
    height: 0;
}

.oc-filter-section {
    width: 100%;
    padding: 24px;
    border-radius: 12px;
    background-color: #EDEDED;
}

.oc-filter-head {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 20px;
}

.oc-filter-head::before {
    content: '';
    width: 100%;
    height: 2px;
    margin: auto;
    position: absolute;
    left: 0;
    bottom: 0;
    background-image: linear-gradient(to right, #000, #000 2px, transparent 2px, transparent 4px);
    background-size: 4px 2px;
    background-repeat: repeat-x;
}

.oc-filter-head__img {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(180deg, #EB85B6 0%, #9FA1EB 100%);
}

.oc-filter-head__title {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    font-size: 20px;
    font-weight: 600;
}

.oc-filter-head__title span {
    font-size: 13px;
    font-weight: 400;
}

@media (max-width: 768px) {
    .oc-filter-section {
        padding: 20px 16px;
        border-radius: 8px;
    }

    .oc-filter-head__title {
        flex-direction: column;
        align-items: start;
        gap: 0;
        font-size: 18px;
    }

    .oc-filter-head__title span {
        font-size: 12px;
    }
}

/* oc-filter-date */
.oc-filter-section--date {
    position: relative;
}

.oc-filter-date__list {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.oc-filter-date__button {
    position: relative;
    width: 92px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 3px;
    padding: 11px 16px;
    cursor: pointer;
    border-radius: 4px;
    transition: color 0.3s, background-image 0.3s;
    border: 2px solid transparent;
    background-color: #FFFFFF;
    color: #000000;
}

/* アクティブ時 */
.oc-filter-date__button.is-active {
    color: #FFFFFF;
    background-image: linear-gradient(#000000, #000000), linear-gradient(180deg, #EB85B6 0%, #9FA1EB 100%);
    background-origin: border-box;
    background-clip: padding-box, border-box;
}

@media (hover: hover) {
    .oc-filter-date__button:hover {
        background-image: linear-gradient(#FFFFFF, #FFFFFF), linear-gradient(180deg, #EB85B6 0%, #9FA1EB 100%);
        background-origin: border-box;
        background-clip: padding-box, border-box;
    }

    .oc-filter-date__button.is-active:hover {
        color: #FFFFFF;
        background-image: linear-gradient(#000000, #000000), linear-gradient(180deg, #EB85B6 0%, #9FA1EB 100%);
    }
}

.oc-filter-date__item{
	display:none;
}
.oc-filter-date__item.on{
	display:block;
}

.oc-filter-date__item--date {
    font-family: "Outfit", sans-serif;
    font-size: 20px;
    line-height: 1 !important;
    letter-spacing: 0.03em;
}

.oc-filter-date__item--date span {
    font-size: 30px;
}

.oc-filter-date__item--week {
    font-size: 13px;
    line-height: 1.4 !important;
    letter-spacing: 0.05em;
}

/* カスタムスクロールバー */
.oc-filter-date__scrollbar {
  display: none;
}

.oc-filter-date__scrollbar__thumb {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  height: 6px;
  background: #D0D0D0;
  border-radius: 999px;
  transition: left 0.1s;
}


@media (max-width: 768px) {
    .oc-filter-date__list {
        overflow-x: scroll;
        flex-wrap: nowrap;
        scrollbar-width: none;
        padding-bottom: 12px;
        margin-right: -16px;
    }

    .oc-filter-date__list::-webkit-scrollbar {
        display: none;
    }

    .oc-filter-date__scrollbar {
        display: block;
        position: relative;
        width: 100%;
        height: 10px;
        background: #FFFFFF;
        border-radius: 999px;
        margin-top: 12px;
        padding: 0 3px;
    }
}


/* =======================================
	oc-filter-genre
======================================= */
.oc-filter-genre__all {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 20px;
    padding: 16px;
    background-color: #FFFFFF;
    border-radius: 4px;
    color: #000000;
    transition: opacity 0.3s;
}

@media (hover: hover) {
    .oc-filter-genre__all:hover {
        opacity: 0.7;
    }
}

.oc-filter-genre__all .oc-icon {
    width: 24px;
}

.oc-filter-genre__all .oc-icon--check {
    width: 15px;
}

/* アクティブ時 */
.oc-filter-genre__all.is-active .oc-icon {
    background-color: #000000;
}

.oc-filter-genre__all.is-active .oc-icon--check {
    background-color: #FFFFFF;
}

.oc-filter-genre__button.is-active {
    border: 2px solid #000;
    box-shadow: 3px 3px 0 0 #000;
}

.oc-filter-genre__button.is-active .oc-icon {
    opacity: 1;
}

.oc-filter-genre__all p {
    font-size: 18px;
    font-weight: 500;
}

.oc-filter-genre__list {
    margin-top: 34px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(302px, 1fr));
    column-gap: 16px;
    row-gap: 22px;
}

.oc-filter-genre__button {
    position: relative;
    display: flex;
    align-items: center;
    padding: 16px 106px 16px 16px;
    border-radius: 6px;
    height: 82px;
    transition: border 0.3s, box-shadow 0.3s;
}

@media (hover: hover) {
    .oc-filter-genre__button:hover {
        border: 2px solid #000;
        box-shadow: 3px 3px 0 0 #000;
    }
}

.oc-filter-genre__button .oc-icon {
    position: absolute;
    top: -8px;
    left: -8px;
    background-color: #000000;
    opacity: 0;
    transition:  opacity 0.3s;
}

.oc-filter-genre__button .oc-icon--check {
    background-color: #ffffff;
}

.oc-filter-genre__item--txt {
    color: #FFFFFF;
    font-size: 16px;
    line-height: 1.3 !important;
    letter-spacing: 0;
}

.oc-filter-genre__item--txt:last-of-type {
    display: flex;
    align-items: center;
    gap: 7px;
}

.oc-filter-genre__item--txt span {
    padding: 2px 8px 3px 8px;
    background-color: #FFFFFF;
    border-radius: 99px;
    color: #000000;
    font-size: 12px;
    line-height: 1.5 !important;
    letter-spacing: 0.02em;
}

.oc-filter-genre__item--img {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 103px;
    border-radius: 0 0 6px 0;
}

@media (max-width: 768px) {
    .oc-filter-genre__all p {
        font-size: 16px;
    }

    .oc-filter-genre__list {
        margin-top: 28px;
        grid-template-columns: repeat(2, 1fr);
        row-gap: 16px;
    }

    .oc-filter-genre__button {
        padding: 20px 48px 20px 8px;
        border-radius: 4px;
    }

    .oc-filter-genre__button:last-of-type {
        padding-right: 25px;
    }

    .oc-filter-genre__item--txt:last-of-type {
        flex-direction: column;
        align-items: start;
        gap: 9px;
    }

    .oc-filter-genre__item--img {
        width: 58px;
        border-radius: 0 0 4px 0;
    }
}


/* =======================================
	oc-filter-event
======================================= */
.oc-filter-section.oc-filter-section--event {
    padding: 0;
    background-color: transparent;
}

.oc-filter-accordion__sammary {
    padding: 12px;
    border-radius: 12px;
    background-color: #000000;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    transition: border-radius 0.3s, opacity 0.3s;
    cursor: pointer;
}

@media (hover: hover) {
    .oc-filter-accordion__sammary:hover {
        opacity: 0.7;
    }
}

.oc-filter-evevt__title {
    color: #FFFFFF;
    font-size: 20px;
}

.oc-filter-accordion__sammary .oc-icon {
    position: relative;
    display: block;
    width: 28px;
    background-color: #FFFFFF;
}

.oc-filter-accordion__sammary .oc-icon--line {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 12px;
    height: 2px;
    background-color: #000000;
    opacity: 1;
    transform: translate(-50%,-50%);
    transition: transform 0.3s, opacity 0.3s;
}

.oc-filter-accordion__sammary .oc-icon--line:last-of-type {
    transform: translate(-50%,-50%) rotate(90deg);
}

/* オープン時 */
.oc-filter-accordion__sammary.is-open {
    border-radius: 12px 12px 0 0;
}

.oc-filter-accordion__sammary.is-open .oc-icon--line:last-of-type {
    transform: translate(-50%,-50%);
    opacity: 0;
}

.oc-filter-accordion__wrapper {
    overflow: hidden;
    height: auto;
    transition: height 0.3s ease;
}

.oc-filter-accordion__inner {
    padding: 24px 32px 32px;
    border-radius: 0 0 12px 12px;
    background-color: #EDEDED;
}

.oc-filter-evevt__content {
    margin-top: 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.oc-filter-evevt__content:first-of-type {
    position: relative;
    margin-top: 0;
    padding-bottom: 32px;
}

.oc-filter-evevt__content:first-of-type:before {
    content: '';
    width: 100%;
    height: 2px;
    margin: auto;
    position: absolute;
    left: 0;
    bottom: 0;
    background-image: linear-gradient(to right, #000, #000 2px, transparent 2px, transparent 4px);
    background-size: 4px 2px;
    background-repeat: repeat-x;
}

.oc-filter-evevt__all {
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    color: #000000;
    transition: opacity 0.3s;
}

@media (hover: hover) {
    .oc-filter-evevt__all:hover {
        opacity: 0.7;
    }
}

/* アクティブ時 */
.oc-filter-evevt__all.is-active .oc-icon {
    background-color: #000000;
}

.oc-filter-evevt__all.is-active .oc-icon--check {
    background-color: #FFFFFF;
}

.oc-filter-evevt__button.is-active {
    color: #FFFFFF;
    background-image: linear-gradient(#000000, #000000), linear-gradient(180deg, #EB85B6 0%, #9FA1EB 100%);
    background-origin: border-box;
    background-clip: padding-box, border-box;
}

.oc-filter-evevt__button.is-active .oc-icon {
    background-color: #FFFFFF;
}

.oc-filter-evevt__button.is-active .oc-icon--check {
    background-color: #000000;
}

.oc-filter-evevt__list {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.oc-filter-evevt__button {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background-color: #FFFFFF;
    border-radius: 99px;
    transition: color 0.3s, background-image 0.3s;
    border: 2px solid transparent;
    color: #000000;
}

@media (hover: hover) {
    .oc-filter-evevt__button:hover {
        background-image: linear-gradient(#FFFFFF, #FFFFFF), linear-gradient(180deg, #EB85B6 0%, #9FA1EB 100%);
        background-origin: border-box;
        background-clip: padding-box, border-box;
    }

    .oc-filter-evevt__button.is-active:hover {
        color: #FFFFFF;
        background-image: linear-gradient(#000000, #000000), linear-gradient(180deg, #EB85B6 0%, #9FA1EB 100%);
    }
}

.oc-filter-evevt__button p {
    font-size: 15px;
    text-align: left;
}

@media (max-width: 768px) {
    .oc-filter-evevt__title {
        font-size: 18px;
    }

    .oc-filter-accordion__sammary {
        border-radius: 8px;
    }

    .oc-filter-accordion__sammary.is-open {
        border-radius: 8px 8px 0 0;
    }

    .oc-filter-accordion__inner {
        padding: 24px 20px 32px;
        border-radius: 0 0 8px 8px;
    }

    .oc-filter-evevt__list {
        flex-direction: column;
        align-items: start;
    }
}

/* oc-filter--cons */
.oc-filter--cons {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 29px;
}

.oc-filter-cons__title {
    position: relative;
    font-size: 22px !important;
    isolation: isolate;
}

.oc-filter-cons__title::before {
    content: "";
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 8px;
    background: linear-gradient(270deg, #EB9DD9 0%, #CA9FF7 50%, #9AC4F9 100%);
    opacity: 0.7;
    z-index: -1;
}

.oc-filter-cons__body {
    width: 100%;
    padding: 24px;
    border-radius: 8px;
    background-color: #EDEDED;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
}

.oc-filter-cons__list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
}

.oc-filter-cons__button {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #000000;
    transition: opacity 0.3s;
}

@media (hover: hover) {
    .oc-filter-cons__button:hover {
        opacity: 0.7;
    }
}

/* アクティブ時 */
.oc-filter-cons__button.is-active .oc-icon {
    background-color: #000000;
}

.oc-filter-cons__button.is-active .oc-icon--check {
    background-color: #FFFFFF;
}

.oc-filter-cons__button p {
    font-size: 16px;
    font-weight: 500;
}

@media (max-width: 768px) {
    .oc-filter--cons {
        gap: 40px;
    }

    .oc-filter-cons__title {
        font-size: 20px !important;
    }

    .oc-filter-cons__body {
        padding: 32px 25px;
        flex-direction: column;
        gap: 24px;
    }
}



/* =======================================
	oc-card
======================================= */
.oc-card {
    margin-top: 64px;
}

.oc-card-list {
    margin: 0 auto;
    max-width: 1056px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 30px;
    row-gap: 32px;
}

.oc-card-item {
    background-color: #EDEDED;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #E3E3E3;
    transition: outline 0.3s;
}

.oc-card-item.kobetsu-off,
.oc-card-item.date-off,
.oc-card-item.cat-off,
.oc-card-item.event-off{
	display:none;
}




@media (hover: hover) {
    .oc-card-item:has(.oc-card-link:hover) {
        outline: 2px solid #000000;
        outline-offset: -1px;
    }

    .oc-card-link:hover .oc-card-item__button::before {
        opacity: 1;
    }
}

.oc-card-link {
    color: #000000 !important;
}

.oc-card-item__img img {
    width: 100%;
}

.oc-card-item__body {
    padding: 12px 16px 24px;
}

.oc-card-item__title {
    letter-spacing: 0;
}

.oc-card-item__txt {
    margin-top: 8px !important;
    font-size: 14px;
    letter-spacing: 0;
}

.oc-card-item__date {
    margin-top: 12px;
    padding: 10px 8px;
    background-color: #DBDBDB;
    display: grid;
    gap: 4px;
}

.oc-card-item__date li {
    margin-left: 20px;
    list-style: disc;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0;
}

.oc-card-item__categories {
    margin-top: 20px;
    display: grid;
    gap: 8px;
}

.oc-card-item__category {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 99px;
    background-color: #FFFFFF;
    width: fit-content;
}

.oc-card-item__category--dot {
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.oc-card-item__category--txt {
    font-size: 12px;
    letter-spacing: 0;
}

.oc-card-item__button {
    position: relative;
    margin: 20px auto 0;
    max-width: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 16px;
    border-radius: 99px;
    background: linear-gradient(90deg, #FF6BB2 0%, #C76EE1 50%, #878AF6 100%);
    isolation: isolate;
}

.oc-card-item__button::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 99px;
  background: linear-gradient(90deg, #878AF6 0%, #C76EE1 50%, #FF6BB2 100%);
  opacity: 0;
  transition: opacity 0.3s;
  z-index: -1;
}

.oc-card-item__button p {
    font-size: 15px;
    font-weight: 600;
    color: #FFFFFF;
}

@media (max-width: 1000px) {
    .oc-card-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .oc-card {
        margin-top: 72px;   
    }

    .oc-card-list {
        display: grid;
        grid-template-columns: 1fr;
    }
}



/* =======================================
	#opencampus-entry
======================================= */
/* =======================================
	common breadcrumbs
======================================= */
.oc-entry img {
    max-width: 100%;
    overflow: hidden;
    height: auto;
}

#opencampus-entry .cont_outer {
    padding: 0 0 5%;
}

.oc-entry .breadcrumbs {
    display: none !important;
}

@media (max-width: 768px) {
    #opencampus-entry .breadcrumbs{
        display: none;
    }

    .oc-entry .breadcrumbs {
        display: block !important;
        position: relative;
        margin-top: 0;
    }

    .oc-entry .breadcrumbs ul {
        margin: 16px 20px;
        text-align: left;
        height: auto;
    }

    .oc-entry .breadcrumbs li {
        color: #000000;
    }

    .oc-entry .breadcrumbs li a {
        color: #000000;
    }
}


/* =======================================
	oc-entry__head
======================================= */
.oc-entry__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 20px;
    background-image: url(/open-campus/files/title-background-pc.png);
    background-repeat: no-repeat;
    background-size: cover;
}

.oc-entry__title {
    color: #FFFFFF;
    font-size: 32px;
    line-height: 1.5;
    letter-spacing: 0.03em;
}

.oc-entry__categories {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.oc-entry__category {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 99px;
    background-color: #FFFFFF;
    width: fit-content;
}

.oc-entry__category--dot {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.oc-entry__category--txt {
    font-size: 14px;
    letter-spacing: 0;
}

@media (max-width: 768px) {
    .oc-entry__head {
        gap: 16px;
        padding: 24px 20px;
        background-image: url(/open-campus/files/title-background-sp.png);
    }

    .oc-entry__title {
        font-size: 24px;
    }

    .oc-entry__category--txt {
        font-size: 13px;
    }
}


/* =======================================
	oc-entry__main
======================================= */
.oc-entry__main {
    margin: 64px auto 0;
    width: 88%;
    max-width: 1056px;
}

.oc-entry__header {
    display: flex;
    gap: 32px;
}

.oc-entry__header > * {
    flex: 1;
}

.oc-entry__header p {
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0;
    font-weight: 400;
}

.oc-entry__content {
    margin-top: 64px;
    position: relative;
    padding: 64px 32px 32px;
    border-radius: 16px;
    border: 2px solid #000000;
}

.oc-entry__content:nth-of-type(3) {
    padding-top: 32px;
}

.oc-entry-content__title {
    position: absolute;
    top: -30px;
    left: 32px;
    padding: 16px 20px;
    border-radius: 8px;
    background-color: #000000;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.oc-entry-content__title h2 {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.05em;
    color: #FFFFFF;
}

.oc-entry-content__title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 27px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 12px 7px 0 7px;
    border-color: #000000 transparent transparent transparent;
}

@media (max-width: 768px) {
    .oc-entry__content {
        padding: 56px 20px 32px;
        border-radius: 12px;
    }

    .oc-entry__content:nth-of-type(3) {
        padding-top: 60px;
    }

    .oc-entry__content:nth-of-type(4) {
        padding-top: 92px;
    }

    .oc-entry__header {
        flex-direction: column;
        gap: 16px;
    }

    .oc-entry__header p {
        font-size: 15px;
    }

    .oc-entry-content__title {
        top: -21px;
        left: 20px;
        padding: 10px 16px;
        margin-right: 20px;
    }

    .oc-entry-content__title img {
        width: 26px;
        height: 26px;
    }

    .oc-entry-content__title h2 {
        font-size: 20px;
    }
}


/* =======================================
	oc-entry-schedule
======================================= */
.oc-entry-schedule__list {
    align-items: center;
    gap: 32px;
    padding-bottom: 16px;
    flex-wrap:wrap;

}

.oc-entry-schedule__item {
    display: flex;
    align-items: baseline;
    gap: 10px;
	margin-bottom:20px;
}

.oc-entry-schedule__item:last-child {
}

.oc-entry-schedule__date {
    font-family: "Outfit", sans-serif;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0.03em;
}

.oc-entry-schedule__day {
    font-size: 30px;
}

.oc-entry-schedule__week {
    font-size: 14px;
    padding-left: 4px;
}

.oc-entry-schedule__time {
    font-family: "Outfit", sans-serif;
    font-size: 20px;
    line-height: 1.3;
    letter-spacing: 0.03em;
    padding: 0 8px;
}

.oc-entry-schedule__sub {
    display: flex;
    align-items: center;
    gap: 10px;
}

.oc-entry-schedule__dot {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.oc-entry-schedule__txt {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0;
    font-weight: 400;
}


@media (max-width: 768px) {
    .oc-entry-schedule__list {
        flex-direction: column;
        align-items: start;
        gap: 16px;
        border-bottom: 1px solid #C2C2C2;
    }
	
	 .oc-entry-schedule__item{
    flex-wrap:wrap;
	 
	 }

    .oc-entry-schedule__item:last-child {
        padding-right: 0;
        border-bottom: 0;
    }
    
    .oc-entry-schedule__sub {
        margin-top: 16px;
    }
}


/* =======================================
	c-entry
======================================= */


.c-entry{
	padding-top:30px;
}

.c-entry > *:last-child {
    margin-bottom: 0 !important;
}

.c-entry h3 {
    margin: 32px 0 48px;
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.05em;
    padding-bottom: 12px;
}
.c-entry h3:first-child{
	margin-top:0;
}


.c-entry h3::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 24px;
    background: linear-gradient(180deg, #EB9DD9 0%, #CA9FF7 50%, #9AC4F9 100%);
}

.c-entry h3::after {
    content: '';
    width: 100%;
    height: 2px;
    margin: auto;
    position: absolute;
    left: 0;
    bottom: 0;
    background-image: linear-gradient(to right, #000, #000 2px, transparent 2px, transparent 4px);
    background-size: 4px 2px;
    background-repeat: repeat-x;
}

.c-entry h4 {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0;
}

.c-entry p {
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0;
    font-weight: 400;
}

.c-entry ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.c-entry li {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0;
    font-weight: 400;
}

.c-entry li::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: linear-gradient(312.51deg, #98C6F9 12.5%, #C2A0FF 48.51%, #EB9DD9 84.51%);
    flex: none;
}

.c-entry .cols-wide {
    display: grid;
    grid-template-columns: 430fr 530fr;
    gap: 32px;
    margin-bottom: 48px;
}

.c-entry .cols-wide .col__img img {
    width: 100%;
    border-radius: 4px;
}

.c-entry .cols-wide .col__body {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.c-entry .cols {
  display: grid!important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  margin-bottom: 48px;
}

.c-entry .cols .col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.c-entry .cols .col img {
    width: 100%;
    border-radius: 4px;
}

.c-entry .img {
    margin-bottom: 48px;
    text-align: center;
}

.c-entry .img p{
	display:inline-block;
}

.c-entry .img img {
    width: 100%;
    border-radius: 8px;
}

@media print, screen and (min-width: 769px) {

.c-entry .img img {
    max-width: 720px!important;
}

}



.c-entry .button {
    margin: 0 auto 48px;
    width: 100%;
    max-width: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 24px;
    border-radius: 99px;
    position: relative;
    background: linear-gradient(90deg, #F269AB 0%, #C76EE1 50%, #878AF6 100%);
    isolation: isolate;
}

.c-entry .button::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 99px;
    background-color: #7679FF;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: -1;
}

@media (hover: hover) {
    .c-entry .button:hover::before {
        opacity: 1;
    }
}

.c-entry .button span {
    color: #FFFFFF;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.03em;
	display:block;
}

.c-entry .box {
    margin-bottom: 48px;
    padding: 32px;
    background-color: #EDEDED;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.c-entry .accordion {
    margin-bottom: 48px;
}

.c-entry .accordion__sammary {
    position: relative;
    padding: 17px 32px;
    border-radius: 8px;
    background-color: #EDEDED;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: border-radius 0.3s;
}

.c-entry .accordion__sammary::after {
    opacity: 0;
    content: '';
    width: 93%;
    height: 2px;
    margin: auto;
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    background-image: linear-gradient(to right, #000, #000 2px, transparent 2px, transparent 4px);
    background-size: 4px 2px;
    background-repeat: repeat-x;
    transition: opacity 0.3s;
}

.c-entry .accordion__sammary p {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
}

.c-entry .accordion__sammary .oc-icon {
    position: relative;
    display: block;
    width: 28px;
    background-color: #000000;
}

.c-entry .accordion__sammary .oc-icon--line {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 12px;
    height: 2px;
    background-color: #FFFFFF;
    opacity: 1;
    transform: translate(-50%,-50%);
    transition: transform 0.3s, opacity 0.3s;
}

.c-entry .accordion__sammary .oc-icon--line:last-of-type {
    transform: translate(-50%,-50%) rotate(90deg);
}

/* オープン時 */
.c-entry .accordion__sammary.is-open {
    border-radius: 8px 8px 0 0;
}

.c-entry .accordion__sammary.is-open::after {
    opacity: 1;
}

.c-entry .accordion__sammary.is-open .oc-icon--line:last-of-type {
    transform: translate(-50%,-50%);
    opacity: 0;
}

.c-entry .accordion__wrapper {
    overflow: hidden;
    height: auto;
    transition: height 0.3s ease;
}

.c-entry .accordion__inner {
    padding: 24px 32px 16px;
    border-radius: 0 0 8px 8px;
    background-color: #EDEDED;
}

@media (max-width: 768px) {
    .c-entry h3 {
        margin: 24px 0 32px;
        font-size: 20px;
    }

    .c-entry h4 {
        font-size: 18px;
    }

    .c-entry p {
        font-size: 15px;
    }

    .c-entry li {
        font-size: 15px;
    }

    .c-entry .cols-wide {
        grid-template-columns: minmax(0, 1fr);
        margin-bottom: 32px;
    }

    .c-entry .cols {
        grid-template-columns: minmax(0, 1fr);
        margin-bottom: 32px;
    }

    .c-entry .img {
        margin-bottom: 32px;
    }

    .c-entry .button {
        padding: 20px;
    }

    .c-entry .box {
        padding: 24px 20px;
        margin-bottom: 32px;
    }

    .c-entry .accordion__sammary {
        padding: 16px 20px;
    }

    .c-entry .accordion__sammary p {
        font-size: 16px;
    }
    
    .c-entry .accordion__inner {
        padding: 24px 20px 16px;
    }
}

/* =======================================
	oc-entry-flow
======================================= */
.oc-entry-flow__list {
    display: flex;
    justify-content: center;
    gap: 24px;
}

.oc-entry-flow__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.c-entry .oc-entry-flow__item {
	display:none!important;
}

@media print, screen and (min-width: 769px) {

.oc-entry-flow__item {
	max-width:224px;
}

}




/* カスタムスクロールバー */
.oc-entry-flow__scrollbar {
  display: none;
}

.oc-entry-flow__scrollbar__thumb {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  height: 10px;
  background: #AAAAAA;
  border-radius: 999px;
  transition: left 0.1s;
}

.oc-entry-flow__img {
    position: relative;
    border: 2px solid #FF70A7;
    border-radius: 8px;
    overflow: hidden;
}

.oc-entry-flow__item:nth-child(2) .oc-entry-flow__img {
    border: 2px solid #FF70CF;
}

.oc-entry-flow__item:nth-child(3) .oc-entry-flow__img {
    border: 2px solid #9C74FF;
}

.oc-entry-flow__item:nth-child(4) .oc-entry-flow__img {
    border: 2px solid #6FA2FF;
}

.oc-entry-flow__time {
    position: absolute;
    z-index: 1;
    padding: 5px 8px 5px 8px;
    background: linear-gradient(270deg, #FF70A7 0%, #FF70CF 100%);
    font-family: "Outfit", sans-serif;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.05em;
    color: #FFFFFF;
}

.oc-entry-flow__time::after {
  content: '';
    position: absolute;
    top: 0;
    right: -16px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 26px 16px;
    border-color: transparent transparent transparent #FF70A7;
    z-index: 1;
}

.oc-entry-flow__item:nth-child(2) .oc-entry-flow__time {
    background: linear-gradient(90deg, #FF70CF 0%, #9C74FF 100%);
}

.oc-entry-flow__item:nth-child(2) .oc-entry-flow__time::after {
    border-color: transparent transparent transparent #9C74FF;
}

.oc-entry-flow__item:nth-child(3) .oc-entry-flow__time {
    background: linear-gradient(90deg, #9C74FF 0%, #6FA2FF 100%);
}

.oc-entry-flow__item:nth-child(3) .oc-entry-flow__time::after {
    border-color: transparent transparent transparent #6FA2FF;
}

.oc-entry-flow__item:nth-child(4) .oc-entry-flow__time {
    background: linear-gradient(90deg, #6FA2FF 0%, #40E2F4 100%);
} 

.oc-entry-flow__item:nth-child(4) .oc-entry-flow__time::after {
    border-color: transparent transparent transparent #40E2F4;
}

.oc-entry-flow__txt {
    font-size: 16px;
    line-height: 1.5;
    letter-spacing: 0;
}

@media (max-width: 768px) {
    .oc-entry-flow__list {
        justify-content: flex-start;
        overflow-x: scroll;
        flex-wrap: nowrap;
        scrollbar-width: none;
        padding-bottom: 10px;
    }

    .oc-entry-flow__item { 
        width: 230px;
        flex: none;
    }

    .oc-entry-flow__list::-webkit-scrollbar {
        display: none;
    }

    .oc-entry-flow__scrollbar {
        display: block;
        position: relative;
        width: 100%;
        height: 10px;
        background: #EAEAEA;
        border-radius: 999px;
        margin-top: 10px;
    }
}

/* =======================================
	oc-entry__button
======================================= */
.oc-entry__button {
    margin-top: 64px;
}

.oc-entry__link {
    overflow: hidden;
    position: relative;
    margin: 0 auto;
    max-width: 320px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 19px;
    border-radius: 99px;
    background: linear-gradient(90deg, #A69753 0%, #005139 100%);
    isolation: isolate;
    transition: outline 0.3s, background 0.3s;
}

.oc-entry__link::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 99px;
    background: linear-gradient(90deg, #005139 0%, #A69753 100%);
    opacity: 0;
    transition: opacity 0.3s;
    z-index: -1;
}

.oc-entry__link.oc-entry__link--resevation::after {
    content: 'Reservation';
    position: absolute;
    left: 50%;
    bottom: -8px;
    transform: translateX(-50%);
    font-family: "Outfit", sans-serif;
    font-size: 42px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.08em;
    color: #000000;
    opacity: 0.2;
    z-index: -1;
    mix-blend-mode: Overlay;
}

.oc-entry__link.oc-entry__link--resevation {
    padding: 24px;
    background: linear-gradient(90deg, rgba(234, 78, 155, 0.97) 0%, rgba(82, 81, 226, 0.97) 100%);
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.15);
}

.oc-entry__link.oc-entry__link--resevation::before {
    background: linear-gradient(90deg, rgba(82, 81, 226, 0.97) 0%, rgba(234, 78, 155, 0.97) 100%);
}

.oc-entry-schedule__item .oc-entry__link {
	margin:0 0 0 30px;
	padding:10px 15px;
	max-width: initial;
	width:auto;

}


@media (hover: hover) {
    .oc-entry__link:hover::before {
        opacity: 1;
    }

    .oc-entry__link.oc-entry__link--resevation:hover {
        outline: 2px solid #000000;
        outline-offset: -2px;
    }
	
	
	
}

.oc-entry__link p { 
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
    color: #FFFFFF;
}

.oc-entry__link.oc-entry__link--resevation p {
    font-size: 20px;
}

@media (max-width: 768px) {
    .oc-entry__button:last-of-type {
        margin-top: 40px;
    }

    .oc-entry__link.oc-entry__link-support {
        margin-top: 40px;
    }


.oc-entry-schedule__item .oc-entry__link {
	margin-left:0;
	width:100%;
}

	
}

/* =======================================
	oc-entry__fixed
======================================= */
.oc-entry__fixed {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 100;
  transition: opacity 0.3s, visibility 0.3s;
}

.oc-entry__link.oc-entry__link--fixed {
  margin: 0 auto;
  max-width: 270px;
}

@media (max-width: 768px) {
    .oc-entry__fixed {
        width: calc(100% - 32px);
        bottom: 16px;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }

    .oc-entry__link.oc-entry__link--fixed {
        max-width: 320px;
        padding: 16px;
    }

    .oc-entry__fixed.is-hidden {
        opacity: 0;
        visibility: hidden;
    }
}