/*サブヘッダー*/
.column-heading {
    background-color: #f7f6f5;
    width: 100%;
}

.omise-heading {
	background-color: #D9CFE7;
	width: 100%;
}

.seminar-heading {
	background-color: #50697D;
	width: 100%;
}

/*無限ループカルーセル*/
.loop-post-content {
	overflow-x: auto;
	overflow-y: visible;
	-webkit-overflow-scrolling: touch;
	display: flex;
	align-items: center;
	height: 500px;
}

.loop-post-list {
	display:flex;
	flex-wrap: nowrap;
	will-change: transform;
	min-width: max-content;
	display: flex;
	gap: 30px;
}

/*カード一覧*/
.post-content {
    max-width: 980px;
    margin: 50px auto;
}

.post-list {
	width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fill, 300px);
    gap: 30px;
	font-family: "Zen Kaku Gothic Antique", "sans-serif";
	color: #615d5d;
}

.post-card {
    width: 300px;
    height: 430px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 0 10px #ccc;
	border-radius: 5px;
}

.post-item {
    text-decoration: none;
    display: flex;
    flex-direction: column;
	height: 100%;
}

.post-thumbnail {
	width: 100%;
	aspect-ratio: 3/2;
	flex-shrink: 0;
	overflow: hidden;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}

.post-thumbnail img {
    width: 100%;
	height: 100%;
	object-fit: cover;
    display: block;
}

.post-text {
	flex-grow: 1;
	padding: 10px 20px 15px;
	display: flex;
	flex-direction: column;
}

.reading-series {
	font-size: 16px;
	color: #888;
	height: 25px;
	margin: 0 0 5px 0;
}

.event-card-date {
	font-size: 14px;
	height: 40px;
	margin: 0 0 5px 0;
}

.post-title {
	font-size: 20px;
	font-weight: 600;
	color: #7a7a7a;
	height: 55px;
	margin: 0 0 10px 0;
}

.post-author {
	font-size: 16px;
    font-weight: 500;
	color: #a7a7a7;
    height: 25px;
    margin: 0 0 5px 0;
    text-align: end;
}

.post-date {
	font-size: 12px;
    font-style: italic;
	color: #888;
    height: 15px;
    margin: 0 0 5px 0;
    text-align: end;
}

.event-location {
	font-size: 14px;
	height: 15px;
	margin: 5px 0 15px 0;
}

.post-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	height: 60px;
	margin-top: auto;
	overflow: hidden;
}

.post-tag-item {
    display: inline-block;
    background-color: #fff;
    color: #000;
    font-size: 10px;
	font-weight: 400;
    padding: 3px 7px;
    border-radius: 20px;
	margin-left: 5px;
	margin-top: 5px;
}


@media (max-width: 767px) {
	.post-list {
		width: 100%;
		display: flex;
		flex-direction: column;
	}

	.post-card {
		width: 330px;
		height: 150px;
		margin: 0 auto;
	}

	.post-item {
		flex-direction: row;
	}

	.post-thumbnail {
		width: 110px !important;
	}

    .post-text {
        padding: 10px;
    }

	.reading-series {
		font-size: 14px;
		height: 20px;
        overflow: hidden;
	}

	.reading-title,
	.event-card-title {
		font-size: 18px;
		height: 22px;
        overflow: hidden;
	}

	.reading-author {
		font-size: 12px;
		height: 15px;
		overflow: hidden;
	}

	.reading-date {
		font-size: 10px;
		height: 12px;
	}

    .event-card-date {
		height: 20px;
	}
	.post-tags {
		width: 200px;
		height: 22px;
		flex-wrap: nowrap;
		overflow: hidden;
	}

	.post-tag-item {
		padding: 0 5px;
		white-space: nowrap;
	}
}

/*記事一覧タグリスト*/
.tag-list{
	margin: 50px auto 80px;
	display: flex;
	font-size: 14px;
	font-weight: 400;
	flex-wrap: wrap;
	gap: 20px;
	list-style: none;
    max-width: 980px;
}

.tag-item {
	padding: 3px 20px;
	border-radius: 90px;
	color: #333;
	background-color: #fff;
	border: 1px solid #333;
	text-decoration: none;
	max-width: none !important;
	min-width: 0 !important;
}

.tag-item.active {
    border: 2px solid !important;
    font-weight: 900;
}

.tag-item:hover {
	background-color: #f0f0f0;
}

@media screen and (max-width: 767px) {
	.tag-list {
        width: 95%;
        margin: 50px auto;
		gap: 10px;
		justify-content: center;
    }

    .tag-item {
        font-size: 14px;
        padding: 3px 10px;
    }
}



/* Story吹き出し */
.balloon {
    display: flex;
	font-size: 16px;
}

.balloon-left {
    flex-direction: row; /* 左側に配置するために通常の方向 */
	margin: 40px 0;
}

.balloon-right {
    flex-direction: row-reverse; /* 右側に配置するために逆方向 */
	margin: 40px 0;
}

.balloon-name,
.balloon-content,
.balloon-content p {
	padding: 0;
	margin: 0;
}

.balloon-content {
	max-width: 60%;
}

.balloon-content p {
	margin-top: 10px;
}

.balloon-content p:first-child {
	margin-top: 0;
}

.balloon-icon-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-right: 10px
}

.balloon-icon {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	overflow: hidden;
}

.balloon-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.balloon-name {
	margin-top: 5px;
	font-size: 12px;
	text-align: center;
	color: #333;
	white-space: nowrap;
}

.balloon-text {
    position: relative;
    border: 1px solid #ccc;
    background-color: #fff;
    padding: 10px;
    border-radius: 4px;
}

.balloon-text:after,
.balloon-text:before {
    top: 15px;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
}

.balloon-text:after {
    border-width: 6px;
    margin-top: -6px;
}

.balloon-text:before {
    border-width: 7px;
    margin-top: -7px;
}


.balloon-left .balloon-text {
    margin-left: 15px; /* 吹き出しとアイコンの間隔 */
}

.balloon-right .balloon-text {
    margin-right: 15px; /* 吹き出しとアイコンの間隔 */
}

/**
 * type : right
 */
.balloon-right .balloon-text:after,
.balloon-right .balloon-text:before {
    left: 100%;
    border-right: none;
}
.balloon-right .balloon-text:after {
    border-color: transparent #fff;
}
.balloon-right .balloon-text:before {
    border-color: transparent #ccc;
}
/**
 * type : left
 */
.balloon-left .balloon-text:after,
.balloon-left .balloon-text:before {
	right: 100%;
    border-left: none;
}
.balloon-left .balloon-text:after {
    border-color: transparent #fff;
}
.balloon-left .balloon-text:before {
    border-color: transparent #ccc;
}

/* レスポンシブデザイン */
@media screen and (max-width: 767px) {
	.balloon {
		font-size: 14px;
	}

	.balloon-content {
		max-width: 100%;
	}
}

/*カレンダー*/
.univ-cal-root {
	margin-top: 30px;
	margin-bottom: 100px;
	width: 100%;
}

.calendar-header {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 30px;
	gap: 30px;
}

.cal-title {
	font-size: 22px;
	font-weight: 600;
}

.calendar-table {
	width: 100%;
	border-collapse: collapse;
}

.calendar-table th,
.calendar-table td {
	width: 14%;
	height: 50px;
	border: 1px solid #ddd;
	padding: 0;
	text-align: center;
	vertical-align: middle;
	box-sizing: border-box;
}

.calendar-body td.seminar-day {
	background: #ffe;
	cursor: pointer;
}

.calendar-body td.seminar-day:hover {
	background-color: #a8d080 !important;
}

.calendar-body td.today {
	border: 2px solid #f80 !important;
	box-sizing: border-box;
}

.calendar-no-event-the-day {
	font-size: 18px;
	font-family: "Zen Kaku Gothic Antique", "sans-serif";
	text-align: center;
}

/*求人情報*/
.job-posting-container {
	width: 80%;
	max-width: 1280px;
	margin: 50px auto 100px;
}

.filter-search-buttons {
	margin-top: 30px;
	display: flex;
	justify-content: center;
	gap: 20px;
}

.job-posting-lists-container {
    width: 90%;
	margin: 50px auto 100px;
}

.job-posting-list {
    width: 100%;
    display: grid;
    gap: 30px;
    justify-content: center;
}

.job-posting-card {
    padding: 20px 30px;
    background-color: #f5f5f5;
    border-radius: 8px;
	font-size: 16px;
}

.job-card-cat-list {
	display: inline-block;
	margin-bottom: 8px;
	border: 1px solid #ccc;
	font-size: 12px;
	padding: 3px 15px;
	background-color: #fff;
	border-radius: 15px;
}

.job-card-title {
	font-size: 20px;
	font-weight: 600;
	margin: 5px 0;
	height: 30px;
	white-space: nowrap;
	overflow: hidden;
	cursor: pointer;
}

.job-card-company-name {
	margin: 0;
}

.job-card-tag-list {
	display: inline-block;
	margin: 10px 0;
}

.job-card-tag-item {
	display: inline-block;
	border: 1px solid #ddd;
	border-radius: 25px;
	padding: 2px 10px;
	background: #fff;
	margin: 10px 10px 0 0;
}

.job-card-date {
	display: flex;
	justify-content: space-between;
}

@media (max-width:767px) {
	.job-posting-container {
		width: 100%;
	}
	
	.job-posting-card {
		padding: 10px 15px;
	}
	
	.job-card-tag-item {
		font-size: 14px;
	}
}


/*シングル*/
.post-article {
    width: 70%;
    margin: 150px auto;
    color: #615d5d;
    font-family: "Zen Kaku Gothic Antique", "sans-serif";
	line-height: 30px;
	letter-spacing: 1px
}

.post-single-categories ul {
    list-style: none;
    display: flex;
    font-size: 14px;
    font-weight: 600;
    flex-wrap: wrap;
    gap: 10px;
    padding-left: 0;
}

.post-single-categories a {
	display: inline-block;
    text-decoration: none !important;
    padding: 0px 15px;
    border-radius: 90px;
    background-color: #fff;
}

.post-center-btn-wrapper {
    text-align: center;
    align-items: center;
    margin: 50px;
}


/*ストーリー・お仕事掲示板・OMISE*/
.column-thumbnail {
    width: 100%;
}

.column-thumbnail img {
    width: 100%;
}

.column-article-meta {
    width: 100%;
    margin: 50px auto;
    text-align: start;
}

.column-series {
    font-size: 18px;
    font-weight: 500;
}

.column-title {
    margin: 50px 0;
    font-size: 26px;
    font-weight: 700;
}

.column-posted-date {
    font-size: 14px;
    color: #7a7a7a;
    margin-bottom: 30px;
}

.column-author,
.column-interviewee {
    margin: 40px auto;
    background-color: #f7f6f5;
    border: none;
    border-radius: 8px;
    padding: 20px;
    display: flex;
    gap: 30px;
}

.column-author-img,
.column-interviewee-img {
    width: 30%;
    max-width: 300px;
    min-width: 180px;
    overflow: hidden;
}

.column-author-img img,
.column-interviewee-img img {
    width: 100%;
    object-fit: cover;
}

.column-author-company-name a,
.column-interviewee-company-name a {
	display: inline-block;
    text-decoration: underline !important;
	text-decoration-color: #615d5d !important;
    cursor: pointer;
    color: #615d5d;
    font-size: 14px;
}

.column-author-company-name span,
.column-interviewee-company-name span {
	display: inline-block;
    color: #615d5d;
    font-size: 14px;
}

.column-author-name,
.column-interviewee-name {
    font-size: 16px;
    font-weight: 600;
    margin: 10px auto;
}

.column-author-intro,
.column-interviewee-intro {
    font-size: 14px;
}

.column-categories ul {
    list-style: none;
    display: flex;
    font-size: 14px;
    font-weight: 600;
    flex-wrap: wrap;
    gap: 20px;
    padding-left: 0;
}

.column-categories a {
	display: inline-block;
    text-decoration: none !important;
    color: #333;
}

.column-article-intro {
    font-size: 16px;
}

.column-content {
    font-size: 16px;
}

.column-author-company-info,
.column-interviewee-company-info {
    margin: 40px auto;
    font-size: 16px;
	background: #f7f6f5;
    padding: 30px;
    border-radius: 8px;
}

.column-author-company-info-name,
.column-interviewee-company-info-name {
	font-weight: 600;
}

.column-author-company-box,
.column-interviewee-company-box {
	display: flex;
	gap: 10px;
	margin-top: 30px;
}

.column-author-company-info-link a,
.column-interviewee-company-info-link a {
	display: inline-block;
    text-decoration: none !important;
    color: #fff;
	font-weight: 600;
    padding: 0 10px;
    border-radius: 90px;
	background: #dfdada;
	font-size: 14px;
}

.column-author-company-info-link a:hover,
.column-interviewee-company-info-link a:hover {
	color: #615d5d;
}


/* レスポンシブデザイン */
@media screen and (max-width: 767px) {
	/* single */
    .column-article {
        width: 90%;
    }

    .column-article-meta {
        margin: 20px auto;
    }

    .column-series {
        margin: 0;
        font-size: 16px;
    }

    .column-title {
        margin: 10px auto;
        font-size: 22px;
    }

	.column-article-intro {
		font-size: 14px;
	}

    .column-author,
    .column-interviewee {
        flex-direction: column;
    }

	.column-content {
		font-size: 14px;
	}

	.column-author-company-info,
	.column-interviewee-company-info {
		font-size: 14px;
		padding: 20px;
	}
}

/*イベント情報*/
/*イベント情報*/
.event-thumbnail {
    width: 100%;
    position: relative;
    display: inline-block;
}

.event-thumbnail img {
    width: 100%;
    display: block;
    border-radius: 8px;
}

.event-thumbnail.ended img {
    filter: grayscale(100%) brightness(50%);
}

.event-ended-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    padding: 10px 20px;
    font-size: 20px;
    font-weight: 600;
    border-radius: 5px;
    text-align: center;
    white-space: nowrap;
}

.event-ended-application {
	text-align: center;
	color: #B94047;
	font-size: 18px;
	font-weight: 600;
}

.event-date ul {
    list-style: none;
	padding-left: 0;
	margin: 30px auto;
}

.event-title {
    font-size: 24px;
    margin-bottom: 30px;
    font-weight: 600;
}

.event-wrapper {
    margin: 50px auto;
	width: 100%;
}

.event-wrapper h4 {
    font-size: 20px;
    border-bottom: 2px solid #ddd;
    padding-bottom: 10px;
    position: relative;
	margin-bottom: 50px;
}

.event-wrapper h4::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 20px;
    background-color: #007f3d;
    margin-right: 8px;
}


.event-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 5px 2px;
    background: #fff;
}

.event-table th,
.event-table td {
    padding: 20px;
    text-align: left;
    border: none;
}

.event-table th {
    background: #eceff1;
    width: 25%;
    font-weight: 600;
}

.event-table td {
    background: #f9f9f9;
}

.event-detail {
	margin: 30px auto;
}

.event-company {
    background: #f7f6f5;
    padding: 20px;
    border-radius: 8px;
    margin-top: 0;
}

.event-company h5 {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 15px;

}

.related-events {
    width: 70%;
	margin: 80px auto;
}



@media (max-width: 767px) {
	.event-article {
		width: 90%;
	}

	.event-table, .event-table thead, .event-table tr {
		display: block;
		width: 100%;
	}


	.event-table th, .event-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
		padding: 10px 8px;
	}

	.event-table th {
		background: #eceff1;
		font-weight: 600;
	}

	.event-table td {
		background: #f9f9f9;
	}
}

.related-events {
	width: 90%;
}


/*おとまな*/

.seminar-thumbnail {
    width: 100%;
    position: relative;
    display: inline-block;
}

.seminar-thumbnail img {
    width: 100%;
    display: block;
    border-radius: 8px;
}

.seminar-thumbnail.ended img {
    filter: grayscale(100%) brightness(50%);
}

.seminar-ended-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    padding: 10px 20px;
    font-size: 20px;
    font-weight: 600;
    border-radius: 5px;
    text-align: center;
    white-space: nowrap;
}

.seminar-ended-application {
	text-align: center;
	color: #B94047;
	font-size: 18px;
	font-weight: 600;
}

.seminar-date ul {
    list-style: none;
	padding-left: 0;
	margin: 30px auto;
}

.seminar-title {
    font-size: 24px;
    margin-bottom: 30px;
    font-weight: 600;
}

.seminar-wrapper {
    margin: 50px auto;
	width: 100%;
}

.seminar-wrapper h4 {
    font-size: 20px;
    border-bottom: 2px solid #ddd;
    padding-bottom: 10px;
    position: relative;
	margin-bottom: 50px;
}

.seminar-wrapper h4::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 20px;
    background-color: #007f3d;
    margin-right: 8px;
}

.seminar-instructor {
    display: grid;
    grid-template-columns: repeat(auto-fill, 300px);
    gap: 40px;
}

.instructor-block {
    width: 300px;
    text-align: left;
}

.instructor-img {
    width: 300px;
    height: 200px;
    overflow: hidden;
}

.instructor-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.instructor-name {
    font-size: 18px;
    font-weight: 600;
}

.seminar-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 5px 2px;
    background: #fff;
}

.seminar-table th,
.seminar-table td {
    padding: 20px;
    text-align: left;
    border: none;
}

.seminar-table th {
    background: #eceff1;
    width: 25%;
    font-weight: 600;
}

.seminar-table td {
    background: #f9f9f9;
}

.seminar-detail {
	margin: 30px auto;
}

.seminar-company {
    background: #f7f6f5;
    padding: 20px;
    border-radius: 8px;
    margin-top: 0;
}

.seminar-company h5 {
    font-size: 18px;
    font-weight: 600;
}

.related-seminars {
    width: 70%;
	margin: 80px auto;
}

@media (max-width: 767px) {
	.seminar-article {
		width: 90%;
	}

	.seminar-table, .seminar-table thead, .seminar-table tr {
		display: block;
		width: 100%;
	}

	.seminar-table th, .seminar-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
		padding: 10px 8px;
	}

	.seminar-table th {
		background: #eceff1;
		font-weight: 600;
	}

	.seminar-table td {
		background: #f9f9f9;
	}
}

.related-seminars {
	width: 90%;
}


