/*
Theme Name: testkissei
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * IMPORTANT: This file is only served on the frontend when `SCRIPT_DEBUG` is enabled;
 * in most instances, the `style.min.css` file will be served. It is not recommended that you
 * use the Theme File Editor to modify this stylesheet. Instead, add the necessary style
 * overrides via "Additional CSS" in the Site Editor.
 */

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Revised case index layout */
main > .content_header {
	width: 100%;
	background: url("../images/content_header_bg.jpg") center/cover no-repeat;
	padding: 20px 10px 45px;
}

main > .content_header > div.container {
	max-width: 1200px;
	margin: 0 auto;
}

main > .content_header .breadcrumb {
	margin-bottom: 32px;
	display: flex;
	align-items: center;
	gap: 10px;
}

main > .content_header .breadcrumb span {
	display: flex;
	align-items: center;
	font-weight: 500;
	font-size: 12px;
	line-height: 14px;
	color: #8c8c8c;
}

main > .content_header .breadcrumb span:not(:last-child)::after {
	content: "";
	display: block;
	width: 12px;
	height: 1px;
	margin-left: 10px;
	background: #8c8c8c;
}

main > .content_header .breadcrumb a {
	display: block;
	color: #000;
	text-decoration: none;
}

main > .content_header .title .en {
	font-family: "Inter", sans-serif;
	font-style: normal;
	font-weight: 700;
	font-size: 16px;
	line-height: 19px;
	text-transform: uppercase;
	color: #003b90;
	margin-bottom: 4px;
}

main > .content_header .title .en::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #003b90;
	display: inline-block;
	margin-right: 4px;
}

main > .content_header .title .ja {
	font-weight: 700;
	font-size: 40px;
	line-height: 150%;
	color: #000;
}

main > .content {
	padding: 80px 0;
	position: relative;
}

main > .content .column1 {
	max-width: 1200px;
	margin: 0 auto;
}

main > .content .text {
	font-weight: 500;
	font-size: 16px;
	line-height: 200%;
	color: #313133;
	padding: 0 0 60px;
}

@media screen and (max-width: 900px) {
	main > .content_header {
		padding: 20px 10px 50px;
	}

	main > .content_header .breadcrumb {
		margin-bottom: 32px;
	}

	main > .content_header .breadcrumb span {
		flex-wrap: wrap;
	}

	main > .content_header .title .ja {
		font-size: 16px;
	}

	main > .content {
		padding: 30px 10px;
	}

	main > .content .text {
		font-size: 14px;
		padding: 0 0 40px;
	}
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}

/*
 * Front page
 */
.site-header {
	position: relative;
	z-index: 20;
	background: #fff;
	border-bottom: 1px solid #eef1f6;
}

.site-header__inner {
	display: flex;
	align-items: center;
	width: min(1200px, 100%);
	min-height: 58px;
	margin: 0 auto;
	padding: 0 24px;
}

.site-header__logo {
	flex: 0 0 auto;
	margin-right: auto;
	color: #00418c;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.site-header__nav {
	display: flex;
	align-items: center;
	align-self: stretch;
	gap: 26px;
	margin-left: 32px;
}

.site-header__nav-item {
	display: flex;
	align-items: center;
	align-self: stretch;
}

.site-header__nav-link {
	display: inline-flex;
	align-items: center;
	align-self: stretch;
	color: #111827;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.site-header__nav-link:hover,
.site-header__nav-item:focus-within > .site-header__nav-link,
.site-header__nav-item:hover > .site-header__nav-link {
	color: #1f67e8;
}

.mega-menu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 30;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-8px);
	border-top: 1px solid #eef1f6;
	background: #fff;
	box-shadow: 0 18px 28px rgba(15, 23, 42, 0.12);
	pointer-events: none;
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

.site-header__nav-item:hover .mega-menu,
.site-header__nav-item:focus-within .mega-menu {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.mega-menu__inner {
	width: min(1040px, calc(100% - 48px));
	margin: 0 auto;
	padding: 20px 0 26px;
}

.mega-menu__title {
	margin: 0 0 14px;
	color: #111827;
	font-size: 0.86rem;
	font-weight: 700;
	line-height: 1.4;
}

.mega-menu__grid {
	display: grid;
	gap: 26px;
}

.mega-menu__grid--business {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mega-menu__grid--news {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	width: min(640px, 100%);
}

.mega-menu-card {
	display: grid;
	grid-template-rows: 96px auto;
	gap: 10px;
	min-width: 0;
	color: #111827;
	font-size: 0.74rem;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
}

.mega-menu-card:hover {
	color: #1f67e8;
}

.mega-menu-card__visual {
	display: block;
	overflow: hidden;
	background: #dbeafe;
}

.mega-menu-card__visual--erp {
	background:
		linear-gradient(rgba(0, 66, 143, 0.18), rgba(0, 66, 143, 0.18)),
		linear-gradient(135deg, #72533f 0%, #2a6eb7 55%, #91d8ff 100%);
}

.mega-menu-card__visual--robot {
	background:
		radial-gradient(circle at 68% 40%, rgba(255, 255, 255, 0.7) 0 4px, transparent 5px),
		linear-gradient(135deg, #b8ebff 0%, #1e7bca 52%, #05295c 100%);
}

.mega-menu-card__visual--medical {
	background:
		linear-gradient(rgba(0, 66, 143, 0.12), rgba(0, 66, 143, 0.12)),
		linear-gradient(135deg, #f0f8ff 0%, #8dbfe4 42%, #0d4d8f 100%);
}

.mega-menu-card__visual--press {
	background:
		linear-gradient(rgba(0, 66, 143, 0.06), rgba(0, 66, 143, 0.06)),
		linear-gradient(180deg, #aee4ff 0%, #f8fbff 48%, #2a7ec6 100%);
}

.mega-menu-card__visual--event {
	background:
		linear-gradient(rgba(0, 66, 143, 0.16), rgba(0, 66, 143, 0.16)),
		linear-gradient(135deg, #f7f1e8 0%, #8ed3ff 42%, #1d5c9f 100%);
}

.mega-menu-card__label {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-width: 0;
}

.mega-menu-card__label::after {
	content: "";
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	border-right: 1px solid #1f67e8;
	border-bottom: 1px solid #1f67e8;
	transform: rotate(-45deg);
}

.site-header__contact {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	min-width: 176px;
	margin-left: 28px;
	padding: 0 28px;
	background: #356be8;
	color: #fff;
	font-size: 0.86rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.site-header__contact:hover {
	background: #2358cf;
}

@media (max-width: 900px) {
	.site-header__inner {
		flex-wrap: wrap;
		gap: 14px 18px;
		padding: 16px 20px;
	}

	.site-header__nav {
		order: 3;
		width: 100%;
		margin-left: 0;
		gap: 18px;
		overflow-x: auto;
		padding-bottom: 2px;
	}

	.site-header__nav-item {
		align-self: auto;
	}

	.site-header__nav-link {
		align-self: auto;
		min-height: 24px;
	}

	.mega-menu {
		display: none;
	}

	.site-header__contact {
		align-self: auto;
		min-height: 40px;
		min-width: 132px;
		margin-left: 0;
		padding: 0 18px;
	}
}

.site-footer {
	background: #00428f;
	color: #fff;
}

.site-footer__inner {
	width: min(1200px, 100%);
	margin: 0 auto;
	padding: 54px 24px 36px;
}

.site-footer a {
	color: inherit;
	text-decoration: none;
}

.site-footer__nav {
	display: grid;
	grid-template-columns: 1.9fr repeat(4, 1fr);
	gap: 48px;
	margin-bottom: 70px;
}

.site-footer__group h2 {
	margin: 0 0 16px;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.4;
}

.site-footer__group a {
	display: block;
	margin: 0 0 10px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.82rem;
	line-height: 1.4;
}

.site-footer__group h2 a {
	color: #fff;
	font-size: inherit;
}

.site-footer__middle {
	display: grid;
	grid-template-columns: 1fr minmax(220px, 320px);
	align-items: center;
	gap: 48px;
	padding-bottom: 44px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

.site-footer__company {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 36px;
	align-items: start;
	color: rgba(255, 255, 255, 0.84);
	font-size: 0.82rem;
	line-height: 1.5;
}

.site-footer__company p {
	margin: 0;
}

.site-footer__company-name {
	grid-row: span 3;
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
}

.site-footer__contact {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	background: #4778e8;
	font-size: 0.9rem;
	font-weight: 700;
}

.site-footer__contact:hover {
	background: #5b8af0;
}

.site-footer__bottom {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px;
	align-items: center;
	padding-top: 36px;
}

.site-footer__logo {
	display: inline-block;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.45rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
}

.site-footer__copy {
	margin: 8px 0 0;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.68rem;
}

.site-footer__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 12px 24px;
	max-width: 480px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.74rem;
	line-height: 1.5;
}

@media (max-width: 800px) {
	.site-footer__inner {
		padding: 42px 20px 30px;
	}

	.site-footer__nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px;
		margin-bottom: 44px;
	}

	.site-footer__middle,
	.site-footer__bottom,
	.site-footer__company {
		grid-template-columns: 1fr;
	}

	.site-footer__middle {
		gap: 28px;
	}

	.site-footer__company-name {
		grid-row: auto;
	}

	.site-footer__links {
		justify-content: flex-start;
	}
}

.case-filter {
	margin: 0 0 28px;
	padding: 26px;
	border: 2px solid #11a8f5;
	background: #edf4ff;
}

.case-filter__title {
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px dotted #1f67e8;
	color: #00428f;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
}

.case-filter__tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.case-filter__tabs input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.case-filter__tabs label {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 0 24px;
	border: 1px solid #2f73ec;
	background: #fff;
	color: #111827;
	font-size: 0.82rem;
	font-weight: 700;
	cursor: pointer;
}

.case-filter__tabs label::after {
	content: "";
	width: 7px;
	height: 7px;
	margin-left: auto;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

.case-filter__tabs input:checked + label {
	background: #356be8;
	color: #fff;
}

.case-filter__tabs input:focus-visible + label {
	outline: 2px solid #00428f;
	outline-offset: 2px;
}

.case-filter__body {
	padding: 28px;
	background: #fff;
}

.case-filter__panel {
	display: none;
}

.case-filter:has(#case-filter-industry:checked) .case-filter__panel--industry,
.case-filter:has(#solution-filter-industry:checked) .case-filter__panel--industry,
.case-filter:has(#case-filter-keyword:checked) .case-filter__panel--keyword,
.case-filter:has(#solution-filter-keyword:checked) .case-filter__panel--keyword {
	display: block;
}

.case-filter__choices {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 28px;
}

.case-filter__choice {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #111827;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.5;
	cursor: pointer;
}

.case-filter__choice input {
	width: 12px;
	height: 12px;
	margin: 0;
	accent-color: #356be8;
}

.case-filter__keyword {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
}

.case-filter__keyword span {
	color: #00428f;
	font-size: 0.82rem;
	font-weight: 700;
}

.case-filter__keyword input {
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid #b7c7de;
	font: inherit;
}

.case-filter__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 26px;
	padding-top: 18px;
	border-top: 1px solid #e5edf8;
}

.case-filter__actions p {
	margin: 0;
	color: #4b5563;
	font-size: 0.78rem;
	font-weight: 700;
}

.case-filter__actions button,
.case-filter__actions a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 0 18px;
	border: 1px solid #356be8;
	background: #fff;
	color: #00428f;
	font: inherit;
	font-size: 0.76rem;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
}

.case-filter__actions button:hover,
.case-filter__actions a:hover {
	background: #eef5ff;
}


@media (max-width: 900px) {
	.case-filter {
		padding: 20px;
	}

	.case-filter__body {
		padding: 22px;
	}
}

@media (max-width: 640px) {
	.case-filter {
		padding: 14px;
	}

	.case-filter__tabs {
		grid-template-columns: 1fr;
	}

	.case-filter__tabs label {
		min-height: 44px;
		padding: 0 16px;
	}

	.case-filter__body {
		padding: 18px;
	}

	.case-filter__choices {
		gap: 12px 18px;
	}

	.case-filter__keyword,
	.case-filter__actions {
		grid-template-columns: 1fr;
	}

	.case-filter__actions {
		display: grid;
		align-items: stretch;
	}

	.case-filter__actions button,
	.case-filter__actions a {
		width: 100%;
	}
}



.inner {
	width: min(1120px, calc(100% - 32px));
	margin: 0 auto;
}

.top-news-mv,
.top-news-event {
	padding: 72px 0;
}

.top-news-mv {
	background: linear-gradient(180deg, #f8f5ef 0%, #ffffff 100%);
}

.top-news-mv .inner {
	display: grid;
	gap: 20px;
}

.top-news-mv__item {
	display: grid;
	grid-template-columns: 120px auto 1fr;
	align-items: start;
	gap: 18px;
	padding: 24px 0;
	border-bottom: 1px solid #d7d0c4;
}

.top-news-mv__item:first-child {
	border-top: 1px solid #d7d0c4;
}

.top-news-mv__item time,
.top-news-event__item time {
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: #6b6256;
}

.top-news-mv__tag,
.top-news-event__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.08em;
	white-space: nowrap;
}

.top-news-mv__tag,
.top-news-event__tag--news {
	background: #1d4d4f;
	color: #fff;
}

.top-news-event__tag--type {
	background: #dfead7;
	color: #254220;
}

.top-news-event__tag--status {
	background: #f3dfb2;
	color: #674400;
}

.top-news-mv__item h3,
.top-news-event__item h3,
.top-news-event__col h2 {
	margin: 0;
}

.top-news-mv__item h3 {
	font-size: clamp(1.1rem, 1rem + 0.5vw, 1.45rem);
	line-height: 1.5;
}

.top-news-mv__item a,
.top-news-event__item a,
.top-news-event__more a {
	color: #171411;
	text-decoration: none;
}

.top-news-mv__item a:hover,
.top-news-event__item a:hover,
.top-news-event__more a:hover {
	opacity: 0.75;
}

.top-news-event {
	background: #fff;
}

.top-news-event__wrap {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 36px;
}

.top-news-event__col {
	padding: 32px;
	border: 1px solid #e5ddd2;
	background: #fcfaf7;
}

.top-news-event__col h2 {
	margin-bottom: 24px;
	font-size: clamp(1.35rem, 1.1rem + 0.7vw, 1.8rem);
	line-height: 1.3;
}

.top-news-event__list {
	display: grid;
	gap: 18px;
}

.top-news-event__item {
	display: grid;
	grid-template-columns: 110px auto auto 1fr;
	align-items: start;
	gap: 12px;
	padding-bottom: 18px;
	border-bottom: 1px solid #e5ddd2;
}

.top-news-event__item h3 {
	font-size: 1rem;
	line-height: 1.6;
}

.top-news-event__more {
	margin: 24px 0 0;
}

.top-news-event__more a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
}

.top-news-event__more a::after {
	content: "";
	width: 18px;
	height: 1px;
	background: currentColor;
}

@media (max-width: 900px) {
	.top-news-mv,
	.top-news-event {
		padding: 56px 0;
	}

	.top-news-event__wrap {
		grid-template-columns: 1fr;
	}

	.top-news-mv__item,
	.top-news-event__item {
		grid-template-columns: 1fr;
	}

	.top-news-event__col {
		padding: 24px;
	}
}

@media (max-width: 599px) {
	.inner {
		width: min(100% - 24px, 1120px);
	}

	.top-news-mv,
	.top-news-event {
		padding: 40px 0;
	}

	.top-news-mv__item {
		gap: 12px;
		padding: 18px 0;
	}

	.top-news-event__item {
		gap: 10px;
		padding-bottom: 14px;
	}

	.top-news-event__col {
		padding: 20px;
	}
}

/*
 * Catalog complete page
 */
.catalog-complete-lead {
	max-width: 760px;
	margin: 0 0 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid #9db8d8;
	font-size: 0.95rem;
	line-height: 1.8;
}

.catalog-complete-lead p {
	margin: 0 0 8px;
}

.catalog-section {
	max-width: 920px;
}

.catalog-section__title {
	margin: 0 0 24px;
	font-size: 1.2rem;
	line-height: 1.4;
}

.catalog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 28px;
}

.catalog-card__inner {
	display: grid;
	grid-template-rows: auto auto 1fr auto;
	min-height: 100%;
}

.catalog-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	margin-bottom: 12px;
	border: 1px solid #e3e7ee;
	background: #f5f8fc;
	overflow: hidden;
}

.catalog-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.catalog-card__image span {
	padding: 12px;
	color: #1b4a93;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

.catalog-card__title {
	margin: 0 0 10px;
	color: #003f8f;
	font-size: 0.95rem;
	line-height: 1.5;
}

.catalog-card__text {
	margin: 0 0 12px;
	color: #333;
	font-size: 0.85rem;
	line-height: 1.7;
}

.catalog-card__btnwrap {
	margin: 0;
}

.catalog-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 34px;
	background: #2f69dd;
	color: #fff;
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.catalog-btn:hover {
	opacity: 0.82;
}

.catalog-btn__icon {
	position: relative;
	width: 12px;
	height: 14px;
	border: 1px solid currentColor;
}

.catalog-btn__icon::after {
	content: "";
	position: absolute;
	right: -1px;
	top: -1px;
	width: 5px;
	height: 5px;
	border-left: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	background: #2f69dd;
}

@media (max-width: 800px) {
	.catalog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.catalog-grid {
		grid-template-columns: 1fr;
	}
}

/*
 * Catalog form
 */
.catalog-download-page {
	padding: 0 0 80px;
	background: #fff;
	color: #111;
}

.catalog-inner {
	width: min(1040px, calc(100% - 48px));
	margin: 0 auto;
}

.catalog-hero {
	margin-bottom: 44px;
	padding: 42px 0 58px;
	background:
		linear-gradient(90deg, rgba(186, 231, 246, 0.95) 0%, rgba(246, 252, 255, 0.96) 54%, rgba(255, 235, 244, 0.92) 100%),
		radial-gradient(circle at 88% 42%, rgba(255, 255, 255, 0.9) 0 2px, transparent 3px),
		radial-gradient(circle at 93% 72%, rgba(255, 255, 255, 0.75) 0 2px, transparent 3px);
}

.catalog-hero__breadcrumb {
	margin: 0 0 18px;
	color: #4b5563;
	font-size: 0.78rem;
	line-height: 1.5;
}

.catalog-hero__eyebrow {
	margin: 0 0 8px;
	color: #1f67e8;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.4;
}

.catalog-hero h1 {
	margin: 0;
	color: #000;
	font-size: clamp(1.55rem, 2.5vw, 2.25rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.45;
}

.catalog-solution-head {
	margin: 0 0 30px;
	padding-bottom: 24px;
	border-bottom: 1px solid #9db8d8;
}

.catalog-solution-head__label {
	display: inline-flex;
	align-items: center;
	margin: 0 0 14px;
	padding: 7px 18px;
	background: #2f80df;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;
}

.catalog-solution-head h2 {
	position: relative;
	margin: 0 0 18px;
	padding-left: 58px;
	color: #0b64c0;
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.45;
}

.catalog-solution-head h2::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background:
		conic-gradient(#2f80df 0 33%, #f6a600 0 66%, #0b64c0 0);
	transform: translateY(-50%);
}

.catalog-solution-head h2::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 11px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	transform: translateY(-50%);
}

.catalog-solution-head p:last-child {
	max-width: 900px;
	margin: 0;
	font-size: 0.86rem;
	line-height: 1.9;
}

#catalogForm,
#catalogConfirmForm {
	max-width: 880px;
}

.catalog-form-lead {
	margin: 0 0 28px;
	font-size: 0.95rem;
	line-height: 1.8;
}

.catalog-form-lead p,
.privacy-box p {
	margin: 0 0 8px;
}

.catalog-form-block {
	margin-top: 28px;
}

.form-step-title {
	margin: 0 0 16px;
	padding-top: 0;
	border-top: 0;
	font-weight: 700;
	font-size: 0.98rem;
	line-height: 1.6;
}

.form-row {
	display: grid;
	grid-template-columns: 190px minmax(0, 1fr);
	border: 1px solid #dddddd;
	border-bottom: 0;
	background: #fff;
}

.form-row:last-of-type {
	border-bottom: 1px solid #dddddd;
}

.form-th,
.form-td {
	min-width: 0;
	padding: 13px 16px;
}

.form-th p,
.form-td p,
.form-submit p,
.privacy-check p {
	margin: 0;
}

.form-td br,
.form-submit br {
	display: none;
}

.form-th {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #f7f7f7;
	font-weight: 700;
	font-size: 0.82rem;
}

.required {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	padding: 3px 5px;
	background: #e21d2b;
	color: #fff;
	font-size: 0.68rem;
	line-height: 1.2;
}

.inline-2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.inline-2 > p {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
}

.field-unit {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
}

.mini-label {
	font-weight: 700;
}

.catalog-other-choice {
	display: block;
	margin: 12px 0 8px;
	font-weight: 700;
}

#catalogForm .wpcf7-list-item {
	margin-left: 0;
}

#catalogForm input,
#catalogForm select,
#catalogForm textarea,
#catalogConfirmForm input,
#catalogConfirmForm select,
#catalogConfirmForm textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 34px;
	padding: 8px 10px;
	border: 1px solid #d8d8d8;
	background: #f8f8f8;
	font: inherit;
	font-size: 0.86rem;
}

#catalogForm input[type="checkbox"] {
	width: auto;
	min-height: 0;
	margin-right: 8px;
}

#catalogConfirmForm .confirm-input,
#catalogConfirmForm input[readonly] {
	border-color: transparent;
	background: transparent;
	padding-left: 0;
}

.privacy-box {
	margin: 32px 0 0;
	padding: 24px 28px;
	background: #eef5ff;
	font-size: 0.82rem;
	line-height: 1.8;
}

.privacy-check {
	margin-top: 14px;
	font-weight: 700;
}

.privacy-check input {
	width: auto !important;
	min-height: 0 !important;
	margin-right: 8px;
}

.form-submit {
	display: flex;
	justify-content: center;
	gap: 24px;
	margin-top: 32px;
}

.form-submit p {
	display: flex;
	justify-content: center;
	width: 100%;
}

#catalogForm .form-submit input,
#catalogConfirmForm .form-submit input,
.form-submit button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: min(360px, 100%);
	min-height: 58px;
	padding: 0 28px;
	border: 0;
	background: #2f69dd;
	color: #fff;
	font-weight: 700;
	font-size: 0.95rem;
	line-height: 1.4;
	text-align: center;
	cursor: pointer;
}

#catalogForm .form-submit input:disabled,
#catalogConfirmForm .form-submit input:disabled {
	border-color: transparent;
	background: #9fb8eb;
	color: #fff;
	opacity: 1;
	cursor: not-allowed;
}

.confirm-submit input[name="_wpcf7_multistep_previous"] {
	background: #edf1f6;
	color: #174176;
}

@media (max-width: 700px) {
	.catalog-download-page {
		padding-bottom: 64px;
	}

	.catalog-inner {
		width: min(100% - 32px, 1040px);
	}

	.catalog-hero {
		margin-bottom: 34px;
		padding: 32px 0 40px;
	}

	.form-row,
	.inline-2,
	.field-unit {
		grid-template-columns: 1fr;
	}

	.form-th,
	.form-td {
		padding: 14px;
	}

	.form-submit {
		flex-direction: column;
	}

	.form-submit input,
	.form-submit button {
		width: 100%;
	}
}
