/*!
Theme Name: PLATE
Author: Knot Creative Ltd.
Author URI: https://knot-creative.co.jp/
Version: 1.0.0
*/

@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@100..900&family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://cdn.jsdelivr.net/npm/yakuhanjp@4.1.1/dist/css/yakuhanjp.css');
/*ヨクハン*/

/* :rootのCSS変数の宣言 */
:root {
    --font-jp: "Noto Sans JP", sans-serif;
    --font-en: "Heebo", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}


/*--------------------------------------------------------------
>>> 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;*/
    font-family: var(--font-jp);
}

/* 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;
    font-family: var(--font-jp);
}

/**
 * 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
--------------------------------------------------------------*/

/* 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;
    font-family: var(--font-jp);
}

p {
    margin-bottom: 1.5em;
    font-family: var(--font-en), var(--font-jp);
}

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: #999;*/
}

a:focus {
    outline: thin dotted;
}

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

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
    margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
    display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
    flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
    text-align: end;
    flex: 1 0 50%;
}

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

.post,
.page {
    margin: 0 0 1.5em;
}

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

.page-content,
.entry-content,
.entry-summary {
    margin: 1.5em 0 0;
}

.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;
}

/* オリジナルCSS
--------------------------------------------- */

html {
    scroll-behavior: smooth;
}

/* 
* ヘッダー
*/

a {
    text-decoration: none;
}


/* ヘッダー全体 */
.site-header {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    /*    min-width: 1440px;*/
    height: 92px;
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 5%;
    border-bottom: 1px solid #ddd;
    z-index: 1000;
    /* 他のコンテンツより上に表示させる */
    /* アニメーションの設定 */
    animation: slideInDown 0.8s ease-out;
}

/* 上から降りてくる動きの定義 */
@keyframes slideInDown {
    0% {
        transform: translateY(-100%);
        /* 完全に上に隠れた状態 */
        opacity: 0;
        /* 最初は透明 */
    }

    100% {
        transform: translateY(0);
        /* 本来の位置へ */
        opacity: 1;
        /* 不透明に */
    }
}

/* WP管理バーが表示されている時だけ、固定位置を下にずらす */
.admin-bar .site-header {
    top: 32px;
}

@media (max-width: 782px) {
    .admin-bar .site-header {
        top: 46px;
        /* スマホの管理バーは少し高いので調整 */
    }
}


/* ロゴ（site-branding）内の余計な隙間を排除 */
.site-branding {
    line-height: 0;
    /* 行間の隙間をゼロにする */
    display: flex;
    /* flexにして上下中央を確実にする */
    align-items: center;
}

/* ロゴ画像の下にできる数ピクセルの隙間を消す */
.site-branding img,
.custom-logo-link img {
    display: block;
    height: auto;
    width: auto;
    /* 必要に応じて最大高さを指定して、ヘッダーを突き破らないようにする */
    max-height: 60px;
    max-width: 150px;
}


/* CTA */
.header-cta a {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    text-align: center;
    border-radius: 9999px;
    width: 160px;
    height: 48px;
    background-color: #000;
    color: #ffffff;
    padding: 0;
}


/**
* ナビゲーション
*/





/* 初期状態でサブメニューを非表示にしておく */
.sub-menu {
    /* display: none;*/
}

/* 子を持つ親メニューにマウスオーバーしたとき、サブメニューを表示する */
/*.menu-item-has-children:hover .sub-menu {
  display: block;
}
  */





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

/* ナビゲーションが幅を取りすぎてロゴを圧迫するのを防ぐ */
.main-navigation {
    display: block;
    width: auto;
    /* 100% から auto に変更 */
    flex: 1;
    /* 空いているスペースを埋める */
}

/*
.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}
*/
.main-navigation ul {
    display: flex;
    justify-content: right;
    list-style: none;
    margin: 0;
    margin-right: 120px;
    padding-left: 0;
}

.main-navigation ul li {
    position: relative;
    /* サブメニューの基準点 */
    margin-right: 20px;
    font-size: 14px;
    font-family: var(--font-jp);
    margin: 0 30px;
    padding: 10px 0;
}

.main-navigation ul li a {
    color: #333;
    display: block;
    text-decoration: none;
}






/* ハンバーガーメニュー */
.humburger {
    display: none;
    width: 40px;
    height: 40px;
    position: relative;
    z-index: 999;
}

.humburger span {
    position: absolute;
    left: 50%;
    width: 30px;
    height: 2px;
    background-color: #000;
}

.humburger.active span {
    background-color: #ffffff;
}

.humburger span:nth-child(1) {
    top: 10px;
    transform: translateX(-50%);
}

.humburger span:nth-child(2) {
    top: 50%;
    transform: translate(-50%, -50%);
}

.humburger span:nth-child(3) {
    bottom: 10px;
    transform: translateX(-50%);
}

.humburger.active span:nth-child(1) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(315deg);
    transition: .3s ease-out;
}

.humburger.active span:nth-child(2) {
    display: none;
}

.humburger.active span:nth-child(3) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-315deg);
    transition: .3s ease-out;
}

/* オーバーレイの初期状態 */
.sp-menu-overlay {
    display: none;
    /* 通常は非表示 */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    /* 黒の半透明 */
    z-index: 98;
    /* メニュー(99)より下、コンテンツより上 */
    opacity: 0;
    transition: opacity 0.4s;
}

/* メニューが開いている時 */
.sp-menu-overlay.show {
    display: block;
    opacity: 1;
}

/* sp-menu */
.sp-header-menu {
    display: none;
    position: fixed;
    top: 0;
    left: 100%;
    display: inline-block;
    width: 70%;
    z-index: 99;
    height: 100%;
    background-color: rgba(0, 0, 0, .9);
    ;
    transition: .4s ease-out;
    /* ここに transition を移動させると戻る時もスムーズです */
}

.menu-header-container {
    height: 100%;
}

.sp-header-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
    padding-top: 130px;
    padding-bottom: 100px;
    text-align: center;
    /*background-color: rgba(51, 51, 51, .9);*/
    height: 100%;
}

.sp-header-menu ul li {
    padding: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.sp-header-menu ul li:first-child {
    margin-top: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.sp-header-menu ul li a {
    text-decoration: none;
    color: #FFFFFF;
}

.sp-header-menu.show {
    /*left: 0;*/
    left: 30%;
    /* ★表示時、左側に50%のスペースを開けて止まる（右半分に表示） */
    transition: .4s ease-out;
}


/* サブメニューの初期状態（隠す） */
.main-navigation ul .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 100;
    display: none;
    /* もしくは opacity: 0; transition 等 */
    background-color: #000;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
    min-width: 250px;
    /*padding: 10px 0;*/
    list-style: none;
}

/*
.main-navigation .menu-item-has-children:nth-last-child(1) .sub-menu,
.main-navigation .menu-item-has-children:nth-last-child(2) .sub-menu {
    right: 0;
    left: auto;
}
*/

/* 親にホバーしたらサブメニューを表示 */
.main-navigation ul li:hover>.sub-menu {
    display: block;
}

.main-navigation ul .sub-menu li {
    margin: 0;
    padding: 0;
}

/* サブメニュー内のリンク */
.main-navigation ul .sub-menu li a {
    padding: 10px 20px;
    display: block;
    color: #fff;
    font-size: 0.9rem;
    text-align: left;
}

.main-navigation ul .sub-menu li a:hover {
    background-color: var(--color-primary);
}


/* スマホメニュー内のサブメニュー */
.sp-header-menu .sub-menu {
    display: none;
    /* 最初は隠す */
    list-style: none;
    padding: 0;
    background-color: rgba(255, 255, 255, 0.05);
    /* 少し背景色を変えて階層を表現 */
    margin-top: 10px !important;
}

/* JSで .open クラスがついたら表示 */
.sp-header-menu .sub-menu.open {
    display: block;
}

.sp-header-menu .sub-menu li {
    padding-left: 0px;
    /* 親メニューより右にずらす */
    border-bottom: none;
    /* 親の境界線と重ならないように調整 */
    background-color: var(--color-primary);
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.sp-header-menu .sub-menu li a {
    font-size: 0.85rem;
    /* 少し小さくする */
    color: #fff;
}

/* 親メニューに「＋」などのアイコンを入れたい場合（任意） */
.sp-header-menu .menu-item-has-children>a::after {
    /*    content: '+';
    font-size: 1rem;
    margin-left: 8px;*/
    /*vertical-align: middle;*/
}

/* 開いている時に親メニューの矢印を変える等の演出用 */
.sp-header-menu .menu-item-has-children.is-open>a::after {
    /*content: '-'; /* 開いている時は上向き */
}

.sub-menu-toggle {
    font-size: 1rem;
    margin-left: 8px;
    color: #fff;
}




/*900px以下*/
@media screen and (max-width: 900px) {
    .main-navigation ul {
        display: none;
    }

    /*スマホヘッダー*/
    .sp-header-menu {
        display: block;
    }

    /*ハンバーガーメニュー*/
    .humburger {
        display: block;
    }

    /*
    .main-navigation li{
        margin-right:10px;
        font-size: 12px;
    }
    */
    /*
    .header-cta a{
        width: 150px;
        height: 38px;
        font-size: 14px;
    }
    */

}






/**
* トップページ
*/

/* 共通 */

/* セクションタイトル英語 */
.main-title {
    font-size: 48px;
    font-family: var(--font-en);
    letter-spacing: 0.1em;
    margin-top: 0;
    text-align: left;
    margin-bottom: 40px;
}

/* セクションサブタイトル日本語 */
.sub-title {
    font-size: 14px;
    font-family: var(--font-jp);
    margin-bottom: 0;
}

/* 各セクション設定 */
.top-section {
    margin: 150px auto;
    max-width: 1700px;
    padding: 0 100px;
}

/* 各セクションヘッド2列用 */
.section-header-two {
    display: flex;
    /*align-items: flex-end;*/
    gap: 100px;
}

/* 各セクションヘッド2列用右側 */
.header-lead {
    /*margin-left: auto;*/
    margin-right: 10px;
    margin-top: 30px;
}

.header-lead p {
    font-family: var(--font-jp);
}

/* リンクボタン */
.top-btn-wrap {
    text-align: center;
    margin-top: auto;
    margin-bottom: 20px;
}

.top-btn-wrap a {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    text-align: center;
    width: 80%;
    max-width: 400px;
    height: 48px;
    border-radius: 9999px;
    background-color: var(--color-primary);
    color: #ffffff;
    padding: 0;
}


@media (max-width: 900px) {

    /* セクションタイトル英語 */
    .main-title {
        font-size: 36px;
        margin-bottom: 0;
        margin-bottom: 20px;
    }

    /* 各セクション設定 */
    .top-section {
        margin: 80px auto;
        padding: 0 30px;
    }

    /* 各セクションヘッド2列用 */
    .section-header-two {

        flex-direction: column;
        gap: 0;
    }

    /* 各セクションヘッド2列用右側 */
    .header-lead {
        margin: 0;
    }

    .header-lead p {
        font-size: 14px;
    }

    /* リンクボタン */
    .top-btn-wrap {
        margin-top: 20px;
    }


}



/* ファーストビュー */

#first {
    display: flex;
    height: 700px;
    width: 100%;
    /*   min-width: 1440px;*/
}

.first-cat {
    background-color: var(--color-primary);
    /*    width: 644px;*/
    width: 40%;
    height: 700px;
    padding: 0 25px;
    display: flex;
    flex-direction: column;
    /* 子要素を縦に並べる */
}

/*メインキャッチコピー*/
.first-cat-main {
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    margin-top: auto;
}

.first-cat-main h1 {
    color: #ffffff;
    font-size: 40px;
    font-family: var(--font-jp);
}

/*サブキャッチコピー*/
.first-cat-sub {
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: auto;
}

.first-cat-sub p {
    color: #ffffff;
    font-size: 20px;
}

.first-cat-cta {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin-top: auto;
    /* ボタンが残りの余白を吸収して最下部に配置される */
    margin-bottom: 20px;
}

.first-cat-cta a {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    text-align: center;
    width: 313px;
    height: 56px;
    background-color: #000;
    color: #ffffff;
    padding: 0;
}


.first-img {
    display: flex;
    /*    width: 796px;*/
    width: 60%;
    height: 700px;
    background-size: cover;
}

.first-img-cta-box {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin-top: auto;
    /* ボタンが残りの余白を吸収して最下部に配置される */
    margin-bottom: 20px;
    column-gap: 30px;
    width: 100%;
}


.first-img-cta a {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    text-align: center;
    width: 207px;
    height: 47px;
    border-radius: 9999px;
    background-color: var(--color-primary);
    color: #ffffff;
    padding: 0;
}


@media (max-width: 900px) {
    #first {
        height: auto;
        flex-direction: column-reverse;
        /* 下から上へ縦に並べる */
    }

    .first-cat {
        width: 100%;
        height: 100%;
    }

    .first-img {
        width: 100%;
        height: 300px;
    }

    .first-cat-main {
        margin-top: 0;
    }

    .first-cat-main h1 {
        font-size: 32px;
    }

    first-img-cta-box {}

    .first-img-cta a {
        width: 150px;
        height: 40px;
        font-size: 14px;
        margin-right: 0;
    }

}



/* ABOUTセクション */
.top-about-flex {
    display: flex;
    width: 100%;
    align-items: center;
    /* 垂直中央揃え */
    justify-content: space-between;
    gap: 0;
    /* paddingで調整するため0 */
    margin-bottom: 80px;
    /* 複数並ぶ場合の余白 */
}

.top-about-flex:last-child {
    margin-bottom: 0;
}

/* 左側：画像エリア（35%〜40%程度に固定） */
.top-about-image {
    flex: 0 0 50% !important;
    /* 幅を40%に固定 */
    max-width: 50% !important;
}

/* ABOUT画像 */
.top-about-image img {
    width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: cover;
}

/* ABOUTセクション右 */
.top-about-content {
    flex: 0 0 50% !important;
    /* 幅を60%に固定 */
    max-width: 50% !important;
    padding-left: 75px;
    display: flex !important;
    flex-direction: column !important;
    /* 隙間を一定に保つ（gapが使える場合） */
    gap: 30px !important;
}


/* 各要素の余白リセット（gapで管理するため） */
.top-about-catch,
.top-about-description,
.top-btn-wrap {
    margin: 0 !important;
}

/* ABOUT見出し */
.top-about-catch {
    font-size: 32px;
    font-family: var(--font-jp);
    letter-spacing: 0.1em;
    line-height: 1.4;
    color: #333;
}

/* ABOUT文章 */
.top-about-description {
    font-size: 16px;
    font-family: var(--font-jp);
    line-height: 1.8;
    color: #555;
}


@media (max-width: 900px) {

    .top-about-flex {
        flex-direction: column;
        /* 縦並びに切り替え */
    }

    .top-about-image,
    .top-about-content {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    /* ABOUTセクション右 */
    .top-about-content {
        padding-left: 0 !important;
        margin-top: 30px;
        gap: 20px !important;
    }

    /* ABOUT見出し */
    .top-about-catch {
        font-size: 24px;
        text-align: center;
    }

    /* ABOUT文章 */
    .top-about-description {
        font-size: 14px;
        text-align: justify;
    }

}










/* BUSINESSセクション */
.top-business-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    gap: 20px;
    margin-bottom: 50px;
}

.top-business-card {
    width: calc(33.333% - 20px);
    /* 3カラム計算 (gap分を引く) */
    box-sizing: border-box;
    /* max-width: 350px; 必要に応じて */
}

@media screen and (max-width: 900px) {
    .top-business-card {
        width: 100%;
        /* 900px以下は1カラム */

        /* スマホ・タブレット時は横長画像に */
        aspect-ratio: 16 / 9;
        min-height: auto;
    }
}


.top-business-card {
    position: relative;
    background: rgba(0, 0, 0, 0.5);
    overflow: hidden;
    /* 子要素のはみ出しを防止 */
    /* display: flex; は削除！ */
    /* width: 100%; 親のgridに合わせる -> Flexboxに変更したため削除 */
    /* 【重要】PCでのカードの高さをアスペクト比で固定 */
    aspect-ratio: 3 / 4;
    min-height: 400px;
}

/* 画像をカードいっぱいに広げる */
.top-card-image {
    width: 100%;
    height: 100%;
}

.top-card-image img {
    width: 100%;
    height: 100%;
    display: block;
    /*画像のズレ補正*/
    object-fit: cover;
}


.top-card-content {
    position: absolute;
    top: 0;
    left: 0;
    /* width: 100%; を追加して親の幅に合わせる */
    width: 100%;
    height: 100%;
    /* box-sizing を含めて padding 分が外に出ないようにする */
    box-sizing: border-box;
    padding: 30px;
    display: flex;
    flex-direction: column;
    height: 100%;
    z-index: 2;
    /* 画像より上に配置 */
    pointer-events: none;
    /* 下のリンクなどを邪魔しない（必要に応じて） */
}

.top-card-content h3 {
    color: #fff;
    font-size: 22px;
    font-family: var(--font-jp);
    text-align: center;
    margin-bottom: 15px;
    margin-top: 0;
}

.top-card-content p {
    color: #fff;
    font-size: 14px;
    font-family: var(--font-jp);
    line-height: 1.6;

}


.top-card-text {
    margin-top: auto;
    margin-bottom: 20px;

    /* 複数行で省略するための設定 */
    display: -webkit-box;
    /*
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 10;*/
    /* ここで表示したい行数を指定（例: 3行） */
    overflow: hidden;

    /* フォントや行間の調整（はみ出し防止をより確実にするため） */
    line-height: 1.6;
    /*max-height: 4.8em;*/
    /* line-height × 行数 */
}

/* imgタグにオーバーレイをかける */
.blend__over {
    mix-blend-mode: overlay;
}


@media (max-width: 900px) {

    .top-business-grid {
        /*flex-direction: column;
        row-gap: 20px;*/
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .top-business-card {
        aspect-ratio: auto;
        /* スマホは高さ固定を解除 */
        /* スマホで縦長画像のままだと長すぎるので、高さを決めてしまう */
        height: 300px;
    }

    .top-card-image {
        position: relative;
        height: 100%;
    }

    .top-card-image img {
        height: 100%;
        /* 親の高さ(250px)に合わせる */
        object-fit: cover;
        /* 縦長画像の中央を切り取って表示 */
    }

    .top-card-content {
        padding: 30px;
    }

    .top-card-content h3 {
        /*font-size: 16px;*/
    }

    .top-card-content p {
        /*font-size: 12px;*/
        margin-bottom: 20px;
    }

    .top-card-text {
        /* 省略記号を効かせるために表示制限をかける（任意） */
        display: -webkit-box;
        -webkit-box-orient: vertical;
        /* -webkit-line-clamp: 3;*/
        /* 3行超えたら「...」にする */
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: normal;
        /* text-overflowを使うための必須設定 */
    }
}



/* NOTEセクション */
.top-note-grid {
    display: flex;
    width: 100%;
    /*column-gap: 2%;*/
    margin-bottom: 50px;
}

.top-note-card {
    /*flex: 1;*/
    width: 32%;
    margin: 0 2% 0 0;
}

.top-note-card:nth-child(3n) {
    margin-right: 0;
}

.top-note-card:hover {
    /*transform: translateY(-5px);*/

}

.top-note-img {
    overflow: hidden;
}

.top-note-img img {
    display: block;
    width: 100%;
    height: auto !important;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    transition: transform 0.6s;
}

.top-note-img img:hover {
    transform: scale(1.2);
    /* 拡大 */
}

.top-note-body {
    padding: 10px;
}

.top-note-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.top-note-category {
    display: inline-block;
    width: 150px;
    height: 22px;
    font-size: 12px;
    font-family: var(--font-jp);
    color: var(--color-primary);
    padding: 2px 10px;
    border: 1px solid var(--color-primary);
    white-space: nowrap;
    /* 改行させない */
    overflow: hidden;
    /* はみ出た分を隠す */
    text-overflow: ellipsis;
    /* はみ出た分を「...」にする */
    text-align: center;
}

.top-note-title {
    font-size: 16px;
    font-family: var(--font-jp);
    color: #000;
    margin: 10px 0;
}

.top-note-date {
    font-size: 12px;
    font-family: var(--font-jp);
    color: #7E7E7E;
}


@media (max-width: 900px) {
    .top-note-grid {
        flex-direction: column;
    }

    .top-note-card {
        width: 100%;
        margin: 0 0 20px 0;
    }

    .top-note-title {
        /*font-size: 14px;*/
    }

    .top-note-category {
        /*width: 100px;*/
        height: 22px;
        /*font-size: 10px;*/
    }
}




/* NEWSセクション */
.top-news-list {
    display: flex;
    max-width: 840px;
    flex-direction: column;
    margin: 0 auto 50px auto;
}

/* NEWS一行 */
.top-news-item {
    display: flex;
    align-items: center;
    height: 100px;
    border-top: 1px solid #7E7E7E;
}

.top-news-item:last-child {
    border-bottom: 1px solid #7E7E7E;
}

/* NEWS日付 */
.top-news-date {
    display: inline-block;
    width: 80px;
    margin-left: 60px;
    color: #000;
    font-size: 14px;
    font-family: var(--font-en);
}

/* NEWSカテゴリ */
.top-news-category {
    display: inline-block;
    width: 111px;
    height: 22px;
    margin-left: 80px;
    font-size: 12px;
    font-family: var(--font-jp);
    color: var(--color-primary);
    padding: 2px 10px;
    border: 1px solid var(--color-primary);
    white-space: nowrap;
    /* 改行させない */
    overflow: hidden;
    /* はみ出た分を隠す */
    text-overflow: ellipsis;
    /* はみ出た分を「...」にする */
    text-align: center;
}

/* NEWSタイトル */
.top-news-title {
    margin-left: 80px;
    color: #000;
    font-size: 16px;
    font-family: var(--font-jp);
}

/* 矢印ボタン */
.arrow_button {
    position: relative;
    display: inline-block;
    padding-left: 22px;
    margin-left: auto;
    margin-right: 60px;
    transition: transform 0.3s;
}

/* 矢印枠 */
.arrow_button:before {
    content: '';
    width: 40px;
    height: 40px;
    background: #fff;
    border: 1px solid #7E7E7E;
    border-radius: 50%;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
}

/* 矢印 */
.arrow_button:after {
    content: '';
    width: 6px;
    height: 6px;
    border: 0;
    border-top: solid 2px #7E7E7E;
    border-right: solid 2px #7E7E7E;
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    left: 15px;
    bottom: 0;
    margin: auto;

}

.arrow_button:hover {
    transform: translateX(5px);
}


@media (max-width: 900px) {

    /* NEWS一行 */
    .top-news-item {
        flex-direction: column;
        align-items: flex-start;
        /* これで子要素を左寄せにする */
        height: auto;
        /* 縦に並ぶので高さは自動に */
        padding: 20px 0;
        /* 上下に余白を作る */
        position: relative;
        /* 矢印を絶対配置するために必要 */
    }

    /* 日付、カテゴリ、タイトル共通 */
    .top-news-date,
    .top-news-category,
    .top-news-title {
        margin-left: 20px;
        /* 全て左端の余白を統一 */
        /*width: auto;*/
        /* 幅固定を解除（カテゴリ以外） */
    }

    /* NEWS日付 */
    .top-news-date {
        margin-left: 20px;
    }

    /* NEWSカテゴリ */
    .top-news-category {
        margin-left: 20px;
        /* 統一 */
        margin-top: 10px;
        margin-bottom: 10px;
        /* タイトルとの間隔 */
        text-align: center;
        /* 枠内の文字はセンターのまま */
    }

    /* NEWSタイトル */
    .top-news-title {
        margin-left: 20px;
        /* 統一 */
        padding-right: 60px;
        /* 矢印と被らないように右に余白 */
        font-size: 14px;
        line-height: 1.5;
    }

    /* 矢印ボタンを右端に固定 */
    .arrow_button {
        position: absolute;
        /* 親の item に対して絶対配置 */
        right: 20px;
        top: 50%;
        transform: translateY(-50%);
        margin: 0;
        /* 余計なマージンをリセット */
    }
}



/* EVENTセクション */
/* EVENT左側 */
.top-event-item {
    display: flex;
    margin-bottom: 50px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

/* 画像 */
.top-event-img {
    flex-basis: 50%;
    /* 親要素に対して40%の幅をベースにする */
    max-width: 450px;
    /* 大きくなりすぎない上限 */
    min-width: 300px;
    /* 小さくなりすぎない下限（お好みで） */
    flex-shrink: 1;
    /* 画面が狭くなったら縮むことを許可する */
    overflow: hidden;
}


/* 子要素（画像本体）の設定 */
.top-event-thumb-img {
    display: block;
    width: 100% !important;
    /* HTML属性のwidthを上書き */
    height: auto !important;
    /* HTML属性のheightを上書き */
    aspect-ratio: 3 / 2;
    /* 比率を固定 */
    object-fit: cover;
    /* 隙間なく埋める */
    transition: transform 0.6s;
}

.top-event-thumb-img:hover {
    transform: scale(1.2);
    /* 拡大 */
}


/*
.top-event-img img{
    display: block;/*画像のズレ補正*/
/*}
*/

/* EVENT右側 */
.top-event-info {
    padding-left: 25px;
    flex-grow: 1;
    /* 余ったスペースをすべて使う */
    min-width: 0;
    /* Flex子要素のテキストがはみ出して崩れるのを防ぐ魔法の記述 */
}


.top-event-title {
    font-size: 24px;
    font-family: var(--font-jp);
    color: #000;
    margin-top: 20px;
}

.top-event-labels {
    display: flex;
    flex-direction: column;
}

.top-event-label {
    margin-bottom: 10px;
}

.top-label-name {
    display: inline-block;
    background-color: var(--color-primary);
    font-size: 16px;
    font-family: var(--font-jp);
    color: #fff;
    width: 125px;
    height: 48px;
    text-align: center;
    line-height: 48px;
}

.top-label-content {
    padding-left: 15px;
    font-size: 16px;
    font-family: var(--font-jp);
    color: #000;
}


@media (max-width: 900px) {
    .top-event-item {
        flex-direction: column;
        /* 縦並びに切り替え */
    }

    .top-event-img {
        width: 100%;
        /* 幅いっぱい */
        max-width: none;
        /* 上限解除 */
        flex-basis: auto;
    }

    .top-event-info {
        padding-left: 0;
        /* 余白をリセット */
        margin-top: 10px;
    }

    .top-event-title {
        font-size: 16px;
        margin-top: 10px;
    }

    .top-label-name {
        font-size: 14px;
        height: 30px;
        line-height: 30px;
    }

    .top-label-content {
        padding-left: 20px;
        font-size: 14px;
    }

}



/* CONTACTセクション */
.top-contact-section {
    /*background-color: #f9f9f9;*/
    padding: 75px;
}


@media (max-width: 900px) {
    .top-contact-section {
        padding: 30px;
    }
}



/**
* NEWS一覧ページ
*/

.arhive-main-contents {
    margin: 150px auto;
    max-width: 1500px;
    padding: 0 100px;
}

/* アーカイブ全体のレイアウト（サイドバーありの場合） */
.archive-layout {
    /*margin-top: 60px;*/
}

.archive-news-main {}

.archive-news-list {
    display: flex;
    max-width: 840px;
    flex-direction: column;
    margin: 80px auto;
}


/* 記事1件のスタイル */
.archive-news-item {
    display: flex;
    align-items: center;
    height: 100px;
    border-top: 1px solid #7E7E7E;
}

/* 最終行下線 */
.archive-news-item:last-child {
    border-bottom: 1px solid #7E7E7E;
}

/* 日付 */
.archive-news-date {
    display: inline-block;
    width: 80px;
    margin-left: 60px;
    color: #000;
    font-size: 14px;
    font-family: var(--font-en);
}

/* カテゴリ */
.archive-news-category {
    display: inline-block;
    width: 111px;
    height: 22px;
    margin-left: 80px;
    font-size: 12px;
    font-family: var(--font-jp);
    color: var(--color-primary);
    padding: 2px 10px;
    border: 1px solid var(--color-primary);
    white-space: nowrap;
    /* 改行させない */
    overflow: hidden;
    /* はみ出た分を隠す */
    text-overflow: ellipsis;
    /* はみ出た分を「...」にする */
    text-align: center;
}

/* タイトル */
.archive-news-title {
    margin-left: 80px;
    color: #000;
    font-size: 16px;
    font-family: var(--font-jp);
}

/* フィルター */
.archive-filter {
    display: flex;
    gap: 20px;
    /*margin-bottom: 40px;*/
    padding: 20px;
    /*background: #f9f9f9;*/
    border-radius: 5px;
    justify-content: center;
}

.filter-item {
    display: flex;
    /*   align-items: center;*/
    gap: 10px;
}

.filter-item:first-child::before {
    content: "\f179";
    font-family: "dashicons";
    margin-right: 10px;
    font-size: 25px;
    color: #CBCBCB;
}

.filter-item select {
    padding: 8px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #fff;
    cursor: pointer;
}


/* ページネーション全体のスタイル */
.archive-pagination ul {
    display: flex;
    justify-content: center;
    list-style: none;
    gap: 10px;
    margin: 0px;
    padding: 0px;
}

.archive-pagination li a,
.archive-pagination li span {
    display: block;
    padding: 10px 15px;
    text-decoration: none;
    color: #333;
}

/* 現在のページの数字 */
.archive-pagination li span.current {
    background: #333;
    color: #fff;
}

.next span,
.prev span {
    margin: 0 !important;
    padding: 0 !important;
}


@media (max-width: 900px) {

    /* アーカイブ共通 */
    .arhive-main-contents {
        margin: 50px auto;
        padding: 0 30px;
    }

    .archive-filter {
        flex-direction: column;
        padding: 0;
    }

    .archive-news-list {
        margin-top: 40px;
    }

    .filter-item {
        flex-direction: column;
    }

    /* NEWS一行 */
    .archive-news-item {
        flex-direction: column;
        align-items: flex-start;
        /* これで子要素を左寄せにする */
        height: auto;
        /* 縦に並ぶので高さは自動に */
        padding: 20px 0;
        /* 上下に余白を作る */
        position: relative;
        /* 矢印を絶対配置するために必要 */
    }

    /* 日付、カテゴリ、タイトル共通 */
    .archive-news-date,
    .archive-news-category,
    .archive-news-title {
        margin-left: 20px;
        /* 全て左端の余白を統一 */
        /*width: auto;*/
        /* 幅固定を解除（カテゴリ以外） */
    }

    /* NEWS日付 */
    .archive-news-date {
        margin-left: 20px;
    }

    /* NEWSカテゴリ */
    .archive-news-category {
        margin-left: 20px;
        /* 統一 */
        margin-top: 10px;
        margin-bottom: 10px;
        /* タイトルとの間隔 */
        text-align: center;
        /* 枠内の文字はセンターのまま */
    }

    /* NEWSタイトル */
    .archive-news-title {
        margin-left: 20px;
        /* 統一 */
        padding-right: 60px;
        /* 矢印と被らないように右に余白 */
        font-size: 14px;
        line-height: 1.5;
    }

    /* 矢印ボタンを右端に固定 */
    /* トップページで設定 */

}


/** 
* ニュース個別ページ
*/
.single-news-container {
    padding-bottom: 100px;
}

.single-news-header {
    background: #f4f4f4;
    padding: 60px 0;
    margin-bottom: 50px;
    text-align: center;
}

.single-news-meta {
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
    gap: 15px;
    align-items: center;
}

.single-news-date {
    color: #000;
    font-size: 14px;
    font-family: var(--font-en);
}

.single-news-category {
    display: inline-block;
    color: var(--color-primary);
    padding: 2px 10px;
    border: 1px solid var(--color-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
    padding: 2px 12px;
    font-size: 14px;
}

.single-news-title {
    font-size: 2rem;
    line-height: 1.4;
    max-width: 800px;
    margin: 0 auto;
    font-family: var(--font-jp);
}

/* リンクボタン */
.single-news-external-link {
    text-align: center;
    margin: 60px 0px;
}

.btn-detail {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    padding: 15px 40px;
    text-decoration: none;
    border-radius: 9999px;
    transition: opacity 0.3s;
}

.btn-detail:hover {
    opacity: 0.8;
}

/* 一覧へ戻る */
.single-news-footer {
    text-align: center;
    border-top: 1px solid #eee;
    padding-top: 40px;
}

.back-to-list {
    color: #333;
    text-decoration: none;
    font-weight: bold;
}

.back-to-list::before {
    content: "← ";
}

@media screen and (max-width: 900px) {
    .single-news-container {
        padding-bottom: 30px;
    }

    .single-news-title {
        font-size: 24px;
    }

    .btn-detail {
        padding: 10px 40px;
    }
}


/**
* NOTE一覧ページ
*/

.note-list {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 4%;
    /* 縦の余白 横の余白 */
    margin: 80px 0;
}

.note-card {
    width: 48%;
    /* 2列計算（100% - 4% / 2） */
    background: #fff;
    transition: transform 0.3s ease;
}

.note-card:hover {
    transform: translateY(-5px);
}

.note-card-link {
    text-decoration: none;
    color: #333;
}

/* 画像の縦横比を固定する */
.note-card-img {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    margin-bottom: 15px;
    background: #eee;
}

.note-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.note-card-content {
    padding: 10px;
}

.note-card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.note-card-category {
    display: inline-block;
    width: 150px;
    height: 22px;
    font-size: 12px;
    font-family: var(--font-jp);
    color: var(--color-primary);
    padding: 2px 10px;
    border: 1px solid var(--color-primary);
    white-space: nowrap;
    /* 改行させない */
    overflow: hidden;
    /* はみ出た分を隠す */
    text-overflow: ellipsis;
    /* はみ出た分を「...」にする */
    text-align: center;
}

.note-card-date {
    font-size: 12px;
    color: #888;
}

.note-card-title {
    font-size: 1.1rem;
    line-height: 1.5;
    font-weight: bold;
}


@media screen and (max-width: 900px) {
    .note-list {
        margin-top: 40px;
    }

    .note-card {
        width: 100%;
    }

    .note-card-title {
        text-align: left;
        margin: 0;
    }
}

/**
* NOTE個別ページ
*/
.single-note-header {
    text-align: left;
}

.single-note-meta {
    margin-bottom: 20px;
    display: flex;
    justify-content: left;
    align-items: center;
    gap: 15px;
}

.single-note-date {
    color: #888;
    /* font-family: var(--font-en);*/
}

.single-note-title {
    font-size: 36px;
    line-height: 1.4;
}

.single-note-mv {
    margin-bottom: 50px;
    /*max-width: 1000px;*/
}

.single-note-mv img {
    width: 100%;
    height: auto;
    /*border-radius: 8px;*/
    /* 角を少し丸くすると今風です */
}

.single-note-footer {
    text-align: center;
    border-top: 1px solid #eee;
    padding-top: 40px;
}

.entry-content {
    /*max-width: 800px;*/
    margin: 0;
    line-height: 1.8;
    font-size: 1.1rem;
}

/* 記事内の画像がはみ出さないように */
.entry-content img {
    max-width: 100%;
    height: auto;
}


@media screen and (max-width: 900px) {
    .single-note-title {
        font-size: 24px;
    }
}


/*NOTE・NEWS共通*/
.is-default {
    border: none;
}


/*
* EVENT一覧ページ
*/
.event-list {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 4%;
    margin: 80px 0;
}

.event-card {
    width: 48%;
    background: #fff;
    /*border: 1px solid #eee;*/
    transition: box-shadow 0.3s;
}

.event-card:hover {
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.event-card-img {
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.event-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.event-card-body {
    padding: 20px;
}

.event-card-title {
    font-size: 1.25rem;
    margin: 0;
    font-weight: bold;
    text-align: left;
}

/* ラベルのスタイル */
.event-label-list {
    /*border-top: 1px dashed #ccc;*/
    padding-top: 10px;
}

.event-label {
    display: block;
    margin-bottom: 10px;
}

.event-label-name {
    display: inline-block;
    background-color: var(--color-primary);
    font-size: 16px;
    font-family: var(--font-jp);
    color: #fff;
    width: 125px;
    height: 48px;
    text-align: center;
    line-height: 48px;
}

.event-label-content {
    padding-left: 15px;
    font-size: 16px;
    font-family: var(--font-jp);
    color: #000;
    /* 長い文章が来ても崩れないようにする */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-label-item dd {
    margin-left: 0;
    color: #333;
    /* 長い文章が来ても崩れないようにする */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


@media screen and (max-width: 900px) {

    .event-list {
        flex-direction: column;
        margin-top: 40px;
    }

    .event-card {
        width: 100%;
    }

    .event-card-body {
        padding: 10px;
    }

    .event-label-name {
        font-size: 14px;
        height: 30px;
        line-height: 30px;
    }

    /* ラベルのスタイル */
    .event-label-list {
        /*padding-top: 0;*/
    }

    .event-label-content {
        padding-left: 10px;
        font-size: 14px;
    }

    /*NEWS個別ページ・NOTE個別ページ*/
    .entry-content {
        font-size: 14px;
        line-height: 1.2;
    }
}

/*
* EVENT個別ページ
*/

.single-event-header {
    margin-bottom: 40px;
}

.single-event-title {
    font-size: 36px;
    margin-bottom: 10px;
    line-height: 1.3;
}

.single-event-mv {
    margin-bottom: 40px;
}

.single-event-mv img {
    width: 100%;
    height: auto;
}

/* リンクボタン */
.single-event-link {
    text-align: center;
    margin: 60px 0px;
}

.single-event-footer {
    text-align: center;
    margin-top: 100px;
}

/* 詳細ページ用の概要ボックス */
.event-summary-box {
    padding: 0px;
    margin: 10px 0;
}

.summary-title {
    font-size: 1.25rem;
    margin-bottom: 20px;
    font-weight: bold;
}

/* ラベルの並び（詳細版） */
.single-event-container .event-label-wrapper {
    padding: 12px 0;
    align-items: flex-start;
    /* 複数行になっても上が揃うように */
}

.single-event-container .event-label-name {
    width: 7em;
    /* 項目名の幅を少し広めに確保 */
    font-weight: bold;
    color: #fff;
    flex-shrink: 0;
}

.single-event-container .event-label-content {
    margin: 0;
    line-height: 1.6;
    /* 三点リーダー設定を解除 */
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    max-width: none;
}

/* スマホでは縦並びに */
@media (max-width: 900px) {

    .single-event-header {
        margin-bottom: 20px;
    }

    .single-event-mv {
        margin-bottom: 10px;
    }

    .single-event-title {
        font-size: 24px;
    }

    .single-event-container .event-label-wrapper {
        /*flex-direction: column;
        gap: 5px;*/
    }

    .single-event-container .event-label-wrapper {
        padding-top: 0;
        padding-bottom: 5px;
    }
}


/*
** 固定ページ共通
*/
.page-body {
    padding: 30px 0;
}

.page-main-contents {
    margin: 150px auto;
    max-width: 1500px;
    padding: 0 100px;
}

.page-title {
    font-size: 2rem;
    line-height: 1.4;
    /*max-width: 800px;*/
    /*margin: 0 auto;*/
    font-family: var(--font-jp);
}


/* エディタからの画像がはみ出さないように */
.entry-content img {
    max-width: 100%;
    height: auto;
}

/*アイキャッチ画像設定*/
.page-eyecatch {
    width: 100%;
    /*margin-bottom: 40px;*/
    overflow: hidden;
}

.page-eyecatch img {
    width: 100%;
    height: auto;
    /* 任意の高さ */
    object-fit: cover;
    /* 画像を切り抜いてフィットさせる */
    display: block;
}


@media (max-width: 900px) {
    .page-body {
        padding: 0;
    }

    .page-main-contents {
        margin: 50px auto;
        padding: 0 30px;
    }
}



/**
 * Contact Form 7 Theme Support
 */

/* 1. フォーム全体の最大幅を制限して中央寄せ（読みやすくする） */
.wpcf7 {
    max-width: 700px;
    margin: 0 auto;
}

/* 2. 入力項目（テキスト、メール、メッセージ）の共通スタイル */
.wpcf7-form-control:not(.wpcf7-submit) {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    /* スマホでズームされないための最小サイズ */
    font-family: inherit;
    box-sizing: border-box;
    margin-top: 8px;
    transition: border-color 0.3s, box-shadow 0.3s;
}

/* 入力中（フォーカス時）のスタイル */
.wpcf7-form-control:focus {
    border-color: #000;
    /* テーマのメインカラーに合わせて変更 */
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
    outline: none;
}


/* 3. 送信ボタンをテーマのデザインに合わせる */
.wpcf7-submit {
    display: block;
    width: 240px;
    /* 少し太めのボタン */
    padding: 15px 40px;
    margin: 40px auto 0;
    height: 56px;
    background-color: var(--color-primary);
    /* テーマカラー */
    color: #fff;
    border: none;
    border-radius: 9999px;
    font-weight: bold;
    cursor: pointer;
    transition: opacity 0.3s;
    appearance: none;
}

.wpcf7-submit:hover {
    opacity: 0.8;
}

/* 4. エラーメッセージの装飾（CF7標準の赤文字を少しマイルドに） */
.wpcf7-not-valid-tip {
    color: #f00;
    font-size: 13px;
    margin-top: 5px;
}

.wpcf7-response-output {
    margin: 20px 0 0 !important;
    padding: 15px !important;
    border-radius: 4px;
    text-align: center;
}


/**
* 投稿ページ共通
*/
.single-post-container {
    padding: 60px 0;
}

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

.post-title {
    font-size: 2rem;
    margin: 20px 0;
}

.post-eyecatch {
    /*margin-bottom: 40px;*/
    text-align: center;
}

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

/* ページ送りナビ */
.post-navigation {
    display: flex;
    justify-content: space-between;
    margin-top: 80px;
    padding-top: 40px;
    border-top: 1px solid #eee;
}

/**
* 投稿ページカテゴリー
*/
.archive-container {
    /*padding: 60px 0;*/
}

.post-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 30px;
}

.post-item-link {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: transform 0.3s;
}

.post-item-link:hover {
    transform: translateY(-5px);
}

.post-item-img img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 8px;
}

.post-item-title {
    font-size: 1.25rem;
    margin: 10px 0;
}

.pagination {
    margin-top: 50px;
    text-align: center;
}

.post-footer {
    background-color: #FFF;
}

/* ページネーション全体のスタイル */
.archive-pagination ul {
    display: flex;
    justify-content: center;
    list-style: none;
    gap: 10px;
    margin: 0px;
    padding: 0px;
}

.archive-pagination li a,
.archive-pagination li span {
    display: block;
    padding: 10px 15px;
    text-decoration: none;
    color: #333;
}

/* 現在のページの数字 */
.archive-pagination li span.current {
    background: #333;
    color: #fff;
}

.next span,
.prev span {
    margin: 0 !important;
    padding: 0 !important;
}


/*
 * カスタム投稿ページ共通
 */

/* -----------------------------------------
   個別ページ：コンテンツ内テキストの折り返し設定
----------------------------------------- */

.entry-content {
    /* 枠からはみ出さないように制御 */
    overflow-wrap: break-word;
    word-wrap: break-word;
    /* 以前のブラウザ対応 */

    /* 英単語の途中でも改行を許可する（URLや長い英単語対策） */
    word-break: break-word;
}

/* pタグなどの要素に対しても明示的に指定 */
.entry-content p,
.entry-content li,
.entry-content table,
.entry-content dl {
    max-width: 100%;
    line-height: 1.8;
}

/* 画像がはみ出るのを防止 */
.entry-content img {
    max-width: 100%;
    height: auto;
}

/* 表（テーブル）がスマホではみ出る場合の対応 */
.entry-content .wp-block-table {
    overflow-x: auto;
    display: block;
}



/* =========================================
   ブロックパーツ（ABOUT専用パーツ）
========================================= */

/* -----------------------------------------
   共通
----------------------------------------- */
/* タイトルセクション */
.section-title-group {
    margin: 50px 0;
}

/* タイトル */
.pattern-section-title {
    font-size: 36px;
    font-family: var(--font-jp);
    margin: 10px 0;
}

/* 英語サブタイトル */
.pattern-section-subtitle {
    font-size: 16px;
    font-family: var(--font-en);
    color: var(--color-primary);
    margin: 0;
}

/* -----------------------------------------
   ページ内リンク（Anchor Navigation）
----------------------------------------- */
.about-anchor-nav {
    padding: 20px;
    margin-bottom: 40px;
    border-bottom: 1px solid #eee;
}

.about-anchor-nav p {
    margin: 0 15px !important;
    font-size: 0.9rem;
    font-weight: bold;
}

.about-anchor-nav a {
    text-decoration: none;
    color: #666;
    transition: color 0.3s;
    position: relative;
    padding-bottom: 5px;
}

.about-anchor-nav a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--color-primary);
    transition: width 0.3s;
}

.about-anchor-nav a:hover {
    color: var(--color-primary);
}

.about-anchor-nav a:hover::after {
    width: 100%;
}

@media (max-width: 600px) {
    .about-anchor-nav {
        flex-wrap: wrap;
        gap: 10px;
    }

    .about-anchor-nav p {
        margin: 5px 10px !important;
    }
}



/* -----------------------------------------
   私たちについて (Concept Section)
----------------------------------------- */

/* セクション全体のベース */
.about-concept-section {
    padding: 100px 20px;
    background-color: #fff;
}

/* PC：2カラムのレイアウト（デフォルト） */
.about-concept-columns {
    display: flex;
    gap: 60px;
    /* カラム間の余白 */
    max-width: 1100px;
    margin: 0 auto;
    align-items: center;
    /* 上下中央揃え */
}

/* キャッチコピーのスタイル */
.concept-catchphrase {
    font-size: 2.4rem;
    line-height: 1.5;
    font-weight: bold;
    color: var(--color-primary);
    font-family: var(--font-jp);
    margin: 0;
}

/* 説明文のスタイル */
.concept-description {
    font-size: 1.1rem;
    line-height: 2;
    color: #333;
    font-family: var(--font-jp);
    margin: 0;
}

/* 900px以下のモバイル表示 */
@media (max-width: 900px) {
    .about-concept-section {
        padding: 60px 20px;
    }

    .about-concept-columns {
        display: block;
        /* 縦並びに切り替え */
    }

    /* カラムごとの調整 */
    .about-concept-columns .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
        margin-bottom: 30px;
    }

    /* モバイルでのキャッチコピー */
    .concept-catchphrase {
        font-size: 1.8rem;
        text-align: center;
    }

    /* モバイルでの説明文 */
    .concept-description {
        font-size: 1rem;
        text-align: left;
    }
}


/* -----------------------------------------
   沿革 (History Section)
----------------------------------------- */
/* 沿革セクションのベース */
.about-history-section {
    margin: 0;
    padding: 60px 20px;
    background-color: #f9f9f9;
}

/* タイムラインのリスト構造（PCデフォルト） */
.timeline-list {
    list-style: none;
    padding: 0;
    margin: 40px auto;
    /*max-width: 900px;*/
    width: fit-content;
    position: relative;
}

/* PC：中央の縦線（日付エリアの右側に配置） */
.timeline-list::before {
    content: '';
    position: absolute;
    left: 150px;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: var(--color-primary);
}

.timeline-list li {
    position: relative;
    padding-left: 0;
    margin-bottom: 30px;
    display: flex;
    align-items: baseline;
}

/* PC：タイムラインのドット（線の上に重なるように調整） */
.timeline-list li::before {
    content: '';
    position: absolute;
    left: 143px;
    /* 150pxの中心に合わせる (150 - 16/2 + 1) */
    top: 8px;
    width: 16px;
    height: 16px;
    background-color: var(--color-primary);
    border-radius: 50%;
    z-index: 1;
    border: 3px solid #fff;
}

/* PC：日付（右揃えで線の左側に配置） */
.timeline-list li .date {
    flex: 0 0 150px;
    padding-right: 30px;
    font-weight: bold;
    color: var(--color-primary);
    font-size: 1.1rem;
    text-align: right;
    font-family: var(--font-jp);
}

/* PC：内容（線の右側に配置） */
.timeline-list li .content {
    flex: 1;
    padding-left: 30px;
    line-height: 1.6;
    font-family: var(--font-jp);
}

/* 900px以下のモバイル表示 */
@media (max-width: 900px) {

    /* 縦線を左寄りに移動 */
    .timeline-list::before {
        left: 20px;
    }

    .timeline-list li {
        display: block;
        padding-left: 50px;
    }

    /* ドットを左の線上に移動 */
    .timeline-list li::before {
        left: 13px;
    }

    /* 日付を通常の並びに戻す */
    .timeline-list li .date {
        display: block;
        width: auto;
        padding-right: 0;
        text-align: left;
        margin-bottom: 5px;
    }

    /* 内容の余白を調整 */
    .timeline-list li .content {
        display: block;
        padding-left: 0;
    }
}


/* -----------------------------------------
   メンバー紹介 (Member Section)
----------------------------------------- */

/* セクション全体のベース */
.about-member-section {
    padding: 0;
    background-color: #fff;
}

/* PC：2列（2カラム）のレイアウト */
.member-list-columns {
    display: flex;
    flex-wrap: wrap !important;
    gap: 40px;
    max-width: 1100px;
    margin: 20px auto;
}

/* 各メンバーのカード */
.member-card {
    flex: 0 0 calc(50% - 20px) !important;
    /* PCは2列 */
    margin-bottom: 40px;
}

/* 写真と情報のフレックスコンテナ */
.member-flex-container {
    display: flex !important;
    align-items: flex-start;
    gap: 25px;
    margin: 20px;
}

/* 写真を丸く切り抜く */
.member-photo {
    flex: 0 0 120px;
    /* 写真のサイズ固定 */
    margin: 0 !important;
}

.member-photo img {
    width: 120px !important;
    height: 120px !important;
    border-radius: 50%;
    object-fit: cover;
}

/* テキスト情報のエリア */
.member-info {
    flex: 1;
}

.member-job {
    font-size: 0.85rem;
    color: var(--color-primary);
    margin-bottom: 5px !important;
}

.member-name {
    font-size: 1.3rem;
    font-weight: bold;
    margin-bottom: 10px !important;
}

.member-text {
    font-size: 0.95rem;
    line-height: 1.6;
    color: #555;
}

/* 900px以下のモバイル表示 */
@media (max-width: 900px) {

    .member-list-columns {
        gap: 0;
        margin: 0 auto;
    }

    .member-card {
        flex: 0 0 100% !important;
        /* スマホは1列 */
        flex-wrap: nowrap !important;
    }

    .member-flex-container {
        gap: 20px;
        margin: 10px auto;
    }

    .member-photo {
        flex: 0 0 100px;
    }

    .member-photo img {
        width: 100px !important;
        height: 100px !important;
    }

    .member-name {
        font-size: 1.15rem;
    }
}

/* -----------------------------------------
   4. 会社概要 (Company Profile Table)
----------------------------------------- */
.about-profile-section {
    padding: 40px 80px;
    margin: 0 auto;
    background-color: #f9f9f9;
    margin: 0;
}

.profile-table {
    margin: 0 !important;
    max-width: 900px;
    margin: 0 auto !important;
    text-align: center;
    border: 0 !important;
}

.profile-table table {
    width: 100%;
    font-family: var(--font-jp);
}

.profile-table tr {
    background-color: transparent !important;
}

.profile-table th,
.profile-table td {
    padding: 35px 0;
    border-bottom: 1px solid #d8d8d8 !important;
    background-color: transparent !important;
    font-size: 1rem;
    line-height: 1.6;
    text-align: left;
}

.profile-table th {
    width: 30%;
    background-color: #fff;
    font-weight: bold;
    color: #333;
    text-align: center;
}

@media (max-width: 600px) {

    .about-profile-section {
        padding: 40px 20px;
    }

    .profile-table th,
    .profile-table td {
        display: block;
        width: 100%;
        padding: 15px;
    }

    .profile-table th {
        border-bottom: none !important;
        padding-bottom: 5px;
        text-align: left;
    }

    .profile-table td {
        /*padding-top: 5px;*/
    }
}


/* =========================================
   ブロックパーツ（BUSINESSパーツ）
========================================= */

/* カラム全体のレイアウト */
.business-split-columns {
    display: flex !important;
    gap: 5% !important;
    /* PCでのカラム間余白 */
    margin-bottom: 2em;
    align-items: center !important;
    /* 全体を垂直中央揃えに */
}

/* 親カラム自体の垂直中央揃え */
.business-split-columns>.wp-block-column {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    /* 中身を中央へ */
    height: auto !important;
}

/* 画像カラム（左側）の幅を約35%に制限 */
.business-split-columns>.wp-block-column:first-child {
    flex-basis: 35% !important;
    width: 35% !important;
}

/* テキストカラム（右側）を調整 */
.business-split-columns>.wp-block-column:last-child {
    flex-basis: 60% !important;
    width: 60% !important;
}

/* 左側画像の設定：縦長(2:3)に強制固定 */
.business-split-image {
    margin: 0 !important;
}

.business-split-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 2 / 3;
    object-fit: cover;
    object-position: center;
    border-radius: 0px;
    display: block;
}

/* 右側コンテンツのラップ要素 */
.business-split-content-wrap {
    padding: 20px 0;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    /* 中央揃え */
    height: 100% !important;
}

/* 【重要】自動挿入される inner-container 内でも要素の間隔を広げる */
.business-split-content-wrap>.wp-block-group__inner-container {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 40px !important;
    /* タイトル・文章・ボタンの間の隙間を広く設定 */
}

/* タイトルのスタイリング */
.business-split-title {
    font-size: 1.8rem;
    line-height: 1.4;
    margin: 0 !important;
    /* 余白は gap で制御 */
    font-weight: bold;
    color: #333;
    font-family: var(--font-jp);
    text-align: left;
    /* 左揃え */

}

/* 本文テキストのスタイリング */
.business-split-text {
    /*  font-size: 1rem;*/
    line-height: 1.8;
    color: #333;
    margin: 0 !important;
    /* 余白は gap で制御 */
    font-family: var(--font-jp);
    text-align: left;
    /* 左揃え */
    margin-bottom: 20px !important;
}

/* ボタンエリア */
.business-split-buttons {
    margin: 0 !important;
    display: flex !important;
    justify-content: center !important;
    /* ボタンのみ左右中央に */
}

.business-split-btn .wp-block-button__link {
    background: var(--color-primary);
    color: #fff;
    padding: 15px 50px !important;
    text-decoration: none;
    border-radius: 9999px;
    transition: opacity 0.3s;
    font-size: 16px;
    min-width: 240px;
    text-align: center;
}

.business-split-btn .wp-block-button__link:hover {
    opacity: 0.8;
}

/* --- レスポンシブ対応 --- */

/* 900px以下で1カラム（スマホ・タブレット表示）に切り替え */
@media (max-width: 900px) {
    .business-split-columns {
        flex-direction: column !important;
        gap: 30px !important;
    }

    .business-split-columns>.wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
    }

    /* 画像とテキストのカラム幅を共に100%に強制 */
    .business-split-columns>.wp-block-column:first-child,
    .business-split-columns>.wp-block-column:last-child {
        flex-basis: 100% !important;
        width: 100% !important;
    }

    .business-split-content-wrap>.wp-block-group__inner-container {
        gap: 25px !important;
        /* スマホ時は少し隙間を詰める */
    }

    .business-split-image img {
        width: 100% !important;
        /* 画像幅を100%に */
        aspect-ratio: 3 / 2;
        max-height: 350px;
    }

    .business-split-title,
    .business-split-text {
        text-align: left;
        /* スマホ時も左揃えを維持（中央にしたい場合は center へ） */
    }

    .business-split-title {
        font-size: 1.5rem;
    }
}

/* -----------------------------------------
   BUSINESS：FAQ（アコーディオン）
----------------------------------------- */

.business-faq-section {
    /*max-width: 900px;*/
    margin: 0 auto;
    /*padding: 40px 0;*/
}

.business-faq-item {
    margin-bottom: 15px !important;
}

/* details要素の基本リセット */
.business-faq-details {
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    transition: all 0.3s ease;
}

/* 質問部分（summary） */
.business-faq-details summary {
    list-style: none;
    /* デフォルトの三角を消す */
    cursor: pointer;
    padding: 20px 60px 20px 70px;
    /* アイコン分の余白 */
    position: relative;
    font-weight: bold;
    font-size: 1.1rem;
    color: #333;
    user-select: none;
    transition: background 0.3s;
}

.business-faq-details summary::-webkit-details-marker {
    display: none;
    /* Safari用の三角消し */
}

.business-faq-details summary:hover {
    background-color: #f9f9f9;
}

/* Qアイコン（左側） */
.business-faq-details summary::before {
    content: "Q";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    background-color: var(--color-primary, #0073aa);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: serif;
    font-size: 18px;
}

/* 矢印アイコン（右側） */
.business-faq-details summary::after {
    content: "";
    position: absolute;
    right: 25px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid #999;
    border-bottom: 2px solid #999;
    transition: transform 0.3s;
}

/* 開いている時のスタイル */
.business-faq-details[open] {
    border-color: var(--color-primary, #0073aa);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.business-faq-details[open] summary {
    border-bottom: 1px solid #eee;
}

.business-faq-details[open] summary::after {
    transform: translateY(-20%) rotate(-135deg);
    /* 矢印を上向きに */
}

/* 回答部分（中身） */
.business-faq-details p {
    padding: 20px 30px 20px 70px;
    margin: 0 !important;
    line-height: 1.8;
    color: #555;
    background-color: #fcfcfc;
    position: relative;
}

/* Aアイコン（左側：任意） */
.business-faq-details p::before {
    content: "A";
    position: absolute;
    left: 20px;
    top: 22px;
    font-weight: bold;
    color: var(--color-primary, #0073aa);
    font-size: 20px;
}

/* スマホ対応 */
@media (max-width: 600px) {
    .business-faq-details summary {
        padding: 15px 50px 15px 60px;
        font-size: 1rem;
    }

    .business-faq-details summary::before {
        width: 28px;
        height: 28px;
        font-size: 14px;
        left: 15px;
    }

    .business-faq-details p {
        padding: 15px 20px 15px 60px;
    }

    .business-faq-details p::before {
        left: 20px;
        top: 15px;
    }
}




/* =========================================
   カスタムCSS　固定ページ　追加用クラス
========================================= */

/* PDFのアイコン付与 */
/* リンク全体の共通設定 */
.pdf-icon a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    /* テキストとアイコンの間隔 */
    text-decoration: underline;
    transition: opacity 0.3s;
}

.pdf-icon a:hover {
    opacity: 0.7;
}

/* テキストの右側に擬似要素でアイコンを作成 */
.pdf-icon a::after {
    content: "PDF";
    /* アイコン内に表示する文字 */
    display: inline-block;
    background-color: #e02f2f;
    /* PDFをイメージする赤色 */
    color: #ffffff;
    font-size: 10px;
    font-weight: bold;
    font-family: sans-serif;
    line-height: 1;
    padding: 3px 4px;
    border-radius: 2px;
    vertical-align: middle;
    /* アイコンの形状を少し紙っぽくする装飾（任意） */
    box-shadow: 1px 1px 0px rgba(0, 0, 0, 0.2);
    flex-shrink: 0;
    /* アイコンが潰れないように固定 */
}

/* スクリーンリーダー向けの配慮（オプション） */
/* 必要に応じて、アイコンが何であるかを示すツールチップなどを追加することも可能 */
.pdf-icon a[target="_blank"]::after {
    /* 別タブで開く場合は、必要に応じてさらにアイコンを追加したりできます */
}

/* 900px以下の調整（必要に応じて） */
@media (max-width: 900px) {
    .pdf-icon a {
        gap: 6px;
    }

    .pdf-icon a::after {
        font-size: 9px;
        padding: 2px 3px;
    }
}

/*Pタグ調整*/
.plate-paragraph,
.plate-paragraph-850 {
    margin: 0 auto;
    line-height: 1.8;
    font-size: 1.1rem;
    font-family: var(--font-jp);
}

.plate-paragraph-850 {
    max-width: 850px;
}

@media (max-width: 900px) {

    .plate-paragraph,
    .plate-paragraph-850 {
        font-size: 14px;
    }
}

/* リンクボタン */


.plate-btn a {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    padding: 15px 40px;
    text-decoration: none;
    border-radius: 9999px;
    transition: opacity 0.3s;
}

.plate-btn a:hover {
    opacity: 0.8;
}



/* LP用 */


/* 動画ブロック */
#movie {
    max-width: 1440px;
    min-height: 700px;
    background-color: #fff;
    margin-left: auto;
    margin-right: auto;
    padding: 50px 95px;
}

h2 {
    font-family: var(--font-jp);
    font-size: 32px;
    color: #000;
}

.video-list {
    display: flex;
    column-gap: 20px;
    margin: 80px 0px;
}

.video-item {
    width: 400px;
    height: 100%;
    overflow: hidden;
}

.video-item iframe {
    max-height: 300px;
}


@media (max-width: 900px) {
    h2 {
        font-size: 24px;
        margin: 40px 0;
        text-align: center;
    }

    #movie {
        padding: 20px 15px;
    }

    .video-list {
        display: flex;
        margin: 40px 0px;
        flex-direction: column;
        align-items: center;
    }

    .video-item {
        /*
        width: 100%;
        height: auto;
        overflow: hidden; 
*/
    }
}



/* 会社情報 */
#company {
    max-width: 1440px;
    min-height: 700px;
    background-color: #F7F7F7;
    margin-left: auto;
    margin-right: auto;
    padding: 50px 95px;
}

.company-description {
    max-width: 620px;
    font-size: 24px;
    color: #000;
    margin: 80px auto;

}

.company-detail-table {
    max-width: 800px;
    margin: 60px auto;
    border-spacing: 0;
}

.company-detail-table tr {
    height: 60px;

}

.company-detail-table th,
.company-detail-table td {
    border-bottom: 1px solid #000;
    font-size: 16px;
}

.company-detail-table td {
    padding-left: 50px;
}


@media (max-width: 900px) {
    #company {
        padding: 20px 15px;
        min-height: 300px;
    }

    .company-description {
        margin: 20px auto;
        font-size: 18px;
    }

    .company-detail-table {
        margin: 20px auto;
    }

    .company-detail-table th,
    .company-detail-table td {
        font-size: 14px;
    }

}


/* 働く人の声 */
#voice {
    max-width: 1440px;
    min-height: 700px;
    background-color: #fff;
    margin-left: auto;
    margin-right: auto;
    padding: 50px 95px;
}

#voice h2 {
    margin-bottom: 100px;
}

.voice-item {
    display: flex;
    margin-bottom: 80px;
}

.voice-image-wrap {
    flex-shrink: 0;
    width: 40%;
}

.voice-image {
    max-width: 500px;
    width: 100%;
}

.voice-text-wrap {
    /*    width: 50%;*/
    padding-left: 50px;
    word-break: break-all;

}

.voice-meta h3 {
    font-size: 24px;
    font-weight: 400;
}

.voice-text p {
    font-size: 16px;
    line-height: 2;

}


@media (max-width: 900px) {
    #voice {
        padding: 20px 15px;
    }

    #voice h2 {
        margin-bottom: 20px;
    }

    .voice-item {
        display: block;
        margin-bottom: 40px;
    }

    .voice-image-wrap {
        width: 100%;
        text-align: center;

    }

    .voice-image {
        /*        width: auto;*/
    }

    .voice-text-wrap {
        padding-left: 0px;

    }

    .voice-meta h3 {
        font-size: 18px;
    }

    .voice-text p {
        font-size: 14px;
        line-height: 2;
    }

}


/* 特徴 */
#feature {
    max-width: 1440px;
    min-height: 400px;
    background-color: #F7F7F7;
    margin-left: auto;
    margin-right: auto;
    padding: 50px 95px;
}

.feature-list {
    display: flex;
    flex-wrap: wrap;
}

.feature-item {
    width: 25%;
    display: flex;
}

.feature-icon {
    width: 120px;
}

.feature-text p {
    font-size: 14px;
}

.feature-content {
    word-break: break-all;
}

@media (max-width: 900px) {
    #feature {
        padding: 20px 15px;
    }

    .feature-list {

        /*        width: 100%;*/
    }

    .feature-item {
        flex-direction: column;
        /* 子要素を縦に並べる */
        width: 50%;
        padding: 5px 20px;
    }

    .feature-title {
        font-size: 18px;
    }
}


/* 採用までの流れ */
#flow {
    max-width: 1440px;
    min-height: 500px;
    background-color: #fff;
    margin-left: auto;
    margin-right: auto;
    padding: 50px 95px;
}

.flow-list {
    display: flex;
    /*    flex-wrap: wrap;*/
    column-gap: 50px;
    justify-content: center;
    margin: 80px 0px;
}

.flow-item {
    width: 250px;
    min-height: 250px;
    text-align: center;
    padding: 15px;
    position: relative;
    background-color: #EFF2F6;
}

.flow-item:not(:last-child):after {
    content: "";
    top: 90px;
    right: -40px;
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 30px solid transparent;
    border-bottom: 30px solid transparent;
    border-left: 30px solid var(--color-primary);
    border-right: 0;
    z-index: 1;
}

.flow-text {
    font-size: 14px;
}


@media (max-width: 900px) {
    #flow {
        padding: 20px 15px;
    }

    .flow-list {
        flex-direction: column;
        /* 子要素を縦に並べる */
        margin: 20px 0px;
    }

    .flow-item {
        margin: 25px auto;
    }


    .flow-item:not(:last-child):after {
        top: auto;
        bottom: -40px;
        right: 95px;
        border-top: 30px solid var(--color-primary);
        border-bottom: 0;
        border-left: 30px solid transparent;
        border-right: 30px solid transparent;
    }

}


/* 募集要項 */
#description {
    max-width: 1440px;
    min-height: 500px;
    background-color: #F7F7F7;
    margin-left: auto;
    margin-right: auto;
    padding: 50px 95px;
}

.description-detail-table {
    max-width: 800px;
    margin: 60px auto;
    border-spacing: 0;
}

.description-detail-table tr {
    height: 60px;

}

.description-detail-table th,
.description-detail-table td {
    border-bottom: 1px solid #000;
    font-size: 16px;
}

.description-detail-table th {
    width: 150px;
    height: 150px;
}

.description-detail-table td {
    padding: 0px 50px;
}


@media (max-width: 900px) {
    #description {
        padding: 20px 15px;
    }

    .description-detail-table {
        margin: 20px auto;
    }

    .description-detail-table th,
    .description-detail-table td {
        font-size: 14px;
    }

    .description-detail-table th {
        width: 100px;
    }

    .description-detail-table td {
        padding: 0px 5px;
    }

}


/* 応募 */
#apply {
    max-width: 1440px;
    min-height: 800px;
    background-color: #fff;
    margin-left: auto;
    margin-right: auto;
    padding: 50px 95px;
}

.apply-buttons-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.apply-buttons-wrap p {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 20px !important;
}

.apply-button {
    text-align: center;
    margin-bottom: 50px;
}

.apply-phone-button {
    color: var(--color-primary);
    text-decoration: underline;
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0.1em;
}

/* 一体型フォーム */
.apply-form {
    width: 100%;
    background-color: #F7F7F7;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 50px;
    margin-bottom: 50px;
}

.apply-form-title {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 20px !important;
    text-align: center;
}

.apply-form form {
    width: 700px;
}


.apply-form label {
    font-size: 20px;
    font-weight: 500;
    font-family: var(--font-jp);
}

.apply-form input,
.apply-form textarea {
    width: 100%;
    background-color: #EBEBEB;
    border: 0;
    border-radius: 0;
}

.apply-form input[type="submit"] {
    display: block;
    text-align: center;
    width: 400px;
    height: 60px;
    border-radius: 9999px;
    background-color: var(--color-primary);
    color: #ffffff;
    padding: 0;
    margin: 50px auto;
    font-size: 24px;
    font-family: var(--font-jp);
    cursor: pointer;
}

/* 外部応募フォームボタン */
.apply-form-button {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    text-align: center;
    width: 400px;
    height: 60px;
    border-radius: 9999px;
    background-color: var(--color-primary);
    color: #ffffff;
    padding: 0;
    font-size: 24px;
}

/* LINEボタン */
.apply-line-button {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    text-align: center;
    width: 313px;
    height: 60px;
    border-radius: 9999px;
    background-color: #42D54C;
    color: #ffffff;
    padding: 0;
    font-size: 24px;
}


@media (max-width: 900px) {
    #apply {
        padding: 20px 15px;
    }

    .apply-buttons-wrap p {
        font-size: 20px;
    }

    .apply-phone-button {
        font-size: 20px;
    }

    .apply-form label {
        font-size: 14px;
    }

    .apply-form {
        display: block;
        padding: 0px;
        margin-bottom: 10px;
    }

    .apply-form form {
        width: 100%;
        padding: 10px;
    }

    .apply-form input[type="submit"] {
        width: 100%;
    }
}


/* フッター */
footer {
    /*    min-width: 1440px;*/
    width: 100%;
    margin: 0 auto;
    padding: 50px 100px 100px 100px;
    background-color: #F7F7F7;
    text-align: center;
}

.footer-inner {
    display: flex;
}


/*
.footer-nav{
    margin-bottom: 50px;
    font-size: 14px;
}

.footer-nav a{
    color:#000;
    text-decoration: underline;
}
*/

.copyright {
    font-size: 14px;
}

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

.footer-menu-list a {
    text-decoration: none;
    color: inherit;
    font-size: 0.9rem;
}

.footer-menu-list a:hover {
    text-decoration: underline;
}

/* フッターSNSアイコン */
.footer-sns-list {
    display: flex;
    justify-content: left;
    /* 左寄せ */
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 20px 0;
}

.footer-sns-list a {
    color: #333;
    /* アイコンの色 */
    font-size: 24px;
    text-decoration: none;
    transition: opacity 0.3s;
}

.footer-sns-list a:hover {
    opacity: 0.7;
}

/* Dashiconsを使う場合、フォントサイズを調整 */
.footer-sns-list .dashicons {
    width: 28px;
    height: 28px;
    font-size: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fa-twitter:before {
    content: '𝕏' !important;
    font-family: sans-serif !important;
    font-weight: bold;
    margin-bottom: 4px;
}

/* フッター企業名・住所 */
.footer-info {
    text-align: left;
    margin-left: auto;
}



@media (max-width: 900px) {
    footer {
        padding: 30px;
    }

    .footer-inner {
        flex-direction: column;
        margin-bottom: 30px;
    }

    /* フッターSNSアイコン */
    .footer-sns-list {
        justify-content: left;
        /* 左寄せ */
        gap: 15px;
        margin: 20px 0;
    }

    /* フッター企業名・住所 */
    .footer-info {
        margin-left: 0;
    }
}




/* スクロール追従型CTA設定 */

#cta-button {
    position: fixed;
    bottom: -100px;
    /* 初期位置を画面外に設定 */
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    /*  min-width: 1440px;*/
    background-color: #000;
    padding: 10px;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    z-index: 9999;
    /* 他の要素より上に表示 */
    transition: bottom 0.5s ease-out, opacity 0.5s ease-out;
    /* スムーズな動き */
    opacity: 0;
    /* 初期状態は透明 */
}

#cta-button.visible {
    bottom: 0px;
    /* 画面下部から0pxの位置 */
    opacity: 0.8;
    /* 表示 */
}


.cta-button-wrap {
    display: flex;
    justify-content: center;
    column-gap: 200px;
    margin: 20px;
}

#cta-button a {
    width: 250px;
    height: 50px;
    display: block;
    text-align: center;
    border-radius: 9999px;
    color: #ffffff;
    text-decoration: none;
    font-size: 16px;
}

.cta-apply-button {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    background-color: var(--color-primary);
}


.cta-line-button {
    display: inline-block;
    align-content: center;
    box-sizing: border-box;
    background-color: #42D54C;
}


@media (max-width: 900px) {
    #cta-button.visible {
        opacity: 0.9;
        /* 表示 */
    }

    .cta-button-wrap {
        column-gap: 20px;
    }
}


/* プライバシーポリシー テンプレート */
.privacy {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 25px;
}

.privacy h2 {
    /*    text-align: center;    */
}

/* 404 テンプレート */
.error-404 {
    max-width: 1440px;
    min-height: 500px;
    margin: 0 auto;
    padding: 0 25px;
    text-align: center;
}


.error-404 h1 {
    margin-top: 100px;
}



/*ページ共通*/
.none {
    display: none !important;
}