/*!
Theme Name: Stellviator
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: stellviator
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.

Stellviator 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
	- CheckDisplay
	- :root-set
	- 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;
	padding: 0;
    font-size: var(--font-size-base);
}

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

body * {
    box-sizing: border-box;
}
/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* - CheckDisplay
--------------------------------------------- */
/*- Check-Parts*/
header,
main,
footer {
/*	border: 1px solid #990000;*/
}
/*- Check-Layauts*/
/*- custumd*/
.site-header,
.site-main,
.site-footer {
/*	border: 1px solid #990000;*/
	margin-bottom: 20px;
}

.site-header {
	margin-bottom: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
    width: 100%;
	height: 70px;
	position: relative;
    z-index: 100;
/*    background: #FFFFFF;*/
	background: rgba(255,255,255,0);
/*	border-bottom: 4px solid #2A93D5;*/
}

/* site-header 内の nav（main-navigation）を縦いっぱいに伸ばす */
.site-header nav.main-navigation {
	height: 100%;
	align-self: stretch;
}

.site-header nav.main-navigation > div {
	height: 100%;
}

.site-main {
/*	overflow-x: hidden;*/
    margin-bottom: 0;
    margin-top: -70px;
    z-index: -1;
    z-index: 2;
}

#masthead {
    /*display: none;*/
}
.single #masthead,
.archive #masthead,
.page-template-page-sub #masthead {
    display: flex;
}

/* - margin-and-padding
--------------------------------------------- */
.margin-bottom-0 {
	margin-bottom: 0 !important;
}
.padding-bottom-0 {
	padding-bottom: 0 !important;
}
.margin-bottom-20 {
	margin-bottom: 20px !important;
}
.padding-bottom-20 {
	padding-bottom: 20px !important;
}
.margin-bottom-70 {
	margin-bottom: 70px !important;
}
.padding-bottom-70 {
	padding-bottom: 70px !important;
}
.margin-bottom-110 {
	margin-bottom: 110px !important;
}
.padding-bottom-110 {
	padding-bottom: 110px !important;
}


.margin-top-0 {
	margin-top: 0 !important;
}
.padding-top-0 {
	padding-top: 0 !important;
}
.margin-top-50 {
	margin-top: 50px !important;
}
.padding-top-50 {
	padding-top: 50px !important;
}
.margin-top-70 {
	margin-top: 70px !important;
}
.padding-top-70 {
	padding-top: 70px !important;
}
.margin-top-110 {
	margin-top: 110px !important;
}
.padding-top-110 {
	padding-top: 110px !important;
}
/* - :root-set
--------------------------------------------- */
/*変数*/
:root {
	--primary-width-01:100vw;/*MV基準値*/
	--primary-width-02:100%;/*MV基準値*/
	--primary-width-03:100;/*単位無し｜class指定時に単位付与*/
	--primary-max-width-01:1920px;
	--primary-max-width-02:1280px;
	--primary-theme-main-color:#333333;
	--primary-theme-sub-color-01:#EEEEEE;
	--primary-theme-sub-color-02:#AAAAAA;
	--primary-theme-accent-color:#3597ff;


    /*
    Major third
    375-min-12px 1920-max-16px
    */
    --font-size-sm: clamp(0.6rem, 0.21vw + 0.55rem, 0.8rem);
    --font-size-base: clamp(0.75rem, 0.26vw + 0.69rem, 1rem);
    --font-size-md: clamp(0.94rem, 0.32vw + 0.86rem, 1.25rem);
    --font-size-lg: clamp(1.17rem, 0.4vw + 1.08rem, 1.56rem);
    --font-size-xl: clamp(1.46rem, 0.51vw + 1.35rem, 1.95rem);
    --font-size-xxl: clamp(1.83rem, 0.63vw + 1.68rem, 2.44rem);
    --font-size-xxxl: clamp(2.29rem, 0.79vw + 2.1rem, 3.05rem);

    /* 見出しレベル要素ごとのフォントサイズ */
    --font-size-h1: 2em;
    --font-size-h2: 1.5em;
    --font-size-h3: 1.17em;
    --font-size-h4: 1em;
    --font-size-h5: 0.83em;
    --font-size-h6: 0.67em;
  
    /* 基本背景カラー */
    --background-color-primary: #ffffff;
    --background-color-secondary: #f0f0f0;
    --background-color-tertiary: #d8d8d8;
    --background-color-ex-01: #FAFAFA;
    --background-color-test: #EEEEEE;
  
    /* 基本フォントカラー */
    --font-color-primary: #323232;
    --font-color-secondary: #666666;
    --font-color-tertiary: #999999;
  
    /* 基本リンクカラー */
    --link-color: #1DADE2;
    /*--link-color: #007aff;*/
    --link-color-hover: #1DADE2;
    --link-color-visited: #1DADE2;
  
    /* Swiper */
    --swiper-navigation-color: #007aff; /* ナビゲーションボタンの色 */
    --swiper-pagination-color: #007aff; /* ページネーションの色 */
  
    /* その他 */
    --border-color: #cccccc; /* ボーダーの色 */
    --border-radius: 4px; /* ボーダーラウンドの半径 */

      
    /* 余白設定 */
    --margin-top-0: 0px;
    --margin-top-10: 10px;
    --margin-top-20: 20px;
    --margin-top-30: 30px;
    --margin-top-40: 40px;
    --margin-top-50: 50px;
    --margin-top-60: 60px;
    --margin-top-70: 70px;
}

/*scrollbar
--------------------------------------------- */
/* 全体のスクロールバーのスタイリング */
::-webkit-scrollbar {
    width: 10px; /* スクロールバーの幅 */
}

/* スクロールバーのトラック（背景部分） */
::-webkit-scrollbar-track {
    background: #f1f1f1; /* 背景色 */
}

/* スクロールバーのサム（操作部分） */
::-webkit-scrollbar-thumb {
    /*background: #6A839B;*/ /* サムの色 */
    background: #DDDDDD; /* サムの色 */
    /*background: #888;  サムの色 */
    border-radius: 4px; /* 角丸の半径 */
}

/* サムにホバーしたときのスタイリング */
::-webkit-scrollbar-thumb:hover {
    background: #555; /* ホバー時の色 */
}
  

/* - Typography
--------------------------------------------- */
/* fonts
--------------------------------------------- */

html {
	/*
	幅320pxデバイスでの基準値＝16px
	幅1440pxでの基準値＝24px
	となりウィンドウサイズによって可変する
	*/
	/*
	レスポンシブ可変PC基準24px、SP基準16px
	*/
	/* Base formula (no clamp): 320px -> 16px, 1440px -> 24px */
	/*font-size: calc((100vw - 320px) / 140 + 16px);*/
    
    /*font-size: calc(16px + (24 - 16) * ((100vw - 320px) / (1920 - 320)));*/

	/* Optional (clamped): prevent growing beyond 24px / shrinking below 16px */
	/* font-size: clamp(16px, calc((100vw - 320px) / 140 + 16px), 24px); */

	/* NG example (invalid calc; kept for reference) */
	/* font-size: calc([16px] + (24px] - [16px]) * ((100vw - [320px]) / ([1920px] - [320px]))); */
}

/*暫定*/
body, html {
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    color: rgba(0,0,0,.88);
/*設定候補-01*/
	/*font-family: "-apple-system","Roboto","Ubuntu","Cantarell","Noto Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo","sans-serif";*/
/*設定候補-02*/
	font-family: YakuHanJP, "Noto Sans JP", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    font-weight: 400;
    line-height: 1.6rem;
}

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

p {
	margin-bottom: 1.5em;
}

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

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;*/
	margin: 0;
}

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

/* Links
--------------------------------------------- */
a {
    background-color: rgba(0, 0, 0, 0);
    text-decoration: none;
  }

a {
	color:var(--link-color);
}

a:visited {
	color: var(--link-color-visited);
}

a:hover,
a:focus,
a:active {
	color:var(--link-color-hover);
}

a:focus {
	outline: none;
}

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

/* 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: block;
	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;
	display: flex;
    align-items: center;
/*	padding: 0 10px 0 10px;*/
}

.main-navigation li::after {
	content: '';
	margin: 0 15px;
	/*border-right:1px solid #CCC ;*/
}

.main-navigation li:last-child::after {
	/* 末尾だけ「区切り用の余白」が残って右端が広く見えるのを防ぐ */
	content: none;
	margin: 0;
}


.main-navigation a {
    display: inline-block;
    padding-bottom: 5px;
    font-weight: 400!important;
    text-decoration: none; /* デフォルトの下線を非表示にする */
    text-align: center;
    color: var(--font-color-primary); /* 文字色 */
    background-image: linear-gradient(90deg, #2b5ca8, #2b5ca8); /* 線の色 */
    background-repeat: no-repeat;
    background-position: left bottom; /* 線の起点を左・下に設定 */
    background-size: 0 1px; /* 線の横幅を0、縦幅を1pxに */
    transition: background-size 0.4s; /* 線を伸ばすアニメーション実行時間を指定 */
}

.main-navigation a:hover {
    background-size: 100% 1px; /* 線の横幅を100%にする */
}

/* ------------------------------------------------------------
 * Two-line global navigation (EN main + JP sub)
 *
 * 既存デザインを壊さないため、nav-main/nav-sub がある時だけ効く最小限の指定。
 * ------------------------------------------------------------ */
.main-navigation a .nav-main,
.main-navigation a .nav-sub,
.nav-box a .nav-main,
.nav-box a .nav-sub {
	display: block; /* aタグ内を縦積みに */
}

.main-navigation a .nav-main,
.nav-box a .nav-main {
	line-height: 1.2; /* 行間を詰める */
    color: #2b5ca8;
    font-weight: 400;
    font-size: calc(var(--font-size-base) * 1.1)!important;
    font-family: 'Montserrat', sans-serif;
/*    font-family: 'Josefin Sans', sans-serif;*/
}

.main-navigation a .nav-sub,
.nav-box a .nav-sub {
	margin-top: 0.15em;
    font-size: var(--font-size-sm);
	line-height: 1.1; /* 行間を詰める */
}

/* 最後の要素に装飾をかけたいときに使用（.link-button-01 と同様：通常時は地の色、ホバーで fill がスライドイン） */
.main-navigation li:last-child {
    border-radius: 0px;
    background: #2b5ca8; /* 通常時の背景 */
    color: #FFF;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    --fill-bg: #0084cb;   /* ホバー時のスライドイン背景 */
    --fill-text: #fff;
}

/* 採用情報に外部リンクアイコン */
.main-navigation li:nth-last-child(2) > a .nav-sub::after{
    content: "\f08e";
    font-family: "Font Awesome 6 Free";
    font-weight: 900; /* Solid */
    display: inline-block;
    margin-left: .35em;
    line-height: 1;
}

/* 
 * 【変更前の記述】
 * .main-navigation li:last-child a {
 *     padding: 5px 15px;
 *     border-radius: 0px;
 *     background: #012e53;
 *     color: #FFF;
 * }
 * 
 * .main-navigation li:last-child a:hover {
 *     background: none;
 * }
 */

.main-navigation li:last-child a {
    padding: 5px 15px;
    border-radius: 0px;
    color: #FFF;
    position: relative;
    z-index: 1;
    background-image: none;
    background-size: 0 1px;
}

/* Sliding fill（.link-button-01 同様：デフォルトは scaleX(0)、ホバーで左からスライドイン） */
.main-navigation li:last-child::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--fill-bg);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 300ms ease;
	z-index: 0;
}

.main-navigation li:last-child:hover,
.main-navigation li:last-child:focus-within {
	color: var(--fill-text);
}

.main-navigation li:last-child:hover::after,
.main-navigation li:last-child:focus-within::after {
	transform: scaleX(1);
}

.main-navigation li:last-child a span {
    color: #FFF!important;
}
.main-navigation li:last-child:hover a span,
.main-navigation li:last-child:focus-within a span {
    color: #FFF!important;
}

.main-navigation li:last-child a:hover {
    background-size: 0 1px;
}



/* Footer menu. */
.main-navigation-footer {
/*	display: none;*/
/*	width: 100%;*/
	display: flex;
    justify-content: flex-end;
	align-items: center;
	flex: 0 1 auto;
	min-width: 0;
    gap: 3rem;
	flex-shrink: 1;
}

@media screen and (max-width: 768px) {
	.main-navigation-footer > div > ul {
        display: flex;
        justify-content: center;
        align-items: center;
        flex: 0 1 auto;
        min-width: 0;
        gap: 0rem;
        flex-shrink: 1;
        width: 100%;
    }
    .main-navigation-footer-lp ul li:last-child {
        padding: 0 20px 0 20px!important;
    }
}

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


@media screen and (min-width: 769px) {

	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
		justify-content: flex-end;
        height: 100%;
	}
}


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

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

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

.entry-content {
	/*padding-top: 50px;*/
    margin-top: -10px;
    background-color: #FFF;
    padding-bottom: 0px;
}

.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;
    font-size: var(--font-size-sm);
}

/* 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
--------------------------------------------------------------*/
/* Utility: font family */
.u-font-josefin { font-family: 'Josefin Sans', sans-serif; }
.u-font-montserrat { font-family: 'Montserrat', sans-serif; }
.u-font-bahnschrift {
  font-family:
    bahnschrift,
    "Bahnschrift",
    "brandon-grotesque", "Brandon Grotesque",
    "Noto Sans JP",
    sans-serif;
  font-variant-numeric: tabular-nums;
}


/* ?font=font-new: override only Josefin Sans / Montserrat to Brandon Grotesque */
/*
.is-font-new .main-navigation a .nav-main,
.is-font-new .nav-box a .nav-main,
.is-font-new .u-font-josefin,
.is-font-new .u-font-montserrat,
.is-font-new .link-button-01 > a,
.is-font-new #Service .content-card-type-02 .wp-block-column h3 em,
.is-font-new #cta h2,
.is-font-new #Strengths .content-card-type-02 .wp-block-column h3 em {
	font-family: "brandon-grotesque", "Brandon Grotesque", "Noto Sans JP", sans-serif !important;
}
*/
.u-font-josefin,
.u-font-montserrat,
.link-button-01 > a,
#Service .content-card-type-02 .wp-block-column h3 em,
#cta h2,
#Strengths .content-card-type-02 .wp-block-column h3 em {
	font-family: "brandon-grotesque", "Brandon Grotesque", "Noto Sans JP", sans-serif !important;
}

/* Utility: background */
.bg-gradient-primary {
	background: linear-gradient(
		135deg,
		#2b5ca8 0%,
		#1f75bc 55%,
		#0084cb 100%
	);
}
.paragraph-center {
	text-align: center!important;
}

/* 見出し＋サブ（MEDIA など）デザイン：大見出し＋細線＋サブ文言（.section-subtitle を付与） */
.wp-block-group__inner-container > h2.section-title:has(+ .section-subtitle) {
	width: fit-content;
	margin-inline: auto;
	font-weight: 900;
	color: #fff;
	margin-bottom: 0.5em;
}
.wp-block-group__inner-container > h2.section-title + .section-subtitle {
	width: var(--heading-width, 20ch);
	margin-inline: auto;
	display: flex;
	align-items: center;
	gap: 0.75em;
	color: #fff;
	font-size: var(--font-size-sm);
	margin-top: 0;
	margin-bottom: 1.5rem;
}
.wp-block-group__inner-container > h2.section-title + .section-subtitle::before {
	content: '';
	flex: 1 1 0;
	min-width: 0;
	height: 1px;
	background: #fff;
}

/* #cta（パターン cta-section）：見出し＋サブタイトルセット時のみ（.section-title + .section-subtitle） */
#cta .wp-block-group > h2.section-title:has(+ .section-subtitle) {
	width: fit-content;
	margin-inline: auto;
	font-weight: 900;
	color: #fff;
	margin-bottom: 0.5em;
}
#cta .wp-block-group > h2.section-title + .section-subtitle {
	width: var(--heading-width, 20ch);
	margin-inline: auto;
	display: flex;
	align-items: center;
	gap: 0.75em;
	color: #fff;
	font-size: var(--font-size-sm);
	margin-top: 0;
	margin-bottom: 1.5rem;
}
#cta .wp-block-group > h2.section-title + .section-subtitle::before {
	content: '';
	flex: 1 1 0;
	min-width: 0;
	height: 1px;
	background: #fff;
}


/* Utility: Media Tabs (Gutenberg content only) */
#Media .media-tabs__head {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	gap: 12px;
	scrollbar-width: none;
	margin-bottom: 0;
	padding-bottom: 0;
}
#Media .media-tabs__head::-webkit-scrollbar { display: none; }



#Media .media-tabs__head > .wp-block-column {
	flex: 0 0 auto;
	cursor: pointer;
	opacity: 1.0;
	/*border-bottom: 1px solid transparent;*/
	padding: 8px 4px;
	outline: none;
	white-space: nowrap;
    border-radius: 8px 8px 0 0;
    background: #dedede;
    padding: 20px 40px;
}

/* #Media SP: タブを横並びのまま維持し、はみ出たら左右スクロールで表示。ボックス下半分は白で下端の背景画像を隠す */
@media screen and (max-width: 768px) {
    #Media {
        background-image: linear-gradient(to bottom, transparent 0%, transparent 50%, #FFFFFF 50%, #FFFFFF 100%), url(img/bg-media-02.png)!important;
        background-size: auto, cover!important;
        background-position: top center, top -50px center!important;
        background-repeat: no-repeat, no-repeat;
    }
    #Media.content-wrap-base {
        padding-left: 0!important;
        padding-right: 0!important;
    }
	#Media .media-tabs__head {
		display: flex;
		flex-direction: row!important;
		flex-wrap: nowrap!important;
		justify-content: flex-start;
        gap: 4px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
    #Media .media-tabs__head > .wp-block-column {
        max-width: 150px;
        padding: 10px 20px;
    }
    #Media .media-tabs__head > .wp-block-column p {
        font-size: var(--font-size-sm);
    }
}

#Media .media-tabs__head > .wp-block-column > p {
	margin: 0;
    color: #606060;
}

#Media .media-tabs__head > .wp-block-column.is-active {
	opacity: 1;
	border-bottom-color: currentColor;
	border-bottom-color: #FFFFFF;
    background: #FFFFFF;
}

#Media .media-tabs__head > .wp-block-column:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Panels */
#Media .media-tabs__body {
	display: block;
	margin-top: 0px;
}

#Media .media-tabs__body > .wp-block-column {
	display: none;
	width: 100%;
    background: #FFFFFF;
    text-align: center;
    padding: 30px;
}

#Media .media-tabs__body > .wp-block-column.is-active {
	display: block;
    min-height: 800px;
}

/* Temporary: show only the first tab + left-align header (remove when multiple tabs are needed) */
/*
#Media .media-tabs__head > .wp-block-column:not(:first-child),
#Media .media-tabs__body > .wp-block-column:not(:first-child) {
	display: none !important;
}
#Media .media-tabs__head {
	justify-content: flex-start;
	max-width: 900px;
	margin: 0 auto;
}
*/
#Media.content-max-size-full > div {
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
}
/* 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;
}


/* Origin
--------------------------------------------- */
/*ビジュアル｜キャラクター等のレイヤー重ねる場合基準値z-index: 88*/
.chr-v-wrap {
    display: none;
    margin: 0px auto;
	margin-top: 0px;
    /*margin-top: -70px;*/
    padding: 0;
    background-size: 100%;
    background-position: top;
	background-repeat: no-repeat;
    width:  var(--primary-width-02);
    /*height: calc(var(--primary-width) * 0.5625);*/
    /*height: calc(var(--primary-width-01) * 0.385);*/
    height: calc(var(--primary-width-01) * 0.492);
    /*max-width: ;*/
    /*height: calc(100vh - 50px);*/
    position: relative;
    /*位置調整用仮設定計算式*/
    /*width: 75%;*/
    /*width: calc(100vw * 0.50 );*/
    /*height: calc(100vh * 0.95 );*/
    /*position: absolute;*/
    /*位置調整用仮設定計算式*/
    /*bottom: 0;
    right: 10vw;*/
    /*top: 0;*/
    /*align-items: flex-start;
    display: flex;*/
    z-index: 88;
}

.chr-v-wrap::after {
/*	content: "";
	display: block;
	background: #2A93D5;
	height: 10px;
	position: absolute;
    bottom: 0;
    width: 100%;*/
}

/* ヘッダー */
/* logo */
.site-branding {

}

.site-branding h1 {
	margin: 0;
    padding: 0 20px;
    height: 70px;
    line-height: 70px;
    display: flex;
    align-items: center;
}

.site-branding h1 a {
	margin: 0;
    padding: 0 0;
    display: flex;
    align-items: center;
}

.site-branding h1 img {
	max-width: 300px;
	/*max-width: 200px;*/
	/*max-width: 250px;*/
    /*height: 40px;*/
}


/* menu */
@media screen and (max-width: 768px) {
    #sp-site-navigation {
        pointer-events: auto; /* 確実にクリック可能にする */
    }
    .sp-main-navigation {
		margin-right: 0px;
		display: flex;
	}
	.menu{
		position: relative;
		margin-right: 20px;
		height: 12px;
		width: 30px;
		z-index: 9999;
		pointer-events: auto; /* 確実にクリック可能にする */
	}
	.menu__line{
		position: absolute;
		left: 0;
		background: #2b5ca8;
		display: block;
		height: 1px;
		transition: transform .3s;
		width: 30px;
	}
	.menu__line--top{
		top: 0;
	}
	.menu__line--bottom{
		bottom: 0;
	}
}

/* jQueryアニメーション用 */
@media screen and (min-width: 769px) {
	.nav-box {
		display: none;
	}
}

@media screen and (max-width: 768px) {
	/* ×時：囲んでいる nav をヘッダー高さいっぱいにし背景 #2b5ca8。線は白（仮） */
	.sp-main-navigation:has(.menu .menu__line.active) {
		background: #2b5ca8;
		align-self: stretch;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		min-width: 70px;
		box-sizing: border-box;
	}
	.menu:has(.menu__line.active) {
		background: transparent;
	}
	.menu__line--top.active{
		transform: translate(0, 5.5px) rotate(45deg);
		background-color: #ffffff;
	}
	.menu__line--bottom.active{
		transform: translate(0, -5.5px) rotate(135deg);
		background-color: #ffffff;
	}

	/*nav*/
	#main-nav-pc{
		/*非表示中｜複数ページタイプメインメニュー*/
		display: none;
	}


	.nav-box {
	    /*margin-top: 69px;*/
		padding-top: 69px;
		display: none;
		width: 100%;
		height: 100vh;
		z-index: 98;
		position: fixed;
		top: 0;
		background: rgba(255,255,255,1.0);
		/*overflow-y: scroll;*/
		overflow: hidden;
        /*background-image: url(img/bg-main.png);*/
        background-size: cover;
        background-position: right bottom;
        background-repeat: no-repeat;
	}
    .nav-box ul {
        margin: 0;
        padding: 0 3% 0 0;
        width: 100%;
        height: auto;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        flex-direction: column;
        list-style: none;
    }
	.nav-box li {
        padding: 5px 10px 5px 30px;
        margin-top: 10px;
        margin-bottom: 0px;
        width: 100%;
	}
	.nav-box li a {
        display: block;
        width: 100%;
        font-size: var(--font-size-base);
        font-weight: 700;
        text-decoration: none;
        color: #323232;
        background: none;
        padding-bottom: 10px;
        border-bottom: 1px solid #DDDDDD;
	}
	/* SPメニュー：最後の項目（お問い合わせ）はCTAボタンで表示するため非表示 */
	.nav-box .sp-menu li:last-child {
		display: none;
	}
	.nav-box {
		/*background: linear-gradient(270deg, #000000, #2d50b1);*/
		/*background: linear-gradient(rgba(0,0,0,1),rgba(45,80,177,1));*/
		/*background: linear-gradient(270deg, rgba(0,0,0,0.95),rgba(30,62,149,0.95));*/
		/*background: linear-gradient(270deg, rgba(255,255,255,0.98),rgba(250,250,250,0.98));*/
        /*background: linear-gradient(rgba(0,185,239,1),rgb(38, 204, 255));*/
        /* background: linear-gradient(rgb(255 255 255), rgb(255, 255, 255)); */
		/* background-size: 400% 400%; */
	
		/* -webkit-animation: AnimationName 30s ease infinite;
		-moz-animation: AnimationName 30s ease infinite;
		animation: AnimationName 30s ease infinite; */
		-webkit-animation: AnimationName 20s ease 1 forwards;
		-moz-animation: AnimationName 20s ease 1 forwards;
		animation: AnimationName 20s ease 1 forwards;
	}
	
	/* @-webkit-keyframes AnimationName {
		0%{background-position:0% 50%}
		50%{background-position:100% 50%}
		100%{background-position:0% 50%}
	}
	@-moz-keyframes AnimationName {
		0%{background-position:0% 50%}
		50%{background-position:100% 50%}
		100%{background-position:0% 50%}
	}
	@keyframes AnimationName {
		0%{background-position:0% 50%}
		50%{background-position:100% 50%}
		100%{background-position:0% 50%}
	}
	 */
	@-webkit-keyframes AnimationName {
		0%{background-position:0% 50%}
		100%{background-position:35% 50%}
	}
	@-moz-keyframes AnimationName {
		0%{background-position:0% 50%}
		100%{background-position:35% 50%}
	}
	@keyframes AnimationName {
		0%{background-position:0% 50%}
		100%{background-position:35% 50%}
	}
	
	.nav-box__wrap {
		padding-top: 10px;
		display: flex;
		justify-content: space-between;
		/*justify-content: center;*/
		/*justify-content: flex-start;*/
		align-items:flex-start;
		flex-direction: column;
		/*align-items:center;*/
		width: 100%;
		/*height: 100vh;*/
		height: 92vh;
		position: absolute;
	}
    .nav-box__wrap div {
		width: 100%;
	}
	/* SPメニュー内 CTA：ベースは #cta.cta と共通。ここは配置・余白のみ */
	.nav-box .nav-box__cta.cta-buttons {
		margin-top: 1.5rem;
		padding: 0 30px 2rem;
		width: 100%;
		box-sizing: border-box;
		flex-shrink: 0;
	}
	.nav-box__menu__item_left {
		margin: 0 0 20px;
		padding: 15px 15px;
		width: 40%;
		max-width: 700px;
		background-color: #FFF;
	}
	
	.nav-box__menu {
		margin: 0 50px 20px;
		padding: 0px 0px;
		/*width: 45%;*/
		max-width: 700px;
	}
	
	.nav-box__menu__item_left h4 {
		margin: 0 0 20px;
		padding: 0px 0px;
	}
	
	.nav-box__menu__item_left h4 img {
		margin: 0;
		padding: 0px 0;
		width: 300px;
	}
	
	.nav-box__menu__item_left iframe {
		box-shadow: 3px 3px 4px #CCC;
	}
	
	.nav-box__menu__item {
		margin: 10px 0 10px;
		padding: 0px;
		width: 100%;
		font-size: 22px;
		font-weight: bold;
		/*color: #fff;*/
		color: #000;
		text-decoration: none;
		transition: .5s;
		list-style: none;
	}
	
	.nav-box__cr {
		margin: 0 auto 20px;
		padding: 10px 0px 0 10px;
		width: 96%;
		/*max-width: 700px;*/
		border-top: 1px solid #FFF;
		font-size: 0.7rem;
		text-align: center;
        color: #FFFFFF;
	}
	
	.nav-box__menu__item h4 {
		margin: 0 0 20px;
		padding: 0px 0px;
	}
	
	.nav-box__menu__item h4 img {
		margin: 0;
		padding: 0px 0;
		width: 300px;
	}
	
	.nav-box-txt {
		margin: 5px 0 0px 0px;
		padding: 0px 0px 20px 0;
		/*border-bottom: 1px solid #000;*/
		font-size: 1.6rem;
		font-weight: normal;
	}
	
	/*
	.nav-box-txt::before {
		font-family: "Font Awesome 5 Free";
		display: inline-block;
		content: '\f105';
		margin: 5px 10px 10px 0px;
		padding: 0px 0px 5px 0;
		color: #007aff;
		text-align: right;
		font-size: 1.6rem;
		font-weight: bold;
	}
	*/
	
	.nav-box-txt a {
		font-size: 1.6rem;
		color: #000;
		text-decoration: none;
	}
	
	.nav-box-txt a:hover {
		color: #333;
		/*color: #007aff;*/
		/*text-decoration: underline;*/
	}
	
	/*aに実装class*/
	/*
	.nav-box__menu__item a {
		padding: 20px;
		font-size: 22px;
		font-weight: bold;
		color: #fff;
		text-decoration: none;
		transition: .5s;
	}
	.nav-box__menu__item a:hover {
		color: #666;
	}
	*/
}

/* フッター */
.site-footer {
    width: 100%;
	margin: 0 auto;
    padding: 10px 0;
    text-align: center;
    background: transparent;
    font-size: var(--font-size-sm);
    font-weight: normal;
    color: #FFF;
}


/* CTAセクションとフッターを一括で囲むラッパー（背景指定用） */
.cta-footer-wrapper {
    /* ここにCTAとフッター共通の背景指定を追加 */
    /* 例: background: #EEEEEE; */
}

.main-navigation-footer-lp {
    background: transparent;
    padding: 0 0 40px!important;
}

.main-navigation-footer-lp > div {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2rem;
}
.main-navigation-footer-lp .nav-area {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex: 0 1 auto;
	min-width: 0;
}
.main-navigation-footer-lp .nav-area-logo {
	flex: 0 0 auto;
	min-width: 300px;
	max-width: 100%;
}
.main-navigation-footer-lp .nav-area p {
    margin: 0;
    padding: 0;
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: #FFFFFF;
    line-height: 1.2;
}
.main-navigation-footer-lp .nav-area .site-description {
    margin-top: 8px;
    word-break: keep-all;
    overflow-wrap: break-word;
}
.main-navigation-footer-lp img {
	max-width: 220px;
}
.main-navigation-footer-lp ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}
.main-navigation-footer-lp ul li {
	margin: 0;
	padding: 0 20px;
	line-height: 1.8rem;
	position: relative;
}
/* 疑似要素でボーダーの上下を透明に */
.main-navigation-footer-lp ul li:not(:last-child)::after {
	content: '';
	position: absolute;
	right: 0;
	top: 7px;
	bottom: 7px;
	width: 1px;
	background-color: #FFFFFF;
}
@media screen and (max-width: 768px) {
    .main-navigation-footer-lp .nav-area-logo {
        margin: 0 auto;
        text-align: center;
    }
    .main-navigation-footer-lp .nav-area-logo p {
        margin-bottom: 10px!important;
    }
}
/* 
 * 【参考】mask-imageを使う方法（要素全体がマスクされるため、テキストも影響を受ける、アニメーション用に残しておく）
 * 
 * .main-navigation-footer-lp ul li:not(:last-child) {
 *     border-right: 1px solid #FFFFFF;
 *     mask-image: linear-gradient(
 *         to bottom,
 *         transparent 0%,
 *         transparent 20%,
 *         black 20%,
 *         black 80%,
 *         transparent 80%,
 *         transparent 100%
 *     );
 *     -webkit-mask-image: linear-gradient(
 *         to bottom,
 *         transparent 0%,
 *         transparent 20%,
 *         black 20%,
 *         black 80%,
 *         transparent 80%,
 *         transparent 100%
 *     );
 * }
 */
.main-navigation-footer-lp ul li:last-child {
    border-right: none;
    padding: 0 0 0 20px;
}
.main-navigation-footer-lp .main-navigation-footer a {
    padding: 5px 0;
    display: inline-block;
    color: #FFFFFF;
    text-decoration: none;
    background-image: linear-gradient(90deg, #FFF, #FFF);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 0 1px;
    transition: background-size 0.4s;
}
.main-navigation-footer-lp .main-navigation-footer a:hover {
    color: #EEEEEE;
    background-size: 100% 1px;
    /*color: #0092ff;*/
    /*text-decoration: underline;*/
}

@media screen and (max-width: 768px) {
    .main-navigation-footer-lp .nav-area p {
        margin-bottom: 40px;
    }
    
}
/* sns */
.main-navigation-footer-lp .footer-sns-wrap {
    padding: 0px 0;
	margin: 0 auto 0;
	display: flex;
	justify-content: center;
	align-items: center;
    width: 100%;
	/*height: 60px;*/
	/*position: absolute;*/
    z-index: 100;
	background: rgba(255,255,255,0);
}
.main-navigation-footer-lp .footer-sns-wrap ul {
	display: flex;
	justify-content: center;
	align-items: center;
    gap: 0;
    width: 100%;
}
.main-navigation-footer-lp .footer-sns-wrap li {
    margin: 0;
    padding: 0;
}
.main-navigation-footer-lp .footer-sns-wrap a {
    display: block;
    font-size: 1px;
}
.main-navigation-footer-lp .footer-sns-wrap img {
    width: 40px;
}

/* qr */
.site-footer .site-qr {
    padding: 30px 0 70px;
	margin: 0 auto 0;
	display: flex;
	justify-content: center;
	align-items: center;
    width: 100%;
    max-width: 400px;
    z-index: 100;
    display: none;
}
.site-footer .site-qr ul {
    padding: 0;
	margin: 0 auto 0;
	display: flex;
	justify-content: center;
    gap: 0.5rem;
    width: 100%;
    list-style: none;
}
.site-footer .site-qr li {
    width: 45%;
    margin: 0;
    padding: 0;
}
.site-footer .site-qr img {
    width: 100%;
    vertical-align: bottom;
}
.site-footer .site-qr p {
    margin: 0;
    padding: 0;
    line-height: 1;
    text-align: center;
}


/*ヘッダー｜固定 */
#fixed-header {
	width: 100%;
    height: 70px;
    position: fixed;
    top: -70px;
    transition: .3s;
    z-index: 999;
/*    background-color: rgba(255,255,255,0.95);*/
    background-color: #FFFFFF;
    /* background-color: rgba(255,255,255,1.0); */
/*    border-bottom: 1px solid #2A93D5;*/
    display: flex;
    justify-content: space-between;

}
#fixed-header.is-show {
    top: 0;
}






/*コンテンツ最大幅設定*/
.content-max-size-01 {
    width: 90%;
    max-width: 1100px;
}

.content-max-size-02 {
    width: 90%;
    max-width: 1100px;
}

.content-max-size-02 .wp-block-columns {
    width: 100%;
/*    max-width: 1080px;*/
}

.content-max-size-full {
    width: 100%;
}

.content-max-size-full > div {
	margin: 0 auto;
    width: 90%;
    max-width: 1100px;
}

/*コンテンツ フレーム*/
.content-wrap-base {
    margin: 0 auto 0px;
    /*padding: 50px 0px 50px;*/
    padding: 70px 0px 70px;
}

/*コンテンツ レイアウト制御*/
.content-center {
	display: flex;
    flex-direction: column;
    align-items: center;
}

/*コンテンツ 装飾制御*/
.bg-color-base {
    background-color: #EBF9FA;
}

.bg-color-accent {
    background-color: #ACDAD5;
}

.bg-color-gray {
    background-color: #fafafa;
}

.bg-color-ex {
    background-color: #efefef;
}

.bg-color-none {
    background:none ;
}

.border-top-gray {
	border-top: 1px solid #CCC;
}

.border-bottom-gray {
	border-bottom: 1px solid #CCC;
}

.border-top-and-bottom-gray {
	border-top: 1px solid #CCC;
	border-bottom: 1px solid #CCC;
}

.border-top-and-bottom-gray > div > div {
	margin-bottom: 0;
}


.site-main{
    position: relative;
}
  
/* 画面固定だが、原点は .entry-content の padding box */
.site-main::before{
}

/* 本文を前面に（必要なら） */
.site-main > *{
}


/* 非表示 */
#office {
	display: none;
}

/* ファーストビュー後 グリッド */
.grid_top_img_box {
    margin: 0 auto;
    width: 100%;
    max-width: 1100px;
}

.grid_top_img_box > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    align-items: stretch; /* 高さを揃える */
}

.grid01 {
    grid-row: span 2; /* 左側の画像が2行分を占める */
    display: flex;
    justify-content: center;
    align-items: stretch; /* 高さを揃えて全体を表示 */
    width: 569px;
}

.grid02, .grid03 {
    display: flex;
    justify-content: center;
    align-items: center;
}

.grid-box img {
    width: auto;
    height: 100%;
    object-fit: contain; /* 縦横比を保ちながら全体を表示 */
}
/* スマホ表示用のスタイル */
@media screen and (max-width: 768px) {
    .grid_top_img_box > div {
        display: block; /* グリッドレイアウトを解除 */
    }
    
    .grid01, .grid02, .grid03 {
        width: 100%; /* 画像を縦に並べるための幅設定 */
        margin-bottom: 10px; /* 画像間のマージンを追加 */
    }

    .grid01 img, .grid02 img, .grid03 img {
        width: 100%;
        height: auto; /* 縦横比を保持しながら縦に並べる */
        object-fit: contain;
    }
}

/* アンケート */
.anc-link-button {
    display: block;
	margin: 10px auto 0 ;
    padding-top: 40px;
}
.anc-link-button > div {
    display: flex;
    justify-content: center;
    gap: 2rem;
}
.anc-link-button p {
    margin: 0;
    padding: 0px 0px!important;
}
.anc-link-button a {
    display: block;
	margin: 0px auto 0 ;
    padding: 10px 30px;
    border-radius: 20px;
    background: rgba(141,140,200,1);
    color: #FFF;
    text-align: center;
    font-weight: 700;
    transition: 0.5s;
}
.anc-link-button a:hover {
    background: rgba(141,140,200,0.7);
}
@media screen and (max-width: 768px) {
    .anc-link-button > div {
        flex-direction: column;
        gap: 1.5rem;
    }
}




/*News-sub*/
.News-sub {
    /*margin-top: var(--margin-top-50)!important;*/
}
#News-list .category {
    display: flex;
    gap: 1rem;
    margin-bottom: 10px;
}
#News-list .category a {
    padding:5px 10px;
    border-radius: 4px;
    background: #F5F4F9;
    color:#6A839B ;
}


.News-sub-details {
    margin-top: var(--margin-top-20);
    padding-top: var(--margin-top-0);
    justify-content: center;
}
#News-nav .link-area-article {
    display: flex;
    justify-content: space-between;
}
#News-nav .link-area-article .link-prevlist {
    border: 1px solid #3693F1;
    padding: 10px;
    border-radius: 4px;
}
#News-nav .link-area-article .link-prevlist::before {
    font-family: "Font Awesome 5 Free";
    content: "\f0d9";
    font-weight: bold;
    color: #3693F1;
    display: inline-block;
    margin-right: 15px;
}
.News-sub-details .link-prev {
    display: inline-block;
    /*margin-right: 45px;*/
}
.News-sub-details .link-prev::before {
    font-family: "Font Awesome 5 Free";
    content: "\f0d9";
    font-weight: bold;
    color: #3693F1;
    display: inline-block;
    margin-right: 15px;
}
.News-sub-details .link-next::after {
    font-family: "Font Awesome 5 Free";
    content: "\f0da";
    font-weight: bold;
    color: #3693F1;
    display: inline-block;
    margin-left: 15px;
}
.News-sub-details .page-numbers {
    display: inline-block;
    margin-left: 8px;
    margin-right: 8px;
}


.News-sub .link-area{
    display: flex;
    justify-content: flex-end;
}
.News-sub .link-more {
    display: inline-block;
    margin: 10px 0 0;
    padding: 3px 15px;
    border: 1px solid #3693F1;
    border-radius: 4px;
    background: #FFFFFF;
    font-size: var(--font-size-base);
    font-weight: 400;
    color: #3693F1;
    transition: 0.5s;
}
.News-sub .link-more:hover {
    display: inline-block;
    margin: 10px 0 0;
    padding: 3px 15px;
    border: 1px solid #3693F1;
    border-radius: 4px;
    /*background: #3693F1;*/
    /*color: #FFFFFF;*/
    font-size: var(--font-size-base);
    font-weight: 400;
}
/*moreview*/
.link-area-moreview{
    display: flex;
    justify-content: center;
}
.link-moreview {
    display: flex;
    flex-direction: column;
    margin: 20px 0 0;
    padding: 10px 30px;
    width: 100%;
    border: 1px solid #3693F1;
    border-radius: 8px;
    background: #3693F1;
    font-size: var(--font-size-md);
    font-weight: 400;
    text-align: center;
    color: #FFFFFF;
    transition: 0.5s;
}
.link-moreview:hover {
    margin: 20px 0 0;
    padding: 10px 30px;
    border: 1px solid #3693F1;
    border-radius: 8px;
    /*background: #3693F1;*/
    color: #FFFFFF;
    font-size: var(--font-size-md);
    font-weight: 400;
}
.link-moreview::after {
    font-family: "Font Awesome 5 Free";
    content: "\f0d7";
    font-weight: bold;
    color: #FFFFFF;
    transition: transform .3s ease-in-out;
    display: inline-block;
}
/* 親要素（.link-more）がhoverされたときに矢印を動かす */
.link-moreview:hover::after {
    transform: translateY(8px);
}


.article-wrap article {
	margin: 70px auto 0;
	margin: 20px auto 0;
	padding: 0;
	width: 100%;
	/*width: 90%;
	max-width: 1100px;*/
}

.article-wrap .entry-header {
	display: flex;
	gap: 1rem;
    margin: 0 auto;
	padding: 1% 4%;
	border-bottom: 1px solid #DDDDDD;
    max-width: 1100px;
}

.article-wrap .post-thumbnail {
    max-width: 240px;
    aspect-ratio: 16 / 9;
}

.article-wrap .post-thumbnail img {
    object-fit: cover;
    aspect-ratio: inherit;
    min-width: inherit;
}

@media screen and (max-width: 768px) {
	.article-wrap .entry-header {
		flex-direction: column;
		padding-bottom: 20px;
	}
	.article-wrap .post-thumbnail {
		max-width: inherit;
		width: 100%;
	}
	.article-wrap .post-thumbnail img {
		width: 100%;
	}
	
}


.article-wrap .entry-overview {
	display: flex;
    flex-direction: column;
    justify-content: center;
}

.article-wrap .entry-overview .cat-links {
	display: none;
}

.article-wrap .entry-overview .tags-links a {
    padding: 5px 10px;
    border-radius: 4px;
    background: #F5F4F9;
    color: #6A839B;
}

.article-wrap .entry-overview .post-tags a {
    padding: 5px 10px;
    border-radius: 4px;
    background: #F5F4F9;
    color: #6A839B;
}

.article-wrap .entry-overview h1 {
    font-size: var(--font-size-md);
	font-weight: bold;
    margin:0.7rem 0 0;
	padding: 0;
	border: none;
}

.article-wrap .entry-overview .post-excerpt {
    font-size: var(--font-size-md);
	font-weight: normal;
    margin:0.7rem 0 0;
	padding: 0;
	border: none;
}

.article-wrap .entry-content {
    width: 100%;
    margin: 0px auto;
    padding: 0%;
    padding-top: 1%;
    /*border: 1px solid #CCC;*/
    border: none;
    background: #FFF;
}
/* 本文内エリア */
.article-wrap .entry-content p {
    width: 100%;
    max-width: 1100px;
    margin: 0px auto;
    padding: 20px 4%;
    border: none;
    background: #FFF;
}
/* 本文内画像エリア */
.article-wrap .entry-content img {
    width: 100%;
    max-width: 1024px;
    margin: 0px auto;
    padding: 0%;
}
.article-wrap .entry-content figure {
    text-align: center;
}
.article-wrap .entry-content .entry-content-img {
	margin: 0px auto 0;
	padding: 40px 0;
	width: 100%;
    background: #3c3e45;
}
.article-wrap .entry-content .entry-content-img figure {
    margin: 0 auto;
    width: 96%;
    max-width: 640px;
    text-align: center;
}
.article-wrap .entry-content .entry-content-img figure img {
    width: 100%;
    max-width: 640px;
}


.article-wrap .entry-content figure.is-type-video {
    width: 100%;
    max-width: 1080px;
}

.article-wrap .entry-content iframe {
    width: 100%;
    max-width: 1080px;
    height: 100%;
    aspect-ratio: 16 / 9;
    margin: 0px auto 0px;
}

.article-wrap .entry-content .wp-block-columns .wp-block-column {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.article-wrap .entry-content .wp-block-columns .wp-block-column figure {
    width: 100%;
}
.article-wrap .entry-content .wp-block-columns .wp-block-column figure.wp-block-image {
    width: auto;
}

.article-wrap .entry-content a {
    word-break: break-all;
}

.article-wrap .post-navigation {
    padding-top: 20px;
    width: 90%;
    max-width: 1100px;
}




/*Recruit*/
.Recruit-sub {
    margin-top: var(--margin-top-0);
}
#Recruit-introduction {
    position: relative;
    margin-top: var(--margin-top-0);
}
#Recruit-introduction p {
    font-size: var(--font-size-base);
    line-height: 1.8rem;
    margin: 0 auto;
}
#Recruit-introduction strong {
    font-size: var(--font-size-lg);
}
#Recruit-introduction h2 {
    position: relative;
    /*font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "IBM Plex Sans JP", sans-serif;*/
    margin: 0 auto 30px;
    width: 100%;
    /*height: calc(var(--font-size-xl)*1.5) ;*/
    /*font-size: var(--font-size-xl);*/
    font-size: var(--font-size-xl);
    line-height: 1.75;
    text-align: left;
    color: #032642;
    border-bottom: 2px solid #F5F4F9;
}
#Recruit-introduction h2::after {
    content: '';
	position: absolute;
    /*top: 0;*/
    bottom: -2px;
    left: 0;
    width: 55%;
    height: 100% ;
    content: '';
    display: inline-block;
    border-bottom: 2px solid #F36C21;
}
@media screen and (max-width: 768px) {
    #Recruit-introduction h2 {
        font-size: var(--font-size-lg);
        line-height: 1.75;
    }
    #Recruit-introduction h2::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 85%;
        height: 100% ;
        content: '';
        display: inline-block;
        border-bottom: 2px solid #F36C21;
    }
}

#Recruit-introduction .img-info {
    margin: 50px auto 50px;
    width: 90%;
    max-width: 640px;
}
#Recruit-introduction .img-info img {
    border: 1px solid #CCCCCC;
    border-radius: 8px;
    overflow: hidden;
}

/* duplicate removed: .content-card-type-08 (centralized earlier in card section) */

#Recruit-introduction .img-herp {
    margin: 20px auto 50px;
    width: 90%;
    max-width: 240px;
}
#Recruit-creator p {
    margin: 0px auto 20px;
}



#Contact .main-txt {
}

#Contact .cta-buttons {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin: 25px 0 0;
    width: 100%;
}

#Contact .cta-buttons p {
    display: flex;
    width: 100%;
    margin: 0;
}

#Contact .cta-buttons p a {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 900;
    font-size: var(--font-size-xl);
    padding: 15px 40px;
    width: 100%;
    border: 1px solid #3693F1;
    border-radius: 8px;
    background-color: transparent;
    color: #3693F1;
    text-align: center;

    aspect-ratio: 16 / 4.7 ;
    background-image: url(../img/bg-cta.png);
    background-size: cover;
}

@media screen and (max-width: 768px) {
    #Contact .cta-buttons {
        flex-direction: column;
    }
    #Contact .cta-buttons p a {
        font-size: var(--font-size-xl);
    }
}


/*キービジュアル*/
.content-key-visual {
    margin: 0 auto 40px;
    padding:0 ;
    width: 100%;
}

.content-key-visual img {
	width: 100%;
}

.home #SubVisual {
    /*display: none;*/
}

#SubVisual {
    position: relative;
    margin: 0 auto 0;
    width: 100%;
    /*margin-bottom: -150px;*/
    overflow: hidden;
}
.SubVisual-inner {
    margin: 0 auto 0;
    width: 50%;
    max-width: 660px;
}
@media screen and (max-width: 768px) {
	.SubVisual-inner {
		width: 70%;
	}
	
}

/* 段落 */
/* 段落｜本文｜About */
#about p {
/*    margin: 0 auto 60px;
    padding: 0px 40px 0px 40px;
    width: 100%;
    font-size: 1.0rem;
    line-height: 1.8rem;
    font-weight: normal;
    text-align: left;
    color: #000;*/
}

/* 段落｜本文｜CSR、セミナー */
#csr p,
#seminar p {
    font-size: 1.0rem;
    line-height: 1.8rem;
    font-weight: normal;
}


/* 新着情報 */
#news ul li {
	display: flex;
}

#news ul li .news-date {
	min-width: 150px;
	margin: 0 0 20px 0;
	padding: 0 0 0 15px;
	font-size: 1.0rem;
	line-height: 1.0rem;
	font-weight: normal;
	border-left: 5px solid #2A93D5;
}

#news ul li .news-read {
	margin: 0 0 20px 0;
	padding: 0 0 0 20px;
	font-size: 1.0rem;
	line-height: 1.0rem;
	font-weight: normal;
}

@media screen and (max-width: 768px) {
	#news ul {
		margin: 0 auto;
		width: 98%;
	}
	#news ul li {
		flex-direction: column;
		margin-bottom: 10px;
	}
}

/* event */

#event {
    position: relative;
    margin: 10px auto 0;
    padding-top: 20px!important;
    padding-bottom: 20px!important;
    width: 100%;
    /*margin-bottom: -150px;*/
    background: #FFF;
    overflow: hidden;
}
#event .event-inner {
    margin: 0 auto 0;
    /*width: 50%;
    max-width: 660px;*/
}
@media screen and (max-width: 768px) {
	#event {
		width: 100%;
	}
	#event .event-inner {
		width: 100%;
	}
}


/* contents news - merged into .section-title */
/* contents profile - merged into .section-title */

#profile .profile-box {
}
#profile .profile-box > div {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.profile-icon {
    background-color: #FFF;
    width: fit-content;
    height: fit-content;
    padding: 30px;
    border: 2px solid #CCC;
    border-radius: 50%;
}
.profile-name {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-md);
    font-weight: 700;
}
.profile-read {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-base);
}
.profile-read a {
}

.profile-sns > div {
    display: flex;
    gap: 0.5rem;
}
.profile-sns img {
    max-width: 40px;
}

.wp-block-list {
    margin: 0 0 20px 30px;
    padding: 0;
}
.wp-block-list li {
    padding-bottom: 5px;
    font-size: var(--font-size-sm);
}

/* contents contact - merged into .section-title */

#contact .profile-box {
    color: #FFF;
}
#contact .profile-box > div {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
#contact .profile-name {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-md);
    font-weight: 700;
}
#contact .profile-read {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-base);
}
#contact .profile-read a {
    color: #EEEEEE;
}


/* contents guideline - merged into .section-title */

#guideline .profile-box {
    color: #FFF;
}
#guideline .profile-box > div {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
#guideline .profile-name {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-md);
    font-weight: 700;
}
#guideline .profile-read {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-base);
}
#guideline .profile-read a {
    color: #EEEEEE;
}


/* contents contact-02 - merged into .section-title */

#contact-02 .profile-box {
	/* color inherits */
}
#contact-02 .profile-box > div {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
#contact-02 .profile-name {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-md);
    font-weight: 700;
}
#contact-02 .profile-read {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-base);
}
#contact-02 .profile-read a {
    color: #EEEEEE;
}

#works {
    /*display: none!important;*/
}
/* contents works - merged into .section-title */

#works .profile-box {
    color: #FFF;
}
#works .profile-name {
    margin-top: 0;
    margin-bottom: 10px;
    padding: 0;
    font-size: var(--font-size-md);
    font-weight: 700;
}
#works .profile-read {
    margin-top: 0;
    margin-bottom: 40px;
    padding: 0;
    font-size: var(--font-size-base);
}



/* section-title base (H2共通) */
.section-title, #vision h2, #profile h2, #contact h2, #guideline h2, #contact-02 h2, #works h2, #company h2, #philosophy h2, #sustainability h2, #recruit h2 {
	position: relative;
	margin: 0 auto 30px;
	width: 100%;
	/*display: flex;
	align-items: center;
    justify-content: center;*/
	text-align: center;
	font-weight: 900;

	/* defaults to match #profile h2 */
	--h2-size: var(--font-size-xxl);
	--h2-color: #323255;
	--h2-underline-color: #323255;
	--h2-underline-width: 35%;
	--h2-icon: url(img/icon-h2.png);
	--h2-icon-size: var(--h2-size);

	font-size: var(--h2-size);
	line-height: calc(var(--h2-size) * 1.4);
	color: var(--h2-color);
}
.section-title::after, #vision h2::after, #profile h2::after, #contact h2::after, #guideline h2::after, #contact-02 h2::after, #works h2::after, #company h2::after, #philosophy h2::after, #sustainability h2::after, #services h2::after, #recruit h2::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: var(--h2-underline-width);
	height: 100%;
	display: none; /* same as #profile h2 */
	border-bottom: 2px solid var(--h2-underline-color);
}
.section-title::before,#vision h2::before, #profile h2::before, #contact h2::before, #guideline h2::before, #contact-02 h2::before, #works h2::before, #company h2::before, #philosophy h2::before, #sustainability h2::before, #services h2::before, #recruit h2::before {
	content: '';
	display: none; /* アイコンなしバージョン */
	margin-right: 0.4rem;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	background-image: var(--h2-icon);
	width: var(--h2-icon-size);
	height: var(--h2-icon-size);
}
@media screen and (max-width: 768px) {
    #about-more .section-title {
        font-size: var(--font-size-lg);
        line-height: calc(var(--font-size-lg) * 1.0);
    }
}

/* variants */
.section-title--no-underline::after { display: none; }
.section-title--no-icon::before { display: none; }
.section-title--light {
	--h2-color: #FFF;
	--h2-underline-color: #FFF;
}

@media screen and (max-width: 768px) {
	.sub-contents .section-title,
	.sub-contents #vision h2,
	.sub-contents #profile h2,
	.sub-contents #News h2,
	.sub-contents #contact h2,
	.sub-contents #guideline h2,
	.sub-contents #contact-02 h2,
	.sub-contents #works h2,
	.sub-contents #company h2,
	.sub-contents #philosophy h2,
	.sub-contents #sustainability h2,
	.sub-contents #services h2,
	.sub-contents #news h2,
	.sub-contents #recruit h2 {
	}
	.sub-contents .section-title,
	.sub-contents #vision h2,
	.sub-contents #profile h2,
	.sub-contents #News h2,
	.sub-contents #contact h2,
	.sub-contents #guideline h2,
	.sub-contents #contact-02 h2,
	.sub-contents #works h2,
	.sub-contents #company h2,
	.sub-contents #philosophy h2,
	.sub-contents #sustainability h2,
	.sub-contents #services h2,
	.sub-contents #news h2,
	.sub-contents #recruit h2 {
	}
	.sub-contents .section-title::before,
	.sub-contents #vision h2::before,
	.sub-contents #profile h2::before,
	.sub-contents #News h2::before,
	.sub-contents #contact h2::before,
	.sub-contents #guideline h2::before,
	.sub-contents #contact-02 h2::before,
	.sub-contents #works h2::before,
	.sub-contents #company h2::before,
	.sub-contents #philosophy h2::before,
	.sub-contents #sustainability h2::before,
	.sub-contents #services h2::before,
	.sub-contents #news h2::before,
	.sub-contents #recruit h2::before {
	}
}




/* リンクボタン共通 */
.link-area {
display: flex;
justify-content: flex-end;
}
.link-area a {
    display: inline-block;
    margin: 10px 0 0;
    padding: 10px 30px;
    border: 1px solid #3693F1;
    border-radius: 8px;
    background: #FFFFFF;
    font-size: var(--font-size-md);
    font-weight: 400;
    color: #3693F1;
    transition: 0.5s;
}

.link-area a::after {
    font-family: "Font Awesome 5 Free";
    content: "\f054";
    font-weight: bold;
    padding-left: 10px;
    transition: transform .3s ease-in-out;
    display: inline-block;
}
/* 親要素（.link-area）がhoverされたときに矢印を動かす */
.link-area a:hover::after {
    transform: translateX(8px);
}
.link-area a:hover {
    display: inline-block;
    margin: 10px 0 0;
    padding: 10px 30px;
    border: 1px solid #3693F1;
    border-radius: 8px;
    /*background: #3693F1;*/
    /*color: #FFFFFF;*/
    font-size: var(--font-size-md);
    font-weight: 400;
}

.link-more {
    display: inline-block;
    margin: 20px auto 10px !important;
    padding: 0 !important;
    width: 98% !important;
    text-align: right;
    font-size: var(--font-size-md);
    font-weight: 400;
    color: #FFF;
    transition: 0.5s;
}
.link-more a {
    display: inline-block;
    padding: 5px 0px 5px 20px!important;
    color: #FFF;
    border: 1px solid #00582D;
    border-radius: 8px;
    background: #00582D;
}
.link-more a::after {
    font-family: "Font Awesome 5 Free";
    content: "\f054";
    font-weight: bold;
    padding-left: 10px;
    padding-right: 10px;
    color: #FFF;
    transition: transform .3s ease-in-out;
    display: inline-block;
}
/* 親要素（.link-more）がhoverされたときに矢印を動かす */
.link-more a:hover::after {
    transform: translateX(8px);
}
.link-more:hover {
    /* display: inline-block;
    margin: 20px 0 0;
    padding: 10px 30px;
    border: 1px solid #3693F1;
    border-radius: 8px;
    background: #00582D;
    color: #FFFFFF;
    font-size: var(--font-size-md);
    font-weight: 400; */
}

/*カードレイアウト制御*/

/*カードレイアウトmasonry*/
.masonry-grid {
    display: flex;
    width: auto;
}
.masonry-item {
    width: calc(33.333% - 30px); /* カラムの幅（3カラムの場合） */
    margin-bottom: 20px!important; /* アイテム間のスペース */
    height: auto; /* 高さが固定されないようにする */
    float: left;
    position: relative;
}
.masonry-item img {
    width: 100%; /* 画像がアイテムの幅に合わせて伸縮する */
    height: auto; /* 画像の高さが自動調整されるようにする */
}
.masonry-item {
    --offset: 3px;
    background-color: #FFFFFF;
    border-radius: 12px;
    border: 1px solid #EFEFEF;
    overflow: hidden;
    /*box-shadow: 0px var(--offset) var(--offset) 0px rgba(0, 0, 0, 0.25);*/
    transition: 0.5s;
}
.masonry-item:hover {
    --offset: 8px;
    background-color: #FCFCFC;
}
.masonry-item div {
    padding: 0!important;
}
.masonry-item .c-card__meta {
    display: flex;
    column-gap: 0.25rem;
    margin: 10px 0 10px;
    margin-left: 10px;
    width: 100%;
    font-size: var(--font-size-sm);
    z-index: 1;
}
.masonry-item .c-card__metaItem {}

.masonry-item .c-card__meta a {
    display: inline-block;
    padding: 0 10px;
	z-index: 1;
    border-radius: 4px;
    color: #6A839B;
	text-decoration: none;
    word-break: auto-phrase;
    background-color: #F5F4F9;
    transition-property: background-color, color;
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0.67, 0.56, 0.68);
}
.masonry-item .c-card__meta a:hover {
    background-color: #CCCCCC;
    color: #fafafa;
	text-decoration: none;
}
.masonry-item .c-card__meta .wp-block-post-terms__separator {
	display: none;
}
.masonry-item .c-card__read {
	z-index: 0;
}
.masonry-item h3 {
    margin: 10px 0 10px;
    margin-left: 10px;
    margin-right: 10px;
    font-size: var(--font-size-sm);
	line-height: var(--font-size-base);
}
.masonry-item figure {
    /*border: 1px solid #EFEFEF;*/
    margin: 0px 0 10px;
    overflow: hidden;
}
.masonry-item figure a img {
    /*object-fit: cover;*/
    transition: transform 0.3s ease;
    width: 100%;
    height: auto;
}
.masonry-item figure a img:hover {
    transform: scale(1.1);
}

@media(max-width:768px) {
    .masonry-grid {
        margin: 0;
    }
    .masonry-item {
        width: 45%;
    }
    .masonry-item .c-card__meta {
        flex-wrap: wrap;
        width: auto;
        row-gap: 0.25rem;
    }
}

/*カードレイアウト アニメーション*/
.content-card-anim {
    --offset: 3px;
    background-color: #FFFFFF;
    border-radius: var(--card-radius);
    border: 1px solid #EFEFEF;
    /*box-shadow: 0px var(--offset) var(--offset) 0px rgba(0, 0, 0, 0.25);*/
    transition: 0.5s;
}
.content-card-anim:hover {
    --offset: 8px;
    background-color: #FCFCFC;
}

/*カードレイアウト 記事の要素表示制御 */
.u-visuallyHidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
    white-space: nowrap;
    clip-path: inset(50%);
}

/* カードレイアウト 記事 */
.content-card-type-01 ul {
	margin: 0;
}

.content-card-type-01 .type-post {
    --offset: 3px;
	padding: 10px;
	width: 98%;

    background-color: #FFFFFF;
    border-radius: var(--card-radius);
    border: 1px solid #EFEFEF;
    /*box-shadow: 0px var(--offset) var(--offset) 0px rgba(0, 0, 0, 0.25);*/
    transition: 0.5s;
}
.content-card-type-01 .type-post:hover {
    --offset: 8px;
    background-color: #FCFCFC;
}

.content-card-type-01 {
    display: flex;
    justify-content: space-between;
    width: 98%;
    margin: 0 auto;
}

.content-card-type-01 li .wp-block-group {
    position: relative;
	padding: 0!important;
}

.content-card-type-01 .wp-block-column {
    position: relative;
    width: 24%;
    padding: 1%;
}
.content-card-type-01 .wp-block-column .c-card__detail {
    position: absolute;
    inset: 0;
}
.content-card-type-01 .wp-block-column h3 {
    margin: 10px 0 10px;
    font-size: var(--font-size-sm);
	line-height: var(--font-size-sm);
}
.content-card-type-01 .wp-block-column h3::before {
    content: '';
    display: inline-block;
    width: 8px; /* アイコンの幅をフォントサイズに基づいて設定 */
    height: var(--font-size-sm); /* アイコンの幅をフォントサイズに基づいて設定 */
    margin-right: 0.25rem;
    background-color: #F36C21;
    border-radius: 2px;
	line-height: var(--font-size-sm);
    /*background: #e6011a;*/
}
.content-card-type-01 .wp-block-column .c-card__title {
    z-index: 1;
	display: flex;
}
.content-card-type-01 .wp-block-column .c-card__title a {
    color: #374049;
	text-decoration: none;
}
.content-card-type-01 .wp-block-column .c-card__title:hover {
	text-decoration: none;
}
.content-card-type-01 .wp-block-column figure {
    /*border: 1px solid #EFEFEF;*/
    margin: 0px 0 10px;
}
.content-card-type-01 .wp-block-column figure img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.content-card-type-01 .c-card__meta {
    display: flex;
    column-gap: 0.25rem;
    margin: 10px 0 10px;
    width: 100%;
    font-size: var(--font-size-sm);
    z-index: 1;
}
.content-card-type-01 .c-card__metaItem {}

.content-card-type-01 .c-card__meta a {
    display: inline-block;
    padding: 0 10px;
	z-index: 1;
    border-radius: 4px;
    color: #6A839B;
	text-decoration: none;
    word-break: auto-phrase;
    background-color: #F5F4F9;
    transition-property: background-color, color;
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0.67, 0.56, 0.68);
}
.content-card-type-01 .c-card__meta a:hover {
    background-color: #CCCCCC;
    color: #fafafa;
	text-decoration: none;
}

.content-card-type-01 .c-card__meta .wp-block-post-terms__separator {
	display: none;
}

.content-card-type-01 .c-card__read {
	z-index: 0;
}

.content-card-type-01 .c-card__read p.wp-block-post-excerpt__excerpt {
    margin: 0px 0 0px;
    font-size: var(--font-size-sm);
    line-height: var(--font-size-md);
}

.content-card-type-01 .c-card__read .wp-block-post-excerpt__more-link {
	position: absolute;
    inset: 0;
	z-index: 0;
	text-decoration: none;
	/*border: 1px solid #4a86e8;*/
}



/*カードレイアウト 汎用*/
.content-card-type-02 {
    display: flex;
    justify-content: center;
    width: 98%;
    margin: 0 auto;
}
.content-card-type-02 ~ .content-card-type-02 { margin-top: 20px; }
.content-card-type-02 .wp-block-column {
    position: relative;
    width: 100%;
    padding: 20px;
    overflow: hidden;
    /*background-color: rgba(255, 255, 255, 0);
    border: none;*/
    background-color: #f8fafc;
    border: 1px solid #EEEEEE;
    border-radius: 8px;
    transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}

.content-card-type-02 .wp-block-column h3 {
    margin: 20px 0 20px 0;
    margin-left: 0.1rem;
    padding-bottom: 10px;
    font-size: var(--font-size-md);
    color: #135890;
    text-align: center;
    border-bottom: 1px solid #35c0ff;
}
.content-card-type-02 .wp-block-column .vk_icon_frame {
    justify-content: center;
}
.content-card-type-02 .wp-block-column p {
	width: 100%;
    margin: 0;
    padding: 0;
    font-size: var(--font-size-base);
    color:var(--font-color-primary);
    text-align: left;
}
.content-card-type-02 .wp-block-column p.result {
    padding: 10px;
    border-radius: 8px;
    background: #f1f1f1;
    text-align: center;
    font-weight: 900;
    color: #012e53;
}
.content-card-type-02 .wp-block-column p.number {
    margin: 0 auto;
    width: 50px;
    height: 50px;
    background: #012e53;
    border-radius: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size:var(--font-size-xxl);
    color: #FFF;
}

.content-card-type-02 > * {
    z-index: 0;
}
.content-card-type-02 .stretched-link a {
    position: static;
    text-align: center;
    display: block;
    margin-top: 10px;
}
.content-card-type-02 .stretched-link em {
    /*position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;*/
    text-align: center;
}
.content-card-type-02 .stretched-link a::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:9;
}
.content-card-type-02 .wp-block-column ul { width: 100%; padding: 0; }
.content-card-type-02 .wp-block-column li { width: 100%; padding: 0; }
.content-card-type-02 .wp-block-column.content-card-type-02-img { position: relative; width: 32%; padding: 1%; background-color: transparent; }
.content-card-type-02 .wp-block-column.content-card-type-02-img::before { content: ''; display: none; }
.content-card-type-02 .wp-block-column.content-card-type-02-img::after { content: ''; display: none; }
.content-card-type-02 .wp-block-column.content-card-type-02-img figure { width: 90%; }

@media screen and (max-width: 768px) {
    .content-card-type-02 .wp-block-column h3 {
        font-size: var(--font-size-md);
    }
    .content-card-type-02 .wp-block-column p {
        font-size: var(--font-size-base);
    }
    
}

/*カードレイアウト 汎用-フロー*/
.content-card-type-flow {
    display: flex;
    justify-content: center;
    width: 98%;
    margin: 0 auto;
    position: relative;
    overflow: visible;
}
.content-card-type-flow ~ .content-card-type-flow { margin-top: 20px; }
.content-card-type-flow .wp-block-column {
    position: relative;
    width: 100%;
    padding: 20px;
    overflow: hidden;
    background-color: #F9F9F9;
    border: 1px solid #EEEEEE;
    border-radius: 8px;
}
.content-card-type-flow .wp-block-column.ya_right {
    overflow: visible;
}
.content-card-type-flow .wp-block-column.ya_right::after {
    position: absolute;
    right: -15px;
    top: 50%;
    transform: translateY(-50%);
    font-family: "Font Awesome 5 Free";
    content: "\f0da";
    font-weight: bold;
    color: #3693F1;
    display: inline-block;
    font-size: 1.2rem;
    z-index: 10;
}
@media (max-width: 768px){
    .content-card-type-flow .wp-block-column.ya_right{
      padding-bottom: 26px;
    }
    .content-card-type-flow .wp-block-column.ya_right::after{
      right: auto;
      top: auto;
      left: 50%;
      bottom: -22px;
      transform: translateX(-50%);
      content: "\f0d7";
    }
}
  
.content-card-type-flow .wp-block-column h3 {
    margin: 20px 0 20px 0;
    margin-left: 0.1rem;
    padding-bottom: 10px;
    font-size: calc(var(--font-size-lg) * 0.8);;
    line-height: calc(var(--font-size-lg) * 1.0);
    color: #135890;
    text-align: center;
}
.content-card-type-flow .wp-block-column .vk_icon_frame {
    justify-content: center;
}
.content-card-type-flow .wp-block-column p {
	width: 100%;
    margin: 0;
    padding: 0;
    font-size: var(--font-size-base);
    color:var(--font-color-primary);
    text-align: center;
}
.content-card-type-flow .wp-block-column p.result {
    padding: 10px;
    border-radius: 8px;
    background: #f1f1f1;
    text-align: center;
    font-weight: 900;
    color: #012e53;
}
.content-card-type-flow .wp-block-column p.number {
    margin: 0 auto;
    width: 50px;
    height: 50px;
    background: #012e53;
    border-radius: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size:var(--font-size-xxl);
    color: #FFF;
}
/* テストモードのスタイル */
/* 進捗線：疑似要素で実装（親要素の幅に連動） */
.content-card-type-flow.is-test {
    position: relative;
}
.content-card-type-flow.is-test::before {
    content: '';
    position: absolute;
    top: -26px; /* 見出し〜カードの間の空気 */
    left: 0;
    width: 100%; /* 親要素の幅に連動 */
    height: 3px;
    background: rgba(10, 30, 60, 0.18); /* ベース線（薄く） */
    border-radius: 999px;
    overflow: hidden;
    z-index: 1;
}
.content-card-type-flow.is-test::after {
    content: '';
    position: absolute;
    top: -26px;
    left: 0;
    width: 100%;
    height: 3px;
    background: rgb(217 213 180); /* 進捗線（濃く） */
    border-radius: 999px;
    transform: scaleX(0);
    transform-origin: left center;
    animation: hiwGrow 24s cubic-bezier(.2,.9,.2,1) infinite;
    z-index: 2;
}
@keyframes hiwGrow{
    0% { transform: scaleX(0); }
    12.5% { transform: scaleX(0.25); } /* 3秒: 25% */
    25% { transform: scaleX(0.5); } /* 6秒: 50% */
    37.5% { transform: scaleX(0.75); } /* 9秒: 75% */
    50% { transform: scaleX(1); } /* 12秒: 100% */
    100% { transform: scaleX(1); } /* 12秒〜24秒: 100%維持（待機） */
}
.content-card-type-flow.is-test .wp-block-column {
    padding: 40px;
}
.content-card-type-flow.is-test .wp-block-column p.number {
    margin: 0 auto;
    padding: 0px;
    width: auto;
    height: auto;
    background: #F9F9F9;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: left;
    font-weight: 700;
    font-size: var(--font-size-lg);
    color: #323255;
}
.content-card-type-flow.is-test .wp-block-column h3 {
    margin: 20px 0 20px 0;
    margin-left: 0.1rem;
    padding-bottom: 10px;
    font-size: calc(var(--font-size-md) * 0.8);
    line-height: calc(var(--font-size-lg) * 1.0);
    color: #135890;
    text-align: left;
}

#flow.is-test .section-note {
    margin-bottom: 40px;
}
#flow.is-test .section-note-link {
    text-align: right;
}
#flow.is-test .section-note-link a {
    font-size: var(--font-size-md);
    font-weight: 400;
    text-decoration: none;
    color: var(--link-color);
    transition: color 0.3s ease;
    border-bottom: 1px solid #48b2e3;
}
#flow.is-test .section-note-link a::after {
    font-size: var(--font-size-base);
    font-family: "Font Awesome 5 Free";
    content: "\f054";
    font-weight: bold;
    padding-left: 10px;
    transition: transform .3s ease-in-out;
    display: inline-block;
}
#flow.is-test .section-note-link a:hover {
    color: var(--link-color-hover);
}
#flow.is-test .section-note-link a:hover::after {
    transform: translateX(8px);
}
@media screen and (max-width: 768px) {
    .content-card-type-flow.is-test .wp-block-column {
        padding: 30px 40px;
    }
    .content-card-type-flow.is-test .wp-block-column p.number {
        font-size: var(--font-size-xl);
    }
    .content-card-type-flow.is-test .wp-block-column h3 {
        padding-bottom: 0;
        font-size: calc(var(--font-size-lg) * 1.0);
        line-height: calc(var(--font-size-lg) * 1.6);
    }
    #flow.is-test .section-note-link {
        text-align: center;
    }
}


.content-card-type-flow > * {
    z-index: 0;
}
.content-card-type-flow .stretched-link a {
    position: static;
}
.content-card-type-flow .stretched-link em {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.content-card-type-flow .stretched-link a::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:9;
}
.content-card-type-flow .wp-block-column ul { width: 100%; padding: 0; }
.content-card-type-flow .wp-block-column li { width: 100%; padding: 0; }

@media screen and (max-width: 768px) {
    .content-card-type-flow .wp-block-column h3 {
        font-size: var(--font-size-xl);
        line-height: calc(var(--font-size-xl) * 1.4);
    }
    .content-card-type-flow .wp-block-column p {
        font-size: var(--font-size-md);
    }
    
}


/*カードレイアウト 特殊-画像重なり*/
.content-card-type-vision {
    display: flex;
    justify-content: center;
    gap: 0;
    width: 98%;
    margin: 0 auto;
}
.content-card-type-vision ~ .content-card-type-vision { margin-top: 20px; }
.content-card-type-vision .wp-block-column {
    position: relative;
    width: 100%;
    padding: 0;
    overflow: hidden;
}
.content-card-type-vision .wp-block-column:first-child {
    margin-right: -40px;
    z-index: -1;
}
.content-card-type-vision .wp-block-column:last-child {
    margin-left: -40px;
    z-index: 2;
}
.content-card-type-vision .wp-block-column figure {
    text-align: center;
}
.content-card-type-vision .wp-block-column.content-card-type-vision-img { position: relative; width: 32%; padding: 1%; background-color: transparent; }
.content-card-type-vision .wp-block-column.content-card-type-vision-img::before { content: ''; display: none; }
.content-card-type-vision .wp-block-column.content-card-type-vision-img::after { content: ''; display: none; }
.content-card-type-vision .wp-block-column.content-card-type-vision-img figure { width: 90%; }

@media screen and (max-width: 768px) {
    .content-card-type-vision .wp-block-column:first-child {
        margin-right: inherit;
        z-index: -1;
        margin-bottom: -50px;
    }
    .content-card-type-vision .wp-block-column:last-child {
        margin-left: inherit;
        z-index: 2;
        margin-top: -50px;
    }
}
/*カードレイアウト 画像左+文章右*/
.content-card-type-lr {
    display: flex;
    justify-content: center;
    width: 98%;
    margin: 0 auto;
}
.content-card-type-lr ~ .content-card-type-lr { margin-top: 20px; }
.content-card-type-lr .wp-block-column {
    position: relative;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border-radius: 10px;
}
.content-card-type-lr .wp-block-column h3 {
    margin: 10px 0 0 0;
    margin-left: 0.1rem;
    font-size: var(--font-size-base);
    color: #1DADE2;
}
.content-card-type-lr .wp-block-column p {
    width: 100%;
    margin: 0;
    padding: 1% 1% 1% 0.7rem;
    font-size: var(--font-size-base);
    color:var(--font-color-primary);
}
.content-card-type-lr .wp-block-column.content-card-type-lr-img { position: relative; width: 32%; padding: 1%; background-color: transparent; }
.content-card-type-lr .wp-block-column.content-card-type-lr-img::before { content: ''; display: none; }
.content-card-type-lr .wp-block-column.content-card-type-lr-img::after { content: ''; display: none; }
.content-card-type-lr .wp-block-column.content-card-type-lr-img figure { width: 90%; }

/*カードレイアウト 画像並べ ベース*/
.content-card-type-base-01 {
    display: flex;
    justify-content: center;
    gap: 0.7rem;
    width: 98%;
    margin: 0 auto;
}
.content-card-type-base-01 ~ .content-card-type-base-01 { margin-top: 20px; }
.content-card-type-base-01 .wp-block-column {
    position: relative;
    width: 100%;
    padding: 0;
    overflow: hidden;
}

/*カードレイアウト ニュース*/
.content-card-type-06 ul {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    width: 98%;
    margin: 0 auto;
}
.content-card-type-06 li {
    position: relative;
    display: flex;
    gap: 2rem;
    width: 100%;
    padding: 1%;
    border: none;
    border-bottom: 2px solid #EFEFEF;
    border-radius: 0;
}
.content-card-type-06 li figure {
    margin: 0;
    max-width: 240px; 
    aspect-ratio: 16 / 9;
    border: 1px solid #CCC;
    border-radius: 8px;
}
.content-card-type-06 li figure img {
    object-fit: cover;
    aspect-ratio: 16 / 9;
    min-width: 240px;
    border-radius: 8px;
}
.content-card-type-06 li > div { display: flex; flex-direction: column; justify-content: center; width: 100%; }
.content-card-type-06 li > div > div { margin-left: 0!important; padding: 0 8px!important; }
.content-card-type-06 li .news-date { font-size: var(--font-size-base); margin-bottom: 0.5rem; }
.content-card-type-06 li h6 { 
    font-size: var(--font-size-md);
    margin-top: 0;
    margin-bottom: 0.5rem;
}
.content-card-type-06 li h6 a {
    font-size: var(--font-size-md);
    margin-top: 0;
    margin-bottom: 0.5rem;
    color: #1EAEE2;
}
.content-card-type-06 li .news-read { font-size: var(--font-size-base); margin-bottom: 0rem; }
.content-card-type-06 li .link-area { margin-top: auto; width: 13%; display: inline-block; margin-bottom: 0; }
@media screen and (max-width: 768px) {
	.content-card-type-06 ul { gap: 2rem; }
	.content-card-type-06 li { flex-direction: column; gap: 1rem; width: 100%; padding: 1%; }
	.content-card-type-06 li figure { width: 100%; max-width: inherit; }
	.content-card-type-06 li .link-area { display: flex; justify-content: flex-end; margin-bottom: 0px; padding: 0 10px 10px 0 !important; width: 100%; }
	.content-card-type-06 li .link-area div { text-align: right; }
}

.wp-block-post-title {

}

#News .link-area{
    display: flex;
    justify-content: flex-end;
}
#News .link-more {
    display: inline-block;
    margin: 10px 0 0;
    padding: 3px 15px;
    border: none;
    border-bottom: 2px solid #1EAEE2;
    border-radius: 0px;
    background: #FFFFFF;
    font-size: var(--font-size-base);
    font-weight: 400;
    color: #1EAEE2;
    text-align: left;
    transition: 0.5s;
}
#News .link-more:hover {
    display: inline-block;
    margin: 10px 0 0;
    padding: 3px 15px;
    border: none;
    border-bottom: 2px solid #1EAEE2;
    border-radius: 0px;
    /*background: #3693F1;*/
    /*color: #FFFFFF;*/
    font-size: var(--font-size-base);
    font-weight: 400;
}
@media screen and (max-width: 768px) {
    #News .link-more {
        width: max-content!important;
    }
}



/* カードレイアウト 今のところ使用していない */
.content-card-type-05 {
    display: flex;
    justify-content: space-between;
    width: 98%;
    margin: 0 auto;
}
.content-card-type-05 ~ .content-card-type-05 { margin-top: 20px; }
.content-card-type-05 .wp-block-column {
    position: relative;
    width: 32%;
    padding: 1%;
    background-color: #FCFCFC;
}
.content-card-type-05 .wp-block-column.disp-none { opacity: 0; height: 1px; }
.content-card-type-05 .wp-block-column::before {
    content: '';
    display: block;
    position: absolute;
    top: 0; left: 0;
    height: 10px; width: 10px;
    clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
    background-color: #F36C21;
}
.content-card-type-05 .wp-block-column::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0; right: 0;
    height: 10px; width: 10px;
    clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
    background-color: #FFFFFF;
}
.content-card-type-05 .wp-block-column h3 {
    margin: 0 0 0 0.9rem;
    font-size: var(--font-size-md);
}
.content-card-type-05 .wp-block-column h3::before {
    content: '';
    display: inline-block;
    width: var(--font-size-base);
    height: var(--font-size-base);
    margin-right: 0.7rem;
    background-image: url(../img/icon-base.png);
    background-size: contain;
    background-position: center;
}
.content-card-type-05 .wp-block-column ul {
    list-style: none;
    width: 100%;
    margin: 0 5px;
    padding: 3% 0 1%;
}
.content-card-type-05 .wp-block-column li {
    width: 100%;
    padding: 5px 0 5px 0.9rem;
}
.content-card-type-05 .wp-block-column li::marker { color: #999; }
.content-card-type-05 .wp-block-column.content-card-type-05-img { position: relative; width: 32%; padding: 1%; background-color: transparent; }
.content-card-type-05 .wp-block-column.content-card-type-05-img::before { content: ''; display: none; }
.content-card-type-05 .wp-block-column.content-card-type-05-img::after { content: ''; display: none; }
.content-card-type-05 .wp-block-column.content-card-type-05-img figure { width: 50%; }

/* content-card-type-09 (Studios assets cards) */
.content-card-type-09 {
    display: flex;
    justify-content: center;
    width: 98%;
    margin: 0 auto;
}
.content-card-type-09 ~ .content-card-type-09 { margin-top: 20px; }
.content-card-type-09 .wp-block-column {
    position: relative;
    width: 100%;
    padding: 1%;
    background-color: rgba(245,245,245,0.90);
}
.content-card-type-09 .wp-block-column::before {
    content: '';
    display: block;
    position: absolute;
    top: 0; left: 0;
    height: 10px; width: 10px;
    clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
    background-color: #F36C21;
    z-index: 3;
}
.content-card-type-09 .wp-block-column::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0; right: 0;
    height: 10px; width: 10px;
    clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
    background-color: #3693F1;
}
.content-card-type-09 .wp-block-column h3 {
    margin: 0;
    margin-left: 0.7rem;
    font-size: var(--font-size-md);
    color: #333;
}
.content-card-type-09 .wp-block-column p {
    width: 100%;
    margin: 0;
    padding: 1% 1% 1% 0.7rem;
    font-size: var(--font-size-base);
    color: #333;
}
.content-card-type-09 .wp-block-column ul { width: 100%; padding: 1% 1% 1% 0.7rem; }
.content-card-type-09 .wp-block-column li { width: 100%; padding: 0; }
.content-card-type-09 .wp-block-column.content-card-type-09-img { position: relative; width: 32%; padding: 1%; background-color: transparent; }
.content-card-type-09 .wp-block-column.content-card-type-09-img::before { content: ''; display: none; }
.content-card-type-09 .wp-block-column.content-card-type-09-img::after { content: ''; display: none; }
.content-card-type-09 .wp-block-column.content-card-type-09-img figure { width: 90%; }



/* content-card-type-08 (Recruit links grid) */
.content-card-type-08 > div { display: flex; justify-content: center; flex-wrap: wrap; gap: 1.7rem 1rem; width: 98%; margin: var(--margin-top-50) auto 0; }
.content-card-type-08 ~ .content-card-type-08 { /* margin-top: 20px; */ }
.content-card-type-08 p { width: 48%; }
.content-card-type-08 .link-area { justify-content: center; }
@media screen and (max-width: 768px) {
	.content-card-type-08 .link-area { width: 100%; }
}
.content-card-type-08 .link-area a { margin: 0 auto; width: 100%; text-align: center; font-size: var(--font-size-md); font-weight: 700; }
.content-card-type-08 .link-area a { display: inline-block; margin: 0 auto; padding: 10px 30px; width: 100%; text-align: center; font-size: var(--font-size-md); font-weight: 700; border: 1px solid #3693F1; border-radius: 8px; background: #FFFFFF; color: #3693F1; transition: 0.5s; }
.content-card-type-08 .link-area :hover { display: inline-block; margin: 0px auto; padding: 10px 30px; border: 1px solid #3693F1; border-radius: 8px; /*background: #3693F1;*/ /*color: #FFFFFF;*/ font-size: var(--font-size-md); font-weight: 700; }

/* content-card-type-cast */
.content-card-type-cast { justify-content: space-around; }
.content-card-type-cast div {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    flex-basis: auto!important;
    flex-grow: initial!important;
    width: 45%;
    max-width: 760px;
    border-bottom: 2px solid;
    border-image: linear-gradient(to right,#e6011a 0%,#e6011a 29%,#4a86e8 72%,#4a86e8 100%) 1;
}
.content-card-type-cast img { width: 100%; border: 1px solid #cccccc; }
.content-card-type-cast h3,
.content-card-type-cast p { display: inline-block; font-size: 1.8rem; }
.content-card-type-cast p::before {
    padding-right: 10px;
    font-family: "Font Awesome 5 Free";
    content: '\\f105';
    color: #007aff;
    text-align: right;
    font-weight: bold;
    transition: .5s ease-out;
}

/* content-card-type-jirei (About/Services/Office) */
#about .content-card-type-jirei,
#services .content-card-type-jirei,
#office .content-card-type-jirei {
    margin: 0px auto 30px;
    padding: 0 40px 0 40px;
    width: 100%;
    max-width: 1700px;
    align-items: stretch;
    justify-content: space-between;
}
#about .content-card-type-jirei div,
#office .content-card-type-jirei div { max-width: 500px; margin-bottom: 0px; }
#about .content-card-type-jirei div,
#services .content-card-type-jirei div { background-color: #fafafa; padding: 20px; }
#services .content-card-type-jirei > div { display: flex; flex-direction: column; justify-content: space-between; margin-bottom: 20px; }
#services .content-card-type-jirei div p.read { margin-top: 10px; margin-bottom: 10px; flex-grow: 1; }
#services .content-card-type-jirei div p.link { margin: 0; text-align: right; }
#services .content-card-type-jirei div p.link a { position: relative; display: inline-block; padding: 0; border-bottom: 1px solid #8A8A8A; color: #2A93D5; font-weight: bold; text-align: right; text-decoration: none; transition: .5s ease-out; }
#services .content-card-type-jirei div p.link a::after { padding-left: 10px; font-family: "Font Awesome 5 Free"; content: '\\f105'; color: #2A93D5; text-align: right; font-weight: bold; transition: .5s ease-out; }

#about .content-card-type-jirei div h4,
#services .content-card-type-jirei div h4 { margin: 0 auto 10px; padding: 0 0 10px; display: block; font-size: 1.2rem; font-weight: bold; line-height: 1.2rem; }
#about .content-card-type-jirei div h4 { border-bottom: 2px solid; border-image: linear-gradient(to right,#e6011a 0%,#e6011a 29%,#4a86e8 72%,#4a86e8 100%) 1; }
#about .content-card-type-jirei div p,
#services .content-card-type-jirei div p { margin: 0 auto 0; padding: 0; display: block; font-size: 1.0rem; line-height: 1.8rem; }

#office .content-card-type-jirei div { background-color: #EBF9FA; padding: 20px; }
#office .content-card-type-jirei div.blank-block { background-color: #FFF; margin: 0; padding: 0; }
#office .content-card-type-jirei div h4 { position: relative; margin: 0 auto 10px; padding: 0px 0 0px 20px; display: block; font-size: 1.2rem; font-weight: bold; line-height: 2rem; }
#office .content-card-type-jirei div h4::after { position: absolute; top: 0; left: 0; width: 100%; height: 2.4rem; content: ''; border-bottom: 1px solid #ACDAD5; }
#office .content-card-type-jirei div h4::before { position: absolute; top: 0; bottom: 0; left: 0; width: 12px; height: 2rem; content: ''; background: #2A93D5; border-radius: 2px; }

#Recruit figure img {
	margin-bottom: 10px;
    border: 1px solid #CCCCCC;
    border-radius: 8px;
    overflow: hidden;
}

/* カードレイアウト｜左右｜画像＋本文 */
#seminar .wp-block-column,
#csr .wp-block-column {
/*	flex-basis: auto;*/
	flex-basis: fit-content;
}


/* 固定 CTA デフォルト非表示（JS が後で block にする） */
#fixed-cta{ display:none; }
/* 固定 CTA の箱を右下固定 */
.fixed-cta-wrap {
    height: 0;
}
#fixed-cta {
    position:fixed;
    right:26px;
    bottom:-20px;   /* コピーライト高 48px + 余白 */
    z-index:9999;

    padding: 10px 10px;
    border: 2px solid #EFEFEF;
    border-radius: 8px;
    background: #FFFFF5;
    box-shadow: 6px 8px 18px rgba(0,0,0,.10);
    
    /* スムーズなアニメーション */
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
    opacity: 1;
    transform: translateY(0);
}
#fixed-cta.hidden {
    opacity: 0;
    transform: translateY(20px);
}
.fixed-cta h4 {
    color: #323255;
    font-size: calc(var(--font-size-md) * 0.8);
    font-weight: 700;
    margin: 0;
}
.fixed-cta div {
	display: flex;
    gap: 0.8rem;
}
.fixed-cta p {
    margin: 0;
    width: 100%;
}

#fixed-cta .link-area a {
    display: inline-block;
    margin: 10px 0 0;
    padding: 8px 15px;
    width: 100%;
    border: none;
    border-radius: 8px;
    background: #012e53;
    font-size: var(--font-size-base);
    font-weight: 700;
    color: #FFF;
    text-align: center;
    transition: 0.5s;
}
#fixed-cta .link-area a:hover {
    display: inline-block;
    margin: 10px 0 0;
    padding: 8px 19px;
    border: none;
    border-radius: 8px;
    background: #045699;
    font-size: var(--font-size-base);
    font-weight: 700;
    color: #FFF;
}
#fixed-cta .link-area a::before {
    padding-right: 15px;
    transition: transform .3s ease-in-out;
    display: inline-block;
}
#fixed-cta .link-area a::after {
    content: "";
    display: none;
}
#fixed-cta .link-cta-mail a::before {
    font-family: "Font Awesome 5 Free";
    content: "\f0e0";
    font-weight: 900;
}
#fixed-cta .link-cta-tel a::before {
    font-family: "Font Awesome 5 Free";
    content: "\f879";
    font-weight: 900;
}
@media screen and (max-width: 768px) {
    #fixed-cta {
        position:fixed;
        left: 20px;
        right: 26px;
        bottom:-20px;   /* コピーライト高 48px + 余白 */
    
        padding: 10px 10px;
        border: 1px solid #1dade2;
    }
    .fixed-cta h4 {
        font-size: calc(var(--font-size-base) * 0.8);
        text-align: center;
    }
    .fixed-cta h4 br {
        display: none;
    }
    #fixed-cta > div {
        justify-content: center;
    }
    #fixed-cta .link-area a {
        margin-top: 5px;
        padding: 5px 10px;
        font-size: var(--font-size-base);
    }
    #fixed-cta .link-area a::before {
        padding-right: 5px;
    }
    #fixed-cta .link-area a span {
        display: none;
    }
}
  
/* 画像はそのまま */
.fixed-cta img{
    width:140px; height:auto; display:block;
    box-shadow:0 4px 10px rgba(0,0,0,.15);
    border-radius:4px;
}
  
/* × ボタン */
.fixed-cta .cta-close{
    position:absolute;
    top:-10px; right:-10px;
    padding: 0;
    width:24px; height:24px;
    border:none; border-radius:50%;
    background:#333; color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:16px; line-height:1.0;
    cursor:pointer;
    box-shadow:0 2px 5px rgba(0,0,0,.3);
}

.fixed-cta .cta-close:hover{background:#555;}

/* TOPに戻るボタン（z-index: CTA/フッター側のスタックコンテキストより上にし重なりで背面に行かないようにする） */
#scroll-to-top {
	position: fixed;
	right: 26px;
	bottom: 80px; /* fixed-ctaの上に配置 */
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background-color: #c0d9eb;
	color: #012e53;
	border: none;
	cursor: pointer;
	display: none; /* 初期状態は非表示 */
	align-items: center;
	justify-content: center;
	z-index: 100000;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
	transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, background-color 0.3s ease-in-out;
	opacity: 0;
	transform: translateY(20px);
}
#scroll-to-top.show {
	display: flex;
	opacity: 1;
	transform: translateY(0);
}
#scroll-to-top:hover {
	background-color: #045699;
	transform: translateY(-2px);
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}
#scroll-to-top::before {
	font-family: "Font Awesome 5 Free";
	content: "\f106";
	font-weight: 900;
	font-size: 20px;
	line-height: 1;
}
@media screen and (max-width: 768px) {
	#scroll-to-top {
		right: 20px;
		bottom: 70px;
		width: 45px;
		height: 45px;
	}
	#scroll-to-top::before {
		font-size: 18px;
	}
}

/* フッター CTAコンテンツ */
#maps {
    background: #F5F5F5;
    padding-bottom: 50px!important;
}
#maps h2 {
    text-align: center!important;
    color: #1DADE2;
    font-weight: 700;
    font-size: var(--font-size-xl);
}
#maps .address-area {
    border-bottom: 2px solid #1DADE2;
    padding-bottom: 40px;
}
#maps .address-area:last-of-type {
    border:none;
    margin-bottom: 0;
    padding-bottom: 0;
}
#maps .address-area p {
    margin-top: 0;
    padding: 0 10px 0 10px;
    text-align: left;
    font-size: var(--font-size-base);
}
#maps .address-area p strong {
    font-weight: 700;
}


#maps iframe {
    border: 0;
    width: 100%;
    margin: 0 auto;
}

#maps .link-area {
    display: flex;
    justify-content: center;
    border-bottom: 2px solid #1DADE2;
}
#maps .link-area .wp-block-column {
    display: flex;
    justify-content: center;
    gap: 40px;
    padding-bottom: 20px;
}

#maps .link-area a {
    display: inline-block;
    margin: 10px 0 0;
    padding: 15px 30px;
    border: none;
    border-radius: 8px;
    background: #012e53;
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: #FFF;
    text-align: left;
    transition: 0.5s;
}
#maps .link-area a:hover {
    display: inline-block;
    margin: 10px 0 0;
    padding: 15px 30px;
    border: none;
    border-radius: 8px;
    background: #0265b7;
    font-weight: 700;
    color: #FFF;
}
#maps .link-area a::before {
    padding-right: 15px;
    transition: transform .3s ease-in-out;
    display: inline-block;
}
#maps .link-area a::after {
    content: "";
    display: none;
}
#maps .link-cta-mail a::before {
    font-family: "Font Awesome 6 Free";
    content: "\f0e0";
    font-weight: 900;
}
#maps .link-cta-tel a::before {
    font-family: "Font Awesome 6 Free";
    content: "\f879";
    font-weight: 900;
}
#maps .link-cta-other a::before {
    font-family: "Font Awesome 6 Free";
    content: "\e533";
    font-weight: 900;
}

@media screen and (max-width: 768px) {
    #maps h2 {
        font-size: var(--font-size-md);
    }
    #maps .link-area .wp-block-column {
        gap: 1rem;
        flex-direction: column;
        margin-bottom: 20px;
    }
    #maps .link-area .wp-block-column p {
        margin: 0 auto;
    padding: 0;
    }
    #maps .link-area a {
        margin: 10px 0 0;
        padding: 15px 20px;
        font-size: var(--font-size-md);
        width: 300px;
        text-align: center;
    }
}

/* テーブル */
.content-table-type-base {
/*    margin: 0 auto 0;
    padding: 0 40px 0 40px;
    width: 100%;
    max-width: 1700px;*/
}
/* テーブル｜会社概要 */
#services .wp-block-table {
	padding: 0 40px;
}

#services table {
    border-collapse: collapse;
    margin: 0 auto 0;
    width: 100%;
    max-width: 1700px;
}

#services table th {
    border-collapse: collapse;
    padding: 15px 10px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: normal;
    font-size: 1.0rem;
    text-align: left;
    color: #000;
	border: none;
    border-bottom: 1px solid #DCDCDC;
    background-color: #EBF9FA;
}

#services table td {
    border-collapse: collapse;
    padding: 15px 15px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: normal;
    font-size: 1.0rem;
    color: #000;
	border: none;
    border-bottom: 1px solid #DCDCDC;
    background-color: #FFF;
}

/* テーブル｜会社概要 */
#about .wp-block-table {
	padding: 0 40px;
}

#about table {
    border-collapse: collapse;
    margin: 0 auto 0;
    width: 100%;
    max-width: 1700px;
}

#about table th {
    border-collapse: collapse;
    padding: 15px 10px;
    font-weight: normal;
    font-size: 1.0rem;
    text-align: left;
    color: #000;
    border-bottom: 1px solid #DCDCDC;
    background-color: #FFFFFF;
}

#about table td {
    border-collapse: collapse;
    padding: 15px 15px;
    font-weight: normal;
    font-size: 1.0rem;
    color: #000;
	border: none;
    border-bottom: 1px solid #DCDCDC;
    background-color: #FFF;
}

/*
汎用 - セクションパーツ
*/
.section-note {
    text-align: center;
    font-size: var(--font-size-md);
    font-weight: 700;
}

/* Common button: keep existing HTML (p.link-button-01 > a) */
.link-button-01 {
	/* Customizable colors */
	--fill-bg: #2b5ca8;   /* hover fill background */
	--fill-text: #ffffff; /* hover text color */
}

.link-button-01 > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
	margin: 0 auto;
	padding: 0 56px 0 40px; /* 右側にアイコン分の余白を確保 */
    font-size: var(--font-size-md);
    font-weight: 400;
    font-family: 'Josefin Sans', sans-serif;
    height: 50px;
    border-radius: 35px;
	color: #FFFFFF;
	border: 1px solid #FFFFFF;
	background: transparent;
	text-decoration: none;
	position: relative;
	overflow: hidden;
	isolation: isolate;
	transition: color 250ms ease;
}

/* Icon (Font Awesome) */
.link-button-01 > a::before {
	content: "\f0da"; /* right triangle */
	font: normal 900 0.9em/1 "Font Awesome 6 Free", "Font Awesome 5 Free";
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: currentColor;
	pointer-events: none;
}

/* Sliding fill */
.link-button-01 > a::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--fill-bg);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 300ms ease;
	z-index: -1;
}

.link-button-01 > a:hover,
.link-button-01 > a:focus-visible {
	color: var(--fill-text);
}

.link-button-01 > a:hover::after,
.link-button-01 > a:focus-visible::after {
	transform: scaleX(1);
}

/* Light variant: start with white border/white text */
.link-button-01.is-light {
	color: #fff;
	--fill-bg: #fff;
	--fill-text: #2b5ca8;
}

.cta-footer-wrapper {
    background: #EEEEEE;
    background-image: url(img/bg-foot.png);
    background-size: cover;
    background-position: bottom center;
    background-repeat: no-repeat;
}



#intro .wp-block-column > div {
    max-width: 1300px;
}
#intro .wp-block-column h2 {
    color: #FFFFFF;
    letter-spacing: 0.5rem;
    font-weight: 700;
}
#intro .wp-block-column p {
    color: #FFFFFF;
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
    font-weight: 400;
}

/* #intro: 散らばりレイアウト ＋ 中央から外へフェードインアニメ */
#intro .wp-block-columns {
    justify-content: center!important;
    align-items: center!important;
    gap: 4rem;
    position: relative;
}
#intro .wp-block-column {
    flex: 0 1 auto;
}
#intro .wp-block-column:first-child,
#intro .wp-block-column:last-child {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    position: relative;
    z-index: 1;
}
#intro .wp-block-column:nth-child(2) {
    position: relative;
    z-index: 2;
}
/* 左・右カラムを中央寄りに重ねる（中央テキストが手前） */
#intro .wp-block-column:first-child {
    margin-right: -1.5rem;
}
#intro .wp-block-column:last-child {
    margin-left: -1.5rem;
}
/* 左カラム：画像を散らばり配置（上左・下右寄り）＋重なり */
#intro .wp-block-column:first-child figure:nth-child(1) {
    margin-left: 2rem;
    margin-bottom: -1.5rem;
    align-self: flex-end;
    position: relative;
    z-index: 2;
}
#intro .wp-block-column:first-child figure:nth-child(2) {
    align-self: flex-start;
    margin-right: 2.5rem;
    margin-top: -1.0rem;
    position: relative;
    z-index: 1;
}
/* 右カラム：画像を散らばり配置（上右・下左寄り）＋重なり */
#intro .wp-block-column:last-child figure:nth-child(1) {
    margin-left: 4.0rem;
    margin-bottom: -2rem;
    align-self: flex-end;
    position: relative;
    z-index: 2;
}
#intro .wp-block-column:last-child figure:nth-child(2) {
    align-self: flex-start;
    margin-right: 2.5rem;
    margin-top: -1.5rem;
    position: relative;
    z-index: 1;
}
#intro .wp-block-column figure {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
#intro .wp-block-column figure img {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
}

/* アニメ発火前：非表示（JS で .is-inview 付与後にアニメ開始） */
#intro:not(.is-inview) .wp-block-column:first-child figure,
#intro:not(.is-inview) .wp-block-column:last-child figure,
#intro:not(.is-inview) .wp-block-column:nth-child(2) h2,
#intro:not(.is-inview) .wp-block-column:nth-child(2) p,
#intro:not(.is-inview) .wp-block-column:nth-child(2) .link-button-01 {
    opacity: 0;
}

/* 中央から外へフェードイン＋散らばり（.is-inview 付与時のみ発火） */
@keyframes intro-scatter-left {
    from {
        opacity: 0;
        transform: scale(0.88) translate(20%, 0);
    }
    to {
        opacity: 1;
        transform: scale(1) translate(0, 0);
    }
}
@keyframes intro-scatter-right {
    from {
        opacity: 0;
        transform: scale(0.88) translate(-20%, 0);
    }
    to {
        opacity: 1;
        transform: scale(1) translate(0, 0);
    }
}
@keyframes intro-scatter-center {
    from {
        opacity: 0;
        transform: scale(0.96);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}
#intro.is-inview .wp-block-column:first-child figure {
    animation: intro-scatter-left 0.65s ease-out both;
}
#intro.is-inview .wp-block-column:first-child figure:nth-child(1) { animation-delay: 0.1s; }
#intro.is-inview .wp-block-column:first-child figure:nth-child(2) { animation-delay: 0.28s; }
#intro.is-inview .wp-block-column:last-child figure {
    animation: intro-scatter-right 0.65s ease-out both;
}
#intro.is-inview .wp-block-column:last-child figure:nth-child(1) { animation-delay: 0.18s; }
#intro.is-inview .wp-block-column:last-child figure:nth-child(2) { animation-delay: 0.36s; }
#intro.is-inview .wp-block-column:nth-child(2) h2,
#intro.is-inview .wp-block-column:nth-child(2) p,
#intro.is-inview .wp-block-column:nth-child(2) .link-button-01 {
    animation: intro-scatter-center 0.6s ease-out both;
}
#intro.is-inview .wp-block-column:nth-child(2) h2 { animation-delay: 0.05s; }
#intro.is-inview .wp-block-column:nth-child(2) p:nth-of-type(1) { animation-delay: 0.15s; }
#intro.is-inview .wp-block-column:nth-child(2) p:nth-of-type(2) { animation-delay: 0.22s; }
#intro.is-inview .wp-block-column:nth-child(2) .link-button-01 { animation-delay: 0.35s; }

@media (prefers-reduced-motion: reduce) {
    #intro:not(.is-inview) .wp-block-column figure,
    #intro:not(.is-inview) .wp-block-column:nth-child(2) h2,
    #intro:not(.is-inview) .wp-block-column:nth-child(2) p,
    #intro:not(.is-inview) .wp-block-column:nth-child(2) .link-button-01 {
        opacity: 1;
    }
    #intro .wp-block-column figure,
    #intro .wp-block-column:nth-child(2) h2,
    #intro .wp-block-column:nth-child(2) p,
    #intro .wp-block-column:nth-child(2) .link-button-01 {
        animation: none;
        opacity: 1;
        transform: none;
    }
}

@media screen and (max-width: 768px) {
    #intro .wp-block-column:first-child {
        max-width: 200px;
        width: fit-content;
        margin-right: auto;
        margin-left: 0;
    }
    #intro .wp-block-column:last-child {
        max-width: 200px;
        width: fit-content;
        margin-left: auto;
        margin-right: 0;
    }
    #intro .wp-block-column:first-child figure img,
    #intro .wp-block-column:last-child figure img {
        max-width: 80px;
    }
    #intro .wp-block-column:first-child figure:nth-child(1) {
        margin-left: 1rem;
        margin-bottom: -1.5rem;
        align-self: auto;
    }
    #intro .wp-block-column:first-child figure:nth-child(2) {
        margin-right: 2.5rem;
        margin-top: -4.0rem;
    }
    #intro .wp-block-column:first-child figure:nth-child(2) img {
        max-width: 95px;
    }
    #intro .wp-block-column:last-child figure:nth-child(1) img {
        max-width: 90px;
    }
    #intro .wp-block-column:last-child figure:nth-child(2) {
        align-self: auto;
        margin-right: 1.0rem;
        margin-top: -1.5rem;
    }
    #intro .wp-block-column:last-child figure:nth-child(2) img {
        max-width: 75px;
    }
}

/* ==============================
   スクロール発火アニメーション（任意のブロックに追加クラスで適用）
   - ブロックの「高度」→「追加の CSS クラス」に scroll-anim を指定
   - 発火後 .is-inview が付与される。別パターンは .scroll-anim--xxx を追加して CSS で差し替え可
   ============================== */
.scroll-anim {
    --scroll-anim-ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
    --scroll-anim-ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
    --scroll-anim-dur-opacity: 0.9s;
    --scroll-anim-dur-translate: 1.8s;
    /* 13% は1行要素だと数pxで動きが分かりにくいため、px で明示（好みで 13% に戻して可） */
    --scroll-anim-translate: 18%;

    opacity: 0;
    transform: translateY(var(--scroll-anim-translate));
    transition:
        opacity var(--scroll-anim-dur-opacity) var(--scroll-anim-ease-out-cubic),
        transform var(--scroll-anim-dur-translate) var(--scroll-anim-ease-out-quint);
}
.scroll-anim.is-inview {
    opacity: 1;
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .scroll-anim {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* .scroll-anim--stagger: 見出し→本文を順にふわっと（子に stagger の delay） */
.scroll-anim.scroll-anim--stagger {
    opacity: 1;
    transform: none;
    transition: none;
}
/* 詳細度を上げて他ルールに負けないように（.section-title / .wp-block-heading / .paragraph-center 等） */
.scroll-anim.scroll-anim--stagger h2,
.scroll-anim.scroll-anim--stagger h3,
.scroll-anim.scroll-anim--stagger h4,
.scroll-anim.scroll-anim--stagger p {
    opacity: 0;
    transform: translateY(var(--scroll-anim-translate));
    transition:
        opacity var(--scroll-anim-dur-opacity) var(--scroll-anim-ease-out-cubic),
        transform var(--scroll-anim-dur-translate) var(--scroll-anim-ease-out-quint);
}
.scroll-anim.scroll-anim--stagger.is-inview h2,
.scroll-anim.scroll-anim--stagger.is-inview h3,
.scroll-anim.scroll-anim--stagger.is-inview h4,
.scroll-anim.scroll-anim--stagger.is-inview p {
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity var(--scroll-anim-dur-opacity) var(--scroll-anim-ease-out-cubic),
        transform var(--scroll-anim-dur-translate) var(--scroll-anim-ease-out-quint);
}
.scroll-anim.scroll-anim--stagger.is-inview h2 { transition-delay: 0s; }
.scroll-anim.scroll-anim--stagger.is-inview h3 { transition-delay: 0.1s; }
.scroll-anim.scroll-anim--stagger.is-inview h4 { transition-delay: 0.2s; }
.scroll-anim.scroll-anim--stagger.is-inview p:nth-of-type(1) { transition-delay: 0.25s; }
.scroll-anim.scroll-anim--stagger.is-inview p:nth-of-type(2) { transition-delay: 0.4s; }
.scroll-anim.scroll-anim--stagger.is-inview p:nth-of-type(3) { transition-delay: 0.55s; }
.scroll-anim.scroll-anim--stagger.is-inview p:nth-of-type(4) { transition-delay: 0.7s; }
@media (prefers-reduced-motion: reduce) {
    .scroll-anim.scroll-anim--stagger h2,
    .scroll-anim.scroll-anim--stagger h3,
    .scroll-anim.scroll-anim--stagger h4,
    .scroll-anim.scroll-anim--stagger p {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

#Indeed .wp-block-columns {
    display: flex;
    align-items: center;
    justify-content: center;
}
#Indeed h2 {
    font-size: calc(var(--font-size-xl) * 1.1);
    line-height: calc(var(--font-size-xl) * 1.1);
    text-align: left;
    font-weight: 400;
    border-bottom: 1px solid #727272;
    color: #2b5ca8;
    margin-bottom: 10px;
    padding-bottom: 10px;
}
#Indeed .left-img-block {
    flex: 0 0 auto;
}
#Indeed figure {
    width: 200px;
}

/* #Indeed PC: 画像左・見出し＋本文右の横並び。右側2ブロックは縦位置中央 */
@media screen and (min-width: 769px) {
    #Indeed .wp-block-column {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-rows: 1fr 1fr;
        gap: 0 2rem;
        align-items: center;
    }
    #Indeed .wp-block-column > figure.left-img-block {
        grid-column: 1;
        grid-row: 1 / -1;
        align-self: center;
    }
    #Indeed .wp-block-column > h2 {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
        margin-top: 20px;
        margin-bottom: 0;
    }
    #Indeed .wp-block-column > p {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
        margin-top: 0;
        margin-bottom: 20px;
    }
}

/* #Indeed SP: 見出し → 画像 → 本文 の順に並べる（order で並べ替え） */
@media screen and (max-width: 768px) {
    #Indeed .wp-block-column {
        display: flex;
        flex-direction: column;
    }
    #Indeed .wp-block-column > h2 {
        order: 1;
    }
    #Indeed .wp-block-column > .left-img-block,
    #Indeed .wp-block-column > figure.left-img-block {
        order: 2;
        margin: 0 auto;
    }
    #Indeed .wp-block-column > p {
        order: 3;
    }
}

#Media {
    background-image: url(img/bg-media-02.png);
    background-size: contain;
    background-position: top center;
    background-repeat: no-repeat;
}
#Media h2 {
    font-weight: 600;
    color: #FFFFFF;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
}
#Media p {
    color: #FFFFFF;
}

/* =========================
   ロゴギャラリー（PC: 5列）
   - figureを同一比率の箱に
   - ロゴは上下左右中央
========================= */
#Media p.logo-category {
    max-width: 900px;
    margin: 0 auto;
    padding: 8px 10px;
    color: #FFFFFF;
    background: #2b5ca8;
    text-align: left;
}
#Media p.logo-caption {
    max-width: 900px;
    margin: 30px auto 0;
    padding: 8px 10px;
    color: #414141;
    text-align: center;
    font-size: var(--font-size-sm);
}
/* Mediaタブの“高さ基準”をここで調整する */
#Media{
    --logo-row-height-pc: 70px;  /* 1行の概算高さ */
    --logo-rows-max-pc: 7;        /* 最大タブの行数 */
    --logo-gap-pc: 10px;          /* grid gap と合わせる */
}

/* アクティブパネルの最低高さを確保 */
#Media .media-tabs__body > .wp-block-column.is-active{
    min-height: calc(
        (var(--logo-row-height-pc) * var(--logo-rows-max-pc)) +
        (var(--logo-gap-pc) * (var(--logo-rows-max-pc) - 1))
    );
}

@media screen and (max-width: 768px) {
    #Media .media-tabs__body > .wp-block-column.is-active {
        min-height: auto;
    }
}

/* WPデフォの columns-default 幅指定を無効化（logo-grid限定） */
.wp-block-gallery.logo-grid.has-nested-images{
    max-width: 900px;
    margin: 0 auto;
}
.wp-block-gallery.logo-grid.has-nested-images > figure.wp-block-image:not(#individual-image){
    width: auto !important;
    flex: initial !important;
}
.wp-block-gallery.logo-grid.has-nested-images{
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px 30px;
    margin: 0 auto;
    padding: 0;
}
@media screen and (max-width: 768px) {
    .wp-block-gallery.logo-grid.has-nested-images{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.wp-block-gallery.logo-grid.has-nested-images > figure.wp-block-image{
    aspect-ratio: 16 / 9;
    background: #fff;
    border: none;
    border-radius: 0;
    margin: 0 !important;
    overflow: hidden;
  }
  
.wp-block-gallery.logo-grid.has-nested-images > figure.wp-block-image img{
    max-width: 80%;
    max-height: 70%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.wp-block-gallery.logo-grid.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block;
}

#Media02 .wp-block-columns {
    align-items: center!important;
    justify-content: center!important;
}
#Media02 h2 {
    font-size: calc(var(--font-size-xl) * 1.1);
    text-align: left;
    font-weight: 400;
    margin-bottom: 10px;
    padding-bottom: 10px;
}
#Media02 h2 strong {
    display: inline-block;
    background: linear-gradient(180deg, #0084cb 0%, #2b5ca8 100%), #FFFFFF;
    -webkit-background-clip: text, border-box;
    background-clip: text, border-box;
    color: transparent;
    padding: 10px 20px;
    margin-bottom: 10px;
}
#Media02 .left-img-block {
    flex: 0 0 auto;
}
#Media02 figure {
    width: 400px;
}
#Media02 p {
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
    color: #FFFFFF;
}
@media screen and (max-width: 768px) {
    #Media02 figure {
        width: 90%;
        max-width: 350px;
        margin: 0 auto;
    }
}

#Service {
    background-size: contain;
    background-position: top center;
    background-repeat: no-repeat;
    background-color: #e5eefc;
}
/* 二枚重ね背景：奥→手前［半透明#2b5ca8 / ノイズ繰り返し］。ノイズは ::after で重ねる */
#Service.double-stacked-bg{
    position: relative;
    background-image: linear-gradient(rgba(43, 92, 168, 0.15), rgba(43, 92, 168, 0.15));
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover; /* ここは好みで auto でもOK */
}

#Service.double-stacked-bg::after{
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image: var(--bg-noise, url(img/bg-noise.png));
    background-repeat: repeat;
    background-position: left top;
    pointer-events: none;
}
/* コンテンツは最前面 */
#Service.double-stacked-bg > *{
    position: relative;
    z-index: 2;
}
#Service h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
}
#Service p {
    color: #414141;
}
#Service .section-subtitle::before {
    background: #414141;
}
#Service .content-card-type-02 .wp-block-column {
    padding: 0;
    background: #FFFFFF;
    border-radius: 12px;
}
#Service .content-card-type-02 .wp-block-column:hover {
    background-color: #F9F9F9;
    border: 1px solid #DFDFDF;
}
#Service .content-card-type-02 .wp-block-column .wp-block-group {
    height: 100%;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
}
#Service .content-card-type-02 .wp-block-column .wp-block-group__inner-container {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
}
/* テキスト部分を上に、画像を下に配置 */
#Service .content-card-type-02 .wp-block-column .wp-block-group__inner-container > *:not(figure):not(.wp-block-image) {
    flex: 0 1 auto;
}
/* 画像を下に配置（テキストが短くても画像の下に空白が出ない） */
#Service .content-card-type-02 .wp-block-column figure,
#Service .content-card-type-02 .wp-block-column .wp-block-image {
    flex: 0 0 auto;
    margin-top: auto;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
}
#Service .content-card-type-02 .wp-block-column img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: center;
    display: block;
    margin: 0;
}
#Service .content-card-type-02 .wp-block-column h3 {
    margin-top: 20px;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: left;
    border-bottom: none;
    line-height: var(--font-size-xxxl);
}
#Service .content-card-type-02 .wp-block-column h3 em {
    display: inline-block;
    font-size: var(--font-size-xxxl);
    /*font-family: 'Josefin Sans', sans-serif;*/
    font-family:
    bahnschrift,
    "Bahnschrift",
    "brandon-grotesque", "Brandon Grotesque",
    "Noto Sans JP",
    sans-serif!important;
    font-variant-numeric: tabular-nums;
    color: #2b5ca8;
    padding: 0 20px 0 0;
    border-right: 1px solid #CCCCCC;
}
#Service .content-card-type-02 .wp-block-column h3 strong {
    display: inline-block;
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: #414141;
    padding: 0 0 0 20px;
}
#Service .content-card-type-02 .wp-block-column p {
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 0 20px;
}

@media screen and (max-width: 768px) {
    #Service .content-card-type-02 .wp-block-column h3 strong {
        display: inline-block;
        font-size: var(--font-size-md);
        font-weight: 700;
        color: #414141;
        padding: 0 0 0 20px;
    }
    #Service .content-card-type-02 .wp-block-column h3 {
    }
    #Service .content-card-type-02 .wp-block-column p {
        font-size: var(--font-size-base);
    }
    #Service .content-card-type-02 .wp-block-column ul {
        margin-bottom: 5px;
    }
    #Service .content-card-type-02 .wp-block-column li {
        font-size: var(--font-size-md);
    }
    #Service .content-card-type-02 .wp-block-column .vk_icon {
        margin-bottom: 0;
    }
}

#News h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
    text-align: left;
}
#News p {
    color: #414141;
}
#News .section-subtitle::before {
    background: #414141;
}

/* #News のみ：見出し幅に合わせたサブタイトル＋線（構造が共通セレクタにかからないため個別指定） */
#News h2:has(+ .section-subtitle) {
    width: fit-content;
    margin-inline: auto;
}
#News .section-subtitle {
    width: var(--heading-width, 20ch);
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: 0.75em;
    font-size: var(--font-size-sm);
}
#News .section-subtitle::before {
    content: '';
    flex: 1 1 0;
    min-width: 0;
    height: 1px;
}

#News .wp-block-column.news-list-h2{
    flex: 0 0 220px;   /* ←ここを好みで調整（例：180〜280px） */
    max-width: 220px;
}

#News .wp-block-column.news-list-block{
    flex: 1 1 auto;
    min-width: 0;      /* 長文はみ出し対策 */
}

@media screen and (max-width: 768px) {
    #News .wp-block-column.news-list-block .wp-block-post-template {
        margin-left: 0!important;
    }
}
/* liを横並び */
#News .wp-block-post-template > li{
    display:flex;
    align-items: baseline; /* 日付と本文の行を揃える。centerでもOK */
    gap: 16px;             /* 日付と本文の間隔 */
    margin-bottom: 20px;
  }
  
  /* 日付の列幅固定 */
  #News .wp-block-post-template > li .wp-block-post-date{
    flex: 0 0 150px;       /* 幅固定 */
    max-width: 150px;
    white-space: nowrap;   /* 改行防止 */
    color: #2b5ca8;
  }
  @media screen and (max-width: 768px) {
    #News .wp-block-post-template > li .wp-block-post-date{
        flex: 0 0 100px;
      }
  }
  /* 抜粋側は残りを使う */
  #News .wp-block-post-template > li .wp-block-post-excerpt{
    flex: 1 1 auto;
    min-width: 0;          /* 長文のはみ出し対策（重要） */
  }
  
  /* pの余計な上下余白を消して左寄せ */
  #News .wp-block-post-template > li .wp-block-post-excerpt__excerpt{
    margin: 0;
    text-align: left;
  }


#cta {
    margin: 0 auto 0px;
    padding: 50px 0px 50px;    
}
#cta > div {
    margin: 0 auto;
    width: 90%;
    max-width: 1100px;
}
#cta h2 {
    text-align: center;
    font-weight: 600;
    color: #FFFFFF;
    font-family: Montserrat, sans-serif;
    font-size: var(--font-size-xxxl);
    line-height: 1.2;
    margin-bottom: 5px;
}
#cta p {
    text-align: center;
    color: #FFFFFF;
}
#cta .cta-buttons .wp-block-group {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 20px;
}

#cta.cta .cta-buttons,
.nav-box .nav-box__cta.cta-buttons {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 1.5rem;
    margin: 25px 0 0;
    z-index: 5;
}
#cta.cta .cta-buttons p,
.nav-box .nav-box__cta.cta-buttons p {
    margin: 0;
    padding: 0;
}
#cta.cta .cta-buttons .button-tel,
.nav-box .nav-box__cta .button-tel {
    width: 100%;
    max-width: 400px;
}
#cta.cta .cta-buttons .wp-block-group {
    width: 400px;
    max-width: 400px;
}
#cta.cta .cta-buttons .button-contact,
.nav-box .nav-box__cta .button-contact {
    width: 100%;
    max-width: 400px;
}
#cta.cta .cta-buttons .button-request,
.nav-box .nav-box__cta .button-request {
    width: 100%;
    max-width: 400px;
}

#cta.cta .cta-buttons .button-tel a,
#cta.cta .cta-buttons .button-contact a,
#cta.cta .cta-buttons .button-request a,
.nav-box .nav-box__cta .button-tel a,
.nav-box .nav-box__cta .button-contact a,
.nav-box .nav-box__cta .button-request a {
    display: block;
    padding: 20px 40px;
    width: 100%;
    border-radius: 8px;
    background: #FFFFFF;
    font-weight: 600;
    text-align: center;
    color: #000000;
    z-index: 0;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color 250ms ease;
}
/* スライドフィル用 ::after（link-button-01 と同様）。各ボタンで色・文字色を変数指定可 */
#cta.cta .cta-buttons .button-tel a::after,
.nav-box .nav-box__cta .button-tel a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--cta-tel-fill-bg, #f7f7f7);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 300ms ease;
    z-index: -1;
}
#cta.cta .cta-buttons .button-tel a:hover,
#cta.cta .cta-buttons .button-tel a:focus-visible,
.nav-box .nav-box__cta .button-tel a:hover,
.nav-box .nav-box__cta .button-tel a:focus-visible {
    color: var(--cta-tel-fill-text, #292a26);
}
#cta.cta .cta-buttons .button-tel a:hover::after,
#cta.cta .cta-buttons .button-tel a:focus-visible::after,
.nav-box .nav-box__cta .button-tel a:hover::after,
.nav-box .nav-box__cta .button-tel a:focus-visible::after {
    transform: scaleX(1);
}
#cta.cta .cta-buttons .button-contact a::after,
.nav-box .nav-box__cta .button-contact a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--cta-contact-fill-bg, #1e4d8c);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 300ms ease;
    z-index: -1;
}
#cta.cta .cta-buttons .button-contact a:hover,
#cta.cta .cta-buttons .button-contact a:focus-visible,
.nav-box .nav-box__cta .button-contact a:hover,
.nav-box .nav-box__cta .button-contact a:focus-visible {
    color: var(--cta-contact-fill-text, #fff);
}
#cta.cta .cta-buttons .button-contact a:hover::after,
#cta.cta .cta-buttons .button-contact a:focus-visible::after,
.nav-box .nav-box__cta .button-contact a:hover::after,
.nav-box .nav-box__cta .button-contact a:focus-visible::after {
    transform: scaleX(1);
}
#cta.cta .cta-buttons .button-request a::after,
.nav-box .nav-box__cta .button-request a::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--cta-request-fill-bg, #006ba3);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 300ms ease;
    z-index: -1;
}
#cta.cta .cta-buttons .button-request a:hover,
#cta.cta .cta-buttons .button-request a:focus-visible,
.nav-box .nav-box__cta .button-request a:hover,
.nav-box .nav-box__cta .button-request a:focus-visible {
    color: var(--cta-request-fill-text, #fff);
}
#cta.cta .cta-buttons .button-request a:hover::after,
#cta.cta .cta-buttons .button-request a:focus-visible::after,
.nav-box .nav-box__cta .button-request a:hover::after,
.nav-box .nav-box__cta .button-request a:focus-visible::after {
    transform: scaleX(1);
}

#cta.cta .cta-buttons .button-contact a,
.nav-box .nav-box__cta .button-contact a {
    background-color: #2b5ca8;
    color: #FFFFFF;
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.40);
    transition: .5s;
    transition: all 0.3s ease-in-out;
}
#cta.cta .cta-buttons .button-contact a::before,
.nav-box .nav-box__cta .button-contact a::before {
    font-family: "Font Awesome 6 Free";
    content: "\f0e0";
    font-weight: 900;
    font-size: 1.4em;
    display: inline-block;
    vertical-align: middle;
    margin-right: 15px;
}
#cta.cta .cta-buttons .button-request a,
.nav-box .nav-box__cta .button-request a {
    background-color: #0084cb;
    color: #FFFFFF;
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.40);
    transition: .5s;
    transition: all 0.3s ease-in-out;
}
#cta.cta .cta-buttons .button-request a::before,
.nav-box .nav-box__cta .button-request a::before {
    font-family: "Font Awesome 6 Free";
    content: "\f15b";
    font-weight: 900;
    font-size: 1.4em;
    display: inline-block;
    vertical-align: middle;
    margin-right: 15px;
}
#cta.cta .cta-buttons .button-tel a,
.nav-box .nav-box__cta .button-tel a {
    padding: 25px 40px;
    line-height: 1.4;
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.40);
}

#cta.cta .cta-buttons .tel-title,
.nav-box .nav-box__cta .tel-title {
    font-size: var(--font-size-md);
    color: #2b5ca8;
}
#cta.cta .cta-buttons .tel-title::before,
.nav-box .nav-box__cta .tel-title::before {
    font-family: "Font Awesome 6 Free";
    content: "\f095";
    font-weight: 900;
    font-size: 1.4em;
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
}
#cta.cta .cta-buttons .tel-number,
.nav-box .nav-box__cta .tel-number {
    font-size: var(--font-size-xxl);
    font-family: ;
    color: #2b5ca8;
    font-family:
    bahnschrift,
    "Bahnschrift",
    "brandon-grotesque", "Brandon Grotesque",
    "Noto Sans JP",
    sans-serif!important;
    font-variant-numeric: tabular-nums;
}
#cta.cta .cta-buttons .tel-time,
.nav-box .nav-box__cta .tel-time {
    font-size: var(--font-size-base);
    font-weight: 400;
}

@media screen and (max-width: 768px) {
    #cta.cta .cta-buttons,
    .nav-box .nav-box__cta.cta-buttons {
        flex-direction: column;
    }
    #cta h2 {
        margin-bottom: 0px;
    }
    #cta.cta .cta-buttons .wp-block-group {
        width: 100%;
        max-width: 400px;
    }
    #cta.cta .cta-buttons .button-tel,
    .nav-box .nav-box__cta .button-tel {
        width: 400px;
        max-width: 100%;
    }
    #cta.cta .cta-buttons .button-contact,
    .nav-box .nav-box__cta .button-contact {
        width: 400px;
        max-width: 100%;
    }
    #cta.cta .cta-buttons .button-request,
    .nav-box .nav-box__cta .button-request {
        width: 400px;
        max-width: 100%;
    }
}





#concept {
    background: #eefeff;
    background:
    /* 角の薄いビネット（四隅が少し濃い） */
    radial-gradient(120% 100% at 50% 50%,
        rgba(0,0,0,0) 55%,
        rgba(0,70,120,0.06) 100%),

    /* 中央の白いにじみ（箱の裏の光） */
    radial-gradient(40% 55% at 48% 52%,
        rgba(255,255,255,0.95) 0%,
        rgba(255,255,255,0.35) 35%,
        rgba(255,255,255,0) 70%),

    /* 左側の広い明るさ（左→中央にかけて白っぽい） */
    radial-gradient(65% 80% at 22% 50%,
        rgba(255,255,255,0.55) 0%,
        rgba(255,255,255,0) 60%),

    /* ベースの淡い水色（ほんのり縦方向のムラ） */
    linear-gradient(180deg, #cfeef9 0%, #bfe6f4 100%);

}
#concept h2 strong {
    color: #00afbf;
}
#concept p {
    margin: 40px auto 0;
    text-align: center;
    font-size: var(--font-size-md);
    line-height: calc(var(--font-size-md) * 1.8);
    font-weight: 400;
}
#concept p strong {
    color: #E91E63;
    font-weight: 400;
}
@media screen and (max-width: 768px) {
    #concept h2 {
        font-size: var(--font-size-xl);
    }
}

#industries h3 {
    font-size: var(--font-size-lg);
}
@media screen and (max-width: 768px) {
    #industries .content-card-type-02 .wp-block-column h3 {
        font-size: var(--font-size-xl);
    }
    #industries .content-card-type-02 .wp-block-column p {
        font-size: var(--font-size-md);
    }
    #industries .content-card-type-02 .wp-block-column ul {
        margin-bottom: 5px;
    }
    #industries .content-card-type-02 .wp-block-column li {
        font-size: var(--font-size-md);
    }
    #industries .content-card-type-02 .wp-block-column .vk_icon {
        margin-bottom: 0;
    }
}


#reasons h3 {
    font-size: var(--font-size-lg);
    text-align: left;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: .5em;
}
#reasons h3::before{
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    line-height: 1;
    flex: 0 0 auto;
}
#reasons .content-card-type-02 .wp-block-column {
    background-color: #FFF;
    border: 1px solid #FFF;
}
#pricing h3 {
    font-size: var(--font-size-lg);
    text-align: left;
    font-weight: 900;
}
#pricing h3.base-title {
    font-size: var(--font-size-lg);
    text-align: left;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: .5em;
}
#pricing h3.base-title::before{
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    line-height: 1;
    flex: 0 0 auto;
}
#pricing h3.premium-title {
    font-size: var(--font-size-lg);
    text-align: left;
    font-weight: 900;
    border-bottom: 1px solid #C9A23A;
    display: flex;
    align-items: center;
    gap: .5em;
}
#pricing h3.premium-title::before{
    content: "\f521";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    line-height: 1;
    color: #C9A23A;
    flex: 0 0 auto;
}
#pricing .premium-card .wp-block-column {
    background: linear-gradient(180deg, #FFF8E1 0%, #FFFFFF 60%, #FFF8E1 100%);
    border: 1px solid #F1E2B5;
    box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
@media screen and (max-width: 768px) {
    #pricing .content-card-type-02 .wp-block-column h3 {
        font-size: var(--font-size-xl);
    }
    #pricing .content-card-type-02 .wp-block-column p {
        font-size: var(--font-size-md);
    }
    #pricing .content-card-type-02 .wp-block-column ul {
        margin-bottom: 5px;
    }
    #pricing .content-card-type-02 .wp-block-column li {
        font-size: var(--font-size-md);
    }
}

#about h3 {
    font-size: var(--font-size-lg);
    line-height: calc(var(--font-size-lg) * 1.8);
    font-weight: 700;
}

#about p {
    margin: 40px auto 0;
    text-align: center;
    font-size: var(--font-size-md);
    line-height: calc(var(--font-size-md) * 1.8);
    font-weight: 400;
}
#about p strong {
    color: #E91E63;
    font-weight: 400;
}

#about .content-card-type-02 .wp-block-column {
    background-color: transparent;
    border: none;
}
#about .content-card-type-02 .wp-block-column p.result {
    margin-top: 0;
    padding: 10px;
    background: transparent;
    text-align: center;
    font-size: var(--font-size-lg);
    font-weight: 900;
    color: #012e53;
}
@media screen and (max-width: 768px) {
    #about .about-stats h3 {
        font-size: var(--font-size-xxl)!important;
    }
    #about .about-stats .vk_icon {
        margin-bottom: 10px;
    }
    #about .about-stats .wp-block-vk-blocks-icon .vk_icon_font {
        font-size: 80px;
    }
    #about .about-stats p {
        font-size: var(--font-size-xl)!important;
    }
    #about .about-principles h3 {
        font-size: var(--font-size-xl)!important;
        font-weight: 900!important;
    }
    #about .about-principles p {
        font-size: var(--font-size-lg)!important;
        font-weight: 400!important;
    }
}
.bg-like-shot{
    background:
    /* 角の薄いビネット（四隅が少し濃い） */
    radial-gradient(120% 100% at 50% 50%,
      rgba(0,0,0,0) 55%,
      rgba(0,70,120,0.06) 100%),

    /* 中央の白いにじみ（箱の裏の光） */
    radial-gradient(40% 55% at 48% 52%,
      rgba(255,255,255,0.95) 0%,
      rgba(255,255,255,0.35) 35%,
      rgba(255,255,255,0) 70%),

    /* 左側の広い明るさ（左→中央にかけて白っぽい） */
    radial-gradient(65% 80% at 22% 50%,
      rgba(255,255,255,0.55) 0%,
      rgba(255,255,255,0) 60%),

    /* ベースの淡い水色（ほんのり縦方向のムラ） */
    linear-gradient(180deg, #cfeef9 0%, #bfe6f4 100%);
  }


#p-services-01 h2 {
    text-align: left;
}
#p-services-01 .content-card-type-02 .wp-block-column p.result {
    margin-top: 0;
    padding: 10px;
    background: transparent;
    text-align: center;
    font-size: var(--font-size-lg);
    line-height: calc(var(--font-size-lg) * 1.8);
    font-weight: 900;
    color: #012e53;
}
#p-services-01 .wp-block-vk-blocks-icon .vk_icon_border {
    height: 60px;
}
#p-services-01 .section-title-h3 {
    position: relative;
    margin: 50px auto 30px;
    padding-bottom: 15px;
    width: 100%;
    display: flex;
    align-items: center;
    text-align: left;
    font-weight: 900;
    font-size: var(--font-size-lg);
    line-height: calc(var(--font-size-lg) * 1.0);
    color: #1DADE2;
    border-bottom: 2px solid #1DADE2;
}
#p-services-01 .section-title-h3::before {
    content: '';
    display: none;
}
#p-services-01 .check-section h3 {
    font-size: var(--font-size-lg);
    text-align: left;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: .5em;
    border-bottom: none;
}
#p-services-01 .check-section h3::before{
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    line-height: 1;
    flex: 0 0 auto;
}
#p-services-01 .check-section .wp-block-column {
    background-color: #FFF;
    border: 1px solid #FFF;
}
#p-services-01 .content-card-type-02 .wp-block-column p.results {
    margin-top: 0;
    padding: 10px;
    background: transparent;
    text-align: left;
    font-size: var(--font-size-lg);
    font-weight: 900;
    color: #012e53;
}

.subpage-mv {
    display: none;
}

/**
 * mw wp form
 */
/* ============================================================
 * MW WP Form｜ステップUI（入力→確認→送信）
 * - 矢印：Font Awesome 6 Free（\f0da）
 * - 現在地：mw_wp_form_input / mw_wp_form_confirm / mw_wp_form_complete で自動切替
 * ============================================================ */

/* 全体 */
.mw-step{
    margin: 0 0 24px;
  }
  .mw-step__list{
    display: flex;
    align-items: center;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 0;
  }
  
  /* 各ステップ */
  .mw-step__item{
    display: flex;
    align-items: center;
  }
  
  .mw-step__item + .mw-step__item{
    margin-left: 36px;      /* 丸と丸の間隔 */
    position: relative;
  }
  .mw-step__item + .mw-step__item::before{
    content: "\f0da";
    position: absolute;
    left: -22px;            /* 矢印の位置 */
    top: 50%;
    transform: translateY(-50%);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 18px;
    line-height: 1;
    color: #cfcfcf;
    opacity: .9;
  }
  
  .mw-step__circle{
    width: 72px;
    height: 72px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    border: 2px solid #2b5ca8;
    color: #2b5ca8;
    background: #fff;
  }
  
  /* 現在地（MW WP Formの状態クラスで自動切替） */
  .mw_wp_form_input    .mw-step--input    .mw-step__circle{
    background: #2b5ca8;
    color: #fff;
  }
  .mw_wp_form_confirm  .mw-step--confirm  .mw-step__circle{
    background: #2b5ca8;
    color: #fff;
  }
  .mw_wp_form_complete .mw-step--complete .mw-step__circle{
    background: #2b5ca8;
    color: #fff;
  }


 #contact-form h2 {
    position: relative;
    /*font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "IBM Plex Sans JP", sans-serif;*/
    margin: 0 auto 30px;
    width: 100%;
    /*height: calc(var(--font-size-xl)*1.5) ;*/
    /*font-size: var(--font-size-xl);*/
    font-size: var(--font-size-xl);
    line-height: 1.75;
    text-align: left;
    color: #032642;
    border-bottom: 2px solid #F5F4F9;
}
#contact-form h2::after {
    content: '';
	position: absolute;
    /*top: 0;*/
    bottom: -2px;
    left: 0;
    width: 55%;
    height: 100% ;
    content: '';
    display: inline-block;
    border-bottom: 2px solid #F36C21;
}
@media screen and (max-width: 768px) {
    #contact-form h2 {
        font-size: var(--font-size-lg);
        line-height: 1.75;
    }
    #contact-form h2::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 85%;
        height: 100% ;
        content: '';
        display: inline-block;
        border-bottom: 2px solid #F36C21;
    }
}

.mw_wp_form_flex {
    display: flex;
    flex-wrap: wrap;
    gap: 0 1em;
}
.mw_wp_form_flex .mw_wp_form_title {
    width: 100%;
}
.mw_wp_form_flex .mw_wp_form_inputs {
    flex: 0 0 auto;   /* 伸ばさず内容幅で横並び（姓・名が離れない） */
    min-width: 0;
    box-sizing: border-box;
    padding-right: 0!important;
}
.mw_wp_form_flex .mw_wp_form_inputs:last-child {
    margin-left: 0;
    padding-left: 0;
}
.mw_wp_form_flex .mw_wp_form_inputs span {
    display: inline-block;
    padding-right: 10px;
}
/* 姓・名の input 幅を抑えてブロック同士が寄る（mw_wp_form_flex の dl のみ） */
.mw_wp_form_flex .mw_wp_form_inputs input[type="text"] {
    width: 12em;
    max-width: 100%;
}




.mw_wp_form_read {
    box-sizing: border-box;
    margin-bottom: 15px;
	margin:0 auto;
    /*padding: 20px;*/
	max-width: 980px;
    /*border-bottom: 1px solid #ddd;*/
    font-size: var(--font-size-base);
    font-weight: 600;
    line-height: calc(var(--font-size-base) * 2.0);
    color: #FFFFFF;
    text-align: center;
}

.mw_wp_form_input {
	margin:0 auto;
    margin-top:70px;
	max-width: 980px;
}
@media screen and (max-width: 768px) {
    .mw_wp_form_input {
        margin-top:40px;
    }
}
.mw_wp_form_confirm, .mw_wp_form_preview {
	margin:0 auto;
    margin-top:70px;
	max-width: 980px;
}
@media screen and (max-width: 768px) {
    .mw_wp_form_confirm, .mw_wp_form_preview {
        margin-top:40px;
    }
}

.mw_wp_form_input dl {
    display: flex;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid #CCCCCC;
}
@media screen and (max-width: 768px) {
    .mw_wp_form_input dl {
        display: block;
    }
}

.mw_wp_form_input dl.text-area-top {
    align-items: flex-start;
}
.mw_wp_form_input .mw_wp_form_read {
    margin-bottom: 15px;
    background: #feffd7;
    box-sizing: border-box;
    padding: 20px;
    font-size: 120%;
}

.mw_wp_form_title {
    font-size: 110%;
    font-weight: bold;
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 5px 10px;
    box-sizing: border-box;
    /*border-left: 10px solid #006fbd;*/
    min-width: 27%;
    display: flex;
    justify-content: space-between;
}
@media screen and (max-width: 768px) {
    .mw_wp_form_title {
        justify-content: flex-start;
        min-width: 80%;
    }
}

.mw_wp_form_preview .mw_wp_form_title {
    justify-content: flex-start;
}

.mw_wp_form_title span {
    display: inline-block;
    color: #fff;
    margin-left: 10px;
    border-radius: 0px;
    background: #2b5ca8;
    padding: 2px 10px;
    box-sizing: border-box;
    font-size: 80%;
}


.mw_wp_form_title span.nini {
    display: inline-block;
    color: #414141;
    margin-left: 10px;
    border-radius: 0px;
    background: #CCCCCC;
    padding: 2px 10px;
    box-sizing: border-box;
    font-size: 80%;
}

.mw_wp_form_inputs {
	display:flex;
	align-items: center;
    margin-top: 10px;
    margin-bottom: 10px;
	padding-left: 20px;
	padding-right: 20px;
    width: 100%;
}
.mw_wp_form_sub_label {
    display: inline-block;
    font-size: var(--font-size-sm);
    color: #414141;
    margin-right: 10px;
    min-width: 30px;
}
@media screen and (max-width: 768px) {
    .mw_wp_form_inputs {
        margin-bottom: 4px!important;
    }
}
.mw_wp_form_inputs input[type=text],
.mw_wp_form_inputs input[type=email],
.mw_wp_form_inputs input[type=url] {
    height: 60px;
    padding: 0 20px;
}

.mw_wp_form_inputs input[type=text],
.mw_wp_form_inputs input[type=email],
.mw_wp_form_inputs input[type=url],
.mw_wp_form_inputs textarea {
    width: 100%;
    border-radius: 0;
    border: 1px solid #ddd;
    background-color: #FEFEFE;
}

.mw_wp_form_inputs textarea {
    height: 200px;
    padding: 20px;
    resize: vertical;
}

.mw_wp_form_inputs-vertical-item {
	display:block;
	padding-left: 20px;
	padding-right: 20px;
}



.mw_wp_form_inputs_checkbox {
	padding-left: 20px;
	padding-right: 20px;
}

.mw_wp_form_inputs_error {
	text-align: left;
	padding:5px 5px 5px 20px;
}

.mw_wp_form_inputs_error .error {
	text-align: left;
}

.mw_wp_form .error {
    word-break:keep-all;
}



/* 必須未入力時（.error が同じ dd 内にあるとき）input / select / textarea の枠を赤に */
.mw_wp_form_inputs:has(.error) input[type="text"],
.mw_wp_form_inputs:has(.error) input[type="email"],
.mw_wp_form_inputs:has(.error) input[type="url"],
.mw_wp_form_inputs:has(.error) textarea,
.mw_wp_form_inputs:has(.error) select {
	border-color: #c00;
}

.mw_wp_form_inputs .mw_wp_form_inputs_middle {
	/*max-width:50%;*/
}

.mw_wp_form_inputs_small {
	max-width:100px;
}

.mw_wp_form_inputs select {
	-webkit-appearance: auto;
	appearance: auto;
	width: 100%;
	height: 60px;
	padding: 0 20px;
    border: 1px solid #ddd;
    background-color: #f7f7f7;

}

.mw_wp_form_scloll {
	margin-top: 30px;
	margin-bottom: 15px;
}


.mw_wp_form_scloll_pp {
	margin-top: 10px;
	margin-bottom: 10px;
	height: 20em;
	overflow-y: scroll;
	overflow-y: overlay;
	border: 1px solid #CCC;
	padding: 6px 6px;
	box-sizing: border-box;
}

.mw_wp_form_scloll_pp h3 {
	text-align: left!important;
	width: 100%!important;
	max-width: 95%!important;
    margin: 15px auto;
}

.mw_wp_form_scloll_pp h4 {
	text-align: left!important;
	width: 100%!important;
	max-width: 95%!important;
    margin: 15px auto;
}

.mw_wp_form_scloll_pp p {
	text-align: left!important;
	width: 100%!important;
	max-width: 95%!important;
}

.mw_wp_form_scloll_pp ul {
	text-align: left!important;
	width: 100%!important;
	max-width: 95%!important;
    margin: 15px auto;
}

.mw_wp_form_scloll_pp ol {
	text-align: left!important;
	width: 100%!important;
	max-width: 95%!important;
    margin: 15px auto;
}

.mw_wp_form_scloll_pp th.th_pp {
	background-color: #EFEFEF;
	color: #000;
}

.mw_wp_form_pp {
	text-align: center!important;
	width: 100%!important;
	max-width: 100%!important;
}

.mw_wp_form_input button {
	margin:0 auto 0;
    padding: 10px;
	width: 200px;
    background-color:#15799e;
    color: #FFF;
    border-radius: 20px;
    font-size: var(--font-size-lg);
    font-weight: bold;
}

.mw_wp_form_input p {
	max-width: 70%;
	text-align: center;
	margin: 15px auto;
}

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

.mw_wp_form_title {
	padding: 10px 0px;
/*	border-bottom: 1px solid #006fbd;*/
}

.mw_wp_form_inputs {
	padding: 0;
}

.mw_wp_form_inputs .mw_wp_form_inputs_middle {
	padding: 0;
	max-width:100%;
}

.mw_wp_form_inputs-vertical-item {
	padding: 0;
}

.mw_wp_form_inputs_checkbox {
	padding: 0;
}

.mw_wp_form_scloll {
	max-width: 80%;
	margin: 30px auto 0;
}

.mw_wp_form_input p {
	max-width: 70%;
	text-align: center;
	margin: 15px auto;
}

}

.mw_wp_form_confirm .mw_wp_form_inputs {
    background: #EEE;
    padding: 10px !important;
}
.mw_wp_form_confirm .mw_wp_form_flex .mw_wp_form_inputs span {
    display: none;
}

.mw_wp_form_buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
}


/* 確認・送信・戻るボタン（色は下の変数で後から変更しやすい） */
.mw_wp_form_buttons input[type="submit"] {
    --form-btn-bg: #15799e;
    --form-btn-color: #fff;
    /*margin: 0 auto 0;*/
    padding: 10px;
    width: 200px;
    background-color: var(--form-btn-bg);
    color: var(--form-btn-color);
    border-radius: 20px;
    font-size: var(--font-size-md);
    font-weight: bold;
    border: none;
    cursor: pointer;
}
/* 確認画面へ */
.mw_wp_form_buttons input[name="submitConfirm"] {
    --form-btn-bg: #2b5ca8;
    --form-btn-color: #fff;
}
/* 送信する */
.mw_wp_form_buttons input[type="submit"]:not([name="submitConfirm"]):not([name="submitBack"]) {
    --form-btn-bg: #2b5ca8;
    --form-btn-color: #fff;
}
/* 戻る */
.mw_wp_form_buttons input[name="submitBack"] {
    --form-btn-bg: #6c757d;
    --form-btn-color: #fff;
}

.mw_wp_form_complete {
    text-align: center;
    margin: 30px auto;
    font-size: var(--font-size-md);    
}

/* - デバイス表示切替スタイル
--------------------------------------------- */
@media screen and (min-width: 769px) {

	.device-display-change-sp-to-pc {
		display: none;
	}
}

@media screen and (max-width: 768px) {
    .device-display-change-pc-to-sp {
      display: none;
    }

    .chr-v-wrap {
        margin: 0px;
        margin-top: 0px;
        padding: 0;
        background-size: 100vw;
        background-repeat: no-repeat;
        /*width: var(--primary-width-01);
        height: calc(var(--primary-width-01) * 1.778);*/
        /*background-position: center center;*/ /* デフォルトの背景位置 */
    }

        /*キャラクタービジュアル｜キャラクター等のレイヤー重ね順基準値z-index: 88*/
    .chr-v-wrap-max {
        width: var(--primary-width-01);
        /*height: 100vh;*/
        overflow-y: hidden;
        /*height: calc(100vw * 2.165);*/
        height: max-content;
        /*height: calc(var(--primary-width-01) * 1.778);*/
        /*background-color: #FF0;
        container-type: inline-size;
        container-name: wrapper;*/
        border-bottom: #FFF solid 1px;
    }
    .chr-v-wrap {
        width: 100%;
        height: calc(100vw * 1.2); /* デフォルトの高さ */
        background-size: cover;
        background-position: center center; /* デフォルトの背景位置 */
        border-bottom: #FFF solid 1px;
    }
    
    .chr-v-wrap.aspect-ratio-2-165 {
        height: calc(100vw * 1.2); /* 1:2.165 のアスペクト比 */
        background-position: top center; /* 背景画像の位置を上に設定 */
        border-bottom: #FFF solid 1px;
    }
    
    .chr-v-wrap.aspect-ratio-1-778 {
        height: calc(100vw * 1.2); /* 1:1.778 のアスペクト比 */
        background-position: center center; /* 背景画像の位置を中心に設定 */
        border-bottom: #FFF solid 1px;
    }

  
}

  /*
@container wrapper (max-width: 500px) {
    .chr-v-wrap {
        width: 200px;
        height: calc(var(--primary-width-01) * 1.478);
        background-position: top center;
    }
  }
    */
/*@container chr-v-wrapper (max-aspect-ratio: 1 / 1.2) {*/
/*@container (max-width: 700px) {
    .chr-v-wrap {
        width: 50px;
        height: 100px;
        background-position: center center;
    }
}*/


	
	/* - デバイス表示切替スタイル
--------------------------------------------- */
@media screen and (max-width: 768px) {

	.site-branding h1 img {
		max-width: 160px;
		/* height: 40px; */
	}

	.content-wrap-base {
		padding-left:2%;
		padding-right:2%;
	}


#cast h2:before,
#about h2:before {
	/*
    position: absolute;
    top: -6px;
    left: 0;
    width: 200px;
    height: 6px;
    content: '';
    background: #e6011a;
	*/
}



/*見出し h3*/


/**/
.content-card-type-cast h3, .content-card-type-cast p {
    display: inline-block;
    /* color: #000; */
    font-size: 1.6rem;
}


#services .content-card-type-jirei {
    margin: 0px auto 30px;
    padding: 0 0px 0 0px;
    width: 100%;
    max-width: 1700px;
    align-items: stretch;
    justify-content: space-between;
}

#services .content-card-type-jirei div {
	width: 100%;
    max-width: 740px;
}

#services .content-card-type-jirei div h4 {
	margin: 0 auto 10px;
    padding: 0 0 10px;
    display: block;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.2rem;
}

#services .content-card-type-jirei div p {
	margin: 0 auto 0;
    padding: 0;
    display: block;
    font-size: 1.0rem;
    line-height: 1.8rem;
}

#office .content-card-type-jirei {
    margin: 0px auto 30px;
    padding: 0 0px 0 0px;
    width: 100%;
    max-width: 1700px;
    align-items: stretch;
    justify-content: space-between;
}


#about .content-card-type-jirei {
    margin: 0px auto 30px;
    padding: 0 0px 0 0px;
    width: 100%;
    max-width: 1700px;
    align-items: stretch;
    justify-content: space-between;
}

#about .content-card-type-jirei div {
	width: 100%;
    max-width: 740px;
}

#about .content-card-type-jirei div h4 {
	margin: 0 auto 10px;
    padding: 0 0 10px;
    display: block;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.2rem;
}

#about .content-card-type-jirei div p {
	margin: 0 auto 0;
    padding: 0;
    display: block;
    font-size: 1.0rem;
    line-height: 1.8rem;
}


.link-button a {
    display: block;
	margin: 10px auto 0 ;
    padding: 50px;
}

/**/
#about .wp-block-table {
    padding: 0 0px;
}

/* テーブル｜会社概要 */
#services .wp-block-table {
	padding: 0 0px;
}

#services table th {
    display: block;
}

#services table td {
    display: block;
}



.mw_wp_form_inputs {
	padding: 0 0;
	margin: 0;
}

.mw_wp_form_inputs input[type=text],
.mw_wp_form_inputs input[type=email],
.mw_wp_form_inputs input[type=url],
.mw_wp_form_inputs textarea {
	padding: 0 0;
}

/**/
.main-navigation-footer-lp > div {
	flex-direction: column;
}

.main-navigation-footer-lp p {
	text-align: center;
}

.main-navigation-footer-lp ul {
	flex-wrap: wrap;
}

.main-navigation-footer-lp ul li {
	padding-bottom: 0;
}

/* SP: 先頭左・末尾右・4番目左に線を付与（要素間の線はPC同様そのまま） */
.main-navigation-footer-lp ul li:first-child::before,
.main-navigation-footer-lp ul li:nth-child(4)::before {
	content: '';
	position: absolute;
	left: 0;
	top: 7px;
	bottom: 7px;
	width: 1px;
	background-color: #FFFFFF;
}
.main-navigation-footer-lp ul li:last-child::after {
	content: '';
	position: absolute;
	right: 0;
	top: 7px;
	bottom: 7px;
	width: 1px;
	background-color: #FFFFFF;
}


	}




/* sub-page
--------------------------------------------- */
/*ビジュアル｜キャラクター等のレイヤー重ねる場合基準値z-index: 88*/
/*サブページ-ビジュアル-大*/
.chr-v-wrap-sub-big {
    margin: 0px auto;
	margin-top: 0px;
    padding: 0;
    background-size: 100%;
    background-position: top;
	background-repeat: no-repeat;
    width:  var(--primary-width-02);
    /*height: calc(var(--primary-width-01) * 0.385);*/
    position: relative;
    z-index: 88;
}

.chr-v-wrap-sub-big figure {
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

.chr-v-wrap-sub-big figure img {
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

.chr-v-wrap-sub-big::after {
/*	content: "";
	display: block;
	background: #2A93D5;
	height: 10px;
	position: absolute;
    bottom: 0;
    width: 100%;*/
}

.chr-v-wrap-sub-small {
    margin: 0px auto;
	margin-top: 0px;
    padding: 0;
    background-size: 100%;
    background-position: top;
	background-repeat: no-repeat;
    width:  var(--primary-width-02);
    /*height: calc(var(--primary-width-01) * 0.192);*/
    position: relative;
    z-index: 88;
}

.chr-v-wrap-sub-small figure {
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

.chr-v-wrap-sub-small figure img {
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

.chr-v-wrap-sub-small::after {
/*	content: "";
	display: block;
	background: #2A93D5;
	height: 10px;
	position: absolute;
    bottom: 0;
    width: 100%;*/
}

@media screen and (max-width: 768px) {
	.chr-v-wrap-sub-small::after {
		height: 4px;
	}
}


/*事業内容*/
.services-content > div > div {
	padding: 10px 20px;
}

.services-content p {
	line-height: 1.8rem;
}

.services-content p.bg-color-accent {
	border-radius: 4px;
	padding: 10px;
	margin: 1rem 0 1rem 0;
}

.services-content h3 {
    margin: 0 auto 50px;
    padding: 10px 10px 10px 10px;
    width: 100%;
    font-size: 1.4rem;
    line-height: 1.4rem;
    font-weight: bold;
    text-align: left;
    color: #000;
    position: relative;
    /*border-bottom: 6px solid #3AD9D5;*/
	border-bottom: 2px solid #1b4a74;

}

.services-content h4 {
	margin-bottom: 0;
	font-size: 1.1rem;
}

.services-content p strong {
	display: inline-block;
	line-height: 1.0rem;
}

/* テーブル｜会社概要 */
.services-content .wp-block-table {
	padding: 0 40px;
}

.services-content table {
    border-collapse: collapse;
    margin: 0 auto 30px;
    width: 100%;
    max-width: 1700px;
}

.services-content table th {
    border-collapse: collapse;
    padding: 10px 10px;
	min-width: 80px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: bold;
    font-size: 1.0rem;
    text-align: left;
    color: #FFF;
	border: none;
    border: 1px solid #DCDCDC;
    background-color: #2A93D5;
}

.services-content table td {
    border-collapse: collapse;
    padding: 10px 10px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: normal;
    font-size: 1.0rem;
    color: #000;
	border: none;
    border: 1px solid #DCDCDC;
    background-color: #FFF;
}

.flow-list {
/*	display: flex;
	flex-wrap: wrap;*/
}

.flow-list {
	padding-left: 0;
	position: relative;
}
.flow-list::before {
content: "";
width: 3px;
height: 100%;
background: #2A93D5;
display: block;
position: absolute;
top: 0;
left: 200px;
z-index: -1;
}
.flow-list > li {
position: relative;
list-style: none;
}
.flow-list > li:not(:last-child) {
margin-bottom: 8vh;
}
.flow-list > li .icon {
font-size: 12px;
color: #fff;
background: rgb(107,144,219);
background: -moz-linear-gradient(left, rgba(107,144,219,1) 0%, rgba(102,213,233,1) 100%);
background: -webkit-linear-gradient(left, rgba(107,144,219,1) 0%,rgba(102,213,233,1) 100%);
background: linear-gradient(to right, rgba(107,144,219,1) 0%,rgba(102,213,233,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6b90db', endColorstr='#66d5e9',GradientType=1 );
padding: 8px 20px;
display: block;
position: absolute;
top: 0;
left: -120px;
z-index: 100;
}
.flow-list > li .icon::after {
content: "";
border-style: solid;
border-width: 5px 0 5px 10px;
border-color: transparent transparent transparent #66d5e9;
position: absolute;
top: 50%;
left: 100%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
.flow-list > li dl {
padding: 0;
display: flex;
/*position: relative;*/
}
.flow-list > li dt {
	margin: 0 0 0 0 ;
	padding: 0;
	min-width: 200px;
}
.flow-list > li dd {
	display: flex;
	align-items: center;
	margin: 0 0 0 0 ;
	padding: 0;
}
	
.flow-list > li dd::before,
.flow-list > li dd::after {
content: "";
display: block;
/*position: absolute;*/
/*top: 15px;*/
}
.flow-list > li dd::before {
width: 33px;
height: 33px;
min-width: 33px;
min-height: 33px;
background: #2A93D5;
border-radius: 50%;
margin-right: 10px;
margin-left: -15px;
/*left: -4px;*/
}
.flow-list > li dd::after {
/*width: 50px;
border-bottom: 1px dashed #999;
position: absolute;
left: 5px;*/
}
.flow-list > li dl dt {
font-weight: 600;
color:#2A93D5;
display: flex;
align-items: center;
}

.flow-list-finding {
	padding: 10px;
	display: flex;
	align-items: center;
	border-radius: 4px;
	background: #125488;
	font-weight: 600;
	color: #FFF;
	text-align: center;
}


.flow-list-type-02 {
	margin: 0;
	padding-left: 0;
	max-width: 70%;
	position: relative;
}
.flow-list-type-02::after {
	content: "";
	width: 3px;
	height: 100%;
	background: #2A93D5;
	display: block;
	position: absolute;
	top: 0;
	left: 15%;
	right: 85%;
/*	z-index: -1;*/
}
.flow-list-type-02 > li {
	margin-bottom: 30px;
	padding: 10px;
	position: relative;
	border-radius: 8px;
	background-color: #2A93D5;
	color: #FFF;
	line-height: 1.8rem;
	list-style: none;
	z-index: 1;
}
.flow-list-type-02 > li.finding {
	background-color: #125488;
}

@media screen and (max-width: 768px) {
	.services-content h2 {
		margin: 0 auto 20px;
		padding: 10px 10px 10px 10px;
		width: 100%;
		font-size: 1.5rem;
		line-height: 1.7rem;
		text-align: center;
		position: relative;
		/*border-bottom: 6px solid #3AD9D5;*/
		border-bottom: 2px solid #1b4a74;

	}
	.services-content h3 {
		font-size: 1.1rem;
		line-height: 1.4rem;
	}

	.services-content .sp_padding_0 {
		padding-left: 0;
		padding-right: 0;
	}
	.flow-list {
		margin: 0 auto;
	}
	.flow-list * {
		font-size: 0.9rem;
	}
	.flow-list::before {
		left: 150px;
	}
	.flow-list > li dt {
		margin: 0 0 0 0 ;
		padding: 0;
		min-width: 150px;
	}
	.flow-list > li dd::before {
		width: 24px;
		height: 24px;
		min-width: 24px;
		min-height: 24px;
		border-radius: 50%;
		margin-right: 10px;
		margin-left: -11px;
		/*left: -4px;*/
	}

	.flow-list-type-02 {
		max-width: 100%;
	}
	.flow-list-type-02 > li {
		margin-bottom: 30px;
		padding: 10px;
		position: relative;
		border-radius: 8px;
		background-color: #2A93D5;
		color: #FFF;
		line-height: 1.8rem;
		list-style: none;
		z-index: 1;
	}

	.services-content .wp-block-table {
		padding: 0 0;
	}
	.services-content .wp-block-table * {
		font-size: 0.9rem;
	}
	.services-content table th {
		padding: 5px 5px;
		min-width: 80px;
	}
	.services-content table td {
		padding: 5px 5px;
	}
}



/* 記事レイアウト｜左右｜画像＋本文 */
#post-archive-wrap {

}
#post-archive-wrap h2 {
    position: relative;
    /*font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "IBM Plex Sans JP", sans-serif;*/
    margin: 0 auto 30px;
    width: 100%;
    /*height: calc(var(--font-size-xl)*1.5) ;*/
    /*font-size: var(--font-size-xl);*/
    font-size: var(--font-size-xl);
    line-height: 1.75;
    text-align: left;
    color: #032642;
    border-bottom: 2px solid #F5F4F9;
}
#post-archive-wrap h2::after {
    content: '';
	position: absolute;
    top: 0;
    left: 0;
    width: 25%;
    height: 100% ;
    content: '';
    display: inline-block;
}

.flex-archive {
    margin: 0 auto 50px;
    padding: 10px 10px 20px 10px;
    width: 100%;
	border-bottom: 2px solid #DDDDDD;

}

.flex-archive .wp-block-column {
/*	flex-basis: auto;*/
/*	flex-basis: fit-content!important;*/
}

.flex-archive .flex-archive-left {
	/*flex-basis: fit-content!important;*/
}
	
.flex-archive .flex-archive-left {
	width: auto;
}
	
.flex-archive .flex-archive-right {
	flex-grow: 3!important;
}

.flex-archive .flex-archive-left figure {
	width: 100%;
	max-width: 350px;
	border: 1px solid #CCC;
}

.flex-archive .flex-archive-left img {
	width: 100%;
	vertical-align: bottom;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.flex-archive .flex-archive-right h3 {
	font-size: 1.5rem;
}


.flex-archive .flex-archive-right .link-button {
    display: flex;
    justify-content: flex-end;
    /*max-width: 150px;*/
}
.flex-archive .flex-archive-right .link-button a {
    display: inline-block;
    margin: 10px 0 0;
    padding: 10px 30px;
    border: 1px solid #3693F1;
    border-radius: 8px;
    background: #FFFFFF;
    font-size: var(--font-size-md);
    font-weight: 400;
    color: #3693F1;
    transition: 0.5s;
}

.flex-archive .flex-archive-right .link-button a::after {
    font-family: "Font Awesome 5 Free";
    content: "\f0da";
    font-weight: bold;
    padding-left: 10px;
    transition: transform .3s ease-in-out;
    display: inline-block;
}
.flex-archive .flex-archive-right .link-button a {
    display: inline-block;
    margin: 20px 0 0;
    padding: 10px 30px;
    border: 1px solid #3693F1;
    border-radius: 8px;
    background: #FFFFFF;
    font-size: var(--font-size-md);
    font-weight: 400;
    color: #3693F1;
    transition: 0.5s;
}

/* 親要素（.link-more）がhoverされたときに矢印を動かす */
.flex-archive .flex-archive-right .link-button a:hover::after {
    transform: translateX(8px);
}
.flex-archive .flex-archive-right .link-button a:hover {
    display: inline-block;
    margin: 20px 0 0;
    padding: 10px 30px;
    border: 1px solid #3693F1;
    border-radius: 8px;
    font-size: var(--font-size-md);
    font-weight: 400;
}



	


.post-navigation {
    margin: 0 auto 0px!important;
    padding: 50px 0px 50px;
	width: 90%;
    max-width: 1700px;
}


.post-navigation .nav-previous {
    padding-right: 10px!important;
}
.post-navigation .nav-next {
    padding-left: 10px!important;
}

.post-navigation .nav-previous a,
.post-navigation .nav-next a {
    color: #1DADE2;
}
.post-navigation .nav-previous a:hover,
.post-navigation .nav-next a:hover {
    color: #1DADE2;
}
.post-navigation .nav-previous a:visited,
.post-navigation .nav-next a:visited {
    color: #1DADE2;
}


.img-pm {
	margin: 0 auto;
	padding: 0;
	text-align: center;
}



/*sub pages
--------------------------------------------- */
/* 会社概要 */
#p-company .content-card-type-lr .column-left {
    padding: 1rem 2rem 0 2rem;
    width: max-content;
    flex: 0 0 auto;    
}
#p-company .content-card-type-lr .column-right {
    flex:1 1 auto;
    min-width:0;
}
#p-company .content-card-type-lr .column-right h4 {
    border-bottom: 2px solid #6EC6FF;
}


/* FAQセクション汎用 */
#faq-details h4 {
    margin: 30px 0 10px 0 !important;
    padding: 0 !important;
    color: #333333 !important;
    font-size: var(--font-size-md);
}
/* ▼三角アイコンを消す（Safari/Firefox/Chromium系すべて） */
.wp-block-details summary { list-style: none; }
.wp-block-details summary::marker { content: ""; }
.wp-block-details summary::-webkit-details-marker { display: none; }

/* ▼行の見た目（任意） */
.wp-block-details summary{
  position: relative;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: 1rem 1rem 1rem 2.4rem; /* ←左にアイコン分の余白 */
  cursor: pointer;

  font-size: var(--font-size-md);
  font-weight: 700;
  line-height: 1.4rem;
  color: #337ab7;
  border-bottom: 2px solid #337ab7;
}
.wp-block-details summary p {
    font-size: var(--font-size-base);
}
  
/* ▼Font Awesomeアイコン（閉：＋ / 開：−） */
.wp-block-details summary::before {
  content: "\f067"; /* fa-plus */
  font: normal 900 1rem/1 "Font Awesome 6 Free", "Font Awesome 5 Free"; 
  /* ↑ Free(Solid)を読み込んでいる前提。Proなら "Font Awesome 6 Pro" などに変更 */
  position: absolute;
  left: .75rem;
  top: 50%;
  transform: translateY(-50%);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  font-size: var(--font-size-md);
  line-height: 1;
}

/* 開いたら minus に切替 */
.wp-block-details[open] summary::before{
  content: "\f068"; /* fa-minus */
}

/* ▼アクセシビリティ（キーボードフォーカス見える化） */
.wp-block-details summary:focus-visible{
  outline: 2px solid #6EC6FF;
  outline-offset: 2px;
}
/* ブラウザのスクロールアンカーと競合しないように */
#wp-block-details-js { overflow-anchor: none; }

/* 先頭/末尾の外側マージンで高さがブレないように（推奨） */
#wp-block-details-js .details-body > :first-child { margin-top: 0; }
#wp-block-details-js .details-body > :last-child  { margin-bottom: 0; }



/* 会社概要 */
#p-company #page-hero {
    padding: 100px 0 50px 0;
}
/* セクション右40%に台形のグラデーショングレー（左縁は斜め、中はソフトなグラデ） */
#p-company #page-hero.bg-pattern-diagonal-rect {
    background-color: #ffffff;
    background-image: linear-gradient(
      301deg,
      #f2f4f7 0%,
      #f5f7fa 32%,
      #f8fafb 55%,
      #ffffff 55%,
      #ffffff 100%
    );
}
#p-company #page-hero .wp-block-columns {
    flex-direction: column;
}

#p-company #page-hero h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.5);
    line-height: calc(var(--font-size-xxxl) * 1.5 * 1.0);
    margin-bottom: 0!important;
    text-align: left;
}
#p-company #page-hero p {
    color: #414141;
}
#p-company #page-hero .section-subtitle::before {
    background: #414141;
}

#p-company #page-hero h2:has(+ .section-subtitle) {
    width: fit-content;
    margin-inline: 0;
}
#p-company #page-hero .section-subtitle {
    width: var(--heading-width, 20ch);
    margin-inline: 0;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 0.75em;
    margin-top: 0;
}
#p-company #page-hero .section-subtitle::before {
    content: '';
    flex: 1 1 0;
    min-width: 0;
    height: 1px;
}

/* パンくず：横並び・左寄せ、区切り「 - 」、リンクはホバーで下線伸び */
#p-company #page-hero .breadcrumbs {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
#p-company #page-hero .breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
}
#p-company #page-hero .breadcrumb-item {
    display: flex;
    align-items: center;
}
#p-company #page-hero .breadcrumb-item:not(:last-child)::after {
    content: ' - ';
    margin: 0 0.25em;
    color: #414141;
    font-weight: 400;
}
#p-company #page-hero .breadcrumb-item a {
    position: relative;
    color: #414141;
    text-decoration: none;
    transition: color 0.25s ease;
}
#p-company #page-hero .breadcrumb-item a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}
#p-company #page-hero .breadcrumb-item a:hover,
#p-company #page-hero .breadcrumb-item a:focus-visible {
    color: #2b5ca8;
}
#p-company #page-hero .breadcrumb-item a:hover::after,
#p-company #page-hero .breadcrumb-item a:focus-visible::after {
    transform: scaleX(1);
}

/* #Strengths（HISTORY×STRENGTHS）：#Service のスタイルを流用（背景は bg-gradient-primary のまま） */
#Strengths.content-max-size-full > div{
    width: 90%;
    max-width: 1400px;
}

#Strengths h2 {
    font-weight: 600;
    color: #FFFFFF;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
}
#Strengths p {
    color: #FFFFFF;
    /*background: #FFFFFF;*/
}
#Strengths .section-subtitle::before {
    background: #FFFFFF;
}
/* 3カラムの高さを一番高いものに揃える */
#Strengths .content-card-type-02 .wp-block-columns {
    display: flex;
    align-items: stretch;
}
#Strengths .content-card-type-02 .wp-block-column {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0;
    background: transparent;
    border-radius: 12px;
    border: none;
}
#Strengths .content-card-type-02 .wp-block-column:hover {}
#Strengths .content-card-type-02 .wp-block-column .wp-block-group {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0;
    padding: 30px 0;
}
#Strengths .content-card-type-02 .wp-block-column .wp-block-group__inner-container {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    padding: 0;
}
#Strengths .content-card-type-02 .wp-block-column .wp-block-group__inner-container > *:not(figure):not(.wp-block-image) {
    flex: 0 1 auto;
}
/* 画像は上に固定（DOM順のまま）。余白は p が下で吸収 */
#Strengths .content-card-type-02 .wp-block-column figure,
#Strengths .content-card-type-02 .wp-block-column .wp-block-image {
    flex: 0 0 auto;
    margin-bottom: 0;
    margin-left: auto;
    margin-right: auto;
}
#Strengths .content-card-type-02 .wp-block-column img {
    width: 80%;
    height: auto;
    object-fit: cover;
    object-position: center;
    display: block;
    margin: 0 auto;
}
#Strengths .content-card-type-02 .wp-block-column h3 {
    margin-top: 20px;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: none;
    line-height: var(--font-size-xxxl);
    text-align: center;
}
#Strengths .content-card-type-02 .wp-block-column h3 em {
    display: inline-block;
    font-size: var(--font-size-xxxl);
    font-family: 'Montserrat', sans-serif;
    padding: 0 0 0 0;
    border-right: 1px solid #CCCCCC;
}
#Strengths .content-card-type-02 .wp-block-column h3 strong {
    display: inline-block;
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: #FFFFFF;
    padding: 0 0 0 0;
}
#Strengths .content-card-type-02 .wp-block-column p {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 0 20px;
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
    color: #FFFFFF;
    text-align: center;
}

/* PCのみ：2番目カラムの左右に白線（SPでは非表示） */
@media screen and (min-width: 769px) {
    #Strengths .content-card-type-02 .wp-block-column:nth-child(2) {
        position: relative;
    }
    #Strengths .content-card-type-02 .wp-block-column:nth-child(2)::before,
    #Strengths .content-card-type-02 .wp-block-column:nth-child(2)::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 1px;
        background: #fff;
        pointer-events: none;
    }
    #Strengths .content-card-type-02 .wp-block-column:nth-child(2)::before {
        left: 0;
    }
    #Strengths .content-card-type-02 .wp-block-column:nth-child(2)::after {
        right: 0;
    }
}

@media screen and (max-width: 768px) {
    #Strengths h2 {
        font-size: var(--font-size-lg);
        line-height: calc(var(--font-size-lg) * 1.2);
        white-space: normal;
    }
    #Strengths .content-card-type-02 .wp-block-column h3 strong {
        display: inline-block;
        font-size: var(--font-size-md);
        font-weight: 700;
        color: #FFFFFF;
        padding: 0 0 0 0;
    }
    #Strengths .content-card-type-02 .wp-block-column h3 {
    }
    #Strengths .content-card-type-02 .wp-block-column p {
        font-size: var(--font-size-base);
    }
    #Strengths .content-card-type-02 .wp-block-column ul {
        margin-bottom: 5px;
    }
    #Strengths .content-card-type-02 .wp-block-column li {
        font-size: var(--font-size-md);
    }
    #Strengths .content-card-type-02 .wp-block-column .vk_icon {
        margin-bottom: 0;
    }
}


#p-company #Message {
    padding: 100px 0 50px 0;
}
/* 台形のグラデーショングレー（左縁は縦、右縁は斜めで下辺が短い。下に行くほど濃い） */
#p-company #Message.bg-pattern-diagonal-rect {
    position: relative;
    background-color: #ffffff;
}

#p-company #Message.bg-pattern-diagonal-rect::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    clip-path: polygon(0 0, 45% 0, 25% 100%, 0 100%);
    background-image:
      linear-gradient(to right, transparent 0%, rgba(255, 255, 255, 0.7) 100%),
      linear-gradient(to bottom, #FFFFFF 0%, #F9F9F9 50%, #EFEFEF 100%);
    pointer-events: none;
}

#p-company #Message.bg-pattern-diagonal-rect > * {
    position: relative;
    z-index: 1;
}
#p-company #Message .wp-block-columns {
    /*flex-direction: column;*/
}

#p-company #Message h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
    text-align: left;
}

@media screen and (max-width: 768px) {
    #p-company #Message h2 {
        font-size: var(--font-size-xxl);
        line-height: calc(var(--font-size-xxl) * 1.2);
        white-space: normal;
    }
}
#p-company #Message p {
    color: #414141;
}
#p-company #Message h3 + p {
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
}
#p-company #Message h3 {
    color: #414141;
}
#p-company #Message .section-subtitle::before {
    background: #414141;
}

#p-company #Message h2:has(+ .section-subtitle) {
    width: fit-content;
    margin-inline: 0;
}
#p-company #Message .section-subtitle {
    width: var(--heading-width, 20ch);
    margin-inline: 0;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 0.75em;
    font-size: var(--font-size-sm);
    margin-top: 0;
}
#p-company #Message .section-subtitle::before {
    content: '';
    flex: 1 1 0;
    min-width: 0;
    height: 1px;
}

/* ========================================
   #Story：沿革タイムライン（3カラム・縦線＋ドット）
   ======================================== */

/* 三枚重ね背景：奥→手前［半透明#2b5ca8 / ロゴマーク右下・透明度50% / ノイズ繰り返し］。ロゴのみ opacity が必要なため ::before、ノイズは ::after で重ねる */
#Story.triple-stacked-bg {
    position: relative;
    background-image: linear-gradient(rgba(43, 92, 168, 0.15), rgba(43, 92, 168, 0.15));
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto;
}

#Story.triple-stacked-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: var(--bg-logo, url(img/logo-mark.png));
    background-repeat: no-repeat;
    background-position: right 20px bottom 20px;
    background-size: auto;
    transform: scale(0.8);
    transform-origin: right bottom;
    opacity: 0.5;
    pointer-events: none;
}

@media screen and (max-width: 768px) {
    #Story.triple-stacked-bg::before {
        background-size: contain;
        transform: scale(0.5);
    }
}

#Story.triple-stacked-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image: var(--bg-noise, url(img/bg-noise.png));
    background-repeat: repeat;
    background-position: left top;
    pointer-events: none;
}

#Story.triple-stacked-bg > * {
    position: relative;
    z-index: 2;
}

#Story {
    --story-accent: #0480c8;
    --story-line: #55aada;
    --story-time-col: 100px;
    --story-marker-col: 52px;
    --story-dot: 20px;
    --story-ring: 6px;
    --story-gap: 18px;
    --story-marker-top: 10px;
}

#Story h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
}
#Story p {
    color: #414141;
}
#Story .section-subtitle::before {
    background: #414141;
}

#Story .timeline-item {
    display: grid !important;
    grid-template-columns: var(--story-time-col) var(--story-marker-col) 1fr;
    column-gap: var(--story-gap);
    align-items: stretch;
    max-width: 800px;
    margin-bottom: 0;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
}

#Story .timeline-item:first-child {
    margin-top: 24px;
}

/* 3列とも行の高さいっぱいに伸ばす（WPのデフォルトを上書き） */
#Story .timeline-item > .timeline-time,
#Story .timeline-item > .timeline-marker,
#Story .timeline-item > .timeline-content {
    align-self: stretch;
    min-height: 0;
}

#Story .timeline-time {
    display: flex;
    align-items: center;
}

#Story .timeline-time p {
    margin: 0;
    color: #2b5ca8;
    font-size: var(--font-size-xxl);
    text-align: right;
    font-weight: 700;
    white-space: nowrap;
    line-height: 1.2;
}

#Story .timeline-marker {
    position: relative;
    min-height: 100%;
}

/* 縦線：マーカー列いっぱい（背面） */
#Story .timeline-marker::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: 2px;
    height: 100%;
    transform: translateX(-50%);
    background: var(--story-line);
    border-radius: 999px;
    z-index: 0;
}

/* 最後のドットの上まで線を描画（先に指定し、先頭ルールで上書きできるようにする） */
#Story .timeline-item:last-child .timeline-marker::after {
    top: 0;
    height: 50%;
}

/* 先頭のドットから下まで線を描画（:first-of-type で親の先頭子でなくても最初の項目に適用） */
#Story .timeline-item:first-of-type .timeline-marker::after {
    top: 50%;
    height: 50%;
}

/* 1件だけのときは縦線を非表示 */
#Story .timeline-item:first-of-type:last-child .timeline-marker::after {
    height: 0;
    overflow: hidden;
}

/* ドット：マーカー列の縦横中央（線より手前） */
#Story .timeline-marker::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--story-dot);
    height: var(--story-dot);
    transform: translate(-50%, -50%);
    border-radius: 999px;
    background: var(--story-accent);
    box-shadow: 0 0 0 var(--story-ring) rgba(43, 92, 168, 0.15);
    z-index: 1;
}

#Story .timeline-content {
    display: flex;
    align-items: center;
    margin-top: 30px;
    margin-bottom: 30px;
    padding-top: 0;
}

#Story .timeline-content p {
    margin: 0;
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
    color: #414141;
}

@media screen and (max-width: 768px) {
    #Story {
        --story-marker-col: 44px;
        --story-gap: 12px;
        --story-dot: 16px;
        --story-ring: 5px;
    }

    #Story .timeline-item {
        grid-template-columns: min-content var(--story-marker-col) 1fr;
        align-items: flex-start;
    }

    #Story h2 {
        font-size: var(--font-size-xxl);
        line-height: calc(var(--font-size-xxl) * 1.2);
        white-space: normal;
    }

    #Story .timeline-time {
        align-items: flex-start;
        margin-right: 0px;
        font-size: var(--font-size-lg);
    }

    #Story .timeline-time p {
        white-space: ;
        font-size: var(--font-size-base);
        line-height: var(--font-size-base) * 1.0;
    }

    #Story .timeline-content {
        margin-top: 0;
        margin-bottom: 40px;
    }

    /* SP：ドットをマーカー列内で上寄せ */
    #Story .timeline-marker::before {
        top: 0;
        transform: translate(-50%, 0);
    }

    /* SP：先頭項目の縦線は上から100％で描画（first-of-type の特別指定を解除） */
    #Story .timeline-item:first-of-type .timeline-marker::after {
        top: 0;
        height: 100%;
    }

    /* SP：最後の項目は縦線を非表示 */
    #Story .timeline-item:last-child .timeline-marker::after {
        height: 0;
        overflow: hidden;
    }
}

/* ========================================
   #Award：受賞歴タイムライン（2カラム・縦線・ドットなし）
   ======================================== */
/* セクション右40%に台形のグラデーショングレー（左縁は斜め、中はソフトなグラデ） */
/* 台形のグラデーショングレー（右寄せ・右辺は垂直・上辺が短い・下辺が長い） */
#p-company #Award.bg-pattern-diagonal-rect {
    position: relative;
    background-color: #ffffff;
}

#p-company #Award.bg-pattern-diagonal-rect::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    clip-path: polygon(85% 0, 100% 0, 100% 100%, 65% 100%);
    background-image:
      linear-gradient(to right, transparent 0%, rgba(255, 255, 255, 0.7) 100%),
      linear-gradient(to bottom, #FFFFFF 0%, #F9F9F9 50%, #EFEFEF 100%);
    pointer-events: none;
}

#p-company #Award.bg-pattern-diagonal-rect > * {
    position: relative;
    z-index: 1;
}

#Award {
    --award-time-col: 100px;
    --award-gap: 18px;
}

#Award h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
}
#Award .section-subtitle {
    color: #414141;
    margin-bottom: 50px!important;
}

#Award .section-subtitle::before {
    background: #414141;
}

#Award .timeline-item {
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: var(--award-gap);
    align-items: flex-start;
    max-width: 800px;
    margin-bottom: 20px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 0 10px 0;
    border-bottom: 1px solid #CCCCCC;
}

#Award .timeline-item:first-child {
    margin-top: 24px;
}

#Award .timeline-item > .timeline-time {
    flex: 0 0 var(--award-time-col);
}

#Award .timeline-item > .timeline-content {
    flex: 1;
    min-width: 0;
}

#Award .timeline-item > .timeline-content a {
    color: #2b5ca8;
}

#Award .timeline-time {
    display: flex;
    align-items: flex-start;
}

#Award .timeline-time p {
    margin: 0;
    color: #2b5ca8;
    font-size: var(--font-size-base);
    text-align: left;
    font-weight: 700;
    white-space: nowrap;
    line-height: 1.8;
}

#Award .timeline-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 0px;
    margin-bottom: 0px;
    padding-top: 0;
}

#Award .timeline-content p {
    margin: 0;
    color: #414141;
    line-height: 1.8;
    font-size: var(--font-size-base);
    text-align: left;
}
#Award .timeline-content p em {
    color: #2b5ca8;
}
#Award .timeline-content p strong {
    color: #2b5ca8;
    font-weight: normal;
    background-image: linear-gradient(transparent 60%, rgba(255, 235, 0, 0.35) 60%);
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

@media screen and (max-width: 768px) {
    #Award {
        --award-time-col: 80px;
        --award-gap: 12px;
    }

    #Award h2 {
        font-size: var(--font-size-xxl);
        line-height: calc(var(--font-size-xxl) * 1.2);
        white-space: normal;
    }

    #Award .timeline-time p {
        font-size: var(--font-size-base);
        white-space: normal;
    }

    #Award .timeline-content {
        margin-bottom: 40px;
    }
}

/* ========================================
   #Profile：会社概要
   ======================================== */
#Profile {
    --profile-time-col: 100px;
    --profile-gap: 18px;
}

#Profile h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
}
#Profile .section-subtitle {
    color: #414141;
    margin-bottom: 50px!important;
}

#Profile .section-subtitle::before {
    background: #414141;
}

#Profile .timeline-item {
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: var(--profile-gap);
    align-items: flex-start;
    max-width: 800px;
    margin-bottom: 20px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 0 10px 0;
    border-bottom: 1px solid #CCCCCC;
}

#Profile .timeline-item:first-child {
    margin-top: 24px;
}

#Profile .timeline-item > .timeline-time {
    flex: 0 0 var(--profile-time-col);
}

#Profile .timeline-item > .timeline-content {
    flex: 1;
    min-width: 0;
}

#Profile .timeline-time {
    display: flex;
    align-items: flex-start;
}

#Profile .timeline-time p {
    margin: 0;
    color: #2b5ca8;
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
    text-align: left;
    font-weight: 700;
    white-space: nowrap;
}

#Profile .timeline-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 0;
    margin-bottom: 0px;
    padding-top: 0;
}

#Profile .timeline-content p {
    margin: 0;
    color: #414141;
    font-size: var(--font-size-base);
    line-height: calc(var(--font-size-base) * 2.0);
    text-align: left;
}

#Profile .timeline-content p a strong {
    font-weight: normal;
    background-image: linear-gradient(transparent 60%, rgba(255, 235, 0, 0.35) 60%);
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

@media screen and (max-width: 768px) {
    #Profile {
        --profile-time-col: 80px;
        --profile-gap: 12px;
    }

    #Profile h2 {
        font-size: var(--font-size-xxl);
        line-height: calc(var(--font-size-xxl) * 1.2);
        white-space: normal;
    }

    #Profile .timeline-time p {
        font-size: var(--font-size-base);
        white-space: normal;
    }

    #Profile .timeline-content {
        margin-bottom: 40px;
    }
}

/* ========================================
   #Access：アクセス
   ======================================== */
#Access h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.1);
    line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    margin-bottom: 0!important;
    text-align: left;
}

#Access h2:has(+ .section-subtitle) {
    width: fit-content;
    margin-inline: 0;
}

#Access p:not(.section-subtitle) {
    margin-top: 0;
    margin-bottom: 10px;
    padding-left: 12px;
    border-left: 1px solid #CCCCCC;
    color: #414141;
}

#Access .section-subtitle {
    width: var(--heading-width, 20ch);
    margin-inline: 0;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 0.75em;
    margin-top: 0;
}

#Access .section-subtitle::before {
    content: '';
    flex: 1 1 0;
    min-width: 0;
    height: 1px;
    background: #414141;
}

#Access iframe {
    width: 100%;
    max-width: 1080px;
    height: 100%;
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    border: 0;
}

@media screen and (max-width: 768px) {
    #Access h2 {
        font-size: var(--font-size-xxl);
        line-height: calc(var(--font-size-xxl) * 1.2);
        white-space: normal;
    }
}



/* お問合せ */
#p-contact #page-hero {
    padding: 100px 0 50px 0;
}
/* セクション右40%に台形のグラデーショングレー（左縁は斜め、中はソフトなグラデ） */
#p-contact #page-hero.bg-pattern-diagonal-rect {
    background-color: #ffffff;
    background-image: linear-gradient(
      301deg,
      #f2f4f7 0%,
      #f5f7fa 32%,
      #f8fafb 55%,
      #ffffff 55%,
      #ffffff 100%
    );
}
#p-contact #page-hero .wp-block-columns {
    flex-direction: column;
}

#p-contact #page-hero h2 {
    font-weight: 600;
    color: #2b5ca8;
    font-size: calc(var(--font-size-xxxl) * 1.5);
    line-height: calc(var(--font-size-xxxl) * 1.5 * 1.0);
    margin-bottom: 0!important;
    text-align: left;
}
#p-contact #page-hero p {
    color: #414141;
}
#p-contact #page-hero .section-subtitle::before {
    background: #414141;
}

#p-contact #page-hero h2:has(+ .section-subtitle) {
    width: fit-content;
    margin-inline: 0;
}
#p-contact #page-hero .section-subtitle {
    width: var(--heading-width, 20ch);
    margin-inline: 0;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 0.75em;
    margin-top: 0;
}
#p-contact #page-hero .section-subtitle::before {
    content: '';
    flex: 1 1 0;
    min-width: 0;
    height: 1px;
}

/* パンくず：横並び・左寄せ、区切り「 - 」、リンクはホバーで下線伸び */
#p-contact #page-hero .breadcrumbs {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
#p-contact #page-hero .breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
}
#p-contact #page-hero .breadcrumb-item {
    display: flex;
    align-items: center;
}
#p-contact #page-hero .breadcrumb-item:not(:last-child)::after {
    content: ' - ';
    margin: 0 0.25em;
    color: #414141;
    font-weight: 400;
}
#p-contact #page-hero .breadcrumb-item a {
    position: relative;
    color: #414141;
    text-decoration: none;
    transition: color 0.25s ease;
}
#p-contact #page-hero .breadcrumb-item a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}
#p-contact #page-hero .breadcrumb-item a:hover,
#p-contact #page-hero .breadcrumb-item a:focus-visible {
    color: #2b5ca8;
}
#p-contact #page-hero .breadcrumb-item a:hover::after,
#p-contact #page-hero .breadcrumb-item a:focus-visible::after {
    transform: scaleX(1);
}





#p-company .wp-block-table {
    margin-bottom: 70px;
	padding: 20px 20px 0;
}
#p-company table {
    border-collapse: collapse;
    margin: 0 auto 0;
    width: 100%;
    max-width: 1700px;
}
#p-company table th {
    width: 15%;
    border-collapse: collapse;
    padding: 15px 10px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: normal;
    font-size: 1.0rem;
    text-align: left;
    color: #000;
	border: none;
    border-bottom: 1px solid #DCDCDC;
    background:
    linear-gradient(#6EC6FF, #6EC6FF)
      right 8px / 4px calc(100% - 16px - 1px) no-repeat,
    #FFF;
}

#p-company table td {
    border-collapse: collapse;
    padding: 15px 15px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: normal;
    font-size: 1.0rem;
    color: #000;
	border: none;
    border-bottom: 1px solid #DCDCDC;
    background-color: #FFF;
}

@media screen and (max-width: 768px) {
    #p-company table th {
        width: 30%;
        font-size: var(--font-size-base);
    }
    #p-company table td {
        font-size: var(--font-size-base);
    }
    #p-company .wp-block-table:last-child {
        margin-bottom: 0;
    }
}



#about-more {
    padding-top: 110px;
    background-repeat: no-repeat;
    background-position: right 0 bottom 30px;
    background-size: 12%;
}
#about-more .about-more-read {
    margin-bottom: 0;
    padding: 0 50px 0;
}
#about-more .link-buttons {
    padding: 0 50px 0;
}
#about-more .link-buttons > div {
    display: flex;
    gap: 1rem;
    flex-basis: auto;
    flex-grow: unset;
}
#about-more .link-more {
    text-align: left;
    width: max-content !important;
}
@media screen and (max-width: 768px) {
    #about-more {
        padding-top:70px;
    }
    #about-more .about-more-read {
        margin-bottom: 0;
        padding: 0 1% 0;
    }
    #about-more .about-more-read p {
        font-size: var(--font-size-base);
    }
    #about-more .link-buttons > div {
        flex-direction: column;
    }
    #about-more .link-more {
        margin-top: 5px!important;
    }
    #about-more .link-more a {
        width: 200px!important;
    }
}

/*私たちの取り組み*/
#p-sustainability .content-card-type-lr .column-left {
    padding: 0 2rem 0 2rem;
    width: max-content;
    flex: 0 0 auto;    
}
#p-sustainability .content-card-type-lr .column-left figure {
    border-radius: 8px;
    max-width: 460px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
}
#p-sustainability .content-card-type-lr .column-left figure img {
    border-radius: 8px;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#p-sustainability .content-card-type-lr .column-right {
    flex:1 1 auto;
    min-width:0;
}
#p-sustainability .content-card-type-lr .column-right h3 {
}
#p-sustainability .content-card-type-lr .column-right p {
    margin-bottom: 20px;
    padding: 0 10px;
    padding-bottom: 20px;
    background: linear-gradient(#6EC6FF, #6EC6FF)
    left 10px bottom / 40% 2px no-repeat;
}
#p-sustainability .content-card-type-lr .column-right p:last-child {
    margin-bottom: 0px;
    padding-bottom: 0px;
    background: none;
}
.section-title-h3 {
    position: relative;
    margin: 0 auto 30px;
    width: 100%;
    display: flex;
    align-items: center;
    text-align: left;
    font-weight: 700;
    font-size: var(--font-size-lg);
    line-height: calc(var(--font-size-lg) * 1.0);
    color: #323232;
}
.section-title-h3::before {
    content: '';
    display: inline-block;
    margin-right: 0.4rem;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    background-image: url(img/n-01.png);
    width: calc(var(--font-size-lg) * 3.0);
    height: calc(var(--font-size-lg) * 3.0);
}
.h3-n-01::before {
    background-image: url(img/n-01.png);
}
.h3-n-02::before {
    background-image: url(img/n-02.png);
}
.h3-n-03::before {
    background-image: url(img/n-03.png);
}
.h3-n-04::before {
    background-image: url(img/n-04.png);
}

/* サポート事例 */
#p-support-cases .section-title-h3 {
    position: relative;
    margin: 0 auto 30px;
    width: 100%;
    display: flex;
    align-items: center;
    text-align: left;
    font-weight: 700;
    font-size: var(--font-size-lg);
    line-height: calc(var(--font-size-lg) * 1.0);
    color: #1DADE2;
}
#p-support-cases .section-title-h3::before {
    content: '';
    display: none;
}
@media screen and (max-width: 768px) {
    #p-support-cases .section-title-h3 {
        font-size: var(--font-size-lg);
        line-height: calc(var(--font-size-lg) * 1.4);
    }
}


/* アコーディオンの中身用（JSで生成されるラッパー） */
.wp-block-details-js-simple .details-body {
    overflow: hidden;
    /* ← height はここで固定しない（autoに戻れなくなる） */
    transition: height var(--acc-duration, 300ms) var(--acc-easing, ease);
    background: #F7FFEE;
}
.wp-block-details-js-simple .details-body p {
    padding: 20px 20px;
}

  /* お好み：summaryの見た目やカーソル */
  .wp-block-details-js-simple summary {
    cursor: pointer;
    list-style: none;
  }
  .wp-block-details-js-simple summary::-webkit-details-marker { display: none; }
  
  /* --- アイコン・余白（そのまま） --- */
  .wp-block-details-js-simple details.wp-block-details summary{
    position: relative;
    padding-left: 2rem;
    cursor: pointer;
    list-style: none;
  }
  .wp-block-details-js-simple details.wp-block-details summary::-webkit-details-marker{ display:none; }
  
  .wp-block-details-js-simple details.wp-block-details summary::before{
    content: "\f067"; /* fa-plus */
    font: normal 900 1rem/1 "Font Awesome 6 Free","Font Awesome 5 Free";
    position: absolute;
    left: .75rem;
    top: 50%;
    transform: translateY(-50%);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: var(--font-size-md, 1rem);
    line-height: 1;
    transition: transform 200ms ease;
  }
  .wp-block-details-js-simple details.wp-block-details[open] summary::before{
    content: "\f068"; /* fa-minus */
    transform: translateY(-50%) rotate(0deg);
  }
  
  
/* サービス概要 */
#p-services .section-title-h3 {
    position: relative;
    margin: 0 auto 30px;
    padding-bottom: 10px;
    width: 100%;
    display: flex;
    align-items: center;
    text-align: left;
    font-weight: 700;
    font-size: var(--font-size-lg);
    line-height: calc(var(--font-size-lg) * 1.0);
    color: #337ab7;
    border-bottom: 2px solid #337ab7;
}
#p-services .section-title-h3::before {
    content: '';
    display: none;
}
#p-services .content-card-type-lr .column-left {
    align-items: flex-start !important;
}
#p-services .content-card-type-lr .column-left {
    padding: 0 0 0 0;
    width: max-content;
    flex: 0 0 auto;
}
/* 追従メニュー */
#p-services .content-card-type-lr .column-left {
    position: sticky;
    top: var(--stick-top, 110px);
    max-height: calc(100dvh - var(--stick-top, 110px) - 16px);
    overflow: auto;
    overscroll-behavior: contain;
    z-index: 2;
}
#p-services .content-card-type-lr .column-left > div {
    padding: 20px 20px;
    background: #F5F5F5;
    border-radius: 8px;
}
#p-services .content-card-type-lr .column-left h4 {
    margin: 0;
    padding: 0 10px;
    font-size: var(--font-size-base);
}
#p-services .content-card-type-lr .column-left h4:first-child {
    margin-bottom: 10px;
    padding: 0 10px;
    color: #999999;
}
#p-services .content-card-type-lr .column-left li {
    padding: 0px 0px;
    font-size: var(--font-size-sm);
}
#p-services .content-card-type-lr .column-left li a {
    color: #009cd5;
}
#p-services .content-card-type-lr .column-left li a:hover {
    color: #1DADE2;
    text-decoration: underline;
}
#p-services .content-card-type-lr .column-left li a:visited {
    color: #1DADE2;
}
#p-services .content-card-type-lr .column-right {
    flex:1 1 auto;
    min-width:0;
}
#p-services .content-card-type-lr .column-right > div {
    margin-left: 40px;
    margin-bottom: 40px;
    background: #F5F5F5;
    padding: 20px;
    border-radius: 8px;
}
#p-services .content-card-type-lr .column-right > div:last-child {
    margin-bottom: 0px;
}
#p-services .content-card-type-lr .column-right h3 {
    margin-left: 40px;
}
#p-services .content-card-type-lr .column-right h4 {
    margin-left: 0px;
    padding: 0 10px;
    color: #1DADE2;
}
#p-services .content-card-type-lr .column-right p {
    margin-bottom: 20px;
    padding: 0 10px;
    padding-bottom: 20px;
    background: linear-gradient(#6EC6FF, #6EC6FF)
    left 10px bottom / 40% 2px no-repeat;
}
#p-services .content-card-type-lr .column-right p:last-child {
    margin-bottom: 0px;
    padding-bottom: 0px;
    background: none;
}
#p-services .content-card-type-lr .column-right figure {
    margin-bottom: 20px;
}

@media screen and (max-width: 768px) {
    #p-services .content-card-type-lr .column-left {
        display: none!important;
        top: var(--stick-top, 70px);
    }
    #p-services .content-card-type-lr .column-right h3 {
        margin: 0 auto 20px;
    }
    #p-services .content-card-type-lr .column-right h4 {
        margin: 0 auto 10px;
        padding: 0;
    }
    #p-services .content-card-type-lr .column-right > div {
        margin-left: 0;
    }
    #p-services .content-card-type-lr .column-right > div > div {
        margin-bottom: 0;
    }
    #p-services .content-card-type-lr .column-right > div > div > div {
        margin-bottom: 0;
    }
}

/* 採用情報 */
#p-recruit .content-card-type-lr .column-left {
    padding: 1rem 2rem 0 2rem;
    /* width: max-content; */
    width: 280px;
    flex: 0 0 auto;
}
#p-recruit .content-card-type-lr .column-right {
    flex:1 1 auto;
    min-width:0;
}
#p-recruit .content-card-type-lr .column-right h4 {
    border-bottom: 2px solid #6EC6FF;
}

#p-recruit .wp-block-table {
    margin-bottom: 70px;
	padding: 20px 20px 0;
}
#p-recruit table {
    border-collapse: collapse;
    margin: 0 auto 0;
    width: 100%;
    max-width: 1700px;
}
#p-recruit table th {
    width: 20%;
    border-collapse: collapse;
    padding: 15px 10px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: normal;
    font-size: 1.0rem;
    text-align: left;
    color: #000;
	border: none;
    border-bottom: 1px solid #DCDCDC;
    background:
    linear-gradient(#6EC6FF, #6EC6FF)
      right 8px / 4px calc(100% - 16px - 1px) no-repeat,
    #FFF;
}

#p-recruit table td {
    border-collapse: collapse;
    padding: 15px 15px;
	line-height: 1.8rem;
	vertical-align: top;
    font-weight: normal;
    font-size: 1.0rem;
    color: #000;
	border: none;
    border-bottom: 1px solid #DCDCDC;
    background-color: #FFF;
}

#recruit-more {
    padding-top: 0px;
}
#recruit-more > div {
    margin-top: 0px;
    padding-top: 0px;
}
#recruit-more .link-buttons {
    padding: 0 50px 0;
}
#recruit-more .link-buttons > div {
    display: flex;
    justify-content: center;
}
#recruit-more .link-more {
    text-align: left;
    width: max-content !important;
}

#recruit-more .link-more a {
    font-size: var(--font-size-md);
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    #p-recruit table th {
        width: 35%;
        font-size: var(--font-size-base);
    }
    #p-recruit table td {
        font-size: var(--font-size-base);
    }
    #p-recruit .wp-block-table:last-child {
        margin-bottom: 0;
    }
}
/* お問い合わせ */
#p-contact .section-title-h3 {
    position: relative;
    margin: 0 auto 30px;
    width: 100%;
    display: flex;
    align-items: center;
    text-align: left;
    font-weight: 700;
    font-size: var(--font-size-lg);
    line-height: calc(var(--font-size-lg) * 1.6);
    color: #1DADE2;
    border-bottom: 2px solid #1DADE2;
}
#p-contact .section-title-h3::before {
    content: '';
    display: none;
}
#p-contact .content-card-type-lr{
    position: relative;
    border: 1px solid #6EC6FF;
    border-radius: 8px;
    margin-bottom: 3rem; /* 三角の分のスペース */
}

/* 最後のボックスには三角を出さない */
#p-contact .content-card-type-lr:not(:last-of-type)::after{
    content: "\f0d7";
    font: normal 900 1rem/1 "Font Awesome 6 Free", "Font Awesome 5 Free";
    font-size: 3rem;
    color: #1DADE2;

    position: absolute;
    left: 15%;
    bottom: -3rem;/* 枠の外へ少し出す */
    transform: translateX(-50%);
    display: block;
    line-height: 1;
    pointer-events: none;
}
  

#p-contact .content-card-type-lr:last-child {
    border: 1px solid #00582D;
}
#p-contact .content-card-type-lr .column-left {
    padding: 1rem 2rem 1rem 2rem;
    width: 35%;
    flex: 0 0 auto;
    border-radius: 8px 0 0 8px;
}
#p-contact .content-card-type-lr .column-left p {
    color: #FFFFFF;
    font-weight: 700;
}
#p-contact .content-card-type-lr .column-right {
    flex:1 1 auto;
    min-width:0;
    border-radius: 0px;
    display: flex;
    align-items: center;
}
#p-contact .content-card-type-lr .info-01 {
    background: #1DADE2;
}
#p-contact .content-card-type-lr .info-02 {
    background: #1DADE2;
}
#p-contact .content-card-type-lr .info-03 {
    background: #00582D;
}
@media screen and (max-width: 768px) {
    #p-contact .content-card-type-lr {
        gap: 0.4rem;
    }
    #p-contact .content-card-type-lr .column-left {
        padding: 1rem 2rem 1rem 2rem;
        border-radius: 8px 8px 0 0;
    }
    #p-contact .content-card-type-lr .column-left p {
	text-align: center;
    }
    #p-contact .content-card-type-lr:not(:last-of-type)::after{
        left: 50%;
    }
    #p-contact .h3-n-02 {
        margin: 0 auto 10px;
    }
}


/* ==============================
   スライダー機能（Swiper）
   ============================== */

/* スライダー基本設定 */
.swiper {
    margin-top: -70px;
    margin-bottom: 70px;   /* ネガティブマージン分を戻し、下のセクションと重ならないようにする */
    width: 100%;
    overflow: hidden;
}

/* PC用スライダー（横長） */
@media screen and (min-width: 769px) {
    .swiper {
        /*aspect-ratio: 21/8; /* PC用：1/0.38 ≈ 2.63 */
        aspect-ratio: 1/0.492; /* PC用：1/0.38 ≈ 2.63 */
    }
}

/* SP用スライダー（縦長） */
@media screen and (max-width: 768px) {
    .swiper {
        aspect-ratio: 1/0.949; /* SP用：1/1.788 ≈ 0.56 */
    }
}

.swiper .swiper-slide {
    position: relative;
}

.swiper .swiper-slide picture,
.swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* スライド内コンテンツ */
.slide-inner {
    position: relative;
    width: 100%;
    height: 100%;
}


/* 台形の白背景を ::before で敷く */
.slide-meta{
    --trap-bg: 255 255 255;   /* 色(R G B) */
    --trap-alpha: 0;        /* 透明度 0〜1 */
    position:absolute; inset:0 auto 0 0; width:min(720px,56vw);
    padding: 90px 0 2rem 0; z-index:2; color:#111;
    box-sizing: border-box;   /* padding を高さに含め、はみ出さないようにする */
    display: flex;
    flex-direction: column;
    justify-content: flex-end;  /* .slide-title 含むブロックを下寄せ（position なし） */
}
.slide-meta::before{
    content:""; position:absolute; inset:0 -8% 0 0;
    background: rgb(var(--trap-bg) / var(--trap-alpha)); /* ←ここで透明度制御 */
    clip-path: polygon(0 0, 100% 0, 76% 100%, 0 100%);
    z-index:-1; pointer-events:none;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

/* 既存PC用はそのまま。SPだけ形・サイズを上書き */
@media (max-width: 767.98px){
        .slide-meta{
          --trap-alpha: 0;
          --sp-box-h: 52vh;      /* ← 台形の高さ（お好みで） */
          --sp-diag-y: 72%;      /* ← 台形内での右端の折れ位置(%) */
      
          position: absolute;
          top: 0; left: 0; right: 0;   /* bottomは付けない → 全高で張り付かない */
          width: 100%;
          padding: 56px 16px 20px;
        }
      
        .slide-meta::before{
          position: absolute;
          top: 0; left: 0; right: 0;
          height: var(--sp-box-h);     /* ← ここで高さを制限 */
          background: rgb(var(--trap-bg) / var(--trap-alpha));
      
          /* 台形（%は “::before の高さ” に対する割合） */
          clip-path: polygon(0 0, 100% 0, 100% var(--sp-diag-y), 0 100%);
      
          z-index: -1; pointer-events: none;
          box-shadow: 0 8px 24px rgba(0,0,0,.08);
        }
}

  
/* ユーティリティ（クラスで手早く切替） */
.slide-meta.alpha-40{ --trap-alpha:.40; }
.slide-meta.alpha-60{ --trap-alpha:.60; }
.slide-meta.alpha-95{ --trap-alpha:.95; }

/* 色も変えたい時（例：薄い青） */
.slide-meta.bg-sky{ --trap-bg: 255 255 255; } /* 白のまま */
.slide-meta.bg-warm{ --trap-bg: 255 250 245; } /* ほんのり暖色 */


/* ========== 基本アニメーション（.slide-content / .slide-actions の表示） ==========
 * 全スライド共通：テキスト塊が「左から右へ」スライド＋フェードで現れる。
 * 表示開始は JS で .is-enter を付与（slideChangeTransitionEnd 後）→ 切替後も初回と同じ体感に。
 * 元の仕様：右から少しずらした位置から中央へ（translateX(正) → 0）。
 * 現仕様：左からずらした位置から中央へ（translateX(負) → 0）で左→右の入りに変更。
 * 好みは .slide-meta の変数で調整可。
 * ================================================================================ */

.slide-meta{
    --enter-delay: .80s;                               /* 開始遅延（切り替え後に落ち着いてから入り開始） */
    --enter-dur:   .90s;                               /* ふわっと長め */
    --enter-ease:  cubic-bezier(.16,1,.3,1);           /* やわらかいカーブ */
    --enter-shift: 24px;                               /* 入り方向のずれ量（正＝左から、負にすると右から） */
    --exit-shift:  24px;                               /* 出のとき右へずらす量 */
    --exit-dur:    .22s;                               /* 出は素早く */
    --enter-blur:  6px;                                /* ぼかしから解く量（未使用時はコメントアウト） */
    --bg-dur:      .50s;                               /* 背景のフェード時間 */
  }

/* テキスト塊：左からずらした位置＋透明 → 中央で不透明（基本アニメーション） */
.slide-meta .slide-content,
.slide-meta .slide-actions{
  opacity: 0;
  transform: translateX(calc(-1 * var(--enter-shift)));  /* 左から右へ */
  /* filter: blur(var(--enter-blur)); */
  transition:
    opacity  var(--enter-dur) var(--enter-ease) var(--enter-delay),
    transform var(--enter-dur) var(--enter-ease) var(--enter-delay),
    filter   var(--enter-dur) var(--enter-ease) var(--enter-delay);
  will-change: opacity, transform, filter;
}

/* 表示開始は JS で .is-enter を付与（slideChangeTransitionEnd 後）→ 切替完了後に表示で「早すぎる」を解消 */
.swiper-slide.is-enter .slide-meta::before{
  opacity: 1;
}
.swiper-slide.is-enter .slide-meta .slide-content,
.swiper-slide.is-enter .slide-meta .slide-actions{
  opacity: 1;
  transform: none;
  filter: blur(0);
}

/* 出：直前のスライド（.swiper-slide-prev）だけ右にシフトしつつ素早くフェード */
@keyframes slide-exit-to-right {
  0%   { transform: translateX(0); opacity: 1; }
  100% { transform: translateX(var(--exit-shift)); opacity: 0; }
}
.swiper-slide-prev .slide-meta .slide-content,
.swiper-slide-prev .slide-meta .slide-actions,
.swiper-slide-duplicate-prev .slide-meta .slide-content,
.swiper-slide-duplicate-prev .slide-meta .slide-actions{
  animation: slide-exit-to-right var(--exit-dur) ease-out forwards;
}

/* .is-enter がなく prev でもないスライド：transform は即リセット */
.swiper-slide:not(.is-enter):not(.swiper-slide-prev):not(.swiper-slide-duplicate-prev) .slide-meta .slide-content,
.swiper-slide:not(.is-enter):not(.swiper-slide-prev):not(.swiper-slide-duplicate-prev) .slide-meta .slide-actions{
  transition: opacity 0.15s ease-out, transform 0s, filter 0s;
}

/* actions を少し遅らせる（段差） */
.swiper-slide.is-enter .slide-meta .slide-actions{
  transition-delay: calc(var(--enter-delay) + .08s);
}

/* 動きを弱めたい人向けの配慮 */
@media (prefers-reduced-motion: reduce){
  .slide-meta::before,
  .slide-meta .slide-content,
  .slide-meta .slide-actions{
    transition: none; transform: none; filter: none; opacity: 1;
  }
  .swiper-slide-prev .slide-meta .slide-content,
  .swiper-slide-prev .slide-meta .slide-actions,
  .swiper-slide-duplicate-prev .slide-meta .slide-content,
  .swiper-slide-duplicate-prev .slide-meta .slide-actions{
    animation: none;
  }
}


.slide-title {
    font-size: calc(var(--font-size-xxxl) * 2.1);
    font-weight: 600;
    margin: 0 0 1.2rem 40px;
    line-height: calc(var(--font-size-xxxl) * 2.2);
    color: #FFFFFF;
}

.slide-desc {
    font-size: var(--font-size-md);
    margin: 0 0 1.2rem 10px;
    line-height: calc(var(--font-size-md) * 1.7);
}
@media (max-width: 767.98px){
    .slide-title {
        margin: 3rem 0 1.0rem 0;
        line-height: calc(var(--font-size-xxl) * 1.0);
    }
    .slide-desc {
        margin: 0 0 1.0rem 10px;
        line-height: calc(var(--font-size-md) * 1.4);
    }
}

/* ボタンスタイル */
.slide-button {
    margin-top: 0;
    padding: 5px;
    background: #FFFFFF;
    border: 2px solid #1DADE2;
    border-radius: 8px;
    font-size: var(--font-size-base);
    font-weight: 700;
    text-align: center;
    color: #1DADE2;
    z-index: 10;
    transition: all 0.4s ease;
}
.slide-button:hover {
    background: #1DADE2;
    border: 2px solid #1DADE2;
    border-radius: 8px;
    font-size: var(--font-size-base);
    font-weight: 700;
    text-align: center;
    color: #FFFFFF;
}

/* ボタン内の矢印アイコン */
.slide-button i {
    margin-left: 8px;
    transition: transform 0.3s ease;
}

.slide-button:hover i {
    transform: translateX(4px);
}

.slide-button a {
    display: inline-block;
    padding: 12px 24px;
    background: #1DADE2;
    color: #fff;
    text-decoration: none;
    border-radius: 6px;
    font-weight: 700;
    font-size: var(--font-size-base);
    transition: all 0.3s ease;
    border: 2px solid #1DADE2;
}

.slide-button a:hover {
    background: transparent;
    color: #1DADE2;
    border-color: #1DADE2;
}

/* ロゴスタイル */
.slide-logo {
    position: relative;
    margin-top: 20px;
    max-width: 120px;
    height: auto;
    padding: 0 130px; /* ボタンと同じパディング */
}

.slide-logo img {
    width: 100%;
    min-width: 180px;
    height: auto;
    display: block;
}

/* ナビゲーションボタン */
.swiper-button-prev,
.swiper-button-next {
    color: #323232!important;
    /* background: rgba(255, 255, 255, 0.9); */
    background: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    margin-top: -25px;
    transition: all 0.3s ease;
    display: none!important;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
    background: none!important;
    color: #fff;
}

.swiper-button-prev:after,
.swiper-button-next:after {
    font-size: 20px!important;
    font-weight: 700;
}
@media screen and (max-width: 767.98px) {
    .swiper-button-next, .swiper-button-prev {
        top: 62%!important;
    }
}


/* ページネーション */
.swiper-pagination {
    bottom: 20px;
    display: none!important;
}

.swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
}

.swiper-pagination-bullet-active {
    background: #1DADE2;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
    .slide-meta {
        padding: 1.5rem 1rem 1rem;
    }
    
    .slide-title {
        font-size: calc(var(--font-size-xxxl) * 1.1);
        line-height: calc(var(--font-size-xxxl) * 1.1 * 1.0);
    }
    
    .slide-desc {
        font-size: var(--font-size-base);
    }

    .slide-button {
        padding: 10px 20px;
        font-size: calc(var(--font-size-base) * 0.8);
    }
    
    .slide-button a {
        padding: 10px 20px;
        font-size: var(--font-size-sm);
    }
    
    .slide-logo {
        bottom: 15px;
        right: 15px;
        max-width: 80px;
    }
    
    .swiper-button-prev,
    .swiper-button-next {
        width: 40px;
        height: 40px;
        margin-top: -20px;
    }
    
    .swiper-button-prev:after,
    .swiper-button-next:after {
        font-size: 16px;
    }
}

/* ローディングアニメーション */
.swiper-lazy-preloader {
    border-color: #1DADE2;
}

/* アクセシビリティ */
.swiper-button-prev:focus,
.swiper-button-next:focus {
    outline: none;
    outline-offset: 0;
}

/* スライドリンク */
.slide-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* ==============================
   スライドレイアウト制御
   ============================== */

/* スライドコンテンツエリア */
.slide-content {
    padding: 0 115px;
}

.slide-actions {
    padding: 0 130px;
}

@media (max-width: 767.98px){
    /* スライドコンテンツエリア */
    .slide-content {
        padding: 0 10px;
    }
    .slide-actions {
        padding: 0 10px;
    }
    
    /* SP用ロゴ右寄せ */
    .slide-logo {
        text-align: right;
        padding: 5px 10px;
        width: 100%;
        max-width: 100%;
    }
    .slide-logo img {
        min-width: 120px;
        max-width: 120px;
        display: inline-block!important;
    }
}
/* 1枚目: ヒーロービジュアル専用レイアウト */
.hero-slide .slide-meta {
    /* ヒーロー用のレイアウト（現在は基本スタイルと同じ） */
}

.hero-slide .slide-logo {
    /* ヒーロー用のロゴ配置（表示） */
    display: block;
}

/* 2枚目以降: コンテンツ案内ビジュアル */
.content-slide .slide-meta {
    /* コンテンツ案内用のレイアウト（現在は基本スタイルと同じ） */
}

.content-slide .slide-logo {
    /* コンテンツ案内用のロゴ配置（非表示） */
    display: none;
}

.slide-link:hover {
    text-decoration: none;
}

/* メインビジュアル動画スタイル */
.mv-video-wrap {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	max-width: 100%;
	box-sizing: border-box;
}

.mv-video {
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: cover;
	display: block;
	box-sizing: border-box;
}

.mv-video-pc {
	display: block;
}

.mv-video-sp {
	display: none;
}

@media (max-width: 768px) {
	.mv-video-pc {
		display: none;
	}
	
	.mv-video-sp {
		display: block;
	}
	
	.mv-video-wrap {
		max-width: 100vw;
	}
	
	.mv-video {
		max-width: 100%;
		max-height: 100%;
	}
}