/* Base */
body {
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'Meiryo', sans-serif;
	font-size: 16px;
	color: #333;
	line-height: 1.8;
}

/* Links */
a {
	color: #4A90D9;
	transition: color 0.2s, opacity 0.2s;
}
a:hover {
	opacity: 0.85;
}

/* Navigation */
.wp-block-navigation a {
	text-decoration: none !important;
	color: #333 !important;
}
.wp-block-navigation a:hover {
	color: #4A90D9 !important;
}

/* Card hover */
.wp-block-group[style*="border-radius"]:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.08);
	transition: box-shadow 0.25s ease;
}

/* Service/Product cards - icon circle background */
.wp-block-columns .wp-block-column .wp-block-group p[style*="font-size:28px"],
.wp-block-columns .wp-block-column .wp-block-group p[style*="font-size:24px"] {
	width: 64px;
	height: 64px;
	background: #E3F2FD;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 14px;
}

/* Constrained layout center alignment */
.is-layout-constrained > .has-text-align-center {
	margin-left: auto;
	margin-right: auto;
}

/* Button refinement */
.wp-block-button__link {
	transition: background-color 0.2s, box-shadow 0.2s;
}
.wp-block-button__link:hover {
	box-shadow: 0 2px 8px rgba(74,144,217,0.35);
}

/* Outline button */
.is-style-outline .wp-block-button__link {
	background: transparent !important;
	border: 2px solid currentColor;
}
.is-style-outline .wp-block-button__link:hover {
	background: #4A90D9 !important;
	color: #fff !important;
	border-color: #4A90D9;
}

/* Cover block - white text on dark backgrounds */
.wp-block-cover .wp-block-cover__inner-container,
.wp-block-cover .wp-block-cover__inner-container h1,
.wp-block-cover .wp-block-cover__inner-container h2,
.wp-block-cover .wp-block-cover__inner-container h3,
.wp-block-cover .wp-block-cover__inner-container p {
	color: #fff;
}

/* Cover inner - center post title */
.wp-block-cover .has-text-align-center {
	text-align: center !important;
}

/* Gradient group - white text */
.has-hero-gradient-background,
.has-hero-gradient-background h1,
.has-hero-gradient-background h2,
.has-hero-gradient-background h3,
.has-hero-gradient-background p,
.has-dark-blue-gradient-background,
.has-dark-blue-gradient-background h1,
.has-dark-blue-gradient-background h2,
.has-dark-blue-gradient-background h3,
.has-dark-blue-gradient-background p {
	color: #fff;
}

/* Blog post cards - soft shadow instead of hard border */
.wp-block-post-template.is-layout-grid {
	gap: 24px !important;
}
.tenmaru-card-shadow {
	box-shadow: 0 1px 6px rgba(0,0,0,0.08);
	overflow: hidden;
}
.tenmaru-card-shadow:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

/* Query loop post cards */
.tenmaru-card-shadow .wp-block-post-featured-image {
	margin: 0;
	max-width: none;
}
.wp-block-post-featured-image img {
	aspect-ratio: 16/9;
	object-fit: cover;
	width: 100%;
	height: auto;
	display: block;
}
.wp-block-post-title a {
	text-decoration: none !important;
	color: #333;
}
.wp-block-post-title a:hover {
	color: #4A90D9;
}

/* Breadcrumb */
.rank-math-breadcrumb {
	font-size: 13px;
	line-height: 1;
}
.rank-math-breadcrumb p {
	margin: 0;
}
.rank-math-breadcrumb a {
	color: #4A90D9 !important;
	text-decoration: none !important;
}
.rank-math-breadcrumb a:hover {
	color: #2563EB !important;
}

/* Footer list */
.is-style-no-bullets {
	list-style: none;
	padding-left: 0;
}
.is-style-no-bullets a {
	text-decoration: none !important;
}

/* Skip link */
.skip-link {
	position: absolute;
	left: -9999px;
	z-index: 999;
	padding: 8px 16px;
	background: #4A90D9;
	color: #fff;
	text-decoration: none;
}
.skip-link:focus {
	left: 8px;
	top: 8px;
}

/* Mobile responsive */
@media (max-width: 781px) {
	.wp-block-columns {
		flex-direction: column;
	}
	.wp-block-columns .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* Heading spacing */
h2.wp-block-heading {
	margin-bottom: 12px;
}

/* Company table */
.wp-block-table.is-style-stripes table {
	border-collapse: collapse;
	width: 100%;
}
.wp-block-table.is-style-stripes td {
	padding: 14px 20px;
	border-bottom: 1px solid #e8ecf1;
}
.wp-block-table.is-style-stripes tr td:first-child {
	width: 160px;
	white-space: nowrap;
	color: #333;
	background: #f7f9fc;
}

/* Product cards */
.tenmaru-product-card {
	border: 1px solid #e8ecf1;
	box-shadow: 0 1px 4px rgba(0,0,0,0.04);
	transition: box-shadow 0.25s ease;
}
.tenmaru-product-card:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}

/* Site title link */
.wp-block-site-title a {
	text-decoration: none !important;
}

/* Separator in footer */
.wp-block-separator.is-style-wide {
	opacity: 0.3;
}
