.root-variables-placeholder { display:none }
/* Normalized variables: keep same values as parent to avoid surprises. */
:root {
	--accent: #00B5E2;
	--accent-dark: #00A0D1;
	--text: #333;
	--bg-light: #f0fbff;
}

/* Top breathing space only above the logo (requested: 4px)
   - keeps the rest of the page layout unchanged */
header.main-nav .site-logo {
	padding-top: 4px;
}

/* Accessibility helper: keep content for SEO/screen readers but hide visually */
.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Layout container (front-page baseline: 技術紹介=1092px) */
.tbvh-container {
	max-width: 1092px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}

/* Footer menu: subtle, balanced */
.footer-sitemap {
	padding: 28px 20px;
}
.footer-sitemap-list {
	gap: 10px 18px;
}
.footer-sitemap-list li {
	margin: 0;
}
.footer-sitemap-list a {
	font-size: 0.92rem;
	color: #666;
}
.footer-sitemap-list a:hover {
	color: #00A0D1;
}

/* Mobile hamburger button override (parent: .hamburger)
   - no border, white background
   - 3 aqua lines
   - slightly larger/tappable */
.hamburger {
	background: #fff;
	border: none;
	box-shadow: none;
	border-radius: 10px;
	padding: 12px;
	width: 56px;
	height: 56px;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	opacity: 1;
	visibility: visible;
	z-index: 2000;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 7px;
	padding-top: 10px;
	padding-bottom: 14px;
}
.hamburger span {
	background-color: #00B5E2; /* iOS fallback: ensure visible even if CSS vars fail */
	height: 4px;
	border-radius: 999px;
	display: block;
	opacity: 1;
	width: 30px;
	min-width: 24px;
	flex: 0 0 4px;
	margin: 0;
	padding: 0;
	line-height: 0;
	font-size: 0;
}
@media (max-width: 768px) {
	.hamburger {
		display: flex !important;
		position: fixed;
		top: 10px;
		right: 10px;
		z-index: 10000;
	}
}

/* Debug: visualize hamburger on front-end when ?tbvh_debug=1 */
body.tbvh-debug .hamburger {
	outline: 3px solid #ff00ff !important;
	background: #fff !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	filter: none !important;
}
body.tbvh-debug .hamburger::after {
	content: 'HAMBURGER';
	position: absolute;
	top: -18px;
	right: 0;
	font-size: 10px;
	line-height: 1;
	background: #ff00ff;
	color: #fff;
	padding: 2px 4px;
	border-radius: 4px;
}
body.tbvh-debug .hamburger span {
	outline: 2px solid #00ff00 !important;
	background-color: #00B5E2 !important;
}

/* Mobile: keep dropdown (sub-menu) expanded inside hamburger menu */
@media (max-width: 768px) {
	.nav-menu .menu-item-has-children > .sub-menu {
		display: block;
		position: static;
		box-shadow: none;
		padding: 6px 0 0;
		margin: 0;
		min-width: 0;
	}
	.nav-menu .menu-item-has-children > .sub-menu a {
		padding-left: 24px;
	}
}

/* 競合完全上書き：.product-descの隙間最小化・flex解除 */
.products-page .product-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
	padding: 22px 18px 26px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	min-height: 410px;
	height: 100%;
	box-sizing: border-box;
	transition: box-shadow 0.2s;
}
/*
Theme Name: TBVH-theme-child
Template: TBVH-theme
Description: TBVHテーマの子テーマ。代理店機能・WooCommerceカスタマイズ用
Author: 俊資
Version: 1.0
*/

/* 代理店情報編集ページ用クラス */
.edit-main {
	max-width: 600px;
	margin: 40px auto;
	padding: 32px 24px;
}
/* 製品紹介ページ（archive-product.php）専用 強制上書きCSS */
.products-page {
	max-width: 1100px;
	margin: 40px auto;
	padding: 32px 24px;
}
.products-page > .products-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-bottom: 32px;
	align-items: stretch;
}
.products-page .product-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
	padding: 22px 18px 26px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	min-height: 410px;
	height: 100%;
	box-sizing: border-box;
	transition: box-shadow 0.2s;
}
.products-page .product-card:hover {
	box-shadow: 0 4px 18px rgba(25,118,210,0.10);
	border-color: #90caf9;
}
.products-page .product-image-link {
	display: block;
	width: 100%;
	margin-bottom: 10px;
}
.products-page .product-image, .products-page .product-image.no-image {
	width: 100%;
	max-width: 240px;
	height: 180px;
	border-radius: 8px;
	object-fit: contain;
	display: block;
	margin-left: auto;
	margin-right: auto;
	background: #f5f7fa;
}
.products-page .product-image {
	background: #f5f7fa;
	box-shadow: 0 1px 4px rgba(0,0,0,0.03);
}
.products-page .product-image.no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f2f2f2;
	color: #bbb;
	font-size: 1.1em;
	font-style: italic;
}
.products-page .product-cat-name {
	display: block;
	font-size: 0.85em;
	color: #888;
	margin: 8px 0 2px 0;
	letter-spacing: 0.03em;
	line-height: 1.2;
	text-align: center;
	font-weight: normal;
}
.products-page .product-title {
	font-size: 1.13em;
	margin: 2px 0 4px 0;
	text-align: center;
	font-weight: bold;
	color: #222;
}
.products-page .product-desc {
	font-size: 0.97em;
	color: #555;
	margin-bottom: 14px;
	text-align: center;
	min-height: 2.5em;
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}
products-page .product-detail-btn {
	display: inline-block;
	margin-top: 4px;
	background: linear-gradient(90deg, #00B5E2, #00A0D1);
	color: #fff;
	border-radius: 30px;
	font-weight: bold;
	font-size: 1.1em;
	padding: 10px 28px;
	box-shadow: 0 2px 8px rgba(0,181,226,0.12);
	border: none;
	text-align: center;
	transition: background 0.2s;
}
.products-page .product-detail-btn:hover {
	background: #1565c0;
}
.products-page .products-pagination {
	text-align: center;
	margin-top: 24px;
}
.products-page .products-pagination .page-numbers {
	display: inline-block;
	margin: 0 6px;
	padding: 6px 12px;
	border-radius: 4px;
	background: #f5f5f5;
	color: #1976d2;
	text-decoration: none;
}
.products-page .products-pagination .current {
	background: #1976d2;
	color: #fff;
	font-weight: bold;
}
/* 代理店ダッシュボード専用デザイン */
.agency-dashboard.dashboard-main {
	max-width: 1100px;
	margin: 40px auto;
	padding: 32px 24px;
	background: #f8f9fa;
	border-radius: 16px;
	box-shadow: 0 2px 16px rgba(0,0,0,0.07);
}
.dashboard-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 24px;
}
.dashboard-header-user {
	font-weight: bold;
	color: #1976d2;
}
.dashboard-logout {
	color: #fff;
	background: #1976d2;
	border-radius: 4px;
	padding: 8px 18px;
	text-decoration: none;
	font-weight: bold;
	transition: background 0.2s;
}
.dashboard-logout:hover {
	background: #1565c0;
}
.dashboard-welcome {
	font-size: 1.3em;
	color: #222;
	margin-bottom: 28px;
	text-align: center;
}
.dashboard-section {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 1px 6px rgba(0,0,0,0.04);
	padding: 24px 20px 18px 20px;
	margin-bottom: 32px;
}
.dashboard-section h3 {
	font-size: 1.1em;
	color: #1976d2;
	margin-bottom: 16px;
}
.dashboard-info-list {
	list-style: none;
	padding: 0;
	margin: 0 0 8px 0;
}
.dashboard-info-list li {
	margin-bottom: 8px;
	font-size: 1em;
	color: #333;
}
.dashboard-orders-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 12px;
}
.dashboard-orders-header th {
	background: #f5f7fa;
	color: #1976d2;
	font-weight: bold;
	padding: 10px 8px;
	border-bottom: 2px solid #e0e0e0;
}
.dashboard-orders-table td {
	padding: 8px 6px;
	border-bottom: 1px solid #eee;
	font-size: 0.98em;
}
.dashboard-history-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 10px; /* 行間を広げる */
	margin-top: 12px;
}
.dashboard-history-table thead th {
	background: #f5f7fa;
	color: #1976d2;
	font-weight: bold;
	padding: 10px 12px;
	text-align: left;
}
.dashboard-history-table td {
	padding: 12px 16px; /* セル内パディングを広げる */
	background: #fff;
	border: 1px solid #f0f0f0;
	vertical-align: middle;
}
.dashboard-history-table tbody tr td:first-child {
	width: 160px;
}
.dashboard-orders-cell-center {
	text-align: center;
}
.dashboard-orders-cell-right {
	text-align: right;
}
.dashboard-order-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 18px;
}
.dashboard-order-list-item {
	flex: 1;
}

/* Center the single order button in the dashboard-order-actions area */
.dashboard-order-actions {
	/* make the action container full width */
	width: 100%;
}
.dashboard-order-action {
	width: 100%;
}
.dashboard-order-action .dashboard-order-btn {
	display: block;
	width: 100% !important;
	box-sizing: border-box;
}

/* New unique CTA style to avoid parent .button overrides */
.dashboard-order-cta {
	display: block;
	width: 100%;
	background: #1976d2; /* solid blue */
	color: #fff;
	border: none;
	padding: 12px 16px;
	text-align: center;
	font-weight: bold;
	border-radius: 4px;
	text-decoration: none;
	box-shadow: none;
}
.dashboard-order-cta:hover {
	background: #1565c0;
}
.dashboard-order-cta::before,
.dashboard-order-cta::after {
	display: none !important;
	content: none !important;
}
.dashboard-order-btn {
	display: block;
	width: 100%;
	background: #1976d2;
	color: #fff;
	border-radius: 4px;
	padding: 10px 0;
	text-align: center;
	font-size: 1em;
	text-decoration: none;
	font-weight: bold;
	transition: background 0.2s;
}
.dashboard-order-btn:hover {
	background: #1565c0;
}

/* Ensure dashboard order button text remains white even if parent theme sets color */
.dashboard-order-list .dashboard-order-btn {
	color: #fff;
}

/* Explicit utility class for white-order-button to keep styles centralized */
.dashboard-order-btn--white {
	color: #fff;
}
/* Defensive: ensure no semi-transparent overlays or pseudo-elements cover the button text */
.dashboard-order-btn--white,
.dashboard-order-btn--white * {
	color: #fff;
}
.dashboard-order-btn--white::before,
.dashboard-order-btn--white::after {
	content: none;
	display: none;
}
.dashboard-order-btn--white {
	position: relative;
	z-index: 2;
	background-clip: padding-box; /* avoid overlay painting */
}
.dashboard-order-btn--white[disabled],
.dashboard-order-btn--white.disabled {
	opacity: 1;
}
.dashboard-rate-box {
	background: #e3f2fd;
	border-radius: 6px;
	padding: 12px 18px;
	font-size: 1.1em;
	color: #1976d2;
	margin-bottom: 10px;
}
.dashboard-login-box {
	max-width: 400px;
	margin: 60px auto;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
	padding: 32px 28px 28px 28px;
	text-align: center;
}
.dashboard-login-msg {
	margin-top: 18px;
	color: #1976d2;
}
@media (max-width: 900px) {
	.agency-dashboard.dashboard-main {
		padding: 18px 8px !important;
	}
	.dashboard-section {
		padding: 16px 8px 12px 8px;
	}
}
	.products-page > .products-list {
	grid-template-columns: repeat(3, 1fr) !important;
	}

@media (max-width: 600px) {
	.products-page > .products-list {
	grid-template-columns: repeat(3, 1fr) !important;
	}
}
/* 代理店商品一覧ページも製品紹介ページと同じデザインに */
.agency-products-page {
	max-width: 1100px;
	margin: 40px auto;
	padding: 32px 24px;
}
.agency-products-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	margin-bottom: 32px;
	align-items: stretch;
}
.agency-product-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
	padding: 22px 18px 26px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	min-height: 410px;
	height: 100%;
	box-sizing: border-box;
	transition: box-shadow 0.2s;
}
.agency-product-card:hover {
	box-shadow: 0 4px 18px rgba(25,118,210,0.10);
	border-color: #90caf9;
}
/* Styles moved from page template: agency order color page layout */
/* agency-order-color-page specific rules moved/disabled to match customer layout
.agency-order-color-page.shipping-info-main {
	margin-left: 24px !important;
	margin-right: auto !important;
	max-width: 980px !important;
}
.agency-order-color-page .order-color-product-row {
	justify-content: flex-start;
}
.agency-order-color-page .shipping-submit-box {
	text-align: left !important;
}
.agency-order-color-page .shipping-submit { min-width: 220px; }
/* Center the final shipping button specifically when wrapper present */
.agency-order-color-page .final-button-wrapper { text-align:center; }
.agency-order-color-page .final-button-wrapper .shipping-submit { display:inline-block; }
*/
.agency-product-card .product-image-link {
	display: block;
	width: 100%;
	margin-bottom: 10px;
}
.agency-product-card .product-image,
.agency-product-card .product-image.no-image {
	width: 100% !important;
	max-width: 240px !important;
	height: 180px !important;
	border-radius: 8px;
	object-fit: contain;
	display: block;
	margin-left: auto;
	margin-right: auto;
	background: #f5f7fa;
}

/* TBVH: Payment page order summary table */
.tbvh-order-table {
	width: 100%;
	border-collapse: collapse;
	margin: 8px 0 12px;
	font-size: 14px;
}
.tbvh-order-table th,
.tbvh-order-table td {
	border: 1px solid #e0e0e0;
	padding: 10px 12px;
	vertical-align: middle;
}
.tbvh-order-table thead th {
	background: #f7f9fc;
	font-weight: 700;
}

/* TBVH: small label for color appended to item name on cart/checkout/order pay */
.tbvh-item-color {
	color: #555;
	font-size: 0.9em;
	line-height: 1.3;
}
.tbvh-order-table td.num,
.tbvh-order-table th.num {
	text-align: right;
	white-space: nowrap;
}
.agency-product-card .product-image {
	background: #f5f7fa;
	box-shadow: 0 1px 4px rgba(0,0,0,0.03);
}
.agency-product-card .product-image.no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f2f2f2;
	color: #bbb;
	font-size: 1.1em;
	font-style: italic;
}
.agency-product-card .product-cat-name {
	display: block;
	font-size: 0.85em;
	color: #888;
	margin: 8px 0 2px 0;
	letter-spacing: 0.03em;
	line-height: 1.2;
	text-align: center;
	font-weight: normal;
}
.agency-product-card .product-title {
	font-size: 1.13em;
	margin: 2px 0 8px 0;
	text-align: center;
	font-weight: bold;
	color: #222;
}
.agency-product-card .product-desc {
	font-size: 0.97em;
	color: #555;
	margin-bottom: 14px;
	text-align: center;
	min-height: 2.5em;
	/* keep layout-critical declarations with priority to avoid shifting content */
	flex: 1 1 auto !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.agency-product-card .product-detail-btn {
	display: inline-block;
	margin-top: auto;
	background: #1976d2;
	color: #fff;
	border-radius: 4px;
	padding: 8px 18px;
	font-size: 1em;
	text-decoration: none;
	transition: background 0.2s;
	align-self: stretch;
	text-align: center;
}
.agency-product-card .product-detail-btn:hover {
	background: #1565c0;
}
.agency-products-page .products-pagination {
	text-align: center;
	margin-top: 24px;
}
.agency-products-page .products-pagination .page-numbers {
	display: inline-block;
	margin: 0 6px;
	padding: 6px 12px;
	border-radius: 4px;
	background: #f5f7fa;
	color: #1976d2;
	text-decoration: none;
}
.agency-products-page .products-pagination .current {
	background: #1976d2;
	color: #fff;
	font-weight: bold;
}
@media (max-width: 900px) {
	.agency-products-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 600px) {
	.agency-products-grid {
		grid-template-columns: 1fr !important;
	}
}
.edit-title {
	margin-bottom: 24px;
}
.edit-success {
	color: green;
	margin-bottom: 18px;
}
.edit-error {
	color: red;
	margin-bottom: 18px;
	background: #f8f8f8;
	padding: 24px 24px 16px 24px;
/* 製品紹介ページ（products.php）専用デザイン - 軽量化済み */
/* 製品紹介ページ専用 強制上書きCSS */
.products-page {
	max-width: 1100px !important;
	margin: 40px auto !important;
	padding: 32px 24px !important;
}
.products-page > .products-list {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 32px !important;
	margin-bottom: 32px !important;
	align-items: stretch !important;
}
.products-page .product-card {
	background: #fff !important;
	border: 1px solid #e0e0e0 !important;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
	padding: 22px 18px 26px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: flex-start !important;
	min-height: 410px !important;
	height: 100% !important;
	box-sizing: border-box !important;
	transition: box-shadow 0.2s;
}
.products-page .product-card:hover {
	box-shadow: 0 4px 18px rgba(25,118,210,0.10);
	border-color: #90caf9 !important;
}
.products-page .product-image-link {
	display: block !important;
	width: 100% !important;
	margin-bottom: 10px !important;
}
.products-page .product-image, .products-page .product-image.no-image {
	width: 100% !important;
	max-width: 240px !important;
	height: 180px !important;
	border-radius: 8px;
	object-fit: contain;
	display: block !important;
	margin-left: auto !important;
	margin-right: auto !important;
	background: #f5f7fa;
}
.products-page .product-image {
	background: #f5f7fa;
	box-shadow: 0 1px 4px rgba(0,0,0,0.03);
}
.products-page .product-image.no-image {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #f2f2f2;
	color: #bbb;
	font-size: 1.1em;
	font-style: italic;
}
.products-page .product-cat-name {
	display: block !important;
	font-size: 0.85em;
	color: #888;
	margin: 8px 0 2px 0;
	letter-spacing: 0.03em;
	line-height: 1.2;
	text-align: center;
	font-weight: normal;
}
.products-page .product-title {
	font-size: 1.13em;
	margin: 2px 0 4px 0;
	text-align: center !important;
	font-weight: bold;
	color: #222;
}
.products-page .product-desc {
	font-size: 0.97em;
	color: #555;
	margin-bottom: 14px;
	text-align: center;
	min-height: 2.5em !important;
	flex: 1 1 auto !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.products-page .product-detail-btn {
	display: inline-block;
	margin-top: auto;
	background: #1976d2;
	color: #fff;
	border-radius: 4px;
	padding: 8px 18px;
	font-size: 1em;
	text-decoration: none;
	transition: background 0.2s;
	align-self: stretch;
	text-align: center;
}
.products-page .product-detail-btn:hover {
	background: #1565c0;
}
.products-page .products-pagination {
	text-align: center;
	margin-top: 24px;
}
.products-page .products-pagination .page-numbers {
	display: inline-block;
	margin: 0 6px;
	padding: 6px 12px;
	border-radius: 4px;
	background: #f5f5f5;
	color: #1976d2;
	text-decoration: none;
}
.products-page .products-pagination .current {
	background: #1976d2;
	color: #fff;
	font-weight: bold;
}
@media (max-width: 900px) {
	.products-page > .products-list {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 600px) {
	.products-page > .products-list {
		grid-template-columns: 1fr !important;
	}
}
/* 代理店契約申込ページ用クラス */
.register-main {
	max-width: 600px;
	margin: 40px auto;
}
.register-terms-box {
	height: 120px;
	overflow: auto;
	border: 1px solid #ccc;
	padding: 10px;
	margin-bottom: 10px;
}
/* 代理店ログインページ用クラス */
.login-main {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.login-box {
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
	padding: 32px 28px 28px 28px;
}

/*
 * Front page: Evidence section (slider)
 * NOTE: evidence用CSSは `css/evidence-section.css` に分離。
 * ここに残すと「結合/キャッシュ/優先度」で反映確認が難しくなるため、intentionalに無効化。
 */
/* (moved to css/evidence-section.css) */
.login-title {
	text-align: center;
	font-size: 1.5em;
	margin-bottom: 24px;
}
.login-msg {
	text-align: center;
}
.login-link {
	margin-top: 24px;
	text-align: center;
	font-weight: bold;
}
/* 製品詳細ページ用クラス */
.product-spec-table {
	width: 100%;
}

/* NOTE: 商品詳細ページのレイアウト上書きは `css/single-product-overrides.css` に一本化 */
.product-spec-table-col {
	width: 38%;
	min-width: 140px;
}
.product-spec-table-colgroup {
	width: 62%;
}
.product-spec-table-th {
	text-align: left;
}
.product-spec-table-td {
	text-align: right;
}

/* Increase font size for the structure section description */
.structure-description p {
	font-size: 1.15rem;
	line-height: 1.8;
	margin-top: 16px;
	color: #333;
}

/* Hero styles moved to css/hero-slider.css to avoid duplication and ensure single source of truth */
/* (original rules removed) */
.product-spec-table-title {
	margin: 0;
}
.product-spec-table-note {
	margin-top: 4px;
	font-size: 0.95em;
	color: #555;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
.product-spec-table-desc {
	margin-top: 10px;
	font-size: 0.98em;
	color: #333;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
.product-spec-table-colorlist {
	margin-top: 10px;
	font-size: 0.98em;
	color: #333;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
.product-spec-table-price {
	font-size: 0.95em;
	color: #555;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
/* 見積り・購入ページ用クラス */
.purchase-error {
	color: red;
	display: none;
	margin: 16px 0;
}
.tos-agree {
	display: inline-flex;
	align-items: center;
	margin-top: 12px;
	font-size: 1em;
	gap: 2px;
}
.tos-agree input {
	margin: 0 4px 0 0;
	height: 1.2em;
	width: 1.2em;
	vertical-align: middle;
}
.tos-agree span {
	vertical-align: middle;
	line-height: 1.2em;
}
.form-error {
	color: red;
	display: none;
	margin-top: 8px;
}
.purchase-section {
	display: none;
}
.agency-products-grid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 32px 24px;
	max-width: 900px;
	margin: 0 auto 32px auto;
}
.agency-product-card {
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 2px 8px #eee;
	padding: 18px 14px 20px 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.product-image-link {
	display: block;
	width: 100%;
	text-align: center;
}
.product-image {
	max-width: 100%;
	height: auto;
	border-radius: 6px;
}
.product-image.no-image {
	width: 100%;
	height: 160px;
	background: #f1f1f1;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.product-cat-name {
	font-size: 13px;
	color: #888;
	margin-top: 10px;
	margin-bottom: 2px;
	line-height: 1;
}
.product-title {
	font-size: 17px;
	font-weight: bold;
	margin: 2px 0 10px 0;
	text-align: center;
	line-height: 1.2;
}
.product-qty-form {
	margin-bottom: 10px;
	text-align: center;
}
.product-qty-label {
	font-size: 13px;
	color: #666;
}
.product-qty-input {
	width: 60px;
	padding: 4px 6px;
	margin-left: 4px;
}
.product-desc {
	font-size: 14px;
	color: #555;
	margin-bottom: 12px;
	text-align: center;
	min-height: 40px;
	line-height: 1.5;
}
.product-detail-btn {
	width: 100%;
}
.products-pagination {
	text-align: center;
}
.agency-order-form {
	background: #f8f8f8;
	padding: 24px 24px 16px 24px;
	border-radius: 8px;
	max-width: 600px;
	margin: 40px auto 0 auto;
}
.agency-order-btn {
	width: 100%;
	font-size: 17px;
}
/* 管理画面メタボックス用クラス */
.admin-desc-textarea {
	width: 100%;
	max-width: 500px;
}
.admin-desc-note {
	font-size: 0.9em;
	color: #555;
}
.admin-color-row {
	margin-bottom: 8px;
}
.admin-color-input {
	width: 120px;
	margin-left: 8px;
}
.admin-color-note {
	font-size: 0.9em;
	color: #555;
	margin-top: 8px;
}
.admin-image-preview {
	margin-top: 8px;
}
.admin-image {
	max-width: 200px;
	height: auto;
}
.admin-order-input {
	width: 80px;
}
.admin-order-note {
	font-size: 0.9em;
	color: #555;
}
/* エラーページ用クラス */
.error-box {
	max-width: 600px;
	margin: 40px auto;
	padding: 32px 24px;
	border: 2px solid #e53935;
/* 色の選択に進むボタン（水色グラデーション＆中央揃え） */
.agency-order-btn {
	background: linear-gradient(90deg, #00B5E2, #00A0D1);
	color: #fff;
	border-radius: 30px;
	font-weight: bold;
	font-size: 1.2em;
	padding: 14px 38px;
	box-shadow: 0 2px 8px rgba(0,181,226,0.12);
	border: none;
	display: inline-block;
	margin: 0 auto;
	text-align: center;
	transition: background 0.2s;
}
.agency-order-btn:hover {
	background: linear-gradient(90deg, #00A0D1, #00B5E2);
}
.agency-order-form {
	text-align: center;
}
	background: #fff3f3;
	border-radius: 8px;
	text-align: center;
}
.error-title {
	color: #e53935;
	margin-bottom: 18px;
}
.error-message {
	color: #d32f2f;
	font-size: 1.13em;
	margin: 2px 0 4px 0;
	text-align: center;
	font-weight: bold;
	color: #222;
	margin-top: 18px;
}
}
.products-page .product-detail-btn {
	background: linear-gradient(90deg, #00B5E2, #00A0D1);
	color: #fff;
	border-radius: 30px;
	font-weight: bold;
	font-size: 1.1em;
	padding: 10px 28px;
	box-shadow: 0 2px 8px rgba(0,181,226,0.12);
	border: none;
	display: inline-block;
	margin: 0 auto;
	text-align: center;
	transition: background 0.2s;
}
.products-page .product-detail-btn:hover {
	background: linear-gradient(90deg, #00A0D1, #00B5E2);
}


/* Additional front-page mobile adjustments */
@media (max-width: 768px) {
	.section-title { font-size: 1.25rem; }
	.update-section ul li, .latest-works ul li { font-size: 0.95rem; }
	.btn-primary, .btn-secondary { padding: 10px 18px; font-size: 0.95rem; }
	.slider-container { height: 300px; }
	.slideimg { background-size: cover; background-position: center center; }
}
@media (max-width: 480px) {
	.section-title { font-size: 1.05rem; }
	.update-section ul li, .latest-works ul li { font-size: 0.9rem; }
	.btn-primary, .btn-secondary { padding: 8px 14px; font-size: 0.9rem; }
	.slider-container { height: 220px; }
	.slideimg { background-size: cover; background-position: center center; }
}

/* Prevent structure slider images from stretching or shifting focus */
.slider-container .slideimg { background-repeat: no-repeat; background-position: center center; background-size: cover; }

/* Hero styles have been centralized into css/hero-slider.css */

/* Products page: force single-column card layout on mobile */
@media (max-width: 768px) {
	.products-page > .products-list,
	.product-list .grid {
		grid-template-columns: 1fr !important;
		display: block !important;
	}
	.products-page .product-card,
	.product-item {
		max-width: 720px !important;
		margin: 12px auto !important;
		width: calc(100% - 32px) !important;
	}
}

/* TBVH child theme utility button - use this in templates to avoid parent .btn-color-select conflicts */
.tbvh-btn {
	background: linear-gradient(90deg, #00B5E2, #00A0D1);
	color: #fff;
	padding: 12px 30px;
	border-radius: 24px;
	text-decoration: none;
	display: inline-block;
	font-weight: 700;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
	transition: background 0.2s;
}
.tbvh-btn:hover { background: linear-gradient(90deg, #00A0D1, #00B5E2); }

/* Front page: 技術紹介 */
.tech-section {
	padding: 40px 0;
	text-align: center;
	background: #fff;
}

/* 見出しサイズを「更新情報」「断熱構造の仕組み」と同じに揃える */
.tech-section .section-title {
	font-size: 1.8rem;
}

/* Scroll reveal (ふわっと出てくる) */
.tbvh-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 700ms ease, transform 700ms ease;
	will-change: opacity, transform;
}
.tbvh-reveal.is-inview {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.tbvh-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

.tech-hero-row {
	display: flex;
	justify-content: center;
	align-items: stretch;
	gap: 0; /* ピッタリくっつける */
	margin: 18px auto 22px;
	width: 100%;
	max-width: 1092px; /* 324+324+444 */
}

.tech-hero-img {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.tech-hero-img img {
	display: block;
	width: 100%;
	height: auto;
}

.tech-hero-img--s { flex: 0 0 324px; }
.tech-hero-img--l { flex: 0 0 444px; }

/* Icons: 2列×4行。各アイコンの右にテキスト */
.tech-icon-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 24px;
	row-gap: 16px;
	max-width: 1092px;
	margin: 0 auto;
	padding: 0;
	text-align: left;
}

.tech-icon-item {
	display: grid;
	grid-template-columns: 204px 1fr;
	gap: 12px;
	align-items: center;
}

.tech-icon-img {
	width: 204px;
	height: 204px;
}

.tech-icon-img img {
	display: block;
	width: 204px;
	height: 204px;
	object-fit: cover;
}

.tech-icon-title {
	font-weight: 700;
	color: #222;
	margin-bottom: 6px;
}

.tech-icon-body {
	color: #555;
	line-height: 1.7;
}

@media (max-width: 1120px) {
	/* 画面が狭い時は横幅に合わせて縮小 */
	.tech-hero-row { max-width: calc(100% - 40px); }
	.tech-hero-img--s { flex-basis: 30%; }
	.tech-hero-img--l { flex-basis: 40%; }
	.tech-icon-grid { grid-template-columns: 1fr; }
	.tech-icon-item { grid-template-columns: minmax(120px, 204px) 1fr; }
	.tech-icon-img { width: 100%; height: auto; }
	.tech-icon-img img { width: 100%; height: auto; }
}

@media (max-width: 480px) {
	/* Keep 3 images in one row on mobile as requested */
	.tech-hero-row {
		flex-direction: row;
		max-width: calc(100% - 24px);
	}
	.tech-hero-img--s { flex: 0 0 30%; }
	.tech-hero-img--l { flex: 0 0 40%; }
	.tech-icon-grid { grid-template-columns: 1fr; }
	.tech-icon-item { grid-template-columns: 120px 1fr; }
}

/* Usage: replace instances of <a class="btn-color-select"> with <a class="tbvh-btn"> in child templates to adopt child-managed styles */

