@charset "UTF-8";
/*
   共通
*/
.l-header__bar {
  display: none;
}
header .l-header__inner.l-container {
  /* ヘッダーの表示幅 */
  max-width: 100%;
}
.c-gnav > .menu-item > a:after {
  bottom: 20px;
}
.l-content {
  margin-bottom: 0;
}
#main_content section h2:has(.header-jp),
.sec-news h2 {
  font-family: "Inconsolata", monospace;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 72px;
  color: #fff !important;
  text-shadow: #003d83 1px 1px 1px, #003d83 -1px -1px 1px, #003d83 -1px 1px 1px,
    #003d83 1px -1px 1px, #003d83 0px 1px 1px, #003d83 0 -1px 1px,
    #003d83 -1px 0 1px, #003d83 1px 0 1px;
  margin-bottom: 40px;
  line-height: 1;
}
.header-jp,
.is-style-section_ttl.header-jp {
  font-family: "Noto Sans Jp", sans-serif;
  font-weight: bold;
  color: #003d83;
  font-size: 28px;
  display: block;
  text-shadow: none;
}
.header-jp {
  margin-top: 8px;
}
.kadomaru {
  border-radius: 15px;
}
.bg-blue {
  background-color: #edf6ff;
}
.bg-white {
  background-color: #fff;
}
.sec-blue {
  padding: 60px 0 80px !important;
}
.sec-blue.pb100 {
  padding-bottom: 100px !important;
}

section:not(:first-of-type) {
  margin-top: 100px;
}
.flex-start {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.blue {
  background-color: #003d83;
}

/* コンテンツに動きをつける */
.fadeUp {
  opacity: 0;
  visibility: hidden;
  transform: translateY(50px);
  transition: opacity 1s, visibility 1s, transform 1s;
}
.fadeUp.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0px);
}

.l-topTitleArea {
  min-height: 400px;
}
.c-pageTitle {
  font-size: 2.5em;
  text-align: center;
  position: relative;
}
.c-pageTitle::before {
  content: "";
  width: 128px;
  height: 3px;
  display: inline-block;
  background-color: #fff;
  position: absolute;
  top: 60px;
  left: calc(50% - 64px);
}
.c-pageTitle__subTitle {
  display: block;
  margin-left: 0;
  opacity: 1;
  position: relative;
  top: 18px;
  display: block;
  font-style: normal;
}
.l-content {
  padding-top: 1.8em;
}

/* 改行 */
.br-sm,
.br-tb {
  display: none;
}

.br-pc {
  display: block;
}

/* リンク設定 */
.pdf::after {
  /* PDFファイルにアイコン付与 */
  content: "";
  display: inline-block;
  width: 15px;
  height: 15px;
  margin: 3px 4px 0px 4px;
  background-image: url(../img/pdf-icon.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.blank::after {
  /* 外部リンクにアイコン付与 */
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin: 3px 4px 0px 4px;
  background-image: url(../img/icon-outerlink.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* 幅 */
.l-article {
  width: 960px;
  max-width: 100%;
}

/*
   トップページ
*/
.p-mainVisual__textLayer {
  left: 45%;
}
.p-mainVisual__slideTitle {
  /* キャッチコピー */
  color: #fff;
  text-shadow: 0px 0px 10px #5f87c2, 0px 0px 10px hsl(215, 31%, 59%),
    0px 0px 10px #5f87c2;
  font-size: 40px;
  font-weight: bold;
}
.p-mainVisual__slideText {
  /* キャッチ サブテキスト */
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-size: 28px;
  color: #fff;
  text-shadow: #5f87c2 1px 1px 0, #5f87c2 -1px -1px 0, #5f87c2 -1px 1px 0,
    #5f87c2 1px -1px 0, #5f87c2 0px 1px 0, #5f87c2 0 -1px 0, #5f87c2 -1px 0 0,
    #5f87c2 1px 0 0;
  position: relative;
  line-height: 1.2;
  margin-left: 10%;
  margin-top: 16px;
  padding: 38px 0;
  margin-top: -23px;
}
.p-mainVisual__slideText::after {
  content: "";
  display: block;
  position: absolute;
  top: -38px;
  left: -40px;
  width: 667px;
  height: 172px;
  background: rgba(117, 144, 183, 0.6);
  z-index: -1;
  height: 100%;
  top: 0;
}
.p-mainVisual__imgLayer img {
  margin-left: 10%;
}
.p-mainVisual .c-filterLayer::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 20vw;
  height: 100%;
  background: linear-gradient(to right, #fff, #fff 60%, transparent);
}
.top-lead {
  text-align: center;
  margin-bottom: 52px;
}
.text-img > div {
  position: relative;
}
.text-img img {
  /* position: relative; */
  border-radius: 15px;
}
.text-img > div::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  border-radius: 15px;
}
.text-img > div p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  z-index: 1;
  width: 100%;
  text-align: center;
}
.text-img + p {
  padding: 0 0.8rem;
}
section:has(.recommend) {
  margin-top: 50px;
}
.recommend ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  list-style: none;
  padding: 0;
}
.recommend ul li:before {
  content: "";
  background-image: url(../img/check-square.png);
  background-repeat: no-repeat, no-repeat;
  width: 18px;
  height: 18px;
  display: inline-block;
  margin-right: 10px;
  vertical-align: middle;
  margin-top: -2px;
  background-size: contain;
}
.recommend ul li {
  padding-left: 28px;
  text-indent: -28px;
}
.service-box {
  width: 752px;
  max-width: 100%;
  margin: 50px auto auto;
}
.service-box .swell-block-columns__inner {
  justify-content: center;
  row-gap: 60px;
}
.service-box img {
  width: 200px;
  height: auto;
  max-width: 100%;
}
section:has(.news-list) {
  margin-bottom: 0;
}
.news-topics-item .flex-start > div {
  width: 215px;
}
.news-topics-item .label {
  display: inline-block;
  box-sizing: border-box;
  width: 120px;
  margin-left: 8px;
  background: #003d83;
  color: #fff;
  font-size: 14px;
  text-align: center;
  line-height: 1.8;
  padding-bottom: 2px;
}
.news-topics-item h3 {
  font-size: 1rem;
  font-weight: normal;
  margin-top: inherit;
  margin-left: 20px;
  padding-bottom: 0;
  width: calc(100% - 235px);
}
.news-topics-item h3::before {
  content: none;
}
section:has(.access) {
  margin-top: 0;
}
.access iframe {
  width: 100%;
}

/*
   会社概要
*/
.table-contents table {
  overflow: hidden;
}
.table-contents table th {
  height: 70px;
  padding-top: 13px;
  padding-bottom: 18px;
  padding-right: 0;
  position: relative;
  width: 290px !important;
  max-width: 100% !important;
  background-color: transparent;
  border: none;
}
.table-contents th p {
  display: grid;
  width: 338px;
  max-width: 100%;
  height: 100%;
  margin: 0;
  place-items: center;
  color: #fff;
  border: none;
}
.table-contents tr:first-of-type th::before,
.table-contents th::after {
  content: "";
  background-image: linear-gradient(
    to right,
    #c5c5c5,
    #c5c5c5 2px,
    transparent 2px,
    transparent 8px
  );
  background-size: 7px 2px;
  background-repeat: repeat-x;
  position: absolute;
  left: 10px;
  width: 100vw;
  height: 3px;
  bottom: 0;
}
.table-contents tr:first-of-type th::before {
  bottom: auto;
  top: 0;
}
.table-contents td {
  line-height: 1.5;
  padding: 15px;
  background-color: #fff;
  margin: 13px auto 18px;
  display: block;
  border: none;
}
.table-contents td:has(.map-btn) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 36px;
}
.map-btn a {
  color: #003d83;
  font-size: 12px;
  border: solid 1px #003d83;
  padding: 10px 24px;
  border-radius: 30px;
  transition: 0.3s;
}
.map-btn a:hover {
  background-color: #003d83;
  color: #fff;
}
.map-btn a:hover::after {
  -webkit-filter: brightness(0) invert(1);
  filter: brightness(0) invert(1);
  transition: 0.3s;
}

/*
   サービス
*/
.service-container {
  margin-top: 85px;
}
.service h3 {
  font-size: 24px;
  margin-bottom: 1rem;
}
.service-img-wrap {
  position: relative;
}
.num-font {
  font-family: "Orbitron", sans-serif;
  color: #fff;
  font-size: 64px;
  font-weight: 400;
  text-shadow: 0 4px 4px #808080;
  -webkit-text-stroke: 2px #003d83;
  text-stroke: 2px #003d83;
  position: absolute;
  top: -60px;
  left: -28px;
}
.service.img-right .num-font {
  left: auto;
  right: -28px;
}
.service-container .service {
  margin-bottom: 120px;
  position: relative;
}
.service-container .service::after,
.pp-container .pp-contents:not(:last-of-type)::after {
  content: "";
  background-image: linear-gradient(
    to right,
    #c5c5c5,
    #c5c5c5 2px,
    transparent 2px,
    transparent 8px
  );
  background-size: 7px 2px;
  background-repeat: repeat-x;
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  bottom: -50px;
}
.service-container > div > div.service:last-child::after {
  content: none;
}
.contact-box {
  margin-top: 50px !important;
  margin-left: auto;
  margin-right: auto;
  width: 660px;
  max-width: 100%;
}
.contact-tel {
  text-align: center;
  font-size: 24px;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 0;
}
.contact-tel + p {
  text-align: center;
}
.contact-right .is-style-btn_line a,
.topics-btn.is-style-btn_line a {
  background-color: #003d83;
  border: solid 1px #003d83;
  color: #fff;
}
.contact-right .is-style-btn_line a:hover,
.topics-btn.is-style-btn_line a:hover {
  background-color: #fff;
  color: #003d83 !important;
}

/*
   保険請求情報
*/
.topics-btn {
  margin-bottom: 8px;
}
.topics-btn.is-style-btn_line a {
  border-radius: 16px;
  width: 240px;
  max-width: 100%;
  min-width: auto;
  display: flex;
  margin: auto;
  align-items: center;
  justify-content: center;
}
.topics-btn.is-style-btn_line span {
  font-size: 24px;
  font-weight: bold;
  line-height: 1;
}
.topics-btn.is-style-btn_line span .btn-inner {
  font-size: 16px;
}
.topics-btn .pdf::after {
  width: 19px;
  height: 24px;
  margin-left: 16px;
}
.topics-btn + p {
  font-size: 0.8rem;
}
.topics-container .sec-blue {
  padding-top: 70px !important;
}
.topics-container .swell-block-columns__inner {
  justify-content: space-between;
}
.topics-container .topics-box {
  padding: 30px 32px 30px 30px;
}
.aside-wrapper > div.aside-content:not(:first-child) {
  margin-top: 40px;
}
.topics-archive-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.aside-content .topics-year-item {
  margin-bottom: 10px;
}
.year-text {
  font-size: 18px;
}
.topics-year-btn {
  width: 100%;
  text-align: left;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--color_main);
  border: none;
  padding: 8px 10px;
  cursor: pointer;
  font-weight: bold;
  border-radius: 6px;
  color: #fff;
  position: relative;
}

.toggle-icon {
  font-weight: bold;
  color: #fff;
  transition: transform 0.2s ease;
  position: absolute;
  right: 1rem;
}
.topics-year-btn.active .toggle-icon {
  transform: rotate(180deg);
}
.topics-month-list {
  list-style: none;
  margin: 0 0 8px 10px;
  padding-left: 10px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.topics-month-list.open {
  max-height: 500px;
  margin-bottom: 1em;
}
.topics-month-item {
  margin: 4px 0;
}
.topics-month-item a {
  display: block;
  padding: 2px 4px;
  text-decoration: none;
  color: #333;
  border-radius: 4px;
  transition: background-color 0.2s ease;
}
.topics-month-item a:hover {
  background: rgba(0, 0, 0, 0.05);
}
.topics-month-item .count {
  font-size: 0.9em;
}
.topics-box .news-topics-item .flex-start > div {
  width: 100%;
}
.topics-box .news-topics-item .label {
  padding: 0px 1rem 1px;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
.topics-box .news-topics-item h3 {
  width: 100%;
  margin-left: 0;
  padding-left: 0;
  margin-top: 8px;
}
/* ページネーション */
.post_content div .c-pagination .page-numbers {
  margin: 6px !important;
  border-radius: 3px;
}
[class*="page-numbers"].current,
[class*="page-numbers"]:hover {
  color: var(--color_main);
  border: solid 1px var(--color_main);
  background-color: #fff;
}
[class*="page-numbers"] {
  background-color: var(--color_main);
  color: #fff;
}
/* サイドバー */
.aside-content p {
  text-align: center;
  font-weight: bold;
  font-size: 18px;
  margin-bottom: 6px;
}
.wp-block-search__inside-wrapper {
  background-color: #fff;
  display: flex;
  flex: auto;
  flex-wrap: nowrap;
  max-width: 100%;
}
.wp-block-search.wp-block-search__button-inside
  .wp-block-search__inside-wrapper {
  border-color: #003d83;
}
.wp-block-search .wp-block-search__input {
  border-right: solid 1px #003d83;
  flex-grow: 1;
}
.wp-block-search__button-inside .wp-block-search__button {
  margin-left: 0;
  transition: 0.3s;
}
.wp-block-search__button-inside .wp-block-search__button:hover {
  color: #fff;
  background-color: #003d83;
}
.aside-content .bg-white {
  padding: 18px !important;
  margin-bottom: 0;
}
.widget_categories > ul > .cat-item > a,
.wp-block-categories-list > li > a {
  padding-left: 1.5em;
}
.topics-archive .topics-archive-list {
  padding-left: 0;
}
.topics-archive .topics-archive-list ul {
  padding-left: 0;
  list-style: none;
  text-align: center;
  margin-left: 0;
}

/* topics月別アーカイブページ */
.c-pageTitle.topics-archive-subttl::before {
  content: none;
}
.c-pageTitle.topics-archive-subttl .c-pageTitle__subTitle {
  display: none;
}


/*
   記事個別
*/
.single .l-content,
.archive .l-content,
.search .l-content {
  margin-bottom: 60px;
}
.single .aside-content .bg-white,
.archive .aside-content .bg-white,
.search .aside-content .bg-white {
  padding: 18px !important;
  margin-bottom: 0;
  border: solid 2px var(--color_main);
}
.topic_link {
  font-size: 0.8rem;
}

/*
  採用情報
*/
#main_content section.recruitment h2 {
  margin-top: 2.5rem;
}

/*
  お問い合わせフォーム
*/
.form-caution {
  border: solid 2px #ff2f2f;
  border-radius: 7px;
  background-color: #fff;
  padding: 1.5rem 2rem;
}
.mailform tr p {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
}
.mailform .must {
  position: absolute;
  left: 0;
  margin: 0px 8px;
  padding: 3px 5px;
  border: solid 3px #e73828;
  border-radius: 4px;
  background-color: #fff;
  text-shadow: none;
  color: #e73828;
  font-size: 12px;
  box-shadow: none;
}
.mailform textarea {
  width: 100% !important;
}
.form-radio input:not(:first-of-type) {
  margin-left: 1.5rem;
}
.mfp_buttons {
  margin-top: 50px;
}
.mfp_buttons button {
  margin: 0 10px;
  color: #003d83;
  font-size: 1.5rem;
  border: solid 1px #003d83;
  padding: 4px 24px;
  border-radius: 1rem;
  background: #fff;
  text-shadow: none;
}
.mfp_buttons button.btn-submit {
   color: #fff;
   background: #003d83;
}



/*
  お問い合わせ送信完了
*/
.post_content div.thanks,
.post_content .pp-container,
.post_content .tokushoho-container {
  margin-bottom: 80px !important;
}
.thanks-btm {
  text-align: center;
  font-weight: bold;
  font-size: 1.2rem;
}



/*
  アクセス
*/
section.access-container {
  margin-top: 0;
}

.access-box p,
.access-box ul {
  margin-bottom: 0;
}
.map-btn.access-btn {
  margin-top: 20px;
}
.map-btn.access-btn a {
  font-size: 14px;
  background-color: #003d83;
  color: #fff;
}
.map-btn.access-btn a::after {
  filter: brightness(0) invert(1);
}
.map-btn.access-btn a:hover {
  color: #003d83;
  background-color: #fff;
}
.map-btn.access-btn a:hover::after {
  filter: none;
}
.access-container > div > div:first-of-type {
  margin-bottom: 3em;
}
.access-container > div > div:last-child {
  margin-bottom: 80px !important;
}

/*
  プライバシーポリシー
*/
.pp-container .pp-contents {
  margin-bottom: 80px;
  margin-top: 50px;
  position: relative;
}
.pp-container .pp-contents h2 {
  margin-bottom: 1rem;
}
.policy-contact span {
  margin-left: 2em;
  display: inline-block;
}

/*
  リンク集
*/
.link-small {
  display: block;
  font-size: .85rem;
}
.link-large {
  font-weight: bold;
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}
.link-list li {
  transition: .3s;
  padding: .5rem 0;
  position: relative;
}
.link-list li:hover {
  background: var(--swl-color_hov_gray);
}
.link-list li:first-of-type::before,
.link-list li::after {
  content: "";
  background-image: linear-gradient(
    to right,
    #c5c5c5,
    #c5c5c5 2px,
    transparent 2px,
    transparent 8px
  );
  background-size: 7px 2px;
  background-repeat: repeat-x;
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  bottom: -5px;
}
.link-list li:first-of-type::before {
  bottom: auto;
  top: -10px;
}
.service-container > div > div.service:last-child::after {
  content: none;
}
.link-list li a::before {
  content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	bottom: -1px;
}


/*
  404ページ
*/
h1.c-ttl404 + div.post_content {
  margin-bottom: 120px !important;
}



/*
   フッター
*/
footer .l-container {
  max-width: 100%;
}
footer .w-footer__box #text-2 {
  margin-top: 1em;
}
footer .w-footer__box #text-2 .c-widget .textwidget > :not(:last-child) {
  margin-bottom: 0.5em;
}
footer #nav_menu-2 ul {
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  justify-content: flex-end;
}
footer .c-listMenu a {
  border-bottom: none;
}
.c-listMenu a:hover {
  padding: 0.75em 1em 0.75em 1.5em;
  border-bottom: 1px solid;
}
footer .c-listMenu a:before {
  content: none;
}
.l-footer__foot {
  margin-top: 2em;
}

/***************
   レスポンシブ
****************/
@media (min-width: 601px) {
  /* スマホの時に電話のリンクをつける */
  a[href^="tel:"] {
    display: inline-block;
    color: inherit;
    pointer-events: none;
    cursor: default;
  }
}

/* 1199px以下 */
@media (max-width: 1199px) {
  /* トップページ */
  .p-mainVisual__textLayer {
    left: 50%;
  }

  /* フッター */
  footer .w-footer__box:has(#nav_menu-2) {
    flex: 2;
  }
}
