/*
  モトスケショップページ
*/
body {
  	margin          : 0;
  	padding         : 0;
  	background-color: #fffbde;
  	font-family     : "Rounded Mplus 1c", "Hiragino Kaku Gothic ProN", sans-serif;  	
}

/* ショップヘッダー */
div.shopHeader {
	position        : fixed;
	display         : flex;
	width           : 100%;
	top             : 58px;
    align-items     : center; /* 縦中央に配置 */
    gap             : 10px;
    text-align      : right;
    background-color: #f0f0f0;
    z-index         : 999;
}

.cart-icon {
	padding-right   : 10px;	
  	font-size       : 1.2rem;
  	color           : #333;
}

.go-to-cart {
  	display         : inline-block;
    /*width           : 110px;*/  	
  	margin-top      : 10px;
  	font-size       : 0.9rem;
  	color           : #2e7d32;
  	text-decoration : underline;
    text-align      : center;  
}

.go-to-cart:hover {
  	text-decoration : none;
}

/* カバー */
.cover-image {
	padding-top     : 63px;
}

.cover-image img {
  	display         : block;
	width           : 100%;
  	max-height      : 280px;
  	margin-bottom   : 10px;  	
  	object-fit      : cover;
}

.page-title {
  	margin          : 20px 0;
	text-align      : center;
  	font-size       : 1.8rem;
  	color           : #2e7d32;
}

.main-shop-title {
	width           : 80%;
	max-width       : 300px;
}

.main-shop-title img {
	width           : 100%;	
}

/* カテゴリーフィルター*/
#category-filter {
  	margin          : 20px 0;
  	text-align      : center;
}

.filter-btn {
    margin          : 4px -12px;
  	padding         : 8px 16px;
  	border          : none;
  	border-radius   : 6px;
  	background-color: #e0f2f1;
  	color           : #00695c;
  	cursor          : pointer;
}

.filter-btn:hover {
 	 background-color: #b2dfdb;
}

/* 商品検索ボックス */
#product-search {
    margin           : 5px 0 5px;
    float            : left;
    flex-grow        : 1; /* 必要に応じて拡張可能 */
	text-align       : left;
}

#search-input {
 	width            : 60%;
    max-width        : 200px;
    margin-left      : 10px;  
  	padding          : 8px;
  	font-size        : 1rem;
  	border-radius    : 6px;
  	border           : 1px solid #ccc;
}

/* 商品一覧 */
.product-list {
  	display          : flex;
  	padding          : 20px;
  	flex-wrap        : wrap;
  	justify-content  : center;
  	gap              : 20px;
  	box-sizing       : border-box;	
}

.product-card {
  	flex             : 0 1 100%;
  	width            : 100%;
  	max-width        : 400px;
  	margin           : 0 auto;
  	padding          : 20px;
  	background       : #fff;
  	border           : 2px dashed #ccc;
  	border-radius    : 12px;
  	box-shadow       : 0 4px 10px rgba(0,0,0,0.05);
  	text-align       : center;
  	box-sizing       : border-box;
}

@media screen and (max-width: 880px) {
	.product-list {
		row-gap         : 20px;
		column-gap      : 0px
	}
}

/* 商品写真スライド表示 */
.product-slider-wrapper {
  	position         : relative;
  	max-width        : 100%; /* 画面に対して余白を持たせる */
  	margin           : 2rem auto;
  	padding          : 0 20px; /* 左右に余白追加 */
  	box-sizing       : border-box;
}

.product-slider-container {
  	overflow         : hidden;
  	width            : 100%;
}

.product-slider {
  	display          : flex;
  	transition       : transform 0.4s ease;
}

.product-slider img {
  width: 100%;
  /*flex: 0 0 100%;*/ /* 1枚表示に固定 */
  object-fit: contain;
  border-radius: 8px;
  pointer-events: none;
  user-select: none;
}

.product-image {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/* ナビゲーションボタンをスタイリッシュに */
.nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  font-size: 24px;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  transition: background 0.3s, transform 0.2s;
  z-index: 10;
}

.nav:hover {
  background: #f0f0f0;
  transform: translateY(-50%) scale(1.05);
}

.nav.prev {
  left: 10px;
}

.nav.next {
  right: 10px;
}

.dots {
  text-align: center;
  margin-top: 10px;
}

.dots .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  background: #ccc;
  border-radius: 50%;
  margin: 0 5px;
  cursor: pointer;
  transition: background 0.3s;
}

.dots .dot.active {
  background: #333;
}

.product-info {
  margin-top: 15px;
}

.product-title {
  font-size: 1.5rem;
  margin-bottom: 10px;
}

.price {
  color: #444;
  margin-bottom: 10px;
}

.original-price {
  text-decoration: line-through;
  color: #999;
}

.sale-price {
  font-weight: bold;
  font-size: 1.2rem;
  color: #d32f2f;
}

.product-note {
  font-size: 0.95rem;
  color: #444;
  margin: 6px 0;
}

.product-subnote {
  font-size: 0.75rem;
  color: #888;
  margin: 4px 0 10px;
}

.stock-error {
  color: #d32f2f;
  font-size: 0.85rem;
  margin-top: 4px;
}

@media screen and (max-width: 440px) {
	.product-card {
		padding  : 10px;
	}
	.product-title {
	  	font-size: 1.2rem;
	}
	.sale-price {
  		font-size: 1.0rem;
	}
}

/* 予約ボタン */
.reserve-button {
  margin-top: 6px;
  padding: 8px 16px;
  background-color: #ff9800;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.9rem;
  cursor: pointer;
}

.reserve-button:hover {
  background-color: #f57c00;
}

.select-field {
    display: flex;
    align-items: center; /* 縦方向の中央揃え */
    justify-content: center; /* 横方向の中央揃え */
    gap: 10px; /* 要素間の余白（調整可） */
}



select {
  padding: 6px;
  margin: 6px 0 12px;
  border-radius: 6px;
  border: 1px solid #ccc;
  width: 60%;
}

.color-with-status-stok {
    display: flex;
    justify-content: center; /* 横中央 */
    align-items: center; /* 縦中央 */
    gap: 10px; /* 要素間の余白（お好みで調整） */
}

.color-box-preview {
    width: 50px; /* お好みのサイズに変更 */
    height: 50px;
    background-color: #ccc; /* 例としての背景色 */
}

.stock-status {
    font-size: 16px;
    color: #333;
}

button {
  padding: 10px 20px;
  background-color: #43a047;
  color: white;
  border: none;
  border-radius: 6px;
  font-size: 1rem;
  cursor: pointer;
  transition: background 0.3s;
}

button:hover {
  background-color: #2e7d32;
}

.add-to-cart {
	clear: both;
    display: block;
    margin: 20px auto;	
	
}

.color-box-preview {
  width: 120px;
  height: 40px;
  border-radius: 6px;
  border: 1px solid #ccc;
  margin-top: 10px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  color: #fff;
  font-weight: bold;
  background-color: transparent;
  transition: background 0.3s;
}

.out-of-stock {
  background-color: #e57373 !important;
}

.in-stock {
  background-color: #4caf50 !important;
}

.main-shop-title {
  	margin: 30px auto 20px auto;
	text-align: center;
  	font-size: 2rem;
  	color: #1a5c3f;
  	font-weight: bold;
}


.reserve-form {
  margin-top: 10px;
  padding: 10px;
  border: 1px dashed #ccc;
  border-radius: 8px;
  background: #fffefc;
  text-align: left;
  font-size: 0.9rem;
}

.reserve-form input,
.reserve-form textarea {
  width: 100%;
  padding: 6px;
  margin: 6px 0 12px;
  border-radius: 6px;
  border: 1px solid #ccc;
  font-size: 1rem;
}

.submit-reservation {
  padding: 8px 16px;
  background-color: #4caf50;
  color: white;
  border: none;
  border-radius: 6px;
  font-size: 1rem;
  cursor: pointer;
}

.submit-reservation:hover {
  background-color: #388e3c;
}

.cart-popup {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  padding: 24px;
  width: 90%;
  max-width: 400px;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  border-radius: 12px;
  z-index: 9999;
  text-align: center;
  display: none;
  animation: fadeIn 0.3s ease;
}

.popup-message {
  font-size: 16px;
  margin-bottom: 20px;
}

.popup-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.popup-buttons button {
  padding: 12px;
  font-size: 16px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
}

.btn-view-cart {
  background-color: #555;
  color: white;
}

.btn-checkout {
  background-color: #2dd2ae;
  color: white;
}

.popup-close {
  position: absolute;
  top: 8px;
  right: 12px;
  font-size: 20px;
  cursor: pointer;
  color: #666;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translate(-50%, -60%); }
  to { opacity: 1; transform: translate(-50%, -50%); }
}

