@charset "utf-8";
/* -------------------------------------------
Common Style
------------------------------------------- */
/*Top*/
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15); /* 拡大率 */
  }
}
.add-animation {
  animation: zoomUp 10s linear 0s normal both;
}
#FirstView {
    width: 96%;
    margin: auto;
    padding: 0 0;
    border-radius: 12px;
    overflow: hidden;
    max-height: 640px;
}
#FirstView img {
    width: 100%;
    max-height: 1000px;
    object-fit: cover;
    object-position: center center;
}
#TopInfoArea {
    background: #f7f7f7;
    padding-bottom: 16px;
}
#TopInfoArea dl {
    display: flex;
    flex-wrap: wrap;
    padding: 0 21px;
    justify-content: space-between;
}
#TopInfoArea dl dt {
    font-weight: 500;
}
#TopInfoArea .btn_pt02 a {
    background: #2ca6e0;
    color: #FFFFFF;
    margin-top: 3em;
}
#TopInfoArea #TopNews {
    margin-bottom: 80px
}
#TopInfoArea #TopNews,
#TopInfoArea #TopExhibition {
    padding-bottom: 48px;
}
#TopInfoArea #TopNews dl dt {
    width: 8em;
    padding: 1em 0;
    border-bottom: solid 1px #CCCCCC;
}
#TopInfoArea #TopNews dl dd {
    width: calc(100% - 8em);
    padding: 1em 0;
    border-bottom: solid 1px #CCCCCC;
}
#TopInfoArea #TopNews dl dt:nth-of-type(1),
#TopInfoArea #TopNews dl dd:nth-of-type(1) {
    margin-top: 0;
    padding-top: 0;
}
#TopInfoArea #TopExhibition {
    background: #FFFFFF;
    margin: 0 8px;
    border-radius: 32px;
}
#TopInfoArea #TopExhibition h2 {
    text-align: center;
    font-weight: 700;
    margin: 2em 0 2em;
    background: #e6e6e6;
    border-radius: 1em;
    height: 0.5em;
}
#TopInfoArea #TopExhibition h2 span {
    display: block;
    transform: translateY(-1em);
}
#TopInfoArea #TopExhibition dl dt {
    width: 6em;
    padding: 0em;
    text-align: center;
    background: #222222;
    color: #FFFFFF;
    border-radius: 3px;
    margin-bottom: 0.75em;
    align-self: flex-start;
    font-weight: 300;
}
#TopInfoArea #TopExhibition dl dd {
    font-size: 1.1em;
    width: calc(100% - 0em);
    padding: 0 0 0 0.5em;
    margin-bottom: 0.75em;
    font-weight: 500;
}
#TopInfoArea #TopExhibition figure {
    margin-bottom: 1.5em;
}
#TopInfoArea .btn_pt02 {
    width: 12em;
    position: absolute;
    bottom: -1.5em;
    left: 50%;
    transform: translateX(-50%);
}
#TopInfoArea #TopTours .TopTours-box p {
    font-size: 1.15rem;
    margin: 0 1em;
}
#TopInfoArea #TopTours dl {
    margin: 2em 0;
}
#TopInfoArea #TopTours dl dt {
    width: 6em;
    padding: 0em;
    text-align: center;
    background: #e50012;
    color: #FFFFFF;
    border-radius: 3px;
    margin-bottom: 0.75em;
    align-self: flex-start;
    font-weight: 300;
}
#TopInfoArea #TopTours dl dd {
    font-size: 1.1em;
    width: calc(100% - 0em);
    padding: 0 0 0 0.5em;
    margin-bottom: 0.75em;
    font-weight: 500;
}
#TopInfoArea #TopTours dl.accepting {
    border: solid 2px #e50012;
    box-sizing: border-box;
}
#TopInfoArea #TopTours dl.accepting dt {
    box-sizing: border-box;
    font-weight: 500;
    font-size: 1.25em;
}
#TopInfoArea #TopTours dl.accepting dd {
    box-sizing: border-box;
    background: #FFFFFF;
    line-height: 1.5;
}
#TopInfoArea #TopTours dl.accepting dd span {
    font-size: 0.85em;
}
#TopMessage {
    padding-left: 0;
    padding-right: 0;
}
#TopMessage h1 {
    font-weight: 700;
    display: block;
    padding-left: 32px;
}
#TopMessage .TopMessage-box {
    width: 80%;
    max-width: 750px;
    margin: 0 auto 4em;
}
#TopMessage figure {
    width: 100%;
}
#TopMessage figure li {
    width: 55%;
}
#TopOutline {
    margin-left: 0;
    padding-left: 0;
}
#TopOutline h1 {
    display: block;
    font-weight: 700;
    writing-mode: vertical-rl;
    margin-bottom: 3.5em
}
#TopOutline h1 span {
    font-size: 1em;
    font-weight: 700;
    margin-left: 0;
}
#TopOutline .TopOutline-box {
    position: relative;
    box-sizing: border-box;
    padding: 32px 32px 80px;
    background: #f7f7f7;
    width: 100%;
    border-top-right-radius: 32px;
    border-bottom-right-radius: 32px;
}
#TopOutline .TopOutline-img01 {
    position: absolute;
    width: 60%;
    top: -0;
    right: -0%;
}
#TopOutline .TopOutline-img02 {
    width: 80%;
}
#TopOutline .TopOutline-box .btn_pt01 a {
    display: inline-block;
    width: 200px;
    position: absolute;
    bottom: -1.5em;
    right: -32px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0
}
#TopSDGs h1 {
    justify-content: center;
    font-weight: 700;
    font-size: 2em;
    margin-bottom: 1em;
}
#TopSDGs .TopSDGs-box-header {
    display: flex;
    flex-direction: column-reverse;
    text-align: center;
    font-size: 1.1em;
}
#TopSDGs .TopSDGs-box-header img {
    width: 90%;
    display: block;
    margin: 0 auto 1.5rem;
}
#TopSDGs .TopSDGs-box-body {
    display: flex;
    flex-direction: column-reverse;
}
#TopSDGs .TopSDGs-box-body p {
    margin: 1.5em 0;
}
#TopSDGs .btn_pt01 a {
    display: inline-block;
    width: 200px;
    position: absolute;
    bottom: -1.5em;
    right: -0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0
}
#TopLineup {
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 4em
}
#TopLineup h1 {
    margin-left: 32px;
}
#TopLineup .TopLineup-list li {
    margin: 8em 0 10em;
}
#TopLineup .TopLineup-list li:nth-last-of-type(1) {
    margin-bottom:5em;
}
#TopLineup .TopLineup-list li > a {
    display: flex;
    flex-direction: column-reverse;
    flex-wrap: wrap;
    background: #fafafa;
    box-sizing: border-box;
    padding: 32px 0;
    position: relative;
    text-align: center;
}
#TopLineup .TopLineup-list li > a img {
    width: 87%;
    position: absolute;
    top: -6.5em;
    left: 50%;
    transform: translateX(-50%);
}
#TopLineup .TopLineup-list li > a .TopLineup-list-bottom {
    padding-top: 5em;
}
#TopLineup .TopLineup-list li > a p.btn_pt02 {
    padding: 1em;
    line-height: 1;
    display: block;
    border-radius: 3em;
    text-align: center;
    background: #222222;
    color: #FFFFFF;
    position: absolute;
    bottom: -1.5em;
    left: 50%;
    width: 20em;
    transform: translateX(-50%);
}
#TopLineup > .btn_pt01 a {
    display: inline-block;
    width: 200px;
    position: absolute;
    bottom: -1.5em;
    right: -0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0
}
#TopService h1 span {
    margin-left: 0;
}
#TopService .TopServiceLineup-list li {
    margin-bottom: 7em;
}
#TopService .TopServiceLineup-list li a {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    justify-content: space-between;
    position: relative;
}
#TopService .TopServiceLineup-list li a h2 {
    font-size: 1.1rem;
    font-weight: 700;
}
#TopService .TopServiceLineup-list li a .TopServiceLineup-list-bottom {
    width: 63%;
}
#TopService .TopServiceLineup-list li a .TopServiceLineup-list-upper {
    width: 31%;
}
#TopService .TopServiceLineup-list li p.btn_pt02 {
    padding: 1em;
    line-height: 1;
    display: block;
    border-radius: 3em;
    text-align: center;
    background: #222222;
    color: #FFFFFF;
    position: absolute;
    bottom: -4em;
    left: 50%;
    width: 20em;
    transform: translateX(-50%);
}


/* -------------------------------------------
MediaQuery
------------------------------------------- */
/*SmartPhone*/
@media screen and (max-width:450px) {

}

@media screen and (max-width:767px) {
    .sp_elm { display: block; }
    .pc_elm { display: none; }
    #TopInfoArea #TopTours dl.accepting {
        display: flex;
        flex-direction: column;
        padding: 0;
    }
    #TopInfoArea #TopTours dl.accepting dt {
        width: 100%;
        padding: 0;
        margin: 0;
        border-radius: 0;
    }
    #TopInfoArea #TopTours dl.accepting dd {
        box-sizing: border-box;
        background: #FFFFFF;
        line-height: 1.5;
        padding: 1em;
        margin: 0;
        text-align: center;
    }
    #TopInfoArea #TopTours dl.accepting dd span {
        font-size: 0.85em;
    }
}

@media screen and (min-width:768px) and (max-width:1024px) {
    #FirstView {
        width: 90%;
        padding: 16px 0px;
        margin-bottom: 3em;
    }
    #TopInfoArea {
        padding-bottom: 0px;
    }
    #TopInfoArea dl {
        padding: 0 48px;
    }
    #TopInfoArea #TopNews {
        margin-bottom: 80px;
    }
    #TopInfoArea #TopNews,
    #TopInfoArea #TopExhibition {
        padding-bottom: 64px;
    }
    #TopInfoArea #TopNews dl dt {
        width: 8em;
        padding: 1em 0;
        border-bottom: solid 1px #CCCCCC;
    }
    #TopInfoArea #TopExhibition {
        background: #FFFFFF;
        margin: 0 48px;
        border-radius: 32px;
    }
    #TopInfoArea #TopExhibition dl dd {
        width: calc(100% - 7em);
    }
    #TopInfoArea #TopExhibition figure {
        margin-bottom: 2em;
    }
    #TopInfoArea #TopTours dl {
        margin: 2em 0;
    }
    #TopInfoArea #TopTours dl dd {
        width: calc(100% - 6em);
    }
    #TopMessage h1 {
        padding-left: 0;
        text-align: center;
    }
    #TopMessage .TopMessage-box {
        margin: 0 auto 6em;
    }
    #TopMessage figure {
        width: 100%;
    }
    #TopMessage figure li {
        width: 55%;
    }
    #TopOutline h1 {
        writing-mode: horizontal-tb;
        margin-top: 2em;
        margin-bottom: 2em
    }
    #TopOutline .TopOutline-box {
        padding: 48px 30% 96px 48px;
        width: 85%;
    }
    #TopOutline .TopOutline-img01 {
        position: absolute;
        width: 43%;
        top: -2em;
        right: 0%;
    }
    #TopOutline .TopOutline-img02 {
        width: 100%;
    }
    #TopOutline .TopOutline-box .btn_pt01 a {
        width: 200px;
        position: absolute;
        bottom: 20%;
        right: -0%;
        transform: translateX(50%);
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
    }
    #TopSDGs h1 {
        justify-content: flex-start;
        margin-bottom: 0;
    }
    #TopSDGs .TopSDGs-box {

    }
    #TopSDGs .TopSDGs-box-header {
        flex-direction: column-reverse;
        text-align: left;
        width: 57%;
        margin-left: 43%;
    }
    #TopSDGs .TopSDGs-box-header img {
        width: 250px;
        margin: 0 0 1.5rem;
    }
    #TopSDGs .TopSDGs-box-body p {
        width: 57%;
        margin: 1.5em 0 0 43%;
    }
    #TopSDGs .TopSDGs-box-body figure {
        position: absolute;
        width: 60%;
        transform: translate(-47% , 5%);
    }
    #TopSDGs .btn_pt01 a {
        display: inline-block;
        width: 200px;
        position: absolute;
        bottom: -1.5em;
        right: 5%;
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
    }
    #TopLineup {
        margin-bottom: 4em
    }
    #TopLineup h1 {
        margin-left: 48px;
    }
    #TopLineup .TopLineup-list {
        display: flex;
        flex-wrap: wrap;
    }
    #TopLineup .TopLineup-list li {
        width: 50%;
        margin: 6em 0 5em;
    }
    #TopLineup .TopLineup-list li:nth-last-of-type(1) {
        margin-bottom:5em;
    }
    #TopLineup .TopLineup-list li > a {
        padding: 16px 0 48px;
    }
    #TopLineup .TopLineup-list li > a img {
        width: 80%;
        top: -5em;
    }
    #TopLineup .TopLineup-list li > a .TopLineup-list-bottom {
        padding-top: 5em;
    }
    #TopLineup .TopLineup-list li > a p.btn_pt02 {
        width: 18em;
    }
    #TopLineup > .btn_pt01 a {
        display: block;
        width: 200px;
        position: relative;
        bottom: 0em;
        right: -0;
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
    }
    #TopService h1 span {
        margin-left: 1em;
    }
    #TopService .TopServiceLineup-list {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    #TopService .TopServiceLineup-list li {
        margin-bottom: 7em;
        width: 30%;
    }
    #TopService .TopServiceLineup-list li a {
        flex-direction: column-reverse;
        justify-content: space-between;
        position: relative;
    }
    #TopService .TopServiceLineup-list li a h2 {
        font-size: 1.1rem;
        font-weight: 700;
    }
    #TopService .TopServiceLineup-list li a .TopServiceLineup-list-bottom {
        width: 100%;
    }
    #TopService .TopServiceLineup-list li a .TopServiceLineup-list-upper {
        width: 100%;
        box-sizing: border-box;
        padding: 0 20% 1em;
    }
    #TopService .TopServiceLineup-list li p.btn_pt02 {
        font-size: 0.75em;
        width: 16em;
    }
}

/*Tablet*/
@media screen and (max-width:1024px) {
}

/*Desktop*/
@media screen and (min-width:768px) {
    .sp_elm { display: none; }
    .pc_elm { display: block; }
    #TopInfoArea #TopTours dl.accepting {
        display: flex;
        flex-direction: row;
        padding: 0;
        margin-left: 2em;
    }
    #TopInfoArea #TopTours dl.accepting dt {
        width: 35%;
        padding: 0;
        margin: 0;
        display: flex;
        align-items: center;
        align-self: stretch;
        justify-content: center;
        border-radius: 0;
    }
    #TopInfoArea #TopTours dl.accepting dd {
        width: 65%;
        padding: 1em;
        margin: 0;
    }
    #TopInfoArea #TopTours dl.accepting dd span {
        font-size: 0.85em;
    }
}

@media screen and (min-width:1025px) {
    #FirstView {
        width: 96%;
        padding: 0 0px;
        margin-bottom: 4em;
        margin-top: 112px;
    }
    #TopInfoArea {
        box-sizing: border-box;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        width: 100%;
        padding: 0 5% 64px;
    }
    #TopInfoArea dl {
        padding: 0 2rem;
    }
    #TopInfoArea #TopNews {
        margin-bottom: 0;
    }
    #TopInfoArea #TopNews dl {
        margin-top: 2em
    }
    #TopInfoArea #TopNews,
    #TopInfoArea #TopExhibition {
        box-sizing: border-box;
        padding: 3.5rem;
        width: 50%;
        padding-bottom: 64px;
        margin: 0;
    }
    #TopInfoArea #TopExhibition {
        margin: 0 0;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
    #TopInfoArea #TopExhibition dl {
        max-width: 420px;
        padding: 0;
        margin: auto;
    }
    #TopInfoArea #TopExhibition dl dd {
        width: calc(100% - 7em);
    }
    #TopInfoArea #TopExhibition figure {
        width: 75%;
        margin: auto;
        margin-bottom: 1.5em;
    }
    #TopInfoArea #TopExhibition figure img {
        width: 100%;
        object-position: top center;
        object-fit: cover;
        aspect-ratio: 16 / 9;
    }
    #TopInfoArea #TopTours {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        padding: 8rem 0 0 2.5rem;
    }
    #TopInfoArea #TopTours .TopTours-box {
        width: 45%;
    }
    #TopInfoArea #TopTours .TopTours-box p {
        margin: 2em 0 2em 2em;
    }
    #TopInfoArea #TopTours figure {
        width: 50%;
        text-align: center;
    }
    #TopInfoArea #TopTours figure img {
        width: 100%;
        max-width: 720px;
        margin: 0;
    }
    #TopInfoArea #TopTours dl {
        margin: 2em 0;
    }
    #TopInfoArea #TopTours dl dd {
        width: calc(100% - 6em);
    }
    #TopMessage {
        padding: 96px 0 112px;
    }
    #TopMessage h1 {
        padding-left: 0;
        text-align: center;
        font-size: 3rem;
    }
    #TopMessage .TopMessage-box {
        margin: 3em auto 6em;
    }
    #TopMessage figure {
        width: 100%;
    }
    #TopMessage figure li {
        width: 33%;
    }
    #TopOutline {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        padding: 0;
        margin-bottom: 112px;
    }
    #TopOutline h1 {
        font-size: 3em;
        writing-mode: horizontal-tb;
        margin-top: 1em;
        margin-bottom: 1em;
    }
    #TopOutline .TopOutline-box {
        box-sizing: border-box;
        padding: 0 5%;
        width: 60%;
    }
    #TopOutline .TopOutline-img01 {
        position: relative;
        width: 35%;
        top: 0;
        left: 0;
        max-height: 720px;
    }
    #TopOutline .TopOutline-img01 img {
        width: 100%;
        max-height: 720px;
        object-fit: cover;
        border-top-left-radius: 32px;
        border-bottom-left-radius: 32px;
    }
    #TopOutline .TopOutline-img02 {
        position: relative;
        bottom: 15%;
        right: -50%;
        width: 40%;
        transform: translateY(-0%);
        margin: 0;
    }
    #TopOutline .TopOutline-box .btn_pt01 a {
        width: 200px;
        position: relative;
        bottom: 20%;
        left: 0%;
        margin: 3em 0 0 0%;
        transform: translateX(0%);
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
    }
    #TopSDGs h1 {
        justify-content: flex-start;
        margin-bottom: 0;
    }
    #TopSDGs .TopSDGs-box {
        position: relative;
    }
    #TopSDGs .TopSDGs-box-header {
        flex-direction: column-reverse;
        text-align: left;
        width: 45%;
        max-width: 625px;
        position: absolute;
        top: 2em;
        left: 50%;
    }
    #TopSDGs .TopSDGs-box-header img {
        width: 250px;
        margin: 0 0 1.5rem;
    }
    #TopSDGs .TopSDGs-box-body {
        position: relative;
    }
    #TopSDGs .TopSDGs-box-body p {
        width: 45%;
        max-width: 625px;
        position: absolute;
        top: 12em;
        left: 50%;
    }
    #TopSDGs .TopSDGs-box-body figure {
        position: relative;
        left: 5%;
        width: 40%;
    }
    #TopSDGs .TopSDGs-box-body figure img {
        width: 100%;
        max-height: 420px;
        object-fit: cover;
        object-position: top center;
        border-radius: 32px;
    }
    #TopSDGs .btn_pt01 a {
        display: inline-block;
        width: 200px;
        position: absolute;
        bottom: 0em;
        right: 5%;
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
    }
    #TopLineup {
        margin-top: 112px;
        margin-bottom: 80px;
    }
    #TopLineup h1 {
        margin-left: 5%;
    }
    #TopLineup .TopLineup-list {
        display: flex;
        flex-wrap: wrap;
        margin-top: 80px;
    }
    #TopLineup .TopLineup-list li {
        width: 50%;
        margin: 6em 0 0;
    }
    #TopLineup .TopLineup-list li:nth-last-of-type(1) {
        margin-bottom:0;
    }
    #TopLineup .TopLineup-list li > a {
        padding: 7em 4% 8em;
        flex-direction: column;
    }
    #TopLineup .TopLineup-list li > a img {
        width: auto;
        top: 0;
        max-height: 285px;
    }
    #TopLineup .TopLineup-list li > a .TopLineup-list-upper {
        position: absolute;
        top: -10em;
        left: 50%;
        transform: translateX(-50%);
        width: 70%;
        margin: auto;
    }
    #TopLineup .TopLineup-list li > a .TopLineup-list-bottom {
        padding-top: 0em;
        position: relative;
    }
    #TopLineup .TopLineup-list li > a p.btn_pt02 {
        position: relative;
    }
    #TopLineup > .btn_pt01 a {
        display: block;
        width: 200px;
        position: relative;
        top: -1.5em;
        border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
    }
    #TopService {
        margin: 0 5% 0;
    }
    #TopService h1 span {
        margin-left: 1em;
    }
    #TopService .TopServiceLineup-list {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        margin-top: 3em;
    }
    #TopService .TopServiceLineup-list li {
        margin-bottom: 7em;
        width: 30%;
    }
    #TopService .TopServiceLineup-list li a {
        flex-direction: column-reverse;
        justify-content: space-between;
        position: relative;
        text-align: center;
    }
    #TopService .TopServiceLineup-list li a h2 {
        font-size: 1.3rem;
        font-weight: 700;
    }
    #TopService .TopServiceLineup-list li a .TopServiceLineup-list-bottom {
        width: 100%;
    }
    #TopService .TopServiceLineup-list li a .TopServiceLineup-list-upper {
        width: 75%;
        box-sizing: border-box;
        padding: 0 20% 1em;
        margin: auto;
    }
    #TopService .TopServiceLineup-list li p.btn_pt02 {
        font-size: 0.75em;
        width: 16em;
    }
}
