@charset "UTF-8";
/* CSS Document */
/*
Theme Name: Fuji-smile
Theme URI: none
Description: Fuji-slime Theme. ふじスマ＋のオリジナルテーマファイル/the original theme
Version: 1.0
Author: ILY,inc
Author URI : https://www.webdesignleaves.com
*/ 

/*
font-family: 'Zen Kaku Gothic Antique', sans-serif; 300,R400,500,B700,900
*/
html {
	font-size: 100%;
	scroll-behavior: smooth;
	overflow-x: hidden;
}
body {
	color: #000000;
	font-family: 'Zen Kaku Gothic Antique', sans-serif, YuGothic, "Yu Gothic Medium", "Yu Gothic", -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, Verdana, Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1;
    font-weight: 400;
    background: white;
}
#wrapper{
	width:100%;
	overflow-x: hidden !important;
}

ul {
	list-style: none;
}
.linkarea {
	position: absolute;
	top: 0;
	left: 0;
	width:100%;
	height: 100%;
	z-index: 99999;
}
.effect-fade {
	opacity : 0;
	transform : translate(0, 60px);
	transition : all 1000ms;
}

.effect-fade.effect-scroll {
	opacity : 1;
	transform : translate(0, 0);
}
.load{
    position: fixed;
    top: 0px;
    left: 0px;
	width: 100vw;
	height: 100vh;
	z-index: 99999999;
	background: white;
	opacity: 1;
	transition: 1s;
	overflow: hidden;
}
.wrapper{
	display: none;
}
.wrapper.on{
	display: block;
}
.load.off{
	opacity: 0;
	transition: 1s;
	animation: 0.1s linear 1s out-area forwards;
}
@keyframes out-area {
	0%{transform:translateY(0px);}
	100%{transform:translateY(-100vh);}
}
.nowrap {
    display: inline-block;
}

span {
    display: inline-block;
}


/*---------------------------------------------

Toppage

---------------------------------------------*/

.topHeader {
    display: none;
}

.fv {
    position: relative;
    background: rgb(255,163,54);
    background: linear-gradient(90deg, rgba(255,163,54,1) 0%, rgba(236,228,28,1) 100%);
}
.back_wh_mask {
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 22vw;
    background: white;
}
.back_fuji {
    position: absolute;
    top: 400px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100vw;
    max-height: 600px;
}
.back_fuji img {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    animation: 0.5s fuji-in 0.5s ease-in-out forwards;
    transform: translateY(100vh);
}
@keyframes fuji-in {
    0% {
        transform: translateY(100vh);
    }
    100% {
        transform: translateY(0vh);
    }
}
@media screen and (max-width: 480px) {
    
}
.fv .copy {
    position: relative;
    padding: 200px 0px;
    width: 100%;
    text-align: center;
}
.fv .copy img {
    height: auto;
    width: 30vw;
    min-width: 320px;
}
.fvArticle {
    position: relative;
    margin: 280px auto 100px auto;
    max-width: 1080px;
    width: 94%;
}
.fvArticle .image {
    position: relative;
    width: 80%;
    height: auto;
    margin: auto 0px auto auto;
    transform: translateY(-80px);
}
.fvArticle .image::before {
    conentent: "";
    display: block;
    padding-top: 56.25%;
}
.fvArticle .image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.fvArticle .descBlock {
    position: absolute;
    display: flex;
    bottom: 0px;
    left: 0px;
    flex-direction: column;
    gap: 20px;
    padding: 40px;
    border-radius: 16px;
    background: white;
    max-width: 500px;
    width: 100%;
    filter: drop-shadow(0px 4px 20px rgba(0,0,0,0.1));
    transform: translateZ(0);
    z-index: 0;
}
@media screen and (max-width: 800px) {
    .back_wh_mask {
        height: 380px;
    }
    .fvArticle {
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin: 100px auto 100px auto;
    }
    .fvArticle .image {
        width: 100%;
        max-width: 500px;
        margin: auto ;
        transform: translateY(0px);
    }
    .fvArticle .descBlock {
        position: relative;
        margin: auto;
        padding: 32px;
    }
}
.dateFlex {
    display: flex;
    gap: 12px;
}
.dateFlex .date {
    font-size: 16px;
    letter-spacing: 0.04em;
    margin: auto 0px;
}
.dateFlex .cat {
    font-size: 14px;
    padding: 2px 8px;
    border-radius: 4px;
    background: #FFA336;
    color: white;
    font-weight: 700;
    z-index: 0;
}
.descBlock .title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
}
@media screen and (max-width: 800px) {
    .descBlock .title {
        font-size: 20px;
    }
}

.writer {
    display: flex;
    gap: 8px;
}
.writer .thumbnail {
    width: 34px;
    height: 34px;
    border-radius: 100vh;
    overflow: hidden;
    z-index: 0;
}
.writer .thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.writer .username {
    letter-spacing: 0.04em;
    font-weight: 500;
    margin: auto 0px;
}
.moreBtn .inner {
    position: relative;
    display: inline-block;
    font-weight: 700;
    background: #FFA336;
    color: white;
    border-radius: 100vh;
    transition: 0.3s;
    z-index: 0;
}
.moreBtn .inner p {
    padding: 8px 36px 8px 14px;
}
.moreBtn .inner::before {
    position: absolute;
    content: "";
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    background-image: url("img/moreBtn_arrow.svg");
    background-size: cover;
    transition: 0.3s;
}
.moreBtn .inner:hover{
    background: #B36E1B;
}
.moreBtn .inner:hover::before {
    transform: translateY(-50%) translateX(4px);
}
.under120 {
    padding-bottom: 120px;
}
.top120 {
    padding-top: 120px;
}
.innerBlock {
    display: flex;
    flex-direction: column;
    gap: 60px;
    max-width: 1280px;
    width: 90%;
    margin: auto;
}
.sectionTitle {
    font-size: 40px;
    font-weight: 700;
    line-height: 1.2;
}
@media screen and (max-width: 800px) {
    .sectionTitle {
        font-size: 24px;
    }
}
.-center {
    text-align: center;
}
.-right {
    text-align: right;
}
.greenBtn .inner {
    position: relative;
    display: inline-block;
    padding: 12px 20px;
    border-radius: 100vh;
    background: #2CCD80;
    color: white;
    transition: 0.3s;
    cursor: pointer;
    white-space: nowrap;
    z-index: 0;
}
.greenBtn .inner::before {
    position: absolute;
    content: "";
    width: 14px;
    height: 14px;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    background-image: url("img/moreBtn_arrow.svg");
    transition: 0.3s;
}
.greenBtn .inner p {
    line-height: 1;
}
.greenBtn .inner:hover {
    background: #158E54;
}
.greenBtn .inner:hover::before {
    transform: translateY(-50%) translateX(4px);
}
.greenBtn .inner p {
    display: inline-block;
    padding-right: 26px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.articleArr {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 40px;
}
.articleArr::after {
    display: block;
    content: "";
    width: Calc( (100% - 80px) / 3 );
}
.articleArr li {
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: relative;
    width: Calc( (100% - 80px) / 3 );
    transition: 0.3s;
}
@media screen and (max-width: 800px) {
    .articleArr li {
        width: 100%;
    }
    .articleArr::after {
        width: 100%;
    }
}
.articleArr li .rank {
    position: absolute;
    width: 40px;
    height: 40px;
    border-radius: 100vh;
    background: white;
    top: 10px;
    left: 10px;
    z-index: 10;
}
.articleArr li .rank p {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    font-size: 20px;
    font-weight: 700;
}
.articleArr li .image {
    position: relative;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    z-index: 0;
}
.articleArr li .image::before {
    display: block;
    padding-top: 56.25%;
    content: "";
}
.articleArr li .image img {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}
.articleArr li:hover .image img {
    transform: scale(1.02);
    opacity: 0.8;
}
.articleArr li .title {
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    letter-spacing: 0.04em;
}
.articleArr li:hover .title {
    color: #FFA336;
    text-decoration: underline;
}
.articleArr li .descBlock {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.picupArticle {
    position: relative;
}
.picupArticle .image {
    position: relative;
    width: 70%;
    margin: 100px auto auto 0px;
    transform: translateY(-100px);
}
.picupArticle .image::before {
    content: "";
    display: block;
    padding-top: 56.25%;
}
.picupArticle .image img {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.picupArticle .descBlock {
    position: absolute;
    display: flex;
    bottom: 0px;
    right: 0px;
    flex-direction: column;
    gap: 20px;
    padding: 40px;
    border-radius: 16px;
    background: white;
    max-width: 500px;
    filter: drop-shadow(0px 4px 20px rgba(0,0,0,0.1));
    transform: translateZ(0);
    z-index: 0;
}
@media screen and (max-width: 800px) {
    .picupArticle {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    .picupArticle .image {
        width: 100%;
        margin: auto;
        transform: translateY(0px);
    }
    .picupArticle .descBlock {
        position: relative;
        max-width: 100%;
        padding: 32px;
    }
}
.categoryArr {
    display: flex;
    justify-content: center;
    gap: 16px;
}
.categoryArr li {
    position: relative;
    font-size: 18px;
    font-weight: 700;
    color: white;
    padding: 4px 8px;
    background: #DCDCDC;
    border-radius: 4px;
    line-height: 26px;
    z-index: 0;
}
.categoryArr li.active {
    background: rgb(255,163,54);
    background: linear-gradient(90deg, rgba(255,163,54,1) 0%, rgba(236,228,28,1) 100%);
}
.itemArr {
    display: flex;
    gap: 40px;
    justify-content: center;
    flex-wrap: wrap;
}
.itemArr li {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: Calc( (100% - 80px) / 3 );
}
@media screen and (max-width: 800px) {
    .itemArr li {
        width: 100%;
    }
}
.itemArr li .thumbnail {
    position: relative;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    z-index: 0;
}
.itemArr li .thumbnail::before {
    content: "";
    padding-top: 100%;
    display: block;
}
.itemArr li .thumbnail img {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}
.itemArr li:hover .thumbnail img {
    transform: scale(1.1);
    opacity: 0.6;
}
.itemArr li .itemname {
    font-size: 20px;
    line-height: 28px;
    font-weight: 700;
    letter-spacing: 0.04em;
    transition: 0.3s;
}
.itemArr li:hover .itemname {
     color: #FFA336; 
}
.itemArr li .price {
    font-size: 18px;
    line-height: 26px;
    letter-spacing: 0.04em;
    text-align: right;
}
section.gray {
    position: relative;
    background: #F8F8F8;
    padding: 120px 0px;
}
section.gurade {
    position: relative;
    background: rgb(255,163,54);
    background: linear-gradient(90deg, rgba(255,163,54,1) 0%, rgba(236,228,28,1) 100%);
    padding: 120px 0px 240px 0px;
}
section.gurade .illust {
    height: 170px;
    max-width: 476px;
    width: 100%;
    position: absolute;
    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
}
section.gurade .illust img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.-white {
    color: white;
}
section.gurade .desc {
    max-width: 500px;
    width: 100%;
    line-height: 2;
    letter-spacing: 0.04em;
    margin: auto;
}
section .desc {
    width: 100%;
    line-height: 2;
    letter-spacing: 0.04em;
    margin: auto;
}
.contactBlock {
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: white;
    padding: 40px;
    border-radius: 16px;
    z-index: 0;
}

.tagArr {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin: 120px auto 40px;
}
.tagArr li {
    position: relative;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    padding: 4px 8px;
    border-radius: 4px;
    background: #FFA336;
    color: white;
    border: 2px solid #FFA336;
    transition: 0.3s;
    z-index: 0;
    cursor: pointer;
}
.tagArr li:hover {
    background: #D87F17;
    border: 2px solid #D87F17;
}
.tagArr li.active {
    background: white;
    color: #D87F17;
}
.pankuzu {
    display: flex;
    gap: 10px;
    font-size: 15px;
    line-height: 22px;
    margin: auto auto 20px 0px;
}
.pankuzu a {
    font-weight: 500;
    color: #FFA336;
    text-decoration: underline;
}



/*---------------------------------------------

Footer

---------------------------------------------*/

footer {
    background: #87701F;
    padding: 120px 0px;
    color: white;
    text-align: center;
}
footer .logo {
    position: relative;
    margin: auto;
    width: 220px;
    transition: 0.2s;
}
footer .logo:hover {
    opacity: 0.6;
}
footer .logo img {
    width: 100%;
}
footer .innerBlock {
    display: flex;
    flex-direction: column;
    gap: 40px;
}
footer .sns {
    display: flex;
    justify-content: center;
    gap: 14px;
}
footer .sns li {
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 100vh;
    background: white;
}
footer .sns li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 100%;
    height: 100%;
    border-radius: 100vh;
    background: white;
    transition: 0.3s;
}
footer .sns li:hover::before {
    width: 120%;
    height: 120%;
}
footer .sns li img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 56%;
    height: auto;
}
footer .sitemap {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}
footer .sitemap li {
    position: relative;
    font-size: 14px;
    letter-spacing: 0.04em;
}
footer .copyright {
    font-size: 14px;
    letter-spacing: 0.04em;
    line-height: 32px;
}


/*---------------------------------------------

Header

---------------------------------------------*/


header {
    position: relative;
    background: rgb(255,163,54);
    background: linear-gradient(90deg, rgba(255,163,54,1) 0%, rgba(236,228,28,1) 100%);
    height: 120px;
    width: 100%;
    display: flex;
    padding: 0px 40px;
    justify-content: space-between;
    z-index: 999999;
}
header.mask {
    height: 80px;
    padding: 0px 32px;
}
@media screen and (max-width: 480px) {
    header {
        height: 80px;
        padding: 0px 32px;
    }
}
header .logo {
    position: relative;
    height: 30%;
    width: auto;
    margin: auto 0px;
    transition: 0.2s;
}
header .logo:hover {
    opacity: 0.6;
}
header .logo img {
    height: 100%;
    width: auto;
    object-fit: cover;
}
header .sns {
    display: flex;
    gap: 14px;
    margin: auto auto auto 40px;
}
header .sns li {
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 100vh;
    background: white;
}
header .sns li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 100%;
    height: 100%;
    border-radius: 100vh;
    background: white;
    transition: 0.3s;
}
header .sns li:hover::before {
    width: 120%;
    height: 120%;
}
header .sns li img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 54%;
    height: auto;
}
header .menu {
    position: relative;
    width: 34px;
    height: 24px;
    margin: auto 0px;
    cursor: pointer;
    transition: 0.3s;
}
header .menu:hover {
    height: 20px;
}
header .menu span {
    position: absolute;
    width: 34px;
    height: 3px;
    border-radius: 100vh;
    background: white;
    transition: 0.3s;
    z-index: 0;
}
header .menu span:nth-child(1) {
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
}
header .menu span:nth-child(2) {
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}
header .menu span:nth-child(3) {
    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
}
@media screen and (max-width: 480px) {
    header .sns {
        margin: auto auto auto 12px;
    }
}
header .menu.active span:nth-child(1){
    top: 50%;
    transform: translate(-50%,-50%) rotate(45deg);
}
header .menu.active span:nth-child(2){
    opacity: 0;
}
header .menu.active span:nth-child(3){
    top: 50%;
    transform: translate(-50%,-50%) rotate(-45deg);
}

.globalMenu {
    position: fixed;
    max-width: 500px;
    width: 80vw;
    right: 0px;
    top: 0px;
    height: 100%;
    transition: 1s;
    transform: translateX(80vw);
    background: rgb(255,163,54);
    background: linear-gradient(90deg, rgba(255,163,54,1) 0%, rgba(236,228,28,1) 100%);
    z-index: -1;
    opacity: 0;
    overflow: scroll;
    /*IE(Internet Explorer)・Microsoft Edgeへの対応*/
    -ms-overflow-style: none;
    /*Firefoxへの対応*/
    scrollbar-width: none;
}
/*Google Chrome、Safariへの対応*/
.globalMenu::-webkit-scrollbar{
  display: none;
}

.globalMenu.open {
    transform: translateX(0vw);
    opacity: 1;
}
.globalMenu .inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding: 100px 40px;
    width: 100%;
}
@media screen and (max-width: 800px) {
    .globalMenu .inner {
        padding: 80px 32px;
    }
}
.globalMenu nav {
    display: flex;
    flex-direction: column;
    gap: 16px;
    color: white;
    list-style: none;
}
.globalMenu nav li {
    position: relative;
}
.globalMenu nav li div {
    display: inline-block;
    position: relative;
    font-size: 18px;
    font-weight: 700;
    padding: 12px;
}
.globalMenu nav li.sub div {
    font-weight: 500;
    padding: 8px 12px;
}
@media screen and (max-width: 800px) {
    .globalMenu nav li.sub div {
        font-size: 15px;
    }
}
.globalMenu nav li div::before {
    content: "";
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 0%;
    height: 1px;
    background: white;    
}
.globalMenu nav li:hover div::before {
    content: "";
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: 1px;
    background: white;  
    transition: 0.3s;
}
.globalMenu .btn {
    display: flex;
    flex-direction: column;
    gap: 20px;
    color: white;
}
.globalMenu .btn li {
    position: relative;
    font-size: 24px;
    text-align: center;
    font-weight: 700;
    padding: 16px 0px;
    border-radius: 100vh;
    width: 100%;
    transition: 0.5s;
    z-index: 0;
}
.globalMenu .btn li.green {
    background: #2CCD80;
}
.globalMenu .btn li.orange {
    background: #FFA336;
}
.globalMenu .btn li:hover.green {
    background: #2C6CCD;
}
.globalMenu .btn li:hover.orange {
    background: #2C6CCD;
}


.topHeader {
    position: fixed;
    background: none;
    height: 120px;
    width: 100%;
    display: flex;
    padding: 0px 40px;
    justify-content: space-between;
    z-index: 999999;
    transition: 0.3s;
}
.topHeader.mask {
    height: 80px;
    padding: 0px 20px;
}
.topHeader.mask::before {
    content: "";
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: black;
    opacity: 0.1;
    z-index: -1;
}
@media screen and (max-width: 480px) {
    .topHeader {
        height: 80px;
        padding: 0px 20px;
    }
}
.topHeader .logo {
    position: relative;
    height: 30%;
    width: auto;
    margin: auto 0px;
    transition: 0.2s;
}
.topHeader .logo:hover {
    opacity: 0.6;
}
.topHeader .logo img {
    height: 100%;
    width: auto;
    object-fit: contain;
}
.topHeader .sns {
    display: flex;
    gap: 14px;
    margin: auto auto auto 40px;
}
@media screen and (max-width: 480px) {
    .topHeader .sns {
        margin: auto auto auto 12px;
    }
}
.topHeader .sns li {
    position: relative;
    width: 40px;
    height: 40px;
}
.topHeader .sns li img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 54%;
}
.topHeader .menu {
    position: relative;
    width: 34px;
    height: 24px;
    margin: auto 0px;
    cursor: pointer;
}
.topHeader .menu span {
    position: absolute;
    width: 34px;
    height: 3px;
    border-radius: 100vh;
    background: white;
    transition: 0.3s;
    z-index: 0;
}
.topHeader .menu span:nth-child(1) {
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
}
.topHeader .menu span:nth-child(2) {
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}
.topHeader .menu span:nth-child(3) {
    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
}
.topHeader .menu.active span:nth-child(1){
    top: 50%;
    transform: translate(-50%,-50%) rotate(45deg);
}
.topHeader .menu.active span:nth-child(2){
    opacity: 0;
}
.topHeader .menu.active span:nth-child(3){
    top: 50%;
    transform: translate(-50%,-50%) rotate(-45deg);
}


/*---------------------------------------------

Single

---------------------------------------------*/

.singleFlex {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    width: 94%;
    max-width: 1280px;
    padding: 120px 0px;
    margin: auto;
}
@media screen and (max-width: 900px) {
    .singleFlex {
        flex-direction: column;
    }
}
.singleFlex main {
    width: 100%;
}
.singleTitle {
    font-size: 40px;
    font-weight: 700;
    line-height: 58px;
    margin-bottom: 20px;
}

.singleContents {
    display: flex;
    flex-direction: column;
    gap: 32px;
    margin: 20px auto;
}
.singleContents p {
    font-size: 16px;
    line-height: 23px;
    letter-spacing: 0.1em;
}
.singleContents h2 {
    font-size: 36px;
    letter-spacing: 0.03em;
    padding: 12px 20px;
    line-height: 52px;
    border-left: 6px solid #FFA336;
    background: #F8F8F8;
    font-weight: 700;
}
.singleContents h3 {
    font-size: 30px;
    letter-spacing: 0.03em;
    padding-bottom: 20px;
    line-height: 43px;
    border-bottom: 2px solid #FFA336;
    font-weight: 700;
}
.singleContents h4 {
    position: relative;
    padding-left: 28px;
    font-size: 24px;
    letter-spacing: 0.03em;
    line-height: 35px;
    font-weight: 700;
}
.singleContents h4::before {
    position: absolute;
    content: "";
    top: 50%;
    left: 0px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background-image: url("img/h4_shape.svg");
    background-size: cover;
}
.singleContents ul {
    list-style: disc;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-left: 40px;
}
.singleContents ol {
    list-style: decimal;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-left: 40px;
}
.otherArticle {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.share_block {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 60px auto;
}
.share_block li {
    position: relative;
    width: Calc( (100% - 30px)/4 );
    background: #FFA336;
    border-radius: 6px;
    padding: 16px 0px;
    z-index: 0;
}
@media screen and (max-width: 800px) {
    .share_block li {
        width: Calc( (100% - 10px)/2 );
    }
}
.share_block li .share_sns_icon {
    display: flex;
    justify-content: center;
    gap: 6px;
}
.share_block li img {
    width: 20px;
    height: 20px;
    margin: auto 0px;
}
.share_block li p {
    font-size: 18px;
    font-weight: 900;
    color: white;
}


.singleFlex side {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 300px;
    flex-shrink: 0;
}
@media screen and (max-width: 900px) {
    .singleFlex side {
        width: 100%;
    }
}
.singleFlex side .sideTitle {
    font-size: 24px;
    line-height: 35px;
    font-weight: 700;
    margin-bottom: 20px;
}
.singleFlex side .categoryArr {
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    gap: 12px;
    margin: auto 0px;
}
.singleFlex side .categoryArr li {
    position: relative;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    padding: 4px 8px;
    border-radius: 4px;
    background: #FFA336;
    color: white;
    border: 2px solid #FFA336;
    transition: 0.3s;
    z-index: 0;
}
.singleFlex side .categoryArr li:hover {
    background: #D87F17;
    border: 2px solid #D87F17;
}
.singleFlex side .categoryArr li.active {
    background: white;
    color: #D87F17;
}
.writer_block {
    width: 100%;
    padding: 30px;
    border-radius: 16px;
    background: #ECECEC;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.writer_block .thumbnail {
    width: 160px;
    height: 160px;
    border-radius: 100vh;
    overflow: hidden;
    margin: auto;
}
.writer_block .thumbnail img {
    width: 100%;
    height: 100%;
}
.writer_block .name {
    font-size: 20px;
    letter-spacing: 0.04em;
    font-weight: 500;
    text-align: center;
}
.writer_block .description {
    letter-spacing: 0.03em;
    line-height: 1.4em;
}


/*---------------------------------------------

Single-spot

---------------------------------------------*/

.spot_single_contents {
    display: flex;
    gap: 40px;
    -webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
    margin-top: 20px;
}
@media screen and (max-width: 1000px) {
    .spot_single_contents {
        flex-direction: column;
    }
}
.spot_single_contents .image {
    position: relative;
    width: 40%;
    height: auto;
    flex-shrink: 0;
}
@media screen and (max-width: 1000px) {
    .spot_single_contents .image {
        width: 100%;
    }
}
.spot_single_contents .image::before {
    content: "";
    display: block;
    padding-top: 80%;    
}
.spot_single_contents .image img {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.spot_single_contents .detail {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 100%;
}
.spot_single_contents .detail .info {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.spot_single_contents .detail .info .item {
    display: flex;
    gap: 12px;
    margin: auto 0px;
}
@media screen and (max-width: 580px) {
    .spot_single_contents .detail .info .item {
        flex-direction: column;
        gap: 6px;
    }
}
.spot_single_contents .detail .info .item .label {
    display: flex;
    gap: 6px;
    width: 100px;
    margin: auto 0px;
    flex-shrink: 0;
}
.spot_single_contents .detail .info .item .label img {
    width: 16px;
    height: 16px;
    margin: auto 0px;
}
.spot_single_contents .detail .info .item .label p {
    font-weight: bold;    
    margin: auto 0px;
}
.spot_comment {
    padding: 32px 0px;
    border-top: 1px solid #D7D7D7;
    border-bottom: 1px solid #D7D7D7;
}



.page_desc {
    font-size: 18px;
    letter-spacing: 0.04em;
    line-height: 1.6;
    margin-top: 20px;
}

#form {
    width: 100%;
}
#form .inputs {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 60px;
}
#form .inputs .cell {
    display: flex;
    gap: 40px;
}
@media screen and (max-width: 900px) {
    #form .inputs .cell {
        flex-direction: column;
        gap: 16px;
    }
}
#form .inputs .cell .label {
    margin: auto 0px;
    width: 36vw;
    white-space: nowrap;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
#form .inputs .cell .label span {
    font-size: 12px;
    font-weight: 700;
    padding: 2px 6px;
    background: #FFA336;
    color: white;
    border-radius: 4px;
    margin: auto auto auto 12px;
    z-index: 0;
}
#form .inputs .cell input {
    font-size: 18px;
    line-height: 18px;
    padding: 24px 26px;
    background: #F1F1F1;
    letter-spacing: 0.03em;
    width: 100%;
    font-weight: 500;
}
#form .inputs .cell .value {
    font-size: 18px;
    line-height: 18px;
    padding: 24px 26px;
    background: #F1F1F1;
    letter-spacing: 0.03em;
    width: 100%;
    font-weight: 500;
}
#form .inputs .cell input::placeholder {
    color: #C6C6C6;
}
#form .inputs .cell textarea {
    font-size: 18px;
    line-height: 18px;
    padding: 24px 26px;
    background: #F1F1F1;
    letter-spacing: 0.03em;
    width: 100%;
    font-weight: 500;
    min-height: 300px;
    max-height: 400px;
}
#form .inputs .cell textarea::placeholder {
    color: #C6C6C6;
}
#form .checkflex {
    display: flex;
    gap: 10px;
    justify-content: center;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.04em;
    margin: 60px auto;
    white-space: nowrap;
}
#form .checkflex p a {
    color: #FFA336;
    text-decoration: underline;
}

.faqArr {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.faqArr li {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid #FFA336;
    z-index: 0;
}
.faqArr li .title {
    display: flex;
    gap: 12px;
}
.faqArr li .title .icon {
    font-size: 32px;
    font-weight: 700;
    color: #FFA336;
    margin: auto 0px;
}
.faqArr li .title .label {
    font-size: 20px;
    font-weight: 700;
    margin: auto 0px;
}
.faqArr li .content {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: 0.04em;
}

.companyArr {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.companyArr li {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 20px;
    border-bottom: 1px solid #D0D0D0;
}
.companyArr li .label {
    letter-spacing: 0.04em;
    color: #FFA336;
    font-weight: 700;
}
.companyArr li .value {
    font-size: 18px;
    letter-spacing: 0.04em;
    font-weight: 400;
    line-height: 1.4;
}
.about_keyvisual {
    position: relative;
    width: 100%;
    min-height: 300px;
    max-height: 400px;
    height: 80vw;
    border-radius: 16px;
    overflow: hidden;
    z-index: 0;
}
.about_keyvisual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.otherLinkArr {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    margin: auto;
}
.otherLinkArr li {
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid #FFA336;
    padding-bottom: 20px;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.04em;
}
@media screen and (max-width: 580px) {
    .otherLinkArr li {
        flex-direction: column;
        gap: 8px;
    }
}
.otherLinkArr li .label {
    width: 120px;
    flex-shrink: 0;
    color: #FFA336;
    font-weight: bold;
}
.otherLinkArr li .value {
    position: relative;
    width: 100%;
    font-weight: 500;
}
.otherLinkArr li .value div {
    display: inline-block;
    position: relative;
    padding-right: 28px;
    text-decoration: underline;
    word-break: break-all;
}
.otherLinkArr li .value div::before {
    position: absolute;
    content: "";
    right: 0px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background-image: url("img/otherLink.svg");
    background-size: contain;
}



.image_flex {
    display: flex;
    gap: 40px;
    justify-content: space-between;
    -webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
}
.image_flex .map_img {
    width: 50%;
    height: auto;
    flex-shrink: 0;
}
.image_flex .map_img img {
    width: 100%;
    height: auto;
}
@media screen and (max-width: 1200px) {
    .image_flex {
        flex-direction: column;
    }
    .image_flex .map_img {
        width: 100%;
    }
}

/*---------------------------------------------

Map

---------------------------------------------*/

.map {
    position: relative;
    padding-top: 68px;
}
.map::after {
    position: absolute;
    content: "";
    top: 0px;
    left: 0px;
    width: 100%;
    height: 68px;
    z-index: 999999;
    background: white;
}
.map iframe {
    position: relative;
    width: 100%;
    top: -68px;
}

.spot_filter {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.radio {
    display: none;
}
.radio:checked + label li {
    background: white;
    color: #D87F17;
}
.filter {
    display: flex;
    gap: 40px;
}
@media screen and (max-width: 1200px) {
    .filter {
        flex-direction: column;
        gap: 12px;
    }
}
.filter .label {
    width: 160px;
    flex-shrink: 0;
    margin: auto 0px;
}
.filter .tagArr {
    text-align: left;
    margin: auto 0px;
    justify-content: flex-start;
}
.top_map_block {
    margin: auto;
}
.top_map_p {
    margin: 40px auto auto auto;
    font-size: 16px;
    letter-spacing: 0.03em;
    line-height: 2em;
}

/*スマホサイズのCSS
---------------------------------------------*/
@media screen and (max-width: 800px) {
	.pc {
		display: none;
	}

	.sp {
		display: block;
	}
}
