/*=================================================================
*  html
*=================================================================*/
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	height: 100%;
}

body {
    height: 100%;
	font-family:
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "BIZ UDPGothic",
        "Helvetica Neue",
        Arial,
        Meiryo,
        sans-serif;
	font-size: 1em;
	line-height: 1.8em;
	color: #333;
}

.font-mincho {
    font-family:
        "Noto Serif JP",
        "Hiragino Mincho ProN",
	    YuMincho,
	    serif;
}

a {
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

/*=================================================================
*  form
*=================================================================*/

/* init
------------------------------------*/
.custom-form input,
.custom-form button,
.custom-form select,
.custom-form textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font-size: 100%;
  outline: none;
}

.custom-form textarea {
  resize: vertical;
}

.custom-form input[type='checkbox'],
.custom-form input[type='radio'] {
  display: none;
}

.custom-form input[type='submit'],
.custom-form input[type='button'],
.custom-form button,
.custom-form select  {
  cursor: pointer;
}

.custom-form select::-ms-expand {
  display: none;
}

/* form style [single]
------------------------------------*/
.form-style-single input[type='text'],
.form-style-single input[type='email'],
.form-style-single input[type='password'],
.form-style-single textarea {
    padding: 7px;
    border: solid 1px #ccc;
    border-radius: 5px;
    line-height: 1.4rem;
    background-color: #FFF;
}

.form-style-single textarea {
	width: 100%;
    min-width: 360px;
    min-height: 180px;
}

.form-style-single .button-submit {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 5px;
    background-color: #000;
    line-height: 1.4rem;
    color: #FFF;
}

.form-style-single .button-submit:hover {
	text-decoration: none;
}

.form-style-single .form-list > li + li {
    margin-top: 30px;
}

.form-style-single .form-label {
    display: inline-block;
    margin-bottom: 5px;
}

.form-style-single .form-item.error {
    border-color: #df8c8c;
    background-color: color-notice-bg-red;
}

.form-style-single .form-note {
	font-size: 80%;
	line-height: 1.4rem;
	opacity: 0.8;
}

.form-style-single .box-submit {
  margin-top: 40px;
}

.form-style-single .input-middle {
    width: 80%;
}

.form-style-single .input-full {
    width: 100%;
}

.form-style-single .required {
	padding: 0 3px;
    color: #ed5858;
}

.form-style-single .error {
    color: #ed5858;
}

.form-style-single .button {
    display: inline-block;
    padding: 12px 12px;
    border-radius: 3px;
    font-size: 95%;
    line-height: 1.4rem;
    background-color: #3781a3;
    color: #FFF;
    text-decoration: none;
    transition: .2s;
}

.form-style-single .button:hover {
    opacity: .8;
}

.form-style-single .button.middle {
	min-width: 200px;
    padding: 16px 20px;
}

.form-style-single .button.short {
	min-width: 160px;
}

.form-style-single .button.short {
	min-width: 240px;
}

/* flash message | alert
------------------------------------*/
.alert {
	margin-bottom: 40px;
	text-align: center;
	color: #ed5858;
}


/*=================================================================
*  Modules
*=================================================================*/

/* display
------------------------------------*/
.d-block {
	display: block;
}

.d-inline-block {
	display: inline-block;
}

.d-inline {
	display: inline;
}

.d-none {
	display: none;
}

/* flex
------------------------------------*/
.flex {
	display: flex;
}

.flex.flex-jc-end {
	justify-content: flex-end;
}

.flex.flex-jc-start {
	justify-content: flex-start;
}

.flex.flex-jc-spacebetween {
	justify-content: space-between;
}

.flex.flex-jc-center {
	justify-content: center;
}

.flex.flex-align-c {
	align-items: center;
}

/* width
------------------------------------*/
.width {
	margin: 0 auto;
}

.width.w1200 {
	width: 1200px;
}

.width.w1100 {
	width: 1100px;
}

.width.w960 {
	width: 960px;
}

.width.w860 {
	width: 860px;
}

.width.w640 {
	width: 640px;
}

.width.w100p {
	width: 100%;
}

/* column
------------------------------------*/
.column {
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    gap: 7%;
}

.column.col2 .row.short {
    width: 40%;
}

.column.col2 .row.wide {
    width: 53%;
}

/* round
------------------------------------*/
.rounded {
    border-radius: 5px;
}

/* margin
------------------------------------*/
.m-0 {
	margin: 0;
}

.mx-10 {
	margin:0 10px;
}
.mx-20 {
	margin:0 20px;
}
.mx-30 {
	margin:0 30px;
}

.my-10 {
	margin:10px 0;
}
.my-20 {
	margin:20px 0;
}
.my-30 {
	margin:30px 0;
}

.mt-5 {
	margin-top:5px;
}
.mt-10 {
	margin-top:10px;
}
.mt-20 {
	margin-top:20px;
}
.mt-30 {
	margin-top:30px;
}

.mr-5 {
	margin-right:5px;
}
.mr-10 {
	margin-right:10px;
}
.mr-20 {
	margin-right:20px;
}
.mr-30 {
	margin-right:30px;
}

.mb-5 {
	margin-bottom:5px;
}
.mb-10 {
	margin-bottom:10px;
}
.mb-20 {
	margin-bottom:20px;
}
.mb-30 {
	margin-bottom:30px;
}

.ml-5 {
	margin-left:5px;
}
.ml-10 {
	margin-left:10px;
}
.ml-20 {
	margin-left:20px;
}
.ml-30 {
	margin-left:30px;
}

/* font family
------------------------------------*/
.text-mincho {
	font-family: 'Noto Serif JP', serif;
}

/* font size
------------------------------------*/

.fs135p {
	font-size: 135%;
}

.fs110p {
	font-size: 110%;
}

.fs90p {
	font-size: 90%;
}

.fs85p {
	font-size: 85%;
}

.fs75p {
	font-size: 75%;
}

/* font weight
------------------------------------*/
.fNormal {
    font-weight: normal !important;
}

.fbold {
    font-weight: bold !important;
}

/* text decoration
------------------------------------*/
.text-underline {
	text-decoration: underline;
}

/* text align
------------------------------------*/
.align-left {
	text-align: left !important;
}

.align-center {
	text-align: center !important;
}

.align-right {
	text-align: right !important;
}

/* cursor
------------------------------------*/
.cursor-pointer {
	cursor: pointer;
}

/*=================================================================
*  Common
*=================================================================*/
#container {
	display: flex;
    flex-direction: column;
    min-height: 100%;
}

#main {
	width: 100%;
	flex: 1;
}

/* header
------------------------------------*/

#header {
	width: 100%;
}

#header > .inner {
	padding: 20px 0;
}

#header .header-row {
	margin: 0;
}

#shop-logo {
	margin: 10px 0;
	max-height: 60px;
}

/* global navigation
------------------------------------*/
#global-navigation {
	display: inline-block;
}

#global-navigation ul {
	height:100%;
}

#global-navigation ul li {
	padding-left: 30px;
}

#sns-navigation {
	display: inline-block;
	margin-left: 20px;
}

#sns-navigation li {
    margin-left: 25px;
}

#sns-navigation i {
    font-size: 125%;
}

#sns-navigation .twitter {
    font-size: 115%;
}

#global-navigation-sp {
	display: none;
}

#global-navi-button {
	display: none;
}

/* contents
------------------------------------*/
.contents {
	padding: 80px 0;
}

.contents .section-title {
	font-size: 145%;
	text-align: center;
}

/* footer
------------------------------------*/
#footer {
	width: 100%;
}

#footer > .inner {
    padding: 80px 0 120px;
}

#footer .copyright {
	text-align: center;
    font-size: .8rem;
}

.lowpage {
	padding: 80px 0 120px;
}

.lowpage .page-title {
	margin-bottom: 80px;
}


/*=================================================================
*  Js
*=================================================================*/

/* hover popup
------------------------------------*/
.js-hover-popup {
	position: relative;
	z-index: 1000;
	cursor: help;
}

.js-popup {
	display: none;
	width: 260px;
	min-height: 100px;
	padding: 10px;
	margin: 0;
	position: absolute;
	bottom: 0;
	right: 0;
	box-shadow: 1px 3px 3px 3px rgba(0,0,0,0.2);
	background-color: #FFF;
	z-index: 5000;
}

.js-popup .popup-inner {
	display: table;
    width: 100%;
    height: 100%;
}

.js-popup .popup-contents {
	display: table-cell;
	vertical-align: middle;
}

/*=================================================================
*  Parts
*=================================================================*/

/* section title
------------------------------------*/
.section-title {
    margin-bottom: 60px;
}

/* list thumbnail
------------------------------------*/
.list-thumbnail ul {
    display: flex;
    flex-wrap: wrap;
    gap: 2%;
    width: 100%;
}

.list-thumbnail ul > li {
	width: 23.5%;
	margin: 2% auto;
}

.list-thumbnail img {
    width: 100%;
}

.list-thumbnail a {
    text-decoration: none;
}

.list-thumbnail a .title:hover {
    text-decoration: underline;
}

.list-thumbnail .item-list-thumbnail {
	overflow: hidden;
	max-height: 240px;

}

.list-thumbnail .item-list-thumbnail img {
	transition: .2s;
}

.list-thumbnail .item-list-thumbnail:hover img {
	transform: scale(1.05, 1.05);
}

.list-thumbnail .item-list-thumbnail.no-thumbnail {
	display: table;
	width:100%;
	height: 240px;
	background-color: #ddd;
	color:#aaa;
}

.list-thumbnail .item-list-thumbnail.no-thumbnail p {
	display: table-cell;
	vertical-align: middle;
	text-align: center;
}

.list-thumbnail .detail p {
	margin: 10px auto;
}

.list-thumbnail .detail .title {
	margin: 20px auto;
	font-size: 110%;
	font-weight: bold;
}

.list-thumbnail .detail .sub {
	font-size: 90%;
	color: #555;
}

.list-thumbnail.col3 ul {
    gap: 5%;
}

.list-thumbnail.col3 ul > li {
	width: 30%;
	margin: 3% auto;
}

.list-thumbnail.rounded .item-list-thumbnail {
	position: relative;
	width: 240px;
	height: 240px;
	border-radius: 50%;
	overflow: hidden;
}

.list-thumbnail.rounded .item-list-thumbnail img {
	position: absolute;
	width: 180%;
	left: 50%;
	transform: translateX(-50%);
}

.list-thumbnail.rounded .detail {
	text-align: center;
}

/* list thumbnail card
------------------------------------*/
.list-thumbnail-card {
    display: flex;
    flex-wrap: wrap;
    gap: 2%;
}

.list-thumbnail-card img {
    width: 100%;
}

.list-thumbnail-card li {
    width: 23.5%;
}

.list-thumbnail-card a:hover {
    text-decoration: none;
}

.list-thumbnail-card a.title:hover,
.list-thumbnail-card a:hover .title {
    text-decoration: underline;
}

.list-thumbnail-card a.moda {
    width: 23.5%;
}

.list-thumbnail-card .thumbnail {
    overflow: hidden;
    display: flex;
    align-items: center;
    aspect-ratio: 1 / 0.851;
    margin-bottom: 20px;
}

.list-thumbnail-card .thumbnail img {
	transition: .2s;
}

.list-thumbnail-card .thumbnail:hover img {
	transform: scale(1.05, 1.05);
}

.list-thumbnail-card.center {
	text-align: center;
}

/* box no photo
------------------------------------*/
.box-nophoto {
	display: table;
	width:100%;
	height: 240px;
	background-color: #ddd;
	color:#aaa;
}

.box-nophoto p {
	display: table-cell;
	vertical-align: middle;
	text-align: center;
}

/* table allergy
------------------------------------*/
.table-allergy {
	width: 100%;
	border-collapse: collapse;
	text-align: center;
}

.table-allergy th,
.table-allergy td {
	padding: 10px;
	border: solid 1px #ccc;
	height: 60px;
}

.table-allergy th {
    width: 12%;
}
.table-allergy th:first-child {
    width: 16%;
}

/* table calendar
------------------------------------*/
.table-calendar {
    width: 100%;
    text-align: center;
}

/*b.table-calendar tr th,
.table-calendar tr td {
    order: solid 1px #ddd;
}*/

.table-calendar button {
	background-color: transparent;
	border: none;
	-webkit-appearance: button;
}

.table-calendar .day-number {
	line-height: 1rem;
}

.table-calendar .today-cell button {
	position: relative;
}

.table-calendar .today-cell button::after {
	display: inline-block;
	content: "\25CB";
	position: absolute;
	top: 49%;
	left: 51%;
	font-size: 225%;
	line-height: 1rem;
	transform: translate(-50%, -50%);
}

.table-calendar th,
.table-calendar td button {
	padding: 15px 10px;
}

.table-calendar td button {
	display: block;
	width: 100%;
}

.table-calendar .holiday {
	background-color: #a54a4a;
	color: #FFF;
}

.table-calendar .event {
	background-color: #40589b;
	color: #FFF;
}

.table-calendar .other {
	background-color: #777;
	color: #FFF;
}

.table-calendar .saturday,
.table-calendar .saturday * {
	color: #2d50b5;
}

.table-calendar .sunday,
.table-calendar .sunday * {
	color: #AD264E;
}

.calendar-color-information {
	display: flex;
	justify-content: space-between;
	margin-top:20px;
}

.calendar-color-information .colorbox {
	display: inline-block;
	width: 1rem;
	height: 1rem;
	background-color: #777;
	vertical-align: middle;
}

.calendar-color-information .info-group {
	display: inline-block;
	margin: 0 15px;
}

.calendar-color-information .info {
	display: inline-block;
	vertical-align: middle;
}

.calendar-color-information .holiday {
    background-color: #a54a4a;
}

.calendar-color-information .event {
    background-color: #40589b;
}

.calendar-color-information .other {
    background-color: #777;
}

/* box [wire]
------------------------------------*/
.box-wire {
	padding: 50px;
    border: solid 1px #ccc;
}

/*=================================================================
*  ifream
*=================================================================*/
.custom-iframe {
	outline: none;
	border: none;
	box-shadow: none;
	overflow-y: auto;
}

/*=================================================================
*  Styles
*=================================================================*/

/* page [common]
------------------------------------*/
.container {
	padding: 40px 0 100px;
}

.page-title {
	margin-bottom: 60px;
	text-align: center;
}

/* page [top]
------------------------------------*/
.top-page.container  {
	padding-top: 0;
}

#main-visual .visual-item {
	display: flex;
	align-items: center;
	overflow: hidden;
	max-height: 520px;
}

#main-visual img {
	width: 100%;
}

.topics-deatail-modal img {
	width: 70%;
	max-width:420px;
}

/* override: micromodal.css */
.topics-deatail-modal .modal__container {
	min-width: 640px;
}
.topics-deatail-modal .modal__title {
	color: #555;
}
.topics-deatail-modal .modal__header {
	padding-bottom: 20px;
	border-bottom: solid 1px #ddd;
}
.topics-deatail-modal .modal__footer {
	padding-top: 20px;
	border-top: solid 1px #ddd;
}

#shop-information #calendar {
    max-width: 420px;
}

#shop-information .calendar-color-information {
	text-align: right;
	margin-top: 20px;
}

#shop-information .inner {
	text-align: right;
	margin-top: 20px;
}

#shop-information .box-information {
    padding-left: 8%;
}

#shop-information .box-information img {
    width: 100%;
}

#shop-information .box-information .shop-name {
    font-size: 125%;
    font-weight: bold;
}

#shop-information .box-information .box + .box {
    margin-top: 20px;
}

#shop-information .row {
    width: 50%;
}


/* page [shop information]
------------------------------------*/
#page-shop-information .shop-name {
    font-size: 125%;
    font-weight: bold;
}

#page-shop-information .shop-image img {
	width: 100%;
}

#page-shop-information .information-list {
    margin-top: 30px;
}

#page-shop-information .information-list .contact-box {
	margin-bottom: 15px;
}

#page-shop-information .information-list dl {
	overflow: hidden;
}

#page-shop-information .information-list dl dt {
	float: left;
}

#page-shop-information .information-list dl dd {
	margin-left: 5rem;
}

#page-shop-information #calendar {
	width: 100%;
}

#page-shop-information .content-column .row {
	width: 50%;
	margin: 0;
}

#page-shop-information .content-column .row + .row {
	width: 36%;
}

/* page [item detail]
------------------------------------*/
#page-item-detail .swiper img {
    width: 100%;
}

#page-item-detail .swiper-thumbs .swiper-wrapper li {
    max-width: 100px !important;
    margin: 0;
}

#page-item-detail .box-detail {
	padding-top: 30px;
	border-top: solid 1px #ddd;
	margin-top: 30px;
}

#page-item-detail .item-name {
	margin-bottom: 20px;
	font-size: 125%;
}

#page-item-detail .item-desc {
	margin-bottom: 20px;
}

#page-item-detail .item-classes dl {
    overflow: hidden;
}

#page-item-detail .item-classes dl dt {
    float: left;
}

#page-item-detail .item-classes dl dd {
    margin-left: 8em;
}

#page-item-detail .item-classes > ul > li + li {
    margin-top: 10px;
}

#page-item-detail .slider {
	width: 100%;
}

h4.pc_on_cen {
	font-size: 145%;
}
