@charset "utf-8";

html {
	height: 100%;				/*ビューポート全体*/
	width: 100%;
	margin: 0;					/*デフォルトの余白を削除*/
}

body {
	height: 100%;				/*ビューポート全体*/
	margin: 0;					/*デフォルトの余白を削除*/
	display: flex;				/*body を Flexコンテナに設定*/
	flex-direction: column;		/*子要素を 縦方向に並べる設定(header → main → footer)縦レイアウト*/
	background: #fafafa;
}


/* ヘッダー */
.fullHeader {
	position: sticky;			/*スクロールしてもヘッダーが画面上部に貼り付く, top: 0; と組み合わせる*/
	width: 100%;				/*横幅を親要素いっぱいに広げる*/
	background: #fff;
	padding: 0;					/*内側の余白をなくす*/
	border-bottom: 1px solid #e5e7eb;	/*下に薄い境界線*/
	z-index: 1000;				/*ヘッダーを前面表示*/
	top: 0;
	left: 0;					/*? 画面左上に固定*/
}

.headerInner {
	max-width: 1080px; 			/*ヘッダーの横幅を最大1080pxに制限*/
	margin: 0 auto;				/*左右の余白を自動調整して、要素を中央寄せ*/
	padding: 0 32px;			/**左右の内側に余白を追加*/
	display: flex;				/*Flexコンテナにして、子要素(h1, nav)を横並びにする*/
	align-items: center;		/*子要素(h1, nav)を縦方向に中央揃え*/
	box-sizing: border-box;		/*幅計算に padding や border を含める*/
	white-space: nowrap;		/*子要素のテキストが折り返されないようにする, メニューが横並びで維持*/
}

.menuIcon {
	margin-left: 16px;
}

.headerItem {
	display: flex;
	justify-content: space-between;		/*子要素(h1, nav)を左右に均等配置*/
	text-align: center;					/*親要素に指定すると、その中のテキストやインライン要素が中央に揃う, ブロック要素には直接効かない*/
	gap: 0;
	width: 100%;
}
h1 {							/*課題サンプルサイト*/
	margin: 18px 0;	
	padding: 4px;				/*内側の余白*/
	font-size: 14px;			/*文字サイズ*/
}

p {
	color: #070707;
	margin: 0;
	padding: 4px;
	font-size: 6px;
}
/* ヘッダーメニューアイテム 記事,お問い合わせ */
.headerNav li a {
	text-decoration: none;		/*デフォルトの下線を削除*/
	color: inherit;				/*親要素の文字色をそのまま引き継ぐ, */
	padding: 8px 8px;
}
.headerNav li a:hover{
	color:#2163f3;
	background: #dbe3f2;
	border-radius: 6px;
	padding: 8px 8px;
}

/* 全体の記事 パンくず～フッターの手前まで */
.wrapper {
	margin: 0 auto;
	background: #fafafa;
	max-width: 1080px;			/*要素が広がるとき1080pxを超えない*/
	padding: 0 4px;
	box-sizing: border-box;		/*widthやheightにpaddingやborderを含める*/
	flex: 1;
}

ul {
	padding: 8px;
	display: flex;
	font-size: 14px;
	list-style: none;			/*黒丸削除*/
	gap: 8px;					/*要素同士の間隔*/

}

main {
	padding: 0 16px;
	margin: 0 32px;
}

/* パンくず */
.ask {
	margin-bottom: 45px;
}
.breadcrumb {
	font-size:12px;
	margin: 0;
}

.breadcrumb a {
	text-decoration: none;						/*下線削除*/
	color: inherit;
}
.breadcrumb ul {
	font-size: 13px;
	padding: 0;
	margin:12px 0;
	gap: 8px;
	color: #666666;
}
h2 {
	color: #222222;
	margin: 24px 0 0;
	font-size: clamp(22px, 3vw, 36px);			/*clamp(最小値, 推奨値ビューポート幅の 3% を基準, 最大値) 関数 */
}
p {
	color: #666666;
	font-size: 16px;
	padding: 0;
}
.ask p {
	margin-top: 8px;
}

/* 記事リスト */
.lists {
	display: flex;
	flex-direction: column;						/*子要素を縦方向に並べる*/
	gap: 16px;
	flex-wrap: wrap;							/*子要素がはみ出したら折り返す*/
}

@media (min-width: 590px) and (max-width: 899px) {
	.lists {
		flex-direction: row;					/*横並び*/
		flex-wrap: wrap;
		gap: 16px;
	}
	.card {
		flex: 0 1 calc(50% - 8px);
		max-width: calc(50% - 8px);
		box-sizing: border-box;
	}
}
@media (min-width: 900px) {
	.lists {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 16px;
	}
	.card {
		flex: 0 1 calc(33.333% - 10.666px);		/*伸長0, 縮小1, 100％-(16px*2)÷3*/
		max-width: calc(33.333% - 10.666px);
		box-sizing: border-box;
	}
}

.card {
	width: 100%;
	border-radius: 16px;
	overflow: hidden;							/*溢れたコンテンツは要素のパディングボックスで切り取られる*/
	box-shadow :0 0 4px rgb(237, 233, 233);
	margin-top: 4px;
	transition: all 0.2s ease;					/*all → すべてのプロパティに適用,0.2s → 変化にかかる時間,ease は「ゆっくり始まり、速くなり、最後にゆっくり終わる」自然な動き*/
	display: flex;
	flex-direction: column;						/*子要素を縦方向に並べる*/
}
.card:hover {
	box-shadow: 0 0 8px rgba(214, 209, 209, 0.886);
	transform: translateY(-2px);
}

.cardTop {
	background-image: url(../asset/bg.png);
	overflow: hidden;
	aspect-ratio: 16 / 9;
}
.cardTop img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
}
img {
	max-width: 100%;
	display: block;
}

.cardBottom {
	background: #ffffff;
	padding: 4px 16px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

h3 {
	font-size: 16px;
	margin: 0;
}

.tags {
	display:flex;
	gap: 8px;
}

.tag {
	border: 1px solid #ccc;
	border-radius: 16px;
	padding: 4px 8px;
	display: inline-block;
	font-size: 12px;
}

.readMore {
	display:inline-block;
	text-decoration: none;
	color: #2163f3;
	font-weight: bold;
	padding: 16px 0;
	margin-top: auto;
}
p.category {
	font-size: 12px;
}
p.comment {
	font-size: 14px;
}

/* フッター */
.fullFooter {
	width: 100%;
	background: #ffffff;
	padding: 16px 0;
	border-top: 1px solid #e5e7eb;
	margin-top: 48px;
}
.footerInner {
	max-width: 1080px;
	margin: 0 auto;
	padding: 4px 24px;
	font-size: 14px;
	color: #666666;
}


/* 記事詳細 ２ページ目 */
.page2 {
	margin: 0 20%;
	background: #fafafa;
	max-width: 1080px;
	padding: 0 16px;
}

.cardImgBackground {
	background-image: url(../asset/bg.png);
	border-radius: 12px;
	aspect-ratio: 16 / 9;		/*要素の幅が決まると高さを自動計算,親の比率を決めることで『枠』が確定*/
	overflow: hidden;			/*はみ出し処理*/
}
.cardImg {	
	width: 100%;				/*親要素card-img-backgroundの幅・高さを100％受け取るので『画像を配置する領域』が親と同じ16：9になる*/
	height: 100%;
}

.cardImg img {
	width: 100% !important;		/*HTMLで設定されている画像サイズを打ち消し*/
	height: 100% !important;	/*HTMLで設定されている画像サイズを打ち消し*/
	object-fit: contain;		
}

.cardTitle {
	margin-top: 18px;
	padding: 12px;
	border: 1px solid #fff;
	border-radius: 12px;
	background: #fff;
	box-shadow :0 0 4px rgb(237, 233, 233);
}

.cardTitle small {
	color: #666666;
}

h4 {
	font-size: clamp(22px, 3vw, 28px);
	margin: 4px 0;
}

.tagItems {
	display: flex;
	gap: 8px;
	padding: 8px 24px;
}
.tagItem a {
	display: inline-block;
	text-decoration: none;
	color: inherit;
	border: 1px solid #d2d4d7e9;
	border-radius: 24px;
	padding: 14px;
	font-size: 14px;
}

.pagenationLink {
	display: flex;
	justify-content: space-between;		/*左右の端に配置し、残りのスペースを均等に分ける*/
}
.pagenationLink a {
	text-decoration: none;
	color: inherit;
	font-size: 14px;
}

.cardText {
	margin-top: 16px;
	padding: 12px;
	border: 1px solid #fff;
	border-radius: 12px;
	background: #fff;
	box-shadow :0 0 4px rgb(237, 233, 233);
}

h5 {
	font-size: 20px;
	margin: 20px 0 0;
	padding: 0 12px;
}

.cardText p {
	margin: 0;
	padding: 12px;
	color: #222222;
}

h6 {
	font-size: 20px;
	margin: 22px 0 0;
	padding: 22px 8px 0;
	border-top: 1px solid  #e5e7eb;
}

.pagenationLink {
	margin: 16px;
}

/* お問い合わせフォーム */
.container {
	max-width: 1080px;
	flex: 1;
	margin: 0 auto;
}
.form {
	max-width: 100%;
	padding: 32px;
	border: 1px solid #ebe9e9;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 4px 6px #e9e7e7;
}


label  {
	display: flex;
	flex-direction: column;
	margin-bottom: 24px;
	font-size: 16px;
	margin-bottom: 5px;
	font-weight: bold;
}

.required {
	color: red;
}

input,
textarea {
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 8px;
}

input#name {
	max-width: 250px;
}
input#email {
	max-width: 450px;
}
input#subject {
	max-width: 450px;
}
textarea#message {
	max-width: 600px;
}
label {
	display: flex;
	align-items: start;
	
}
textarea {
	resize: none;
}


.button {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.reset {
	background: #fff;
	border: 1px solid #ccc;
	padding: 8px 16px;
	border-radius: 8px;
	cursor: pointer;
}

.submit {
	background: #2563eb;
	color: #fff;
	border: none;
	padding: 8px 16px;
	border-radius: 8px;
	cursor: pointer;
}


@media (min-width: 600px) {
	.form-group {
    flex-direction: row;
    align-items: start;
	}

	.form-group label {
    width: 150px;
    margin-bottom: 0;
	}

	.form-group input,
	.form-group textarea {
    flex: 1;
	}

}

/* ハンバーガーメニュー */
.overlay {
	position: fixed;									/*位置固定*/
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	background-color:rgba(255, 255, 255, 0.95);
	text-align: center;									/*中央揃え*/
	padding: 0;
	opacity: 0;											/*透明*/
	pointer-events: none;								/*下の要素を選択できるようにpointerイベントの無効化*/
}
.overlay ul {
	margin: 0;
	padding: 0;
	display: block;										/*表示*/
}
.overlay li {
	margin-top: 24px;
	font-size: 24px;
}
.overlay a {
	text-decoration: none;
	color: inherit;
}
#open {
	font-size: 24px;
	cursor: pointer;
	margin-left: auto;
}

#close {
	display: none;										/*非表示*/
	font-size: 20px;
	cursor: pointer;
	position: absolute;									/*固定するがページと一緒にスクロールする*/
	top: 12px;
	right: 8px;
	z-index: 1000;										/*最前表示*/
}

.overlay.isOpen {
	opacity: 1;											/*不透明*/
	pointer-events: auto;								/*ハンバーガーメニューを開いたら規定値に戻す*/
}

@media(max-width:600px) {								/*600px以下*/
	.headerNav {
		display: none;									/*非表示*/
	}
	
}

/* ショップ ページ */
.cardBottom h3 {
	font-size: 20px;
}

.cardBottom h4 {
	font-size: 20px;
	align-self: flex-end;
}

a {
	text-decoration: none;
	color: inherit;
}

.cardBottom .stock {
	justify-content: flex-end;
}

/* アイテム詳細ページ */
.itemForm {
	display: flex;
}

.cardImgBackground {
	width: 400px;
}
.cardImg {
	width: 100%;
}

.productInfo {
	width: 500px;
	background-color: white;
	border-radius: 8px;
	padding: 16px;
	margin: 0 16px;
	box-sizing: border-box;
}
.productInfo h5 {
	text-align: right;
}
.productInfo .cart {
	margin-left: 16px;
	background-color: #f1f0f0;
	cursor: pointer;
	border: 1px solid #a5a3a3;
	border-radius: 6px;
}
.productInfo .stock {
	justify-content: flex-end;
}

.cartStock {
	display: flex;
	gap: 16px;
	margin-top: 10px;
	justify-content: flex-end;
}

label[for="quantity"] {
	padding: 4px;
}

#quantity {
	cursor: pointer;
}

.itemDescription {
	padding: 16px;
	font-size: 18px;
	font-weight: bold;
	color: #070707
}

.qtyElement {
	display: flex;
}

@media (max-width:800px) {
	.itemForm {
		display: block;
	}
	.cardImgBackground {
		margin-bottom: 8px;
	}
	.productInfo {
		margin: 0;
		width: 400px;
	}
}


/* /cart ページ */
h2,.order {
	margin-left: 30px;
}
.cartPage {
	border: 1px solid black;
	border-radius: 4px;
	padding: 16px;
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}
/* 画像を正方形160pxに統一 */
.cartRow {
	display: flex;
	padding: 12px 0;
	border-bottom: 1px solid black;
	justify-content: space-between;

}

.cartImg {
	width: 160px;
	height: 160px;
	flex: 0 0 160px;
	overflow: hidden;
	border: 1px solid #ddd;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cartImg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cartInfo {
	display: flex;
	gap: 16px;
	width: 100%;
}

.cartName {
	font-size: 26px;
	font-weight: bold;
	margin-bottom: 6px;
}
.cartPrice {
	font-size: 26px;
	font-weight: bold;
	align-self: center;
	text-align: right;
	margin-left: auto;


}
.cartQty {
	font-size: 18px;
	align-self: center;
}

.qtySelect {
	padding: 8px;
	font-size: 16px;
}
.delCheck {
	transform: scale(1.3);
	cursor: pointer;
}

.cartSubtotal {
	font-weight: 700;
	border-top: 1px solid #ddd;
}

#deleteSelected {
	margin: 20px 0;
	border:1px solid #b9b8b8d1;
	background-color: #e7e5e5;
	padding: 8px;
	cursor: pointer;
}

.cartTotals {
	text-align: right;
	margin-bottom: 32px;
}

.cartTotal {
	font-size: 20px;
	font-weight: bold;
}

.cartActions {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding: 14px;
	font-size: 16px;
}

.cartBtn {
	display: none;
	border: 1px solid #b9b8b8d1;
	border-radius: 2px;
	padding: 8px;
	background-color: #e7e5e5;
}
.backBtn {
	border: 1px solid #b9b8b8d1;
	border-radius: 2px;
	padding: 8px;
	background-color: #e7e5e5;

}

#emptyMessage {
	display: none;
	text-align: center;
}

@media (max-width:650px) {
	.cartRow {
		display: block;
	}
	.cartQty {
		margin-left: 300px;
	}
}

/* order.php */
.order {
	margin: 0;
}

.orderForm {
	margin: 20px;
	width: 100%;
}

.cartBackBtn, #orderBtn {
	border: 1px solid #b9b8b8d1;
	border-radius: 2px;
	padding: 8px;
	background-color: #e7e5e5;
}

.backBtn {
	
}
.orderBtn {
	display: flex;
	justify-content: space-between;
	margin-top: 24px;
}