@charset "UTF-8";

/* ==========================================================
   プラビット 新環境用スタイル
   ヘッダー / グローバルナビ / キービジュアル
   画像はルート相対パスで指定（ドメイン切替後もそのまま使えます）
   ========================================================== */

/* ---------- ヘッダー ---------- */
.plabbit-header {
	background-color: #2d1700 !important;
	padding: 15px 0 !important;
}

.plabbit-header > .wp-block-group {
	max-width: 1080px;
	margin-left: auto;
	margin-right: auto;
}

.plabbit-header .wp-block-image {
	margin: 0;
}

/* 営業時間・定休日 */
.plabbit-hours {
	color: #fff !important;
	font-size: 12px !important;
	line-height: 1.6 !important;
	text-align: right !important;
	margin: 0 !important;
}

/* 検索フォーム */
.plabbit-search {
	margin-top: 8px;
}

.plabbit-search .wp-block-search__input {
	line-height: 1.6em;
	border-radius: 4px;
	border: 1px solid #ccc;
	padding: 4px 8px;
}

.plabbit-search .wp-block-search__button {
	padding: 3px 27px !important;
	color: #fff !important;
	background-color: #674417 !important;
	border-radius: 5px !important;
	line-height: 1.6 !important;
	border: 0 !important;
	box-shadow: 2px 2px 2px #000;
}

/* ---------- グローバルナビ ---------- */
.plabbit-nav {
	background: url(/wp-content/uploads/2026/09/navigation_wrap.png) repeat-x !important;
	background-size: contain !important;
}

.plabbit-nav .wp-block-navigation {
	max-width: 1080px;
	margin-left: auto;
	margin-right: auto;
}

.plabbit-nav .wp-block-navigation__container {
	flex-wrap: nowrap !important;
	justify-content: space-between;
	width: 100%;
}

.plabbit-nav .wp-block-navigation-item__content {
	color: #fff !important;
	font-weight: bold;
	font-size: 15px;
	padding: 12px 8px;
	white-space: nowrap !important;
}

.plabbit-nav .wp-block-navigation-item__content:hover {
	opacity: 0.7;
}

/* ドロップダウン */
.plabbit-nav .wp-block-navigation__submenu-container {
	background-color: #674417 !important;
	border: 0 !important;
}

.plabbit-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	white-space: normal !important;
	padding: 8px 12px;
}

/* ---------- キービジュアル ---------- */
.plabbit-keyvisual {
	background: url(/wp-content/uploads/2026/09/keyvisual_wrap2.jpg) no-repeat top center !important;
	background-size: cover !important;
	height: 150px;
}

/* ---------- スマホ ---------- */
@media screen and (max-width: 782px) {

	.plabbit-header > .wp-block-group {
		flex-wrap: wrap !important;
		justify-content: center !important;
	}

	.plabbit-hours {
		text-align: center !important;
	}

	.plabbit-nav .wp-block-navigation__container {
		flex-wrap: wrap !important;
		justify-content: center;
	}

	.plabbit-keyvisual {
		height: 90px;
	}
}

/* ---------- フッター ---------- */
.plabbit-footer {
	background-color: #261600 !important;
	color: #fff !important;
	padding: 40px 20px !important;
}

.plabbit-footer p {
	color: #fff !important;
	margin: 0 0 12px 0 !important;
	line-height: 1.6;
}

.plabbit-footer .pf-title {
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 20px !important;
}

.plabbit-footer .pf-hours {
	font-size: 18px;
	font-weight: bold;
}

.plabbit-footer .pf-note {
	font-size: 13px;
	margin-bottom: 20px !important;
}

.plabbit-footer .pf-address {
	font-size: 20px;
}

.plabbit-footer .pf-access {
	font-size: 13px;
	margin-bottom: 24px !important;
}

.plabbit-footer .pf-kobutsu {
	font-size: 13px;
	line-height: 1.8;
}

.plabbit-map iframe {
	display: block;
	width: 100%;
	border: 0;
}

/* PAGE TOP */
.plabbit-pagetop {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 999;
	display: inline-block;
	padding: 14px 18px;
	background-color: rgba(103, 68, 23, 0.85);
	color: #fff !important;
	font-size: 13px;
	text-decoration: none;
	border-radius: 4px;
}

.plabbit-pagetop:hover {
	opacity: 0.8;
}

@media screen and (max-width: 782px) {
	.plabbit-footer .pf-hours { font-size: 15px; }
	.plabbit-footer .pf-address { font-size: 16px; }
	.plabbit-map iframe { height: 300px; }
}


/* ---------- お問い合わせフォーム（40989） ---------- */
.custom-form-card {
  max-width: 580px !important;
  margin: 0 auto !important;
  padding: 35px 40px !important;
  background-color: #ffffff !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05) !important;
  text-align: left !important;
  box-sizing: border-box !important;
}

.custom-form-card .form-title {
  font-size: 22px !important;
  font-weight: bold !important;
  color: #222222 !important;
  margin: 0 0 10px 0 !important;
  text-align: left !important;
  line-height: 1.3 !important;
}

.custom-form-card .form-subtext {
  font-size: 13px !important;
  color: #666666 !important;
  margin: 0 0 4px 0 !important;
  text-align: left !important;
}

.custom-form-card .form-link-p {
  margin: 0 0 25px 0 !important;
  text-align: left !important;
}

.custom-form-card .form-link {
  color: #0b737d !important;
  font-size: 14px !important;
  text-decoration: underline !important;
}

.custom-form-card .form-group {
  margin-bottom: 20px !important;
  text-align: left !important;
}

.custom-form-card .form-label {
  display: block !important;
  font-weight: bold !important;
  font-size: 14px !important;
  color: #222222 !important;
  margin-bottom: 8px !important;
  text-align: left !important;
}

.custom-form-card input[type="text"],
.custom-form-card input[type="email"] {
  width: 100% !important;
  height: 42px !important;
  padding: 8px 12px !important;
  border: 1px solid #dcdcdc !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
  background-color: #fff !important;
  margin: 0 !important;
}

.custom-form-card textarea {
  width: 100% !important;
  height: 120px !important;
  padding: 10px 12px !important;
  border: 1px solid #dcdcdc !important;
  border-radius: 4px !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
  background-color: #fff !important;
  margin: 0 !important;
}

.custom-form-card .form-submit-wrap {
  text-align: center !important;
  margin-top: 30px !important;
}

.custom-form-card .custom-submit-btn input[type="submit"] {
  background-color: #0b737d !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 10px 45px !important;
  font-size: 15px !important;
  font-weight: bold !important;
  cursor: pointer !important;
  display: inline-block !important;
}

.custom-form-card .custom-submit-btn input[type="submit"]:hover {
  background-color: #08555d !important;
}
/* ---------- フッター中央揃え（上書き） ---------- */
.plabbit-footer,
.plabbit-footer p,
.plabbit-footer .has-text-align-center {
	text-align: center !important;
}

/* フッターのコンテナを中央に */
.plabbit-footer.is-layout-constrained > * {
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 100% !important;
}

.plabbit-footer {
	width: 100% !important;
}



/* ---------- 製作代行ギャラリー 一覧 ---------- */
.pl-gallery-wrap {
	display: flex;
	gap: 30px;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 15px 60px;
	align-items: flex-start;
	box-sizing: border-box;
}

.pl-gallery-main {
	flex: 1 1 auto;
	min-width: 0;
}

.pl-gallery-side {
	flex: 0 0 260px;
}

.pl-gallery-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pl-gallery-item {
	display: flex;
	gap: 18px;
	padding: 20px 0;
        border-bottom: 1px dotted #ccc;
	align-items: flex-start;
}

.pl-gallery-thumb {
	flex: 0 0 150px;
}

.pl-gallery-thumb img {
	width: 150px;
	height: 150px;
	object-fit: cover;
	display: block;
	border: 1px solid #ddd;
}

.pl-gallery-body {
	flex: 1 1 auto;
	min-width: 0;
}

.pl-gallery-title {
	font-size: 15px;
	line-height: 1.5;
	margin: 0 0 8px;
	font-weight: bold;
}

.pl-gallery-title a {
	color: #674417;
	text-decoration: none;
}

.pl-gallery-title a:hover {
	text-decoration: underline;
}

.pl-gallery-excerpt {
	font-size: 13px;
	line-height: 1.7;
	margin: 0 0 8px;
	color: #444;
}

.pl-gallery-more {
	margin: 0;
	font-size: 13px;
}

.pl-gallery-more a {
	color: #0b737d;
	text-decoration: none;
}

/* ページ送り */
.pl-pagination {
	margin: 30px 0;
	text-align: center;
	font-size: 14px;
}

.pl-pagination .page-numbers {
	display: inline-block;
	padding: 6px 12px;
	margin: 0 3px;
	border: 1px solid #ccc;
	text-decoration: none;
	color: #674417;
	background: #fff;
}

.pl-pagination .page-numbers.current {
	background: #674417;
	color: #fff;
	border-color: #674417;
}

/* サイドバー */
.pl-side-box {
	margin-bottom: 30px;
}

.pl-side-box h3 {
	background: #674417;
	color: #fff;
	font-size: 14px;
	padding: 8px 12px;
	margin: 0 0 12px;
}

@media screen and (max-width: 782px) {
	.pl-gallery-wrap { flex-direction: column; }
	.pl-gallery-side { flex: 1 1 auto; width: 100%; }
	.pl-gallery-thumb { flex: 0 0 100px; }
	.pl-gallery-thumb img { width: 100px; height: 100px; }
}


/* ---------- ギャラリー サイドバー ---------- */
.pl-side-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pl-side-item {
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px dotted #ccc;
}

.pl-side-item a {
	display: block;
	text-decoration: none;
	color: #674417;
}

.pl-side-item img {
	width: 100%;
	height: auto;
	display: block;
	margin-bottom: 6px;
	border: 1px solid #ddd;
}

.pl-side-title {
	display: block;
	font-size: 12px;
	line-height: 1.5;
}

.pl-side-item a:hover .pl-side-title {
	text-decoration: underline;
}

.pl-side-more {
	margin: 0;
	text-align: right;
	font-size: 13px;
}

.pl-side-more a {
	color: #0b737d;
	text-decoration: none;
}

.pl-side-box p a {
	color: #0b737d;
	text-decoration: none;
	font-size: 13px;
}


/* ---------- ギャラリー 個別記事 ---------- */
.pl-single-wrap {
	max-width: 1080px;
	margin: 0 auto;
	padding: 30px 15px 60px;
	box-sizing: border-box;
}

.pl-single-columns {
	gap: 30px;
}

.pl-single-title {
	font-size: 20px;
	line-height: 1.5;
	font-weight: bold;
	margin: 0 0 24px;
	color: #674417;
}

.pl-single-main img {
	max-width: 100%;
	height: auto;
}

.pl-single-date {
	margin-top: 30px;
	font-size: 13px;
	color: #666;
}

@media screen and (max-width: 782px) {
	.pl-single-columns {
		flex-direction: column;
	}
	.pl-single-main,
	.pl-single-side {
		flex-basis: 100% !important;
	}
}


/* ---------- お客様の声 ---------- */
.pl-voice-item {
	margin-bottom: 50px;
	padding-bottom: 40px;
	border-bottom: 1px dotted #ccc;
}

.pl-voice-item:last-child {
	border-bottom: 0;
}

.pl-voice-title {
	font-size: 18px;
	line-height: 1.5;
	font-weight: bold;
	color: #674417;
	margin: 0 0 20px;
	padding-bottom: 10px;
	border-bottom: 2px solid #674417;
}

.pl-voice-body {
	font-size: 14px;
	line-height: 1.9;
}

.pl-voice-body img {
	max-width: 100%;
	height: auto;
}

.pl-voice-body p {
	margin: 0 0 14px;
}


/* ---------- よくある質問 ---------- */
.pl-qa-item {
	margin-bottom: 40px;
	padding-bottom: 30px;
	border-bottom: 1px dotted #ccc;
}

.pl-qa-item:last-child {
	border-bottom: 0;
}

.pl-qa-question {
	font-size: 17px;
	line-height: 1.6;
	font-weight: bold;
	color: #674417;
	margin: 0 0 16px;
	padding: 10px 12px 10px 42px;
	background: #f7f1e6;
	position: relative;
}

.pl-qa-question::before {
	content: "Q";
	position: absolute;
	left: 12px;
	top: 10px;
	font-size: 20px;
	font-weight: bold;
	color: #c0392b;
	line-height: 1.4;
}

.pl-qa-answer {
	font-size: 14px;
	line-height: 1.9;
	padding-left: 12px;
}

.pl-qa-answer img {
	max-width: 100%;
	height: auto;
}

.pl-qa-answer p {
	margin: 0 0 14px;
}


/* ---------- アクセス ---------- */
.pl-access-wrap {
	max-width: 900px;
	margin: 0 auto;
	padding: 30px 15px 60px;
	box-sizing: border-box;
}

.pl-access-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.8;
}

.pl-access-table th,
.pl-access-table td {
	border: 1px solid #ddd;
	padding: 14px 16px;
	vertical-align: middle;
	text-align: left;
}

.pl-access-table th {
	width: 220px;
	min-width: 220px;
	background: #f7f1e6;
	font-weight: bold;
	color: #674417;
	white-space: normal;
	word-break: keep-all;
}

.pl-access-table td {
	background: #fff;
}

.pl-access-table img {
	max-width: 100%;
	height: auto;
	display: block;
}

.pl-access-table iframe {
	display: block;
	margin-top: 12px;
	max-width: 100%;
}

@media screen and (max-width: 782px) {
	.pl-access-table,
	.pl-access-table tbody,
	.pl-access-table tr,
	.pl-access-table th,
	.pl-access-table td {
		display: block;
		width: 100% !important;
		min-width: 0 !important;
	}
	.pl-access-table th {
		border-bottom: 0;
	}
}

/* ---------- トップページ：本文枠の幅制限を解除 ---------- */
/* Twenty Twenty-Five は本文の直下要素を最大645pxに絞るため、
   旧CSSの .pagewidth（1080px固定）が右へはみ出し、
   .block の背景画像も645pxで切れていた。トップだけ制限を外す。 */
body.home .wp-block-post-content {
	max-width: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.home .wp-block-post-content > * {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ---------- トップページ：よくある質問（旧サイトの見た目に合わせる） ---------- */
body.home .pl-qa-list {
	max-width: 700px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0 10px;
	box-sizing: border-box;
}

body.home .pl-qa-item {
	margin-bottom: 20px;
	padding: 20px 8px 10px;
	border: 1px dashed #ddd;
	border-bottom: 1px dashed #ddd;
}

body.home .pl-qa-item:last-child {
	border-bottom: 1px dashed #ddd;
}

body.home .pl-qa-question {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 16px;
	padding: 0;
	background: none;
	color: #333;
	font-size: 14px;
	text-align: left;
}

body.home .pl-qa-question::before {
	position: static;
	flex: 0 0 auto;
	font-family: Arial, sans-serif;
	font-size: 30px;
	line-height: 1;
	color: #1e4d0f;
}

body.home .pl-qa-answer {
	position: relative;
	padding: 10px;
	background: #fff;
	font-size: 14px;
	font-weight: bold;
	line-height: 1.6;
	text-align: left;
}

body.home .pl-qa-answer::before {
	content: "";
	position: absolute;
	left: 30px;
	bottom: 100%;
	border: 14px solid transparent;
	border-bottom-color: #fff;
}

body.home .pl-qa-answer p {
	margin: 0;
	text-align: left;
}

/* ---------- 検索結果の件数表示 ---------- */
.pl-search-head {
	margin: 0 0 10px;
	padding: 10px 12px;
	background: #f7f1e6;
	color: #674417;
	font-size: 15px;
	font-weight: bold;
	text-align: left;
}


/* ---------- トップページ：キャッチコピー入りのキービジュアル（旧サイトと同じ画像） ---------- */
/* 画像は public_html/images/bg/keyvisual_wrap.jpg（1340×732） */
body.home .plabbit-keyvisual {
	background: #1a1a1a url(/images/bg/keyvisual_wrap.jpg) repeat-x center bottom !important;
	background-size: auto !important;
	height: 540px !important;
}


/* ==========================================================
   スマホ用ヘッダー（旧サイトのスマホ表示に合わせる）
   上から「Menu」バー → 検索 → ロゴ → キービジュアル
   ========================================================== */
@media screen and (max-width: 782px) {

	/* 並び順：メニューを一番上へ */
	*:has(> .plabbit-header):has(> .plabbit-nav) {
		display: flex !important;
		flex-direction: column;
	}
	.plabbit-header,
	.plabbit-nav,
	.plabbit-keyvisual {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		width: 100%;
	}
	.plabbit-nav {
		order: -1;
	}

	/* ヘッダー：お問い合わせボタンと営業時間は非表示 */
	.plabbit-header {
		padding: 0 0 12px !important;
	}
	.plabbit-header .wp-block-image:has(a[href="/inquiry/"]),
	.plabbit-hours {
		display: none !important;
	}
	.plabbit-header > .wp-block-group {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 12px !important;
		max-width: none;
	}

	/* 検索：明るい帯の中に置き、ロゴより上へ */
	.plabbit-header .wp-block-group:has(> .plabbit-search) {
		order: -1;
		margin: 0 !important;
		padding: 10px 16px !important;
		background: #fffee9;
	}
	.plabbit-search {
		max-width: 360px;
		margin: 0 auto !important;
	}
	.plabbit-search .wp-block-search__inside-wrapper {
		display: flex;
		gap: 10px;
	}
	.plabbit-search .wp-block-search__input {
		flex: 1 1 auto;
		min-width: 0;
		font-size: 16px;
	}

	/* ロゴ：横幅いっぱい */
	.plabbit-header .wp-block-image:not(:has(a[href="/inquiry/"])) {
		padding: 0 12px;
		text-align: center;
	}
	.plabbit-header .wp-block-image:not(:has(a[href="/inquiry/"])) img {
		width: 100%;
		max-width: 420px;
		height: auto;
	}

	/* メニュー：茶色の「Menu ≡」バー */
	.plabbit-nav {
		background: #674417 !important;
		padding: 0 !important;
	}
	.plabbit-nav .wp-block-navigation {
		width: 100%;
		max-width: none;
	}
	.plabbit-nav .wp-block-navigation__responsive-container-open {
		display: flex !important;
		width: 100%;
		justify-content: center;
		align-items: center;
		gap: 8px;
		padding: 12px 0;
		color: #fff !important;
		font-size: 18px;
		background: none;
	}
	.plabbit-nav .wp-block-navigation__responsive-container-open::before {
		content: "Menu";
	}
	.plabbit-nav .wp-block-navigation__responsive-container-open svg {
		fill: currentColor;
	}

	/* メニューを開いたとき：全画面ではなく、バーの下にアコーディオンで広げる */
	.plabbit-nav .wp-block-navigation {
		flex-wrap: wrap !important;
	}
	.plabbit-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: static !important;
		inset: auto !important;
		width: 100% !important;
		height: auto !important;
		padding: 0 !important;
		overflow: hidden;
		background-color: #674417 !important;
		color: #fff !important;
		z-index: auto !important;
		animation: plabbitMenuOpen 0.35s ease-out;
	}
	.plabbit-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.plabbit-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	.plabbit-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding: 0 !important;
		margin: 0 !important;
		align-items: stretch !important;
	}
	.plabbit-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		gap: 0 !important;
		width: 100%;
	}
	.plabbit-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		width: 100%;
		border-top: 1px dashed rgba(255, 255, 255, 0.35);
	}
	.plabbit-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		padding: 14px 16px !important;
		font-size: 16px;
		text-align: center;
	}
	/* 閉じるボタン（×）は使わない。Menuバーをもう一度押すと閉じる */
	.plabbit-nav .wp-block-navigation__responsive-container-close {
		display: none !important;
	}
	/* メニューを開いてもページをスクロールできるようにする */
	html.has-modal-open {
		overflow: visible !important;
	}

	/* トップのキービジュアル：画像全体が見えるように */
	/* スマホ専用の縦長画像（public_html/images/sp_top.jpg 650×800） */
	body.home .plabbit-keyvisual {
		height: auto !important;
		aspect-ratio: 650 / 800;
		background-image: url(/images/sp_top.jpg) !important;
		background-size: cover !important;
		background-position: center top !important;
		background-repeat: no-repeat !important;
	}
}


/* ==========================================================
   スマホ用：トップページ本文（固定幅を解除して縦並びにする）
   ========================================================== */
@media screen and (max-width: 782px) {

	/* 横スクロール防止 */
	html,
	body {
		overflow-x: hidden;
	}

	/* 旧CSSの固定幅（1080px / 800px / 650px など）を画面幅に合わせる */
	body.home .pagewidth,
	body.home .pagewidth80,
	body.home .block > div.f_flex,
	body.home .block > div.design_title02,
	body.home .w650,
	body.home .w750,
	body.home .w850,
	body.home dl.qa,
	body.home dl.evaluation,
	body.home .youtube_movie {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	/* 画像は画面からはみ出さない */
	body.home main img {
		max-width: 100% !important;
		height: auto !important;
	}

	/* 画像の横並び（メディア掲載など）を縦並びに */
	body.home .col {
		display: block !important;
	}
	body.home .col > li,
	body.home .col > div {
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		text-align: center;
	}
	body.home .col > li img {
		width: auto !important;
		max-height: 300px;
	}

	/* 横並びのボックス（お悩みチェック・お客様の声など）を縦並びに */
	body.home .f_flex {
		flex-direction: column !important;
		align-items: center !important;
	}
	body.home .f_flex > div,
	body.home .f_flex > li {
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* 文字が画面端に付かないように余白 */
	body.home .pagewidth,
	body.home .block > div.f_flex {
		padding-left: 12px;
		padding-right: 12px;
	}

	/* iPhoneで固定背景が崩れるのを防ぐ */
	body.home .parallax,
	#head .type1 #keyvisual_wrap {
		background-attachment: scroll !important;
	}
}


/* ---------- スマホ用：お客様の声（画像を中央に置き、文章は画像の下へ） ---------- */
@media screen and (max-width: 782px) {
	body.home #voc img.alignleft,
	body.home #voc img.alignright {
		float: none !important;
		display: block !important;
		margin: 0 auto 20px !important;
	}
	body.home #voc .f_safari {
		width: 100%;
		box-sizing: border-box;
	}
	body.home #voc .f_safari p {
		clear: both;
	}
}

@keyframes plabbitMenuOpen {
	from { max-height: 0; opacity: 0; }
	to   { max-height: 600px; opacity: 1; }
}

/* ---------- お客様の声・よくある質問：本文の上に余白（旧サイトの #main の上余白 60px に合わせる） ---------- */
.pl-voice-list,
body:not(.home) .pl-qa-list {
	padding-top: 60px;
}

/* ---------- スマホ用：よくある質問ページ（文字欄を旧サイトくらいの幅に広げる） ---------- */
@media screen and (max-width: 782px) {
	/* ページ左右の余白を 16px に（テーマ既定の広い余白を縮める） */
	body:not(.home):has(.pl-qa-list) main .has-global-padding,
	body:not(.home):has(.pl-qa-list) .wp-block-post-content {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
	body:not(.home) .pl-qa-list,
	body:not(.home) .pl-qa-list .pl-qa-item,
	body:not(.home) .pl-qa-list .pl-qa-answer,
	body:not(.home) .pl-qa-list .pl-qa-answer * {
		max-width: none !important;
	}
	body:not(.home) .pl-qa-question {
		padding: 10px 10px 10px 38px;
		text-align: left;
	}
	body:not(.home) .pl-qa-answer {
		padding-left: 4px;
		padding-right: 4px;
	}
	body:not(.home) .pl-qa-answer p {
		width: auto !important;
		margin-right: 0 !important;
		padding-right: 0 !important;
	}
}

/* ---------- スマホ用：特定商取引法表示（項目名を上、内容を下に並べる） ---------- */
@media screen and (max-width: 782px) {
	body:not(.home):has(table.t_design) main .has-global-padding,
	body:not(.home):has(table.t_design) .wp-block-post-content {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
	table.t_design,
	table.t_design tbody,
	table.t_design tr {
		display: block;
		width: 100% !important;
	}
	table.t_design tr {
		margin-bottom: 8px;
	}
	table.t_design th {
		display: block;
		width: 100% !important;
		border-right: 0 !important;
		box-sizing: border-box;
	}
	/* 幅指定のある項目（売主）は旧サイト同様に短い帯 */
	table.t_design th[width] {
		width: 40% !important;
		min-width: 120px;
	}
	table.t_design td {
		display: block;
		width: 100% !important;
		box-sizing: border-box;
	}
}

/* ==========================================================
   スマホ用：全ページ共通（横スクロールを止める）
   ========================================================== */
@media screen and (max-width: 782px) {

	/* 画面より右にはみ出した部分を切り取り、横に動かないようにする */
	html,
	body {
		overflow-x: hidden !important;
		overflow-x: clip !important;
		max-width: 100%;
	}
	.wp-site-blocks {
		overflow-x: hidden;
		overflow-x: clip;
	}

	/* 旧CSSに残るPC用の固定幅を画面幅に合わせる（全ページ） */
	.pagewidth,
	.pagewidth80,
	.w650,
	.w750,
	.w850,
	.menulist,
	.hutowaku,
	#formWrap,
	table.s_menu,
	dl.qa,
	dl.evaluation,
	.youtube_movie,
	.googlemap_footer {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	/* 画像・動画・地図・表・入力欄が画面からはみ出さないように */
	main img,
	main video,
	main iframe,
	main embed,
	main object {
		max-width: 100% !important;
	}
	main img {
		height: auto !important;
	}
	main table {
		max-width: 100% !important;
	}
	main input,
	main select,
	main textarea {
		max-width: 100% !important;
		box-sizing: border-box;
	}

	/* 長い英数字（URL・メールアドレスなど）を途中で折り返す */
	main {
		overflow-wrap: anywhere;
	}
}

/* ---------- スマホ用：入力欄をタップしても画面が拡大されないようにする ---------- */
/* iPhone は文字サイズ16px未満の入力欄をタップすると自動で拡大するため、16pxにそろえる */
@media screen and (max-width: 782px) {
	html body input[type="text"],
	html body input[type="email"],
	html body input[type="tel"],
	html body input[type="number"],
	html body input[type="search"],
	html body input[type="url"],
	html body input[type="password"],
	html body input[type="date"],
	html body input:not([type]),
	html body select,
	html body textarea,
	html body .custom-form-card input[type="text"],
	html body .custom-form-card input[type="email"],
	html body .custom-form-card textarea {
		font-size: 16px !important;
	}
}
