@charset "utf-8";
:root{
	--xw-mobile-header-offset:50px;
}

/* common */
html body{
	font-size:13pt;
	line-height:150%;
	font-family:'Roboto', 'Noto Sans JP',"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
	font-weight:400;
	width:100%;
	-webkit-overflow-scrolling: touch;
}

html .contents.contents--no-page-body{
	padding-bottom:0 !important;
}

html .fn{ font-weight: 400 !important; }
html .fb{ font-weight: 700 !important; }

@media only screen and (max-width: 768px) {
	html body{ font-size:12pt; }
}

h1,h2,h3,h4,h5,h6{
	line-height: 150%;
}

a{
	color:#153d7c;
	text-decoration: none;
	transition: 0.3s ease-in-out;
}

a:hover{ opacity: 0.75; }
.color_a{ color:#153d7c; }
.color_h{ color:#2a53ba; }
.back_a{ background: #153d7c; }
.back_h{ background: #2a53ba; }
.body_on{	overflow: hidden; }
.hr_a{ border-top: 1px dotted #2a53ba; }

.snsList.square > li,
.snsList.square .btn__sns,
.snsList.square .btn__sns i {
	display: flex;
	align-items: center;
	justify-content: center;
}

.snsList.square .btn__sns i {
	width: 1em;
	height: 1em;
	line-height: 1;
	margin: 0;
	padding: 0;
}

img{ width:100%;max-width:100%; }
.back_eee{ background:#eee; }
/* top */
#hero-unit{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}

.hutxt,.huimg{ width:50%; }

#hero-unit,
.hutxt,
.top_slider{
	height:80lvh;
}

.hutxt{ padding:20px; }
.hutxt h1{ font-size:3.4vw; }
.top_slider div{ width:100%;height:100%; }

.siteInfo {
	width:100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

@media (min-width: 992px) {
	.header.is-pc-left .siteInfo {
		padding: 0;
	}
}

.header .siteInfo:has(img) {
	height: 50px;
}

.siteInfo__title{ width:200px; }
.siteInfo__txt{
	width:calc(100% - 200px);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

.siteInfo__txt .sti_txt{ width: 40%; }
.siteInfo__txt .st_inner{
	width: calc(60% - 210px);
	max-width: 100%;
	min-width: 0;
	margin-right:10px;
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:12px;
	overflow:hidden;
}

.siteInfo__txt .st_inner__meta{
	flex:0 0 auto;
	white-space:nowrap;
	text-align:right;
	line-height:1.4;
}

.siteInfo__txt .st_inner__meta p{
	margin-bottom:0;
}

.headerSearchForm{
	flex:0 1 230px;
	width:100%;
	max-width:230px;
	min-width: 0;
	margin-left:auto;
	margin-top:0;
}

.headerSearchForm__field{
	position:relative;
	width:100%;
	max-width:none;
	border:1px solid #c9d4eb;
	border-radius:9999px;
	background:#fff;
	overflow:hidden;
	box-sizing:border-box;
	transition:border-color .2s ease, box-shadow .2s ease;
}

.headerSearchForm__field:hover,
.headerSearchForm__field:focus-within{
	border-color:#2a53ba;
	box-shadow:0 0 0 2px rgba(42, 83, 186, 0.18);
}

.headerSearchForm__label{
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0, 0, 0, 0);
	white-space:nowrap;
	border:0;
}

.headerSearchForm__input{
	width:100%;
	height:40px;
	padding:0 46px 0 14px;
	border:0;
	border-radius:0;
	background:transparent;
	color:#333;
	font-size:12px;
	line-height:1;
	text-align:left;
	box-sizing:border-box;
}

.headerSearchForm__input::placeholder{
	color:#7b869c;
	opacity:1;
}

.headerSearchForm__input:focus{
	outline:none;
}

.headerSearchForm__button{
	position:absolute;
	top:50%;
	right:12px;
	transform:translateY(-50%);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:24px;
	height:24px;
	padding:0;
	border:0;
	background:transparent;
	color:#153d7c;
	cursor:pointer;
}

.headerSearchForm__button:hover,
.headerSearchForm__button:focus-visible{
	color:#2a53ba;
	opacity:1;
}

.headerSearchForm__button:focus-visible{
	outline:none;
}

.headerSearchForm__icon{
	display:block;
	width:18px;
	height:18px;
}

.siteInfo__txt .siteInfo__contact{ width: 200px; }
.siteInfo__txt .siteInfo__contact a{ display:flex;align-items:center;justify-content:center; }
.siteInfo__txt .siteInfo__instagram{ display:none; }
.siteInfo__txt .siteInfo__instagramLink{ display:block; line-height:0; }
.siteInfo__txt .siteInfo__instagram img{ display:block; width:20px; height:auto; }

.nav__drawers__instagram {
	padding: 10px var(--widget--list--pad--x) 0;
}

.nav__drawers__search{
	width:calc(100% - (var(--widget--list--pad--x) * 2));
	max-width:none;
	margin:16px var(--widget--list--pad--x) 0;
}

.nav__drawers__search .headerSearchForm__field{
	box-shadow:none;
}

.nav__drawers__instagramLink {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.nav__drawers__instagramLink img {
	display: block;
	width: 20px;
	height: auto;
}

.gnav-fix .gNavList a {
	transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;
}

.xw-file-card {
	height: 100%;
	background: #fff;
	border: 1px solid #d9e3f2;
	box-shadow: 0 14px 30px rgba(21, 61, 124, 0.08);
	overflow: hidden;
}

.xw-file-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: #333;
}

.xw-file-card__media {
	height: 320px;
	padding: 16px;
	background: linear-gradient(135deg, #eef4ff 0%, #f8fbff 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.xw-file-card__media img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 100%;
	height: 100%;
	margin: 0 auto;
	object-fit: contain;
	object-position: center center;
}

@media only screen and (max-width: 1200px) {
	.xw-file-card__media {
		height: 280px;
	}
}

.xw-file-card__badge {
	padding: 0 24px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	color: #2a53ba;
	word-break: break-word;
}

.xw-file-card__body {
	padding: 22px 24px 24px;
	border-top: 1px solid #d9e3f2;
	flex: 1 1 auto;
}

.xw-file-card__type,
.xw-file-list__type {
	margin: 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #2a53ba;
}

.xw-file-card__kind,
.xw-file-list__kind {
	margin: 4px 0 0;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.6;
	color: #5d6b82;
}

.xw-file-card__title,
.xw-file-list__title {
	margin: 12px 0 0;
	font-size: 18px;
	line-height: 1.6;
	color: #153d7c;
	word-break: break-word;
}

.xw-file-card__meta,
.xw-file-card__status,
.xw-file-list__meta,
.xw-file-list__status {
	margin: 12px 0 0;
	font-size: 13px;
	line-height: 1.7;
	color: #5d6b82;
}

.xw-file-card__status,
.xw-file-list__status {
	color: #b42318;
	font-weight: 700;
}

.xw-file-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.xw-file-list__item + .xw-file-list__item {
	margin-top: 16px;
}

.xw-file-list__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid #d9e3f2;
	box-shadow: 0 12px 24px rgba(21, 61, 124, 0.06);
	color: #333;
}

.xw-file-list__body {
	flex: 1 1 auto;
	min-width: 0;
}

.xw-file-list__summary {
	flex: 0 0 auto;
	min-width: 120px;
	text-align: right;
}

@media only screen and (max-width: 768px) {
	.xw-file-card__media {
		height: 220px;
		padding: 14px;
	}

	.xw-file-card__badge {
		font-size: 16px;
	}

	.xw-file-card__body,
	.xw-file-list__link {
		padding: 18px;
	}

	.xw-file-list__link {
		display: block;
	}

	.xw-file-list__summary {
		margin-top: 10px;
		text-align: left;
	}

	.xw-file-card__title,
	.xw-file-list__title {
		font-size: 16px;
	}
}

@media only screen and (max-width: 543px) {
	.xw-file-card__media {
		height: 180px;
		padding: 12px;
	}
}

.gnav-fix .gNavList a:hover,
.gnav-fix .gNavList a:focus-visible {
	background: #2a53ba;
	color: #fff;
	opacity: 1;
}

@media only screen and (min-width: 992px) {
	.siteInfo__txt .st_inner{ width: calc(60% - 250px); }
	.siteInfo__txt .siteInfo__instagram{
		display:block;
		width:30px;
		margin-left:10px;
		flex: 0 0 30px;
	}
}

.gnav.navbar{
	background: #153d7c;
	justify-content: center;
}

@media only screen and (min-width: 992px) {
	.header-fix.-for-pc {
		display: none !important;
	}

	.pc-gnav-sticky-spacer {
		height: 0;
	}

	.header > div > .gnav.navbar .pc-sticky-home-item,
	.header > div > .gnav.navbar .pc-sticky-contact-item,
	.header > div > .gnav.navbar .pc-sticky-search-item {
		display: none;
	}

	.header > div > .gnav.navbar.is-pc-sticky {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		z-index: 9998;
		box-shadow: 0 8px 24px rgba( 0, 0, 0, 0.12 );
	}

	body.admin-bar .header > div > .gnav.navbar.is-pc-sticky {
		top: 32px;
	}

	.header > div > .gnav.navbar.is-pc-sticky .pc-sticky-home-item,
	.header > div > .gnav.navbar.is-pc-sticky .pc-sticky-contact-item,
	.header > div > .gnav.navbar.is-pc-sticky .pc-sticky-search-item {
		display: flex;
	}

	.header > div > .gnav.navbar .pc-sticky-home-item .menu-item-title,
	.header > div > .gnav.navbar .pc-sticky-contact-item .menu-item-title,
	.header > div > .gnav.navbar .pc-sticky-search-item .menu-item-title {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.header > div > .gnav.navbar .pc-sticky-home-item i,
	.header > div > .gnav.navbar .pc-sticky-contact-item i,
	.header > div > .gnav.navbar .pc-sticky-search-item i {
		margin-right: 0;
	}

	.header > div > .gnav.navbar .pc-sticky-search-item .search-button-icon.search-button-pc {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 100%;
		padding: 0 12px;
		padding-bottom: 0;
		border: 0;
		background: transparent;
		color: inherit;
		font-family: inherit;
		font-size: inherit;
		line-height: inherit;
		cursor: pointer;
	}
}

.tp_sec_title h3 {
	display: flex;
	align-items: center;
	justify-content: center;
}

.tp_sec_title h3::before,
.tp_sec_title h3::after {
	content: "";
	display: block;
	border-top: 1px solid #333;
	height: 0;
	max-width: 50px;
	flex-grow: 1;
}

.tp_sec_title h3::before { margin-right: 15px; }
.tp_sec_title h3::after { margin-left: 15px; }

/* スライド間のスペースを確保 */
.tp_ht_slider .slick-slide > div {
	margin: 0 15px;
}

.form-control{
	min-width: 200px;
}

#page_title{
	position: relative;
	z-index: 1;
}
#page_title::before{
	content: '';
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 90%;
	background: #2a53ba;
}

#page_title .container{
	padding: 50px 0 0px 0;
}

#page_title h1{
	padding:50px 30px;
	background: #fdfeff;
	border:1px solid #2a53ba;
}

body.single .articleHeader__info{
	margin-top: 0;
}


footer.footer{
	background: #153d7c;
	color:#fff;
}

.footer .container-copyright .copyright{
	font-size: 8pt !important;
	color: #fff !important;
	background: #2a53ba !important;
	margin-top:30px;
}

.footer_title{ font-size:2.5vw; }

/* PCサイズ（例: 768px以上）のときの設定 */
@media (min-width: 768px) {
  .tel-link {
    pointer-events: none; /* クリックを無効化 */
    cursor: default;      /* カーソルを指マークにしない */
    text-decoration: none;/* 下線を消す */
    color: inherit;       /* 文字色を親要素と同じにする */
  }
}

/* スマホサイズ（例: 767px以下）のとき */
@media (max-width: 767px) {
  .tel-link {
    /* 必要であればスマホ用の装飾（下線など） */
    text-decoration: underline;
  }
}

.about_us_box{
	display: flex;
	align-items: center;
	padding:50px 30px;
	min-height: 600px;
}

.btn{
	display: inline-block;
	border:1px solid #2a53ba;
	background: #fafafa;
	transition: 0.3s ease-in-out;
}

a:hover.btn,a:hover .btn,button:hover.btn{
	border:1px solid #fafafa;
	background: #2a53ba;
	color:#fff;
}

.btn_link{
	padding:20px 20px;
	min-width: 300px;
	text-align: center;
	border-radius:50px;
}

.btn_more{
	padding:5px 50px;
	border-radius:30px;
}

.tp_ci{
	display: block;
	background: #fff;
	border: 1px solid #ccc;
}

.xw-thumb-3x2 {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: #eef2f8;
}

.xw-thumb-3x2 img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tp_ht_slider.slick-slider,
.term-gallery.slick-slider {
	position: relative;
}

.tp_ht_slider.is-underflow .slick-track,
.term-gallery.is-underflow .slick-track {
	display: flex !important;
	justify-content: center;
	width: 100% !important;
	transform: translate3d(0, 0, 0) !important;
}

.tp_ht_slider.is-underflow .slick-track::before,
.tp_ht_slider.is-underflow .slick-track::after,
.term-gallery.is-underflow .slick-track::before,
.term-gallery.is-underflow .slick-track::after {
	display: none;
}

.tp_ht_slider.is-underflow .slick-slide,
.term-gallery.is-underflow .slick-slide {
	float: none;
	height: auto;
}

.tp_ht_slider .fas.fa-chevron-left,
.tp_ht_slider .fas.fa-chevron-right,
.term-gallery .fas.fa-chevron-left,
.term-gallery .fas.fa-chevron-right {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 20;
	cursor: pointer;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 38px;
	transition: all 0.3s ease;
	color: #999;
}

.tp_ht_slider .fas.fa-chevron-left:hover,
.tp_ht_slider .fas.fa-chevron-right:hover,
.term-gallery .fas.fa-chevron-left:hover,
.term-gallery .fas.fa-chevron-right:hover {
	opacity: 1;
	color: #333;
}

.tp_ht_slider .fas.fa-chevron-left,
.term-gallery .fas.fa-chevron-left {
	left: 0;
}

.tp_ht_slider .fas.fa-chevron-right,
.term-gallery .fas.fa-chevron-right {
	right: 0;
}

@media (max-width: 767px) {
	.tp_ht_slider .fas.fa-chevron-left,
	.tp_ht_slider .fas.fa-chevron-right,
	.term-gallery .fas.fa-chevron-left,
	.term-gallery .fas.fa-chevron-right {
		width: 30px;
		height: 30px;
		font-size: 12px;
	}
}

.tp_hts_inner{
	display: block;
	background: #f4f6fb;
	padding:20px;
}

.lpw_a{
	display: flex;
	flex-wrap: wrap;
	padding:10px;
	background: #fff;
}

.lpw_a_img{ width:100px; }
.lpw_a_txt{ width:calc(100% - 120px);margin-left:20px; }

html .breadcrumbs{
	margin:0;
	background: #bdcff4;
	padding:5px;
	max-width: none;
	width: 100%;
}

.com_h2{
	color:#d7e4f9;
}

.com_h2_absolute{
	position: absolute;
	top: 0;
	width: 100%;
}

.company_section{
	position: relative;
	z-index: 1;
}

.sec1::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #f4f6fb;
	clip-path: polygon(0 100%, 100% 0, 100% 100%);
	z-index: -1;
}

.sec2::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #f4f6fb;
	clip-path: polygon(0 0, 100% 0, 100% 100%);
	z-index: -1;
}

.sec_bkl{
	background: #f4f6fb;
}

.dldtdd{
	display: flex;
	flex-wrap: wrap;
	width: 100%;
}

.dldtdd dt{
	width:150px;
	text-align:center;
	border-bottom:2px solid #2a53ba;
	padding-top:15px;
	padding-bottom:15px;
}

.dldtdd.csp dt{ width:200px;}
.dldtdd.csp dd{ width:calc(100% - 210px);}

.dldtdd dd{
	width:calc(100% - 160px);
	padding-left:10px;
	border-bottom:1px solid #999;
	padding-top:15px;
	padding-bottom:15px;
}

.div_iframe iframe{
	width: 100%;
	height: 600px;
}

#case-filter-form select{
	width: 100%;
	display: block;
	border:1px solid #999;
	cursor: pointer;
	background: #fff;
}

#case-filter-form input{
	display: block;
	width: 100%;
	padding:10px;
	border:1px solid #999;
	background: #fff;
}

.loading-message{
	min-height: 600px;
}

.case-list-section > .container {
	position: relative;
}

.case-list-section.is-loading > .container {
	min-height: 280px;
}

.case-list-loading {
	display: none;
	position: absolute;
	inset: 0;
	z-index: 2;
	align-items: center;
	justify-content: center;
	padding: 30px 15px;
	background: rgba(255,255,255,0.8);
	text-align: center;
}

.case-list-section.is-loading .case-list-loading {
	display: flex;
}

.case-list-loading__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	min-height: 220px;
}

.case-list-loading__icon {
	display: block;
	width: 64px;
	height: 64px;
	background: url('../img/loading.gif') center center / contain no-repeat;
	flex: 0 0 64px;
}

.case-list-loading__text {
	color: #2a53ba;
	font-weight: 700;
	line-height: 1.4;
}

.case-search-filter{
	padding-bottom: 0;
	background:#eee;
	border-top: 1px solid rgba( 42, 83, 186, 0.16 );
	border-bottom: 1px solid rgba( 42, 83, 186, 0.16 );
}

@media (min-width: 769px) {
	.case-search-filter {
		margin-top: -30px;
	}
}

.case-search-filter[open] {
	padding-bottom: 30px;
}

.case-search-filter__summary {
	list-style: none;
	cursor: pointer;
	outline: none;
}

.case-search-filter__summary::-webkit-details-marker {
	display: none;
}

.case-search-filter__summary-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	padding: 18px 0;
	font-size: 1.6rem;
	line-height: 1.4;
}

.case-search-filter__summary-state {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 220px;
	padding: 15px;
	border: 1px solid #2a53ba;
	background: #fff;
	color: #2a53ba;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.case-search-filter__summary-state::before {
	content: "\f002";
	display: inline-block;
	margin-right: 8px;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 1.2rem;
	line-height: 1;
}

.case-search-filter__summary-state::after {
	content: "条件を絞り込んで表示する";
}

.case-search-filter[open] .case-search-filter__summary-state {
	background: #2a53ba;
	color: #fff;
}

.case-search-filter[open] .case-search-filter__summary-state::after {
	content: "絞り込み条件を閉じる";
}

.case-search-filter__count {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-end;
	gap: 0.15em;
	font-size: 1.8rem;
	line-height: 1.2;
	text-align: right;
}

.case-search-filter__count-meta {
	font-size: 0.85em;
	font-weight: 500;
}

.case-search-filter__count-total-value,
.case-search-filter__count-current-value {
	font-size: 1.2em;
	font-weight: 700;
}

.case-list-summary__count {
	margin: 0;
}

.case-search-filter__body {
	padding-bottom: 10px;
}

@media (max-width: 768px) {
	.case-search-filter {
		padding-bottom: 0;
	}

	.case-search-filter[open] {
		padding-bottom: 20px;
	}

	.case-search-filter__summary-inner {
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 15px 0;
	}

	.case-search-filter__summary-state {
		min-width: 0;
	}

	.case-search-filter__count {
		font-size: 1.5rem;
		text-align: left;
	}

	.case-search-filter__body {
		padding-bottom: 0;
	}
	}
.csf{ margin-top:-30px; }

/* --- メイン画像の枠固定 --- */
.fixed-frame-main {
  display: flex;
  align-items: center;     /* 上下中央揃え */
  justify-content: center; /* 左右中央揃え */
  width: 100%;
  height: 500px;           /* 【重要】高さを固定（PC用） */
  overflow: hidden;
}

.fixed-frame-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;     /* 比率を保ったまま、枠内に全て収める */
}

/* --- ギャラリー（サムネイル）の枠固定 --- */
.fixed-frame-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1 / 1;     /* 【重要】正方形に固定 */
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  overflow: hidden;
  transition: opacity 0.3s;
}

.fixed-frame-thumb:hover {
  opacity: 0.8;
}

.fixed-frame-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;       /* 枠いっぱいにトリミングして表示 */
}

/* スマホ対応：メイン画像の高さを少し小さくする */
@media (max-width: 767px) {
  .fixed-frame-main {
    height: 300px;
  }
}

.sec_bk{
	background: #fcfcfc;
}

.partner-form-section .back_fff {
	overflow: hidden;
}

.partner-linkage-card {
	height: 100%;
}

.plc_inner {
	height: 100%;
	display: flex;
	flex-direction: column;
	border: 1px solid #ccc;
}

.partner-linkage-card__image {
	position: relative;
	overflow: hidden;
	background: #eef2f8;
}

.partner-linkage-card__case {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 20px 20px 0;
	text-align: center;
}

.partner-linkage-card__case .display_ib {
	padding: 10px 20px;
	line-height: 1.2;
}

.partner-linkage-card__body {
	padding: 24px 20px;
	flex: 1 1 auto;
}

.partner-linkage-card__text p:last-child {
	margin-bottom: 0;
}

@media (max-width: 768px) {
	.partner-linkage-card__body {
		padding: 15px 12px;
	}
}

/* =========================================
   Formidable Forms Custom Style (修正版)
   ========================================= */

/* フォーム全体の枠組み */
.frm_forms {
    width: 100%;
    margin: 0 auto;         /* フォーム自体を画面中央配置 */
    box-sizing: border-box;
}

@media (min-width: 769px) {
	.frm_forms {
		max-width: 80%;
	}
}

/* 各入力項目（フィールド）の設定 */
.frm_forms .frm_form_field {
    border-bottom: 1px solid #999; /* 指定：ボーダー色 #999 */
	padding-left: 15px;
	padding-right: 15px;
	padding-top: 15px;
	padding-bottom: 15px;          /* ボーダーと入力欄の間の余白 */
}

.frm_forms .frm_form_field:nth-of-type(odd) {
	background-color: #fff;
}

.frm_forms .frm_form_field:nth-of-type(even) {
	background-color: rgba( 42, 83, 186, 0.06 );
}

/* 最後の項目の下線が不要な場合はこのコメントアウトを外してください */
/* .frm_forms .frm_form_field:last-of-type { border-bottom: none; } */


/* -----------------------------------------
   入力エリアのデザイン（共通）
   ----------------------------------------- */
.frm_forms input[type="text"],
.frm_forms input[type="email"],
.frm_forms input[type="url"],
.frm_forms input[type="tel"],
.frm_forms input[type="number"],
.frm_forms input[type="password"],
.frm_forms select,
.frm_forms textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fff;
    font-size: 16px;
    line-height: 1.5;
    box-sizing: border-box;
}

/* フォーカス時のデザイン */
.frm_forms input:focus,
.frm_forms select:focus,
.frm_forms textarea:focus {
    border-color: #153d7c;   /* フォーカス時もテーマカラーに合わせる */
    outline: none;
}

/* ラベル（項目名） */
.frm_forms .frm_primary_label {
    display: block;
    font-weight: 700;
    margin-bottom: 10px;     /* ラベルと入力欄の間も少し広げました */
    color: #333;
}

.frm_forms .frm_description {
	font-size: 8pt !important;
}

.frm-edit-page-btn {
	display: none !important;
}

.with_frm_style .frm-summary-page-wrapper {
	margin-bottom: 0 !important;
}

.with_frm_style .frm-summary-page-wrapper table tr {
	display: block;
	width: 100%;
}

.with_frm_style .frm-summary-page-wrapper table tr td {
	display: block;
	width: 100% !important;
	padding-left: 0;
	padding-right: 0;
}

.with_frm_style .frm_message,
.frm_message {
	background: none !important;
	color: inherit !important;
}


/* -----------------------------------------
   送信ボタンエリアの設定
   ----------------------------------------- */
.frm_forms .frm_submit {
    text-align: center;      /* 指定：中央寄せ */
    border: none;            /* ボタン周りには線を引かない */
}

/* 送信ボタン本体のデザイン */
.frm_forms .frm_submit button,
.frm_forms .frm_submit input[type="submit"] {
    background-color: #153d7c; /* 指定：背景色 #153d7c */
    color: #fff;             /* 文字色 白 */
    width: 100%;             /* スマホ用 */
    max-width: 300px;        /* ボタン幅の制限 */
    display: inline-block;   /* 中央寄せ用 */
    padding: 15px 30px;
    border: none;
    border-radius: 50px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: opacity 0.3s;
}

.frm_page_num_1 .frm_button_submit {
	margin-top: 30px;
}

/* ボタンホバー時 */
.frm_forms .frm_submit button:hover,
.frm_forms .frm_submit input[type="submit"]:hover {
    opacity: 0.8;
}

/* エラーメッセージ */
.frm_forms .frm_error {
    color: #d9534f;
    font-size: 14px;
    margin-top: 5px;
}

html .xw-block-faq__question::before{ background:#2a53ba }
html .xw-block-faq__answer::before{ border-color:#2a53ba;color:#2a53ba }

.search-button-form__submit{ text-align:center; }
.search-button-form__input{ background:#fff;border-color: var(--key-color); }
.xw-child-search-proxy{
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0, 0, 0, 0);
	clip-path:inset(50%);
	white-space:nowrap;
	border:0;
}

.search.no-sidebar .main-column{
	width:100%;
	max-width:var(--main-content-1column-width, 1200px);
	margin:0 auto;
}

.search .archiveListContainer .article-date,
.search .archiveListContainer .articleListRelation .date,
.search .archiveListContainer .post-date{
	display:none !important;
}

.search mark.xw-search-highlight,
.search .xw-search-highlight{
	padding:0 0.12em;
	background:#fff29a;
	color:inherit;
	-webkit-box-decoration-break:clone;
	box-decoration-break:clone;
}

.searchPromptMessage{
	padding:32px 24px;
	border:1px solid #d7e4f9;
	background:#f4f6fb;
	text-align:center;
}

.searchPromptMessage p{
	margin:0;
	color:#333;
	font-size:1.6rem;
	line-height:1.8;
}

/* ヘッダーサブメニュー背景色・幅調整 */
.header .sub-menu,
.header-fix .sub-menu {
	background: #153d7c;
	width: max-content;
	min-width: 10em;
	white-space: nowrap;
}

.header .sub-menu a,
.header-fix .sub-menu a {
	white-space: nowrap;
}

.search-button-icon i{ color:#fff; }