/*!
Theme Name: souten
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: souten
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

souten is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
:root {
  --color-primary: #0d6efd;        /* メインブルー */
  --color-primary-dark: #084298;   /* 濃いネイビー */
  --color-primary-light: #5aa9ff;  /* 明るい水色 */

  --color-accent: #72c52a;         /* 清潔感シアン */
  --color-accent-light: #28ed35;

  --color-white: #ffffff;
  --color-offwhite: #f7fbff;       /* ほんのり青白 */
  --color-bg: #eef6fb;

  --color-gold: #eefa3e;         /* 金 */
  --color-gold-light: #fcff86;


  --color-brown:#714a0d;
  --color-brown-dark:#372404;

  --color-text: #1f2937;
  --color-text-light: #6b7280;

  --color-border: #d6e4f0;

  --shadow: 0 4px 20px rgba(13,110,253,0.08);
  --shadow-hover: 0 10px 30px rgba(13,110,253,0.15);

  --radius: 10px;
  --transition: 0.3s ease;
}


/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}


h2 {
        font-size: 36px;
	}
h3{
	font-size: 26px;
	padding: 0.2rem 0.1rem;
    border-top: 3px solid var(--color-accent);
    border-bottom: 3px solid var(--color-accent);
}


p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: #fff;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

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

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
a {
	color: #4169e1;
}

a:visited {
	color: #800080;
}

a:hover,
a:focus,
a:active {
	color: #191970;
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/







/* Navigation
--------------------------------------------- */
.main-navigation {
	display: flex;
	justify-content: flex-end;
	width: 100%;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
}

/* ==========================================
   前後ページナビゲーション（post-navigation）
   ========================================== */
.post-navigation {
  max-width: 760px;
  margin: 40px auto;
  padding: 0 10px;
}

/* 読者には不要な見出しを非表示に */
.post-navigation .screen-reader-text {
  display: none;
}

/* 前後のリンクを横並びにする（Flexbox） */
.post-navigation .nav-links {
  display: flex;
  justify-content: space-between;
  gap: 20px;

}

/* 前へ・次への各コンテナ */
.post-navigation .nav-previous,
.post-navigation .nav-next {
  flex: 1; /* 幅を均等にする */
  min-width: 0; /* テキストの溢れ防止 */
}

/* 右寄せの調整 */
.post-navigation .nav-next {
  text-align: right;
}

/* リンクボタン全体のデザイン */
.post-navigation .nav-links a {
  display: block;
  padding: 15px 20px;
  background-color: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.2s ease;
  height: 100%;
  box-sizing: border-box;
  text-align: center;
}

/* マウスホバー時のエフェクト（少し浮き上がらせて色を変える） */
.post-navigation .nav-links a:hover {
  border-color: #3b82f6;
  background-color: #f8fafc;
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(59, 130, 246, 0.1);
}

/* 「Previous:」「Next:」の英語字幕部分 */
.post-navigation .nav-subtitle {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94a3b8; /* 薄いグレー */
  margin-bottom: 4px;
}

/* 企業名（タイトル）の部分 */
.post-navigation .nav-title {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
  /* 文字が長すぎる場合は「…」で省略する設定 */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 矢印（アロー）アイコンの疑似要素を追加 */
.post-navigation .nav-previous a .nav-title::before {
  content: "← ";
  color: #3b82f6;
  font-weight: bold;
}
.post-navigation .nav-next a .nav-title::after {
  content: " →";
  color: #3b82f6;
  font-weight: bold;
}

/* ==========================================
   レスポンシブ対応（スマホ表示）
   ========================================== */
@media (max-width: 600px) {
  /* スマホでは横並びだと窮屈なので、縦並びに切り替え */
  .post-navigation .nav-links {
    flex-direction: column;
    gap: 12px;
  }
  
  .post-navigation .nav-next {
    text-align: left; /* スマホでは左寄せに統一 */
  }

  .post-navigation .nav-links a {
    padding: 12px 16px;
  }
  
  .post-navigation .nav-title {
    font-size: 13px;
  }
}




/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 auto;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary,
.entry-header,
.wpc-filter-area
{
	margin: 1.5em auto 0;
	max-width: 1200px;
	padding: 0 10px;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

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

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}


/* ==========================================================================
   Fixed Layout Table Style (.has-fixed-layout)
   ========================================================================== */

/* テーブル本体の外枠線を強制設定 */
table {
	width: 100% !important;
	table-layout: fixed !important;
	border-collapse: collapse !important;
	border-spacing: 0 !important;
	border: 1px solid #cccccc !important; /* 表の周りの枠線 */
	margin: 1.5em 0 !important;
	background-color: #ffffff;
}

/* 各セル（見出し・データ）の縦線・横線を強制設定 */
table th,
table td {
	border: 1px solid #cccccc !important; /* 内側の区切り線 */
	padding: 12px 15px !important;
	word-wrap: break-word;
	overflow-wrap: break-word;
	vertical-align: middle;
}

/* 表見出し (th) のスタイル */
table th {
	background-color: var(--color-bg, #eef6fb);
	color: var(--color-text, #1f2937);
	font-weight: 700;
	text-align: center;
}

/* データセル (td) のスタイル */
table td {
	color: #404040;
}

/* ストライプ（1行おきに背景色を変更して見やすくする） */
table tbody tr:nth-child(even) {
	background-color: #f9fbfd;
}



/* --- スマホ表示調整 (768px以下) --- */
@media screen and (max-width: 768px) {
	/* スマホで文字がはみ出ないように横スクロール可能にする親枠対応 */
	.wp-block-table {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	table {
		font-size: 0.85rem; /* スマホでは文字サイズを少し縮小 */
	}

	table th,
	table td {
		padding: 10px 10px; /* パディング調整 */
	}
}





/*--------------------------------------------------------------
# Astra Design Reproduction Styles
--------------------------------------------------------------*/
/* ==========================================================================
   Header Design (Astra Reproduction Style)
   ========================================================================== */

/* ヘッダー全体 */
.custom-header-astra {
	background: #ffffff;
	border-bottom: 1px solid #f0f0f0;
	position: sticky;
	top: 0;
	z-index: 1000;
	width: 100%;
}

.custom-header-astra .site-header-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 12px 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-sizing: border-box;
}

/* 左側：ロゴ ＋ SNSアイコン */
.header-left-box {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.header-left-box .site-logo img {
	max-height: 55px;
	width: auto;
	display: block;
}

.header-left-box .header-sns-simple {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.header-left-box .header-sns-simple img {
	width: 20px;
	height: 20px;
	display: block;
}

/* 右側：連絡先 ＋ ナビゲーション */
.header-right-box {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
}

/* 上段：電話番号 & ボタン */
.header-top-contact {
	display: flex;
	align-items: center;
	gap: 8px;
}



.header-top-contact .tel-link {
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--color-primary-dark); /* 画像に合わせた紺色 */
	text-decoration: none;
	letter-spacing: 0.02em;
	line-height: 1;
}

.header-top-contact .tel-large{
	font-size: 1.6em;
}




/* 下段：ナビゲーションメニュー */
.custom-header-astra .main-navigation ul {
	display: flex;
	gap: 25px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.custom-header-astra .main-navigation a {
	color: #333333;
	font-size: 0.95rem;
	font-weight: bold;
	text-decoration: none;
	transition: color 0.2s ease;
}

.custom-header-astra .main-navigation a:hover {
	color: #0066ff;
}

/* スマホ表示対応 (921px以下) */
@media screen and (max-width: 921px) {
	.header-top-contact {
		display: none; /* スマホではヘッダー内の電話・ボタンを隠し、下部固定バーで対応 */
	}

	.header-left-box .header-sns-simple {
		display: none;
	}

	.custom-header-astra .site-header-inner {
		padding: 10px 15px;
	}
}





.site-header {
	background: #ffffff;
	position: sticky;
	top: 0;
	z-index: 1000;
	width: 100%;
	border-bottom: 1px solid #eee;
}

.site-header-inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0.75rem 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
}

/* サイトタイトル・説明文の消去（ロゴ重視の場合）または調整 */
.site-branding {
	display: flex;
	flex-direction: column;
}

.site-title {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.2;
}

.site-title a {
	color: #222;
	text-decoration: none;
}

.site-description {
	margin: 0;
	font-size: 0.75rem;
	color: #666;
}

/* ロゴ画像表示のサイズコントロール */
.site-logo img,
.custom-logo {
	max-height: 90px; /* 必要に応じてロゴの高さを調整してください */
	width: auto;
	display: block;
}


/* PC用メニュー（922px以上） */
@media screen and (min-width: 57.625em) {
	.menu-toggle {
		display: none !important;
	}

	.main-navigation .menu-container > ul {
		display: flex !important;
		align-items: center;
		gap: 1.5rem;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.main-navigation a {
		color: #333;
		font-weight: bold;
		text-decoration: none;
		padding: 0.5rem 0;
	}

	.ast-footer-row-mobile-inline {
		display: none !important;
	}
}

/* スマホ用メニュー & Astra風ハンバーガーボタン（921px以下） */
@media screen and (max-width: 57.5625em) {
	/* 画面右端の余白解消 */
	.site-header-inner {
		padding-right: 1rem !important;
	}

	.main-navigation {
		display: flex;
		justify-content: flex-end;
	}

	.main-navigation ul {
		display: block;
	}

	/* Astraスタイルの青いハンバーガーボタン */
	.menu-toggle {
		display: flex !important;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 44px;
		height: 44px;
		background-color: var(--color-brown-dark) !important; /* Astra青カラー */
		border: none !important;
		border-radius: 4px !important;
		padding: 0 !important;
		margin: 0 !important;
		cursor: pointer;
		z-index: 1002;
		position: relative;
		box-shadow: none;
	}

	/* 3本線（白線） */
	.hamburger-bar {
		display: block;
		width: 20px;
		height: 2px;
		background-color: #ffffff;
		border-radius: 2px;
		margin: 2px 0;
		transition: all 0.3s ease;
	}

	/* メニュー開いたときの×印アニメーション */
	.main-navigation.toggled .hamburger-bar:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}
	.main-navigation.toggled .hamburger-bar:nth-child(2) {
		opacity: 0;
	}
	.main-navigation.toggled .hamburger-bar:nth-child(3) {
		transform: translateY(-6px) rotate(-45deg);
	}

	/* スマホ全画面ドロワーメニュー */
	.main-navigation .menu-container {
		position: fixed;
		top: 90px;
		left: 0;
		width: 100vw;
		height: calc(100vh - 60px);
		background: #ffffff;
		padding: 2rem 1.5rem;
		box-sizing: border-box;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
		overflow-y: auto;
		z-index: 1001;
	}

	.main-navigation.toggled .menu-container {
		opacity: 1;
		visibility: visible;
	}

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

	.main-navigation li {
		border-bottom: 1px solid #f0f0f0;
	}

	.main-navigation a {
		display: block;
		padding: 1rem 0;
		font-size: 1rem;
		font-weight: bold;
		color: #333;
		text-decoration: none;
	}

/* --- Astra Child モバイル固定ボトムバーの完全再現（アイコン調整版） --- */
.ast-footer-row-mobile-inline {
	position: fixed !important;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
	display: block;
}

#menu-footer-mobile {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
}

#menu-footer-mobile li {
	width: 50%;
	margin: 0;
	padding: 0;
}

#menu-footer-mobile li a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px; /* アイコンと文字の間隔 */
	height: 60px;
	line-height: 1;
	color: #fff;
	text-align: center;
	font-weight: bold;
	font-size: 0.9rem;
	text-decoration: none;
}

/* SVGアイコンのスタイル設定 */
.footer-icon {
	display: inline-block;
	vertical-align: middle;
	flex-shrink: 0;
}

/* カラー設定[cite: 4] */
#menu-item-99 a {
	background-color: var(--color-brown) !important; /* 電話：茶色 */
}

#menu-item-98 a {
	background-color: var(--color-primary-dark) !important; /* お問い合わせ：青色 */
}



/* ロゴ画像表示のサイズコントロール */
.site-logo img,
.custom-logo {
	max-height: 90px; /* 必要に応じてロゴの高さを調整してください */
	width: auto;
	display: block;
}

}































/*パンくず*/
.ast-header-breadcrumb{
    font-size: 16px;
    margin: 0.5em 0 0 0;
}
.ast-breadcrumbs-wrapper{
    padding: 0.1em 0;
}



/*検索バー*/
.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper{
    outline-style: none;
}






/*トップへのアイコンの位置*/
.ast-scroll-to-top-right{
    bottom: 90px;
}







/* 全体スタイル（基本設定 / 1200px以下の挙動） */
.index_hero {
    position: relative;
    width: 100%;
    max-width: 1200px;
    text-align: center;
    margin: 0 auto;
    height: auto; /* 幅に合わせて高さは自動 */
}

/* 動画のスタイル（1200px以下の挙動） */
#video {
    width: 100%;
    height: auto;
    display: block;
}

/* 画像は非表示 */
#image {
    display: none;
}

/* -----------------------------------
   1201px以上のPC画面向け設定
----------------------------------- */
@media screen and (min-width: 1201px) {
    .index_hero {
        /* ヘッダーの101pxを引いた画面いっぱいの高さ */
        /*height: calc(100vh - 101px);*/
    }

    #video {
        width: 100%;
        height: 100%;
        /* 枠いっぱいに収める（切れないように表示したい場合は contain に変更） */
        object-fit: cover;
    }
}





/*検索バー*/
.wp-block-search .wp-block-search__button{
    white-space: nowrap;
}


:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) {
    border: none;
}






/*アーカイブ　一覧ページ*/
#secondary {
    margin: 0; 

}
#primary{
	max-width: 1200px;
	margin: 0 auto;
}
#primary h2 a{
	text-decoration: none;
}
.entry-meta a{
	text-decoration: none;
}

.category-news .post{
	border: solid 1px var(--color-border);
	background-color: var(--color-bg);
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 40px;
}



.ast-plain-container.ast-no-sidebar #primary {
    margin: 0;
}


@media (min-width: 993px) {
    .ast-separate-container #primary, .ast-separate-container.ast-left-sidebar #primary, .ast-separate-container.ast-right-sidebar #primary {
        margin: 0em 0 4em 0;
        padding: 0;}
    }

    @media (max-width: 921px) {
        .ast-left-sidebar #content > .ast-container {
            display: flex;
            flex-direction:column;
            width: 100%;
        }
    }
 @media (min-width: 922px) {
            .site-content .ast-container {
                flex-direction: column;
            }
        }

            @media (min-width: 922px) {
                #secondary {
                    width: 100%;
                }
            }

            
.wpc-filters-main-wrap ul.wpc-filters-ul-list{
    display: flex;
    gap: 1em;
    flex-wrap: wrap;
            }
.wpc-filters-main-wrap ul.wpc-filters-ul-list label{
                font-size: 18px;
            }

body.archive .ast-archive-description {
                padding: 0;
                text-align: center;
            }



.wpc-term-count-0{
    display: none;
}


/*物件情報　一覧ページ*/
.sall_dl{
    display: flex;
}
.sall_dl dl{
    border: 1px solid #ccc;
}
.sall_dl dl dt{
	background: #f5f5f5;
	padding: 5px;
	border-bottom: 1px solid #ccc;
    text-align: center;
    height: 48px;
    display: grid;
    align-items: center;
    line-height: 1.2em;
}
.sall_dl dl dd{
	background: #fff;
	padding: 5px;
    margin: 0;
}
.sall_dl .price{
    font-size: 24px;
    color: var(--color-primary-dark);
    font-weight: bold;
    white-space: nowrap;
}


@media (min-width: 993px){
.ast-left-sidebar #secondary {
    padding-right: 0px;
}
}

@media only screen and (max-width: 765px) {
    .sall_dl{
        flex-direction: column;
    }
}

















/*コンテンツ内の装飾*/


.site-content{
    padding-bottom: 60px;
}
section{
    margin-bottom: 5em;
}


/*共有*/
.f70{
    font-size: 70%;
}
.b{
    font-weight: bold;
}
.ac{
    text-align: center;
	justify-content: center;
}
.ib{
    display: inline-block;
}
.mt30{
	margin-top: 30px;
}
.mb30{
    margin-bottom: 30px;
}
.mb0{
    margin-bottom:0 !important;
}

.entry-content p.pm0{
    margin-block-start: 0em;
    margin-block-end: 0em;
    margin-bottom: 0;
}
.emphasis{
    font-family: 'DM Serif Display', serif;
    font-weight: bold;
    color: var(--color-accent);
    font-size: clamp(20px, 3.8vw, 48px);
    text-align: center;

}





.slash {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
  }
   
  .slash::before,
  .slash::after {
    content: "";
    width: 0.1em;
    height: 1.4em;
    margin: 0px 0.8em;
    background-color: var(--color-accent);
  }
   
  .slash::before {
    transform: rotate(-45deg);
  }
   
  .slash::after {
    transform: rotate(45deg);
  }


  .emphasis_enclosure {
    color: #714a0d;
    border: 2px solid #714a0d;
    margin: 0 0.03em;
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    line-height: 1.5;
    text-align: center;
    background-color: rgb(255, 250, 243);
  }





  .emphasis_mirror {
    -webkit-box-reflect: below -10px -webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0) 10%,rgba(0,0,0,.6));
    margin-bottom: calc(0.8em + 24px) !important;
  }









.img_flex{
    display: flex;
    gap: 20px;
    flex-direction: column;
}
/*PC*/
@media (min-width: 768px) {
.img_flex{
    flex-direction: row;
}
.img_flex .img{
    min-width: 512px;
}
.img_flex .text{
}
}






/*トップページ*/
a.bt_sell_your_property{
    display: inline-block;
    text-align: center;
    padding: 0.5em 0.5em;
    font-size: clamp(18px, 2.8vw, 48px);
    background-color: var(--color-primary-dark);
    color: #FFF;
    border-radius: 3px;
    border:solid 1px var(--color-primary-dark);
}
a:link.bt_sell_your_property{
    text-decoration: none;
}

a.bt_sell_your_property span{
    display: inline-block;
    font-size: 80%;
}


.home h1{
    font-size: clamp(28px, 4.3vw, 48px);
}




/*物件一覧*/
.custom-field-above-title{
    background-color: #382d14;
    font-weight: bold;
    color: #FFF;
    padding: 0.2em 0.8em;
    margin-bottom: 1em;

}

.ast-separate-container .ast-blog-layout-5-grid .post-content{
    padding-top: 0;
}








/* 新着情報ニュースリスト全体のスタイル */
.news-area{
    border: solid 1px #9ba5c7;
    border-radius: 8px;
    padding: 20px;
	max-width: 1200px;
	margin: 0 auto;

}
.news-list {
    list-style: none;
    padding: 0;
    margin: 20px 0;
    border-top: 1px solid #e0e0e0;
}

/* 各記事の枠組み */
.news-list li {
    border-bottom: 1px solid #e0e0e0;
    padding: 15px 0;
    margin: 0;
    display: flex;
    flex-direction: column; /* スマホでは縦並び */
    gap: 5px; /* 日付とタイトルの隙間 */
    transition: background-color 0.3s ease;
}

/* ホバー時に少し背景色を変えてリンク感を出します */
.news-list li:hover {
    background-color: #fafafa;
}

/* 日付のスタイル */
.news-list .news-date {
    font-size: 0.85rem;
    color: #888888;
    font-family: monospace; /* 数字の幅を揃えて見やすく */
    min-width: 100px; /* PC並びのときの位置揃え用 */
}

/* タイトル（リンク）のスタイル */
.news-list a {
    color: #333333;
    text-decoration: none;
    font-size: 0.95rem;
    line-height: 1.5;
    flex: 1; /* 残りの横幅いっぱいに広げる */
}

/* リンクにマウスが乗ったとき */
.news-list a:hover {
    color: #0066cc; /* Astraのテーマカラーに合わせて変更してください */
    text-decoration: underline;
}

/* ----------------------------------
 * レスポンシブ対応（タブレット・PC用）
 * ---------------------------------- */
@media (min-width: 600px) {
    .news-list li {
        flex-direction: row; /* 横並びに変更 */
        align-items: center; /* 上下中央揃え */
        gap: 20px; /* 日付とタイトルの間隔を広げる */
        padding: 18px 10px; /* PCでは少し余白を広げて視認性アップ */
    }
    
    .news-list .news-date {
        margin-bottom: 0;
    }
}












/* シンプルSNSアイコンの配置設定 */
.content-align-flex-start .ast-builder-layout-element {
    justify-content: center;
}
.header-sns-simple {
  display: flex;
  align-items: center;
  gap: 30px;
  margin: 30px auto;
}

.header-sns-simple a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease;
}

.header-sns-simple a:hover {
  opacity: 0.8;
}

/* --- CSS filterで黒アイコンを各ブランドカラーに変換 --- */

/* Instagram (#E1306C 風のピンク) */
.header-sns-simple img[alt="Instagram"] {
  filter: invert(32%) sepia(85%) saturate(3025%) hue-rotate(318deg) brightness(96%) contrast(92%);
}

/* X (旧Twitter / #000000 黒のまま) */
.header-sns-simple img[alt="X"] {
  filter: none;
}

/* YouTube (#FF0000 赤) */
.header-sns-simple img[alt="YouTube"] {
  filter: invert(13%) sepia(94%) saturate(7413%) hue-rotate(357deg) brightness(108%) contrast(117%);
}

/* LINE (#06C755 緑) */
.header-sns-simple img[alt="LINE"] {
  filter: invert(58%) sepia(61%) saturate(2311%) hue-rotate(107deg) brightness(97%) contrast(97%);
}







.footer-sns{
	background-color: var(--color-offwhite);
	padding: 5px;
	border-radius: 8px;
}










    /* =============================================
   Footer
   ============================================= */
#footer {
  background: var(--color-brown-dark);
  color: rgba(255,255,255,0.8);
}
/* 親要素の位置基準を設定 */
.footer-top {
  position: relative; /* 疑似要素の位置基準 */
  padding: 80px 20px 60px; /* 上部の余白を少し増やして画像と被らないように調整 */
  max-width: 1200px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  margin: 0 auto;
}

/* 上側に背景画像 footer-bg.png を配置 */
.footer-top::before {
  content: "";
  position: absolute;
  top: 0; /* footer-top の一番上 */
  left: 50%;
  transform: translateX(-50%); /* 画面・コンテナの中央に配置 */
  width: 100vw; /* 画面の幅いっぱいに広げる場合（コンテンツ幅に収める場合は 100% に変更） */
  height: 60px; /* 画像の高さに合わせて調整 */
  background-image: url('https://souten01.com/wp-content/uploads/images/footer-bg.png'); /* 画像のパスに合わせて指定してください */
  background-repeat: repeat-x; /* 横方向に繰り返し */
  background-position: center top;
  background-size: auto 60px; /* 高さを指定に合わせて固定 */
  pointer-events: none; /* マウスイベントを透過 */
  background-color: white;
}
.footer-tel a{
	font-size: 36px;
	text-decoration: none;
	font-weight: bold;
	color:var(--color-offwhite);
}
.footer-logo strong { font-size: 1.8rem; color: var(--color-white); font-family: var(--font-heading); }
.footer-desc { font-size: 0.85rem; margin: 16px 0; color: rgba(255,255,255,0.65); line-height: 1.7; }
.footer-contact { font-size: 0.85rem; color: rgba(255,255,255,0.65); border: solid 1px var(--color-offwhite); border-radius: 8px; paddig:1em 0.2em; text-align: center; padding: 0.4em 1em; }
.footer-contact strong { color: var(--color-gold-light); font-size: 1.2rem; display: block;}
.footer-nav h4 { color: var(--color-accent); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.08em; margin-bottom: 16px; }
.footer-nav ul { margin-left: 0px; }
.footer-nav li { margin-bottom: 10px; }
.footer-nav a { font-size: 0.85rem; color: rgba(255,255,255,0.65);text-decoration: none; }
.footer-nav a:hover { color: var(--color-white); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.8rem;
  color: rgba(255,255,255,0.4);
}

/* =============================================
   Footer (Mobile / Responsive)
   ============================================= */
@media (max-width: 768px) {
  .footer-top {
    /* 4カラムから1カラムの縦並びに変更 */
    grid-template-columns: 1fr;
    padding: 80px 20px 40px 20px;
    gap: 32px;
  }

  .footer-tel a {
    /* スマホ画面に合わせて電話番号の文字サイズを調整 */
    font-size: 28px;
  }

  /* 誤字（paddig）の修正を含めた調整 */
  .footer-contact {
    padding: 0.8em 1em;
  }

  .footer-bottom {
    /* コピーライト等を中央揃えの縦並びへ */
    flex-direction: column;
    gap: 12px;
    text-align: center;
    padding: 20px;
  }
}














/* ==========================================================================
   Header Layout Fix (Astra Style Alignment)
   ========================================================================== */

/* ヘッダー全体を横並びにするレイアウト設定 */
.site-header-inner {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	padding: 10px 20px !important;
}

/* 左側ボックス（ロゴ ＋ SNS） */
.header-left-box {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.header-left-box .site-logo img {
	max-height: 50px;
	width: auto;
	display: block;
}

.header-sns-simple {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}
/* アイコン自体の表示サイズを拡大 */
.header-sns-simple a svg {
	width: 32px !important;  /* 横幅を26pxに拡大（お好みに合わせて28px等に拡大可能） */
	height: 32px !important; /* 高さを26pxに拡大 */
	display: block;
}


/* SNSアイコンのカラーフィルター適用 */
.header-sns-simple a:nth-child(1) svg {
	filter: invert(32%) sepia(85%) saturate(3025%) hue-rotate(318deg) brightness(96%) contrast(92%);
}
.header-sns-simple a:nth-child(2) svg {
	filter: none;
}
.header-sns-simple a:nth-child(3) svg {
	filter: invert(13%) sepia(94%) saturate(7413%) hue-rotate(357deg) brightness(108%) contrast(117%);
}
.header-sns-simple a:nth-child(4) svg {
	filter: invert(58%) sepia(61%) saturate(2311%) hue-rotate(107deg) brightness(97%) contrast(97%);
}

/* 右側ボックス（電話・ボタン ＋ メニュー） */
.header-right-box {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}

/* 上段：電話 ＋ お問合せカプセルボタン */
.header-top-contact {
	display: flex;
	align-items: center;
	gap: 8px;
}



.header-top-contact .tel-number {
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--color-brown-dark);
	text-decoration: none;
	line-height: 1;
}

.header-top-contact .btn-contact-header {
	background-color: var(--color-brown-dark);
	color: #ffffff !important;
	font-size: 1.1r	em;
	font-weight: bold;
	padding: 8px 22px;
	border-radius: 28px;
	text-decoration: none;
	margin-left: 8px;
	transition: background-color 0.2s ease;
}

.header-top-contact .btn-contact-header:hover {
	background-color: var(--color-brown);
}

/* 下段：ナビゲーションメニュー横並び */
.main-navigation ul {
	display: flex !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.main-navigation a {
	color: #333333 !important;
	font-size: 0.95rem !important;
	font-weight: bold !important;
	text-decoration: none !important;
}

/* スマホ表示対応 (921px以下) */
@media screen and (max-width: 921px) {
	.main-navigation ul {
		flex-direction: column;
	}
}



/* PC表示時（769px以上）は .sp を消す */
@media screen and (min-width: 769px) {
  .sp {
    display: none !important;
  }
}

/* スマホ表示時（768px以下）は .pc を消す */
@media screen and (max-width: 768px) {
  .pc {
    display: none !important;
  }
}









/* パンくずリストデザイン調整 */
.ast-header-breadcrumb {
	max-width: 1200px;
	margin: 10px auto;
	padding: 0 10px;
	font-size: 14px;
}

.ast-breadcrumbs-wrapper .delimiter {
	margin: 0 6px;
	color: #888888;
}

.ast-breadcrumbs-wrapper a {
	color: #4169e1;
	text-decoration: none;
}

.ast-breadcrumbs-wrapper a:hover {
	text-decoration: underline;
}

.ast-breadcrumbs-wrapper .current-item {
	color: #666666;
}