@charset "UTF-8";
@import url("grid.css");

:root { /* 色変更される場合は、#以降のカラーコードを変更してください IE非対応 */
    --base-color: #000;
    --link-color: #666;
    --linkhover-color: #999;
    --border-color: #ccc;
    --white-color: #fff;
}

img {
	max-width:100%;
	height: auto;/*高さ自動*/
}
a {
    display:block;
    color: var(--link-color);
    text-decoration-line: none;
}
a:hover { 
    color: var(--linkhover-color);
}
a img:hover {
	opacity: 0.8;
}
.underline {
	border-bottom: 3px solid var(--base-color);
	padding-bottom: 0.5rem;
}
.center {
	text-align: center;
}

/*ヘッダー
-------------------------------------*/
.head {
	display: flex;
    flex-direction: row;
    padding: 1rem 0 0 0;
}

.head h1 { 
    padding: 1rem 0;
	font-weight: 700;
	letter-spacing: 3px;
}
.snsbox {
	margin-left: auto;
	font-size: 3.0rem;
	padding: 1rem 0 0 0;
}
nav ul {
	display: flex;
    flex-direction: row;
    justify-content: center;
    list-style: none;
	margin-bottom: 0.5rem;
}
nav li {
    display: block;
    flex: 0 0 15%;
}
nav li a {
    text-decoration: none;
    text-align: center;
}
nav a:hover {
    text-decoration: underline;
}
nav a {
    padding: 1rem;
}

@media screen and (min-width: 769px){
/* PC時はMENUボタンを非表示 */
#open,#close {
    display: none !important;
}

#navi {
    display: block !important;
}
}

@media screen and (max-width: 768px){
.head {
	flex-direction: column;
    text-align: left;
    margin-bottom: 20px;
}
.telbox {
	margin-left: 0;
	text-align: center;
}
.head #open,#close  {
    position: absolute;
    top: 28px;
    right: 12px;
    }
nav ul {
	flex-direction: column;
}

nav li {
	padding-top: 0;
	border-bottom: 1px solid var(--border-color);
	margin-bottom: 0;
}
/* スマホ時はMENUボタンを表示 */
#open {
    display: block;
    background: url(../img/button.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 50px;
    height: 50px;
    border: none;
    position: absolute;
    top: 20px;
    right: 12px;
}
#close  {
    display: block;
    background: url(../img/button2.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 50px;
    height: 50px;
    border: none;
    position: absolute;
    top: 20px;
    right: 12px;
}
/* スマホ時はメニューを非表示 */
#navi {
    display: none;
}
}

/*メイン画像
-------------------------------------*/
.mainimg img {
	width: 100vw;
}

/*メインコンテンツ
-------------------------------------*/
main {
    margin: 2.5rem 0 5rem 0;
}

/*キャッチタイトル
-------------------------------------*/
h2.catch {
	text-align: center;
	color: var(--link-color);
	font-size: 4.0rem;
	margin-bottom: 3rem;
}

h2{
    border-bottom: double 5px #FFC778;
    margin-top:2em;
    text-align: center;
}

/*フッター
-------------------------------------*/
footer {
    background-color: var(--white-color);
    padding: 3rem 0;
}
footer h5 {
    border-bottom: 1px solid var(--border-color);
}

/*コピーライト
-------------------------------------*/
.copyright {
    text-align: center;
    padding: 1rem 0;
    background-color: var(--white-color);
}
.copyright a {
    color: var(--base-color);
    text-decoration: none;
	display: inline-block;
}

/*ページトップへ戻るボタン
-------------------------------------*/
#pagetop {
    position: fixed;
    bottom: 15px;
    right: 15px;
}
#pagetop a {
    display: block;
    background: var(--link-color);
    color: var(--white-color);
    width: 50px;
    padding: 10px 5px;
    text-align: center;
}
#pagetop a:hover {
    background: var(--linkhover-color:);
}
/*パンくずリスト
-----------------------------------*/
.breadcrumb {
    margin: 0 0 1em 0;
    padding: 0;	
}
.breadcrumb li {
    list-style-type: none;
}
.breadcrumb li a {
    display: inline-block;
    color: var(--link-color);
}

/*テキスト装飾
-----------------------------------*/
.text_dott{border-bottom: 3px dashed #5ed507;}
.text_nami {
    text-decoration: underline wavy hsl(251, 61%, 44%);
    text-underline-offset: 0.3em; 
}
.text_maker{
    background: linear-gradient(transparent 50%, #fff9b2 50%);
    padding: 0 0.1em;
}
.text_red{color:rgb(248, 70, 70);}
.text_blue{color:rgb(53, 53, 212);}
.text_color{color:red}
.text_grey{color:grey;}

.fs120{font-size:120%;}
.fs150{font-size:150%;}
.fs200{font-size:200%;}
.text_bold{font-weight: bold;}


.outline2{
	text-shadow:0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00;
    font-size:30px;
    color: white;
    text-align: center;
    margin-top:-60px;
}

.outline{
	text-shadow:0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00,0 0 3px #f00;
    font-size:30px;
    color: white;
    text-align: center;
}

/*口コミ用
-----------------------------------*/

  .cst_wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.cst_heading {
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    margin-bottom: 24px;
}

.cst_review {
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.cst_review-image {
    width: 100%;
    height: 350px;
    overflow: hidden;
}

.cst_review-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cst_review-content {
    padding: 24px;
}

.cst_reviewer-name {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 4px 0;
}

.cst_reviewer-age {
    font-size: 14px;
    color: #666;
    margin: 0 0 8px 0;
}

.cst_rating {
    margin-bottom: 12px;
}

.cst_star {
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>');
    background-size: contain;
    margin-right: 2px;
}

.cst_star-filled {
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" stroke="none"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>');
    color: #fbbf24;
}

.cst_review-title {
    font-size: 16px;
    font-weight: 500;
    color: #4b5563;
    margin: 0 0 8px 0;
}

.cst_review-text {
    font-size: 14px;
    color: #4b5563;
    margin: 0;
}

@media (max-width: 640px) {
    .cst_review-image {
        height: 250px;
    }

    .cst_review-content {
        padding: 16px;
    }

    .cst_reviewer-name {
        font-size: 16px;
    }

    .cst_reviewer-age {
        font-size: 12px;
    }

    .cst_review-title {
        font-size: 14px;
    }

    .cst_review-text {
        font-size: 12px;
    }
}


/*下矢印アロー
-----------------------------------*/


.cp_arrows {
    position: relative;
    display: flex;
    height: 100px;/*画面いっぱいにする場合100vh*/
    justify-content: center;
    align-items: center;
  }
  .cp_arrows .cp_arrow {/*矢印を配置するベースの設定*/
    position: absolute;
    top: 50%;/*着地点(cp_arrowsの高さの50%)*/
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 10px;
    opacity: 0;
  }
  .cp_arrows .cp_arrow:first-child {
    animation: arrow-move08 2s ease-in-out infinite;
  }
  .cp_arrows .cp_arrow:nth-child(2)  {
    animation: arrow-move08 2s 1s ease-in-out infinite;
  }
  .cp_arrows .cp_arrow:before,
  .cp_arrows .cp_arrow:after {/*矢印全体の設定*/
    position: absolute;
    content: '';
    top: 0;
    width: 30px;
    height: 3px;
    background: #E91E63;
  }
  .cp_arrows .cp_arrow:before {/*矢印左の線の位置と傾斜*/
    left: 3px;
    transform: rotate(30deg);
  }
  .cp_arrows .cp_arrow:after {/*矢印左の線の位置と傾斜*/
    right: 3px;
    transform: rotate(-30deg);
  }
  @keyframes arrow-move08 {
      0% { opacity: 0; top: 40%;/*スタート地点(cp_arrowsの高さの40%)*/}
     70% { opacity: 1;}
    100% { opacity: 0;}
  }

  #all_container{
    width:800px;
    margin:0 auto;
    background-color: white;
  }

  @media (max-width: 800px) {
    /* 横幅が320px以下の場合に適用するスタイル */
    #all_container{
        width:100%;
        margin:0 auto;
        background-color: white;
      }
 }

  body{
    background-color: #ececec;
  }

  .h2_img{
    text-align: center;
    width: 100%;
    margin:0 auto;
  }

  p{text-align: center;margin-top:1em;}
  .tal{text-align: left;}