/*!
Theme Name: multivac-jp
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: multivac-jp
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.

multivac-jp is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}

p {
	margin-bottom: 1.5em;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: #fff;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
:where(a, a:visited, a:hover, a:focus, a:active) {
	color: inherit;
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: 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;
}

.main-navigation a {
	display: block;
	text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/*--------------------------------------------------------------
# Site
--------------------------------------------------------------*/
body {
	/* 幅100vwの帯(CTA等)がスクロールバーの分だけはみ出し、横スクロールが出るのを防ぐ。 */
	overflow-x: clip;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	color: #0e1e46;
}

.container {
	width: 100%;
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
#page {
	padding-top: 92px;
}

.site-header {
	position: fixed;
	top: 24px;
	left: 24px;
	right: 24px;
	z-index: 1000;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding: 12px 24px;
	background-color: #fff;
	border-radius: 4px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.site-header .site-branding {
	display: flex;
	align-items: center;
}

.site-header .site-title {
	margin: 0;
	line-height: 0;
}

.site-branding__logo {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.site-branding__logo-img {
	display: block;
	width: 168px;
	height: auto;
}

@media screen and (max-width: 1280px) {

	.site-branding__logo-img {
		width: 144px;
	}
}

@media screen and (max-width: 540px) {

	.site-branding__logo-img {
		width: 132px;
	}
}

.site-header__right {
	display: flex;
	align-items: center;
	gap: 16px;
}

#site-navigation.main-navigation {
	width: auto;
}

#site-navigation.main-navigation ul#primary-menu {
	align-items: center;
	gap: 6px;
}

#site-navigation.main-navigation ul#primary-menu a {
	padding: 10px 14px;
	font-size: 13.2px;
	font-weight: 600;
	line-height: 1.4;
	color: #0e1e46;
	white-space: nowrap;
}

#site-navigation.main-navigation ul#primary-menu > li > a:hover {
	color: #3eafff;
}

#site-navigation.main-navigation ul ul {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	min-width: 200px;
	padding: 8px 0;
	margin-top: 4px;
	background-color: #fff;
	border-radius: 4px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}

#site-navigation.main-navigation ul ul a {
	width: auto;
	padding: 10px 16px;
	font-size: 13px;
	font-weight: 500;
	color: #333333;
	white-space: nowrap;
}

#site-navigation.main-navigation ul ul a:hover {
	background-color: #f4f5fb;
}

.menu-item-5 a {
	color: #333333;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 6px;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 46px;
	padding: 14px 24px;
	border-radius: 4px;
	background-color: #0e1e46;
	color: #fff;
	font-size: 13.2px;
	font-weight: 600;
	line-height: 1.4;
	white-space: nowrap;
	text-decoration: none;
}

.btn:hover,
.btn:focus {
	background-color: #1891e6;
	color: #fff;
}

.btn--white {
	width: 300px;
	height: 52px;
	font-size: 14px;
	background-color: #fff;
	color: #0e1e46;
}

.btn--outline {
	border: 1px solid #0e1e46;
	background-color: transparent;
	color: #0e1e46;
}

.btn--outline:hover,
.btn--outline:focus {
	background-color: #0e1e46;
	color: #fff;
}

.btn__icon {
	flex-shrink: 0;
}

.btn--block {
	width: 100%;
	height: 56px;
}

/* Hamburger toggle (hidden on desktop) */
.menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	padding: 0;
	background-color: #0e1e46;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}

.menu-toggle .icon-close {
	display: none;
}

.site-header.is-menu-open .menu-toggle .icon-bars {
	display: none;
}

.site-header.is-menu-open .menu-toggle .icon-close {
	display: block;
}

/* Mobile menu panel (hidden on desktop) */
.mobile-menu-panel {
	display: none;
}

html.menu-open-lock,
html.menu-open-lock body {
	overflow: hidden;
}

/*--------------------------------------------------------------
# Breakpoints
--------------------------------------------------------------*/
@media screen and (max-width: 1024px) {

	#site-navigation.main-navigation,
	.header-actions {
		display: none;
	}

	.menu-toggle {
		display: inline-flex;
	}

	#page {
		padding-top: 82px;
	}

	.hero {
		margin-top: -82px;
	}

	.site-header {
		top: 20px;
		left: 12px;
		right: 12px;
	}

	.site-header.is-menu-open {
		display: flex;
		flex-direction: column;
		height: calc(100vh - 40px);
	}

	.site-header__inner {
		padding: 8px 18px;
		background-color: #fafbff;
	}

	.site-header.is-menu-open .site-header__inner {
		flex-shrink: 0;
		margin-bottom: 14px;
	}

	.mobile-menu-panel {
		display: none;
		padding: 43px 18px;
		background-color: #fff;
		border-radius: 4px;
	}

	.site-header.is-menu-open .mobile-menu-panel {
		display: flex;
		flex-direction: column;
		gap: 20px;
		height: 82%;
		overflow-y: auto;
	}

	.mobile-menu-panel__actions {
		display: flex;
		flex-direction: column;
		gap: 8px;
	}

	.mobile-menu-panel__nav > ul {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 18px 10px;
		list-style: none;
		margin: 0;
		padding: 24px 10px;
		background-color: #f4f5fb;
		border-radius: 4px;
	}

	.mobile-menu-panel__nav > ul > li.menu-item-has-children {
		grid-column: 1 / -1;
	}

	.mobile-menu-panel__nav a {
		display: block;
		font-size: 13px;
		font-weight: 500;
		color: #333333;
		text-decoration: none;
	}

	.mobile-menu-panel__nav .sub-menu {
		list-style: none;
		margin: 10px 0 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: 10px;
	}

	.mobile-menu-panel__nav .sub-menu a {
		display: flex;
		align-items: center;
		gap: 6px;
		font-size: 12px;
		font-weight: 500;
		color: #666a7a;
	}

	.mobile-menu-panel__nav .sub-menu a::before {
		content: "\203A";
		font-size: 13px;
		color: #8891a8;
	}

	.mobile-menu-panel__legal ul {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		list-style: none;
		margin: 0;
		padding: 24px 10px;
	}

	.mobile-menu-panel__legal a {
		display: block;
		font-size: 14px;
		font-weight: 500;
		color: #333333;
		text-decoration: none;
	}
}

/*--------------------------------------------------------------
# Hero
--------------------------------------------------------------*/
.hero {
	position: relative;
	overflow: hidden;
	height: 88.8vh;
	margin-top: -92px;
}

@media screen and (min-width: 1025px) {

	.hero {
		height: 100vh;
	}
}

.hero__media {
	position: absolute;
	inset: 0;
	z-index: 1;
	line-height: 0;
}

.hero__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	z-index: 1;
	transform: scale(1);
	transition: opacity 1s ease, transform 1s ease;
}

.hero__slide.is-active {
	opacity: 1;
	z-index: 2;
	transform: scale(1.08);
	transition: opacity 1s ease, transform 3.6s ease-out;
}

.hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	background: linear-gradient(to top, rgb(14 30 70 / 62%) 0%, rgb(14 30 70 / 30%) 32%, rgb(14 30 70 / 0%) 62%);
	pointer-events: none;
}

.hero__content {
	position: absolute;
	left: 40px;
	bottom: 40px;
	z-index: 2;
	padding: 6px 10px;
}

.hero__title {
	margin: 0;
	font-size: 40px;
	font-weight: 900;
	line-height: 1.4;
	color: #fff;
}

.hero__lead {
	margin: 12px 0 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.04em;
	color: #fff;
}

.hero__lead span {
	display: inline-block;
}

@media screen and (max-width: 540px) {

	.hero__content {
		left: 10px;
		right: 51px;
		bottom: 30px;
	}

	.hero__title {
		font-size: 36px;
	}

	.hero__lead {
		margin-top: 8px;
		font-size: 15px;
	}
}

/*--------------------------------------------------------------
# Exhibitions
--------------------------------------------------------------*/
.exhibitions {
	background-color: #fff;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding: 100px 0 100px 100px;
}

.exhibitions__header {
	padding-right: 100px;
}

.exhibitions__eyebrow {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #2b2b2b;
}

.exhibitions__heading {
	margin: 0 0 60px;
	font-size: 40px;
	font-weight: 700;
	color: #1991e6;
}

.exhibitions__carousel {
	position: relative;
}

.exhibitions__list {
	display: flex;
	gap: 40px;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.exhibitions__list::-webkit-scrollbar {
	display: none;
}

.exhibition-card {
	flex: 0 0 300px;
	width: 300px;
}

.exhibition-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.exhibition-card__thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 200px;
	padding: 12px;
	border: 1px solid #d7deee;
	border-radius: 20px;
	background-color: #fff;
}

.exhibition-card__thumb img {
	display: block;
	max-width: 100%;
	height: 100%;
	object-fit: contain;
}

.exhibition-card__body {
	margin-top: 20px;
}

.exhibition-card__title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.exhibition-card__subtitle {
	margin: 4px 0 0;
	font-size: 12px;
	color: #6b7280;
}

.exhibition-card__meta {
	margin: 8px 0 0;
	font-size: 14px;
	color: #333333;
}

.exhibition-card__meta-row {
	display: flex;
	gap: 8px;
}

.exhibition-card__meta-row + .exhibition-card__meta-row {
	margin-top: 4px;
}

.exhibition-card__meta dt {
	flex-shrink: 0;
}

.exhibition-card__meta dd {
	margin: 0;
}

.exhibition-card__note {
	margin: 8px 0 0;
	font-size: 12px;
	color: #6b7280;
}

.exhibitions__nav {
	display: flex;
	gap: 20px;
	margin-top: 20px;
}

.exhibitions__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background-color: #0e1e46;
	color: #fff;
	cursor: pointer;
}

.exhibitions__footer {
	display: flex;
	justify-content: flex-end;
	padding-right: 100px;
	margin-top: 60px;
}

.exhibitions__view-all {
	width: 300px;
	height: 52px;
	font-size: 14px;
	background-color: #0e1e46;
}

@media screen and (max-width: 1024px) {

	.exhibitions {
		padding: 60px 0 60px 24px;
	}

	.exhibitions__header {
		padding-right: 24px;
	}

	.exhibitions__heading {
		margin-bottom: 32px;
		font-size: 32px;
	}

	.exhibitions__list {
		gap: 24px;
	}

	.exhibition-card {
		flex: 0 0 260px;
		width: 260px;
	}

	.exhibition-card__thumb {
		height: 170px;
	}

	.exhibitions__footer {
		padding-right: 24px;
		margin-top: 40px;
	}
}

@media screen and (max-width: 540px) {

	.exhibitions {
		padding: 48px 0 48px 20px;
	}

	.exhibitions__header {
		padding-right: 20px;
	}

	.exhibitions__eyebrow {
		font-size: 14px;
	}

	.exhibitions__heading {
		margin-bottom: 24px;
		font-size: 26px;
	}

	.exhibitions__list {
		gap: 16px;
	}

	.exhibition-card {
		flex: 0 0 220px;
		width: 220px;
	}

	.exhibition-card__thumb {
		height: 140px;
		border-radius: 14px;
	}

	.exhibition-card__body {
		margin-top: 14px;
	}

	.exhibition-card__title {
		font-size: 15px;
	}

	.exhibition-card__subtitle {
		font-size: 11px;
	}

	.exhibition-card__meta,
	.exhibition-card__note {
		font-size: 12px;
	}

	.exhibitions__nav {
		gap: 12px;
		margin-top: 16px;
	}

	.exhibitions__arrow {
		width: 36px;
		height: 36px;
	}

	.exhibitions__footer {
		padding-right: 20px;
		margin-top: 32px;
	}

	.exhibitions__view-all {
		width: 100%;
		height: 48px;
	}
}

/*--------------------------------------------------------------
# Case Studies
--------------------------------------------------------------*/
.case-studies {
	background-color: #f3faff;
}

.case-studies__inner {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding: 100px 0 100px 100px;
}

.case-studies__header {
	padding-right: 100px;
}

.case-studies__eyebrow {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #2b2b2b;
}

.case-studies__heading {
	margin: 0 0 60px;
	font-size: 40px;
	font-weight: 700;
	color: #1991e6;
}

.case-studies__carousel {
	position: relative;
}

.case-studies__list {
	display: flex;
	gap: 40px;
	list-style: none;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.case-studies__list::-webkit-scrollbar {
	display: none;
}

.case-study-card {
	flex: 0 0 300px;
	width: 300px;
}

.case-study-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.case-study-card__thumb img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
	border-radius: 20px;
}

.case-study-card__body {
	margin-top: 20px;
}

.case-study-card__date {
	display: block;
	font-size: 12px;
	color: #6b7280;
}

.case-study-card__title {
	margin: 4px 0 0;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.case-study-card__excerpt {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.6;
	color: #6b7280;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.case-studies__nav {
	display: flex;
	gap: 20px;
	margin-top: 20px;
}

.case-studies__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background-color: #0e1e46;
	color: #fff;
	cursor: pointer;
}

.case-studies__footer {
	display: flex;
	justify-content: flex-end;
	padding-right: 100px;
	margin-top: 60px;
}

.case-studies__view-all {
	width: 300px;
	height: 52px;
	font-size: 14px;
	background-color: #0e1e46;
}

@media screen and (max-width: 1024px) {

	.case-studies__inner {
		padding: 60px 0 60px 24px;
	}

	.case-studies__header {
		padding-right: 24px;
	}

	.case-studies__heading {
		margin-bottom: 32px;
		font-size: 32px;
	}

	.case-studies__list {
		gap: 24px;
	}

	.case-study-card {
		flex: 0 0 260px;
		width: 260px;
	}

	.case-study-card__thumb img {
		height: 170px;
	}

	.case-studies__footer {
		padding-right: 24px;
		margin-top: 40px;
	}
}

@media screen and (max-width: 540px) {

	.case-studies__inner {
		padding: 48px 0 48px 20px;
	}

	.case-studies__header {
		padding-right: 20px;
	}

	.case-studies__eyebrow {
		font-size: 14px;
	}

	.case-studies__heading {
		margin-bottom: 24px;
		font-size: 26px;
	}

	.case-studies__list {
		gap: 16px;
	}

	.case-study-card {
		flex: 0 0 220px;
		width: 220px;
	}

	.case-study-card__thumb img {
		height: 140px;
		border-radius: 14px;
	}

	.case-study-card__body {
		margin-top: 14px;
	}

	.case-study-card__title {
		font-size: 15px;
	}

	.case-study-card__date,
	.case-study-card__excerpt {
		font-size: 11px;
	}

	.case-studies__nav {
		gap: 12px;
		margin-top: 16px;
	}

	.case-studies__arrow {
		width: 36px;
		height: 36px;
	}

	.case-studies__footer {
		padding-right: 20px;
		margin-top: 32px;
	}

	.case-studies__view-all {
		width: 100%;
		height: 48px;
	}
}

/*--------------------------------------------------------------
# News
--------------------------------------------------------------*/
.news {
	background-color: #fff;
}

.news__inner {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding: 100px;
}

.news__header {
	flex-shrink: 0;
}

.news__eyebrow {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #2b2b2b;
}

.news__heading {
	margin: 0 0 60px;
	font-size: 40px;
	font-weight: 700;
	color: #1991e6;
}

.news__list-wrap {
	width: 75%;
}

.news__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.news-item {
	padding-bottom: 20px;
	border-bottom: 1px solid #bfbfbf;
}

.news-item__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.news-item__meta {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 20px;
}

.news-item__category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 100px;
	padding: 6px 12px;
	border-radius: 32px;
	background-color: #1991e6;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

.news-item__date {
	font-size: 12px;
	font-weight: 700;
	color: #2b2b2b;
}

.news-item__title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

/*--------------------------------------------------------------
# ニュース一覧ページ (category-news.php)
--------------------------------------------------------------*/
.news-archive {
	padding: 60px 0 100px;
}

.news-archive__heading {
	margin: 0 0 12px;
	font-size: 32px;
	font-weight: 700;
	color: #0e1e46;
}

.news-archive__list .news-item {
	display: flex;
	align-items: center;
	gap: 24px;
}

.news-archive__list .news-item__meta {
	flex-shrink: 0;
	margin-bottom: 0;
}

.news-archive__list .news-item__link {
	min-width: 0;
}

.news-archive__lead {
	margin: 0 0 40px;
	font-size: 14px;
	color: #555555;
}

.news-archive__filter {
	margin: -16px 0 32px;
	font-size: 14px;
	color: #555555;
}

.news-archive__filter a {
	margin-left: 8px;
	font-weight: 700;
	color: #1991e6;
}

.news-archive__list {
	margin-bottom: 48px;
}

.news-archive__empty {
	color: #555555;
}

/*--------------------------------------------------------------
# 展示会情報一覧ページ (category-exhibition.php)
--------------------------------------------------------------*/
.exhibition-archive {
	padding: 60px 0 100px;
}

.exhibition-archive__year-heading {
	margin: 0 0 24px;
	padding-bottom: 12px;
	border-bottom: 3px solid #1991e6;
	font-size: 20px;
	font-weight: 700;
	color: #0e1e46;
}

.exhibition-archive__list {
	margin: 0 0 48px;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.exhibition-archive__item {
	display: flex;
	gap: 32px;
	padding: 32px;
	border: 1px solid #d7deee;
	border-radius: 16px;
	background-color: #fff;
}

.exhibition-archive__thumb {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 150px;
	padding: 12px;
	border-radius: 12px;
}

.exhibition-archive__thumb img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.exhibition-archive__body {
	min-width: 0;
	flex: 1;
}

.exhibition-archive__title-link {
	text-decoration: none;
}

.exhibition-archive__title {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: #0e1e46;
}

.exhibition-archive__title-link:hover .exhibition-archive__title {
	color: #1991e6;
}

.exhibition-archive__subtitle {
	margin: 4px 0 0;
	font-size: 13px;
	color: #6b7280;
}

.exhibition-archive__meta {
	margin: 12px 0 0;
	font-size: 14px;
	color: #333333;
}

.exhibition-archive__meta-row {
	display: flex;
	gap: 8px;
}

.exhibition-archive__meta-row + .exhibition-archive__meta-row {
	margin-top: 4px;
}

.exhibition-archive__meta dt {
	flex-shrink: 0;
	font-weight: 700;
}

.exhibition-archive__meta dd {
	margin: 0;
}

.exhibition-archive__note {
	margin: 8px 0 0;
	font-size: 12px;
	color: #6b7280;
}

.exhibition-archive__excerpt {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.8;
	color: #333333;
}

.exhibition-archive__official-link {
	display: inline-block;
	margin-top: 16px;
	height: auto;
	padding: 10px 20px;
	border: 1px solid #1991e6;
	background-color: #1991e6;
	font-size: 13px;
	color: #fff;
}

.exhibition-archive__official-link:hover,
.exhibition-archive__official-link:focus {
	border-color: #3eafff;
	background-color: #3eafff;
	color: #fff;
}

@media screen and (max-width: 768px) {
	.exhibition-archive__item {
		flex-direction: column;
		padding: 24px;
	}

	.exhibition-archive__thumb {
		width: 100%;
	}
}

.archive-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.archive-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	border: 1px solid #d7deee;
	border-radius: 8px;
	background-color: #fff;
	font-size: 14px;
	font-weight: 700;
	color: #0e1e46;
	text-decoration: none;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.archive-pagination .page-numbers:hover {
	border-color: #3eafff;
	color: #1991e6;
}

.archive-pagination .page-numbers.current {
	background-color: #0e1e46;
	border-color: #0e1e46;
	color: #fff;
}

.archive-pagination .page-numbers.dots {
	border-color: transparent;
	background-color: transparent;
}

.news__footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 40px;
}

.news__view-all {
	width: 300px;
	height: 52px;
	font-size: 14px;
}

@media screen and (max-width: 1024px) {

	.news__inner {
		flex-direction: column;
		gap: 32px;
		padding: 60px 24px;
	}

	.news__heading {
		margin-bottom: 0;
		font-size: 32px;
	}

	.news__list-wrap {
		width: 100%;
	}
}

@media screen and (max-width: 540px) {

	.news__inner {
		gap: 24px;
		padding: 48px 20px;
	}

	.news__eyebrow {
		font-size: 14px;
	}

	.news__heading {
		font-size: 26px;
	}

	.news__list {
		gap: 16px;
	}

	.news-item__meta {
		gap: 12px;
		margin-bottom: 12px;
	}

	.news-item__category {
		min-width: 80px;
		padding: 4px 10px;
		font-size: 11px;
	}

	.news-item__date {
		font-size: 11px;
	}

	.news-item__title {
		font-size: 15px;
	}

	.news-archive__list .news-item {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.news__footer {
		margin-top: 24px;
	}

	.news__view-all {
		width: 100%;
		height: 48px;
	}
}

/*--------------------------------------------------------------
# Product List
--------------------------------------------------------------*/
.product-list {
	background-color: #fff;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding: 100px;
}

.product-list__eyebrow {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #2b2b2b;
}

.product-list__heading {
	margin: 0 0 60px;
	font-size: 40px;
	font-weight: 700;
	color: #1991e6;
}

.product-list__search {
	display: flex;
	gap: 10px;
	margin-bottom: 10px;
}

.product-search-btn {
	position: relative;
	flex: 1;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	padding: 60px 30px;
	border-radius: 16px 4px 16px 4px;
	color: #fff;
	text-decoration: none;
}

.product-search-btn__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.product-search-btn:hover .product-search-btn__bg {
	transform: scale(1.08);
}

.product-search-btn__overlay {
	position: absolute;
	inset: 0;
	background-color: rgb(30 51 104 / 61%);
}

.product-search-btn__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	width: 100%;
}

.product-search-btn__label {
	font-size: 24px;
	font-weight: 700;
	text-align: center;
	line-height: 1.4;
}

.product-search-btn__icon {
	display: inline-flex;
}

.product-search-btn__icon svg {
	width: 40px;
	height: 40px;
}

.product-categories {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.product-category__toggle {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 24px 20px;
	background-color: #0e1e46;
	border: none;
	border-radius: 16px 4px 16px 4px;
	cursor: pointer;
	color: #fff;
	text-align: left;
}

.product-category__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 44px;
	border-radius: 10px 4px 10px 4px;
	background-color: #fff;
	color: #0e1e46;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.2;
}

.product-category__title {
	margin-left: 20px;
	font-size: 28px;
	font-weight: 700;
	color: #fff;
}

.product-category__icon {
	display: inline-flex;
	margin-left: auto;
	color: #fff;
}

.product-category__toggle[aria-expanded="true"] {
	border-radius: 16px 4px 0 0;
}

.product-category__toggle[aria-expanded="true"] .product-category__icon-vertical {
	display: none;
}

.product-category__panel {
	display: grid;
	grid-template-rows: 0fr;
	background-color: #0e1e46;
	transition: grid-template-rows 0.3s ease;
}

.product-category__panel.is-open {
	grid-template-rows: 1fr;
	border-radius: 0 0 16px 0;
}

.product-category__panel-inner {
	min-height: 0;
	overflow: hidden;
}

.product-category__group-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	padding: 0 20px 24px;
}

.product-group__toggle {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 16px 20px;
	border: none;
	border-radius: 4px;
	background-color: #fff;
	cursor: pointer;
	color: #0e1e46;
	font-size: 16px;
	font-weight: 600;
	text-align: left;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.product-group__toggle:hover,
.product-group__toggle[aria-expanded="true"] {
	background-color: #1891e6;
	color: #fff;
}

.product-group__toggle[aria-expanded="true"] {
	border-radius: 4px 4px 0 0;
}

.product-group__icon {
	display: inline-flex;
	flex-shrink: 0;
	margin-left: auto;
}

.product-group__toggle[aria-expanded="true"] .product-group__icon-vertical {
	display: none;
}

.product-group__panel {
	display: grid;
	grid-template-rows: 0fr;
	background-color: #16294f;
	border-radius: 0 0 4px 4px;
	transition: grid-template-rows 0.3s ease;
}

.product-group__panel.is-open {
	grid-template-rows: 1fr;
}

.product-group__panel-inner {
	min-height: 0;
	overflow: hidden;
}

.product-group__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	padding: 12px;
}

.product-category__link {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 14px 20px;
	border-radius: 4px;
	background-color: #fff;
	color: #0e1e46;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.product-category__link:hover {
	background-color: #1891e6;
	color: #fff;
}

@media screen and (max-width: 1024px) {

	.product-list {
		padding: 60px 24px;
	}

	.product-list__heading {
		margin-bottom: 32px;
		font-size: 32px;
	}

	.product-search-btn {
		padding: 40px 24px;
	}

	.product-search-btn__label {
		font-size: 20px;
	}

	.product-category__toggle {
		padding: 20px 16px;
	}

	.product-category__title {
		font-size: 24px;
	}
}

@media screen and (max-width: 540px) {

	.product-list {
		padding: 48px 20px;
	}

	.product-list__eyebrow {
		font-size: 14px;
	}

	.product-list__heading {
		margin-bottom: 24px;
		font-size: 26px;
	}

	.product-list__search {
		flex-direction: column;
	}

	.product-search-btn {
		padding: 32px 20px;
		border-radius: 12px 4px 12px 4px;
	}

	.product-search-btn__label {
		font-size: 18px;
	}

	.product-search-btn__content {
		gap: 16px;
	}

	.product-search-btn__icon svg {
		width: 32px;
		height: 32px;
	}

	.product-category__toggle {
		padding: 16px 14px;
		border-radius: 12px 4px 12px 4px;
	}

	.product-category__number {
		width: 40px;
		height: 36px;
		font-size: 22px;
	}

	.product-category__title {
		margin-left: 14px;
		font-size: 18px;
	}

	.product-category__group-grid {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 0 14px 16px;
	}

	.product-group__toggle {
		padding: 12px 14px;
		font-size: 14px;
	}

	.product-group__grid {
		grid-template-columns: 1fr;
		gap: 6px;
		padding: 10px;
	}

	.product-category__link {
		padding: 12px 14px;
		font-size: 14px;
	}
}

/*--------------------------------------------------------------
# Features
--------------------------------------------------------------*/
.feature-item {
	position: relative;
	overflow: hidden;
	min-height: 500px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 40px 60px;
	color: #fff;
}

.feature-item__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.feature-item__bg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.feature-item__overlay {
	position: absolute;
	inset: 0;
	background-color: rgb(30 51 104 / 61%);
}

.feature-item__content {
	position: relative;
	z-index: 1;
	max-width: 660px;
}

.feature-item__eyebrow {
	margin: 0 0 8px;
	font-size: 28px;
	font-weight: 700;
	font-style: italic;
}

.feature-item__title {
	margin: 0 0 20px;
	font-size: 44px;
	font-weight: 700;
	line-height: 1.3;
}

.feature-item__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
}

.feature-item__footer {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: flex-end;
}

@media screen and (max-width: 1024px) {

	.feature-item {
		min-height: 420px;
		padding: 40px;
	}

	.feature-item__content {
		max-width: 100%;
	}

	.feature-item__eyebrow {
		font-size: 22px;
	}

	.feature-item__title {
		font-size: 32px;
	}
}

@media screen and (max-width: 540px) {

	.feature-item {
		min-height: 400px;
		padding: 32px 24px;
	}

	.feature-item__eyebrow {
		margin-bottom: 4px;
		font-size: 18px;
	}

	.feature-item__title {
		margin-bottom: 14px;
		font-size: 24px;
		line-height: 1.4;
	}

	.feature-item__desc {
		font-size: 13px;
	}

	.feature-item__footer .btn {
		width: 100%;
		max-width: 260px;
	}
}

/*--------------------------------------------------------------
# About
--------------------------------------------------------------*/
.about {
	background-color: #fff;
	display: flex;
	align-items: flex-start;
	gap: 60px;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding: 100px;
}

.about__text {
	flex: 1 1 auto;
}

.about__eyebrow {
	margin: 0;
	font-size: 16px;
	font-weight: 800;
	color: #2b2b2b;
}

.about__heading {
	margin: 0;
	font-size: 40px;
	font-weight: 700;
	color: #1991e6;
}

.about__body {
	margin: 60px 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.8;
	color: #333333;
}

.about__view-all {
	width: 300px;
	height: 52px;
	font-size: 14px;
}

.about__media {
	flex: 0 0 36%;
}

.about__image {
	display: block;
	width: 100%;
	height: auto;
}

@media screen and (max-width: 1024px) {

	.about {
		gap: 40px;
		padding: 60px 24px;
	}

	.about__heading {
		font-size: 32px;
	}

	.about__body {
		margin: 32px 0;
	}
}

@media screen and (max-width: 540px) {

	.about {
		flex-direction: column;
		gap: 24px;
		padding: 48px 20px;
	}

	.about__eyebrow {
		font-size: 14px;
	}

	.about__heading {
		font-size: 26px;
	}

	.about__body {
		margin: 24px 0;
		font-size: 13px;
	}

	.about__view-all {
		width: 100%;
		height: 48px;
	}

	.about__media {
		flex: 0 0 auto;
		width: 100%;
	}
}

/*--------------------------------------------------------------
# FAQ
--------------------------------------------------------------*/
.faq {
	background-color: #f3faff;
	padding: 100px;
}

.faq__inner {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
}

.faq__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 40px;
}

.faq__eyebrow {
	margin: 0;
	font-size: 16px;
	font-weight: 800;
	color: #2b2b2b;
}

.faq__heading {
	margin: 0;
	font-size: 40px;
	font-weight: 700;
	color: #1991e6;
}

.faq__tabs {
	display: flex;
	gap: 32px;
}

.faq__tab {
	padding: 0 0 12px;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	color: #2b2b2b;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
}

.faq__tab.is-active {
	color: #1991e6;
	border-bottom-color: #1991e6;
}

.faq__panel {
	opacity: 0;
	transition: opacity 0.25s ease;
}

.faq__panel.is-visible {
	opacity: 1;
}

.faq__panel[hidden] {
	display: none;
}

.faq__list {
	width: 80%;
	margin: 0 auto;
	list-style: none;
	padding: 0;
}

.faq-item {
	border-bottom: 1px dashed #333333;
}

.faq-item__question {
	display: flex;
	align-items: center;
	gap: 24px;
	width: 100%;
	padding: 20px;
	background: none;
	border: none;
	cursor: pointer;
	text-align: left;
}

.faq-item__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 10px 4px 10px 4px;
	color: #fff;
	font-size: 32px;
	font-weight: 700;
}

.faq-item__icon--q {
	background-color: #0e1e46;
}

.faq-item__icon--a {
	background-color: #1991e6;
}

.faq-item__text {
	flex: 1;
	font-size: 16px;
	font-weight: 700;
	color: #2b2b2b;
}

.faq-item__text a {
	color: #1991e6;
	text-decoration: underline;
}

.faq-item__toggle {
	display: inline-flex;
	flex-shrink: 0;
	margin-left: auto;
	color: #0e1e46;
}

.faq-item__question[aria-expanded="true"] .faq-item__icon-vertical {
	display: none;
}

.faq-item__panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s ease;
}

.faq-item__panel.is-open {
	grid-template-rows: 1fr;
}

.faq-item__panel-inner {
	min-height: 0;
	overflow: hidden;
}

.faq-item__answer {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 20px;
}

@media screen and (max-width: 1024px) {

	.faq {
		padding: 60px 24px;
	}

	.faq__header {
		margin-bottom: 32px;
	}

	.faq__heading {
		font-size: 32px;
	}

	.faq__tabs {
		gap: 20px;
	}

	.faq__tab {
		font-size: 15px;
	}

	.faq__list {
		width: 100%;
	}

	.faq-item__icon {
		width: 40px;
		height: 40px;
		font-size: 26px;
	}

	.faq-item__text {
		font-size: 15px;
	}
}

@media screen and (max-width: 540px) {

	.faq {
		padding: 48px 20px;
	}

	.faq__header {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		margin-bottom: 24px;
	}

	.faq__eyebrow {
		font-size: 14px;
	}

	.faq__heading {
		font-size: 26px;
	}

	.faq__tabs {
		gap: 16px;
		flex-wrap: wrap;
	}

	.faq__tab {
		font-size: 14px;
	}

	.faq-item__question {
		gap: 12px;
		padding: 16px 0;
	}

	.faq-item__icon {
		width: 32px;
		height: 32px;
		font-size: 20px;
	}

	.faq-item__text {
		font-size: 13px;
	}

	.faq-item__toggle svg {
		width: 16px;
		height: 16px;
	}

	.faq-item__answer {
		gap: 12px;
		padding: 16px 0;
	}
}

/*--------------------------------------------------------------
# CTA Panels (Recruit / Contact / Catalog)
--------------------------------------------------------------*/
.cta-panel {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 60px 40px;
	color: #fff;
}

.cta-panel__bg {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cta-panel__overlay {
	position: absolute;
	inset: 0;
	background-color: rgb(0 0 0 / 50%);
}

.cta-panel--recruit .cta-panel__overlay {
	background-color: rgb(19 37 81 / 68%);
}

.cta-panel__content {
	position: relative;
	z-index: 1;
	max-width: 700px;
}

.cta-panel__eyebrow {
	margin: 0;
	font-size: 16px;
	font-weight: 800;
	color: #fff;
}

.cta-panel__heading {
	margin: 0 0 40px;
	font-size: 40px;
	font-weight: 700;
	color: #1991e6;
}

.cta-panel__subheading {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 800;
	color: #fff;
}

.cta-panel__body {
	margin: 0 0 40px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.8;
	color: #fff;
	text-wrap: pretty;
}

.cta-panels__row {
	display: flex;
}

.cta-panels__row .cta-panel {
	flex: 1;
}

.btn-outline-white {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 340px;
	padding: 16px 24px;
	border: 2px solid #fff;
	border-radius: 9999px;
	background-color: transparent;
	color: #fff;
	font-size: 16px;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.btn-outline-white:hover,
.btn-outline-white:focus {
	background-color: #fff;
	border-color: #fff;
	color: #1891e6;
}

@media screen and (max-width: 1024px) {

	.cta-panel {
		padding: 48px 24px;
	}

	.cta-panel__heading {
		margin-bottom: 24px;
		font-size: 32px;
	}

	.cta-panel__subheading {
		font-size: 16px;
	}

	.cta-panel__body {
		margin-bottom: 24px;
		font-size: 13px;
	}

	.btn-outline-white {
		width: 300px;
	}
}

@media screen and (max-width: 540px) {

	.cta-panels__row {
		flex-direction: column;
	}

	.cta-panel {
		align-items: stretch;
		padding: 40px 20px;
	}

	.cta-panel__eyebrow {
		font-size: 14px;
	}

	.cta-panel__heading {
		margin-bottom: 20px;
		font-size: 24px;
	}

	.cta-panel__subheading {
		margin-bottom: 16px;
		font-size: 15px;
	}

	.cta-panel__body {
		margin-bottom: 20px;
		font-size: 13px;
	}

	.cta-panel__body .u-br-pc {
		display: none;
	}

	.cta-panel--recruit .btn--white {
		width: 100%;
		max-width: 280px;
	}

	.btn-outline-white {
		width: 100%;
		max-width: 280px;
		padding: 14px 20px;
		font-size: 14px;
	}
}

/*--------------------------------------------------------------
# Site Footer
--------------------------------------------------------------*/
.site-footer {
	background-color: #fafbff;
}

.site-footer__inner {
	display: flex;
	align-items: flex-start;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	padding: 100px;
}

.site-footer__box {
	width: 500px;
	height: 280px;
	flex-shrink: 0;
	background-color: #f4f5fb;
	border-radius: 24px 4px 24px 4px;
	padding: 40px;
}

.site-footer__links {
	display: flex;
	flex: 1;
	justify-content: center;
}

.site-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.site-footer__logo {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.site-footer__logo-img {
	display: block;
	width: 160px;
	height: auto;
}

.site-footer__social {
	display: flex;
	align-items: center;
	gap: 12px;
}

.site-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 4px;
	background-color: #0e1e46;
	color: #fff;
}

.site-footer__links ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.site-footer__links a {
	font-size: 14px;
	font-weight: 600;
	color: #0e1e46;
	text-decoration: none;
}

.site-footer__bottom {
	border-top: 1px solid #eeeeee;
	padding: 24px 100px;
}

.site-footer__copyright {
	margin: 0;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	font-size: 13px;
	font-weight: 600;
	color: #0e1e46;
	text-align: center;
}

@media screen and (max-width: 1024px) {

	.site-footer__inner {
		flex-direction: column;
		align-items: center;
		gap: 40px;
		padding: 60px 24px;
	}

	.site-footer__box {
		width: 100%;
		max-width: 500px;
		height: auto;
		min-height: 240px;
	}

	.site-footer__links {
		width: 100%;
	}

	.site-footer__links ul {
		align-items: center;
	}

	.site-footer__links a {
		text-align: center;
	}

	.site-footer__bottom {
		padding: 24px;
	}
}

@media screen and (max-width: 540px) {

	.site-footer__inner {
		gap: 32px;
		padding: 48px 20px;
	}

	.site-footer__box {
		padding: 24px;
		min-height: 220px;
	}

	.site-footer__logo-img {
		width: 130px;
	}

	.site-footer__links ul {
		gap: 16px;
	}

	.site-footer__links a {
		font-size: 13px;
	}

	.site-footer__bottom {
		padding: 20px;
	}

	.site-footer__copyright {
		font-size: 12px;
	}
}

/*--------------------------------------------------------------
# Product Detail (single-product.php)
--------------------------------------------------------------*/
.product-detail__breadcrumb {
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: 1400px;
	margin: 0 auto;
	padding: 24px 100px 0;
	font-size: 13px;
	color: #6b7280;
}

.product-detail__breadcrumb a {
	color: #6b7280;
	text-decoration: none;
}

.product-detail__breadcrumb a:hover {
	color: #1991e6;
}

.product-detail__hero {
	position: relative;
	overflow: hidden;
	height: 360px;
	margin-top: 24px;
	background-color: #0e1e46;
}

.product-detail__hero-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-detail__hero-overlay {
	position: absolute;
	inset: 0;
	background-color: rgb(14 30 70 / 55%);
}

.product-detail__hero-content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	height: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 100px 40px;
	color: #fff;
}

.product-detail__hero-subtitle {
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: #3eafff;
}

.product-detail__hero-title {
	margin: 0;
	font-size: 40px;
	font-weight: 700;
}

.product-detail__hero-en {
	margin: 10px 0 0;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.3em;
	color: rgb(255 255 255 / 85%);
}

.product-detail__inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 100px;
}

.product-detail__section-title {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin: 0 0 32px;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #0e1e46;
}

.product-detail__section-title::before {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin-top: 10px;
	border-radius: 8px 2px 8px 2px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
}

.product-detail__section-title::after {
	content: "";
	align-self: center;
	flex: 1;
	height: 1px;
	margin-left: 4px;
	background: linear-gradient(90deg, rgb(14 30 70 / 12%), transparent);
}

.product-detail__intro {
	padding: 100px 0 0;
}

.product-detail__intro-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: flex-start;
}

.product-detail__intro-grid--no-media {
	grid-template-columns: 1fr;
}

.product-detail__video {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	overflow: hidden;
	border-radius: 16px 4px 16px 4px;
	background-color: #0e1e46;
}

.product-detail__video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.product-detail__intro-image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px 4px 16px 4px;
	object-fit: cover;
}

.product-detail__intro-gallery-main {
	position: relative;
	overflow: hidden;
	border-radius: 16px 4px 16px 4px;
	background-color: #f5f5f7;
}

.product-detail__intro-gallery-main .product-detail__intro-image {
	border-radius: 0;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	background-color: #f5f5f7;
}

.product-detail__intro-gallery-arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background-color: rgb(14 30 70 / 55%);
	color: #fff;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color 0.2s ease;
}

.product-detail__intro-gallery-arrow:hover {
	background-color: rgb(14 30 70 / 80%);
}

.product-detail__intro-gallery-arrow--prev {
	left: 16px;
}

.product-detail__intro-gallery-arrow--next {
	right: 16px;
}

.product-detail__intro-gallery-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.product-detail__intro-gallery-thumb {
	flex: 0 0 auto;
	width: 64px;
	height: 64px;
	padding: 0;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 8px 2px 8px 2px;
	background-color: #f5f5f7;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.product-detail__intro-gallery-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.product-detail__intro-gallery-thumb:hover {
	border-color: #d7deee;
}

.product-detail__intro-gallery-thumb.is-active {
	border-color: #1991e6;
}

.product-detail__manufacturer {
	margin: 0 0 4px;
	font-size: 12px;
	letter-spacing: 0.15em;
	color: #888888;
}

.product-detail__intro-title {
	margin: 0 0 12px;
	font-size: 26px;
	font-weight: 900;
	line-height: 1.4;
	color: #0e1e46;
}

.product-detail__tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}

.product-detail__tag {
	padding: 5px 12px;
	border-radius: 9999px;
	background-color: #f3faff;
	color: #0e1e46;
	font-size: 12px;
	font-weight: 600;
}

.product-detail__tag--target {
	background-color: #fdecec;
	color: #c0392b;
}

.product-detail__one-line {
	margin: 0 0 16px;
	font-size: 14px;
	font-weight: 400;
	color: #333333;
}

.product-detail__intro-box {
	margin: 0 0 32px;
	padding: 24px 28px;
	border-radius: 20px 4px 20px 4px;
	background-color: #f3faff;
}

.product-detail__intro-box-heading {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 700;
	color: #0e1e46;
}

.product-detail__intro-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: #333333;
}

.product-detail__intro-actions {
	display: flex;
	gap: 12px;
}

.product-detail__problems {
	padding: 100px 0 0;
}

.product-detail__problems-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.product-detail__problem-card {
	position: relative;
	overflow: hidden;
	padding: 36px 32px 32px;
	border: 1px solid #d7deee;
	border-radius: 24px 4px 24px 4px;
	background-color: #fff;
	box-shadow: 0 16px 32px rgb(14 30 70 / 10%);
}

.product-detail__problem-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 5px;
	background: linear-gradient(90deg, #1991e6, #3eafff);
}

.product-detail__problem-icon {
	display: block;
	width: 70px;
	height: 70px;
	margin: 0 auto 16px;
	object-fit: contain;
}

.product-detail__problem-title {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 700;
	text-align: center;
	color: #0e1e46;
}

.product-detail__problem-desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: #333333;
}

.product-detail__gallery {
	padding: 100px 0 0;
}

.product-detail__gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.product-detail__gallery-img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-radius: 12px;
}

.product-detail__features {
	padding: 100px 0 0;
}

.product-detail__features-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.product-detail__feature-item {
	padding: 24px;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	background-color: #fff;
}

.product-detail__feature-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-bottom: 14px;
	border-radius: 12px 3px 12px 3px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
	color: #fff;
	font-size: 15px;
	font-weight: 800;
	line-height: 1;
}

.product-detail__feature-title {
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 700;
	color: #0e1e46;
}

.product-detail__feature-desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: #555555;
}

.product-detail__spotlight {
	padding: 100px 0 0;
}

.product-detail__spotlight-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	padding: 48px;
	border-radius: 24px 4px 24px 4px;
	background-color: #f5f5f7;
}

.product-detail__spotlight-kicker {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.15em;
	color: #1991e6;
}

.product-detail__spotlight-title {
	margin: 0 0 16px;
	font-size: 24px;
	font-weight: 900;
	color: #0e1e46;
}

.product-detail__spotlight-desc {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 2;
	color: #444444;
}

.product-detail__spotlight-points {
	margin: 0;
	padding-left: 18px;
	font-size: 13px;
	line-height: 2.2;
	color: #444444;
}

.product-detail__spotlight-media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 20px 4px 20px 4px;
	object-fit: cover;
}

.product-detail__solutions {
	padding: 100px 0 0;
}

.product-detail__solutions-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 32px;
}

.product-detail__solution-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.product-detail__solution-index {
	flex-shrink: 0;
	font-size: 36px;
	font-weight: 800;
	line-height: 1;
	color: #b7c3dc;
}

.product-detail__solution-line {
	flex: 1;
	height: 1px;
	background-color: #d7deee;
}

.product-detail__solution-kicker {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.05em;
	color: #1991e6;
}

.product-detail__solution-title {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 700;
	color: #0e1e46;
}

.product-detail__solution-body {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.8;
	color: #333333;
}

.product-detail__solution-body:last-child {
	margin-bottom: 0;
}

.product-detail__solution-list {
	margin: 0;
	padding-left: 1.3em;
	list-style: "・";
	font-size: 14px;
	line-height: 1.8;
	color: #333333;
}

.product-detail__solution-list li {
	padding-left: 0.3em;
}

.product-detail__solution-list li + li {
	margin-top: 4px;
}

.product-detail__case-studies {
	padding: 100px 0 0;
}

.product-detail__case-studies-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}

.product-detail__case-studies-grid .case-study-card {
	width: auto;
	flex: none;
}

.product-detail__view-all {
	display: flex;
	justify-content: center;
}

.product-detail__cta {
	position: relative;
	overflow: hidden;
	width: 100vw;
	margin-top: 60px;
	margin-left: calc(50% - 50vw);
	padding: 80px 24px;
	text-align: center;
	color: #fff;
}

.product-detail__cta-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-detail__cta-overlay {
	position: absolute;
	inset: 0;
	background-color: rgb(14 30 70 / 85%);
}

.product-detail__cta-inner {
	position: relative;
	z-index: 1;
}

.product-detail__cta-title {
	margin: 0 0 16px;
	font-size: 28px;
	font-weight: 700;
}

.product-detail__cta-text {
	max-width: 640px;
	margin: 0 auto 32px;
	font-size: 14px;
	line-height: 1.8;
	color: #d7deee;
}

.product-detail__cta-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.product-detail__cta-actions .btn {
	background-color: #fff;
	color: #0e1e46;
}

.product-detail__cta-actions .btn:hover {
	background-color: #1991e6;
	color: #fff;
}

.product-detail__strengths {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	padding: 100px 0 0;
	text-align: center;
}

.product-detail__strength-icon {
	display: inline-flex;
	margin-bottom: 16px;
	font-size: 32px;
}

.product-detail__strength-icon-image {
	display: inline-block;
	width: 50px;
	height: 50px;
	margin-bottom: 16px;
	object-fit: contain;
}

.product-detail__strength-title {
	margin: 0 0 12px;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.product-detail__strength-desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: #333333;
}

.product-detail__faq {
	padding: 100px 0 0;
}

.product-detail__target-tags {
	padding: 100px 0 0;
}

.product-detail__related-products,
.product-detail__related-tech {
	padding: 100px 0 0;
}

.product-detail__related-grid,
.product-detail__related-tech-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.product-detail__related-card {
	display: block;
	color: inherit;
	text-decoration: none;
}

.product-detail__related-thumb {
	overflow: hidden;
	margin-bottom: 16px;
	border-radius: 16px 4px 16px 4px;
	background-color: #f3faff;
}

.product-detail__related-thumb img {
	display: block;
	width: 100%;
	height: 160px;
	object-fit: cover;
}

.product-detail__related-title {
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 700;
	color: #0e1e46;
}

.product-detail__related-desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.7;
	color: #6b7280;
}

.product-detail__inner > section:last-child {
	padding-bottom: 100px;
}

@media screen and (max-width: 1024px) {

	.product-detail__breadcrumb {
		padding: 20px 24px 0;
	}

	.product-detail__hero-content,
	.product-detail__inner {
		padding-left: 24px;
		padding-right: 24px;
	}

	.product-detail__intro-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.product-detail__solutions-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.product-detail__spotlight-grid {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 32px;
	}

	.product-detail__hero {
		height: 280px;
	}

	.product-detail__hero-title {
		font-size: 32px;
	}

	.product-detail__section-title {
		font-size: 26px;
		margin-bottom: 24px;
	}

	.product-detail__problems-grid,
	.product-detail__case-studies-grid,
	.product-detail__strengths {
		grid-template-columns: repeat(2, 1fr);
	}

	.product-detail__features-list {
		grid-template-columns: repeat(2, 1fr);
	}

	.product-detail__gallery-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.product-detail__related-grid,
	.product-detail__related-tech-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.product-detail__intro,
	.product-detail__problems,
	.product-detail__gallery,
	.product-detail__features,
	.product-detail__spotlight,
	.product-detail__solutions,
	.product-detail__case-studies,
	.product-detail__strengths,
	.product-detail__faq,
	.product-detail__target-tags,
	.product-detail__related-products,
	.product-detail__related-tech {
		padding-top: 60px;
	}

	.product-detail__cta {
		padding: 40px 24px;
	}

	.product-detail__inner > section:last-child {
		padding-bottom: 60px;
	}
}

@media screen and (max-width: 540px) {

	.product-detail__breadcrumb {
		padding: 16px 20px 0;
		font-size: 12px;
		flex-wrap: wrap;
	}

	.product-detail__hero-content,
	.product-detail__inner {
		padding-left: 20px;
		padding-right: 20px;
	}

	.product-detail__solutions-grid {
		grid-template-columns: 1fr;
	}

	.product-detail__spotlight-grid {
		padding: 24px;
		border-radius: 16px 4px 16px 4px;
	}

	.product-detail__hero {
		height: 220px;
	}

	.product-detail__hero-title {
		font-size: 24px;
	}

	.product-detail__section-title {
		gap: 10px;
		font-size: 22px;
		margin-bottom: 20px;
	}

	.product-detail__section-title::before {
		width: 14px;
		height: 14px;
		margin-top: 9px;
		border-radius: 6px 2px 6px 2px;
	}

	.product-detail__intro,
	.product-detail__problems,
	.product-detail__gallery,
	.product-detail__features,
	.product-detail__spotlight,
	.product-detail__solutions,
	.product-detail__case-studies,
	.product-detail__strengths,
	.product-detail__faq,
	.product-detail__target-tags,
	.product-detail__related-products,
	.product-detail__related-tech {
		padding-top: 40px;
	}

	.product-detail__problems-grid,
	.product-detail__case-studies-grid,
	.product-detail__strengths,
	.product-detail__features-list,
	.product-detail__related-grid,
	.product-detail__related-tech-grid {
		grid-template-columns: 1fr;
	}

	.product-detail__gallery-grid {
		display: flex;
		grid-template-columns: none;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		margin: 0 -20px;
		padding: 0 20px;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.product-detail__gallery-grid::-webkit-scrollbar {
		display: none;
	}

	.product-detail__gallery-img {
		flex: 0 0 70%;
		width: 70%;
		height: 180px;
		scroll-snap-align: start;
	}

	.product-detail__intro-actions {
		flex-direction: column;
	}

	.product-detail__intro-actions .btn {
		width: 100%;
	}

	.product-detail__intro-gallery-arrow {
		width: 32px;
		height: 32px;
	}

	.product-detail__intro-gallery-thumb {
		width: 52px;
		height: 52px;
	}

	.product-detail__cta {
		padding: 32px 20px;
	}

	.product-detail__cta-actions {
		flex-direction: column;
	}

	.product-detail__cta-actions .btn {
		width: 100%;
	}

	.product-detail__inner > section:last-child {
		padding-bottom: 48px;
	}
}

/*--------------------------------------------------------------
# Single Article (blog posts / 関連技術)
--------------------------------------------------------------*/
.article {
	padding: 60px 0 100px;
}

.article__container {
	max-width: 1100px;
}

.article__layout {
	display: flex;
	align-items: flex-start;
	gap: 48px;
}

.article__main {
	flex: 1 1 auto;
	max-width: 760px;
	min-width: 0;
}

.article__sidebar {
	flex: 0 0 280px;
	width: 280px;
	position: sticky;
	top: 116px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.article__widget {
	padding: 24px;
	border-radius: 16px 4px 16px 4px;
	background-color: #f3faff;
}

.article__widget-title {
	margin: 0 0 16px;
	font-size: 14px;
	font-weight: 700;
	color: #0e1e46;
}

.article__widget-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.article__widget-item {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.article__widget-thumb {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
	overflow: hidden;
	border-radius: 8px 2px 8px 2px;
	background-color: #fff;
}

.article__widget-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.article__widget-name {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.6;
	color: #0e1e46;
}

.article__widget-item:hover .article__widget-name {
	color: #1991e6;
}

.article__widget--cta {
	display: flex;
	flex-direction: column;
	gap: 12px;
	background-color: transparent;
	padding: 0;
}

.article__widget-cta-btn {
	width: 100%;
}

.article__header {
	margin: 0 0 32px;
}

.article__badge {
	display: inline-block;
	margin: 0 0 16px;
	padding: 5px 14px;
	border-radius: 999px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #fff;
}

.article__title {
	margin: 0 0 14px;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: #0e1e46;
}

.article__meta {
	font-size: 13px;
	color: #6b7280;
}

.article__thumbnail {
	margin: 0 0 40px;
	overflow: hidden;
	border-radius: 24px 4px 24px 4px;
}

.article__thumbnail img {
	display: block;
	width: 100%;
	height: auto;
}

.article__content {
	font-size: 15px;
	line-height: 2;
	color: #333333;
}

.article__content > *:first-child {
	margin-top: 0;
}

.article__content > * + * {
	margin-top: 20px;
}

/* 見出し: レベルごとにメリハリをつけて視覚的な階層をはっきりさせる */
.article__content h2 {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 8px 20px;
	border-radius: 8px 2px 8px 2px;
	background-color: #0e1e46;
	font-size: 20px;
	font-weight: 700;
	color: #fff;
}

.article__content h3 {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 2px 0 2px 16px;
	border-left: 4px solid #3eafff;
	font-size: 18px;
	font-weight: 700;
	color: #0e1e46;
}

.article__content h4 {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.article__content h4::before {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 10px;
	height: 10px;
	border-radius: 4px 1px 4px 1px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
}

.article__content h5,
.article__content h6 {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	font-size: 15px;
	font-weight: 700;
	color: #0e1e46;
}

.article__content p {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
}

/* リスト: マーカーの色を変えてメリハリを出す */
.article__content ul,
.article__content ol {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding-left: 1.4em;
}

.article__content ul li::marker {
	color: #1991e6;
}

.article__content ol li::marker {
	font-weight: 700;
	color: #0e1e46;
}

.article__content li + li {
	margin-top: 8px;
}

.article__content a {
	color: #1991e6;
	text-decoration: underline;
}

.article__content img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px 4px 12px 4px;
}

/* 引用ブロック */
.article__content blockquote,
.article__content .wp-block-quote {
	position: relative;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 24px 28px 24px 56px;
	border-left: 4px solid #3eafff;
	border-radius: 4px;
	background-color: #f3faff;
	color: #333333;
}

.article__content blockquote::before,
.article__content .wp-block-quote::before {
	content: "\201C";
	position: absolute;
	top: 4px;
	left: 18px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	color: #3eafff;
}

.article__content blockquote p,
.article__content .wp-block-quote p {
	margin: 0;
}

.article__content blockquote p + p,
.article__content .wp-block-quote p + p {
	margin-top: 1em;
}

.article__content blockquote cite,
.article__content .wp-block-quote cite {
	display: block;
	margin-top: 12px;
	font-size: 13px;
	font-style: normal;
	color: #6b7280;
}

.article__content blockquote cite::before,
.article__content .wp-block-quote cite::before {
	content: "— ";
}

/* プルクオート: 引用よりも大きく、目を引く中央寄せデザイン */
.article__content .wp-block-pullquote {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 32px 24px;
	border-top: 3px solid #0e1e46;
	border-bottom: 3px solid #0e1e46;
	text-align: center;
}

.article__content .wp-block-pullquote blockquote {
	margin: 0;
	padding: 0;
	border-left: 0;
	background-color: transparent;
}

.article__content .wp-block-pullquote blockquote::before {
	position: static;
	display: block;
	margin-bottom: 8px;
	font-size: 32px;
}

.article__content .wp-block-pullquote p {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.7;
	color: #0e1e46;
}

.article__content .wp-block-pullquote cite {
	display: block;
	margin-top: 12px;
	font-size: 13px;
	font-style: normal;
	color: #6b7280;
}

/* コード・整形済みテキスト */
.article__content code {
	padding: 2px 6px;
	border-radius: 4px;
	background-color: #f1f3f8;
	font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
	font-size: 0.9em;
	color: #b3261e;
}

.article__content .wp-block-code,
.article__content .wp-block-preformatted,
.article__content pre {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 20px 24px;
	border-radius: 8px 2px 8px 2px;
	background-color: #0e1e46;
	overflow-x: auto;
}

.article__content .wp-block-code code,
.article__content .wp-block-preformatted,
.article__content pre {
	background: none;
	color: #e5eaf5;
	font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
	font-size: 13px;
	line-height: 1.7;
	white-space: pre-wrap;
	word-break: break-word;
}

/* 詩(verse) */
.article__content .wp-block-verse {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 20px 24px;
	border-left: 4px solid #d7deee;
	background-color: #fafbfd;
	font-family: Georgia, "Hiragino Mincho ProN", serif;
	font-style: italic;
	white-space: pre-wrap;
	color: #333333;
}

/* テーブル */
.article__content .wp-block-table {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	overflow-x: auto;
}

.article__content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.article__content table th,
.article__content table td {
	padding: 12px 16px;
	border: 1px solid #d7deee;
	text-align: left;
}

.article__content table th {
	background-color: #0e1e46;
	font-weight: 700;
	color: #fff;
}

.article__content table tbody tr:nth-child(even) {
	background-color: #f3faff;
}

/* 詳細(details) */
.article__content .wp-block-details {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 18px 24px;
	border: 1px solid #d7deee;
	border-radius: 16px 4px 16px 4px;
	background-color: #fafbfd;
}

.article__content .wp-block-details summary {
	cursor: pointer;
	font-weight: 700;
	color: #0e1e46;
}

.article__content .wp-block-details summary::marker {
	color: #1991e6;
}

.article__content .wp-block-details[open] summary {
	margin-bottom: 12px;
}

.article__footer {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid #d7deee;
}

.article__tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.article__tag-list a {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	background-color: #f3faff;
	font-size: 12px;
	font-weight: 600;
	color: #0e1e46;
	text-decoration: none;
}

.article__tag-list a:hover {
	background-color: #d7deee;
}

@media screen and (max-width: 1024px) {
	.article__layout {
		flex-direction: column;
	}

	.article__main {
		max-width: 100%;
	}

	.article__sidebar {
		position: static;
		width: 100%;
		flex-direction: row;
		flex-wrap: wrap;
	}

	.article__widget {
		flex: 1 1 240px;
	}

	.article__widget--cta {
		flex-direction: row;
	}
}

@media screen and (max-width: 540px) {
	.article {
		padding: 40px 0 64px;
	}

	.article__title {
		font-size: 24px;
	}

	.article__thumbnail {
		margin-bottom: 28px;
	}

	.article__sidebar {
		flex-direction: column;
	}

	.article__widget--cta {
		flex-direction: column;
	}
}

.site-main .post-navigation {
	max-width: 1100px;
	margin: 0 auto 100px;
	padding: 0 24px;
}

.post-navigation .nav-links {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	border-top: 1px solid #d7deee;
	padding-top: 32px;
}

.post-navigation .nav-previous,
.post-navigation .nav-next {
	flex: 1;
}

.post-navigation .nav-next {
	text-align: right;
}

.post-navigation .nav-back {
	flex-shrink: 0;
	text-align: center;
}

.post-navigation a {
	font-size: 14px;
	font-weight: 700;
	color: #0e1e46;
	text-decoration: none;
}

.post-navigation a:hover {
	color: #1991e6;
}

@media screen and (max-width: 540px) {
	.site-main .post-navigation {
		margin-bottom: 64px;
	}

	.post-navigation .nav-links {
		flex-wrap: wrap;
		justify-content: center;
		gap: 16px;
		text-align: center;
	}

	.post-navigation .nav-previous,
	.post-navigation .nav-next {
		flex: none;
		text-align: center;
	}
}

/*--------------------------------------------------------------
# LIC (ローカルイノベーションセンター)
--------------------------------------------------------------*/
.lic__inner > section {
	padding-top: 72px;
	padding-bottom: 72px;
}

.lic__inner > section:first-child {
	padding-top: 60px;
}

.lic__eyebrow {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #1991e6;
}

.lic__title {
	margin: 0 0 20px;
	font-size: 34px;
	font-weight: 700;
	line-height: 1.4;
	color: #0e1e46;
}

.lic__lead {
	margin: 0 0 20px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.7;
	color: #0e1e46;
}

.lic__body {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.9;
	color: #333333;
}

.lic__body:last-child {
	margin-bottom: 0;
}

.lic__sub {
	margin: 0 0 12px;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 24px;
}

/* 実際の原料・製品で検証できる環境 */
.lic__features-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin-bottom: 24px;
}

.lic__feature {
	padding: 24px 20px;
	border-radius: 16px 4px 16px 4px;
	background-color: #f3faff;
}

.lic__feature-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.lic__feature-label {
	display: block;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
	white-space: nowrap;
}

.lic__feature-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 10px 4px 10px 4px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
}

.lic__feature-desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.7;
	color: #333333;
}

/* LICとは */
.lic__photo-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 24px;
}

.lic__photo {
	display: block;
	width: 100%;
	height: 180px;
	border-radius: 12px 4px 12px 4px;
	object-fit: cover;
}

/* 課題・目的から探す */
.lic__topics-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-top: 24px;
}

.lic__topic-group {
	padding: 24px;
	border-radius: 16px 4px 16px 4px;
	background-color: #fafbfd;
	border: 1px solid #d7deee;
}

.lic__topic-title {
	margin: 0 0 14px;
	font-size: 14px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__pill-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lic__pill {
	display: inline-block;
	padding: 8px 14px;
	border-radius: 999px;
	background-color: #fff;
	border: 1px solid #d7deee;
	font-size: 13px;
	font-weight: 600;
	color: #0e1e46;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.lic__pill:hover {
	background-color: #1991e6;
	border-color: #1991e6;
	color: #fff;
}

/* LICでできること */
.lic__service {
	padding: 40px 0;
	border-top: 1px solid #d7deee;
	scroll-margin-top: 100px;
}

.lic__services > .lic__service:first-of-type {
	padding-top: 24px;
	border-top: none;
}

.lic__service-title {
	display: block;
	margin: 0 0 12px;
	padding: 12px 20px 12px 26px;
	border-radius: 0 8px 8px 0;
	background: linear-gradient(90deg, #3eafff 0, #3eafff 4px, #f3faff 4px, #f3faff 8px, #3eafff 8px, #3eafff 10px, #f3faff 10px, #f3faff 100%);
	font-size: 20px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__accordion-group {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 20px 0;
}

.lic__accordion {
	border: 1px solid #d7deee;
	border-radius: 8px 2px 8px 2px;
	overflow: hidden;
}

.lic__accordion-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 14px 20px;
	border: none;
	background-color: #fafbfd;
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	color: #0e1e46;
	text-align: left;
}

.lic__accordion-toggle:hover {
	background-color: #f3faff;
}

.lic__accordion-icon {
	position: relative;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
}

.lic__accordion-icon::before,
.lic__accordion-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background-color: #1991e6;
	transform: translate(-50%, -50%);
}

.lic__accordion-icon::before {
	width: 14px;
	height: 2px;
}

.lic__accordion-icon::after {
	width: 2px;
	height: 14px;
	transition: transform 0.2s ease;
}

.lic__accordion-toggle[aria-expanded="true"] .lic__accordion-icon::after {
	transform: translate(-50%, -50%) scaleY(0);
}

.lic__accordion-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s ease;
}

.lic__accordion-panel.is-open {
	grid-template-rows: 1fr;
}

.lic__accordion-panel-inner {
	min-height: 0;
	overflow: hidden;
}

.lic__chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 16px;
	padding: 5px;
	list-style: none;
}

.lic__chip-list:last-child {
	margin-bottom: 0;
}

.lic__chip {
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid #d7deee;
	border-radius: 999px;
	background-color: #fff;
	font-size: 13px;
	font-weight: 600;
	color: #0e1e46;
}

.lic__note {
	margin: 0 0 20px;
	font-size: 12px;
	line-height: 1.8;
	color: #6b7280;
}

.lic__cta-break {
	display: none;
}

/* 比較セクション / 世界の知見 (light panel) */
.lic__panel {
	padding: 48px;
	border-radius: 24px 4px 24px 4px;
	background-color: #f3faff;
}

.lic__compare-blocks {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 24px 0 32px;
}

.lic__compare-block {
	padding: 28px 32px;
	border-radius: 16px 4px 16px 4px;
	background-color: #fff;
}

.lic__panel-subtitle {
	margin: 32px 0 8px;
	font-size: 17px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__panel-subtitle:first-of-type {
	margin-top: 24px;
}

.lic__compare-block .lic__panel-subtitle {
	margin-top: 0;
}

.lic__panel-label {
	margin: 0 0 4px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #1991e6;
}

/* 検証テーマ例 (cases) */
.lic__cases-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 24px 0 32px;
}

.lic__case {
	padding: 28px;
	border-radius: 16px 4px 16px 4px;
	background-color: #fafbfd;
	border: 1px solid #d7deee;
}

.lic__case-title {
	margin: 0 0 16px;
	font-size: 17px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__case-label {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #1991e6;
}

.lic__case-label-icon {
	display: inline-flex;
	flex-shrink: 0;
	color: #1991e6;
}

.lic__check-list {
	margin: 0;
	padding-left: 1.2em;
	list-style: "✓  ";
	font-size: 13px;
	line-height: 1.8;
	color: #333333;
}

.lic__check-list li + li {
	margin-top: 4px;
}

/* Food Expertise (experts) */
.lic__experts-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	margin-top: 24px;
}

.lic__expert {
	padding: 32px;
	border-radius: 16px 4px 16px 4px;
	background-color: #fafbfd;
	border: 1px solid #d7deee;
}

.lic__expert .lic__chip-list {
	gap: 10px;
}

.lic__expert .lic__chip {
	display: inline-flex;
	align-items: center;
	padding: 9px 18px 9px 14px;
	border: none;
	background: linear-gradient(135deg, #eaf6ff, #f3faff);
	box-shadow: 0 2px 8px rgb(14 30 70 / 8%);
	font-weight: 700;
	color: #0e1e46;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.lic__expert .lic__chip::before {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	margin-right: 8px;
	border-radius: 50%;
	background: linear-gradient(135deg, #1991e6, #3eafff);
}

.lic__expert .lic__chip:hover {
	box-shadow: 0 4px 12px rgb(14 30 70 / 16%);
	transform: translateY(-2px);
}

.lic__expert-head {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 16px;
}

.lic__expert-photo {
	display: block;
	flex-shrink: 0;
	width: 132px;
	height: 132px;
	border-radius: 50%;
	object-fit: cover;
}

.lic__expert-head-text {
	min-width: 0;
}

.lic__expert-label {
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #1991e6;
}

.lic__expert-name {
	margin: 0 0 2px;
	font-size: 20px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__expert-en {
	margin: 0 0 8px;
	font-size: 12px;
	color: #6b7280;
}

.lic__expert-role {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: #333333;
}

/* LICご利用の流れ */
.lic__flow-list {
	display: flex;
	flex-direction: column;
	margin: 24px 0 32px;
	padding: 0;
	list-style: none;
}

.lic__flow-step {
	position: relative;
	display: flex;
	gap: 20px;
	padding-bottom: 32px;
}

.lic__flow-step:last-child {
	padding-bottom: 0;
}

.lic__flow-step:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 36px;
	left: 17px;
	bottom: 0;
	width: 2px;
	background-color: #d7deee;
}

.lic__flow-number {
	position: relative;
	z-index: 1;
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px 4px 10px 4px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
}

.lic__flow-content {
	padding-top: 4px;
}

.lic__flow-title {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__flow-desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: #333333;
}

/* アクセス */
.lic__access-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	align-items: stretch;
	margin: 24px 0 20px;
}

.lic__address-card {
	padding: 32px;
	border-radius: 16px 4px 16px 4px;
	background-color: #fafbfd;
	border: 1px solid #d7deee;
}

.lic__address-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}

.lic__address-head .lic__panel-label {
	margin: 0;
}

.lic__address-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 8px 2px 8px 2px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
}

.lic__address-zip {
	margin: 0 0 4px;
	font-size: 13px;
	color: #6b7280;
}

.lic__address-main {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.lic__address-sub {
	margin: 0 0 24px;
	font-size: 14px;
	color: #333333;
}

.lic__map {
	overflow: hidden;
	min-height: 320px;
	border-radius: 16px 4px 16px 4px;
	background-color: #f3faff;
}

.lic__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 320px;
	border: 0;
}

/* 最終CTA */
.lic__cta {
	padding: 72px 0;
	background-color: #0e1e46;
	color: #fff;
}

.lic__cta-title {
	margin: 0 0 16px;
	font-size: 26px;
	font-weight: 700;
	color: #fff;
}

.lic__cta-body {
	margin: 0 0 24px;
	font-size: 14px;
	line-height: 1.9;
	color: rgb(255 255 255 / 85%);
	max-width: 720px;
}

.lic__cta-label {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #3eafff;
}

.lic__cta-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}

.lic__cta-chip-list li {
	padding: 6px 14px;
	border-radius: 999px;
	border: 1px solid rgb(255 255 255 / 30%);
	font-size: 12px;
	color: #fff;
}

/* 3つのCTAボタンの形・余白を統一する(塗り/アウトラインの色以外は共通) */
.lic__cta .lic__actions .btn,
.lic__cta .lic__actions .btn-outline-white {
	width: auto;
	height: auto;
	padding: 16px 32px;
	border-radius: 4px;
	font-size: 15px;
	font-weight: 700;
	white-space: nowrap;
}

@media screen and (max-width: 1024px) {
	.lic__features-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.lic__photo-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.lic__topics-grid {
		grid-template-columns: 1fr;
	}

	.lic__cases-grid {
		grid-template-columns: 1fr;
	}

	.lic__experts-grid {
		grid-template-columns: 1fr;
	}

	.lic__access-grid {
		grid-template-columns: 1fr;
	}

	.lic__panel {
		padding: 32px 24px;
	}

	.lic__compare-block {
		padding: 24px 20px;
	}
}

@media screen and (max-width: 540px) {
	.lic__inner > section {
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.lic__cta-break {
		display: inline;
	}

	.lic__title {
		font-size: 26px;
	}

	.lic__lead {
		font-size: 16px;
	}

	.lic__expert-head {
		flex-direction: column;
		align-items: flex-start;
	}

	.lic__features-grid {
		grid-template-columns: 1fr;
	}

	.lic__photo-grid {
		grid-template-columns: 1fr;
	}

	.lic__actions {
		flex-direction: column;
	}

	.lic__actions .btn,
	.lic__actions .btn--outline,
	.lic__actions .btn-outline-white {
		width: 100%;
	}
}

/* LICページ内のボタンにはすべて末尾に「›」を付ける */
.lic .btn::after,
.lic .btn-outline-white::after {
	content: "›";
	margin-left: 0.5em;
}

/* ボタンの文言が長い場合に画面からはみ出さないよう、折り返しを許可する */
.lic .btn,
.lic .btn-outline-white {
	height: auto;
	min-height: 46px;
	max-width: 100%;
	white-space: normal;
	text-align: center;
}

/*--------------------------------------------------------------
# メーカー別一覧 (taxonomy-product_maker.php)
--------------------------------------------------------------*/
.maker-archive__mv {
	position: relative;
	overflow: hidden;
	height: 200px;
	margin-top: 24px;
	background-color: #4a5a7a;
}

.maker-archive__mv-overlay {
	position: absolute;
	inset: 0;
	background-color: rgb(0 24 64 / 50%);
}

.maker-archive__mv-content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
}

.maker-archive__mv-subtitle {
	margin: 0 0 4px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: rgb(255 255 255 / 80%);
}

.maker-archive__mv-title {
	margin: 0;
	font-size: 40px;
	font-weight: 700;
	color: #fff;
}

.maker-archive__logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	max-width: 100%;
	height: 124px;
	margin-bottom: 20px;
	padding: 16px 32px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

/* 幅は縦横比から決めた倍率(--logo-scale)で揃える。 */
.maker-archive__logo img {
	display: block;
	width: calc(220px * var(--logo-scale, 1));
	max-width: 100%;
	max-height: 100%;
	height: auto;
	object-fit: contain;
}

@media screen and (max-width: 540px) {

	.maker-archive__logo {
		height: 104px;
		padding: 14px 24px;
	}

	.maker-archive__logo img {
		width: calc(176px * var(--logo-scale, 1));
	}
}

.maker-archive__title {
	margin: 0 0 16px;
	font-size: 32px;
	font-weight: 700;
	color: #0e1e46;
}

.maker-archive__reading {
	margin-left: 16px;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05em;
	color: #6b7280;
}

.maker-archive__alias {
	margin-left: 16px;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.05em;
	color: #6b7280;
}

.maker-archive__reading::before {
	content: "";
	display: inline-block;
	width: 24px;
	height: 1px;
	margin-right: 10px;
	background-color: #9aa5b8;
	vertical-align: middle;
}

@media screen and (max-width: 540px) {
	.maker-archive__alias {
		display: block;
		margin-top: 2px;
		margin-left: 0;
	}

	.maker-archive__reading {
		display: block;
		margin-top: 4px;
		margin-left: 0;
	}

	.maker-archive__reading::before {
		display: none;
	}
}

.maker-archive__intro {
	margin-top: 64px;
	padding: 40px;
	border-radius: 24px 4px 24px 4px;
	background-color: #f3faff;
}

.maker-archive__group .product-detail__section-title {
	align-items: center;
}

.maker-archive__group .product-detail__section-title::before {
	margin-top: 0;
}

.use-case-products .product-detail__section-title {
	align-items: center;
}

.use-case-products__heading {
	min-width: 0;
}

.use-case-products__heading .maker-archive__badge {
	margin-left: 12px;
	white-space: nowrap;
}

.use-case-products .product-detail__section-title::before {
	margin-top: 0;
}

.maker-archive__badge {
	display: inline-block;
	margin-left: 4px;
	padding: 3px 12px;
	border-radius: 999px;
	background-color: #0e1e46;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
	vertical-align: middle;
}

.maker-archive__group {
	margin-top: 32px;
	padding: 40px;
}

@media screen and (min-width: 1025px) {
	.maker-archive__group .product-detail__related-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.maker-archive__group .product-detail__related-card,
.use-case-products .product-detail__related-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 20px;
	border: 1px solid #d7deee;
	border-radius: 16px 4px 16px 4px;
	background-color: #fff;
	box-shadow: 0 2px 10px rgb(14 30 70 / 5%);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.maker-archive__group .product-detail__related-card:hover,
.use-case-products .product-detail__related-card:hover {
	border-color: #3eafff;
	box-shadow: 0 12px 24px rgb(14 30 70 / 12%);
	transform: translateY(-4px);
}

.maker-archive__group .product-detail__related-thumb,
.use-case-products .product-detail__related-thumb {
	aspect-ratio: 4 / 3;
	margin-bottom: 20px;
}

.maker-archive__group .product-detail__related-thumb img,
.use-case-products .product-detail__related-thumb img {
	height: 100%;
	transition: transform 0.3s ease;
}

.maker-archive__group .product-detail__related-card:hover .product-detail__related-thumb img,
.use-case-products .product-detail__related-card:hover .product-detail__related-thumb img {
	transform: scale(1.05);
}

.maker-archive__group .product-detail__related-title,
.use-case-products .product-detail__related-title {
	font-size: 16px;
}

.maker-archive__group .product-detail__related-desc {
	display: -webkit-box;
	overflow: hidden;
	margin-bottom: 16px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.use-case-products .product-detail__related-desc {
	margin-bottom: 16px;
}

.use-case-products .product-detail__related-subtitle {
	align-self: flex-start;
	margin: 4px 0 10px;
	padding: 3px 12px;
	border-radius: 999px;
	background-color: #6b7385;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #fff;
}

.maker-archive__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid #eef1f7;
	font-size: 13px;
	font-weight: 700;
	color: #0e1e46;
	transition: gap 0.2s ease, color 0.2s ease;
}

.maker-archive__group .product-detail__related-card:hover .maker-archive__link,
.use-case-products .product-detail__related-card:hover .maker-archive__link {
	gap: 8px;
	color: #1991e6;
}

.maker-archive__card--pending {
	opacity: 0.7;
}

.maker-archive__pending {
	display: inline-block;
	margin-top: 8px;
	padding: 3px 12px;
	border-radius: 999px;
	background-color: #f1f3f8;
	font-size: 12px;
	font-weight: 700;
	color: #6b7280;
}

.maker-archive__switcher {
	padding: 64px 0 100px;
}

.maker-archive__switcher .lic__pill.is-active {
	background-color: #0e1e46;
	border-color: #0e1e46;
	color: #fff;
}

@media screen and (max-width: 540px) {
	.maker-archive__intro {
		margin-top: 48px;
		padding: 28px 24px;
	}

	.maker-archive__group {
		margin-top: 24px;
		padding: 28px 20px;
	}
}

/* 用途別ページ (page-use-case.php) */
.use-case-lead {
	padding: 60px 0 0;
}

.use-case-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.use-case-tags__item {
	display: inline-block;
	padding: 8px 14px;
	border-radius: 999px;
	background-color: #eef4fc;
	font-size: 13px;
	font-weight: 700;
	color: #1991e6;
}

.use-case-info {
	padding: 100px 0 0;
}

.use-case-info__eyebrow {
	display: inline-block;
	margin: 0 0 24px;
	padding: 7px 18px;
	border-radius: 999px;
	background-color: #0e1e46;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.15em;
	color: #fff;
}

.use-case-info__heading {
	position: relative;
	margin: 0 0 28px;
	padding-bottom: 24px;
	font-size: 28px;
	font-weight: 900;
	line-height: 1.4;
	color: #0e1e46;
}

.use-case-info__heading::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 56px;
	height: 4px;
	border-radius: 2px;
	background: linear-gradient(135deg, #1991e6, #3eafff);
}

.use-case-info__body {
	margin: 0;
	font-size: 14px;
	line-height: 2;
	color: #444444;
}

.use-case-info__diagram {
	margin-top: 40px;
	padding: 40px;
	border-radius: 24px 4px 24px 4px;
	background-color: #f5f5f7;
}

.use-case-info__diagram-title {
	margin: 0 0 24px;
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.use-case-info__step-image {
	margin-top: 16px;
	padding: 12px;
	border-radius: 12px;
	background-color: #fff;
}

.use-case-info__step-image img {
	display: block;
	width: 100%;
	height: auto;
}

.use-case-info__note {
	margin: 24px 0 0;
}

.use-case-info__citations {
	margin-top: 8px;
}

.use-case-info__citations .lic__note {
	margin-bottom: 4px;
}

.use-case-products {
	padding: 100px 0 0;
}

.use-case-switcher {
	padding: 64px 0 100px;
}

.use-case-switcher .lic__pill.is-active {
	background-color: #0e1e46;
	border-color: #0e1e46;
	color: #fff;
}

.use-case-switcher .lic__pill[aria-disabled="true"] {
	color: #b7c3dc;
	cursor: default;
}

.use-case-lead__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 48px;
	align-items: center;
}

.use-case-lead__grid--no-media {
	display: block;
}

.use-case-lead__media {
	padding: 24px;
	border-radius: 16px;
	background-color: #f5f5f7;
	text-align: center;
}

.use-case-lead__media img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

@media screen and (max-width: 900px) {
	.use-case-lead__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

.use-case-films {
	padding: 100px 0 0;
}

.use-case-films__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.use-case-films__card {
	display: flex;
	flex-direction: column;
	padding: 20px;
	border: 1px solid #d7deee;
	border-radius: 16px 4px 16px 4px;
	background-color: #fff;
}

.use-case-films__thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 17 / 12;
	margin-bottom: 16px;
	border-radius: 10px;
	background-color: #f5f5f7;
	overflow: hidden;
}

.use-case-films__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.use-case-films__title {
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 700;
	color: #0e1e46;
}

.use-case-films__list {
	margin: 0;
	padding-left: 18px;
	font-size: 13px;
	line-height: 1.9;
	color: #444444;
}

.use-case-films__list li + li {
	margin-top: 2px;
}

@media screen and (max-width: 1024px) {
	.use-case-films__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media screen and (max-width: 540px) {
	.use-case-info__heading {
		font-size: 22px;
	}

	.use-case-info__diagram {
		padding: 24px;
		border-radius: 16px 4px 16px 4px;
	}

	.use-case-films__grid {
		grid-template-columns: 1fr;
	}
}

/* 会社概要ページ (page-company.php) */
html {
	scroll-behavior: smooth;
}

.company-head {
	padding: 48px 0 0;
}

.company-anchor {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 36px;
	margin: 20px 0 0;
	padding: 0 0 20px;
	border-bottom: 1px solid #d7deee;
	list-style: none;
}

.company-anchor__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: #0e1e46;
	text-decoration: none;
}

.company-anchor__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border: 1.5px solid #1991e6;
	border-radius: 50%;
	color: #1991e6;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.company-anchor__link:hover {
	color: #1991e6;
}

.company-anchor__link:hover .company-anchor__icon {
	background-color: #1991e6;
	color: #fff;
	transform: translateY(2px);
}

.company-section {
	padding: 80px 0 0;
	scroll-margin-top: 110px;
}

.company-overview {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px;
	align-items: start;
}

.company-table {
	width: 100%;
	border-collapse: collapse;
}

.company-table th,
.company-table td {
	padding: 16px 12px;
	border-bottom: 1px solid #e5e9f2;
	font-size: 15px;
	line-height: 1.8;
	text-align: left;
	vertical-align: top;
}

.company-table th {
	width: 140px;
	font-weight: 700;
	white-space: nowrap;
	color: #0e1e46;
}

.company-table td {
	color: #444444;
}

.company-overview__photo {
	margin: 0;
}

.company-overview__photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px 4px 16px 4px;
}

.company-overview__photo figcaption {
	margin-top: 8px;
	font-size: 12px;
	color: #6b7280;
}

.company-subtitle {
	margin: 56px 0 16px;
	font-size: 18px;
	font-weight: 700;
	color: #0e1e46;
}

.company-branches {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.company-branches__item {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	overflow: hidden;
	padding: 24px 20px 20px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

.company-branches__item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, #1991e6, #3eafff);
}

.company-branches__en {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.18em;
	color: #1991e6;
}

.company-branches__name {
	font-size: 18px;
	font-weight: 800;
	color: #0e1e46;
}

.company-branches__item--main {
	grid-column: 1 / -1;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 20px;
	padding: 32px 36px;
	border-color: #0e1e46;
	background-color: #0e1e46;
	border-radius: 20px 4px 20px 4px;
}

.company-branches__item--main::before {
	height: 5px;
}

.company-branches__item--main .company-branches__en {
	color: #3eafff;
}

.company-branches__item--main .company-branches__name {
	font-size: 26px;
	color: #fff;
}

.company-philosophy {
	width: 100vw;
	margin: 80px 0 0 calc(50% - 50vw);
	background-color: #f3faff;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	scroll-margin-top: 110px;
}

.company-philosophy__inner {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	align-items: start;
	max-width: 1400px;
	margin: 0 auto;
	padding: 110px 100px;
}

.company-philosophy__body {
	padding: 8px 0 8px 72px;
	border-left: 1px solid #c3d3ee;
}

.company-philosophy__label {
	margin: 0 0 28px;
	font-size: 15px;
	letter-spacing: 0.28em;
	color: #6b7a99;
}

.company-philosophy__main {
	margin: 0;
	font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "Shippori Mincho", serif;
	font-size: clamp(28px, 3.4vw, 52px);
	font-weight: 600;
	line-height: 1.55;
	color: #0e1e46;
}

.company-philosophy__en {
	margin: 36px 0 0;
	font-size: clamp(13px, 1.4vw, 19px);
	font-weight: 500;
	letter-spacing: 0.12em;
	color: #1991e6;
}

.company-timeline {
	position: relative;
	max-width: 760px;
	margin: 0;
	padding: 0 0 0 36px;
	list-style: none;
}

.company-timeline::before {
	content: "";
	position: absolute;
	top: 6px;
	bottom: 6px;
	left: 7px;
	width: 2px;
	background-color: #d7deee;
}

.company-timeline__item {
	position: relative;
	padding-bottom: 28px;
}

.company-timeline__item:last-child {
	padding-bottom: 0;
}

.company-timeline__item::before {
	content: "";
	position: absolute;
	top: 5px;
	left: -36px;
	width: 16px;
	height: 16px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: linear-gradient(135deg, #1991e6, #3eafff);
	box-shadow: 0 0 0 1px #d7deee;
}

.company-timeline__year {
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
	font-weight: 800;
	color: #1991e6;
}

.company-timeline__text {
	display: block;
	font-size: 15px;
	line-height: 1.8;
	color: #333333;
}

.company-clients {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.company-clients__item {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100px;
	padding: 16px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

.company-clients__item a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.company-clients__item img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

@media screen and (max-width: 1024px) {
	.company-branches {
		grid-template-columns: repeat(2, 1fr);
	}

	.company-clients {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media screen and (max-width: 900px) {
	.company-philosophy__inner {
		grid-template-columns: 1fr;
		gap: 40px;
		padding: 72px 28px;
	}

	.company-philosophy__body {
		padding: 0;
		border-left: 0;
	}

	.company-philosophy__label {
		margin-bottom: 20px;
	}

	.company-philosophy__main {
		font-size: clamp(20px, 6.2vw, 34px);
	}

	.company-philosophy__en {
		margin-top: 28px;
		letter-spacing: 0.06em;
	}
}

@media screen and (max-width: 900px) {
	.company-overview {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

@media screen and (max-width: 540px) {
	.company-section {
		padding-top: 64px;
	}

	.company-table th {
		width: auto;
		padding-right: 20px;
	}

	.company-branches__item--main {
		padding: 24px 22px;
	}

	.company-branches__name,
	.company-branches__item--main .company-branches__name {
		font-size: 14px;
	}

	.company-clients {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==========================================================================
   採用情報ページ(page-careers.php)
   ========================================================================== */

.careers-intro {
	width: 100vw;
	margin: 60px 0 0 calc(50% - 50vw);
	background-color: #f3faff;
	background-image: url("assets/images/pages/company/philosophy-bg.jpg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.careers-intro__inner {
	max-width: 1400px;
	margin: 0 auto;
	padding: 60px 100px;
}

.careers-intro__eyebrow {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.2em;
	color: #1991e6;
}

.careers-intro__title {
	margin: 0 0 20px;
	font-size: 36px;
	font-weight: 900;
	line-height: 1.5;
	color: #0e1e46;
}

.careers-intro__lead {
	max-width: 940px;
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.9;
	color: #4b5563;
}

.careers-photo {
	margin: 40px 0 0;
}

.careers-photo img {
	display: block;
	width: 100%;
	height: 300px;
	object-fit: cover;
	/* 人物の顔が帯の中に入るよう、上寄りで切り抜く。 */
	object-position: center 18%;
	border-radius: 16px 4px 16px 4px;
}

.careers-points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
}

.careers-points__item {
	padding: 36px 28px 32px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
	text-align: center;
}

.careers-points__icon {
	display: block;
	width: 80px;
	height: 80px;
	margin: 0 auto 20px;
}

.careers-points__title {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 800;
	color: #0e1e46;
}

.careers-points__text {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.8;
	color: #4b5563;
}

.careers-jobs {
	padding: 80px 0 0;
}

.careers-jobs__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.careers-job {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 28px 32px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

.careers-job__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 80px;
	padding: 4px 12px;
	border-radius: 32px;
	background-color: #1991e6;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.careers-job__title {
	margin: 12px 0 6px;
	font-size: 18px;
	font-weight: 800;
	color: #0e1e46;
}

.careers-job__meta {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: #6b7280;
}

.careers-job__link {
	flex-shrink: 0;
	width: 180px;
}

@media screen and (max-width: 1024px) {
	.careers-intro__inner {
		padding: 56px 24px;
	}

	.careers-points {
		gap: 16px;
	}

	.careers-points__item {
		padding: 28px 18px 24px;
	}
}

@media screen and (max-width: 900px) {
	.careers-points {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 540px) {
	.careers-intro {
		margin-top: 40px;
	}

	.careers-intro__inner {
		padding: 44px 20px;
	}

	.careers-intro__title {
		font-size: 26px;
	}

	.careers-intro__lead {
		font-size: 14px;
	}

	.careers-photo img {
		height: 180px;
	}

	.careers-jobs {
		padding-top: 64px;
	}

	.careers-job {
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
		padding: 24px 20px;
	}

	.careers-job__title {
		font-size: 16px;
	}

	.careers-job__link {
		width: 100%;
	}
}

/* ==========================================================================
   お問い合わせページ(page-contact.php)
   ========================================================================== */

.contact-main {
	max-width: 880px;
	margin: 0 auto;
	padding: 60px 0 0;
}

.contact-lead {
	margin: 0 0 32px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.9;
	color: #0e1e46;
}

.contact-notice {
	padding: 24px 28px;
	border-radius: 12px 4px 12px 4px;
	background-color: #f0f6ff;
}

.contact-notice p {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 2;
	color: #0e1e46;
}

.contact-notice__caution {
	margin-top: 4px !important;
	font-size: 12px !important;
	line-height: 1.8 !important;
	color: #c62828 !important;
}

.contact-required-note {
	margin: 24px 0 8px;
	font-size: 12px;
	text-align: right;
	color: #6b7280;
}

.contact-req {
	margin-left: 4px;
	color: #e0245e;
	font-weight: 800;
}

.contact-opt {
	margin-left: 8px;
	font-size: 11px;
	font-weight: 600;
	color: #9ca3af;
}

.contact-form {
	padding: 8px 40px 48px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

.contact-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.contact-step {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 40px 0 24px;
	padding-bottom: 12px;
	border-bottom: 2px solid #0e1e46;
}

.contact-step:first-of-type {
	margin-top: 32px;
}

.contact-step__num {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: #0e1e46;
	color: #fff;
	font-size: 14px;
	font-weight: 800;
}

.contact-step__title {
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	color: #0e1e46;
}

.contact-field {
	margin: 0 0 20px;
	min-width: 0;
}

.contact-fieldset {
	padding: 0;
	border: 0;
}

.contact-label {
	display: block;
	margin: 0 0 6px;
	padding: 0;
	font-size: 13px;
	font-weight: 700;
	color: #0e1e46;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1px solid #c9d2e6;
	border-radius: 4px;
	background-color: #fff;
	color: #0e1e46;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
}

.contact-form select {
	height: 49px;
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%230e1e46' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 18px center;
	background-repeat: no-repeat;
	background-size: 12px 8px;
	appearance: none;
}

.contact-form textarea {
	resize: vertical;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: #a3acc2;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
	border-color: #1991e6;
	outline: 2px solid rgb(25 145 230 / 20%);
	outline-offset: 0;
}

.contact-row {
	display: grid;
	gap: 0 20px;
}

.contact-row--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-row--zip {
	grid-template-columns: 200px minmax(0, 1fr) auto;
	align-items: end;
}

.contact-field--btn {
	display: flex;
	align-items: flex-end;
}

.contact-zip-btn {
	height: 49px;
	padding: 0 20px;
	border: 1px solid #0e1e46;
	border-radius: 4px;
	background-color: #fff;
	color: #0e1e46;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
}

.contact-zip-btn:hover,
.contact-zip-btn:focus {
	background-color: #0e1e46;
	color: #fff;
}

.contact-zip-btn:disabled {
	opacity: 0.6;
	cursor: wait;
}

.contact-zip-msg {
	min-height: 0;
	margin: -8px 0 12px;
	font-size: 12px;
	font-weight: 600;
	color: #1991e6;
}

.contact-zip-msg:empty {
	margin: 0;
}

.contact-zip-msg.is-error {
	color: #c62828;
}

.contact-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
}

.contact-choice {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid #c9d2e6;
	border-radius: 32px;
	background-color: #fff;
	color: #0e1e46;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.contact-choice:hover {
	border-color: #1991e6;
}

.contact-choice input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: #1991e6;
}

.contact-choice:has(input:checked) {
	border-color: #1991e6;
	background-color: #f0f8ff;
}

.contact-agree {
	margin: 32px 0 28px;
	padding: 20px 24px;
	border-radius: 8px;
	background-color: #f3f5fa;
}

.contact-agree p {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: #0e1e46;
}

.contact-agree a {
	color: #1991e6;
	text-decoration: underline;
}

.contact-agree__check {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	font-size: 14px;
	font-weight: 700;
	color: #0e1e46;
	cursor: pointer;
}

.contact-agree__check input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: #1991e6;
}

.contact-submit {
	text-align: center;
}

.contact-submit__btn,
input[type="submit"].contact-submit__btn {
	width: auto;
	min-width: 320px;
	max-width: 100%;
	height: auto;
	min-height: 56px;
	padding: 14px 32px;
	border: 0;
	border-radius: 4px;
	background: #0e1e46;
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: 0.08em;
	white-space: normal;
	cursor: pointer;
}

input[type="submit"].contact-submit__btn:hover,
input[type="submit"].contact-submit__btn:focus {
	background: #1891e6;
	color: #fff;
}

.contact-submit__btn:disabled {
	opacity: 0.6;
	cursor: wait;
}

.contact-complete {
	padding: 56px 32px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
	text-align: center;
}

.contact-complete__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: linear-gradient(135deg, #1991e6, #3eafff);
	color: #fff;
}

.contact-complete__title {
	margin: 20px 0 16px;
	font-size: 24px;
	font-weight: 800;
	color: #0e1e46;
}

.contact-complete__text,
.contact-complete__note {
	max-width: 560px;
	margin: 0 auto 12px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.9;
	color: #4b5563;
}

.contact-complete__note {
	margin-bottom: 28px;
	font-size: 13px;
	color: #6b7280;
}

.contact-places {
	margin-top: 80px;
	padding-top: 48px;
	border-top: 2px solid #0e1e46;
}

.contact-places__title {
	margin: 0 0 8px;
	font-size: 22px;
	font-weight: 800;
	color: #0e1e46;
}

.contact-places__lead {
	margin: 0 0 24px;
	font-size: 14px;
	font-weight: 600;
	color: #6b7280;
}

.contact-places__sub {
	margin: 40px 0 16px;
	font-size: 16px;
	font-weight: 800;
	color: #0e1e46;
}

.contact-desks {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.contact-branches {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.contact-place {
	padding: 20px 20px 18px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

.contact-place--desk {
	border: 2px solid #0e1e46;
	background-color: #f0f6ff;
}

.contact-place__name {
	margin: 0 0 8px;
	padding-bottom: 8px;
	border-bottom: 1px solid #d7deee;
	font-size: 15px;
	font-weight: 800;
	color: #0e1e46;
}

.contact-place__role {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.7;
	color: #b35c00;
}

.contact-place__tag {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 600;
	color: #9ca3af;
}

.contact-place__lines {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.9;
	color: #4b5563;
}

.contact-place__nw {
	white-space: nowrap;
}

.contact-place__mail {
	color: #1991e6;
	word-break: break-all;
}

.contact-place__notice {
	margin: 12px 0 0;
	padding-top: 12px;
	border-top: 1px solid #d7deee;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.8;
	color: #b35c00;
}

@media screen and (max-width: 1024px) {
	.contact-branches {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 900px) {
	.contact-desks {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 640px) {
	.contact-main {
		padding-top: 40px;
	}

	.contact-lead {
		font-size: 14px;
	}

	.contact-form {
		padding: 4px 20px 36px;
	}

	.contact-row--2 {
		grid-template-columns: 1fr;
	}

	.contact-row--zip {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.contact-row--zip .contact-field:nth-child(2) {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.contact-complete {
		padding: 40px 20px;
	}

	.contact-places {
		margin-top: 56px;
		padding-top: 36px;
	}

	.contact-places__title {
		font-size: 18px;
	}
}

@media screen and (max-width: 540px) {
	.contact-branches {
		grid-template-columns: 1fr;
	}
}

/* Contact Form 7(お問い合わせフォーム)の出力に合わせた調整 */
.contact-form .wpcf7-form-control-wrap {
	display: block;
}

.contact-form .wpcf7-list-item {
	display: inline-block;
	margin: 0;
}

.contact-form .wpcf7-list-item > label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid #c9d2e6;
	border-radius: 32px;
	background-color: #fff;
	color: #0e1e46;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.contact-form .wpcf7-list-item > label:hover {
	border-color: #1991e6;
}

.contact-form .wpcf7-list-item > label:has(input:checked) {
	border-color: #1991e6;
	background-color: #f0f8ff;
}

.contact-form .wpcf7-list-item input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: #1991e6;
}

.contact-form .contact-agree .wpcf7-list-item > label {
	display: flex;
	padding: 0;
	margin-top: 12px;
	border: 0;
	border-radius: 0;
	background: none;
	font-size: 14px;
	font-weight: 700;
}

.contact-form .contact-agree .wpcf7-list-item input {
	width: 18px;
	height: 18px;
}

.contact-form .wpcf7-not-valid {
	border-color: #e0245e !important;
	background-color: #fff8fa !important;
}

.contact-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	font-weight: 700;
	color: #c62828;
}

.contact-form .wpcf7-response-output {
	margin: 28px 0 0;
	padding: 16px 20px;
	border: 1px solid #f0b4b4;
	border-radius: 8px;
	background-color: #fff5f5;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.8;
	color: #c62828;
	text-align: center;
}

.contact-form .wpcf7-form.sent .wpcf7-response-output {
	border-color: #b6e0c8;
	background-color: #f2fbf6;
	color: #1f7a4a;
}

.contact-form .wpcf7-form:not(.invalid):not(.failed):not(.spam):not(.unaccepted):not(.sent) .wpcf7-response-output {
	display: none;
}

.contact-form .wpcf7-spinner {
	display: block;
	margin: 12px auto 0;
}

.contact-form .wpcf7-submit {
	appearance: none;
}

.contact-unavailable {
	margin: 0;
	padding: 32px 0;
	font-size: 14px;
	font-weight: 600;
	color: #6b7280;
	text-align: center;
}

.contact-form .screen-reader-response {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
}

.contact-form .hidden-fields-container {
	display: none;
}

.contact-form .wpcf7-radio,
.contact-form .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 14px;
}

/* ==========================================================================
   カタログダウンロードページ(page-catalog.php)
   ========================================================================== */

.catalog-main {
	max-width: 960px;
}

.catalog-nav__title {
	margin: 36px 0 14px;
	font-size: 16px;
	font-weight: 800;
	color: #0e1e46;
}

.catalog-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.catalog-nav__link {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border: 1px solid #c9d2e6;
	border-radius: 32px;
	background-color: #fff;
	color: #0e1e46;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.catalog-nav__link:hover,
.catalog-nav__link:focus {
	border-color: #0e1e46;
	background-color: #0e1e46;
	color: #fff;
}

html {
	scroll-padding-top: 110px;
}

.catalog-selection__note {
	margin: 0 0 20px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.8;
	color: #4b5563;
}

.catalog-selection__count {
	font-weight: 800;
	color: #1991e6;
}

.catalog-select {
	display: block;
}

.catalog-group {
	width: 100%;
	margin: 0 0 28px;
}

.catalog-group__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 10px;
	padding-bottom: 8px;
	border-bottom: 1px solid #d7deee;
}

.catalog-group__maker {
	position: relative;
	margin: 0;
	padding-left: 16px;
	font-size: 17px;
	font-weight: 800;
	color: #0e1e46;
}

.catalog-group__maker::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #1991e6;
	transform: translateY(-50%);
}

.catalog-group__all {
	padding: 6px 14px;
	border: 1px solid #c9d2e6;
	border-radius: 32px;
	background-color: #fff;
	color: #0e1e46;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.catalog-group__all:hover,
.catalog-group__all:focus {
	border-color: #1991e6;
	color: #1991e6;
}

.catalog-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.catalog-item__label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	height: 100%;
	box-sizing: border-box;
	padding: 14px 16px;
	border: 1px solid #d7deee;
	border-radius: 8px 3px 8px 3px;
	background-color: #fff;
	cursor: pointer;
}

.catalog-item__label:hover {
	border-color: #1991e6;
}

.catalog-item__label:has(input:checked) {
	border-color: #1991e6;
	background-color: #f0f8ff;
}

.catalog-item__label input {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: #1991e6;
}

.catalog-item__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.catalog-item__name {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
	color: #0e1e46;
}

.catalog-item__meta {
	font-size: 12px;
	font-weight: 600;
	color: #6b7280;
}

.catalog-empty {
	margin: 0;
	padding: 24px 0;
	font-size: 14px;
	font-weight: 600;
	color: #6b7280;
	text-align: center;
}

@media screen and (max-width: 720px) {
	.catalog-list {
		grid-template-columns: 1fr;
	}

	.catalog-group__head {
		flex-wrap: wrap;
	}
}

.contact-form .catalog-select.wpcf7-not-valid {
	border: 0 !important;
	background: none !important;
}

/* .wpcf7-checkbox の flex 指定より優先して、カタログの選択欄は縦に積み、各メーカーを親の幅いっぱいにする */
.contact-form .catalog-select.wpcf7-checkbox {
	display: block;
}

/* ==========================================================================
   サイト内検索(ヘッダーの虫眼鏡・検索フォーム・検索結果ページ)
   ========================================================================== */

.site-search-form {
	display: flex;
	align-items: stretch;
	gap: 8px;
	margin: 0;
}

.site-search-form__input {
	flex: 1;
	min-width: 0;
	height: 46px;
	box-sizing: border-box;
	padding: 0 14px;
	border: 1px solid #c9d2e6;
	border-radius: 4px;
	background-color: #fff;
	color: #0e1e46;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
}

.site-search-form__input:focus {
	border-color: #1991e6;
	outline: 2px solid rgb(25 145 230 / 20%);
	outline-offset: 0;
}

.site-search-form__submit {
	flex-shrink: 0;
	height: 46px;
	padding: 0 22px;
	border: 0;
	border-radius: 4px;
	background-color: #0e1e46;
	color: #fff;
	font-family: inherit;
	font-size: 13.2px;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
}

.site-search-form__submit:hover,
.site-search-form__submit:focus {
	background-color: #1891e6;
}

/* ヘッダーの虫眼鏡(お問い合わせボタンの右)。ホバー/フォーカス/タップで検索窓が開く */
.header-search {
	position: relative;
	margin-left: 4px;
}

.header-search__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid #0e1e46;
	border-radius: 4px;
	background-color: #fff;
	color: #0e1e46;
	cursor: pointer;
}

.header-search:hover .header-search__toggle,
.header-search.is-open .header-search__toggle,
.header-search__toggle:focus-visible {
	background-color: #0e1e46;
	color: #fff;
}

.header-search__panel {
	position: absolute;
	top: 100%;
	right: 0;
	z-index: 20;
	display: none;
	width: 380px;
	padding-top: 12px;
}

.header-search__panel .site-search-form {
	padding: 14px;
	border-radius: 4px;
	background-color: #fff;
	box-shadow: 0 8px 24px rgb(0 0 0 / 16%);
}

.header-search:hover .header-search__panel,
.header-search:focus-within .header-search__panel,
.header-search.is-open .header-search__panel {
	display: block;
}

.mobile-menu-panel__search {
	margin-bottom: 4px;
}

/* 検索結果ページ */
.search-page {
	max-width: 880px;
	margin: 0 auto;
	padding: 60px 0 0;
}

.site-search-form--page .site-search-form__input,
.site-search-form--page .site-search-form__submit {
	height: 52px;
}

.search-results__count,
.search-results__note {
	margin: 28px 0 8px;
	font-size: 14px;
	font-weight: 600;
	color: #4b5563;
}

.search-results__count strong {
	color: #0e1e46;
}

.search-results__tips {
	margin: 0 0 28px;
	padding-left: 1.2em;
	font-size: 14px;
	font-weight: 600;
	line-height: 2;
	color: #4b5563;
}

.search-results__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.search-result {
	padding: 24px 0;
	border-bottom: 1px solid #e3e8f3;
}

.search-result:first-child {
	border-top: 1px solid #e3e8f3;
}

.search-result__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 80px;
	padding: 4px 12px;
	border-radius: 32px;
	background-color: #1991e6;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.search-result__title {
	margin: 10px 0 4px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.5;
}

.search-result__title a {
	color: #0e1e46;
	text-decoration: none;
}

.search-result__title a:hover,
.search-result__title a:focus {
	color: #1991e6;
	text-decoration: underline;
}

.search-result__path {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 600;
	color: #9ca3af;
}

.search-result__snippet {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.8;
	color: #4b5563;
}

.search-result__snippet mark {
	padding: 0 2px;
	border-radius: 2px;
	background-color: #fff3b0;
	color: inherit;
}

@media screen and (max-width: 540px) {
	.search-page {
		padding-top: 40px;
	}

	.site-search-form--page .site-search-form__submit {
		padding: 0 16px;
	}

	.search-result__title {
		font-size: 16px;
	}
}

/* 狭いPC幅(1025〜1319px)では、ヘッダーに全部が収まらないため、ボタンは文字なし(アイコンのみ)にして余白も詰める */
@media screen and (min-width: 1025px) and (max-width: 1319px) {
	#site-navigation.main-navigation ul#primary-menu a {
		padding: 10px 8px;
		font-size: 12.5px;
	}

	.site-header__right {
		gap: 8px;
	}

	.header-actions .btn {
		width: 46px;
		padding: 0;
	}

	.header-actions .btn span {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
		white-space: nowrap;
	}
}

.search-page .archive-pagination {
	margin-top: 40px;
}

/* ==========================================================================
   サイトマップページ(page-sitemap.php)
   ========================================================================== */

.sitemap {
	padding: 60px 0 0;
}

.sitemap__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 48px;
}

.sitemap__section {
	margin-bottom: 40px;
}

.sitemap__heading {
	margin: 0 0 16px;
	padding-bottom: 10px;
	border-bottom: 2px solid #0e1e46;
	font-size: 18px;
	font-weight: 800;
	color: #0e1e46;
}

.sitemap__group-label {
	margin: 24px 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: #9ca3af;
}

.sitemap__group-label:first-of-type {
	margin-top: 0;
}

.sitemap__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sitemap__list li {
	border-bottom: 1px solid #eef1f8;
}

.sitemap__list a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 2px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.6;
	color: #0e1e46;
	text-decoration: none;
}

.sitemap__list a::before {
	content: "";
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	border-top: 2px solid #1991e6;
	border-right: 2px solid #1991e6;
	transform: rotate(45deg);
}

.sitemap__list a:hover,
.sitemap__list a:focus {
	color: #1991e6;
}

@media screen and (max-width: 900px) {
	.sitemap__grid {
		grid-template-columns: 1fr;
	}

	.sitemap__section {
		margin-bottom: 32px;
	}
}

@media screen and (max-width: 540px) {
	.sitemap {
		padding-top: 40px;
	}
}

/* ==========================================================================
   マシンユーザートレーニングページ(page-training.php)
   ========================================================================== */

.training-intro {
	padding: 60px 0 0;
}

.training-intro__eyebrow {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.2em;
	color: #1991e6;
}

.training-intro__lead {
	max-width: 880px;
	margin: 0 0 40px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.9;
	color: #0e1e46;
}

.training-intro__row {
	display: flex;
	align-items: center;
	gap: 48px;
}

.training-intro__text {
	flex: 1;
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 2.1;
	color: #374151;
}

.training-intro__photo {
	flex: 0 0 45%;
	margin: 0;
}

.training-intro__photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px 4px 16px 4px;
}

.training-points {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-top: 72px;
}

.training-card {
	position: relative;
	overflow: hidden;
	padding: 36px 36px 32px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

.training-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, #1991e6, #3eafff);
}

.training-card__title {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 800;
	color: #0e1e46;
}

.training-card__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.training-card__list li {
	position: relative;
	padding: 10px 0 10px 28px;
	border-bottom: 1px dashed #d7deee;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.7;
	color: #374151;
}

.training-card__list li:last-child {
	border-bottom: 0;
}

.training-card__list li::before {
	content: "";
	position: absolute;
	top: 16px;
	left: 4px;
	width: 10px;
	height: 6px;
	border-bottom: 2px solid #1991e6;
	border-left: 2px solid #1991e6;
	transform: rotate(-45deg);
}

.training-section {
	padding: 80px 0 0;
}

.training-contents {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.training-contents__item {
	padding: 32px 16px 28px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
	text-align: center;
}

.training-contents__icon {
	display: block;
	width: 72px;
	height: 72px;
	margin: 0 auto 16px;
}

.training-contents__label {
	margin: 0;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.6;
	color: #0e1e46;
}

.training-lang {
	padding: 32px 36px;
	border-radius: 12px 4px 12px 4px;
	background-color: #f0f6ff;
}

.training-lang__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}

.training-lang__chips li {
	padding: 6px 18px;
	border-radius: 32px;
	background-color: #1991e6;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
}

.training-lang__text {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 2;
	color: #374151;
}

.training-lang__text strong {
	color: #0e1e46;
}

.training-faq .faq__list {
	width: 100%;
}

.training-cta {
	margin-top: 80px;
}

@media screen and (max-width: 1024px) {
	.training-intro__row {
		gap: 32px;
	}

	.training-contents {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 900px) {
	.training-intro__row {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.training-intro__photo {
		flex: none;
	}

	.training-points {
		grid-template-columns: 1fr;
		margin-top: 56px;
	}
}

@media screen and (max-width: 540px) {
	.training-intro {
		padding-top: 40px;
	}

	.training-intro__lead {
		font-size: 16px;
	}

	.training-card {
		padding: 28px 22px 24px;
	}

	.training-section {
		padding-top: 64px;
	}

	.training-contents {
		gap: 12px;
	}

	.training-contents__item {
		padding: 24px 10px 20px;
	}

	.training-contents__label {
		font-size: 13px;
	}

	.training-lang {
		padding: 24px 20px;
	}

	.training-cta {
		margin-top: 64px;
	}
}

/* ==========================================================================
   404ページ(404.php)
   ========================================================================== */

.error-page {
	max-width: 760px;
	margin: 0 auto;
	padding: 72px 0 0;
	text-align: center;
}

.error-page__lead {
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.8;
	color: #0e1e46;
}

.error-page__text {
	margin: 0 0 36px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.9;
	color: #4b5563;
}

.error-page__search {
	margin: 0 0 32px;
	text-align: left;
}

.error-page__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 12px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}

.error-page__links a {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	border: 1px solid #c9d2e6;
	border-radius: 32px;
	background-color: #fff;
	color: #0e1e46;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.error-page__links a:hover,
.error-page__links a:focus {
	border-color: #0e1e46;
	background-color: #0e1e46;
	color: #fff;
}

.error-page__home {
	min-width: 240px;
}

@media screen and (max-width: 540px) {
	.error-page {
		padding-top: 48px;
	}

	.error-page__lead {
		font-size: 16px;
		text-align: left;
	}

	.error-page__text {
		text-align: left;
	}

	.error-page__home {
		width: 100%;
	}
}

/* ==========================================================================
   アフターサポートページ(page-aftersales.php)
   見出し・カード・拠点・FAQ・CTA は、トレーニング/お問い合わせページの部品を共用する。
   ========================================================================== */

.aftersales-text {
	max-width: 880px;
	margin: 0 0 32px;
	font-size: 15px;
	font-weight: 600;
	line-height: 2;
	color: #374151;
}

.aftersales-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: 48px;
}

.aftersales-row__body .aftersales-text {
	margin-bottom: 24px;
}

.aftersales-row__media {
	margin: 0;
}

.aftersales-row__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px 4px 16px 4px;
}

.aftersales-video {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: 16px 4px 16px 4px;
	background-color: #0e1e46;
}

.aftersales-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.aftersales-points {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.aftersales-points li {
	position: relative;
	padding: 6px 0 6px 20px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.8;
	color: #374151;
}

.aftersales-points li::before {
	content: "";
	position: absolute;
	top: 17px;
	left: 2px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #1991e6;
}

.aftersales-desk {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: 32px;
}

.aftersales-map {
	margin: 0;
	text-align: center;
}

.aftersales-map img {
	display: inline-block;
	width: 100%;
	max-width: 415px;
	height: auto;
}

@media screen and (max-width: 1024px) {
	.aftersales-row {
		gap: 32px;
	}
}

@media screen and (max-width: 900px) {
	.aftersales-row,
	.aftersales-desk {
		grid-template-columns: 1fr;
	}

	.aftersales-row__media {
		order: -1;
	}
}

/* LICページ: 「対応内容」「このような課題に」などの一覧(WF11)。最初から開いた状態で、2列の箇条書きで表示する。 */
.lic__accordion-panel.is-open {
	border-top: 1px solid #d7deee;
}

.lic__bullet-list {
	columns: 2;
	column-gap: 48px;
	margin: 0;
	padding: 20px 28px 20px 44px;
	list-style: disc;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.8;
	color: #374151;
}

.lic__bullet-list li {
	padding: 3px 0;
	break-inside: avoid;
}

.lic__bullet-list li::marker {
	color: #1991e6;
}

@media screen and (max-width: 768px) {
	.lic__bullet-list {
		columns: 1;
		padding: 16px 20px 16px 36px;
	}
}

/* LICページ: 枠の外に置く箇条書き(比較セクション・専門家紹介・世界の知見)。 */
.lic__bullet-list--plain {
	margin: 0 0 20px;
	padding: 0 0 0 22px;
}

.lic__bullet-list--plain:last-child {
	margin-bottom: 0;
}

.lic__expert .lic__bullet-list--plain {
	columns: 1;
}

@media screen and (max-width: 768px) {
	.lic__bullet-list--plain {
		padding: 0 0 0 20px;
	}
}

/* ==========================================================================
   製品情報ページ(archive-product.php / ワイヤーフレーム04)
   見出し・導入文は他の下層ページ、関連製品の開閉はTOPページ製品一覧の部品を共用する。
   ========================================================================== */

.products-top__search {
	max-width: 720px;
	margin: 0 0 40px;
}

.products-top__routes {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.products-top__route {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	box-sizing: border-box;
	padding: 28px 16px 24px;
	border-radius: 16px 4px 16px 4px;
	background-color: #0e1e46;
	color: #fff;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.products-top__route:hover,
.products-top__route:focus {
	background-color: #1891e6;
	color: #fff;
	transform: translateY(-2px);
}

/* MULTIVAC公式アイコン(濃紺の線画)を、濃紺の地の上では白で表示する(CI: 濃紺と白のみ)。 */
.products-top__route-icon {
	display: block;
	width: 48px;
	height: 48px;
	margin-bottom: 14px;
	object-fit: contain;
	filter: brightness(0) invert(1);
}

.products-top__route-label {
	font-size: 16px;
	font-weight: 800;
	line-height: 1.5;
}

.products-top__route-sub {
	margin-top: 6px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.6;
	opacity: 0.85;
}

.products-top__section {
	scroll-margin-top: 120px;
}

.products-top__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: 24px;
}

.products-top__card {
	overflow: hidden;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
	scroll-margin-top: 120px;
}

.products-top__card-image {
	aspect-ratio: 16 / 7;
	overflow: hidden;
	background-color: #eef2f9;
}

.products-top__card-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.products-top__card-body {
	padding: 24px 24px 22px;
}

.products-top__card-title {
	margin: 0 0 10px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.5;
	color: #0e1e46;
}

.products-top__card-title a {
	color: inherit;
	text-decoration: none;
}

.products-top__card-title a:hover {
	color: #1891e6;
}

.products-top__card--media .products-top__card-title a::after {
	content: " ›";
	color: #1991e6;
}

.products-top__card-desc {
	margin: 0 0 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.9;
	color: #4b5563;
}

/* 「関連製品を見る」: TOPページ製品一覧の開閉を、カード内に収まる大きさにする。 */
.products-top__acc .product-category__toggle {
	padding: 12px 16px;
	border-radius: 10px 4px 10px 4px;
}

.products-top__acc .product-category__toggle[aria-expanded="true"] {
	border-radius: 10px 4px 0 0;
}

.products-top__acc .product-category__number {
	width: 34px;
	height: 28px;
	border-radius: 6px 3px 6px 3px;
	font-size: 15px;
}

.products-top__acc .product-category__title {
	margin-left: 12px;
	font-size: 15px;
}

.products-top__acc .product-category__panel.is-open {
	border-radius: 0 0 10px 0;
}

.products-top__links {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	padding: 4px 12px 12px;
}

.products-top__links .product-category__link {
	padding: 11px 14px;
	font-size: 14px;
	line-height: 1.5;
}

.products-top__link--soon {
	justify-content: space-between;
	background-color: #e8ecf5;
	color: #6b7280;
	cursor: default;
}

.products-top__link--soon:hover {
	background-color: #e8ecf5;
	color: #6b7280;
}

.products-top__soon {
	flex-shrink: 0;
	padding: 2px 8px;
	border-radius: 999px;
	background-color: #fff;
	font-size: 11px;
	font-weight: 700;
	color: #6b7280;
}

.products-top__makers {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.products-top__maker {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	box-sizing: border-box;
	padding: 24px 12px 18px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
	color: #0e1e46;
	text-align: center;
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.products-top__maker:hover,
.products-top__maker:focus {
	border-color: #1991e6;
	box-shadow: 0 6px 18px rgb(14 30 70 / 10%);
}

/* ロゴの周囲には余白(保護エリア)を確保する。 */
.products-top__maker-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 96px;
	padding: 8px 0;
	box-sizing: border-box;
}

/*
 * 幅は縦横比から決めた倍率(--logo-scale)で揃える。
 * カードが狭いときも全社が同じ割合で縮むよう、基準幅を枠の80%までにする(倍率の上限1.25でも枠に収まる)。
 */
.products-top__maker-logo img {
	display: block;
	width: calc(min(200px, 80%) * var(--logo-scale, 1));
	max-width: 100%;
	max-height: 100%;
	height: auto;
	object-fit: contain;
}

@media screen and (max-width: 540px) {

	.products-top__maker-logo {
		height: 64px;
		padding: 4px;
	}

	.products-top__maker-logo img {
		width: calc(min(108px, 80%) * var(--logo-scale, 1));
	}
}

.products-top__maker-name {
	margin-top: 10px;
	font-size: 14px;
	font-weight: 800;
}

.products-top__maker-reading {
	margin-top: 2px;
	font-size: 11px;
	font-weight: 600;
	color: #6b7280;
}

@media screen and (max-width: 1024px) {
	.products-top__routes,
	.products-top__makers {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 768px) {
	.products-top__grid {
		grid-template-columns: 1fr;
	}

	.products-top__card-body {
		padding: 20px 18px 18px;
	}

	.products-top__route {
		padding: 22px 12px 18px;
	}

	.products-top__route-label {
		font-size: 14px;
	}
}

/* ヘッダーのプルダウン(アフターサポート › トレーニング/アフターサポート):
   親項目とプルダウンの間に 4px のすき間があり、マウスを下ろす途中でホバーが外れて
   プルダウンが閉じてしまうため、見えない橋渡しを置いてホバーを保つ。 */
#site-navigation.main-navigation ul ul::before {
	content: "";
	position: absolute;
	top: -10px;
	right: 0;
	left: 0;
	height: 10px;
}

/* プライバシーポリシーページ(page-privacy.php)。本文の体裁は記事本文(.article__content)と共通。 */
.privacy-policy__content {
	max-width: 880px;
	margin-top: 32px;
}

/* フッター: 住所を外したあとに残っていた余白を詰める(ロゴ枠の固定の高さをやめ、上下の余白を小さくする)。 */
.site-footer__box {
	height: auto;
}

@media screen and (max-width: 1024px) {
	.site-footer__box {
		min-height: 0;
	}
}

@media screen and (min-width: 1025px) {
	.site-footer__inner {
		align-items: center;
		padding-top: 56px;
		padding-bottom: 56px;
	}

	/* 枠は固定幅(500px)にせず、ロゴの大きさに合わせる。 */
	.site-footer__box {
		width: auto;
		padding: 32px 40px;
	}
}

/* 製品情報ページ: 説明文が1行のカードと2行のカードで「関連製品を見る」の位置がずれないよう、
   2列表示のときは説明文の高さを揃える(広い画面は2行分、やや狭い画面は3行分)。 */
@media screen and (min-width: 769px) {
	.products-top__card-desc {
		min-height: calc(1.9em * 3);
	}
}

@media screen and (min-width: 1200px) {
	.products-top__card-desc {
		min-height: calc(1.9em * 2);
	}
}

/* カタログダウンロード: 入力内容をブラウザに保存するチェック。 */
.catalog-remember {
	margin: 12px 0 0;
	font-size: 13px;
	color: #6b7280;
}

.catalog-remember label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

/* カタログダウンロード: 目的「その他」の記入欄。 */
.catalog-survey[hidden],
.catalog-survey__heading[hidden] {
	display: none;
}

.catalog-survey__heading {
	margin: 32px 0 16px;
	padding-left: 12px;
	border-left: 4px solid #1991e6;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: #0e1e46;
}

.contact-fieldset #cf-purpose-other {
	margin-top: 12px;
	max-width: 480px;
}

/* カタログダウンロード: メールのURLから開くダウンロードページ。 */
.catalog-download {
	padding-top: 40px;
}

.catalog-download__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}

.catalog-download__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 20px 24px;
	border: 1px solid #d7deee;
	border-radius: 12px 4px 12px 4px;
	background-color: #fff;
}

.catalog-download__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.catalog-download__maker {
	font-size: 12px;
	font-weight: 700;
	color: #1991e6;
}

.catalog-download__title {
	font-size: 16px;
	font-weight: 700;
	color: #0e1e46;
}

.catalog-download__meta {
	font-size: 13px;
	color: #6b7280;
}

.catalog-download__btn {
	flex-shrink: 0;
	width: 160px;
}

@media screen and (max-width: 767px) {
	.catalog-download__item {
		flex-direction: column;
		align-items: stretch;
		gap: 16px;
		padding: 20px;
	}

	.catalog-download__btn {
		width: 100%;
	}
}

/* トレーニング・アフターサポート: 資料(カタログ)のダウンロードボタン。 */
.catalog-dl {
	margin: 24px 0 0;
}

.catalog-dl__btn {
	height: auto;
	min-height: 52px;
	padding: 14px 28px;
	background-color: #1991e6;
	font-size: 14px;
	white-space: normal;
}

.catalog-dl__btn:hover,
.catalog-dl__btn:focus {
	background-color: #0e1e46;
	color: #fff;
}

@media screen and (max-width: 767px) {
	.catalog-dl__btn {
		width: 100%;
	}
}

/* === 2026-10-13 追加: 会社概要「国内拠点」カードの住所表示 === */
.company-branches__address {
	font-size: 12px;
	line-height: 1.8;
	color: #5a6b8c;
}

/* つくば本社工場（濃紺カード）の住所は一回り大きく・太字・明るい色に */
.company-branches__item--main .company-branches__address {
	font-size: 14px;
	font-weight: 700;
	color: #dfe7f5;
}

/* === 2026-10-13 一時非表示: 製品情報の「準備中」項目（ITLINE松木園）。このブロックを削除すれば元に戻ります === */
.products-top__link--soon { display: none !important; }
.maker-archive__card--pending { display: none !important; }
/* === 一時非表示ここまで === */

/* 国内拠点カード: 電話番号・FAX・地図リンク（2026-10-13 追加） */
.company-branches__tel,
.company-branches__fax {
	font-size: 12px;
	line-height: 1.8;
	color: #5a6b8c;
}

.company-branches__map {
	align-self: flex-start;
	margin-top: 6px;
	font-size: 12px;
	font-weight: 700;
	color: #1991e6;
	text-decoration: none;
}

.company-branches__map::before {
	content: "▶";
	margin-right: 4px;
	font-size: 9px;
	vertical-align: 1px;
}

.company-branches__map:hover,
.company-branches__map:focus {
	text-decoration: underline;
}

.company-branches__item--main .company-branches__tel,
.company-branches__item--main .company-branches__fax {
	font-size: 14px;
	font-weight: 700;
	color: #dfe7f5;
}

.company-branches__item--main .company-branches__map {
	flex-basis: 100%;
	margin-top: 2px;
	font-size: 14px;
	color: #8fd0ff;
}

/* 拠点カードの詳細まとめ（通常カードはレイアウトに影響させない） */
.company-branches__meta {
	display: contents;
}

/* つくば本社工場は名称の次の行に住所・TEL・FAX・地図をまとめる */
.company-branches__item--main .company-branches__meta {
	display: flex;
	flex-basis: 100%;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 20px;
	margin-top: 2px;
}
