/**
 * LLMO-PRO Theme Styles
 * Bootstrap "Lite" - Lightweight Grid & Components
 */


/* ========================================
   Origin
   ======================================== */
.home h3,.home h4 {font-weight: bold;	font-family: "Yu Gothic", "游ゴシック", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;}


/* ========================================
   Customize
   ======================================== */
.inner {max-width: 1200px; margin: auto; padding: 0 2%;}
.hbb {display: inline-block; border-bottom: green 3px solid;}/* テキスト装飾：下線 */
.bd{border: 1px solid red;}
.bg-li {background-color: #fcfcfc;}
.w-600 {max-width: 600px; margin: auto;}
.w100p{width:100%;}
.db {display: block;}
.dn {display: none;}
.yumin {
	font-family: "Yu Mincho", "游明朝", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", serif;font-weight: normal;
}
.yugo{
	font-family: "Yu Gothic", "游ゴシック", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
.text-center,.tc { text-align: center; }
.text-left,.tl { text-align: left; }
.text-right,.tr { text-align: right; }

.fn {font-weight: normal;}
.fb {font-weight: bold;}

.ft08 { font-size: 0.8rem; }
.ft1 { font-size: 1rem; }
.ft2 { font-size: 1.2rem; }
.ft3 { font-size: 1.4rem; }
.ft4 { font-size: 1.6rem; }
.ft5 { font-size: 1.8rem; }
.ft6 { font-size: 2rem; }
.ft7 { font-size: 2.2rem; }
.ft8 { font-size: 2.4rem; }
.ft9 { font-size: 2.6rem; }
.ft10 { font-size: 2.8rem; }

.colg { color: green; }
.colr { color: red; }
.colb { color: blue; }
.coly { color: yellow; }
.colp { color: purple; }
.colo { color: orange; }
.colw { color: white; }
.colk { color: black; }

.ma { margin-inline: auto; }

.mt1 { margin-top: 1rem; }
.mt2 { margin-top: 2rem; }
.mt3 { margin-top: 3rem; }
.mt4 { margin-top: 4rem; }
.mt5 { margin-top: 5rem; }

.mb1 { margin-bottom: 1rem; }
.mb2 { margin-bottom: 2rem; }
.mb3 { margin-bottom: 3rem; }
.mb4 { margin-bottom: 4rem; }
.mb5 { margin-bottom: 5rem; }

.mtb1 { margin-block: 1rem; }
.mtb2 { margin-block: 2rem; }
.mtb3 { margin-block: 3rem; }
.mtb4 { margin-block: 4rem; }
.mtb5 { margin-block: 5rem; }

.mrl1 { margin-inline: 1rem; }
.mrl2 { margin-inline: 2rem; }
.mrl3 { margin-inline: 3rem; }
.mrl4 { margin-inline: 4rem; }
.mrl5 { margin-inline: 5rem; }

.ptb1 {padding: 1rem 0;}
.ptb2 {padding: 2rem 0;}
.ptb3 {padding: 3rem 0;}
.ptb4 {padding: 4rem 0;}
.ptb5 {padding: 5rem 0;}

/* ========================================
   Grid Columns System
   ======================================== */
/* 
 * Grid Columns System
 * - <576px  : 1列
 * - >=576px : 2列
 * - >=992px : N列（2/3/4/5/6）
 */


/* .container - 最大幅1200px */
.container {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1%;
}

/* .container-fluid - 幅100% */
.container-fluid {
	width: 100%;
	margin-inline: auto;
	padding-inline: 1%;
}
/* Customize Container Width */
.w100 {
	width: 100%; 
}
.w1200 {
	max-width: 1200px; margin: auto;
  padding-inline: 2%;
}
/* Grid Container */
.cols2,
.cols3,
.cols4,
.cols5,
.cols6 {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 16px;
	row-gap: 16px;
	padding-block: 16px;
	align-items: stretch;
}

/* Grid Items */
.col2,
.col3,
.col4,
.col5,
.col6 {
	box-sizing: border-box;
	min-width: 0;
	margin: 0;
	padding: 4px;
}

/* Fractional Width Columns */
.col-1-3 {
	grid-column: span 1;
}

.col-3-4 {
	grid-column: span 3;
}

.col-1-5 {
	grid-column: span 1;
}

.col-4-5 {
	grid-column: span 4;
}

/* >=992px: 分数幅カラムの調整 */
@media (min-width: 992px) {
	/* 3列グリッド内で1/3幅 */
	.cols3 .col-1-3 {
		grid-column: span 1;
	}

	/* 4列グリッド内で3/4幅 */
	.cols4 .col-3-4 {
		grid-column: span 3;
	}

	/* 5列グリッド内で1/5幅 */
	.cols5 .col-1-5 {
		grid-column: span 1;
	}

	/* 5列グリッド内で4/5幅 */
	.cols5 .col-4-5 {
		grid-column: span 4;
	}
}

/* >=576px: 2列（全クラス共通） */
@media (min-width: 576px) {
	.cols2,
	.cols3,
	.cols4,
	.cols5,
	.cols6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* >=992px: 列数を確定 */
@media (min-width: 992px) {
	.cols2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.cols3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.cols4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	.cols5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
	.cols6 {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

/* 文字や長いURLでレイアウトが押し広げられるのを防止 */
.col2,
.col3,
.col4,
.col5,
.col6,
.col-1-3,
.col-3-4,
.col-1-5,
.col-4-5 {
	overflow-wrap: anywhere;
}

/* 画像を入れてもはみ出さない */
.col2 img,
.col3 img,
.col4 img,
.col5 img,
.col6 img,
.col-1-3 img,
.col-3-4 img,
.col-1-5 img,
.col-4-5 img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* 3カラム - ホームページ特徴セクション */
.cols3.home-1 img {
	width: 80px;
}

.cols3.home-1 .col3 {
	padding: 1rem 0;
	border: 1px solid rgba(0, 0, 0, 0.15);
}

.cols3.home-1 .col3 img {
	display: block;
	margin: 0 auto;
}

.cols3.home-1 .col3 h3 {
	font-size: 1.2rem;
	margin: 0;
	padding: 0;
	background: transparent;
	text-align: center;
}

.cols3.home-1 .col3 h3::before {
	border: 0;
	background: transparent;
}

.cols3.home-1 .col3 p {
	font-size: 0.9rem;
	line-height: 1.3;
	padding: 0.2rem 1rem;
	text-align: center;
}

/* 3カラム - オンコールのリアル */
.cols3.home-1.home-2 img {
	width: 58%;
}


/* ========================================
   Table Styles
   ======================================== */
table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin-block: var(--spacing-lg);
	background-color: var(--color-bg);
	border-radius: var(--border-radius);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	border: 1px solid rgba(0, 0, 0, 0.1);
}

table thead {
	background-color: var(--color-primary);
	color: #fff;
}

table thead th {
	padding: var(--spacing-md) var(--spacing-lg);
	text-align: left;
	font-weight: 600;
	font-size: var(--font-size-base);
	letter-spacing: 0.5px;
	text-transform: uppercase;
	border-bottom: 2px solid rgba(255, 255, 255, 0.2);
}

table thead th:first-child {
	border-top-left-radius: var(--border-radius);
}

table thead th:last-child {
	border-top-right-radius: var(--border-radius);
}

table tbody tr {
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	transition: background-color var(--transition-base);
}

table tbody tr:hover {
	background-color: rgba(0, 0, 0, 0.02);
}

table tbody tr:last-child {
	border-bottom: none;
}

table tbody tr:nth-child(even) {
	background-color: rgba(0, 0, 0, 0.01);
}

table tbody tr:nth-child(even):hover {
	background-color: rgba(0, 0, 0, 0.03);
}

table tbody td {
	padding: var(--spacing-md) var(--spacing-lg);
	font-size: var(--font-size-base);
	line-height: 1.6;
	color: var(--color-text);
}

table tfoot {
	background-color: rgba(0, 0, 0, 0.02);
	font-weight: 600;
}

table tfoot td {
	padding: var(--spacing-md) var(--spacing-lg);
	border-top: 2px solid rgba(0, 0, 0, 0.1);
}

/* レスポンシブ対応：767px以下でもテーブルは幅100%を維持し、セル余白のみ適度に縮小 */
@media (max-width: 767px) {
	table {
		width: 100%;
		font-size: var(--font-size-sm);
		table-layout: fixed;
	}

	table thead th,
	table tbody td,
	table tfoot td {
		padding: var(--spacing-sm);
		word-break: break-word;
	}

	/* ブロックエディタのテーブルは横スクロール可能に（幅100%を維持） */
	figure.wp-block-table {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	figure.wp-block-table table {
		width: 100%;
		min-width: 100%;
	}
}

/* ========================================
   Horizontal Rule (hr) Styles
   ======================================== */
hr {
	border: none;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	margin-block: var(--spacing-xl);
	width: 100%;
}

hr.style-thick {
	border-top-width: 2px;
	border-top-color: rgba(0, 0, 0, 0.15);
}

hr.style-dashed {
	border-top-style: dashed;
}

hr.style-dotted {
	border-top-style: dotted;
}

hr.style-gradient {
	border: none;
	height: 1px;
	background: linear-gradient(to right, transparent, rgba(0, 0, 0, 0.2), transparent);
}

hr.style-short {
	width: 60px;
	margin-inline: auto;
}

hr.style-medium {
	width: 120px;
	margin-inline: auto;
}

hr.style-primary {
	border-top-color: var(--color-primary);
	opacity: 0.3;
}

/* ========================================
   Oncall Support System
   ======================================== */
.oncall-section h2,
.oncall-section h2::before {
	border: 0;
	background: transparent;
}

.oncall-section {
	max-width: 100%;
	margin: 3rem auto;
	padding: 72px 20px 80px;
	background: radial-gradient(circle at 0 0, rgba(59, 130, 246, 0.06), transparent 55%),
		radial-gradient(circle at 100% 0, rgba(56, 189, 248, 0.06), transparent 55%), #f4f7fb;
}

.section-header {
	text-align: center;
	margin-bottom: 40px;
}

.section-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 18px;
	border-radius: 999px;
	background: #e1ecff;
	color: #2563eb;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.08em;
	margin-bottom: 12px;
}

.section-title {
	margin: 0 0 8px;
	font-size: 32px;
	line-height: 1.4;
	letter-spacing: 0.06em;
}

.section-subtitle {
	margin: 0;
	font-size: 15px;
	color: #6b7280;
}

.oncall-cards {
	margin-top: 24px;
}

.support-card {
	position: relative;
	padding: 34px 28px 26px;
	background: #ffffff;
	border-radius: 24px;
	box-shadow: 0 20px 45px rgba(15, 23, 42, 0.10);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	isolation: isolate;
	--card-accent: #22c55e;
	--card-pill-bg: #e8f9ee;
	--card-pill-text: #15803d;
	--card-icon-bg: radial-gradient(circle at 30% 0, #e0f2fe, #eff6ff);
	border: none;
}

.support-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	border-top: 4px solid var(--card-accent);
	pointer-events: none;
}

.support-card-label {
	position: absolute;
	top: -18px;
	left: 50%;
	transform: translateX(-50%);
	padding: 4px 18px;
	border-radius: 999px;
	background: var(--card-accent);
	color: #ffffff;
	font-size: 13px;
	font-weight: 600;
	box-shadow: 0 10px 18px rgba(15, 23, 42, 0.18);
	letter-spacing: 0.06em;
	white-space: nowrap;
}

.icon-circle {
	width: 88px;
	height: 88px;
	min-height: 88px;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 22px auto 22px;
	background: var(--card-icon-bg);
	box-shadow: 0 18px 35px rgba(15, 23, 42, 0.12);
	visibility: visible;
	opacity: 1;
	position: relative;
}

.icon-circle::before {
	display: none;
}

.icon-circle img {
	max-width: 60%;
	height: auto;
	display: block;
	visibility: visible;
	opacity: 1;
}

.icon-circle i {
	font-size: 32px;
	color: var(--card-accent);
	visibility: visible !important;
	opacity: 1 !important;
	display: inline-block !important;
	position: static;
}

.icon-circle i.absolute {
	position: absolute !important;
	font-size: 12px;
	background: white;
	border-radius: 999px;
	padding: 2px;
	border: 1px solid rgba(239, 68, 68, 0.2);
}

.support-card h2 {
	margin: 0 0 10px;
	font-size: 20px;
	line-height: 1.6;
}

.support-card p {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: #6b7280;
}

.support-card-footer {
	margin-top: 28px;
	width: 100%;
	display: flex;
	justify-content: center;
}

.support-card-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 18px;
	border-radius: 999px;
	background: var(--card-pill-bg);
	color: var(--card-pill-text);
	font-size: 13px;
	font-weight: 600;
}

.support-card-pill i {
	font-size: 13px;
}

.support-card--phone {
	--card-accent: #3b82f6;
	--card-pill-bg: #e5efff;
	--card-pill-text: #1d4ed8;
}

.support-card--emergency {
	--card-accent: #f97373;
	--card-pill-bg: #fee4e2;
	--card-pill-text: #b91c1c;
}

.section-bottom {
	margin-top: 48px;
	text-align: center;
}

.bottom-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 18px;
	border-radius: 999px;
	background: #0f172a;
	color: #e5f0ff;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	margin-bottom: 14px;
}

.bottom-badge i {
	font-size: 14px;
}

.bottom-text {
	margin: 0;
	font-size: 14px;
	color: #4b5563;
}

@media (max-width: 767px) {
	.oncall-section {
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.section-title {
		font-size: 24px;
	}

	.support-card {
		padding-inline: 20px;
	}
}

/* ========================================
   Utility Classes
   ======================================== */
.top-bar p {
	font-size: 13px;
}

figure.wp-block-table table {
	width: 100%;
}

.site-name-text {
	pointer-events: none;
}

.no-wrap {
	white-space: nowrap;
}

.post-date {
	display: none;
}

.text-center {
	text-align: center;
}

.mt1 { margin-top: 1rem; }
.mt2 { margin-top: 2rem; }
.mt3 { margin-top: 3rem; }
.mt4 { margin-top: 4rem; }
.mt5 { margin-top: 5rem; }
.mb1 { margin-bottom: 1rem; }
.mb2 { margin-bottom: 2rem; }
.mb3 { margin-bottom: 3rem; }
.mb4 { margin-bottom: 4rem; }
.mb5 { margin-bottom: 5rem; }

.green { color: green; }

/* ========================================
   CSS Custom Properties (Variables)
   ======================================== */
:root {
	--color-primary: #0073aa;
	--color-primary-hover: #005177;
	--color-secondary: #666;
	--color-secondary-hover: #444;
	--color-text: #333;
	--color-text-light: #666;
	--color-text-lighter: #999;
	--color-bg: #fff;
	--color-bg-light: #f9f9f9;
	--color-bg-lighter: #f5f5f5;
	--color-border: #e0e0e0;
	--color-footer-bg: #333;
	--font-size-base: 1rem;
	--font-size-sm: 0.875rem;
	--font-size-lg: 1.25rem;
	--font-size-xl: 1.5rem;
	--font-size-2xl: 2rem;
	--font-size-3xl: 2.5rem;
	--spacing-xs: 0.5rem;
	--spacing-sm: 0.75rem;
	--spacing-md: 1rem;
	--spacing-lg: 1.5rem;
	--spacing-xl: 2rem;
	--spacing-2xl: 3rem;
	--border-radius: 4px;
	--transition-base: 0.3s ease;
	--container-max-width: 1200px;
	--breakpoint-sm: 767px;
	--breakpoint-md: 768px;
	--breakpoint-lg: 1024px;
}

/* ========================================
   Reset & Base
   ======================================== */
html {
	width: 100%;
	overflow-x: hidden;
	scroll-behavior: smooth;
}

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

body {
	width: 100%;
	font-family: "Yu Gothic", "游ゴシック", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	font-size: var(--font-size-base);
	line-height: 1.6;
	color: var(--color-text);
	background-color: var(--color-bg);
	overflow-x: hidden;
}

/* ========================================
   Typography
   ======================================== */
h1, h2, h3, h4, h5, h6 {
	font-family: "Yu Mincho", "游明朝", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", serif;
	font-weight: normal;
	line-height: 1.4;
	margin: 0 0 var(--spacing-md);
	color: var(--color-text);
}

h1 {
	font-size: var(--font-size-3xl);
}

h2 {
	font-size: var(--font-size-2xl);
}

h3 {
	font-size: var(--font-size-xl);
}

h4 {
	font-size: var(--font-size-lg);
}

h5 {
	font-size: var(--font-size-base);
}

h6 {
	font-size: var(--font-size-sm);
}


img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--transition-base);
}

a:hover {
	color: var(--color-primary-hover);
	text-decoration: underline;
}

/* ========================================
   Container & Grid System
   ======================================== */
.container-fix {
	max-width: var(--container-max-width);
	margin-inline: auto;
	padding-inline: 1%;
}

#main .container {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

/* トップページは幅100%が基本 */
body.home #main .container {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

/* 固定ページは幅100% */
body.page #main .container {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

/* 投稿ページは最大幅1200px */
body.single #main .container {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1%;
}

/* カテゴリページは最大幅1200px */
body.category #main .container,
body.archive #main .container {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1%;
}

/* トップページのhome-newsは1200px */
#main .home-news .container {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 1%;
}

/* ========================================
   Top Bar
   ======================================== */
.top-bar {
	width: 100%;
	background-color: #fcfcfc;
	padding-block: var(--spacing-xs);
	border-bottom: 1px solid rgba(0, 0, 0, 0.02);
}

.top-bar .container {
	display: block;
	text-align: center;
}

/* ========================================
   Header
   ======================================== */
.site-header {
	background-color: #fff;
	padding-block: var(--spacing-md) 0;
}

body:not(.home) .site-header {
	background-color: #fff;
	padding-block: var(--spacing-md) 0;
}

body:not(.home) .header-inner {
	margin-bottom: 0;
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 0;
	margin-bottom: 15px;
}

body:not(.home) .header-inner {
	margin-bottom: 15px;
}

.site-title {
	font-size: var(--font-size-xl);
	margin: 0;
}

.site-title a {
	color: var(--color-text);
	text-decoration: none;
}

.site-title a:hover {
	text-decoration: none;
}

.custom-logo-link {
	display: inline-block;
}

.custom-logo {
	max-height: 30px;
	width: auto;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}

.page-header {
	width: 100%;
	height: 100px;
	background-color: var(--color-text);
	display: flex;
	align-items: center;
	justify-content: center;
}

.page-header .container {
	width: 100%;
	text-align: center;
}

.page-header-title {
	color: var(--color-bg);
	font-size: var(--font-size-2xl);
	margin: 0;
	font-weight: normal;
}

.page-header-title span {
	font-weight: bold;
}

@media (max-width: 767px) {
	.page-header {
		height: 80px;
	}

	.page-header-title {
		font-size: var(--font-size-xl);
	}
}

.header-image {
	width: 100%;
	margin-top: 0;
	position: relative;
	overflow: hidden;
	height: 600px;
}

.header-image::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}

.header-image img {
	width: 100%;
	height: 120%;
	display: block;
	object-fit: cover;
	object-position: center top;
	position: absolute;
	top: 0;
	left: 0;
	will-change: transform;
	z-index: 0;
}

.header-image-content {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.header-image-content * {
	pointer-events: auto;
}

.header-image-pc {
	display: block;
}

.header-image-sp {
	display: none;
}

@media (max-width: 767px) {
	.header-image-pc {
		display: none;
	}

	.header-image-sp {
		display: block;
	}
}

/* ========================================
   Navigation
   ======================================== */
.main-navigation {
	position: relative;
	background-color: #f5f5f5;
	width: 100%;
	margin-top: 0;
	margin-bottom: 0;
	border-bottom: 1px solid #fff;
}

.main-navigation .container {
	display: flex;
	align-items: center;
	justify-content: center;
	padding-inline: 2%;
}

.nav-menu {
	display: flex;
	flex-direction: row;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
}

.nav-menu li {
	margin: 0;
	border-right: 1px solid #fff;
	position: relative;
}

.nav-menu li:first-child {
	border-left: 1px solid #fff;
}

.nav-menu .current-menu-item,
.nav-menu .current_page_item {
	border-right: 1px solid #fff;
}

.nav-menu .current-menu-item + li,
.nav-menu .current_page_item + li {
	border-left: none;
}

.nav-menu a {
	color: #000;
	text-decoration: none;
	padding: calc(var(--spacing-sm) * 1.1) calc(var(--spacing-md) * 2.88);
	display: block;
	transition: all var(--transition-base);
	font-size: var(--font-size-sm);
}

.nav-menu a:hover {
	background-color: var(--color-primary);
	color: #fff;
	text-decoration: none;
}

.nav-menu .current-menu-item > a,
.nav-menu .current_page_item > a {
	background-color: var(--color-primary);
	color: #fff;
}

.nav-menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background-color: #f5f5f5;
	list-style: none;
	margin: 0;
	padding: 0;
	min-width: 200px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	z-index: 1000;
}

.nav-menu .sub-menu li {
	border-right: none;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.nav-menu .sub-menu li:last-child {
	border-bottom: none;
}

.nav-menu .sub-menu a {
	padding: calc(var(--spacing-sm) * 1.1) calc(var(--spacing-md) * 2.88);
	padding-left: 10px;
	color: #000;
	white-space: nowrap;
	text-align: left;
}

.nav-menu .sub-menu a:hover {
	background-color: var(--color-primary);
	color: #fff;
}

.menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.5rem;
	position: relative;
	width: 40px;
	height: 40px;
}

.menu-toggle-icon {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--color-text);
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
	transition: all var(--transition-base);
}

.menu-toggle-icon::before,
.menu-toggle-icon::after {
	content: '';
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--color-text);
	position: absolute;
	transition: all var(--transition-base);
}

.menu-toggle-icon::before {
	top: -8px;
}

.menu-toggle-icon::after {
	bottom: -8px;
}

.menu-toggle[aria-expanded="true"] .menu-toggle-icon {
	background-color: transparent;
}

.menu-toggle[aria-expanded="true"] .menu-toggle-icon::before {
	top: 0;
	transform: rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle-icon::after {
	bottom: 0;
	transform: rotate(-45deg);
}

@media (min-width: 768px) {
	.main-navigation .container {
		justify-content: center;
	}

	.nav-menu {
		display: flex;
		flex-direction: row;
		position: static;
		width: auto;
		padding: 0;
		box-shadow: none;
	}

	.nav-menu li {
		width: auto;
		border-bottom: none;
	}

	.nav-menu li:hover > .sub-menu {
		display: block;
	}

	.nav-menu .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
	}
}

@media (max-width: 767px) {
	.main-navigation .container {
		justify-content: center;
	}

	.menu-toggle {
		display: block;
	}

	.nav-menu {
		display: none;
		position: absolute;
		inset: 100% 0 auto auto;
		background-color: #f5f5f5;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
		flex-direction: column;
		width: 100%;
		padding: 0;
		z-index: 1000;
		left: 0;
		right: 0;
	}

	.nav-menu.active {
		display: flex;
	}

	.nav-menu li {
		width: 100%;
		border-bottom: 1px solid rgba(0, 0, 0, 0.15);
	}

	.nav-menu li:last-child {
		border-bottom: none;
	}

	.nav-menu a {
		padding: calc(var(--spacing-sm) * 1.1) calc(var(--spacing-md) * 2.88);
		color: #000;
		position: relative;
	}

	.nav-menu .menu-item-has-children > a::after {
		content: '';
		position: absolute;
		right: var(--spacing-md);
		top: 50%;
		transform: translateY(-50%);
		width: 0;
		height: 0;
		border-left: 5px solid transparent;
		border-right: 5px solid transparent;
		border-top: 6px solid currentColor;
		transition: transform var(--transition-base);
	}

	.nav-menu .menu-item-has-children.sub-menu-open > a::after {
		transform: translateY(-50%) rotate(-90deg);
	}

	.nav-menu .current-menu-item > a,
	.nav-menu .current_page_item > a {
		background-color: var(--color-primary);
		color: #fff;
	}

	.nav-menu .sub-menu {
		display: none;
		position: static;
		width: 100%;
		box-shadow: none;
		background-color: rgba(0, 0, 0, 0.05);
	}

	.nav-menu .sub-menu.active {
		display: block;
	}

	.nav-menu .sub-menu li {
		border-bottom: 1px solid rgba(0, 0, 0, 0.1);
	}

	.nav-menu .sub-menu a {
		padding-left: calc(var(--spacing-md) * 4);
	}
}

/* ========================================
   Breadcrumb
   ======================================== */
.breadcrumb {
	background-color: var(--color-bg);
	padding-block: var(--spacing-xs);
}

.breadcrumb-list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
}

.breadcrumb-item {
	margin: 0;
}

.breadcrumb-item.active span {
	color: var(--color-text-light);
}

.breadcrumb-separator {
	margin-inline: var(--spacing-xs);
	color: var(--color-text-lighter);
}

.breadcrumb-item a {
	color: var(--color-primary);
}

.breadcrumb-item a:hover {
	text-decoration: underline;
}

/* ========================================
   Buttons
   ======================================== */
.btn {
	display: inline-block;
	padding: var(--spacing-sm) var(--spacing-lg);
	font-size: var(--font-size-base);
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: 0;
	cursor: pointer;
	transition: all var(--transition-base);
}

.btn-primary {
	background-color: var(--color-primary);
	color: #fff;
	border-color: var(--color-primary);
}

.btn-primary:hover {
	background-color: var(--color-primary-hover);
	border-color: var(--color-primary-hover);
	color: #fff;
	text-decoration: none;
}

.btn-secondary {
	background-color: var(--color-secondary);
	color: #fff;
	border-color: var(--color-secondary);
}

.btn-secondary:hover {
	background-color: var(--color-secondary-hover);
	border-color: var(--color-secondary-hover);
	color: #fff;
	text-decoration: none;
}

.btn-tel {
	font-size: 1.25rem;
	font-weight: bold;
}

/* ========================================
   Cards
   ======================================== */
.card {
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	overflow: hidden;
	margin-bottom: var(--spacing-xl);
	transition: box-shadow var(--transition-base);
}

.card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.card-image {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.card-body {
	padding: var(--spacing-lg);
}

.card-title {
	font-size: var(--font-size-lg);
	margin: 0 0 var(--spacing-sm);
}

.card-title a {
	color: var(--color-text);
	text-decoration: none;
}

.card-title a:hover {
	color: var(--color-primary);
	text-decoration: none;
}

.card-text {
	margin: 0 0 var(--spacing-md);
	color: var(--color-text-light);
}

/* ========================================
   Hero Section
   ======================================== */
.hero-section {
	padding-block: var(--spacing-2xl);
	background-color: var(--color-bg-light);
}

.hero-image {
	margin-bottom: var(--spacing-xl);
}

.hero-image img {
	width: 100%;
	height: auto;
	max-height: 400px;
	object-fit: cover;
	border-radius: var(--border-radius);
}

.hero-content {
	text-align: center;
}

.hero-title {
	font-size: var(--font-size-3xl);
	margin: 0 0 var(--spacing-md);
}

.hero-description {
	font-size: var(--font-size-lg);
	color: var(--color-text-light);
	margin: 0;
}

/* ========================================
   Home News Section
   ======================================== */
.home-news {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding-block: var(--spacing-2xl);
	padding-inline: var(--spacing-sm);
	background-color: transparent;
}

.home-news .container {
	max-width: 1200px;
	margin-inline: auto;
}

.home-news-title {
	text-align: center;
	margin-bottom: var(--spacing-lg);
	font-size: var(--font-size-2xl);
	font-family: "Yu Mincho", "游明朝", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", serif;
	font-weight: normal;
}

.home-news-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--spacing-lg);
}

.home-news-card {
	background-color: var(--color-bg);
	border-radius: var(--border-radius);
	overflow: hidden;
	transition: transform var(--transition-base);
	display: flex;
	flex-direction: column;
}

.home-news-card-thumbnail {
	width: 100%;
	overflow: hidden;
	aspect-ratio: 16 / 9;
}

.home-news-card-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--transition-base);
}

.home-news:hover .home-news-card:not(:hover) .home-news-card-thumbnail img {
	transform: none;
}

.home-news-card:hover .home-news-card-thumbnail img {
	transform: scale(1.05);
}

.home-news-card-content {
	padding: var(--spacing-md);
	display: flex;
	flex-direction: column;
	flex: 1;
}

.home-news-card-date {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	margin-bottom: var(--spacing-xs);
}

.home-news-card-title {
	font-size: var(--font-size-lg);
	margin-bottom: var(--spacing-sm);
	line-height: 1.4;
}

.home-news-card-title a {
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--transition-base);
}

.home-news-card-title a:hover {
	color: var(--color-primary);
	text-decoration: none;
}

.home-news-card-excerpt {
	font-size: var(--font-size-base);
	color: var(--color-text-light);
	line-height: 1.6;
	margin-bottom: var(--spacing-md);
	flex: 1;
}

.home-news-card-more {
	margin-top: auto;
}

.home-news-card-more .btn {
	width: 100%;
	text-align: center;
}

@media (max-width: 767px) {
	.home-news-grid {
		grid-template-columns: 1fr;
		gap: var(--spacing-md);
	}
}

.home-news-list {
	list-style: none;
	padding: var(--spacing-md) 0;
	margin: 0 auto;
	text-align: center;
	max-width: 1200px;
}

.home-news-list-item {
	margin-bottom: var(--spacing-sm);
	display: block;
}

.home-news-list-item:last-child {
	margin-bottom: 0;
}

.home-news-list-link {
	display: flex;
	align-items: center;
	gap: var(--spacing-sm);
	padding: var(--spacing-sm) var(--spacing-md);
	background-color: var(--color-bg-light);
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 0;
	text-decoration: none;
	color: var(--color-text);
	transition: background-color var(--transition-base), border-color var(--transition-base);
	text-align: left;
	margin: 1%;
	max-width: 1200px;
}

.home-news-list-link:hover {
	background-color: var(--color-bg-light);
	border-color: var(--color-primary);
  	text-decoration: none;

}

.home-news-list-date {
	font-size: var(--font-size-sm);
	color: var(--color-text);
	flex-shrink: 0;
}

.home-news-list-title {
	font-size: var(--font-size-base);
	color: var(--color-text);
	flex: 1;
}

@media (max-width: 767px) {
	.home-news-list-link {
		padding: var(--spacing-xs) var(--spacing-sm);
	}

	.home-news-list-date {
		font-size: var(--font-size-sm);
	}

	.home-news-list-title {
		font-size: var(--font-size-sm);
	}
}

/* ========================================
   CTA Section
   ======================================== */
.cta-section {
	background-color: var(--color-primary);
	color: #fff;
	padding-block: var(--spacing-2xl) calc(var(--spacing-2xl) * 2);
	text-align: center;
}

.cta-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-lg);
}

.cta-actions {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	justify-content: center;
	gap: var(--spacing-lg);
}

.cta-label {
	font-size: var(--font-size-lg);
	margin: 0 0 var(--spacing-xs);
}

.cta-phone-number {
	margin: 0;
}

.cta-section .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0 var(--spacing-lg);
	border-width: 2px;
	border-style: solid;
}

.cta-phone .btn-tel {
	background-color: #fff;
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.cta-phone .btn-tel:hover {
	background-color: #f0f0f0;
	border-color: var(--color-primary-hover);
	color: var(--color-primary-hover);
	text-decoration: none;
}

.cta-form .btn-secondary {
	background-color: var(--color-primary);
	color: #fff;
	border-color: #fff;
}

.cta-form .btn-secondary:hover {
	background-color: var(--color-primary-hover);
	border-color: #fff;
	color: #fff;
	text-decoration: none;
}

/* ========================================
   Footer
   ======================================== */
.site-footer {
	background-color: #f5f5f5;
	color: #000;
	padding-block: var(--spacing-xl);
	margin-top: 0;
}

.footer-sns {
	display: flex;
	justify-content: center;
	gap: var(--spacing-lg);
	margin-bottom: var(--spacing-lg);
}

.sns-link {
	display: inline-block;
	width: 25px;
	height: 25px;
	color: var(--color-primary);
	transition: color var(--transition-base);
}

.sns-link:hover {
	color: #4dd0e1;
	text-decoration: none;
}

.sns-link svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.site-info {
	text-align: center;
	font-size: var(--font-size-sm);
	color: #000;
}

.site-info p {
	margin: 0;
}

/* ========================================
   Main Content
   ======================================== */
.site-main {
	padding-block: var(--spacing-md) 0;
	min-height: 60vh;
}

.content {
	width: 100%;
}

/* ========================================
   Entry Content
   ======================================== */
.entry-header {
	margin-bottom: var(--spacing-xl);
	text-align: center;
}

.entry-title {
	font-size: var(--font-size-2xl);
	margin: 0 0 var(--spacing-md);
}

.entry-meta {
	font-size: var(--font-size-sm);
	color: var(--color-text-light);
	margin-bottom: var(--spacing-md);
}

.entry-meta span {
	margin-right: 1rem;
}

.entry-content {
	margin-bottom: var(--spacing-xl);
}

.entry-content p {
	margin-bottom: var(--spacing-md);
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
	margin: var(--spacing-xl) 0 var(--spacing-md);
}

.entry-content img {
	margin-block: var(--spacing-lg);
}

.entry-footer {
	margin-top: var(--spacing-xl);
	padding-top: var(--spacing-lg);
	border-top: 1px solid var(--color-border);
}

.tags-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-xs);
}

.tags-links a {
	display: inline-block;
	padding: calc(var(--spacing-xs) / 2) var(--spacing-sm);
	background-color: var(--color-bg-lighter);
	border-radius: var(--border-radius);
	font-size: var(--font-size-sm);
}

.tags-links a:hover {
	background-color: var(--color-border);
	text-decoration: none;
}

/* ========================================
   Sidebar
   ======================================== */
.sidebar {
	margin-top: 0;
}

@media (max-width: 1023px) {
	.sidebar {
		margin-top: var(--spacing-xl);
	}
}

.widget {
	margin-bottom: var(--spacing-xl);
	padding: var(--spacing-lg);
	background-color: transparent;
	border-radius: var(--border-radius);
}

.widget-title {
	font-size: var(--font-size-lg);
	margin: 0 0 var(--spacing-md);
}

/* ========================================
   Archive
   ======================================== */
.archive-header,
.search-header {
	margin-bottom: var(--spacing-xl);
	padding-bottom: var(--spacing-md);
	border-bottom: 1px solid var(--color-border);
}

.archive-title,
.search-title {
	font-size: var(--font-size-2xl);
	margin: 0 0 var(--spacing-xs);
}

.archive-description {
	color: var(--color-text-light);
	margin: 0;
}

/* ========================================
   Pagination
   ======================================== */
.pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--spacing-xs);
	margin: var(--spacing-xl) 0;
}

.pagination a,
.pagination span {
	display: inline-block;
	padding: var(--spacing-xs) var(--spacing-sm);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	color: var(--color-text);
	text-decoration: none;
}

.pagination a:hover {
	background-color: var(--color-bg-lighter);
	text-decoration: none;
}

.pagination .current {
	background-color: var(--color-primary);
	color: #fff;
	border-color: var(--color-primary);
}

/* ========================================
   Error 404
   ======================================== */
.error-404 {
	text-align: center;
	padding-block: var(--spacing-2xl);
}

.error-404 .page-title {
	font-size: 3rem;
	margin: 0 0 var(--spacing-md);
}

.error-404-actions {
	display: flex;
	justify-content: center;
	gap: var(--spacing-md);
	margin-top: var(--spacing-xl);
}

/* ========================================
   Responsive
   ======================================== */
@media (max-width: 1023px) {
	.hero-title {
		font-size: var(--font-size-2xl);
	}

	.entry-title {
		font-size: 1.75rem;
	}
}

@media (max-width: 767px) {
	.container {
		padding-inline: 10px;
	}

	.hero-title {
		font-size: 1.75rem;
	}

	.cta-actions {
		flex-direction: column;
		align-items: center;
	}

	.error-404-actions {
		flex-direction: column;
	}
}

/* ========================================
   Accessibility
   ======================================== */
.screen-reader-text {
	clip-path: inset(50%);
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	inset: 0 0 auto auto;
	z-index: 999999;
	clip-path: inset(50%);
}

.skip-link:focus {
	inset: 0.5rem auto auto 0.5rem;
	clip-path: none;
	width: auto;
	height: auto;
	padding: 0.5rem 1rem;
	background-color: #fff;
	border: 2px solid #000;
	text-decoration: none;
}

/* ========================================
   Scroll to Top Button
   ======================================== */
.scroll-to-top {
	position: fixed;
	bottom: 0;
	right: 0;
	width: 50px;
	height: 50px;
	background-color: color-mix(in srgb, var(--color-primary) 80%, transparent);
	color: #fff;
	border: none;
	border-radius: 0;
	cursor: pointer;
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
	transition: all var(--transition-base);
}

.scroll-to-top:hover {
	background-color: color-mix(in srgb, var(--color-primary) 50%, transparent);
	color: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.scroll-to-top:active {
	transform: translateY(0);
}

.scroll-to-top.show {
	display: flex;
}

.scroll-to-top-icon {
	width: 20px;
	height: 20px;
	display: block;
	stroke: #fff;
}

@media (max-width: 767px) {
	.scroll-to-top {
		bottom: 0;
		right: 0;
		width: 45px;
		height: 45px;
	}

	.scroll-to-top-icon {
		width: 18px;
		height: 18px;
	}
}

