@charset "utf-8";


header.content_header{
padding-top: 60px
}

/*--------------------breadcrumb--------------------*/

ol.contents {
width: 92%;
margin: 0px auto 15px auto;
font-size: 11px;
border-bottom: solid 1px #999;
padding: 10px 0px 10px 0px;
font-weight: 600;
text-align: right
}

ol li{
display:inline-block;
list-style: none;
vertical-align: middle;
letter-spacing: 0.05em;
}

ol li:after{
content: '»';
font-size: 12px;
margin: 0px 5px 0px 5px;
color:#999
}

ol li:last-child:after{
content: '';
display: none;
}

ol li a {
text-decoration: none;
color: #fff;
}

ol li:first-child a{
background: url(../img/icon/home.png) no-repeat left center;
background-size: 12px;
padding-left: 20px;
}

/*--------------------pager--------------------*/

ul#pager{
text-align: center;
width: 90%;
margin: 0px auto 30px auto;
}

ul#pager li{
width:40px;
height:40px;
display: inline-block;
border-radius: 50%;
font-size:11px;
margin: 0px 2px 0px 2px
}

.current{
background: #dcdcdc;
border-radius: 50%;
color:#000!important;
font-weight: bold;
}

ul#pager li a{
display: block;
width:100%;
height:100%;
color:#999;
border-radius: 50%;
border:solid 1px #dcdcdc;
display: flex;
justify-content: center;
align-items: center;
}

/*--------------------bbs--------------------*/

section#bbs{
width: 100%;
margin: 0px auto;
padding: 30px 4% 30px 4%;
color: #fff;
background: linear-gradient(to top, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0));
}

div.message{
position: fixed;
width: 100%;
height:100%;
max-width: 700px;
top:0%;
left:50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
background: rgba(0,0,0,0.9);
z-index: 8;
text-align: center;
}

article.message_inner{
width: 100%;
position: absolute;
top:50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}

h3.message{
width: 90%;
margin: 0px auto;
text-align: left;
color: #da2e5b;
font-size:18px;
line-height: 1.4;
margin-bottom: 20px
}

div.message_space{
width: 90%;
font-size:16px;
margin: 0px auto 20px auto;
height: 50vh;
border:solid 1px #999;
border-radius: 15px;
text-align: left;
padding: 15px;
line-height: 1.8;
overflow-y: auto
}

p.message_close{
width: 80%;
text-align: center;
height: 46px;
line-height: 46px;
display: block;
border-radius: 5px;
background: #da2e5b url(../img/icon/arrow_w.png) no-repeat center right 20px;
background-size: 14px;
color: #fff;
margin: 0px auto;
font-size: 13px;
font-weight: bold;
}

h2.section{
font-family: "Cormorant Garamond", serif;
font-weight: 400;
text-align: center;
font-size: 30px;
margin-bottom: 15px
}

h2.section i{
font-size:12px;
font-weight: 600;
color: #000; 
letter-spacing: 0.5px
}

span.hot_news{
display: block;
}

section#edit_block {
width: 100%;
color:#fff;
max-width: 700px;
background: #222;
padding: 20px;
z-index: 9;
font-size:15px
}

div.edit_box{
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 5px
}

div.text{
width: 46%
}

label.edit_box{
width: 100%;
height: 40px;
border:solid 1px #dcdcdc;
position: relative;
border-radius: 8px;
overflow: hidden;
background: #fff;
color: #000
}

label.edit_box input[type="text"]{
color: #000;
-webkit-appearance: none;
}

div.send_btn{
width: 70%;
height: 40px;
background: #da2e5b;
margin: 10px auto 0px auto;
border-radius: 5px
}

button[type="submit"]{
width: 100%;
height: 100%;
background: none;
-webkit-appearance: none;
color: #fff;
border:none
}

label.select_box:after{
content:"▼";
font-size:10px;
color: #000;
position:absolute;
right: 15px;
top:15px;
}

/*--------------------form--------------------*/

div.form{
margin-bottom: 20px
}

h4.form{
margin-bottom: 10px;
font-size: 16px;
line-height: 1.4
}

span.form{
background: #da2e5b;
color:#fff;
padding: 2px 10px;
font-size:90%;
margin-left: 10px;
border-radius: 5px;
}

label.form{
width: 100%;
height: 50px;
display: block;
border:solid 1px #999;
border-radius: 5px;
overflow: hidden;
background: rgba(0,0,0,0.7);
}

label.short_key{
width: 50%!important;
}

label.edit_key{
width: 40%!important;
}

input[type="text"],input[type="tel"],input[type="email"],input[type="password"],input[type="date"]{
width: 100%;
height: 100%;
padding: 0px 10px 0px 10px;
color:#fff;
-webkit-appearance: none;
border:none;
font-size:15px;
background: none
}

input[type="date"]::-webkit-calendar-picker-indicator {
    filter: brightness(0) invert(0.3); /* 約 rgba(0,0,0,0.7) の色合いに */
    opacity: 0.7; /* 透明度を調整 */
}

input[type="date"] {
    position: relative;
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="white"><path d="M7 11H9V13H7V11M7 15H9V17H7V15M11 11H13V13H11V11M11 15H13V17H11V15M15 11H17V13H15V11M15 15H17V17H15V15M19 3H18V1H16V3H8V1H6V3H5C3.9 3 3 3.9 3 5V21C3 22.11 3.89 23 5 23H19C20.11 23 21 22.11 21 21V5C21 3.9 20.11 3 19 3M19 21H5V8H19V21Z"/></svg>') no-repeat right 10px center;
    background-size: 30px; /* アイコンを30x30pxに拡大 */
    padding-right: 45px; /* アイコン分のスペースを確保 */
}

div.check_box{
display: flex;
align-items: center
}

span.check{
display: flex;
align-items: center;
font-size:15px;
margin-right: 10px
}

label.check{
width: 24px;
height: 24px;
border:solid 1px #999;
margin-right: 5px;
border-radius: 3px;
position: relative;
overflow:hidden
}

input[type="radio"]{
width: 100%;
height: 100%;
border:none;
-webkit-appearance: none;
}

input[type="radio"]:checked {
background: rgba(0,0,0,0.8);
border-color: #007BFF; 
}

input[type="radio"]:checked::before {
content: '';
position: absolute;
top: 3px;
left: 7px;
width: 5px;
height: 10px;
border: solid white;
border-width: 0 2px 2px 0;
transform: rotate(45deg); /* 「レ」点を回転させてチェックマーク風に */
}

label.select{
width: 30%;
height: 50px;
display: inline-block;
border:solid 1px #dcdcdc;
border-radius: 5px;
position:relative
}

label.select:after{
content:"▼";
font-size:10px;
position:absolute;
right: 15px;
top:15px;
}

select{
width: 100%;
height: 100%;
-webkit-appearance: none;
border:none;
font-size:15px;
border-radius: 5px;
color:#444;
text-align: left;
padding-left: 15px;
background: #fff
}

textarea{
width: 100%;
height: 150px;
border:solid 1px #999;
border-radius: 5px;
padding: 10px;
color:#fff;
-webkit-appearance: none;
font-size:15px;
background: rgba(0,0,0,0.7);
}

div.check{
width: 90%;
margin: 0px auto;
padding-top: 40px;
font-size:16px;
font-weight: 100;
margin-bottom: 40px;
}

label.checkbox{
width: 20px;
height: 20px;
border:solid 1px #dcdcdc;
display: inline-block;
vertical-align: middle;
margin-right: 10px;
}

.app_checkbox input[type="checkbox"]{
display: none;
}

div.app_checkbox_wrap{
display: flex;
align-items: start;
flex-wrap: wrap;
width: 100%
}

div.app_checkbox{
width: 100%;
display: flex;
align-items: center;
border-bottom: solid 1px #dcdcdc;
padding-bottom: 10px;
}

p.app_checkbox{
font-weight: 600;
font-size: 14px;
margin-left: 10px;
margin-bottom: 5px
}

div.app_checkbox input[type="checkbox"]+label{
cursor: pointer;
display: block;
box-sizing: content-box;
position: relative;
width: 50px;
min-width: 50px;
height: 26px;
background-color: #FFF;
border: 2px solid #CCC;
border-radius: 30px;
}

.app_checkbox input[type="checkbox"]:checked+label{
background-color: #da2e5b;;
border-color: #da2e5b;;
}

.app_checkbox input[type="checkbox"]+label:before{
content: "";
position: absolute;
display: block;
width: 26px;
height: 26px; 
left: 0;
top: 0;
border-radius: 50%;
background-color: #FFF;
box-shadow: 2px 2px 4px gray;
-webkit-transition: all 0.3s ease;
transition: all 0.3s ease;
}

.app_checkbox input[type="checkbox"]:checked+label:before{
-webkit-transform: translateX(100%);
transform: translateX(100%);
box-shadow: none;
-webkit-transition: all 0.3s ease;
transition: all 0.3s ease;
}

/* 横スクロール対応 */
.date_slider_container {
overflow-x: auto;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
display: flex;
padding: 10px 0;
border-bottom: solid 1px #dcdcdc;
margin-bottom: 20px
}

.date_slider {
display: flex;
gap: 10px;
padding: 5px;
}

/* 日付ボタンスタイル */
.date_button {
background-color: #f0f0f0;
border: 1px solid #ccc;
color:#000;
font-weight: 500;
border-radius: 20px;
padding: 10px 15px;
cursor: pointer;
font-size: 14px;
font-weight: bold;
transition: background-color 0.3s, transform 0.2s;
}

.date_button:hover {
background-color: #e0e0e0;
}

.date_button.active {
background-color: #da2e5b;;
color: #fff;
border-color: #fff;
transform: scale(1.05);
}

/* 初期状態（非表示） */
#visit_date_container {
    display: none;
    opacity: 0;
    transform: translateY(-10px); /* 少し上に配置 */
    transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}

/* フェードインアニメーション（ふわっと下から現れる） */
.fade-in {
    display: block !important;
    opacity: 1 !important;
    transform: translateY(0); /* 元の位置に戻る */
}

/* フェードアウトアニメーション（ふわっと上に消える） */
.fade-out {
    opacity: 0 !important;
    transform: translateY(-10px); /* 少し上に移動しながら消える */
}

input[type="checkbox"]{
width: 100%;
height: 100%;
border:none;
box-shadow: none;
border-radius: 0px;
}

a.checkbox{
text-decoration: underline
}

input[type="submit"],input[type="button"]{
width: 60%;
height: 42px;
display: block;
border-radius: 5px;
background: #da2e5b url(../img/icon/arrow_w.png) no-repeat center right 20px;
background-size: 14px;
color:#fff;
font-size:13px;
font-weight: bold;
-webkit-appearance: none;
border:none;
}

input[type="button"]{
background: #999 url(../img/icon/arrow_w.png) no-repeat center right 20px;
background-size: 14px;
}

.tab-buttons {
  margin-bottom: 1rem;
}

.tab-button {
  padding: 10px 20px 10px 20px;
  cursor: pointer;
  background: #eee;
  color: #666;
  border: none;
  font-weight: 600
}

.tab-button.active {
  background: #000;
  color: #fff;
  text-decoration: underline
}
.tab-panel {
  display: none;
}
.tab-panel.active {
  display: block;
}

article.list{
border:solid 1px #da2e5b;
padding: 0px 0px 15px 0px;
margin-bottom: 20px;
background: rgba(0,0,0,0.7)
}

div.list{
padding: 15px
}

h3.list{
background: #da2e5b;
color: #fff;
padding: 8px 10px 8px 10px;
font-size:17px
}

h3.list_name{
font-size:16px;
margin-bottom: 20px;
line-height: 1.3;
display: flex;
align-items: start
}

img.bbs_icon{
width: 30px;
margin-right: 5px;
border-radius: 4px
}

h4.list_txt{
width: 90%;
margin: 0px auto;
font-size:14px;
margin-bottom: 20px;
line-height: 1.8;
font-weight: 600
}

p.days{
font-size:13px;
margin-top: 10px;
color:#fff
}

div.reply{
border:solid 1px #666;
border-radius: 10px;
margin-top: 20px;
overflow: hidden;
padding-bottom: 15px
}

::placeholder{
color:#999
}

div.reply_inner{
padding: 10px 10px 0px 10px
}

h3.reply{
color:#fff;
background: #666;
padding: 8px 10px 8px 10px;
font-size: 17px;
margin-bottom: 15px
}

h4.reply{
width: 90%;
margin: 0px auto;
color:#da2e5b;
font-size: 15px;
line-height: 1.8;
}

button.reply_button{
width: 100px;
height: 40px
}

.mb15{
margin-bottom: 15px!important
}

.mb30{
margin-bottom: 30px!important
}

a.bbs_back{
width: 60%;
height: 42px;
display: block;
border-radius: 5px;
border:solid 1px #999;
background:  url(../img/icon/arrow_w.png) no-repeat center right 20px;
background-size: 14px;
color: #fff;
font-size: 13px;
font-weight: bold;
text-align: center;
line-height: 42px
}

div.loading_wrap{
width: 100%;
height: 100vh;
background: rgba(0,0,0,0.7);
position: relative;
}

div.loading{
position: absolute;
width: 50px;
top:50%;
left: 50%;
transform: translate(-50%,-50%)
}

/*--------------------article--------------------*/

h3.article_title{
font-size:14px;
margin-bottom: 20px;
line-height: 1.3
}

h4.article_txt{
font-size:12px;
margin-bottom: 20px;
line-height: 1.6
}

/*--------------------edit_success--------------------*/

section.edit_success{
height: 60vh;
display: flex;
align-items: center;
justify-content: center
}

article.edit_success{
width: 100%;
}

h3.edit_success{
font-size:15px;
padding: 8px 0px 8px 0px;
background: rgba(0,0,0,0.7);
text-align: center;
color:#fff;
margin-bottom: 40px
}

div.search{
margin: 0px auto 20px auto;
display: flex;
align-items: center;
justify-content: space-between
}

div.search form{
width: 49%
}

label.search{
width: 100%;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
border:solid 1px #666;
border-radius: 18px;
overflow: hidden;
background: #fff;
color:#000
}

label.search input[type="text"] {
color: #222
}

label.search input[type="submit"] {
width: 30%;
border:none;
height: 100%;
color:#fff;
font-size: 13px;
-webkit-appearance: none;
border-radius: 0;
background: #000;
}

a.delete{
width: 49%;
height:36px;
display: block;
text-align: center;
line-height: 36px;
background: #da2e5b;
border-radius: 18px;
color:#fff
}


/*--------------------privacy--------------------*/

article.privacy{
width: 90%;
height: 50vh;
overflow: scroll;
margin: 0px auto;
padding: 15px;
border:solid 1px #999;
margin-bottom: 20px;
text-align: justify;
border-radius: 15px;
background: rgba(0,0,0,0.6)
}

h5.privacy{
font-size:15px;
margin-bottom: 15px;
color:#da2e5b
}

p.privacy{
font-size:12px;
line-height: 1.8;
margin-bottom: 30px;
color:#fff
}

