/*
Theme Name: Sanjomeitengai
Description: Sanjomeitengai
Author: 9D
Version: 1.0
*/
@charset "UTF-8";

html, body{
	font-family: "Noto Sans JP", sans-serif;
	font-family: "M PLUS 1p", sans-serif;
	font-size:14pt;
	overflow-x: hidden;
	background-color: #FFFBEF;
	background-color: #F8F3E4;
	margin: 0;
	padding: 0;
	color:#444444;
}

p{
	font-size:1rem;
	line-height: 1.5;
	padding:0;
	margin: 0 0 5px;
}
a, button{
	text-decoration: none;
transition: all 0.5s;
	color:#333333;
}
a:hover{
	opacity: 0.85;
}
img{
	width:100%;
	height: auto;
}
ul{
	margin:0;
	padding:0;
}
li{
	list-style: none;
}
.base-wrap{
	max-width:1284px;
	margin: 0 auto;
padding: 10px 15px 3px;
}
.inner-wrap{
	max-width:1284px;
	margin: 0 auto;
	padding:50px 15px;
}
.main{
	padding-left:0;
	padding-right: 0;
}
section{
	margin:0 auto;
	padding:0;
}
.button-block{
	margin: 30px auto 0;
	text-align: center;
}
.button-block a{
padding: 8px 25px;
border-radius: 35px;
background-color: #F2D154;
font-size: 0.9rem;
}
button.cat-btn {
padding: 5px 15px;
font-size: 0.9rem;
border-radius: 25px;
border: 1px #cccccc solid;
cursor: pointer;
transition: all 0.5s;
margin: 0 auto 8px;
background-color: #ffffff;
}
button:hover.cat-btn {
background-color:#333333;
	color:#ffffff;
}
/*マップ関連*/
iframe{
border-radius:10px; 
}
.route-button-container{
margin:20px 0;
text-align: center;
}
.btn-route{
border-radius:30px;
background-color:#92b552;
color:#ffffff;
padding:10px;
display: block;
font-size:0.8rem;
font-weight: 600;
}


.indent-block{
	text-indent: -0.5em;
	padding-left: 0.5em;
margin: 0 30px;
max-width:600px;
}
.indent-block i{
	color:#ffffff;
}


/* ================================================ */
/* ページ読み込みフェードイン*/
/* ================================================ */
body.is-loading::before {
content: "";
position: fixed;
z-index: 99999;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #fff;
opacity: 1;
pointer-events: none;
transition: opacity 1.5s ease;
}

body.loaded::before {
opacity: 0;
}


/* ================================================ */
/* イントロアニメーション*/
/* ================================================ */
#intro {
position: fixed;
z-index: 100000;
top: 0; left: 0;
width: 100%; height: 100%;
background: #fff;

/* レイアウトは常に確保 */
display: block;
/* 非表示にするのは visibility + opacity のみ */
visibility: hidden;
opacity: 0;
pointer-events: none;

/* ★ opacity のみ 1.5s でフェード ★ */
transition: opacity 1.5s ease;
}

/* ────────────
再生時にこれを付けるとフェードイン
──────────── */
#intro.visible {
/* visibility は即時切り替え */
visibility: visible;
/* opacity はトランジションで 1.5s かけて 1 に */
opacity: 1;
pointer-events: auto;
}


/* ────────────
シルエット(b) と 本体(a)
──────────── */
.silhouette,
.image-a {
position: absolute;
width: 80px;
height: 96px;
left: 50%; top: 50%;
transform: translate(-50%, -50%);
/* アニメーション設定 */
animation-duration: 2s;
animation-timing-function: linear;
animation-fill-mode: forwards;
}

/* (1) シルエットが下から欠ける */
.silhouette {
z-index: 2;
animation-name: silhouette-hide;
}
@keyframes silhouette-hide {
from { clip-path: inset(0 0 0 0); }
to { clip-path: inset(0 0 100% 0); }
}

/* (3) 本体画像が下から現れる */
.image-a {
z-index: 1;
animation-name: image-show;
}
@keyframes image-show {
from { clip-path: inset(100% 0 0 0); }
to { clip-path: inset(0 0 0 0); }
}

/* ────────────
円上を回るアイコン群
──────────── */
.icon-circle {
position: absolute;
width: 200px; height: 200px;
left: 50%; top: 50%;
transform: translate(-50%, -50%);
}

/* アイコン個別設定 */
.icon {
position: absolute;
width: 40px; height: 40px;
left: 50%; top: 50%;
margin-left: -20px;
margin-top:-20px;
}

/* 各アイコンを水平を保ちつつ半径100pxの円周移動 */
@keyframes spin1 { from { transform: rotate( 0deg) translateY(-100px) rotate( 0deg); } to { transform: rotate( 360deg) translateY(-100px) rotate(-360deg); } }
@keyframes spin2 { from { transform: rotate(45deg) translateY(-100px) rotate( -45deg); } to { transform: rotate( 405deg) translateY(-100px) rotate(-405deg); } }
@keyframes spin3 { from { transform: rotate(90deg) translateY(-100px) rotate( -90deg); } to { transform: rotate( 450deg) translateY(-100px) rotate(-450deg); } }
@keyframes spin4 { from { transform: rotate( 135deg) translateY(-100px) rotate(-135deg); } to { transform: rotate( 495deg) translateY(-100px) rotate(-495deg); } }
@keyframes spin5 { from { transform: rotate( 180deg) translateY(-100px) rotate(-180deg); } to { transform: rotate( 540deg) translateY(-100px) rotate(-540deg); } }
@keyframes spin6 { from { transform: rotate( 225deg) translateY(-100px) rotate(-225deg); } to { transform: rotate( 585deg) translateY(-100px) rotate(-585deg); } }
@keyframes spin7 { from { transform: rotate( 270deg) translateY(-100px) rotate(-270deg); } to { transform: rotate( 630deg) translateY(-100px) rotate(-630deg); } }
@keyframes spin8 { from { transform: rotate( 315deg) translateY(-100px) rotate(-315deg); } to { transform: rotate( 675deg) translateY(-100px) rotate(-675deg); } }

/* 各アイコンにアニメーション適用 */
.icon:nth-child(1) { animation: spin1 30s linear infinite; }
.icon:nth-child(2) { animation: spin2 30s linear infinite; }
.icon:nth-child(3) { animation: spin3 30s linear infinite; }
.icon:nth-child(4) { animation: spin4 30s linear infinite; }
.icon:nth-child(5) { animation: spin5 30s linear infinite; }
.icon:nth-child(6) { animation: spin6 30s linear infinite; }
.icon:nth-child(7) { animation: spin7 30s linear infinite; }
.icon:nth-child(8) { animation: spin8 30s linear infinite; }


/* ================================================ */
/* ヘッダー*/
/* ================================================ */
/*header {
position: fixed;
top: -100px;
left: 0;
width: 100%;
z-index: 1000;
transition: top 0.5s ease;
	background-color:#ffffff;
}*/
header {
position: fixed;
top: -100px;
left: 0;
height: 85px;
width: 100%;
z-index: 1000;
transition: top 0.5s ease;

background-image: url("images/header/bg.png");
background-size: 100% 100%; 
background-position: center top;
background-repeat: no-repeat;
}
header.slide-in {
top: 0;
}

header .base-wrap{
	display: flex;
}
.site-logo img{
	max-width:260px;
}
.lan-contact {
	display: flex;
	align-items: center;
	margin-left: auto;
	padding-right: 100px;
}
.overlay-menu-grid {
	display:grid;
gap: 15px;
	grid-template-columns: 1fr 1fr;
margin: 0 auto;
text-align: center;
	padding: 0 20px;
	max-width:600px;
}
.select-wrapper {
position: relative;
display: inline-block;
}
.language-select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.language-select::-ms-expand {
display: none;
}
.language-select {
width: 100%;
padding: 8px 30px;
text-align: center;
text-align-last: center;
-ms-text-align-last: center;
-webkit-text-align-last: center;
-moz-text-align-last: center;
border: 1px solid #cccccc;
border-radius: 35px;
font-size: 1rem;
line-height: 1.2;
cursor: pointer;
box-sizing: border-box;
}
.select-wrapper::before {
content: "\f57d";
font-family: "Font Awesome 6 Free";
font-weight: 900;
position: absolute;
top: 50%;
left: 20px;
transform: translateY(-50%);
font-size: 1.1em;
color: #333333;
pointer-events: none;
}
.select-wrapper::after {
content: "\f0d7";
font-family: "Font Awesome 6 Free";
font-weight: 900;
position: absolute;
top: 50%;
right: 20px;
transform: translateY(-50%);
font-size: 0.9em;
color: #666666;
pointer-events: none;
}
.contact-button {
background-color: #92b552;
color: #fff;
padding: 5px 20px 7px 40px;
text-decoration: none;
border-radius: 35px;
font-size: 1rem;
	position: relative;
	display: block;
}
.contact-button::after {
content: "\f0e0";
font-family: "Font Awesome 6 Free";
font-weight: 900;
position: absolute;
top: 50%;
left: 25px;
transform: translateY(-50%);
font-size: 0.95em;
color: #ffffff;
pointer-events: none;
}
.contact-button:hover {
background-color: #538c38;
}
.social-block{
	margin: 30px auto;
	text-align: center;
}
.social-x a{
	font-size:1rem;
}
.social-x a img{
	width:25px;
	height:25px;
	margin-right:10px;
	vertical-align:-6px;
}



/* ================================================ */
/* 検索ツール */
/* ================================================ */
.search-block{
	text-align: center;
}
.search-block h1{
	font-size:1.5rem;
}
.overlay-menu .search-block{
	padding: 0 0 100px 0;
}
.page .search-block{
	margin: 0 auto;
}
.search-block h2{
	font-size:1.2rem;
}
.search-block input[type="text"] {
font-size: 1rem;
padding: 5px 10px;
border-radius: 30px;
border: 2px #999999 solid;
	max-width:550px;
	width:80%;
}
.search-block .search-filters{
	margin:20px auto;
}
.search-block h3{
	font-weight:700;
	font-size:1rem;
	display: inline-block;
}
.search-block .fieldset{
	max-width: 680px;
	width: 80%;
	margin:0 auto 30px;
	display: block;
	flex-wrap: wrap;
	gap: 0.5em 1em;
}

.search-block .fieldset label {
white-space: nowrap;
display: inline-block;
margin-right:3px;
}
.search-block .cat-buttons{
margin:10px auto;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.search-block button{
font-size: 0.9rem;
padding: 5px 20px;
border-radius: 30px;
	border:none;
	background-color: #92b552;
	color:#ffffff;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.search-block button:hover{
	opacity:0.85;
}
.cat-checkbox {
display: none;
}
.cat-button {
display: inline-block;
padding: 6px 12px;
font-size: 14px;
background-color: #ffffff;
color: #333333;
border: 1px solid #333333;
border-radius: 30px;
cursor: pointer;
user-select: none;
transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.cat-checkbox:checked + .cat-button {
background-color: #333333;
color: #ffffff;
border: 1px solid #ffffff;
}
.cat-button:hover {
opacity: 0.85;
}

input[type="checkbox"] {
transform: scale(1.1);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
width: 20px;
height: 20px;
background-color: #fff;
border: 1px #333333 solid;
border-radius: 3px;
cursor: pointer;
position: relative;
box-sizing: border-box;
margin: 3px 3px 3px 4px;
vertical-align: bottom;
}
input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1rem;
  color: #92b552;
  opacity: 0;
}
input[type="checkbox"]:checked::after {
  content: "✔";
  opacity: 1;
}

.search-block input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border:1px #333333 solid;
  background-color: #fff;
  cursor: pointer;
  position: relative;
  margin: 3px 3px 3px 4px;
  box-sizing: border-box;
}

.search-block input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 10px;
  height: 10px;
  background-color: #92b552;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.1s ease-in-out;
}
.search-block input[type="checkbox"]:checked::after {
  transform: translate(-50%, -50%) scale(1.2);
}




/* ================================================ */
/* ハンバーガーメニュー */
/* ================================================ */
.hamburger-menu {
position: fixed;
top: 20px;
right: 20px;
z-index: 1001;
width: 65px;
height: 65px;
background-color: #9f9fff;
border-radius: 35px;
display: grid;
grid-template-rows: repeat(3, 4px);
gap: 7px;
align-content: center;
justify-items: center;
cursor: pointer;
padding: 0;
	border:3px #ffffff solid;
}

.hamburger-menu span {
width: 35px; /* 白いバーの幅 */
height: 4px; /* 白いバーの高さ */
background: #ffffff;
border-radius: 2px;
}
.hamburger-text{
	font-style:normal;
	font-size:0.7rem;
	font-weight:600;
	padding:0;
	margin:0;
	color:#ffffff;
	line-height: 1;
}

/* ================================================ */
/* overlay-menu（円形マスク＋フェード） */
/* ================================================ */
.overlay-menu {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;

/* ベースの背景色（オーバーレイ） */
background: rgba(217, 224, 33, 0.95);

/* 初期状態は完全に透明にする */
opacity: 0;
pointer-events: none;

/* clip-path 用のカスタムプロパティ */
--circle-radius: 0px;
--circle-x: 0px;
--circle-y: 0px;

clip-path: circle(var(--circle-radius) at var(--circle-x) var(--circle-y));
-webkit-clip-path: circle(var(--circle-radius) at var(--circle-x) var(--circle-y));
/* 絵面のちらつきを軽減するヒント */
will-change: clip-path, opacity;

z-index: 1000;
overflow: hidden;
}


/* オーバーレイ内コンテンツを包む要素 */
/* 高さいっぱい（100vh）までスクロール可能にする */
.overlay-menu-inner {
position: relative; /* スクロール領域として機能させるために position を付与 */
max-height: 100vh;/* ビューポート内で 100% の高さを確保 */
overflow-y: auto; /* 垂直方向スクロールを許可 */

/* 初期は中身を見せない（opacity:0） */
opacity: 0;
transform: translateY(20px); /* 「ふわっ」と浮かせる向きに下から 20px 下げる */
}

/* メニュー中身のリスト */
.overlay-menu-list {
list-style: none;
padding:90px 0 20px 0;
margin: 0 auto;
text-align: center;
display: grid;
gap: 20px;
grid-template-columns: 1fr 1fr;
max-width: 600px;
}
.overlay-menu-list a {
display: block;;
color: #195002;
font-size: 1rem;
text-decoration: none;
cursor: pointer;
background-color: #ffffff;
border-radius: 25px;
padding: 5px;
}
/*.overlay-menu-list a:hover {
font-size: 1.05rem;
letter-spacing: 0.1em;
}*/
.noscroll {
overflow: hidden;
}





/* ================================================ */
/* トップ */
/* ================================================ */
/*キービジュアル*/
.sec-keyvisual{
/*	background-color: #eaead3;*/
}
.sec-keyvisual .base-wrap{
	position: relative;
}

.top-logo{
	position: absolute;
	top:0;
	left:35px;
	padding: 10px 20px;
	border-radius: 0 0 20px 20px;
	background-color: #ffffff;
	z-index: 99;
	text-align: center;
}
.top-logo h2{
	font-size:0.9rem;
	font-weight:700;
	color:#6F5C00;
	color:#eb6b6b;
	margin: 0;
	padding: 0 0 5px 0;
	letter-spacing: 0.18em;
}
.top-logo img{
	width:390px;	
}


/*トップスライダー*/
.top-slider.slick-slider{
	margin: 0 auto;
	padding: 10px 0;
}
.top-slider .slide-item{
	clip-path: inset(0 round 25px);
}

.top-slider .slide-inner {
position: relative;
overflow: hidden;
}
.top-slider .slide-inner img {
transform-origin: center center;
width: 100%;
height: auto;
display: block;
object-fit: cover;
object-position: center center;
}

/*トップ吹き出し*/
.balloon {
	position: absolute;
	bottom:0;
	right:0;
	display: grid;
gap: 1em 0;
}
.balloon-section {
display: flex;
align-items: center;
gap: 0 15px;
}
.balloon-p {
display: inline-block;
position: relative;
max-width: 80%;
margin: 0;
padding: 10px 20px;
border-radius: 35px;
color: #333333;
font-size: 1.1rem;
line-height:1.2;
}
.balloon-p.left {
background-color: #fff;
}

.balloon-p.right {
background-color: #F2D154;
margin: 0 10px 0 auto;
}

.balloon-p::before {
position: absolute;
top: -15px;
width: 20px;
height: 30px;
content: '';
}

.balloon-p.left::before {
left: -10px;
border-radius: 0 0 0 15px;
box-shadow: -3px -15px 0 -7px white inset;
}

.balloon-p.right::before {
right: -10px;
border-radius: 0 0 15px 0;
box-shadow: 3px -15px 0 -7px #F2D154 inset;
}
/*三条とーり*/
.balloon-image {
max-width: 180px;
flex-shrink: 0;
}

.balloon-image img.character-img {
width: 100%;
height: auto;
display: block;
margin: 0 auto;
transform-origin: bottom center;
animation: swingAndBounce 10s infinite;
}

/* 複合アニメーション（合計20秒周期） */
@keyframes swingAndBounce {
0%, 25%{ transform: rotate(0) translateY(0); }

30%{ transform: rotate(10deg); }
35%{ transform: rotate(-8deg); }/* 少し弱くする */
40%{ transform: rotate(6deg); }
45%{ transform: rotate(-4deg); }
50%{ transform: rotate(0deg); }

75%{ transform: rotate(0) translateY(0); }

80%{ transform: translateY(-20px); }
85%{ transform: translateY(0); }
90%{ transform: translateY(-10px); }
95%{ transform: translateY(0); }
100% { transform: translateY(0); }
}

/*最新ニュース*/
.latest-grid{
	display:grid;
	gap:50px;
	grid-template-columns: 2fr 1.5fr;
}
.latest-info-grid{
	position: relative;
	display:grid;
	gap:30px;
	grid-template-columns: 1fr 4fr;
	padding: 15px 0;
	margin: 0 auto;
	border-bottom:1px #333333 dotted;
}
.new-label{
	position:absolute;
	top:5px;
	left:5px;
	padding:3px 10px;
	font-size:0.75rem;
	background-color: #eb6b6b;
	color:#ffffff;
	border-radius: 4px;
}
.latest-info-grid:nth-child(1){
	border-top:1px #333333 dotted;	
}
.latest-info-thumbnail {
width: 100%;
aspect-ratio: 2 / 1.3;
overflow: hidden;
}
.latest-info-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center center;
}
.latest-info-date{
	font-size:0.8rem;
}
.latest-info-category{
	font-size:0.8rem;
	padding: 2px 8px;
	border-radius:20px;
	background-color: #ffffff;
	float: right;
}
.latest-info-title{
	margin: 0 0 5px;
	font-size:1rem;
	font-weight:500;
}
.latest-grid > .latest-item {
    min-width: 0;
    overflow: hidden; /* はみ出し防止 */
	padding-bottom:10px;
}
/*イベント用スライダー*/
.event-slider {
	margin: 0 auto;
    width: 100%;
}
/* 2. スライダー内の画像が親の幅を超えないように固定 */
.event-slider img {
    width: 100%;
    height: auto;
    display: block; /* 画像の下に隙間ができるのを防ぐ */
}
.event-item {
position: relative;
display: block;
}
.event-item img {
object-fit: cover;
width: 100%;
height: 400px;
display: block;
border-radius: 35px;
}
/* dots */
.event-information .slick-dots {
display: flex !important;
justify-content: center;
align-items: center;
gap: 6px;
margin: 10px auto 0;
padding: 0;
list-style: none;
height: 6px;
	bottom:inherit;
	position:relative;
	width:50%;
}

/* 各dotを見える棒状に */
.event-information .slick-dots li {
flex: 1;
height: 6px;
background: #ccc;
position: relative;
transition: background 0.3s ease;
}

/* アクティブなdotだけ色を変える */
.event-information .slick-dots li.slick-active {
background: #c69c6d;
}

/* button本体は透明にして干渉させない */
.event-information .slick-dots li button.dot-bar {
opacity: 0;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
border: none;
background: none;
position: absolute;
top: 0;
left: 0;
z-index: 1;
cursor: pointer;
}


/*名店街紹介*/
.introduction{
}
.introduction-grid{
	display: grid;
	gap:0;
	grid-template-columns:1.2fr 1fr;
	margin:100px auto 50px;
}
.introduction-item:nth-child(1){
	background-color: #ffffff;
	padding: 40px 60px 40px 40px;
	border-radius: 20px;
/*	box-shadow: 0px 0px 6px 2px rgb(0 0 0 / 20%);	*/
}
.introduction-item:nth-child(2) {
margin-left: -20px;
margin-top: -60px;
}
.introduction-item:nth-child(2) img{
	border-radius: 20px;
}
.introduction-box h2{
	font-size:1.4rem;
	color:#736357;
	margin:0;
	padding: 0 0 20px 0;
position: relative;
line-height: 1.8;
}
.introduction-box h2 span {
position: relative;
display: inline-block;
z-index: 1;
}
/* 1つ目の span */
.introduction-box h2 span:nth-of-type(1)::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 5px;/* ドットの高さ */
background-image: radial-gradient(circle 2.5px, #d99c8c 100%, transparent 0);
background-repeat: repeat-x;
background-size: 10px 5px;/* 横方向：ドット径5px＋余白5px */
z-index: -1;
}

/* 2つ目の span */
.introduction-box h2 span:nth-of-type(2)::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 5px;
background-image: radial-gradient(circle 2.5px, #8ce3dc 100%, transparent 0);
background-repeat: repeat-x;
background-size: 10px 5px;
z-index: -1;
}




.introduction-btn-grid{
	display: grid;
	gap:15px;
	grid-template-columns:1fr 1fr;
	justify-items: center;
	align-items: center;
	margin:50px auto 0;
}
.introduction-btn-item{
	width: 100%;
}
.introduction-btn-item a{
	text-align: center;
	padding: 8px 15px;
	font-size:1rem;
	font-weight: 600;
background-color: #92b552;
	color:#ffffff;
	border-radius: 35px;
	border:2px #ffffff solid;
	display: block;
	position: relative;
}
.introduction-btn-item a i::before{
position: absolute;
left: 5%;
top: 30%;
}

/*店舗紹介&店舗検索*/
.shop-search{
	background-color: #ffffff;
}

.shop-search-grid {
display: grid;
gap: 30px;
grid-template-columns: 1fr;
align-items: start;
	margin: 0 auto 40px;
}

.shop-search-item {
/* Gridの列幅を超えそうなときも、このセル内で子が縮まるようにする */
min-width: 0;
box-sizing: border-box;
}
/* ================================================ */
/* モーダル関連 */
/* ================================================ */
.shop-btn-grid{
	display:grid;
	gap:20px;
	grid-template-columns: 1fr 1fr;
}
.btn-search{
	position: relative;
	text-align: center;
	cursor: pointer;
	padding: 10px;
	border-radius: 35px;
	background-color:#F2D154;
	font-size:1rem;
	font-weight:600;
}
.btn-search::before{
font-family: "Font Awesome 6 Free";
position: absolute;
left: 5%;
top: 30%;
}
.btn-search:nth-child(1)::before {
content: "\f03a";
}
.btn-search:nth-child(2)::before {
content: "\f002";
}

#modalOverlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
z-index: 2000;
opacity: 0;
transition: opacity 0.4s ease;
pointer-events: none;
}
/* オーバーレイが表示されたとき */
#modalOverlay.show {
opacity: 1;
pointer-events: auto;
}
/* モーダルのベーススタイル */
.modal {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(1.2);
width: 90%;
max-width: 1000px;
max-height: 95%;
background-color: white;
box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.2);
z-index: 2001;
opacity: 0;
transition: transform 0.4s ease, opacity 0.4s ease;
/*display: none;*/
overflow: hidden;
visibility: hidden; /* ← 追加 */
}
/* モーダルが表示されたときのアニメーション */
.modal.show {
transform: translate(-50%, -50%) scale(1);
opacity: 1;
visibility: visible; /* ← 追加 */
}
.modal.closing {
transform: translate(-50%, -50%) scale(1.2);
opacity: 0;
transition: transform 0.4s ease, opacity 0.4s ease;
}
.modalContent {
	position: relative;
	height: 100%;
	padding: 65px 0 40px;
	box-sizing: border-box;
	background-color: #F2D154;
}
.modalContent img {
/*border-radius:8px;*/
}
/* モーダル内でのスクロール可能エリア */
.modalBody {
padding: 20px;
max-height: calc(80vh - 40px);
overflow-y: auto;
box-sizing: border-box;
}
/* スクロールバーのスタイル */
.modalBody::-webkit-scrollbar {
width: 8px;
}
.modalBody::-webkit-scrollbar-thumb {
background-color: rgba(0, 0, 0, 0.2);
border-radius: 35px;
}
.modalBody::-webkit-scrollbar-track {
background: transparent;
}
.modalBody h2 {
margin:0 auto 15px;
font-size:2rem;
line-height: 1.2;
}
.modalBody h2 span{
font-size:1.5rem;
	margin-left:20px;
}
#modal-search .modalBody h2 span{
	color:#e60012;	
}
.modalBody h5{
	color:#cccccc;
	font-size:2rem;
	margin:10px auto;
}
.modalBody p{
	font-family: "Noto Sans JP", sans-serif;
	font-weight:normal;
}

.closeBtn {
position: absolute;
top: 15px;
right: 15px;
background-color: #eeeeee;
border: none;
padding: 5px 10px;
border-radius: 8px;
font-size: 16px;
cursor: pointer;
z-index: 10;
}
body.modalOpen {
overflow: hidden;
}


/* ================================================ */
/* 店舗スライダー */
/* ================================================ */
.pickup-box{
	margin: 60px auto 30px;
	text-align: center;
}
.pickup {
display: flex;
justify-content: center;
position: relative;
max-width: 180px;
margin:0 auto;
padding:10px;
border-radius: 35px;
background-color:#eb6b6b;
color: #ffffff;
	font-size:1rem;
	font-weight:600;
	animation: pickupBounce 3s infinite;
}
.pickup::before {
position: absolute;
bottom: -10px;
width: 30px;
height: 15px;
background-color:#eb6b6b;
clip-path: polygon(0 0, 100% 0, 50% 100%);
content: '';
}
/* アニメーション定義 */
@keyframes pickupBounce {
0%, 100% {
transform: translateY(0);
}
5% {
transform: translateY(-10px);
}
10% {
transform: translateY(0);
}
15% {
transform: translateY(-6px);
}
20% {
transform: translateY(0);
}
}

.shop-item {
padding: 0;
text-align: left;
position: relative;
}
.shop-thumbnail {
width: 100%;
aspect-ratio: 16 / 9;
overflow: hidden;
	position: relative;
	border-radius: 10px 10px 0 0;
}
.shop-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block; 
}
.shop-thumbnail .shop-service{
	position:absolute;
	bottom:5px;
	right:5px;
	font-size:0.7rem;
background-color: #ffffff;
border-radius: 25px;
padding: 3px 10px;
}
.shop-name {
	background: #ffefd5;
	padding:10px 15px;
	font-size: 0.9rem;
	font-weight:500;
	margin: 0;
	border-radius: 0 0 10px 10px;
}
.shop-slider .slick-dots{
	bottom:-35px;
}
.shop-slider .slick-dots li button {
background: transparent;
color: inherit;
width: auto;
height: auto;
padding: 0;
}
.shop-slider .slick-dots li button:before {
font-family: "Font Awesome 5 Free";
font-weight: 400;
content: "\f0c8";
font-size: 0.7rem;
opacity: 0.6; 
	color:#777777;
}
.shop-slider .slick-dots li.slick-active button:before {
font-weight: 900; /* ソリッドは900 */
opacity: 1;
	color:greenyellow;
	font-size:1rem;
}
.shop-meta {
font-size: 0.8rem;
color: #666;
margin: 10px 0;
display: flex;
gap: 10px;
}

.shop-excerpt {
font-size: 0.9rem;
color: #333;
}
/* 各スライド間に20pxの余白 */
.shop-slider .slick-slide {
margin-right: 20px;
}
/* スライダー全体の最後の余白を除去するため */
.shop-slider .slick-list {
margin-right: -20px;
}
/*矢印*/
.shop-slider .slick-prev:before,.shop-slider .slick-next:before{
	color:#fff000;
	font-size:1.5rem;
}


/*各ページへのバナー*/
.banner-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 15px;
margin: 40px 0;
justify-content: center;
align-items: center;
}
/* ────────────────────────────────────────────
 バナー本体：transform は外す／テキストを前面に
──────────────────────────────────────────── */
.banner-grid a {
position: relative;
z-index: 0;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100px;
color: #fff;
text-decoration: none;
border-radius: 0 20px 0 20px;
font-family: "Kaisei Opti", serif;
font-size: 1.4rem;
font-weight: bold;
text-align: center;
	line-height:1.2;
}
/* 背景画像 */
.banner-grid a::before {
content: "";
position: absolute;
inset: 0;
background-size: cover;
background-position: center;
transition: transform .3s ease;
border-radius: inherit;
z-index: -2; /* もっとも奥 */
}

/* 暗いオーバーレイ */
.banner-grid a::after {
content: "";
position: absolute;
inset: 0;
background: rgba(30, 94, 36, 0.6);
transition: background .3s ease;
border-radius: inherit;
z-index: -1; /* 背景の上、テキストの下 */
}

/* ホバー時：背景だけ拡大 & オーバーレイを薄く */
.banner-grid a:hover::before {
transform: scale(1.1);
}
.banner-grid a:hover::after {
background: rgba(30, 94, 36, 0.2);
}

/* 各バナーの背景画像を ::before に割り当て */
.banner-grid a:nth-child(1)::before { background-image: url("images/front/banner/backimg-01.jpg"); }
.banner-grid a:nth-child(2)::before { background-image: url("images/front/banner/backimg-02.jpg"); }
.banner-grid a:nth-child(3)::before { background-image: url("images/front/banner/backimg-03.jpg"); }
.banner-grid a:nth-child(4)::before { background-image: url("images/front/banner/backimg-04.jpg"); }
.banner-grid a:nth-child(5)::before { background-image: url("images/front/banner/backimg-05.jpg"); }
.banner-grid a:nth-child(6)::before { background-image: url("images/front/banner/backimg-06.jpg"); }
.banner-grid a:nth-child(7)::before { background-image: url("images/front/banner/backimg-07.jpg"); }
.banner-grid a:nth-child(8)::before { background-image: url("images/front/banner/backimg-08.jpg"); }


/* ================================================ */
/* フッター前アニメーション */
/* ================================================ */
.animation-block {
position: relative;
overflow: hidden;
width: 100%;
height: 220px;
}
.animation-block img {
pointer-events: none;
/*opacity: 0.5;*/
}

/* ラッパーは JS で top/left を指定 */
.animation-block .icon-wrapper {
position: absolute;
width: 70px;
height: 70px;
overflow: visible;
}

/* 画像はラッパーいっぱいに */
.animation-block .icon-wrapper img {
display: block;
width: 100%;
height: 100%;
pointer-events: none;
/*opacity: 0.5;*/
}

/* 画像本体の上下ゆらぎ */
.animation-block .icon-wrapper img.float {
animation: float 3s ease-in-out infinite alternate;
}

@keyframes float {
from { transform: translateY(0); }
to { transform: translateY(10px); }
}

@media (max-width: 500px) {
.animation-block .icon-wrapper {
width: 45px;
height: 45px;
}
}

/* ================================================ */
/* フッター */
/* ================================================ */
.banner-sec,.upper-footer{
	/*background-color:#F2D154;*/
}
footer{
	background-color: #92b552;
}
footer.withouthome{
	margin-top: 150px;
}
footer .base-wrap{
	position: relative;
}
.walk{
	position: absolute;
}
.walk-01{
	top:-55px;
	right:90px;
}
.walk-01 img{
	width:32px;
}
.walk-02{
	top:-92px;
	right:40px;
}
.walk-02 img{
	width:60px;
}
.walk-03{
	top:-98px;
	right:20px;
}
.walk-03 img{
	width:44px;
}
.footer-grid{
	margin:30px auto;
	display: grid;
	gap:30px;
	grid-template-columns:1fr 1fr 1.5fr 1.5fr;
}
.footer-logo{
	margin-bottom: 10px;
}
.footer-item h3{
	font-size:1rem;
	margin: 0 auto 10px;
	padding:0;
	color:#ffffff;
}
.footer-item ul li{
	padding:0 0 5px 20px;
}
.footer-item ul li a{
	color:#ffffff;
	font-size:0.8rem;
}
.footer-item:nth-child(3) p{
	font-size:0.8rem;
  color: #ffffff;
}

.footer-btn{
  margin: 20px auto;
}
.footer-btn a{
  font-size: 0.9rem;
  padding: 5px 20px;
  background-color: #F2D154;
  border-radius: 30px;
}
.footer-tel p{
  font-size:1.2rem;
  font-weight: 600;
}
.footer-tel p a{
  color:#ffffff;
}
.footer-item:nth-child(4){
	text-align: right;
}
.footer-item:nth-child(4) img{
	max-width: 340px;
}
.footer-item:nth-child(4) p{
	font-size:0.8rem;	
}

.copyright{
	text-align: center;
	font-size:0.7rem;
	color:#ffffff;
}

/*---- トップへもどるボタン ----*/
#back-to-top {
  position: fixed;
  bottom: -200px;
  right: 10px;
  width: 50px;
  height: 50px;
  background-color: rgba(144, 238, 144, 0.9);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  cursor: pointer;
  transition: bottom 0.3s ease;
  overflow: visible;     /* ← はみ出し表示 */
  z-index: 1000;         /* ← 明示的にスタッキングコンテキスト化 */
}
#back-to-top.show {
  bottom: 10px;
}

/* ホバー時の広がる背景 */
#back-to-top::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.4s ease;
  pointer-events: none;  /* ホバーを画像で邪魔させない */
  z-index: 0;            /* ← 疑似要素を背面に */
}
#back-to-top:hover::before {
  transform: translate(-50%, -50%) scale(1);
}

/* 矢印アイコン */
#back-to-top i {
  font-size: 1.5rem;
  position: relative;    /* z-index を効かせる */
  z-index: 1;            /* 疑似要素の上に */
}

/* ホバー時にフェードアップで表示する画像 */
.back-to-top-img {
  position: absolute;
  top: -50px;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  pointer-events: none;  /* ホバー状態を維持 */
  z-index: 2;            /* 矢印＆疑似要素の上に */
  width:60px;
}
#back-to-top:hover .back-to-top-img {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}


/* ================================================ */
/* 配下ページ共通 */
/* ================================================ */
/*ヘッダー*/
.page-visual{
background-color: #92b552;
}
.page-visual .base-wrap{
position:relative;
}
.page-visual h1{
font-size:1.5rem;
margin: 0;
padding: 30px 10px 30px 100px;
color:#ffffff;
}
.page-visual h2{
 	font-family: "Noto Sans JP", sans-serif; 
font-weight: 900;
font-size:1.8rem;
position: absolute;
right:10px;
bottom:-40px;
color:#F8F3E4;
}
.page-visual img{
position: absolute;
left:10px;
bottom:-3px;
width:90px;
height:auto;
}
/*パンくずリスト*/
nav.breadcrumb{
	font-size:0.8rem;
}


/* ================================================ */
/* 店舗一覧 */
/* ================================================ */

/*店舗一覧*/
.shop-heading{
text-align: center;
margin: 0 auto 30px;
}
#cat-cat_a,#cat-cat_b,#cat-cat_c,#cat-cat_d,#cat-cat_e,#cat-cat_f,#cat-cat_g,#cat-cat_h{
margin-bottom: 80px;
}
.shop-thumb img {
width: 100%;
height: auto;
display: block;
}
.shop-list {
display: grid;
gap: 10px;
grid-template-columns: 1fr 1fr;
}
.shop-list li{
background: rgba(255, 255, 255, 0.7);
padding: 10px 15px;
border-radius: 10px;
position: relative;
}
.shop-search-container .search-block{
padding-bottom: 50px;
margin-bottom: 50px;
}

/* ================================================ */
/*エリア別一覧*/
/* ================================================ */
.area-slider-for.slick-initialized.slick-slider {
 padding: 0 30px 30px; 
}
.area-slider-for .slick-slide{
margin: 0 10px;
}
.area-slider-nav.slick-initialized.slick-slider {
margin: 0 auto 100px;
}
.area-slider-nav .slider-list,.area-slider-nav .slick-list {
margin: 0 -5px;
}
.area-slider-nav .slick-slide {
margin: 0 5px;
}
.area-slider-nav .slider-thumb {
box-sizing: border-box;
border: 3px solid #fff;
border-radius: 10px;
overflow: hidden;
}
.area-slider-nav .slider-thumb img {
display: block;
width: 100%;
height: auto;
}
.shop-area-container .shop-list li {
padding: 30px 15px 15px;
}

.shop-area-code {
position: absolute;
top: 0;
right: 0;
padding: 2px 10px;
background-color: #009245;
color: #ffffff;
font-size: 0.9rem;
text-align: center;
font-weight: 700;
border-radius: 0 10px 0 0;
}

/*マップ画像拡大用*/
.shop-image-modal {
display: none;
position: fixed;
top: 0; left: 0;
width: 100%; height: 100%;
background: rgba(0,200,0,0.9);
justify-content: center;
align-items: center;
z-index: 10000;
}
.shop-image-modal .modal-img {
max-width: 95%;
max-height: 95%;
/* iOS Safari はデフォルトでピンチズームをサポート */
}
.shop-image-modal .close-modal {
position: absolute;
top: 20px; right: 20px;
font-size: 2rem;
color: #fff;
cursor: pointer;
}
/*矢印調整*/
.area-slider-for.slick-initialized.slick-slider .slick-prev, .area-slider-for.slick-initialized.slick-slider .slick-next{
	display:none;
}
.area-slider-nav.slick-initialized.slick-slider .slick-prev, .area-slider-nav.slick-initialized.slick-slider .slick-next{
	z-index:1;
}
.area-slider-nav.slick-initialized.slick-slider .slick-prev{
	left:-5px;
}
.area-slider-nav.slick-initialized.slick-slider .slick-next{
	right:5px;
}
.area-slider-nav.slick-initialized.slick-slider .slick-prev:before,.area-slider-nav.slick-initialized.slick-slider .slick-next:before{
	font-size:30px;
text-shadow: 1px 1px 5px #666666;
}

.shop-list h3{
	font-size:1rem;
font-weight: 500;
	margin: 0 auto 10px;
}
.shop-list h3 i{
color:#ffffff;
background-color: #F2D154;
padding: 9px 6px;
border-radius: 25px;
	margin-right:5px;
}
.shop-block{
	display: grid;
	gap:15px;
	grid-template-columns:1fr 5fr;
	margin:10px auto;
}

.shop-block .shop-area,.shop-block .shop-cat{
	font-size:0.7rem;
	margin: 0 1px 2px 0px;
	border-radius:30px;
	background-color:#ffffff;
	color:#333333;
	padding:3px 10px;
	display: inline-block;
box-shadow: 0px 0px 1px 1px #ccc;	
}

.shop-block .shop-service{
text-align: right;
margin-bottom: 20px;
}
.shop-block .shop-service span{
	padding:3px 10px;
	font-size:0.7rem;
	font-weight: normal;
	background-color:#a6d67e;
	border-radius: 3px;
}
.heading-cat{
	display: block;
	background-color: #F2D154;
	padding: 10px;
	font-size:1.2rem;
	border-radius: 10px;
}
.heading-cat .cat-icon{
	width:40px;
	height:36px;
	vertical-align: middle;
	margin-right:5px;
}
h3.widget-title {
font-size: 0.9rem;
background-color: #a6d67e;
padding: 5px 10px;
border-radius: 5px;
}
.widget ul {
	margin-bottom:40px;
}
.widget ul li {
font-size: 0.8rem;
margin-left: 20px;
margin-bottom: 10px;
padding-left: 0px;
list-style: disc;
}


/* ================================================ */
/*店舗詳細*/
/* ================================================ */
.single-shop-name h1{
font-size:1.2rem;
margin: 0 auto 10px;
}
.single-shop-name ul{
padding-left:50px;
position: relative;
margin: 0 auto 30px;
}
.single-shop-name ul li{
display: inline-block;
border-radius: 25px;
margin-right: 5px;
background-color: #ffffff;
padding: 3px 15px;
font-size:0.9rem;
}
.single-shop-name ul::before {
content: "";
position: absolute;
top: -3px;
left: 0;
width: 30px;
height: 30px;
background-position: center;
background-size: 25px 25px;
background-repeat: no-repeat;
background-color: #F2D154;
padding: 5px;
border-radius: 35px;
}

.single-shop-name ul.cat_a::before{
background-image: url("images/shops/icon/cat-01.svg");
}
.single-shop-name ul.cat_b::before{
background-image: url("images/shops/icon/cat-02.svg");
}
.single-shop-name ul.cat_c::before{
background-image: url("images/shops/icon/cat-03.svg");
}
.single-shop-name ul.cat_d::before{
background-image: url("images/shops/icon/cat-04.svg");
}
.single-shop-name ul.cat_e::before{
background-image: url("images/shops/icon/cat-05.svg");
}
.single-shop-name ul.cat_f::before{
background-image: url("images/shops/icon/cat-06.svg");
}
.single-shop-name ul.cat_g::before{
background-image: url("images/shops/icon/cat-07.svg");
}
.single-shop-name ul.cat_h::before{
background-image: url("images/shops/icon/cat-08.svg");
}


.shop-grid-01 {
display: grid;
gap: 40px;
grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
width: 100%;
margin: 10px auto 30px;
}
.single-shop-slider,
.single-shop-slider img {
width: 100%;
height: auto;
display: block;
border-radius:15px;
}
.single-shop-slider img {
aspect-ratio: 8/5;
object-fit: cover;
object-position: center;
}
.map-embed iframe{
height:350px;
}
.single-shop-box{
margin: 0 auto 20px;
background: rgba(255, 255, 255, 0.6);
border-radius: 10px;
}
.single-shop-box h2{
font-size: 1.1rem;
font-weight:600;
margin: 0 auto 10px;
padding:10px 20px;
display: block;
background-color: #F2D154;
border-radius: 10px 10px 0 0;
}
.single-shop-content{
padding: 5px 20px 20px;
font-size:0.9rem;
}
.shop-grid-02{
	display: grid;
	gap:30px;
	grid-template-columns:1fr 3fr;
	margin:10px auto;
}
.shop-item-02 img {
width: 100%;
aspect-ratio: 4/3;
object-fit: cover;
object-position: center;
}
.shop-grid-03{
	display: grid;
	gap:30px;
	grid-template-columns:1fr 4fr;
padding: 5px 10px 15px;
	margin:10px auto;
border-bottom: 1px #999999 dotted;
}
.shop-grid-03:last-child{
border-bottom: none;
}
.shop-item-03{
font-size:0.9rem;
}
.shop-item-03 {
white-space: normal;
word-break: break-all;
overflow-wrap: break-word;
}
.shop-item-03:nth-child(1){
font-weight: 600;
}
.sns-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
gap: 15px;
}
.sns-list li {
display: inline-block;
}
.sns-list img {
width: 35px;
height: auto;
}


/* ================================================ */
/*デジタルサイネージ広告*/
/* ================================================ */
.advertisement-box{
margin: 0 auto 40px;
}
.advertisement-content{
padding: 0;
}
.advertisement-content iframe{
margin: 0 auto;
width:100%;
aspect-ratio: 4/3;
border: 0;
display: block;
}
.advertisement-box h1{
font-size:1.2rem;
font-weight: 600;
padding: 10px 20px;
background-color: #30e852;
border-radius: 5px;
line-height: 1.2;
}
.advertisement-box h2{
font-size:1rem;
font-weight: 600;
padding: 5px 20px;
background-color: #30e852;
margin: 0 auto;
border-radius: 5px;
}
.advertisement-last-box h2{
border-radius: 5px 5px 0 0;
}
.advertisement-charge-grid {
display: grid;
gap: 5px;
grid-template-columns: repeat(3, 1fr);
justify-items: stretch;
align-items: stretch;
margin:5px auto;
}
.advertisement-charge-item {
background-color: #ffffff;
border-radius: 5px;
padding: 10px;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
box-sizing: border-box;
font-size:1rem;
}
.advertisement-charge-item span{
font-size:1.1rem;
font-weight: 600; 
}
.advertisement-charge-item:nth-child(1),.advertisement-charge-item:nth-child(2),.advertisement-charge-item:nth-child(3),.advertisement-charge-item:nth-child(4),.advertisement-charge-item:nth-child(7),.advertisement-charge-item:nth-child(10){
background-color: #F2D154;
}
.advertisement-place-grid{
margin: 30px auto;
display: grid;
gap:40px;
grid-template-columns: 1fr 1.08fr;
max-width: 900px;
}
.advertisement-content ul{
background-color: #ffffff;
border-radius: 0 0 5px 5px;
padding: 20px 20px 10px;
}
.advertisement-content ul li{
display: grid;
gap:20px;
grid-template-columns: 1fr 3fr; 
margin: 0 auto 15px;
border-bottom:1px #999999 dotted;
padding: 0 5px 15px;
font-size:0.9rem;
}
.advertisement-content ul li div:nth-child(1){
font-weight: 600;
}
.advertisement-content ul li:last-child{
border-bottom:none;
padding: 0 5px;
}

/* ================================================ */
/*三条とーり*/
/* ================================================ */
.sanjo-tori{
font-family: "Kaisei Opti", serif;
background-image: url("images/tori/tori-04.png");
background-size: 30%;
background-repeat: no-repeat;
background-position: right bottom;
}
.tori-profile{
margin: 0 auto 50px;
position:relative;
}
.profile-grid{
display: grid;
gap:0;
grid-template-columns: 1fr 3fr;
}
.profile-item:nth-child(2){
background-image: url("images/tori/bg.jpg");
background-repeat: repeat;
background-size: cover;
padding: 140px;
border-radius: 60%;
}
.profile-item:nth-child(2) p{
font-size:1.2rem;
line-height: 1.8;
margin: 0 auto 20px;
}
.profile-item:nth-child(2) p span{
font-size:1.4rem;
}
.tori-profile h2{
position: absolute;
top:-100px;
right:0px;
color:#ffffff;
width:320px;
height:250px;
text-align: center;
background-color: #92b552;
border-radius: 50%;
font-weight: 800;
font-size: 2.2rem;
line-height: 1.2;
display: flex;
align-items: center;/* 上下中央揃え */
justify-content: center; /* 左右中央揃え */
}
.tori-profile img.tori-01{
position: absolute;
bottom:0;
left:0;
max-width: 400px;
text-align: center;
}
.tori-profile img.tori-02 {
  position: absolute;
  top: -30px;
  left: 45%;
  max-width: 100px;
  transform: rotate(-10deg);
  animation: float-diagonal 1s ease-in-out infinite;
}
@keyframes float-diagonal {
  0% {
    transform: rotate(-10deg) translate(0, 0);
  }
  50% {
    transform: rotate(-10deg) translate(-2px, -15px);
  }
  100% {
    transform: rotate(-10deg) translate(0, 0);
  }
}
.tori-video, .tori-copyright{
margin: 0 auto 50px;
}
.tori-video h2, .tori-copyright h2{
font-size:1.2rem;
font-weight: 700;
background-color: #30e852;
margin: 0 auto 20px;
border-radius: 5px;
position:relative;
}
.tori-video h2{
padding: 5px 20px 5px 80px;
}
.tori-copyright h2{
padding: 5px 20px 5px 90px;
}
.tori-video h2:before{
position:absolute;
top:-30px;
left:5px;
content:'';
background-image: url("images/tori/tori-03.png");
background-size: contain;
width:80px;
height:80px;
background-repeat: no-repeat;
}
.tori-copyright h2:before{
position:absolute;
top:-30px;
left:5px;
content:'';
background-image: url("images/tori/tori-02.png");
background-size: contain;
width:80px;
height:80px;
background-repeat: no-repeat;
}

.youtube-wrapper {
max-width: 700px;
margin: 0 auto; /* 中央寄せ（必要に応じて） */
width: 100%;
}
.youtube-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 の比率 */
height: 0;
overflow: hidden;
}
.youtube-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
.tori-content{
padding: 0 10px;
}

/* ================================================ */
/*付近散策用*/
/* ================================================ */

.page-around .around-section {
display: grid;
gap: 80px;
margin:0 auto 120px;
width: 90%;
/*max-width:900px;*/
}
.top-illustration{
margin: 30px auto;
text-align: center;
}
.top-illustration img{
max-width: 600px;
}
.page-around .around-section:nth-of-type(1),
.page-around .around-section:nth-of-type(3) {
grid-template-columns: 2fr 1.5fr;
}
.page-around .around-section:nth-of-type(2),
.page-around .around-section:nth-of-type(4) {
grid-template-columns: 1.5fr 2fr;
}
.page-around .around-text h2{
font-family: "Noto Serif JP", serif;
font-size: 1.5rem;
margin: 0 0 30px;
}
.page-around .around-text h2 i{
font-size:2rem;
margin-right: 10px;
color:#92b552;
}
.page-around .around-text p{
font-family: "Noto Serif JP", serif;
font-size: 1rem;
line-height: 2.5;
color: #333; 
margin-bottom: 40px;
}
.page-around .around-slider {
width: 100%;
overflow: hidden;
box-sizing: border-box;
}
.page-around .around-slider .slide {
display: block;
}
.page-around .around-slider img {
width: 100%;
height: auto;
display: block;
	border-radius:15px;
}
.page-around .slide-caption {
display: block;
clear: both;
text-align: center;
font-size: 0.9rem;
color: #666;
margin-top: 8px;
}

/* ================================================ */
/*リンク集*/
/* ================================================ */
.links-block{
  margin:0 auto 60px;
}
.links-block h3{
font-size:1.2rem;
font-weight: 600;
padding: 10px 20px;
background-color: #F2D154;
border-radius: 5px;
line-height: 1.2;
}
.links-block ul{
  padding: 0 10px;
  display: grid;
  gap:30px;
  grid-template-columns: repeat(3, 1fr);
}
.links-block ul li{
  list-style: none;
  font-size: 0.9rem;
}



/* ================================================ */
/*お問合せ*/
/* ================================================ */
/* 無効時 */
.wpcf7 .wpcf7-submit{
	color:#ffffff;
	font-size:0.9rem;
	border-radius:5px;
}
.wpcf7 .wpcf7-submit:disabled {
background-color: #aaaaaa;
cursor: not-allowed;
opacity: 0.6;
}
/* 有効時 */
.wpcf7 .wpcf7-submit.enabled {
background-color: #4CAF50;
cursor: pointer;
opacity: 1;
}
.wpcf7 {
margin: 0 auto;
max-width: 850px;
}
.h-adr{
	margin: 60px auto;
	max-width:600px;
}
.h-adr p{
	margin-bottom: 20px;
}
.wpcf7-not-valid-tip{
	display:inherit;
}

.wpcf7-form-control {
font-size: 1rem;
border-radius: 3px;
border:none;
padding: 5px 10px;
}
.wpcf7-acceptance{
border:none;
}
.wpcf7-not-valid-tip {
display: block;
font-size: 0.8rem;
font-weight: 600;
}
.wpcf7-form-control-wrap{
	display: inline-block;
}
.wpcf7-form-control-wrap {
width: 100% !important;
box-sizing: border-box;
}
.wpcf7-form-control,.wpcf7-form-control.wide,
.wpcf7-form-control.wide[type="text"],
.wpcf7-form-control.wide[type="email"],
.wpcf7-form-control.wide[type="tel"],
.wpcf7-form-control.wide[type="select"],
.wpcf7-form-control.wide textarea {
display: block !important;
width: 100% !important;
max-width: 100% !important;
box-sizing: border-box !important;
}
.wpcf7-form-control.wpcf7-acceptance{
	padding-left: 0;
}
.wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item{
	margin-left: 0;
}

.wpcf7-form p{
	font-size:0.9rem;
margin: 0 0 1em;
}
.wpcf7-form p label {
margin: 0 0 1em;
	font-size:0.9rem;
	font-weight:500;
width: 100% !important;
}
.wpcf7-form dt p{
	font-weight:700;
	background: rgba(255, 255, 255, 0.8);
	padding: 8px;
}
.wpcf7-form dd{
	margin: 0;
}
.wpcf7-form-control.wide select {
display: block !important;
width: 100% !important;
box-sizing: border-box !important;
}
.wpcf7-list-item-label{
	font-size:0.8rem;
}
.contact-confirm .wpcf7 .wpcf7-submit{
	background-color: #4CAF50!important;
	cursor: pointer;
}
.contact-confirm .wpcf7 .wpcf7-previous{
	cursor: pointer;
}
.contact-confirm .wpcf7-form-control{
	font-size:0.9rem;
}
.contact-confirm .wpcf7-spinner {
    display: none;
}


/* ================================================ */
/*京の歳時記用*/
/* ================================================ */
.page-template-page-season section{
background-image: url(images/seasons/bg-large.svg);
background-repeat: repeat;
background-size: 800px;
background-position: center top;
}
.season-events-container .filters{
text-align: center;
margin-bottom: 50px;
}
.season-events-container .filters h3{
margin: 0 auto 5px;
}
.season-events-container .category-filters{
margin-bottom:30px;
}
.season-event-list{
padding:0 15px;
}
.season-event-item{
font-family: "Kaisei Opti", serif;
	width: 100%;
	margin: 10px auto;
	display:grid;
	gap:30px;
	grid-template-columns: 1fr 1fr 1fr;
	justify-content: center;
	align-items: center;
padding: 0 0 10px;
border-bottom: 1px #333333 dotted;
}
button.category-filter-btn,button.place-filter-btn {
font-size: 0.8rem;
background-color: #ffffff;
border: 1px #333333 solid;
border-radius: 25px;
padding: 2px 10px;
margin-bottom:3px;
}
button.category-filter-btn:hover,button.place-filter-btn:hover {
	opacity:0.85;
background-color: #333333;
	color:#ffffff;
}
.month-heading {
font-family: "Kaisei Opti", serif;
	padding: 10px 20px;
	font-size:1.2rem;
	border-radius: 5px;
}
/* 彩度少し高めの和色バージョン */
.month-1{ background-color: #bfdc8e; } /* 若葉色 */
.month-2{ background-color: #85b8b7; } /* 青磁色 */
.month-3{ background-color: #f4b3c2; } /* 桃色 */
.month-4{ background-color: #b7cc67; } /* 萌黄色 */
.month-5{ background-color: #78b29e; } /* 青竹色 */
.month-6{ background-color: #7fc9c2; } /* 浅葱色 */
.month-7{ background-color: #9cd5e3; } /* 空色 */
.month-8{ background-color: #f5b96e; } /* 蜜柑色 */
.month-9{ background-color: #a48bbd; } /* 菫色 */
.month-10 { background-color: #d79550; } /* 金茶 */
.month-11 { background-color: #bb7a98; } /* 紅藤色 */
.month-12 { background-color: #e0cda9; } /* 砂色 */

.month-heading {
position: relative;
padding: 10px 20px;
font-size: 1.2rem;
border-radius: 10px;
overflow: hidden; /* ::beforeがはみ出さないように */
z-index: 0;
}

.month-heading::before {
content: "";
position: absolute;
inset: 0;
background-image: url(images/seasons/bg.svg);
background-size: 150px 150px;
background-repeat: repeat;
background-position: center;
z-index: -1;
-webkit-mask-image: linear-gradient(to right, transparent 0%, black 50%, black 100%);
mask-image: linear-gradient(to right, transparent 0%, black 50%, black 100%);
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
}
.season-event-item{
	font-size:0.9rem;
}
.month-block{
margin:0 auto 50px;
}

/* ================================================ */
/*ページネーション*/
/* ================================================ */
/*次ページボタンを無くす*/
.pagination-next-link {
display: none;
}
/*ページネーションの番号ボタン*/
.page-numbers{
	border-radius: 50%; /*角丸*/
color:#a8bcc8;/*文字色*/
font-weight: bold;/*太文字にする*/
border-color: #a8bcc8;/*ボタンの境界線の色*/
}
/*ホバー時の背景色・文字色を変える*/
.pagination a:hover { 
background: #f6f7f7;/*背景色*/
color:#a8bcc8;/*文字色*/
}
/*スライダー*/
.slider-wrapper, .slider01, .slider02, .slider03, .slider04, .area-slider-for{
	overflow-x: hidden;	
}

/*gtranslate*/
.gt_float_switcher .gt_options {
padding: 15px 5px 0;
}

.headline-block{
	margin: 0 auto 30px;
	text-align: center;
}
/*アニメーション*/
.headline {
	position: relative;
	margin: 18px auto;
	font-family: "Lexend Giga", sans-serif;
	font-weight: 600;
}
.underline {
position: absolute;
bottom: -12px;
left: 50%;
transform: translateX(-50%);
stroke-dasharray: 200;
stroke-dashoffset: 200;
}
.underline line {
stroke-width: 40px; /* 好きな数値に調整 */
stroke-linecap: round; /* 線端を丸くしたい場合 */
}
.headline-text {
display: inline-block;
}

/* ================================================ */
/* アクセス */
/* ================================================ */
.access-grid{
display: grid;
gap:40px;
grid-template-columns: 1fr 1fr;
margin: 0 auto 50px;
}
.access-item img{
height:350px;
object-fit: cover;
object-position: center;
border-radius: 10px;
}
h3.access-heading{
font-size:1rem;
font-weight: 600;
padding: 10px 20px;
margin:20px auto;
background-color:#92b552;
border-radius: 10px;
text-align: center;
line-height: 1.5;
}
h3.access-heading span{
font-size:0.9rem;
color:#ffffff;
}
.bus-info .access-item h4{
padding: 10px 20px;
margin: 0 auto;
border-radius: 15px 15px 0 0;
background-color:#F2D154;
}
.bus-info .access-item h4 i{
padding: 5px;
border-radius: 25px;
background-color:#ffffff;
margin-right:3px;
width: 23px;
height: 23px;
line-height: 1.2;
text-align: center;
display: inline-block;
}
.bus-info .access-item{
background: rgba(255, 255, 255, 0.6);
border-radius: 15px;
}
.bus-info .bus-number{
padding: 15px 20px;
}
.bus-info .bus-number-grid{
margin-bottom: 15px;
display: grid;
gap:15px;
grid-template-columns: 30px 5fr;
font-size:0.9rem;
}
.bus-info .bus-number-item span{
border-radius: 25px;
background-color:#F2D154;
margin-right:3px;
font-weight: 700;
 padding: 2px;
margin-right:3px;
width: 26px;
height: 26px;
line-height: 1.4;
display: inline-block;
text-align: center;
}

/* ================================================ */
/* 多言語 */
/* ================================================ */
.greeting-img{
position: relative;
}
.front-img{
height: 500px;
object-fit: cover;
object-position: center top;
border-radius: 15px;
}
.greeting-contents {
padding: 0 10px;
}
.greeting-contents p{
margin-bottom: 20px;
}
.greeting-contents p:last-child{
margin-top: 60px;
color:#92b552;
font-weight: 600;
}
.greeting-tori{
position: absolute;
bottom:-10px;
right:5%;
width:400px;
animation: bounceTori 3s ease-in-out infinite;
display: inline-block;
}
@keyframes bounceTori {
0% { transform: translateY(0); }
6.25%{ transform: translateY(-50px); }
12.5%{ transform: translateY(0); }

18.75% { transform: translateY(-50px); }
25%{ transform: translateY(0); }

/* 25%〜100%（＝3秒休む）間は静止 */
100% { transform: translateY(0); }
}

/* ================================================ */
/* 求人情報 */
/* ================================================ */
.shop-recruit-item{
	position: relative;
padding: 20px;
background: rgba(255, 255, 255, 0.6);
margin-bottom: 30px;
}
.shop-recruit-item .shop-title{
margin: 0 0 10px;
font-size: 1rem;
font-weight:500;
}
.shop-recruit-item .new-label{
	position:absolute;
	top:-10px;
	left:-5px;
	padding:3px 10px;
	font-size:0.75rem;
	background-color: #eb6b6b;
	color:#ffffff;
	border-radius: 4px;
}
.recruit-info {
    padding: 5px 5px 20px;
}
a.shop-link-button {
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 5px 15px;
    font-size: 0.8rem;
    background: #F2D154;
}

/* ================================================ */
/* 投稿関連 */
/* ================================================ */
/* お知らせ一覧ページ用 */
.content h2{
	font-size:1.5rem;
	font-weight:700;
}
.news-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.news-grid .post-date{
	margin-top:3px;
}
.news-grid .date{
	font-size:0.7rem;
}
.news-grid h3{
	margin:3px auto 5px;
	padding: 0;
	line-height: 1.2;
	font-size:1rem;
	font-weight:500;
}

.news-grid a article {
	padding:15px;
position: relative;
overflow: hidden;
transition: transform 0.3s ease-in-out;
}
/* 画像の枠を定義 */
.news-grid a article .img-container {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
overflow: hidden;
border-radius: 15px;
}
/* 画像にズームエフェクトを適用 */
.news-grid a article .img-container img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center center;
transition: transform 0.3s ease-in-out;
}
/* ホバー時に画像のみズーム */
.news-grid a:hover article .img-container img {
transform: scale(1.1);
}
.news-grid .post-meta.post-cat .category{
	font-size:0.7rem;
	padding: 3px 10px;
	background-color: #ffffff;
	border-radius:20px;
	margin-right:5px;
}

.pagination{
margin:80px auto 0;
text-align: center;
margin: 2rem 0;
}
.pagination .page-numbers {
font-size: 1.2rem;
background-color: #ffffff;
color: #92b552;
border-radius: 50%;
padding: 0.5rem 0.75rem;
margin: 0 5px;
display: inline-block;
text-align: center;
line-height: 1;
cursor: pointer;
transition: background-color 0.3s ease;
}

.pagination .dots{
background-color:transparent;
}
/* 現在のページやホバー時 */
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
background-color: #92b552;
color: #ffffff;
}

/* 「前へ」と「次へ」を矢印に変更 */
.pagination .page-numbers.prev,
.pagination .page-numbers.next {
font-size: 1.2rem;
/* 元のテキスト（「前へ」「次へ」）を隠す */
text-indent: -9999px;
position: relative;
	padding: 0.5rem 1.1rem;
	color:#92b552;
}

/* 擬似要素で矢印を表示 */
.pagination .page-numbers.prev::before,
.pagination .page-numbers.next::before {
text-indent: 0;
position: absolute;
left: 0;
right: 0;
top: 50%;
transform: translateY(-50%);
font-family: "Font Awesome 6 Free";
font-weight: 900;
}
.pagination .page-numbers.prev::before {
content: "\f104";
}

.pagination .page-numbers.next::before {
content: "\f105";
}

/* サイドバー付き */
.layout .inner-wrap {
display: grid;
grid-template-columns: 3fr 1fr;
gap: 60px;
}

article h2{
    font-size: 1.4rem;
}
article .post-meta .date {
    font-size: 0.8rem;
}
article .entry-content{
	margin-bottom:50px
} 
article .post-meta .category{
	font-size:0.7rem;
	padding: 3px 10px;
	background-color: #ffffff;
	border-radius:20px;
	margin-right:5px;
}

.post-update{
	display: none;
}
.entry-title, .archive-title,.entry-categories-tags,.entry-content {
	padding: 0 15px;
}
/* 前後の投稿ナビゲーション */
.post-navigation {
margin-top: 60px;
overflow: hidden;
}

.post-navigation .prev-post,
.post-navigation .next-post {
font-size: 0.9rem;
background-color: #a6d67e;
border-radius: 30px;
padding: 5px 15px;
display: inline-block;
}

.post-navigation .prev-post {
float: left;
}

.post-navigation .next-post {
float: right;
}

/* お知らせ一覧ボタン */
.back-to-news a {
	padding: 8px 25px;
background-color: #F2D154;
color: #333333;
	border-radius: 35px;
  font-weight: 600;
}
.back-to-news .btn-arrow span::after {
		color:#ffffff;		
}

/* ================================================ */
/*店舗情報編集*/
/* ================================================ */
.edit-shop-form a.btn-logout {
	float: right;
}
.form-group {
	margin-bottom: 30px;
	padding-bottom: 30px;
}
.form-group label {
	font-size:1.2rem;
	font-weight: 700;
	padding: 5px 15px;
	display: block;
	background-color: #30e852;
}
.edit-shop-img {
	margin-top: 20px;
	margin-bottom: 10px;
	max-width: 350px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.edit-shop-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.form-group .edit-shop-img-delete {
	margin: 0 auto 10px;
}
.edit-shop-img-select{
	margin: 10px auto;
}
.form-group input[type="file"] {
	font-size: 0.8rem;
}
.edit-shop-form .button-submit {
	font-size:1rem;
	display: block;
	text-align: center;
	background-color:#30e852;
	border: none;
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	cursor: pointer;
	border-radius: 8px;
	padding: 10px;
}
.edit-shop-form .button-submit:hover {
	opacity: 0.8;;
}
.form-group input[type="text"],.form-group input[type="url"],.form-group input[type="email"] {
	font-size: 0.9rem;
	padding: 5px;
	border-radius: 5px;
	border: 1px #999 solid;
	margin-top:15px;
	width: 100%;
	box-sizing: border-box;	
}

.updated-message{
	padding: 20px;
	margin: 10px auto 40px;
	background-color: #ffffff;
	border-radius: 10px;
}
.updated-message a{
	margin-left: 15px;
	padding: 5px 15px;
	background-color: #30e852;
	border-radius: 30px;
}
.edit-shop-form #tinymce p{
	font-family: "Noto Sans JP", sans-serif!important;	
}


/* ================================================ */
/*管理者投稿編集*/
/* ================================================ */
.post-select-grid{
	display: grid;
	gap:20px;
	grid-template-columns: 1fr 1fr;
}
.post-select-grid li{
	text-align: center;
}
.post-select-grid li a{
	padding: 5px;
	display: block;
	background-color: #ffffff;
	border:1px #333333 solid;
	border-radius: 5px;
}
.frontend-post-form input[type="text"]{
	font-size: 0.9rem;
	padding: 5px;
	order-radius: 5px;
	border: 1px #999 solid;
	margin-top:15px;
	width: 100%;
	box-sizing: border-box;	
}
.edit-post-img-select, .post-categories{
	margin: 10px auto;
}
.post-note{
	margin-top: 10px;
}
.current-thumbnail{
	margin-top: 20px;
	margin-bottom: 10px;
	max-width: 350px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.current-thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.edit-post-select .button-submit {
	font-size: 0.8rem;
}
.edit-post-form .button-submit {
	font-size:1rem;
	display: block;
	text-align: center;
	background-color:#30e852;
	border: none;
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	cursor: pointer;
	border-radius: 8px;
	padding: 10px;
}
.edit-post-form .button-submit:hover {
	opacity: 0.8;;
}
.button-delete-draft{
	text-align: center;
	margin: 20px auto;
}
.button-delete-draft .button-delete, .button-delete-draft .button-draft{
	padding: 5px;
	max-width:400px;
	font-size:0.9rem;
	cursor: pointer;
	border-radius: 8px;
	padding: 10px;
	background-color:#ffffff;
	border:1px #999999 solid;
}

select.select-post {
    font-size: 0.9rem;
    padding: 3px;
}
button.go-edit {
    border: none;
    color: #ffffff;
    background-color: green;
    font-size: 0.8rem;
    border-radius: 3px;
    padding: 3px 10px;
}

@media screen and (max-width:650px){
.post-select-grid{
	grid-template-columns: 1fr;
}	
}

/* ================================================ */
/*店舗連絡*/
/* ================================================ */

/*店舗連絡*/
.board-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1em;
}
.shop-title {
font-size: 1.5em;
}
.btn-logout {
background: #ccc;
padding: 0.5em 1em;
text-decoration: none;
border-radius: 4px;
}
.board-list{
	margin: 0 auto;
}
.board-list ul li{
	padding: 20px 15px;
	border-bottom: 1px #333333 dotted;
	position: relative;
}
.board-list ul li .title{
	padding: 0 15px;
}
.board-list ul li .btn-read{
	font-size:0.8rem;
	padding: 3px 15px;
	background-color: #ffffff;
	border-radius: 35px;
}
.btn-edit-shop{
	padding: 8px 15px;
	background-color: #cccccc;
	border-radius: 10px;
}
.label-unread{
	position: absolute;
	top:25px;
	right:10px;
	font-size: 0.8rem;
	color:#ffffff;
	padding: 3px 10px;
	background-color:#FF3838;
	border-radius: 3px;
}
.letter-detail{
	position:relative;
}
.letter-detail .meta.date{
	position:absolute;
	top:-20px;
	right:0;
}
.letter-detail .content, .letter-detail figure{
	margin: 30px auto;
}
.back-to-list{
	text-align: center;
	margin:50px auto 0;
}
.btn-back{
	padding: 5px 20px;
	border-radius: 30px;
	background-color:#ffffff;
}
.letter-file{
	margin: 20px auto;
}
.letter-file a{
	font-size: 0.9rem;
	border-radius: 30px;
	padding: 5px 20px;
	background-color: #F2D154;
}
.edit-letter-select{
	margin: 10px auto;
}
.frontend-letter-form .button-submit {
	font-size:1rem;
    display: block;
	text-align: center;
	background-color:#30e852;
	border: none;
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	cursor: pointer;
	border-radius: 8px;
	padding: 10px;
}
.frontend-letter-form.button-submit:hover {
	opacity: 0.8;;
}
.edit-post-form label span, .frontend-letter-form label span{
	font-size:0.9rem;
	color:#ffffff;
}

.shortscreen{
	height: 100vh;
}

/* ================================================ */
/*個人情報保護方針*/
/* ================================================ */
.policy-box{
	margin:20px auto 40px;
}
.policy-box h2{
	font-size:1rem;
	font-weight: 700;
	padding: 5px 15px;
	display: block;
	background-color: #30e852;
}
.policy-box p, .policy-box ul li{
	font-size:0.9rem;
}
.policy-box ul{
	margin:20px auto;
	padding: 0 0 0 10px;
}
.policy-box ul li{
	list-style: none;
	padding: 5px 0;
}
.policy-box ul li i{
	margin-right: 5px;
}
.policy-btn{
  margin: 20px auto;
}
.policy-btn a{
  font-size: 0.9rem;
  padding: 5px 20px;
  background-color: #F2D154;
  border-radius: 30px;
}

/* ================================================ */
/*サイトマップ*/
/* ================================================ */
.sitemap-box{
	margin:0 auto 40px;
}
.sitemap-box ul{
	margin:0 auto;
	padding: 0 0 0 10px;
}
.sitemap-box ul li{
	font-size:0.9rem;
	list-style: none;
	padding: 5px 0;
}
.sitemap-box ul li i{
	margin-right: 5px;
}


/* ================================================ */
/*レスポンシブ*/
/* ================================================ */
@media screen and (max-width: 1200px) {
.introduction-btn-item a{
	font-size:0.8rem
}
}

@media screen and (max-width: 1050px) {
.introduction-item:nth-child(1) {
padding: 30px 40px 30px 30px;
}
.shop-search-grid {
grid-template-columns: 1fr;
}
.banner-grid a:nth-child(5) {
font-size: 1.2rem;
}
.tori-profile img.tori-01 {
max-width: 350px;
}

}

@media screen and (max-width: 950px) {
.inner-wrap.mobile-fullwidth{
	padding:50px 0 0;
}
.top-logo h2 {
	font-size: 0.75rem;
	letter-spacing: 0.1em;
}
.top-logo img{
width:300px;
}
.latest-grid{
	grid-template-columns: 1fr;
}
.introduction-grid{
	grid-template-columns: 1fr;
	margin:0 auto;
}	
.introduction-item:nth-child(1) {
	order: 2;
border-radius:0;
	padding: 20px 15px;
}	
.introduction-item:nth-child(2){
	order: 1;
margin-left:0;
margin-top:0;
}
.introduction-item:nth-child(2) img {
border-radius:0;
	vertical-align: bottom;
}
.introduction-btn-item a{
	font-size:1rem
}	
.news-grid {
grid-template-columns: repeat(2, 1fr);
}
.profile-item:nth-child(2) {
padding: 120px 100px;
}
.profile-item:nth-child(2) p {
font-size: 1rem
}
.profile-item:nth-child(2) p span {
font-size: 1.3rem;
}
.tori-profile h2 {
width: 300px;
height: 220px;
font-size: 1.8rem;
}
.tori-profile img.tori-01 {
max-width: 300px;
}
.tori-profile img.tori-02 {
  left: 35%;
}

}

@media screen and (max-width: 850px) {
main.main{
	padding: 0 0;
}
.top-slider .slide-inner img {
height: 650px;
}
.footer-grid{
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(3, 1fr);
gap:20px;
}
.footer-item:nth-child(1) { grid-area: 1 / 1 / 2 / 2; }
.footer-item:nth-child(2) { grid-area: 1 / 2 / 2 / 3; }
.footer-item:nth-child(3) { grid-area: 2 / 1 / 3 / 3; }
.footer-item:nth-child(4) { grid-area: 3 / 1 / 4 / 3; }
.footer-item{
	text-align: center;
}
.footer-item:nth-child(4){
	text-align: center;
}
.footer-logo img{
	max-width:400px;
}
.board-list ul li .title{
	padding: 10px 0px;
	display: block;
}
.page-around .around-section:nth-of-type(1),
.page-around .around-section:nth-of-type(3) {
grid-template-columns: 1fr;
}
.page-around .around-section:nth-of-type(2),
.page-around .around-section:nth-of-type(4) {
grid-template-columns: 1fr;
}
.access-grid{
grid-template-columns: 1fr;
gap:20px;
}
.shop-grid-01 {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto;
grid-auto-rows: minmax(0, 1fr);
gap:20px
}
.map-embed iframe{
height:250px;
}
.sanjo-tori {
background-size: 50%;
}
.tori-profile img.tori-01 {
max-width: 260px;
}
.tori-profile h2 {
width: 280px;
height: 200px;
font-size: 1.8rem;
}

}

@media screen and (max-width: 750px) {
/*header .base-wrap{
	display: block;
}*/
.site-logo img {
max-width: 250px;
}
.header-controls {
gap: 10px;
}
.overlay-menu-list {
gap:15px;
}
.overlay-menu-list a{
font-size:0.8rem;
}	
.language-select{
font-size: 0.8rem; 
padding: 8px 30px 8px 38px;
}
.contact-button {
font-size: 0.8rem;
}
.hamburger-menu {
top: 10px;
right: 10px;
}
.layout .inner-wrap {
grid-template-columns:1fr;
}
.shop-list{
	grid-template-columns: 1fr;
}

.shop-block{
	gap:20px;		
}
.tori-profile img.tori-01 {
max-width: 200px;
}
.tori-profile img.tori-02 {
  left: 25%;
}
.profile-grid {
grid-template-columns: 1fr 6fr;
}
.profile-item:nth-child(2) {
padding: 100px 80px;
}

}

@media screen and (max-width: 650px) {
.inner-wrap{
	padding:50px 10px;
}
.site-logo img {
max-width: 220px;
}	
.top-logo {
 padding: 10px 20px 5px 20px;
}	
.top-logo h2 {
font-size: 0.65rem;
letter-spacing: 0.01em;
}
.top-logo img {
	width:250px;
}		
.balloon-p {
font-size: 0.9rem;
}
.balloon-image {
max-width: 120px;
}
.overlay-menu-list {
padding:90px 20px 20px 20px;
max-width: inherit;
}
.social-x a{
	font-size:0.9rem;
}
.latest-info-grid{
	gap:15px;
}
.latest-info-title{
font-size: 0.9rem;		
}
.introduction-item:nth-child(1) {
	padding: 20px 10px;
}	
.introduction-btn-grid {
	gap:5px;	
}
.introduction-btn-item a{
	font-size:0.9rem;
}
.introduction-btn-item:nth-child(2) a{
	padding: 8px 0 8px 25px;
}
.btn-search {
font-size: 0.9rem;
}
.shop-btn-grid{
	gap:10px;
}	
.banner-grid {
grid-template-columns:repeat(2, 1fr);
}
nav.breadcrumb {
font-size: 0.7rem;
}
.footer-grid {
	padding-bottom: 30px;
}
.page-visual h1{
font-size:1rem;
padding: 30px 10px 30px 75px;
}
.page-visual h2{
font-size:1.2rem;
bottom:-26px;
}
.page-visual img{
bottom:-3px;
width:75px;
}
/*パンくずリスト*/
nav.breadcrumb{
	font-size:0.7rem;
}
.shop-heading h1, .search-block h1{
	font-size:1.2rem;
}
.shop-grid-02{
	gap:0;
	grid-template-columns:1fr;
margin: 0 auto 30px;
}
.shop-grid-03{
	gap:5px;
	grid-template-columns:1fr;
}
.shop-item-03{
font-size:0.8rem;
}
.advertisement-place-grid{
grid-template-columns: 1fr;
gap:20px;
}
.tori-profile {
margin: 0 auto 100px;
}
.tori-profile h2 {
top: -50px;
width: 220px;
height: 160px;
font-size: 1.5rem;
}
.profile-grid {
grid-template-columns: 1fr 9fr;
}
.tori-profile img.tori-01 {
bottom: -50px;
}
.links-block ul{
  grid-template-columns: repeat(2, 1fr);
}

}

@media screen and (max-width: 550px) {
.tori-profile {
margin: 0 auto 150px;
}
.tori-profile img.tori-01 {
bottom: -80px;
max-width: 160px;
}
.tori-profile img.tori-02 {
  left: 10%;
}
.profile-grid {
grid-template-columns: 1fr;
}

}

@media screen and (max-width: 500px) {
p{
	font-size:0.8rem;
}
.inner-wrap{
padding:30px 10px 50px;
}
header{
	height: 70px;
}
.site-logo img {
	max-width: 180px;
}
.sec-keyvisual .base-wrap{
	padding:0 0 3px 15px;
}
.top-logo{
	left:0;
	border-radius:0 0 20px 0;
	padding: 8px 12px 2px;
}
.top-slider.slick-slider {
padding: 0 0 20px;
}
.top-logo h2 {
font-size: 0.55rem;
letter-spacing: 0.01em;
}
.top-logo img {
	width:200px;
}
.top-slider .slide-inner img {
height: 450px;
}
.top-slider .slide-item {
clip-path: inset(0 round 0 0 0 25px);
}
.balloon{
	bottom:15px;
}
.balloon-p {
font-size: 0.65rem;
}
.balloon-image {
max-width: 90px;
}
h2.headline{
margin: 0 auto 20px;
}
span.headline-text{
font-size:1.2rem;
}
.latest-info-thumbnail {
aspect-ratio: 1 / 1;
}
.latest-info-title{
font-size: 0.8rem;
}
.latest-info-date {
    font-size: 0.7rem;
}	
.latest-info-category {
font-size: 0.7rem;
}
.button-block a{
font-size: 0.8rem;
}
.introduction-item:nth-child(1) {
	padding: 20px 5px;
}	
.introduction-btn-grid {
/*	grid-template-columns: 1fr;*/
	margin: 30px auto 0;	
}
.introduction-btn-item a{
	font-size:0.7rem;
}
.introduction-btn-item:nth-child(2) a{
	padding: 8px 0 8px 25px;
}
.introduction-box {
padding: 0 10px;
}
.introduction-box h2 {
font-size: 1.2rem;
}
.shop-btn-grid{
/*	grid-template-columns:1fr;*/
}	
.btn-search {
font-size: 0.7rem;
}	
.btn-search:nth-child(2){
	padding: 10px 0 6px 20px;
}
.btn-search::before{
top: 32%;
}
.shop-name{
font-size: 0.7rem;	
}	
.news-grid {
grid-template-columns: 1fr;
}
.season-event-item{
	font-size:0.8rem;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
grid-column-gap: 10px;
grid-row-gap: 5px;
}
.season-event-item span:nth-child(1) {
grid-area: 1 / 1 / 2 / 3;
font-weight: 700;
font-size: 0.85rem;
}
.season-event-item span:nth-child(2) {
grid-area: 2 / 1 / 3 / 2;
}
.season-event-item span:nth-child(3) {
grid-area: 2 / 2 / 3 / 3;
}

button.cat-btn {
font-size: 0.7rem;
}
.heading-cat{
font-size: 1rem;	
}
.heading-cat .cat-icon {
width: 36px;
height: 30px;
}
.banner-grid a{
font-size: 1.2rem;
}
.footer-item h3 {
  font-size: 0.9rem;
}
.footer-item:nth-child(4) p{
	font-size:0.65rem;	
}
/*
#back-to-top {
width: 60px;
}
#back-to-top.show {
bottom: 0px;
}*/
.shop-list h3{
font-size: 0.85rem;
}
.shop-list h3 i{
display: none;
}
.shop-block{
grid-template-columns: 1.5fr 4fr;
gap:10px;
}
.shop-recruit-item .shop-title {
font-size: 0.9rem;
}
.area-slider-for.slick-initialized.slick-slider {
 padding: 0 0 30px; 
}
.area-slider-for .slick-slide{
margin: 0 0;
}
.shop-thumbnail .shop-service{
	font-size:0.6rem;
}
.month-heading{
font-size:1rem;
}
.introduction-box h2 span:nth-of-type(2)::after{
background-size: 9px 5px;
}
.page-around .around-text h2{
font-size: 1.2rem;
 }
.page-around .around-text h2 i{
font-size:1.8rem;
margin-right:5px;
}
.page-around .around-text p{
font-size:0.8rem;
}
.page-around .around-section{
gap : 50px;
}
.page-around .around-section:nth-of-type(1) div:nth-child(1), .page-around .around-section:nth-of-type(3) div:nth-child(1){
order: 2;
}
.page-around .around-section:nth-of-type(1) div:nth-child(2), .page-around .around-section:nth-of-type(3) div:nth-child(2){
order: 1;
}
.page-around .slide-caption{
font-size:0.7rem; 
}
.season-events-container .filters h3{
font-size: 1rem;
}
button.category-filter-btn,button.place-filter-btn {
font-size: 0.7rem;
}
.bus-info .bus-number {
padding: 15px 10px;
}
.bus-info .access-item h4 {
font-size: 0.9rem;
padding: 10px 10px;
}
.bus-number .bus-number-grid {
font-size: 0.8rem;
gap:5px;
}
.bus-info .access-item h4 i{
width: 20px;
height: 20px;
}
.bus-info .bus-number-item span{
width: 20px;
height: 20px;
}
.front-img {
height: 400px;
}
.greeting-tori {
width: 300px;
right:0;
}
.greeting-contents h1{
font-size: 1rem;
}
.select-wrapper::before {
left: 15px;
font-size:0.95rem;
}
.contact-button::after {
left: 15px;
}
.single-shop-name h1{
  font-size:1.1rem;
}
.single-shop-box h2{
font-size: 0.9rem;
}
.single-shop-content {
font-size: 0.8rem;
}
.advertisement-content ul {
padding: 20px 10px 5px;
}
.single-shop-name ul li {
font-size: 0.7rem;
}
.advertisement-content ul li {
grid-template-columns: 1.5fr 2fr;
}
.advertisement-charge-item {
font-size:0.8rem;
}
.tori-video h2, .tori-copyright h2{
font-size:1rem;
}
.tori-profile {
margin: 0 auto 200px;
}
.tori-profile img.tori-01 {
bottom: -150px;
max-width: 200px;
}
.tori-profile h2 {
position: absolute;
top: -70px;
}
.profile-item:nth-child(2) {
padding: 80px 40px;
border-radius: 20%;
}
.links-block ul li{
  font-size:0.8rem;
}
article h2{
    font-size: 1.2rem;
}
.policy-box h2{
	font-size:0.9rem;
}
.policy-box p, .policy-box ul li{
	font-size:0.8rem;
}
.sitemap-box ul li{
	font-size:0.8rem;
}
.post-navigation .prev-post, .post-navigation .next-post {
    font-size: 0.7rem;
}
.pagination .page-numbers{
	margin:0;
	font-size:1rem;
    padding: 0.5rem 0.68rem;
}
.pagination .page-numbers.prev, .pagination .page-numbers.next {
    padding: 0.48rem 0.98rem;
    font-size: 1rem;
	vertical-align:bottom;
	height: 20px;
    width: 1px;	
}
.news-grid h3{
	font-size:0.9rem;
}
article .post-meta .date {
    font-size: 0.7rem;
}
.content h2{
	font-size:1.2rem;
}

}

@media screen and (max-width: 450px) {
.tori-profile h2 {
top: -80px;
}
.tori-profile img.tori-02 {
top:-10px;
left: 0;
max-width: 80px;
}
.profile-item:nth-child(2) p {
font-size: 0.9rem;
}
.profile-item:nth-child(2) p span {
font-size: 1.1rem;
}
.profile-item:nth-child(2) {
padding: 80px 30px;
}

}

@media screen and (max-width: 400px) {
.site-logo img {
max-width: 160px;
}
.hamburger-menu {
top: 5px;
right: 5px;
}
.tori-profile h2 {
font-size: 1.4rem; 
width: 200px;
height: 140px;
}
.profile-item:nth-child(2) {
border-radius: 10%;
padding: 70px 20px;
}
.profile-item:nth-child(2) p span {
font-size: 1rem;
}

}
@media screen and (max-width: 350px) {
.overlay-menu-list a {
font-size: 0.7rem;
}

}

.display-sp-01,.display-sp-02,.display-sp-03{
	display: none;
}
@media screen and (max-width: 1050px) {
.display-sp-01{
	display: block;
}
}
@media screen and (max-width: 1200px) {
.display-sp-02{
	display: block;
}
}
@media screen and (max-width: 500px) {
.display-sp-03{
  display: block;
}
}