/*
Theme Name: イズミ学校教材ショップ
Theme URI: https://shop.books-izumi.co.jp/
Author: 有限会社イズミコーポレーション
Description: 教育機器ECショップ専用のシンプルなWooCommerceテーマです。
Version: 1.0.2
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: izumi-school-shop-theme
*/

:root {
	--izumi-navy: #123a63;
	--izumi-blue: #1f5f99;
	--izumi-pale: #eef5fb;
	--izumi-line: #d8e1ea;
	--izumi-text: #1d2733;
	--izumi-muted: #5a6876;
	--izumi-white: #fff;
	--izumi-radius: 12px;
	--izumi-shadow: 0 8px 28px rgba(18, 58, 99, .08);
}

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

html { scroll-behavior: smooth; }

body {
	background: #fff;
	color: var(--izumi-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1.75;
	margin: 0;
}

a { color: var(--izumi-blue); }
a:hover { color: var(--izumi-navy); }
img { height: auto; max-width: 100%; }
button, input, select, textarea { font: inherit; }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background: #fff;
	clip: auto !important;
	clip-path: none;
	color: var(--izumi-navy);
	display: block;
	height: auto;
	left: 12px;
	padding: 12px 16px;
	top: 12px;
	width: auto;
	z-index: 100000;
}

.site-header {
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--izumi-line);
	position: sticky;
	top: 0;
	z-index: 100;
}

.site-header__inner,
.site-main,
.site-footer__inner {
	margin: 0 auto;
	max-width: 1200px;
	padding-left: 20px;
	padding-right: 20px;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 76px;
	gap: 24px;
}

.site-brand {
	color: var(--izumi-navy);
	display: block;
	line-height: 1.25;
	text-decoration: none;
}

.site-brand__name {
	display: block;
	font-size: clamp(.95rem, 4.25vw, 1.18rem);
	font-weight: 800;
	letter-spacing: .01em;
	white-space: nowrap;
}

.site-nav { display: flex; align-items: center; gap: 8px; }
.site-nav a {
	border-radius: 8px;
	color: var(--izumi-navy);
	font-size: .94rem;
	font-weight: 700;
	padding: 9px 13px;
	text-decoration: none;
}
.site-nav a:hover,
.site-nav a:focus-visible { background: var(--izumi-pale); }
.site-nav__cart { border: 1px solid var(--izumi-line); }

.site-main { min-height: calc(100vh - 290px); padding-bottom: 72px; padding-top: 24px; }
.site-main--front { padding-top: 8px; }

.content-shell { margin: 0 auto; max-width: 960px; padding: 28px 0 56px; }
.content-shell--wide { max-width: 1160px; }
.entry-header { border-bottom: 1px solid var(--izumi-line); margin-bottom: 28px; padding-bottom: 16px; }
.entry-title { color: var(--izumi-navy); font-size: clamp(1.75rem, 4vw, 2.4rem); line-height: 1.35; margin: 0; }
.entry-content > :first-child { margin-top: 0; }
.entry-content h2 { color: var(--izumi-navy); font-size: 1.35rem; margin-top: 2.2em; }
.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content th,
.entry-content td { border: 1px solid var(--izumi-line); padding: 12px; text-align: left; vertical-align: top; }
.entry-content th { background: var(--izumi-pale); width: 30%; }

.site-footer { background: #f7f9fb; border-top: 1px solid var(--izumi-line); color: var(--izumi-muted); }
.site-footer__inner { display: grid; gap: 18px; padding-bottom: 30px; padding-top: 30px; }
.site-footer__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.site-footer__name { color: var(--izumi-navy); font-size: 1rem; font-weight: 800; margin: 0; }
.site-footer__links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 18px; }
.site-footer__links a { color: var(--izumi-muted); font-size: .84rem; text-decoration: none; }
.site-footer__links a:hover { color: var(--izumi-navy); text-decoration: underline; }
.site-footer__copy { border-top: 1px solid var(--izumi-line); font-size: .78rem; margin: 0; padding-top: 16px; }

.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-button {
	background: var(--izumi-navy) !important;
	border: 2px solid var(--izumi-navy) !important;
	border-radius: 8px !important;
	color: #fff !important;
	font-weight: 700 !important;
	min-height: 46px;
	padding: 10px 18px !important;
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-button:hover { background: #fff !important; color: var(--izumi-navy) !important; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	background: #fff;
	border: 1px solid #aebdca;
	border-radius: 7px;
	min-height: 46px;
	padding: 9px 11px;
}
.woocommerce-message,
.woocommerce-info { border-top-color: var(--izumi-blue); }
.woocommerce-error { border-top-color: #a52a2a; }
.woocommerce div.product { padding-top: 20px; }
.woocommerce div.product .product_title { color: var(--izumi-navy); font-size: clamp(1.65rem, 3.6vw, 2.35rem); line-height: 1.4; }
.woocommerce div.product p.price { color: var(--izumi-text); }
.woocommerce table.shop_table { border-color: var(--izumi-line); border-radius: var(--izumi-radius); }

@media (max-width: 720px) {
	.site-header { position: static; }
	.site-header__inner { align-items: flex-start; flex-direction: column; gap: 12px; padding-bottom: 14px; padding-top: 14px; }
	.site-nav { width: 100%; }
	.site-nav a { flex: 1; text-align: center; }
	.site-main { padding-left: 14px; padding-right: 14px; }
	.site-footer__inner { padding-left: 16px; padding-right: 16px; }
	.site-footer__top { flex-direction: column; }
	.site-footer__links { justify-content: flex-start; }
	.entry-content th,
	.entry-content td { display: block; width: 100%; }

	/* Keep cart labels and amounts on a clean two-column line on phones. */
	.woocommerce-cart table.shop_table_responsive tr td.product-price,
	.woocommerce-cart table.shop_table_responsive tr td.product-quantity,
	.woocommerce-cart table.shop_table_responsive tr td.product-subtotal,
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		text-align: right !important;
	}
	.woocommerce-cart .cart_totals table.shop_table_responsive tr th { display: none; }
	.woocommerce-cart table.shop_table_responsive tr td.product-price::before,
	.woocommerce-cart table.shop_table_responsive tr td.product-quantity::before,
	.woocommerce-cart table.shop_table_responsive tr td.product-subtotal::before,
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td::before {
		float: none !important;
		flex: 1 1 auto;
		margin: 0;
		min-width: 0;
		text-align: left;
	}
	.woocommerce-cart table.shop_table_responsive .woocommerce-Price-amount,
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td > * {
		flex: 0 0 auto;
		margin-left: auto;
		white-space: nowrap;
	}
}
