/* =======================================================
   基本設定
   ======================================================= */

html {
	font-size: 16px;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	line-height: 1.7;
	color: #333;
}

body.menu-open {
	overflow: hidden;
	width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}


/* =======================================================
   ヘッダー
   ======================================================= */

#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	color: #fff;
	background-color: transparent;
	z-index: 10000;
}

#header.is-scrolled {
	background-color: #fff;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.header-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
	padding: 0 15px;
}

.site-branding {
	display: flex;
	align-items: center;
	height: 100%;
	width: 100%;
}

.site-branding a {
	max-height: 90%;
	width: 60%;
	display: flex;
	align-items: center;
	height: 100%;
}


/* ハンバーガーメニュー */
.menu-toggle {
	width: 60px;
	height: 60px;
	background-color: #007bff;
	border: none;
	cursor: pointer;
	position: relative;
	padding: 0;
	z-index: 10000;
}

.menu-toggle .hamburger-icon,
.menu-toggle .hamburger-icon::before,
.menu-toggle .hamburger-icon::after {
	content: '';
	display: block;
	height: 2px;
	width: 70%;
	background: #fff;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	transition: transform 0.3s ease, top 0.3s ease;
}

.menu-toggle .hamburger-icon {
	top: 50%;
	transform: translate(-50%, -50%);
}

.menu-toggle .hamburger-icon::before {
	top: -8px;
	width: 100%;
}

.menu-toggle .hamburger-icon::after {
	top: 8px;
	width: 100%;
}


/* ナビゲーション */
.main-navigation {
	position: fixed;
	right: -100%;
	top: 60px;
	width: 80vw;
	height: auto;
	background-color: #007bff;
	z-index: 90;
	transition: right 0.3s ease;
	margin-right: 15px;
}

.main-navigation[aria-expanded="true"] {
	right: 0;
	top: 60px;
}

.main-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-menu li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.main-menu a {
	display: block;
	padding: 15px 20px;
	color: #fff;
	background-color: #007bff;
	font-size: 1.1rem;
}


/* =======================================================
   ヒーローエリア
   ======================================================= */

#hero-area {
	height: 530px;
	position: relative;
	padding: 0 15px;
	display: flex;
	align-items: center;
}

/* スライド */
.hero-slides {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.hero-slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	opacity: 0;
	transition: opacity 1.5s ease-in-out;
}

.hero-slide.active {
	opacity: 1;
}

/* コンテンツ */
.hero-content {
	color: #fff;
	width: 100%;
	position: relative;
	z-index: 10;
	margin-top: -100px;
	padding-left: 10px;
	border-left: 2px solid #FFF;
}

.hero-copy-main {
	font-family: 'Noto Serif JP', serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.6;
	margin-bottom: 15px;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

.hero-copy-sub {
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.7;
	text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}

/* スクロール表示 */
#hero-area::after {
	content: 'SCROLL';
	display: block;
	position: absolute;
	right: 10px;
	bottom: 60px;
	font-size: 0.8rem;
	letter-spacing: 5px;
	color: #fff;
	writing-mode: vertical-rl;
	z-index: 10;
}

#hero-area::before {
	content: '';
	display: block;
	position: absolute;
	right: 15px;
	bottom: 0px;
	width: 1px;
	height: 60px;
	background-color: #fff;
	z-index: 10;
}


/* =======================================================
   共通セクションスタイル
   ======================================================= */

.section-padding {
	padding: 40px 0;
}

.inner-content {
	padding-left: 15px;
	padding-right: 15px;
}

/* セクションタイトル */
.section-title {
	font-size: 1.8rem;
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	color: #333;
	text-align: center;
	margin-bottom: 30px;
	line-height: 2rem;
}

.section-title .en {
	display: block;
	font-family: 'Noto Serif JP', serif;
	font-size: 0.9rem;
	font-weight: 500;
	color: #0099EE;
	margin-bottom: 15px;
	text-transform: capitalize;
}

.section-title .en::after {
	content: '';
	display: block;
	width: 100%;
	height: 1px;
	background-color: #0099EE;
	margin: 10px auto 0;
}

/* 説明文 */
.section-description,
.section-description-goods,
.section-description-ad,
.section-description-company {
	text-align: justify;
	text-justify: inter-ideograph;
	line-height: 1.8;
	font-size: 0.95rem;
	margin-bottom: 40px;
	margin-left: auto;
	margin-right: auto;
}

.section-description-company {
	color: #333;
}

/* ボタン */
.btn-area {
	text-align: center;
	margin: 20px auto;
}

.btn-outline {
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	display: inline-block;
	padding: 10px 40px;
	color: #0099EE;
	border: 1px solid #0099EE;
	border-radius: 6px;
	transition: all 0.3s ease;
	background-color: #fff;
}

.btn-outline:hover {
	background-color: #0099EE;
	color: #fff;
}


/* =======================================================
   強みセクション
   ======================================================= */

#strength {
	padding-bottom: 0 !important;
}

.strength-image-area {
	margin-bottom: 0;
}

.strength-image-area .strength-visual {
	width: 100%;
	height: auto;
	display: block;
	margin-top: 0;
}


/* =======================================================
   タクシー用品セクション
   ======================================================= */

#goods-types {
	background-color: #e6f7ff;
}

.goods-visual-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin: 20px auto 40px auto;
}

.goods-visual-list .goods-key-image {
	width: 100%;
	height: auto;
	display: block;
}

.wp-block-table td,
.wp-block-table th {
	vertical-align: middle;
}

/* =======================================================
   タクシー広告の種類セクション
   ======================================================= */

#ad-types {
	background-color: #e6f7ff;
	margin-top: 40px;
}

.ad-subsection {
	margin-bottom: 40px;
}

.ad-sub-title {
	font-size: 1.4rem;
	font-weight: 700;
	text-align: right;
	color: rgba(74, 202, 253, 0.5);
	margin-bottom: -10px;
	padding-top: 10px;
	position: relative;
	z-index: 999;
	white-space: nowrap;
}

.ad-visual-list {
	margin-bottom: 20px;
}

.ad-visual-list .ad-key-image {
	width: 100%;
	height: auto;
	display: block;
}

.ad-item-title {
	font-size: 1.4rem;
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	margin-bottom: 15px;
}

.ad-item-description {
	text-align: justify;
	text-justify: inter-ideograph;
	line-height: 1.7;
	font-size: 0.95rem;
	margin-bottom: 25px;
}

.btn-area-item {
	text-align: center;
}


/* =======================================================
   広告掲載までの流れセクション
   ======================================================= */

#flow {
	background-color: #fff;
}

.flow-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
	margin-bottom: 40px;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.flow-item {
	background-color: #D6EEFF;
	font-size: 0.9rem;
	line-height: 1.6;
	position: relative;
	padding: 25px;
}

.flow-step {
	display: block;
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	background-color: #0099EE;
	margin-bottom: 5px;
	position: absolute;
	top: -10px;
	left: -10px;
	width: 35px;
	height: 35px;
	line-height: 35px;
	text-align: center;
}

.flow-title {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.2rem;
	font-weight: 400;
	color: #0099EE;
	text-align: center;
	position: relative;
	padding-bottom: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 3.2rem;
	line-height: 1.4;
	margin-bottom: 8px;
}

.flow-title::after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #007bff;
}

.flow-description {
	font-size: 0.85rem;
	text-align: justify;
	text-justify: inter-ideograph;
}


/* =======================================================
   会社情報セクション
   ======================================================= */

#company-info {
	background-image: url('../images/bg_texture_sp.jpg');
	background-size: cover;
	background-repeat: repeat;
	background-blend-mode: multiply;
	padding: 40px 0 0 0;
}

.company-visual {
	margin-top: 40px;
}

.company-visual .company-key-image {
	width: 100%;
	height: auto;
	display: block;
}


/* =======================================================
   お知らせセクション
   ======================================================= */

.news-list {
	border-top: 1px solid #ddd;
	margin-bottom: 40px;
	list-style: none;
	padding: 0;
}

.news-item a {
	display: flex;
	align-items: flex-start;
	padding: 15px 0;
	color: #333;
	text-decoration: none;
	border-bottom: 1px solid #ddd;
	transition: background-color 0.3s;
}

.news-item:last-child a {
	border-bottom: none;
}

.news-item a:hover {
	background-color: #fafafa;
}

.news-date {
	display: block;
	min-width: 100px;
	max-width: 200px;
	font-size: 0.9rem;
	color: #555;
	font-weight: 400;
	padding-right: 15px;
	border-right: 1px dashed #ddd;
	line-height: 1.6;
}

.news-title-text {
	flex-grow: 1;
	font-size: 0.95rem;
	line-height: 1.6;
	padding-left: 15px;
	font-weight: 400;
}


/* =======================================================
   CTAコンタクトセクション
   ======================================================= */

#cta-contact {
	background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('../images/cta_contact_bg.jpg');
	background-size: cover;
	background-position: center;
	color: #fff;
	text-align: center;
	padding: 40px 0;
}

.cta-sub-title {
	font-family: 'Noto Serif JP', serif;
	font-size: 1rem;
	font-weight: 400;
	color: #fff;
	position: relative;
	padding-bottom: 15px;
	margin-bottom: 5px;
}

.cta-sub-title::after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: 1px;
	background-color: #fff;
}

.cta-main-title {
	font-family: 'Noto Serif JP', serif;
	font-size: 1.8rem;
	font-weight: 400;
	color: #fff;
	margin-bottom: 30px;
}

/* CTAボタン */
.cta-btn {
	display: block;
	width: 100%;
	max-width: 350px;
	margin: 0 auto 20px;
	padding: 10px;
	border-radius: 10px;
	text-decoration: none;
	transition: all 0.3s ease;
}

.cta-btn-tel {
	background-color: #fff;
	border: 2px solid #0099EE;
	line-height: 1.4;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cta-btn-tel:hover {
	background-color: rgba(0, 123, 255, 0.1);
}

.tel-number-wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
}

.tel-icon {
	font-size: 1.5rem;
	margin-right: 10px;
	display: inline-block;
	color: #0099EE;
}

.tel-icon img {
	width: 30px;
	height: auto;
	display: block;
}

.tel-number {
	display: block;
	font-size: 2rem;
	font-weight: 700;
	color: #0099EE;
}

.tel-company-name {
	display: block;
	font-size: 0.9rem;
	font-weight: 400;
	color: #0099EE;
	margin-top: 5px;
}

.tel-hours {
	display: block;
	font-size: 0.8rem;
	font-weight: 400;
	color: #0099EE;
}

.cta-btn-form {
	background-color: #fff;
	border: 2px solid #0099EE;
	font-size: 1.5rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cta-btn-form:hover {
	background-color: rgba(255, 255, 255, 0.1);
}

.form-icon {
	font-size: 1.5rem;
	margin-right: 10px;
	display: inline-block;
}

.form-icon img {
	width: 30px;
	height: auto;
	display: block;
}

.form-text {
	display: block;
	font-size: 1.2rem;
	font-weight: 700;
	color: #0099EE;
}


/* =======================================================
   フッター
   ======================================================= */

.footer-top-area {
	background-color: #007bff;
	color: #fff;
	padding: 30px 15px;
	text-align: left;
}

.footer-info .footer-logo {
	max-width: 80%;
	height: auto;
	margin-bottom: 15px;
	display: block;
}

.footer-info address {
	font-style: normal;
	line-height: 1.8;
}

.footer-navigation {
	margin-top: 20px;
}

.footer-menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
}

.footer-menu li {
	width: auto;
	margin-right: 10px;
	padding: 5px 0;
	font-size: 0.95rem;
}

.site-info {
	text-align: center;
	padding: 15px 0;
	font-size: 0.8rem;
	background-color: #007bff;
	color: #fff;
}

.footer-company-name {
	font-size: 1.2rem;
	font-weight: 700;
	margin-bottom: 10px;
}

/* =======================================================
   下層ページ共通
   ======================================================= */



.single-header,
.archive-header {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: 260px;
	position: relative;
}

.page-title-wrap .page-title {
	font-family: 'Noto Serif JP', serif;
	font-size: 1.6rem;
	font-weight: 400;
	color: #fff;
	text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
}

/* --- 広告/用品 詳細ページ --- */

/* 1-A. 用品詳細ページ (モバイルデフォルト) */
.single-header.goods-single-header {
	background-image: url('../images/keyvisual-goods-detail-sp.jpg');
}

/* 1-B. 広告詳細ページ (モバイルデフォルト) */
.single-header.ad-single-header {
	background-image: url('../images/keyvisual-ad-detail-sp.jpg');
}

/* --- 広告/用品 一覧ページ --- */

/* 1-C. 用品一覧ページ (モバイルデフォルト) */
.archive-header.goods-archive-header {
	background-image: url('../images/keyvisual-goods-archive-sp.jpg');
}

/* 1-D. 広告一覧ページ (モバイルデフォルト) */
.archive-header.ad-archive-header {
	background-image: url('../images/keyvisual-ad-archive-sp.jpg');
}

.single-header .header-image-wrapper {
	display: none;
}

.header-key-visual {
	display: block;
	width: 100%;
	height: 260px;
	object-fit: cover;
	margin: 0 auto;
}

.page-header-section.single-header {
	padding: 60px 20px 20px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.page-header-section.single-header .page-title {
	font-size: 1.8rem;
	color: #fff;
}

.single-category {
	font-family: 'Noto Serif JP', serif;
	font-size: 1.8rem;
	font-weight: 400;
	color: #fff;
	text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
	text-align: center;
}


.single-header.single-generic-header {
	/* アイキャッチ画像やCFの画像が設定されていない場合に表示したい汎用画像のURLを指定 */
	background-image: url('../images/keyvisual-default-sp.jpg');
}


/* =======================================================
   用品詳細画像のレイアウト
   ======================================================= */

.goods-images-flex {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 15px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}

.goods-images-flex img {
	width: 100%;
	max-width: 350px;
	height: auto;
}

.goods-images-flex img:last-child {
	margin-bottom: 0;
}


/* =======================================================
   用品一覧ページ
   ======================================================= */

.goods-archive-list {
	background-color: #fff;
}

.goods-archive-intro {
	padding-top: 40px;
}

.goods-list-wrapper {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px;
	margin-top: 40px;
}

/* 1. a要素の全ての直下の子要素（画像エリア、テキストエリアなど）がクリックイベントを無視するように設定 */
.goods-list-item a * {
	pointer-events: none !important;
}

/* 2. ただし、a要素自体はクリックイベントを受け付けるように、念のため明示的に設定 */
.goods-list-item a {
	pointer-events: auto;
	cursor: pointer;
}

.goods-list-item {
	/* .goods-list-item 自体の背景色は不要（aタグの擬似要素で対応するため） */
	border: none;
	/* background-color: #D6EEFF; /* 削除 */
	transition: box-shadow 0.3s ease;
	text-align: left;
	position: relative;
	min-height: 300px;
}


/* --- リンク全体 (白い箱) --- */
.goods-list-item a {
	display: block;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	background-color: #fff;
	z-index: 1;
	position: absolute;
	/* 💡 a要素を絶対配置に変更して article 全体を覆う */
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* 擬似要素::after: ずらしたいライトブルーの背景を作成 */
.goods-list-item a::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #D6EEFF;
	transform: translate(15px, 15px);
	z-index: -1;
}

/* --- 画像エリア（絶対配置で上部に配置） --- */
.goods-item-image {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	z-index: 2;
}

.goods-item-image img {
	display: block;
	width: 100%;
	max-width: 300px;
	height: 100%;
	object-fit: cover;
}

/* --- テキストエリア（絶対配置で下部に配置） --- */
.goods-item-text {
	position: absolute;
	top: 14rem;
	left: 15px;
	width: calc(100% - 15px);
	padding: 0 15px;
	background-color: #D6EEFF;
	color: #333;
}


.goods-list-item a::before {
	content: '';
	position: absolute;
	top: 150px;
	right: 40px;
	bottom: 80px;
	width: 60px;
	height: 60px;
	background-color: rgba(56, 142, 234, 0.8);
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="white" d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>');
	background-size: 55px;
	background-repeat: no-repeat;
	background-position: center;
	pointer-events: none;

	/* 最前面 */
	z-index: 11;
}

/* =======================================================
   用品詳細ページ
   ======================================================= */

.goods-detail-wrapper {
	display: flex;
	flex-direction: column;
	gap: 30px;
	align-items: flex-start;
}

.goods-main-visual {
	width: 100%;
	margin: 0 auto;
	max-width: 400px;
}

.goods-main-visual img {
	width: 100%;
	height: auto;
	display: block;
	border: 1px solid #ddd;
}

.goods-description-box {
	width: 100%;
}

.goods-content-body {
	line-height: 1.7;
}

.goods-content-body p,
.goods-content-body ul {
	margin-bottom: 1.5em;
}

.goods-content-body ul {
	list-style: none;
}

.goods-content-body ul li {
	padding-left: 2em;
	text-indent: -1.5em;
}

.goods-content-body ul li::before {
	content: "◯";
	color: #333;
	margin-right: 5px;
	font-size: 0.9rem;
}

.goods-spec-list {
	list-style: none;
	padding: 0;
}

.goods-spec-list li {
	padding-left: 2em;
	text-indent: -1.5em;
}

.goods-spec-list li::before {
	content: "■";
	color: #333;
	margin-right: 0.5em;
	font-size: 0.9rem;
}

.single-cta-buttons {
	text-align: center;
	margin-top: 30px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 15px;
}

.single-cta-buttons a {
	display: block;
	width: 240px;
	padding: 15px 20px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 700;
	font-size: 1.1rem;
	transition: opacity 0.3s;
}

.btn-primary-blue {
	background-color: #0070c0;
	color: #fff;
	border: 2px solid #0070c0;
}

.btn-secondary-light {
	background-color: #fff;
	color: #0070c0;
	border: 2px solid #0070c0;
}


/* 既存のボタンの共通スタイルを継承 */
.single-cta-buttons a {
	/* (投稿者様が用意された既存の共通スタイル: display: block; width: 240px; ... など) */

	/* 共通スタイルに以下を追加することで、アイコンとテキストの配置が容易になります */
	display: flex;
	align-items: center;
	/* 垂直方向の中央揃え */
	justify-content: center;
	/* 水平方向の中央揃え */
}

/* 新規PDFボタン（赤ベース）*/
.btn-pdf-red {
	/* 背景を赤に設定 (PDF標準色に近い色) */
	background-color: rgb(204, 0, 0);
	/* 文字色を白に設定 */
	color: rgb(255, 255, 255);
	/* 枠線を背景と同じ赤に設定 */
	border-width: 2px;
	border-style: solid;
	border-color: rgb(204, 0, 0);
}

/* SVGアイコンのスタイル設定（赤ボタン用） */
.btn-pdf-red .pdf-icon {
	/* アイコンのサイズを調整 */
	width: 20px;
	height: 20px;

	/* アイコンとテキストの間隔を設定 */
	margin-right: 10px;

	/* SVGの塗りつぶし色をボタンの文字色（白）と合わせる */
	/* ※ショートコード内のSVGに fill="currentColor" または fill="none" が必要 */
	fill: currentColor;
}

.btn-pdf-red {
	max-width: 600px !important;
}

/* =======================================================
   広告詳細ページ
   ======================================================= */

.ad-feature-heading {
	font-size: 1.5rem;
	line-height: 1.4;
	font-weight: 700;
	margin-top: 30px;
	margin-bottom: 25px;
	padding-left: 2rem;
	padding-bottom: 10px;
	position: relative;
	color: #333;
	border-bottom: 2px solid #0070c0;
	letter-spacing: 0.05em;
}


.ad-feature-heading::before {
	content: "■";
	color: #0070c0;
	position: absolute;
	left: 0;
	top: 0;
}


/* =======================================================
   広告アーカイブページ
   ======================================================= */

/* 広告アーカイブセクション */
.ad-archive-section {
	background-color: #fff;
}

/* メイン画像 */
.ad-archive-main-image {
	margin: 20px 0;
}

.ad-archive-key-image {
	width: 100%;
	height: auto;
	display: block;
}

.page-header-section.archive-header {
	padding: 60px 20px 20px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.page-header-section.archive-header .page-title {
	font-size: 1.8rem;
}

.archive-category {
	font-family: 'Noto Serif JP', serif;
	font-size: 1.8rem;
	font-weight: 400;
	color: #fff;
	text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
	text-align: center;
}

.ad-reason-section {
	position: relative;
	overflow: hidden;
	background-image: url('../images/back-reason-section.jpg');
}



.reason-image-area {
	margin-bottom: 0;
}

.reason-image-area .reason-visual {
	width: 100%;
	height: auto;
	display: block;
	margin-top: 0;
}


/* =======================================================
   強みセクション - SP (モバイルファーストの基本設定)
   ======================================================= */

/* 画像とテキストを囲むラッパーにFlexboxを適用し、縦積みにする */
.strength-page .strength-section .inner-wrap {
	/* 既存の .inner-wrap の設定と競合しないよう、詳細度を上げる */
	display: flex;
	flex-direction: column;
	/* 縦積み */
	gap: 30px;
	/* テキストと画像の間隔 */
	padding: 15px;
}

/* テキストと画像それぞれの幅は100% */
.strength-page .strength-section .text-content,
.strength-page .strength-section .image-content {
	width: 100%;
}

.strength-page .strength-section .image-content {
	margin-bottom: 40px;
}

.strength-page .strength-section .image-content p {
	margin-bottom: 10px;
}

/* 画像がコンテナ幅いっぱいに広がるように設定 */
.strength-page .strength-section .image-content img {
	width: 100%;
	height: auto;
	display: block;
}

/* 背景色の設定 */
.strength-page .is-colored {
	background-color: #D6EEFF;
	/* 薄いグレーなど */
}

.strength-page .is-white {
	background-color: #ffffff;
}

/* 画像とテキストのコンテナをFlexboxに設定 (PCで利用) */
.strength-page .strength-section .inner-wrap {
	display: flex;
	flex-direction: column;
	/* モバイルでは縦積みにする */
	gap: 30px;
	/* コンテンツ間の隙間 */
}

#strength-section-2 {
	background-image: url('../images/back-strength-section-2.jpg');
}



.section-link {
	color: #0070c0;
	border: 2px solid #0070c0;
	border-radius: 8px;
	width: 240px;
	max-width: 80%;
	padding: 15px 20px;
	margin: 30px auto;
	text-align: center;
	text-decoration: none;
	font-family: 'Noto Serif JP', serif;
	font-weight: 700;
	font-size: 1.1rem;
	transition: all 0.3s ease;
	background-color: #fff;
}

.section-link:hover {
	background-color: #0070c0;
	color: #ffffff;
}

.strength-maintenance-images {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.strength-maintenance-images div img {
	width: 100%;
}

/* =======================================================
   会社情報ページ専用のCSS (.company-page)
   ======================================================= */

/* 会社概要テーブルのスタイリング */
.company-page .company-table {
	width: 100%;
	max-width: 900px;
	margin: 40px auto;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.company-page .company-table th,
.company-page .company-table td {
	padding: 15px 20px;
	text-align: left;
	line-height: 1.6;
	border-top: none;
	border-left: none;
	border-right: none;
	border-bottom: 1px solid #e0e0e0;
}

/* ヘッダーセル（項目名）のスタイリング */
.company-page .company-table th {
	width: 30%;
	/* PCで項目名を左に寄せる */
	font-weight: 700;
	color: #333;
}

/* データセル（内容）のスタイリング */
.company-page .company-table td {
	width: 70%;
}

.company-page .greeting-text {
	text-align: justify;
}

.philosophy-text {
	font-family: 'Noto Serif JP', serif;
	text-align: justify;
	text-justify: inter-ideograph;
	line-height: 1.8;
	font-size: 1.2rem;
	margin-bottom: 40px;
	color: #333;
	text-align: center;
}


/* -------------------------------------- */
/* 沿革のスタイリング (デザインから推測) */
/* -------------------------------------- */
.company-page .history-list {
	list-style: none;
	padding: 0;
	margin: 40px auto;
	max-width: 900px;
}

.company-page .history-list li {
	display: flex;
	flex-direction: column;
	/* SPでは縦積み */
	padding: 10px 0;
	border-bottom: 1px dashed #ddd;
}

.company-page .history-list .history-year {
	font-weight: 700;
	width: 100px;
	/* SPでは全幅に近いため、あまり意味なし */
	margin-bottom: 5px;
}

.company-page .history-list .history-event {
	flex-grow: 1;
}

/* 会社概要テーブル */
.company-page .company-table {
	width: 100%;
	max-width: 900px;
	/* テーブル最大幅 */
	margin: 40px auto;
}

.company-page .company-table th,
.company-page .company-table td {
	padding: 15px 20px;
}

/* =======================================================
   過去掲出履歴一覧セクションのCSS
   ======================================================= */

.company-page #ad-history-list {
	text-align: center;
	/* 見出しとリスト全体を中央寄せにする */
}

.company-page .company-name-list-wrap {
	max-width: 900px;
	/* リスト全体の最大幅 */
	margin: 30px auto 0;
	/* 中央寄せ */
}

.company-page .company-name-list {
	list-style: none;
	padding: 0;
	text-align: left;
	/* リスト内のテキストを左揃えに戻す */
	font-size: 0.95rem;
	line-height: 1.8;
}

.company-page .company-name-list li {
	padding: 5px 0;
}

.company-address p {
	text-align: center;
	/* 会社住所を中央寄せにする */
	margin-top: 20px;
	font-size: 0.9rem;
	line-height: 1.6;
	color: #555;
}

/* 背景色の設定 */
.company-page .is-colored {
	background-color: #D6EEFF;
	/* 薄いグレーなど */
}

.company-page .access-map-area iframe {
	width: 100% !important;
	height: 400px;
	display: block;
	border: none;
}

.greeting-ceo {
	text-align: right;
	font-weight: 700;
	font-size: 1rem;
}

.greeting-ceo-name {
	font-size: 1.2rem;
}

/* =======================================================
   1. 記事・ページの基本レイアウト
   ======================================================= */
/* 投稿ページと固定ページのメインコンテンツエリア */
.single-post-page .site-main,
.default-page .site-main {
	padding: 30px 0 60px;
	/* 上下の余白 */
}



/* ページタイトルとメタ情報のヘッダー */
.entry-header {
	text-align: center;
	margin-bottom: 40px;
}

/* 記事タイトル */
.entry-header .entry-title {
	font-size: 2.2rem;
	line-height: 1.4;
	margin-bottom: 15px;
}

/* 投稿日などのメタ情報 */
.entry-header .entry-meta {
	font-size: 0.9rem;
	color: #666;
}

/* =======================================================
   2. 記事本文 (.entry-content) の整形
   ======================================================= */
.entry-content h2 {
	font-size: 1.8rem;
	margin-top: 2em;
	margin-bottom: 0.8em;
	padding-bottom: 5px;
	border-bottom: 2px solid #ccc;
}

.entry-content h3 {
	font-size: 1.4rem;
	margin-top: 1.5em;
	margin-bottom: 0.8em;
	border-left: 5px solid #0056b3;
	/* 例として青い左ボーダー */
	padding-left: 10px;
}

/* 段落間の余白 */
.entry-content p {
	line-height: 1.8;
	margin-bottom: 1.5em;
}

/* 画像のレスポンシブ対応 */
.entry-content img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 20px auto;
	/* 中央寄せと上下の余白 */
}

/* リストのスタイル */
.entry-content ul,
.entry-content ol {
	margin: 1.5em 0;
	padding-left: 25px;
}

.entry-content li {
	line-height: 1.8;
	margin-bottom: 0.5em;
}

/* =======================================================
   3. single.php 特有の要素
   ======================================================= */
/* カテゴリーやタグ */
.post-category a,
.post-tags a {
	display: inline-block;
	background-color: #eee;
	color: #333;
	padding: 3px 8px;
	margin-right: 5px;
	font-size: 0.8rem;
	text-decoration: none;
	border-radius: 3px;
}

/* 前後記事へのナビゲーション */
.post-navigation {
	max-width: 900px;
	margin: 50px auto 0;
	display: flex;
	justify-content: space-between;
	padding: 0 15px;
}

.post-navigation .nav-previous,
.post-navigation .nav-next {
	width: 48%;
}

/* =======================================================
   プライバシーポリシーのリストスタイル（WordPressのulブロック対応）
   ======================================================= */

/* 1. リストマーカーを非表示にし、カスタムマーカー用のスペースを確保 */
.entry-content .wp-block-list li {
	list-style: none;
	/* 標準の黒点を非表示 */
	position: relative;
	padding-left: 1.8em;
	/* ◯マークを配置するためのスペース */
	line-height: 1.8;
	margin-bottom: 0.8em;
}

/* 2. ◯（マル）の擬似要素を作成して配置 */
.entry-content .wp-block-list li::before {
	content: "◯";
	/* 〇マークを表示 */
	color: #333;
	font-weight: bold;
	position: absolute;
	left: 0;
	/* 確保したスペースの左端に配置 */
	top: 0;
}

/* 3. その他の段落の字下げ（第4条などの本文用） */
.entry-content p {
	line-height: 1.8;
	margin-bottom: 1.5em;
	text-indent: 1em;
	/* 全体の段落の字下げを適用 */
}

/* 4. タイトルや見出しの後の段落は字下げを解除することが一般的 */
.entry-content h3+p,
.entry-content h4+p {
	text-indent: 0;
}

/* =======================================================
   お問い合わせページ共通スタイル (.contact-page)
   ======================================================= */
.contact-page .contact-section {
	padding: 30px 15px;
}

/* フォーム上の説明文 */
.contact-page .contact-description {
	max-width: 800px;
	margin: 0 auto 40px;
	text-align: center;
	line-height: 1.8;
}

/* -------------------------------------- */
/* 1. 電話でのお問い合わせエリア (contact-phone-area) */
/* -------------------------------------- */
.contact-page .contact-phone-area {
	margin: 40px auto 0px;
	text-align: center;
	background-color: #0099EE;
	padding: 20px;
}

.contact-page .contact-phone-area .phone-label {
	font-size: 1.1rem;
	font-weight: bold;
	color: #fff;
	margin-bottom: 10px;
}

/* 🚨 電話番号のデザイン */
.contact-page .contact-phone-area .phone-number {
	display: inline-block;
	font-size: 2.2rem;
	font-weight: bold;
	color: #ffffff;
	/* 画像の青色 */
	padding: 10px 30px;
	margin-bottom: 15px;
	border-radius: 5px;
	text-decoration: none;
}

.contact-page .contact-phone-area .business-hours {
	font-size: 0.9rem;
	color: #333;
	line-height: 1.6;
}

.contact-page .tel-number,
.contact-page .tel-company-name,
.contact-page .tel-hours {
	color: #fff;
}


/* -------------------------------------- */
/* 2. フォームエリア (contact-form-wrap) の基本装飾 */
/* -------------------------------------- */


.contact-page .contact-form-wrap {
	margin: 0 auto;
	border-radius: 5px;
}




/* =======================================================
   CF7フォームのレイアウト (.contact-form-wrap内のスタイル)
   ======================================================= */
.contact-form-wrap .contact-form-dl {
	margin: 0;
	padding: 0;
}

/* 各フォーム項目を囲むコンテナ */
.contact-form-wrap .contact-item {
	display: flex;
	/* PCで項目名と入力欄を横並びにする */
	flex-direction: column;
	/* SPでは縦積み */
	border-top: 1px dashed #ccc;
	padding: 15px 0;
}

.contact-form-wrap-div .contact-item:first-of-type {
	border-top: none;
}

/* フォーム項目の見出し (dt) */
.contact-form-wrap .contact-item dt {
	font-weight: bold;
	padding: 5px 0;
	margin-bottom: 5px;
	/* SPでddとの間に余白 */
	flex-shrink: 0;
}

/* 必須タグのスタイル */
.contact-form-wrap .required-tag {
	display: inline-block;
	background-color: #0056b3;
	/* 青い背景色 */
	color: #fff;
	font-size: 0.75rem;
	padding: 2px 6px;
	margin-left: 10px;
	border-radius: 3px;
	font-weight: normal;
}

/* フォーム入力欄 (dd) */
.contact-form-wrap .contact-item dd {
	margin-left: 0;
	width: 100%;
}

/* 入力フィールド全般のスタイル */
.contact-form-wrap .input-text,
.contact-form-wrap .input-textarea {
	width: 100%;
	padding: 10px;
	border: 1px solid #ccc;
	box-sizing: border-box;
}

/* テキストエリア本体の改善 */
.contact-form-wrap .is-textarea textarea,
.contact-form-wrap .input-textarea,
.contact-page textarea,
form.wpcf7 textarea {
	min-height: 150px;
	/* 必要な最小高さ */
	height: auto;
	max-height: calc(100vh - 220px);
	/* ヘッダー等を考慮した最大高さ */
	max-height: calc(100vh - 220px - env(safe-area-inset-bottom));
	/* safe-area対応 */
	overflow-y: auto;
	/* スクロール可能に */
	box-sizing: border-box;
	resize: vertical;
	/* ユーザーが縦方向にリサイズ可能 */
}

.contact-form-wrap .section-title {
	margin-bottom: 20px;
}

/* -------------------------------------- */
/* PCでの横並びレイアウト (768px以上) */
/* -------------------------------------- */
@media (min-width: 768px) {
	.contact-form-wrap .contact-item {
		flex-direction: row;
		/* 横並びに戻す */
		align-items: flex-start;
	}

	.contact-form-wrap .contact-item dt {
		width: 180px;
		/* 項目名の幅を固定 */
		padding: 10px 0;
		margin-bottom: 0;
	}

	.contact-form-wrap .contact-item dd {
		width: calc(100% - 180px);
		/* 残りの幅を入力欄に */
	}

	.contact-form-wrap .is-textarea textarea,
	form.wpcf7 textarea {
		max-height: calc(100vh - 200px);
	}
}

/* -------------------------------------- */
/* プライバシーポリシーと同意エリア */
/* -------------------------------------- */
.contact-form-wrap .privacy-link-area {
	text-align: center;
	font-size: 0.9em;
	padding: 15px 0 10px;
}

.contact-form-wrap .privacy-link-area a {
	color: #0056b3;
	text-decoration: underline;
}

/* 同意チェックボックスのエリア */
.contact-form-wrap .agreement-area {
	padding: 20px 0 30px;
	font-size: 0.9em;
	text-align: center;
}

.contact-form-wrap .agreement-area .agreement-text {
	font-weight: bold;
	/* 同意確認のテキストとチェックボックスの間隔調整 */
	margin-right: 5px;
}


/* 送信ボタンのスタイル */
.contact-form-wrap .submit-button-wrap {
	text-align: center;
	padding-top: 20px;
}

.contact-form-wrap .btn-submit {
	/* 画像の「送信確認画面へ」ボタンのデザイン */
	background-color: #0056b3;
	color: #fff;
	padding: 12px 40px;
	border: none;
	cursor: pointer;
	font-size: 1.1rem;
	font-weight: bold;
	border-radius: 5px;
	transition: background-color 0.3s;
}

.contact-form-wrap .btn-submit:hover {
	background-color: #004085;
}

.wpcf7-spinner {
	position: absolute;
}

/* =======================================================
   注文フォーム（商品選択）のスタイル
   ======================================================= */
.goods-selection-wrap {
	margin: 0 auto;
	padding: 20px;
}



/* 1. チェックボックスと商品名 */
.goods-check-box {
	flex-grow: 1;
	/* スペースを最大限に使う */
	display: flex;
	align-items: center;
	font-size: 1rem;
}

/* 標準チェックボックスのスタイルは省略 */

/* 2. 数量入力欄 */
.goods-quantity-box {
	flex-shrink: 0;
	text-align: right;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.goods-quantity-box input.quantity-input {
	width: 50px;
	text-align: right;
	padding: 5px;
	border: 1px solid #ccc;
	margin-right: 5px;
}

.goods-quantity-box span {
	font-size: 0.9rem;
}

/* 🚨 チェックが入っていない時の個数入力欄のデザイン */
.goods-quantity-box input.quantity-input[disabled] {
	background-color: #f0f0f0;
	cursor: not-allowed;
	opacity: 0.7;
}



/* =======================================================
   広告注文フォーム カテゴリ別見出しのスタイル
   ======================================================= */
.ad-category-group h3 {
	font-size: 1.2rem;
	font-weight: bold;
	color: #0056b3;
	/* 統一感のある青色 */
	border-bottom: 2px solid #0056b3;
	padding-bottom: 5px;
	margin-top: 30px;
	margin-bottom: 15px;
}

/* 最初のカテゴリは上部の余白を調整 */
.ad-category-group:first-child h3 {
	margin-top: 0;
}

/* 各商品行のデザインは以前の .ad-item-row を使用 */

/* =======================================================
   確認画面 (General Confirm Page) のスタイル
   ======================================================= */

/* セクションタイトルは入力画面と共通 */
.contact-confirm-page .section-title {
	margin-top: 30px;
}

/* 説明文 */
.contact-confirm-page .contact-description {
	text-align: center;
	margin-bottom: 30px;
	line-height: 1.8;
}

/* -------------------------------------------------------
   データ表示エリア (DL要素)
   ------------------------------------------------------- */
.confirm-data-display-wrap {
	background-color: #f7f7f7;
	border: 1px solid #ddd;
	padding: 20px 25px;
	border-radius: 8px;
	margin-bottom: 40px;
}

.confirm-data-dl {
	display: flex;
	flex-direction: column;
}

.confirm-item {
	display: flex;
	padding: 15px 0;
	border-bottom: 1px dashed #ccc;
	align-items: flex-start;
	/* 複数行のときも上端に揃える */
}

.confirm-item:last-child {
	border-bottom: none;
}

/* データ項目名 (dt) */
.confirm-item dt {
	flex-basis: 180px;
	/* PCでの幅 */
	font-weight: bold;
	color: #333;
	padding-right: 20px;
	line-height: 1.6;
}

/* データ内容 (dd) */
.confirm-item dd {
	flex-grow: 1;
	color: #000;
	line-height: 1.6;
	word-break: break-word;
	/* 長いURLなども改行 */
}

/* スマホ対応 */
@media (max-width: 767px) {
	.confirm-item {
		flex-direction: column;
		padding: 10px 0;
	}

	.confirm-item dt {
		flex-basis: auto;
		padding-right: 0;
		margin-bottom: 5px;
		font-size: 0.95em;
	}

	.confirm-item dd {
		padding-left: 10px;
		/* 内容を少しインデント */
	}
}

/* -------------------------------------------------------
   ナビゲーションと送信ボタン
   ------------------------------------------------------- */
.contact-navigation {
	text-align: center;
	margin: 20px 0;
}

.submit-form-wrap {
	text-align: center;
	padding-top: 20px;
	/* 上部と区切り */
	border-top: 1px solid #ddd;
}

/* 戻るボタン */
.btn-back {
	/* スタイルを入力画面のボタンと合わせる */
	display: inline-block;
	padding: 10px 40px;
	background-color: #fff;
	color: #0056b3;
	border: 2px solid #0056b3;
	border-radius: 5px;
	font-size: 1.1em;
	cursor: pointer;
	transition: background-color 0.3s;
}

.btn-back:hover {
	background-color: #e6f0ff;
}

/* 最終送信ボタン (CF7のclass: btn-final-submit) */
.wpcf7-submit.btn-final-submit {
	/* CF7のデフォルトスタイルを上書き */
	display: inline-block;
	padding: 12px 60px;
	background-color: #0056b3;
	color: #ffffff;
	border: none;
	border-radius: 5px;
	font-size: 1.2em;
	font-weight: bold;
	cursor: pointer;
	transition: opacity 0.3s;
}

.wpcf7-submit.btn-final-submit:hover {
	opacity: 0.85;
}

/* 送信後の注意書き */
.form-caution {
	font-size: 0.9em;
	color: #555;
	margin-top: 10px;
}

/* =======================================================
   注文フォーム共通のスタイル (用品注文・広告注文)
   ======================================================= */

/* -------------------------------------------------------
   カテゴリ見出し (以前作成した項目)
   ------------------------------------------------------- */
.ad-category-group h3,
.goods-category-group h3 {
	font-size: 1.3em;
	font-weight: bold;
	color: #0056b3;
	border-bottom: 3px solid #0056b3;
	padding-bottom: 5px;
	margin-top: 40px;
	margin-bottom: 20px;
}

/* -------------------------------------------------------
   商品/広告リストのレイアウト
   ------------------------------------------------------- */
.goods-selection-wrap,
.ad-selection-wrap {
	background-color: #fcfcfc;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 40px;
}

.goods-item-row,
.ad-item-row {
	display: flex;
	justify-content: space-between;
	/* 左右に配置 */
	align-items: center;
	border-bottom: 1px dashed #ccc;
	padding: 10px 0;
}

.goods-item-row:last-child,
.ad-item-row:last-child {
	border-bottom: none;
}

/* 1. チェックボックスと商品名 */
.item-selection {
	flex-grow: 1;
	/* 残りのスペースを全て占める */
	display: flex;
	align-items: center;
}

/* 2. 商品/広告タイトルラベル */
.item-selection label {
	font-weight: normal;
	font-size: 1em;
	cursor: pointer;
	color: #333;
	padding-left: 5px;
	/* チェックボックスとの間隔 */
}

/* 3. 数量/期間入力エリア */
.item-quantity-area {
	flex-shrink: 0;
	/* 縮まない */
	width: 120px;
	/* 幅を固定 */
	text-align: right;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

/* 数量/期間入力フィールドのスタイル */
.quantity-input,
.duration-input {
	width: 50px;
	/* 入力フィールドの幅 */
	padding: 5px;
	border: 1px solid #ccc;
	border-radius: 3px;
	text-align: center;
	font-size: 1em;
	margin: 0 5px;
}

/* disabled状態の見た目 */
.quantity-input[disabled],
.duration-input[disabled] {
	background-color: #f5f5f5;
	color: #aaa;
	cursor: not-allowed;
}

/* 数量の単位 */
.quantity-unit {
	font-size: 0.9em;
	color: #555;
}

/* =======================================================
   お問い合わせトップエリア (電話番号エリア)
   ======================================================= */
.contact-phone-area {
	background-color: #0056b3;
	/* ブランドカラーを使用 */
	color: #fff;
	padding: 20px;
	border-radius: 8px;
	text-align: center;
	margin-top: 30px;
	margin-bottom: 50px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.contact-phone-area .phone-label {
	font-size: 1.1em;
	font-weight: bold;
	margin-bottom: 5px;
}

.tel-number-wrapper {
	display: flex;
	align-items: center;
}

.tel-number-wrapper .tel-icon img {
	width: 24px;
	height: 24px;
	margin-right: 10px;
}

.tel-number {
	font-size: 2em;
	/* 電話番号を大きく表示 */
	font-weight: bold;
	letter-spacing: 2px;
}

.tel-company-name,
.tel-hours {
	font-size: 0.9em;
	margin-top: 5px;
	text-align: center;
	width: 100%;
}

/* スマホでの調整 (電話番号はタップ可能に) */
@media (max-width: 767px) {
	.tel-number {
		font-size: 1.8em;
	}
}

/* --- スマホ対応 (モバイルでは縦に積む) --- */
@media (max-width: 767px) {

	.goods-item-row,
	.ad-item-row {
		flex-direction: column;
		align-items: flex-start;
		padding: 10px 0 5px;
	}

	.item-selection {
		margin-bottom: 5px;
	}

	.item-quantity-area {
		width: 100%;
		/* 全幅に広げる */
		justify-content: flex-start;
		/* 左寄せ */
		padding-left: 20px;
	}
}

#post-140 {
	padding: 40px 0;
}

.order-greeting {
	text-align: center;
	font-size: 1.1rem;
	line-height: 1.6;
	margin: 30px 0 60px 0;
	color: #333;
	padding: 0 15px;
}



/* =======================================================
   タブレット (768px以上)
   ======================================================= */

@media (min-width: 768px) {

	/* 用品セクション */
	.goods-visual-list {
		grid-template-columns: repeat(3, 1fr);
		gap: 30px;
	}

	/* 広告セクション */
	.ad-sections-wrapper {
		display: flex;
		gap: 50px;
		margin-top: 40px;
	}

	.ad-subsection {
		flex: 1;
		margin-top: 0;
		display: flex;
		flex-direction: column;
	}

	.ad-sub-title {
		text-align: right;
	}

	.ad-item-title {
		text-align: left;
	}

	.ad-item-description {
		flex-grow: 1;
		margin-bottom: 20px;
	}

	.btn-area-item {
		margin-top: auto;
	}


	.footer-info .footer-logo {
		max-width: 400px;
	}

	/* 用品詳細画像 */
	.goods-images-flex {
		flex-direction: row;
		gap: 15px;
		justify-content: center;
		align-items: flex-start;
	}

	.goods-images-flex img {
		max-width: none;
		width: calc(33.333% - 10px);
		height: auto;
	}

	.goods-images-flex>img.lazyloaded:only-of-type {
		width: 70% !important;
		max-width: 500px !important;
	}

	.goods-images-flex img.lazyloaded:first-child:nth-last-child(2),
	.goods-images-flex img.lazyloaded:nth-child(2):last-child {
		width: calc(45% - 8px);
	}

	/* 用品一覧 */
	.goods-list-wrapper {
		grid-template-columns: repeat(2, 1fr);
		gap: 30px;
	}

	/* 2-A. 用品詳細ページ (PC画像) */
	.single-header.goods-single-header {
		background-image: url('../images/keyvisual-goods-detail-pc.jpg');
	}

	/* 2-B. 広告詳細ページ (PC画像) */
	.single-header.ad-single-header {
		background-image: url('../images/keyvisual-ad-detail-pc.jpg');
	}

	/* 2-C. 用品一覧ページ (PC画像) */
	.archive-header.goods-archive-header {
		background-image: url('../images/keyvisual-goods-archive-pc.jpg');
	}

	/* 2-D. 広告一覧ページ (PC画像) */
	.archive-header.ad-archive-header {
		background-image: url('../images/keyvisual-ad-archive-pc.jpg');
	}

	.single-header.single-generic-header {
		/* アイキャッチ画像やCFの画像が設定されていない場合に表示したい汎用画像のURLを指定 */
		background-image: url('../images/keyvisual-default-pc.jpg');
	}

	.ad-feature-heading::before {
		content: "■";
		color: #0070c0;
		font-size: 1.2em;
		position: absolute;
		left: 0;
		top: 50%;
		padding-bottom: 10px;
		transform: translateY(-50%);
	}

	/* -------------------------------------- */
	/* 注文・広告リストの2カラム化 */
	/* -------------------------------------- */
	.goods-selection-wrap {
		display: flex;
		/* Flexコンテナにする */
		flex-wrap: wrap;
		/* アイテムを折り返す */
		/* paddingを少し減らすか、幅を調整しないと左右の余白が潰れる可能性あり */
		padding: 15px 10px;
	}

	/* 各アイテム行の幅を50%に設定して2列にする */
	.goods-item-row {
		width: 50%;
		/* 親要素に対して幅を50%に設定 */
		box-sizing: border-box;
		/* paddingやborderを幅に含める */
		padding: 10px 15px;
		/* 左右にパディングを追加して隣接するアイテムとの隙間を作る */
		border-bottom: 1px dashed #eee;
		/* 行の区切り線はそのまま維持 */
	}


	.ad-item-row {
		width: 100%;
		/* 親要素に対して幅を50%に設定 */
		box-sizing: border-box;
		/* paddingやborderを幅に含める */
		padding: 10px 15px;
		/* 左右にパディングを追加して隣接するアイテムとの隙間を作る */
		border-bottom: 1px dashed #eee;
		/* 行の区切り線はそのまま維持 */
	}

	/* 奇数番目（左側）のアイテムの右側の区切り線 */
	.goods-item-row:nth-child(odd),
	.ad-item-row:nth-child(odd) {
		border-right: 1px dashed #ccc;
		/* 縦の区切り線を追加 */
	}

	.strength-maintenance-images {
		flex-direction: row;
		gap: 15px;
	}


}


/* =======================================================
   PC (1024px以上)
   ======================================================= */
@media (min-width: 1024px) {

	/* グローバル設定 */
	.inner-content {
		max-width: 90%;
		width: 1080px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 0;
		padding-right: 0;
	}

	.section-padding {
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.sp-only-br {
		display: none;
	}

	/* ヘッダー */
	#header {
		padding: 0;
	}

	.site-branding {
		max-width: 360px;
		height: auto;
	}

	.header-inner {
		max-width: 90%;
		width: 1080px;
		margin: 0 auto;
		padding: 15px 0;
	}

	#menu-toggle {
		display: none;
	}

	#site-navigation {
		all: unset;
		display: block;
		margin-left: auto;
	}

	.main-menu {
		display: flex;
		list-style: none;
		padding: 0;
		align-items: center;
	}

	.main-menu li {
		margin-left: 30px;
		border-bottom: none;
	}

	.main-menu a {
		color: #fff;
		font-size: 0.9rem;
		font-weight: 400;
		background-color: transparent;
		padding: 0;
		border-radius: 0;
		display: block;
		transition: color 0.3s ease;
	}

	#header.is-scrolled .main-menu a {
		color: #333;
	}

	.main-menu li:last-child a {
		background-color: #007bff;
		color: #fff !important;
		border-radius: 2px;
		font-weight: 700;
		padding: 6px;
	}

	#header.is-scrolled .main-menu li:last-child a {
		color: #fff !important;
		background-color: #007bff;
	}

	/* ヒーローエリア */
	#hero-area {
		height: 750px;
		padding-bottom: 60px;
		display: flex;
		align-items: flex-end;
	}

	.hero-slides {
		max-width: 100%;
		height: 750px;
	}

	.hero-content {
		max-width: 90%;
		width: 1080px;
		position: relative;
		margin: 0 auto;
		top: 0px;
	}

	.hero-copy-main {
		font-size: 2.5rem;
	}

	.hero-btn {
		font-size: 1.2rem;
		padding: 15px 40px;
	}

	/* 強みセクション */
	#strength {
		position: relative;
		overflow: hidden;
		padding-top: 100px;
		padding-bottom: 100px !important;
	}

	#strength .inner-content {
		max-width: 90%;
		width: 1080px;
		margin: 0 auto;
		position: relative;
	}

	.strength-layout-grid {
		display: grid;
		grid-template-columns: 45% 55%;
		align-items: flex-start;
		gap: 0;
		margin-top: 20px;
	}

	.strength-text-area-wrapper {
		grid-column: 1 / 2;
		z-index: 2;
		text-align: left;
		background-color: rgba(255, 255, 255, 0.9);
		position: absolute;
		width: 600px;
		top: 20px;
	}

	.strength-text-area-wrapper .section-description {
		text-align: left;
		margin: 0;
	}

	#strength .section-title {
		margin-bottom: 20px;
		padding-top: 0;
		text-align: left;
	}

	.strength-text-area {
		padding-top: 10px;
		text-align: left;
	}

	.strength-text-area .btn-area {
		text-align: left;
	}

	.section-description {
		width: 90%;
		margin-bottom: 10px;
		text-align: center;
	}

	.strength-image-area {
		grid-column: 2 / 3;
		height: auto;
		z-index: 1;
	}

	.strength-image-area img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* 用品セクション */
	.goods-visual-list {
		grid-template-columns: repeat(3, 1fr);
		gap: 30px;
	}

	/* 用品詳細画像 */
	.goods-images-flex img {
		max-width: none;
		width: calc(33.333% - 10px);
		height: auto;
	}

	.goods-images-flex>img.lazyloaded:only-of-type {
		width: 70% !important;
		max-width: 600px !important;
	}

	.goods-images-flex img.lazyloaded:first-child:nth-last-child(2),
	.goods-images-flex img.lazyloaded:nth-child(2):last-child {
		width: calc(45% - 8px);
	}

	/* 広告セクション */
	.ad-sections-wrapper {
		display: flex;
		gap: 50px;
		margin-top: 40px;
	}

	.ad-subsection {
		flex: 1;
		margin-top: 0;
		display: flex;
		flex-direction: column;
	}

	.ad-sub-title {
		text-align: right;
	}

	.ad-item-title {
		text-align: left;
	}

	.ad-item-description {
		flex-grow: 1;
		margin-bottom: 20px;
	}

	.btn-area-item {
		margin-top: auto;
	}

	/* フローセクション */
	.flow-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 30px;
	}

	.flow-item {
		padding: 30px 25px;
	}

	.flow-item:not(:nth-child(4n))::after {
		content: "";
		display: block;
		width: 20px;
		height: 20px;
		background-size: contain;
		position: absolute;
		top: 50%;
		right: -25px;
		transform: translateY(-50%);
		z-index: 10;
	}

	/* 会社情報セクション */
	#company-info {
		display: flex;
		align-items: center;
		padding-top: 100px;
		padding-bottom: 100px;
		position: relative;
		flex-direction: row-reverse;
		padding-left: 0;
		padding-right: 0;
		overflow: hidden;
	}

	.company-info-grid {
		display: grid;
		grid-template-columns: 55% 45%;
		align-items: center;
		gap: 0;
		width: 100%;
		max-width: 90%;
		width: 1080px;
		margin: 0 auto;
		position: relative;
	}

	.company-visual {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
		margin-top: 0;
		z-index: 1;
		margin-right: -100px;
	}

	.company-key-image {
		width: 100%;
		height: 500px;
		object-fit: cover;
	}

	#company-info .inner-content {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
		z-index: 2;
		padding: 20px;
		background-color: rgba(255, 255, 255, 0.9);
		margin: 0;
	}

	#company-info .section-title {
		text-align: left;
	}

	.section-description-company,
	#company-info .btn-area {
		text-align: left;
		max-width: none;
		margin-left: 0;
		margin-right: 0;
	}

	/* CTAコンタクト */
	#cta-contact .inner-content {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}

	.cta-sub-title,
	.cta-main-title {
		flex: 0 0 100%;
	}

	.cta-btn {
		flex: 0 0 45%;
		max-width: 450px;
		margin-bottom: 0;
	}

	.contact-page .contact-phone-area .phone-label {
		font-size: 1.3rem;
		margin-bottom: 0;
	}

	.tel-icon {
		font-size: 3rem;
		margin-right: 15px;
	}

	.tel-number {
		font-weight: bold;
	}

	.cta-btn-tel {
		margin-right: 5%;
		align-items: flex-start;
	}

	.tel-number-wrapper {
		align-self: center;
		margin: 0;
	}

	.tel-company-name,
	.tel-hours {
		color: #0070c0;
	}

	.form-icon {
		font-size: 2rem;
		margin-right: 15px;
	}

	.form-text {
		font-size: 1.5rem;
	}

	/* フッター */
	.footer-top-area {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		text-align: left;
		padding: 60px 80px;
	}

	.footer-info .footer-logo {
		max-width: 60%;
	}

	.footer-info {
		flex: 0 0 40%;
		margin-bottom: 0;
	}

	.footer-navigation {
		flex: 0 0 50%;
		margin-top: 0px;
	}

	.footer-navigation .footer-menu {
		display: flex;
		flex-wrap: wrap;
		column-gap: 50px;
	}

	.footer-navigation .menu-item {
		flex: 0 0 45%;
	}

	/* 用品一覧ページ */
	.goods-list-wrapper {
		grid-template-columns: repeat(3, 1fr);
	}

	.goods-list-item a {
		flex-direction: column;
	}



	.goods-item-title {
		font-size: 1.1rem;
	}

	.goods-list-item a::after {
		right: 40px;
		bottom: 20px;
	}

	/* 用品詳細ページ */
	.goods-detail-wrapper {
		display: flex;
		flex-direction: row;
		gap: 50px;
	}

	.single-cta-buttons {
		flex-direction: row;
		justify-content: center;
		gap: 30px;
	}

	.single-cta-buttons a {
		width: auto;
		max-width: 280px;
		flex: 1;
		border-radius: 8px;
	}

	/* なぜタクシー広告は効果的なの？ */

	.reason-layout-grid {
		display: grid;
		grid-template-columns: 45% 55%;
		align-items: flex-start;
		gap: 0;
		margin-top: 20px;
	}

	.reason-text-area-wrapper {
		grid-column: 1 / 2;
		z-index: 2;
		text-align: left;
		background-color: rgba(255, 255, 255, 0.9);
		width: 630px;
		box-sizing: border-box;
		padding: 20px;
		margin-top: 60px;
	}

	.section-title {
		margin-bottom: 20px;
		padding-top: 0;
		text-align: center;
	}

	.reason-text-area {
		padding-top: 10px;
		text-align: left;
	}

	.reason-text-area .section-description {
		text-align: left;
		margin: 0;
	}



	.reason-text-area .btn-area {
		text-align: left;
	}

	.reason-image-area {
		grid-column: 2 / 3;
		height: auto;
		z-index: 1;
	}

	.reason-image-area img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* -------------------------------------- */
	/* 強みセクション (strength-section) の左右分割設定 */
	/* -------------------------------------- */

	.strength-page .strength-section .inner-wrap {
		/* inner-wrapをFlexboxで左右に並べる */
		display: flex;
		flex-direction: row;
		align-items: center;
		/* 垂直方向中央寄せ */
		gap: 60px;
		/* テキストと画像の間隔 */
		padding: 70px 0;
		max-width: 90%;
		width: 1080px;
		margin: 0 auto;
	}

	/* 画像とテキストの幅を均等に分割 */
	.strength-page .strength-section .text-content,
	.strength-page .strength-section .image-content {
		width: 50%;
		flex-shrink: 1;
		flex-grow: 0;
		margin-bottom: 0;
	}


	/* 🚨 右画像セクション (right-image) の並び順を逆転 */
	.strength-page .right-image .inner-wrap {
		/* テキストが左、画像が右になるように並び順を逆にする */
		flex-direction: row-reverse;
	}

	/* -------------------------------------- */
	/* テキストとボタンの配置調整 (PCでは左寄せ) */
	/* -------------------------------------- */

	/* タイトルと説明文の寄せを左寄せに上書き */
	.strength-page .strength-section .section-title {
		text-align: left;
	}

	.strength-page .strength-section .section-description {
		margin-left: 0;
		margin-right: 0;
		width: 100%;
	}

	/* 🚨 ボタンエリアを左寄せに */
	.strength-page .strength-section .btn-area {
		text-align: left;
	}


	/* -------------------------------------- */
	/* 🚨 1. 歴史と実績セクション (画像上、テキスト下) の個別調整 */
	/* -------------------------------------- */

	.strength-page .strength-top-image .inner-wrap {
		/* 他のセクション (flex-direction: row) の設定を上書きし、縦積みに戻す */
		flex-direction: column;

		/* テキストと画像が縦積みになり、間隔を調整 */
		gap: 40px;

		/* 中央寄せを解除し、コンテンツを左寄せにする */
		align-items: flex-start;
	}

	/* テキストと画像は親の幅いっぱいに広げる */
	.strength-page .strength-top-image .text-content,
	.strength-page .strength-top-image .image-content {
		width: 100%;
	}

	.strength-maintenance-images {
		display: flex;
		gap: 15px;
		justify-content: center;
		align-items: flex-start;
		width: 100%;
		flex-direction: unset;
	}

	.strength-page .strength-centered-content .section-title {
		text-align: center;
	}

	/* 会社概要テーブルのPC幅調整 */
	.company-page .company-table th {
		width: 25%;
		/* 項目名の幅を狭める */
	}

	#company-greeting .section-title {
		text-align: left;
	}

	/* 沿革のPCレイアウト */
	.company-page .history-list li {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		padding: 15px 0;
	}

	.company-page .history-list .history-year {
		width: 120px;
		/* 年の幅を固定 */
		flex-shrink: 0;
		margin-right: 40px;
	}

	.company-page .history-list .history-event {
		flex-grow: 1;
	}


	/* 企業理念やアクセス情報などの記述部分の調整 */
	.company-page .section-description {
		max-width: 900px;
		margin-left: auto;
		margin-right: auto;
	}

	/* アクセスマップエリアの調整 */
	.company-page .access-map-area {
		margin-top: 30px;
		/* 地図の埋め込みが親要素の幅いっぱいに広がるように調整 */
	}

	.company-page .access-map-area iframe {
		width: 100%;
		height: 400px;
		/* 地図の高さ */
		display: block;
	}

	.company-page .company-name-list {
		/* CSS Gridで段組を定義 */
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		/* 2列で均等分割 */
		gap: 0 30px;
		/* 縦横の隙間 */
	}



}

/* モバイル（デフォルト）設定 */
.common-keyvisual-header {
	min-height: 260px;
	/* background-image は element.style にSP画像が設定済み */
	background-size: cover;
	background-position: center;
	padding: 60px 20px 20px;
	display: flex;
	justify-content: center;
	align-items: center;
}

/* 🚨 PC時 (768px以上) のCSS（高さのみ） */
@media (min-width: 768px) {
	header.common-keyvisual-header {
		height: 400px;
		/* PCでの高さ */

		/* 🚨 background-image の設定はJavaScriptが行うため削除またはコメントアウト */
		/* background-image: var(--pc-bg-url); */
	}
}

/* --- SP 固定 CTA --- */
.fixed-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10050;
	display: flex;
	gap: 12px;
	padding: 12px;
	background: #ffffff5d;
	box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.12);
	justify-content: center;
	align-items: center;

	/* 初期は非表示（下へ隠す）*/
	transform: translateY(100%);
	opacity: 0;
	pointer-events: none;
	transition: transform 320ms cubic-bezier(.2, .8, .2, 1), opacity 200ms;
}

/* 表示時 */
.fixed-cta.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}

/* ボタン */
.fixed-cta .cta-btn {
	flex: 1;
	min-width: 120px;
	max-width: 48%;
	padding: 12px 16px;
	border-radius: 10px;
	text-align: center;
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	box-sizing: border-box;
}

/* 電話 */
.fixed-cta .cta-btn.tel {
	background-color: #007bff;
	color: #fff;
	border: 2px solid #007bff;
}

/* 問合せ（フォーム） */
.fixed-cta .cta-btn.form {
	background-color: #fff;
	color: #007bff;
	border: 2px solid #007bff;
}

/* 固定CTAがあるときコンテンツが被らない余白付与（表示時にのみ有効） */
.has-fixed-cta .site-main,
.has-fixed-cta .inner-content {
	padding-bottom: 92px;
}

/* PC では非表示 */
@media (min-width: 768px) {
	.fixed-cta {
		display: none;
	}

	.has-fixed-cta .site-main,
	.has-fixed-cta .inner-content {
		padding-bottom: 0;
	}
}

/* goods-list：アンカーを最前面で全領域受ける */
.goods-list-item {
	position: relative;
	/* 基準 */
	min-height: 330px;
}

/* a を確実に全領域覆う（最前面）*/
.goods-list-item>a {
	position: absolute;
	inset: 0;
	/* top:0; right:0; bottom:0; left:0; */
	display: block;
	z-index: 9999;
	/* 子要素より前面に */
	cursor: pointer !important;
	pointer-events: auto !important;
}

/* 子要素は pointer-events を透過させる */
.goods-list-item .goods-item-image,
.goods-list-item .goods-item-text,
.goods-list-item a * {
	pointer-events: none !important;
}

/* 例外：実際に操作する要素がある場合は .js-interactive を付与して復活 */
.goods-list-item .js-interactive,
.goods-list-item input,
.goods-list-item button {
	pointer-events: auto !important;
	cursor: auto !important;
	z-index: 10000;
}

/* goods spacer を使って高さを確保 */
.goods-list-item {
	position: relative;
}

/* spacer は視覚に影響を与えず高さだけ確保 */
.goods-item-spacer {
	display: block;
	height: 330px;
	/* 必要な高さに調整 */
	width: 100%;
	pointer-events: none;
	/* クリックを邪魔しない */
}

/* 確認画面（全項目送信専用フォーム）の同意エリアを非表示にする */
.contact-confirm-page .agreement-area,
.contact-confirm-page .wpcf7-acceptance {
	display: none !important;
}

/* --- 特定ページで固定CTAを非表示にするルール --- */

/* bodyに 'no-sp-cta-page' クラスが存在する場合、.fixed-cta を非表示にする */
@media screen and (max-width: 767px) {

	/* 固定CTAが有効なモバイル範囲 */
	body.no-sp-cta-page .fixed-cta {
		/*
         * 固定CTAの非表示を強制。
         * transform: translateY(100%) が非表示時のスタイルなので、
         * is-visible クラスが付与されても非表示を維持するように設定します。
         */
		transform: translateY(100%) !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}
}