@charset "utf-8";
/* CSS Document */


/* ========================================================
==
==
==  Top page sets
==
==
=========================================================== */


/* ========================================================

　#hero

=========================================================== */

#hero {
    position: relative;
    margin-top: -8.0rem;
    padding: 0;
}

/* カルーセル領域 */
#hero .carousel {
    width: 100%;
    height: 100vh;
}

/* 画像 */
#hero picture {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    height: 100vh;
    overflow: hidden;
}

#hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

#hero .carousel-item:nth-of-type(odd) img {
    animation: zoomIn 15.0s ease-out 0s normal forwards;
}

#hero .carousel-item:nth-of-type(even) img {
    animation: zoomOut 15.0s ease-out 0s normal forwards;
}

/* テキスト */
#hero .carousel-caption {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    inset: auto auto min(14.0vw, 7.0rem) 0;
    padding: 0.5rem 1.5rem;
    background-color: rgba(0, 0, 0, 0.50);
}

#hero h1 {
    color: var(--white-color);
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 160%;
}

#hero h1 span {
    display: block;
}

/* インジケーター */
#hero .carousel-indicators {
    justify-content: flex-end;
    width: 100%;
    margin: 0;
    padding: 0 min(5.0vw, 5.0rem) min(6.0vw, 5.0rem) 0;
}

#hero button {
    border: 0;
    width: min(7.0vw, 4.0rem);
    height: min(2.0vw, 1.0rem);
    background-color: var(--white-color);
    cursor: pointer;
    overflow: hidden;
    transition: 0.3s;
}

#hero button.active {
    background-color: rgba(235, 95, 0, 0.70);
}

/* スクロールを促すアニメーション */
#hero > div:last-of-type {
    position: absolute;
    inset: auto min(3.0vw, 5.0rem) calc(12.0rem + 10.0vw) auto;
    color: var(--yellow-color);
    font-size: min(5.0vw, 1.8rem);
    font-weight: 500;
    writing-mode: vertical-rl;
    z-index: 1;
}

#hero > div:last-of-type::before {
    position: absolute;
    inset: auto 0.25rem -11.0rem 0;
    background-color: var(--yellow-color);
    width: 0.1rem;
    height: 10.0rem;
    margin: auto;
    content: "";
    animation: scrollLineDown 2.0s infinite;
}

#hero iframe {
    width: 100%;
    height: 100vh;
}

@media (min-width: 576px) {

    #hero {
        margin-top: -9.0rem;
    }

}

@media (min-width: 768px) {

    #hero {
        margin-top: -10.0rem;
    }

    #hero .carousel-caption {
        inset: auto min(5.0vw, 5.0rem) 0 auto;
    }

    #hero h1 span {
        display: inline;
    }

}

@media (min-width: 992px) {

    /* マウスオーバー時の処理 */
    #hero button:hover {
        background-color: var(--surface-color);
    }

    #hero > div:last-of-type {
        bottom: 20.0rem;
    }

}


/* ========================================================

　#works

=========================================================== */

/* 大見出し（英表記） */
.home #works .heading h3 {
    font-family: var(--default-font);
}

.home #works .heading h3 span {
    font-size: min(6.0vw, 3.0rem);
    font-weight: 700;
}

.home #works .container,
.home #works .container > .row > div[class^="col"]:nth-of-type(n+2) {
    margin-top: min(10.0vw, 5.0rem);
}

/* イントロダクション */
.home #works .intro {
    margin-bottom: min(10.0vw, 5.0rem);
    color: var(--black-color);
}

.home #works .intro h2 {
    margin-bottom: min(3.0vw, 1.5rem);
    font-size: min(5.35vw, 2.5rem);
	font-weight: 500;
    letter-spacing: -0.075rem;
}

.home #works .intro p {
    font-size: min(4.5vw, 1.8rem);
}

/* お問い合わせ */
.home #works .intro .att {
    margin-top: min(4.0vw, 2.0rem);
	font-size: min(4.0vw, 1.4rem);
}

.home #works .intro .att a {
    text-decoration: underline;
}

/* 中見出し */
.home #works .row > h3 {
    margin-bottom: min(4.0vw, 2.0rem);
    font-family: var(--serif-font);
    font-size: min(6.0vw, 2.6rem);
    text-align: center;
}

/*.home #works .detail {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}*/

/* 画像サイズ */
.home #works img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}

/* メイン画像 */
.home #works figure {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

/* 事業名・活動名 */
.home #works .detail h3 {
    margin-top: 2.0rem;
    color: var(--text-color);
    font-family: var(--serif-font);
    font-size: min(5.0vw, 1.8rem);
	line-height: 120%;
}

/* 概要エリア */
.home #works .text {
    margin-top: 2.0rem;
    color: var(--gray-color-02);
    line-height: 140%;
}

/* 詳しく見る */
.home #works .text div {
    margin-top: 2.0rem;
    color: var(--black-color);
    font-size: 1.5rem;
}

/* 投稿がない場合のテキスト */
.home #works .none {
    margin-top: min(10.0vw, 5.0rem);
    color: var(--red-color);
}

/* 出張などの案内文 */
.home #works .row > h4 {
    margin-top: min(20.0vw, 10.0rem);
    color: var(--black-color);
    font-size: min(5.4vw, 1.8rem);
    font-weight: 400;
    line-height: 160%;
}

@media (min-width: 768px) {

    .home #works .container > .row > div[class^="col"]:nth-of-type(n+2) {
        margin-top: 0;
    }

    .home #works .container > .row > div[class^="col"]:nth-of-type(n+3) {
        margin-top: min(10.0vw, 5.0rem);
    }

    .home #works .intro {
		text-align: center;
	}

}

@media (min-width: 992px) {

    .home #works .detail h3 {
        font-size: min(1.8vw, 2.0rem);
    }

    /* マウスオーバー時の処理 */
    .home #works a:hover figure img {
        transform: scale(1.1);
    }

    .home #works .row > h4 {
        margin: min(20.0vw, 10.0rem) auto 0;
    }

    .home #works a:hover .text div {
        text-decoration: underline;
    }

}

@media (min-width: 1200px) {

    .home #works .container > .row > div[class^="col"]:nth-of-type(n+3) {
        margin-top: 0;
    }

    .home #works .container > .row > div[class^="col"]:nth-of-type(n+4) {
        margin-top: min(10.0vw, 5.0rem);
    }

}


/* ========================================================

　#results

=========================================================== */

.home #results .container,
.home #results .container > .row:nth-of-type(2),
.home #results .container > .row > div[class^="col"]:nth-of-type(n+2) {
    margin-top: min(10.0vw, 5.0rem);
}

.home #results .container > .row:nth-of-type(2) {
    border-top: 0.1rem solid var(--gray-color-04);
}

.home #results .container > .row > h2 {
    margin-top: min(10.0vw, 5.0rem);
    margin-bottom: min(4.0vw, 2.0rem);
    font-family: var(--serif-font);
    font-size: min(6.0vw, 3.0rem);
}

/*.home #results .detail {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}*/

/* メイン画像 */
.home #results figure {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.home #results figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}

/* 事業名・プログラム名・コース名 */
.home #results .container h3 {
    margin-top: 1.0rem;
    color: var(--text-color);
    font-family: var(--serif-font);
    font-size: min(5.4vw, 1.8rem);
    line-height: 140%;
}

/* 概要エリア */
.home #results .text {
    margin-top: 2.0rem;
    color: var(--gray-color-02);
    line-height: 140%;
}

.home #results .text p {
    color: var(--gray-color-02);
    line-height: 140%;
}

/* 詳しく見る */
.home #results .text div {
    margin-top: 2.0rem;
    color: var(--black-color);
    font-size: 1.4rem;
}

/* 投稿がない場合のテキスト */
.home #results .none {
    margin-top: min(10.0vw, 5.0rem);
    color: var(--red-color);
}

@media (min-width: 768px) {

    .home #results .container > .row > div[class^="col"]:nth-of-type(n+2) {
        margin-top: 0;
    }

    .home #results .container > .row > div[class^="col"]:nth-of-type(n+4) {
        margin-top: min(10.0vw, 5.0rem);
    }

}

@media (min-width: 992px) {

    /* マウスオーバー時の処理 */
    .home #results a:hover figure img {
        transform: scale(1.1);
    }

    .home #results a:hover .text div {
        text-decoration: underline;
    }

}

@media (min-width: 1200px) {

    .home #results .container > .row > div[class^="col"]:nth-of-type(n+4) {
        margin-top: 0;
    }

    .home #results .container > .row > div[class^="col"]:nth-of-type(n+5) {
        margin-top: min(10.0vw, 5.0rem);
    }

}


/* ========================================================

　#access

=========================================================== */

.home #access {
    padding-top: min(15.0vw, 15.0rem);
    overflow-x: hidden;
}

/* リード文 */
.home #access p {
    color: var(--black-color);
    font-size: min(4.5vw, 1.6rem);
    line-height: 160%;
}

.home #access .text span {
	font-weight: 500;
}

/* マップ */
.home #access .map {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.25%; /* 16:9=56.25% */
}

.home #access .map iframe {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 100%;
}

.home #access .map iframe,
.home #access .map object,
.home #access .map embed {
    filter: grayscale(100%);
    transition: 0.3s;
}

.home #access .more {
    margin-top: min(4.0vw, 2.0rem);
    padding: 0 1.5rem;
}

@media (max-width: 767.98px) {

    .home #access .container {
        padding-left: 0;
        padding-right: 0;
    }

    .home #access .text {
        margin: min(14.0vw, 7.0rem) 0;
        padding: 0 1.5rem;
    }

}

@media (min-width: 768px) {

    .home #access .row {
        margin-top: min(7.0vw, 7.0rem);
    }

    .home #access .text {
        display: flex;
        justify-content: flex-end;
        height: 100%;
        padding-right: min(5.0vw, 5.0rem);
    }

    .home #access .map {
        padding-top: 100%; /* 1:1=100% */
    }

}

@media (min-width: 992px) {

    .home #access .map {
        padding-top: 75.0%; /* 4:3=75.0% */
    }

    /* マウスオーバー時の処理 */
    .home #access .map iframe:hover,
    .home #access .map object:hover,
    .home #access .map embed:hover {
        filter: grayscale(0%);
    }

}

@media (min-width: 1200px) {

    .home #access p {
        font-size: 1.8rem;
    }

}

@media (min-width: 1400px) {

    .home #access .map {
        padding-top: 56.25%; /* 16:9=56.25% */
    }

}


/* ========================================================

　#banners

=========================================================== */

#banners .container > .row > div[class^="col"] {
    margin-top: min(10.0vw, 5.0rem);
}

#banners div[class^="col"] {
    padding: min(2.0vw, 2.0rem);
}

#banners a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    aspect-ratio: 2560 / 853;
    overflow: hidden;
}

#banners a:nth-of-type(n+2) {
    margin-top: min(2.0vw, 2.0rem); /* ２件目以降の上余白 */
}

/* バナー画像 */
#banners img {
    width: 100%;
    height: auto;
    object-fit: cover;
    transition: 0.5s;
}

/* 矢印と「詳しくはこちら」 */
#banners span:last-of-type {
    display: none; /* テキストを非表示 */
}

#banners i {
    position: absolute;
    inset: auto min(2.0vw, 3.0rem) min(2.0vw, 3.0rem) auto;
    color: rgba(255, 255, 255, 0.70);
    font-size: min(8.0vw, 4.0rem);
    text-shadow: 0 0 1.0rem var(--black-color);
}

@media (min-width: 992px) {

    #banners i {
        display: none; /* 矢印を非表示 */
    }

    #banners span:last-of-type {
        display: block; /* テキストを表示 */
        transition: 0.5s;
    }

    #banners span {
        position: absolute;
        inset: auto min(10.0vw, 5.0rem) min(4.0vw, 2.0rem) auto;
        padding: 1.0rem 5.0rem 1.0rem 3.4rem;
        border-radius: min(1.0vw, 0.6rem);
		background-color: rgba(0, 0, 0, 0.50);
        color: var(--white-color);
        font-size: min(1.8vw, 2.4rem);
    }

    #banners span img {
        position: relative;
        inset: auto auto min(0.5vw, 0.2rem) min(1.0vw, 2.0rem);
        width: 3.0rem;
        height: auto;
    }

    /* マウスオーバー設定 */
    #banners a:hover img {
        transform: scale(1.02);
    }

    #banners a:hover span {
        background-color: rgba(194, 68, 43, 0.70);
    }

    #banners a:hover span img {
        transform: translateX(0.5rem);
    }

}





/* ========================================================
==
==
==  Low page sets
==
==
=========================================================== */

#lower {
    margin-top: 0;
}

/* アイキャッチ */
#eyecatch {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 2 / 1;
    overflow: hidden;
}

#eyecatch img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* パンくずリスト */
#breadcrumbs {
    display: flex;
    align-items: center;
    padding: min(2.0vw, 1.0rem) 0;
    background-color: rgba(135, 100, 175, 0.10);
}

#breadcrumbs a {
    color: var(--text-color);
    font-size: 1.5rem;
    line-height: 150%;
}

/* 特大見出し */
article .heading {
    display: inline-block;
    position: relative;
    width: 100%;
    margin-top: min(10.0vw, 5.0rem);
    margin-bottom: min(10.0vw, 5.0rem);
    text-align: left;
}

article .heading h1 {
    margin-bottom: 0;
    padding-bottom: 1.0rem;
    border-bottom: 0.1rem solid var(--purple-color);
}

/* セクション */
article section {
    width: min(100%, 100.0rem);
    margin: min(10.0vw, 5.0rem) auto 0;
}

article section:nth-of-type(n+2) {
    margin-top: min(20.0vw, 10.0rem);
}

/* セクション大見出し */
article h2 {
    margin-bottom: min(4.0vw, 4.0rem);
    color: var(--gray-color-02);
    font-family: var(--serif-font);
    font-size: min(7.0vw, 3.0rem);
    letter-spacing: 0.25rem;
}

article p,
article li,
article dd,
article dd,
article h4 {
    line-height: 160%;
}

@media (min-width: 768px) {

    #eyecatch {
        aspect-ratio: 3 / 1;
    }

    article .heading::after {
        right: -10.5rem;
        width: 10.0rem;
    }

}

@media (min-width: 992px) {

    /* マウスオーバー時の処理 */
    #breadcrumbs a:hover {
        font-weight: 500;
    }

}

@media (min-width: 1200px) {

    #eyecatch {
        aspect-ratio: 5 / 1;
    }

}


/* ========================================================

　#company

=========================================================== */

#company main hr {
	margin-top: min(20.0vw, 10.0rem);
}

/* 中見出し（観るだけじゃない！日本文化芸能を五感で楽しむ特別なひととき。部分） */
#company main section > h3 {
    margin-bottom: min(4.0vw, 2.0rem);
    font-family: var(--serif-font);
    font-size: min(5.4vw, 2.2rem);
    font-weight: 600;
    line-height: 160%;
}

/*　メッセージ
----------------------------------------------------------- */
#company main #message p,
#company main #message li {
    line-height: 180%;
}

/* 文字・大　部分 */
#company main #message ul {
    margin: 2.0rem 0;
}

#company main #message li {
    color: var(--black-color);
    font-size: 120%;
    font-weight: 500;
    line-height: 200%;
}

/*  JEAE～日本文化芸能＆体験　部分 */
#company main #message strong span {
    position: relative;
    top: 0.2rem;
    font-size: 140%;
    font-weight: 700;
}

/*　代表プロフィール
----------------------------------------------------------- */
#company main #profile figcaption {
    display: none; /* キャプション非表示 */
}

#company main #profile img {
    width: 100%;
}

/* テキスト領域 */
#company main #profile > .row > div[class^="col-"]:nth-of-type(1) {
    margin-top: min(6.0vw, 3.0rem);
}

/* 氏名 */
#company main #profile h3 {
    margin-bottom: min(6.0vw, 3.0rem);
    font-size: min(6.0vw, 2.0rem);
}

/* ヨミガナ */
#company main #profile h3 span {
    font-size: 1.4rem;
    font-weight: 400;
}

/* テキスト */
#company main #profile p {
    text-indent: 1.6rem;
    line-height: 200%;
}

#company main #profile p span {
    display: block;
    font-size: 1.4rem;
}

/*　人物紹介
----------------------------------------------------------- */

/*　略歴
----------------------------------------------------------- */
/* 小見出し */
#company main #profile h4 {
    margin: min(6.0vw, 3.0rem) 0 min(4.0vw, 2.0rem);
    font-size: 1.8rem;
}

/* 略歴リスト */
#company main #profile dl {
    margin-top: min(4.0vw, 2.0rem);
    font-size: 1.4rem;
}

#company main #profile dt,
#company main #profile dd {
    line-height: 160%;
}

#company main #profile dt {
    padding: 1.0rem;
    background-color: var(--contrast-color);
    color: var(--black-color);
    font-weight: 400;
}

#company main #profile dd {
    padding: 1.0rem 1.0rem min(6.0vw, 3.0rem);
    line-height: 140%;
}

@media (max-width: 575.98px) {

    #company main #profile .nav-tabs {
        border: none;
    }

    #company main #profile .nav-tabs li:nth-of-type(n+2) {
        margin-top: 0.5rem;
    }

    #company main #profile .nav-tabs a {
        padding: 1.0rem;
        border: none;
        border-radius: 0.4rem;
        background-color: var(--gray-color-03);
        color: var(--white-color);
    }

    #company main #profile .nav-tabs a.active {
        background-color: var(--black-color);
    }

}

@media (min-width: 576px) {

    /* タブ */
    #company main #profile .nav-tabs a {
        padding: 1.0rem 2.0rem;
        color: var(--gray-color-03);
        font-weight: 500;
    }

    #company main #profile .nav-tabs a.active {
        color: var(--black-color);
    }

}

@media (min-width: 768px) {

    #company main section > h3 {
        font-size: min(2.5vw, 2.4rem);
    }

    #company main #profile figure {
        order: 2;
    }

    #company main #profile figcaption {
        display: block;
        margin-top: 0.5rem;
        font-size: 1.4rem;
        line-height: 140%;
    }

    #company main #profile > .row > div[class^="col-"]:nth-of-type(1) {
        order: 1;
        margin-top: 0;
    }

    #company main #profile > .row > div[class^="col-"]:nth-of-type(2) {
        order: 3;
    }

    /* 略歴リストを横並びに */
    #company main #profile dl {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        font-size: 1.5rem;
    }

    #company main #profile dt,
    #company main #profile dd {
        display: flex;
        align-items: flex-start;
        background-color: transparent;
    }

    #company main #profile dt {
        width: min(30%, 16.0rem);
        padding: 1.5rem 3.0rem 1.5rem 1.0rem;
        justify-content: flex-end;
    }

    #company main #profile dd {
        position: relative;
        width: calc(100% - min(30%, 16.0rem));
        padding: 1.5rem 1.0rem 1.5rem 4.0rem;
        border-left: 0.1rem solid var(--gray-color-05);
        line-height: 150%;
    }

    /* ラインとサークルの装飾 */
    #company main #profile dd::before,
    #company main #profile dd::after {
        position: absolute;
        content: "";
    }

    #company main #profile dd::before {
        inset: 1.85rem auto auto -0.85rem;
        width: 1.5rem;
        height: 1.5rem;
        border: 0.3rem solid var(--gray-color-05);
        border-radius: 0.75rem;
        background-color: var(--accent-color);
        z-index: 10;
    }

    #company main #profile dd::after {
        inset: 2.6rem auto auto 0;
        width: 2.5rem;
        height: 0.1rem;
        background-color: var(--gray-color-05);
        z-index: 5;
    }

}

@media (min-width: 1200px) {

    #company main #profile figcaption {
        text-align: center;
    }

    #company main #message p {
        font-size: 1.8rem;
    }

}

@media (min-width: 1400px) {

    #company main #message p,
    #company main #message li {
        line-height: 200%;
    }

}

/*　会社概要
----------------------------------------------------------- */
#company main #about dt,
#company main #about dd {
    line-height: 160%;
}

#company main #about dt {
	font-size: 1.8rem;
    font-weight: 500;
}

#company main #about dt:nth-of-type(n+2) {
    padding-top: min(8.0vw, 4.0rem);
}

#company main #about dd {
    padding: 0.5rem 0 0 1.6rem;
}

#company main #about dd span {
    display: block;
    line-height: 160%;
}

#company main #about h3 {
    margin-top: min(8.0vw, 4.0rem);
    margin-bottom: 1.0rem;
    color: var(--text-color);
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 160%;
}

/* 事業内容 */
#company main #about .row div[class^="col-"]:nth-of-type(n+2) {
    margin-top: min(10.0vw, 5.0rem);
}

#company main #about a {
    color: var(--text-color);
}

#company main #about figure {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

#company main #about figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}

#company main #about h4 {
    display: inline-block;
    margin-top: 1.0rem;
    font-family: var(--serif-font);
    font-size: min(5.4vw, 2.0rem);
    line-height: 120%;
}

#company main #about h4 + p {
    margin-top: 1.0rem;
    line-height: 140%;
}

#company main #about p + span {
    display: flex;
    justify-content: flex-end;
    margin-top: 2.0rem;
    color: var(--black-color);
    font-size: 1.4rem;
}

/* 外部リンクアイコン */
#company main #about p + span::after {
    margin-left: 0.5rem;
    color: transparent;
    font-family: 'bootstrap-icons';
    content: "\f1c5";
    transition: 0.3s;
}

@media (min-width: 576px) {

    #company main #about dd span {
        display: inline;
    }

}

@media (min-width: 768px) {

    #company main #about dl {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        font-size: 120%;
    }

    #company main #about dt,
    #company main #about dd {
        display: flex;
        align-items: flex-start;
        padding: 0;
    }

    #company main #about dt:nth-of-type(n+2),
    #company main #about dd:nth-of-type(n+2) {
        padding-top: min(6.0vw, 3.0rem);
    }

    #company main #about dt {
        width: min(35%, 22.0rem);
    }

    #company main #about dd {
        width: calc(100% - min(35%, 22.0rem));
    }

    #company main #about .row div[class^="col-"]:nth-of-type(n+2) {
        margin-top: 0;
    }

    #company main #about .row div[class^="col-"]:nth-of-type(n+3) {
        margin-top: min(10.0vw, 5.0rem);
    }

}

@media (min-width: 992px) {

    /* マウスオーバー時の処理 */
    #company main #about a:hover figure img {
        transform: scale(1.1);
    }

    #company main #about a:hover p + span::after {
        color: var(--black-color);
    }

}


/* ========================================================

　#access

=========================================================== */

#access main section {
    width: 100%;
}

#access main section > .row {
    padding-bottom: min(8.0vw, 4.0rem);
    border-bottom: 0.1rem solid rgba(135, 100, 175, 0.30);
}

#access main img {
    width: 100%;
}

/* 所在地 */
#access main section > p:first-of-type {
    margin-bottom: min(4.0vw, 2.0rem);
}

#access main section > p:first-of-type a {
    display: block;
    position: relative;
    width: 100%;
    margin-top: 1.0rem;
    padding-right: 3.0rem;
    text-align: right;
}

#access main section > p:first-of-type a::after {
    position: absolute;
    inset: 50% min(2.0vw, 1.0rem) auto auto;
    transform: translateY(-50%);
    font-family: 'bootstrap-icons';
    content: "\f1c5";
}

/* 拡大アイコン */
#access main section a.glightbox {
    display: block;
    position: relative;
}

#access main section a.glightbox i {
    display: flex;
    position: absolute;
    inset: auto 2.5% 2.5% auto;
    border-radius: 50%;
    color: var(--accent-color);
    background-color: var(--white-color);
    font-size: min(8.0vw, 4.0rem);
}

/* マップ領域 */
#access main .row .row > div[class^="col-"]:nth-of-type(1) {
    margin-bottom: min(4.0vw, 2.0rem);
}

#access main .row .row > div[class^="col-"]:nth-of-type(1) p {
    display: none;
}

/* Check Point */
#access main .carousel-item {
    height: 140.0vw;
    background-color: var(--contrast-color);
}

#access main .carousel-item h2,
#access main .carousel-item p {
    margin: 0 5.0%;
}

#access main .carousel-item h2 {
    margin-top: min(4.0vw, 2.0rem);
    margin-bottom: 1.0rem;
    color: var(--black-color);
    font-size: 2.0rem;
}

#access main .carousel-item h2 span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.0rem;
    height: 3.0rem;
    padding-left: 0.2rem;
    padding-bottom: 0.1rem;
    border-radius: 50%;
    background-color: var(--red-color);
    color: var(--white-color);
    font-weight: 900;
}

/* インジケーター */
#access main .carousel-indicators {
    top: 0;
    width: 96.0%;
    height: 3.8rem;
    margin: 0 2.0%;
    padding-top: 0.4rem;
    border-radius: 1.9rem;
    z-index: 5;
    background-color: rgba(135, 100, 175, 0.75);
}

#access main .carousel-indicators button {
    width: min(4.0vw, 1.0rem);
    height: min(4.0vw, 1.0rem);
    margin: 0 min(2.0vw, 1.0rem);
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.50);
    transition: 0.3s;
}

#access main .carousel-indicators button.active {
    background-color: var(--white-color);
}

/* 前へ,次へ */
#access main a[class^="carousel-control"] {
    display: inline-flex;
    align-items: center;
    height: 3.8rem;
    z-index: 10;
}

#access main a[class^="carousel-control"] i {
    font-size: 200%;
    font-weight: bold;
}

/* 案内文 */
#access main section > p:last-of-type {
    margin-top: min(8.0vw, 4.0rem);
}

@media (min-width: 375px) {

    #access main .carousel-item {
        height: 125.0vw;
    }

}

@media (min-width: 576px) {

    #access main .carousel-item {
        height: 54.0rem;
    }

}

@media (min-width: 768px) {

    #access main section > p:first-of-type {
        display: none;
    }

    #access main .row .row > div[class^="col-"]:nth-of-type(1) {
        margin-bottom: 0;
    }

    #access main .row .row > div[class^="col-"]:nth-of-type(1) p {
        display: block;
        margin-top: min(2.0vw, 2.0rem);
    }

    #access main .row .row > div[class^="col-"]:nth-of-type(1) p span {
        display: block;
        padding-left: 6.4rem;
    }

    #access main .row .row > div[class^="col-"]:nth-of-type(1) p a {
        display: block;
        position: relative;
        width: 17.0rem;
        margin-top: 1.0rem;
    }

    #access main .row .row > div[class^="col-"]:nth-of-type(1) p a::after {
        position: absolute;
        inset: 50% -1.0vw auto auto;
        transform: translateY(-50%);
        font-family: 'bootstrap-icons';
        content: "\f1c5";
    }

    #access main .carousel-item {
        height: 45.0rem;
    }

    #access main .carousel-indicators button {
        margin: 0 0.5rem;
    }

}

@media (min-width: 992px) {

    #access main .row .row > div[class^="col-"]:nth-of-type(1) p span {
        display: inline;
        padding-left: 0;
    }

    #access main .carousel-item {
        height: 50.0rem;
    }

    #access main .carousel-indicators {
        height: 4.5rem;
        border-radius: 2.25rem;
    }

    #access main .carousel-indicators button {
        width: 1.7rem;
        height: 1.7rem;
        margin: 0 1.0rem;
    }

    #access main a[class^="carousel-control"] {
        height: 4.5rem;
    }

}

@media (min-width: 1200px) {

    #access main .carousel-item {
        height: 58.0rem;
    }

    #access main .carousel-item h2 {
        font-size: 2.4rem;
    }

    #access main .carousel-item h2 span {
        width: 3.6rem;
        height: 3.6rem;
        padding-left: 0.2rem;
    }

    #access main .carousel-indicators {
        width: 94.0%;
        height: 5.0rem;
        margin: 0 3.0%;
        border-radius: 2.5rem;
    }

    #access main .carousel-indicators button {
        width: 2.2rem;
        height: 2.2rem;
    }

    #access main a[class^="carousel-control"] {
        height: 5.0rem;
    }

}

@media (min-width: 1400px) {

    #access main .carousel-item {
        height: 68.0rem;
    }

}

/* ========================================================

　#privacy-policy

=========================================================== */

#privacy-policy main h2,
#privacy-policy main p,
#privacy-policy main dd,
#privacy-policy main li {
    line-height: 180%;
}

#privacy-policy main article h2 {
    color: var(--text-color);
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: 0;
}

#privacy-policy main dl {
    margin-top: min(12.0vw, 6.0rem);
    margin-bottom: min(20.0vw, 10.0rem);
}

#privacy-policy main dt {
    margin-bottom: 1.0rem;
    font-size: 120%;
    font-weight: 500;
    line-height: 160%;
}

#privacy-policy main dt:nth-of-type(n+2) {
    margin-top: min(12.0vw, 6.0rem);
}

#privacy-policy main dl ol {
    margin: min(5.0vw, 2.0rem) 0 min(5.0vw, 2.0rem) 1.2rem;
}

#privacy-policy main dl ul {
    margin: min(5.0vw, 2.0rem) 0 min(5.0vw, 2.0rem) 2.4rem;
    list-style: disc;
}

/* お問い合わせ窓口 */
#privacy-policy main aside li:nth-of-type(n+2) {
	margin-top: 0.5rem;
}

#privacy-policy main aside h2 {
    margin-bottom: 1.0rem;
    font-size: 120%;
    line-height: 160%;
}

@media (min-width: 576px) {

    #privacy-policy main aside {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
    }

}


/* ========================================================

　#contact

=========================================================== */

#contact main,
#thanks main {
    margin-bottom: min(15.0vw, 15.0rem); /* お問い合わせページではページ下部のお問い合わせセクションが非表示のため余白調整 */
}

/* リード文 */
#contact main form > h3 {
    margin-bottom: 1.0rem;
    font-size: min(5.4vw, 1.8rem);
}

#contact main form > p {
    color: var(--black-color);
    font-size: min(5.4vw, 1.8rem);
    line-height: 160%;
}

#contact main form > p a {
    color: var(--black-color);
    font-size: 2.0rem;
    font-weight: 700;
}

#contact main form > p span {
    position: relative;
    top: 0.6rem;
    margin-right: 0.25rem;
    color: var(--red-color);
    font-size: 2.4rem;
}

/*　送信完了
/*-------------------------------------------*/
#thanks main h2 {
    margin-bottom: min(4.0vw, 2.0rem);
    color: var(--black-color);
    font-size: min(5.4vw, 2.0rem);
}

#thanks main h2,
#thanks main p,
#thanks main li {
    line-height: 160%;
}

/* 受付番号 */
#thanks main #mfp_thanks {
    margin-bottom: 2.4rem;
    color: var(--black-color);
    font-size: 1.8rem;
    font-weight: 500;
}

#thanks main #mfp_thanks strong {
    position: relative;
    top: 0.1rem;
    color: var(--accent-color);
    font-size: 2.2rem;
    font-weight: 700;
}

/* メールが届いていない場合 */
#thanks main ul {
    margin: 2.4rem 0 2.4rem 3.2rem;
    color: var(--red-color);
    font-weight: 500;
    list-style: disc;
}


/* ========================================================

　.archive

=========================================================== */

.archive main .row > h2 {
    margin-top: min(10.0vw, 5.0rem);
    margin-bottom: min(4.0vw, 2.0rem);
}

/*　事業・活動実績
----------------------------------------------------------- */
.post-type-archive-results main .container > .row > div[class^="col"]:nth-of-type(n+2),
.tax-results_cat main .container > .row > div[class^="col"]:nth-of-type(n+2) {
    margin-top: min(10.0vw, 5.0rem);
}

.post-type-archive-results main .container > .row:nth-of-type(2),
.tax-results_cat main .container > .row:nth-of-type(2) {
    margin-top: min(10.0vw, 5.0rem);
    border-top: 0.1rem solid var(--gray-color-04);
}

/*.post-type-archive-results main .detail,
.tax-results_cat main .detail {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}*/

/* メイン画像 */
.post-type-archive-results main figure,
.tax-results_cat main figure {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.post-type-archive-results main figure img,
.tax-results_cat main figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}

/* 事業・活動名 */
.post-type-archive-results main h3,
.tax-results_cat main h3 {
    margin-top: 1.0rem;
    color: var(--text-color);
    font-family: var(--serif-font);
    font-size: min(5.0vw, 1.8rem);
    line-height: 140%;
}

/* 概要エリア */
.post-type-archive-results main .text,
.tax-results_cat main .text {
    margin-top: 2.0rem;
    color: var(--gray-color-02);
    line-height: 140%;
}

.post-type-archive-results main .text p,
.tax-results_cat main .text p {
    color: var(--gray-color-02);
    line-height: 140%;
}

/* 詳しく見る */
.post-type-archive-results main .text div,
.tax-results_cat main .text div {
    margin-top: 2.0rem;
    color: var(--black-color);
    font-size: 1.4rem;
}

/* 投稿がない場合のテキスト */
.post-type-archive-results main .none,
.tax-results_cat main .none {
    margin-top: min(10.0vw, 5.0rem);
    color: var(--red-color);
}

@media (min-width: 768px) {

    .post-type-archive-results main .container > .row > div[class^="col"]:nth-of-type(n+2),
    .tax-results_cat main .container > .row > div[class^="col"]:nth-of-type(n+2) {
        margin-top: 0;
    }

    .post-type-archive-results main .container > .row > div[class^="col"]:nth-of-type(n+4),
    .tax-results_cat main .container > .row > div[class^="col"]:nth-of-type(n+4) {
        margin-top: min(10.0vw, 5.0rem);
    }

}

@media (min-width: 992px) {

    /* マウスオーバー時の処理 */
    .post-type-archive-results main a:hover figure img,
    .tax-results_cat main a:hover figure img {
        transform: scale(1.1);
    }

    .post-type-archive-results main a:hover .text div,
    .tax-results_cat main a:hover .text div {
        text-decoration: underline;
    }

}

@media (min-width: 1200px) {

    .post-type-archive-results main .container > .row > div[class^="col"]:nth-of-type(n+4),
    .tax-results_cat main .container > .row > div[class^="col"]:nth-of-type(n+4) {
        margin-top: 0;
    }

    .post-type-archive-results main .container > .row > div[class^="col"]:nth-of-type(n+5),
    .tax-results_cat main .container > .row > div[class^="col"]:nth-of-type(n+5) {
        margin-top: min(10.0vw, 5.0rem);
    }

}

/*　メディア出演
----------------------------------------------------------- */
.post-type-archive-media main div[class^="col"]:nth-of-type(n+2) {
    margin-top: min(10.0vw, 5.0rem);
}

/* サムネイル領域 */
.post-type-archive-media main figure {
    overflow: hidden;
}

.post-type-archive-media main figure img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: 0.3s
}

/* テキスト領域 */
.post-type-archive-media main .detail {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: min(4.0vw, 2.4rem) 1.0rem 0;
}

.post-type-archive-media main .detail h3 {
    margin-bottom: 0.5rem;
    font-size: min(6.0vw, 2.0rem);
    line-height: 120%;
}

.post-type-archive-media main .detail li {
    display: inline-block;
}

@media (min-width: 768px) {

    .post-type-archive-media main div[class^="col"]:nth-of-type(n+2) {
        margin-top: 0;
    }

    .post-type-archive-media main div[class^="col"]:nth-of-type(n+4) {
        margin-top: min(10.0vw, 5.0rem);
    }

}

@media (min-width: 1200px) {

    .post-type-archive-media main div[class^="col"]:nth-of-type(n+4) {
        margin-top: 0;
    }

    .post-type-archive-media main div[class^="col"]:nth-of-type(n+5) {
        margin-top: min(10.0vw, 5.0rem);
    }

}


/* ========================================================

　.single（事業・活動内容／事業・活動実績）

=========================================================== */

.single main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 見出し */
.single main h1,
.single main h2,
.single main h3,
.single main h4,
.single main h5 {
    text-align: left;
    line-height: 160%;
}

.single main h2,
.single main h3,
.single main h4,
.single main h5 {
    margin-top: min(8.0vw, 4.0rem);
    margin-bottom: min(4.0vw, 2.0rem);
    font-weight: 600;
}

.single main h1 {
    margin: min(10.0vw, 5.0rem) 0;
    padding-bottom: 1.0rem;
    border-bottom: 0.1rem solid var(--black-color);
    color: var(--text-color);
    font-family: var(--serif-font);
    font-size: min(6.0vw, 3.0rem);
    font-weight: 500;
	line-height: 140%;
}

.single main h2 {
    font-size: min(5.4vw, 2.5rem);
}

.single main h3 {
    font-size: min(5.0vw, 2.0rem);
}

.single main h4 {
    font-size: min(4.6vw, 1.8rem);
}

.single main h5 {
    font-size: min(4.0vw, 1.5rem);
}

.single main p {
    font-size: min(5.4vw, 1.8rem);
    line-height: 160%;
}

/* リスト */
.single main ul,
.single main ol,
.single main dl {
    margin: min(6.0vw, 3.0rem) 0;
    font-size: min(5.4vw, 1.8rem);
}

.single li,
.single dd {
	line-height: 180%;
}

.single main p + ul {
    margin-left: min(5.4vw, 3.6rem);
    list-style: disc;
}

/* 料金と時間 */
.single main h1 + ul li {
    font-size: 1.6rem;
	line-height: 180%;
}

.single main h1 + ul li span {
    font-size: 1.6rem;
    font-weight: 500;
}

.single main h1 + ul li aside {
    display: inline;
    font-size: 1.3rem;
}

/* 連続した画像 */
.single main img + img {
    margin-top: 1.0rem;
}

/* フルサイズ画像 */
.single main .detail img[class*="full"] {
    width: 100%;
    height: auto;
}

/* ギャラリーエリア */
.single main .gallery {
    margin-top: min(10.0vw, 5.0rem);
    border-top: 0.1rem dashed var(--gray-color-04);
}

.single main .gallery h2 {
    margin-bottom: 0;
    font-size: 2.0rem;
    font-weight: 400;
}

.single main .gallery p {
    margin-bottom: 1.0rem;
    color: var(--red-color);
    font-size: 1.2rem;
}

.single main .gallery a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 0.5rem;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.single main .gallery a::before {
    position: absolute;
    inset: 0.5rem;
    width: calc(100% - 1.0rem);
    height: calc(100% - 1.0rem);
    background-color: rgba(0, 0, 0, 0.20);
    content: "";
    transition: 0.3s;
}

@media (min-width: 576px) {

    .single main #eyecatch {
        aspect-ratio: 2 / 1;
    }

    .single main .gallery h2,
    .single main .gallery p {
        display: inline-block;
    }

    .single main .gallery p {
        margin-left: 2.0rem;
    }

}

@media (min-width: 992px) {

    /* サムネイルのマウスオーバー処理 */
    .single main .gallery a:hover::before {
        background-color: transparent;
    }

}

@media (min-width: 1200px) {

    .single main #eyecatch {
        aspect-ratio: 5 / 2;
    }

}

@media (min-width: 1900px) {

    .single main #eyecatch {
        aspect-ratio: 3 / 1;
    }

}


/* ---- End of file --------------------------------------- */