@charset "UTF-8";
/*** The new CSS Reset - version 1.0.0 (last updated 8.7.2021) ***/
:where(:not(iframe,canvas,img,svg,video):not(svg *)) {
  all: unset;
  display: revert;
}

*,:after,:before {
  box-sizing: border-box;
}

ol,ul {
  list-style: none;
}

img {
  max-width: 100%;
}

table {
  border-collapse: collapse;
}

/* base
-----------------------------------------------*/
html {
  font-size: 62.5%;
  height: 100%;
}

body {
  font-family: YakuHanJP_Noto,Noto Sans JP,sans-serif;
  color: #333;
  font-weight: 400;
  line-height: 1.7;
  font-size: 1.6rem;
  -webkit-text-size-adjust: 100%;
  height: 100%;
}

a {
  cursor: pointer;
}

/* pc/sp display
-----------------------------------------------*/

.pc_none {
  display: none !important;
}

/*===============================================
 js-inview
===============================================*/
/* fadein
-----------------------------------------------*/
.js-inview-fadein {
  opacity: 0;
}

.fadein {
  animation-name: fadeInAnime;
  animation-fill-mode: forwards;
  animation-duration: 1s;
  animation-iteration-count: 1;
  animation-timing-function: ease;
  animation-delay: 0s;
  animation-direction: normal;
}

@keyframes fadeInAnime {
  0% {
    opacity: 0;
    transform: translateX(-15px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/*===============================================
 モジュール ボタン
===============================================*/
/* 通常ボタン
-----------------------------------------------*/
.btn {
  display: flex;
  justify-content: center;
  width: 100%;
}
.btn a {
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 300px;
  width: 100%;
  font-size: 1.8rem;
  padding: 18px 10px;
  transition: background-color .2s;
  font-weight: 500;
  position: relative;
}
.btn a span {
  z-index: 1;
}
.btn a span:after {
  position: absolute;
  right: 20px;
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f105";
  transition: transform .2s;
}
.btn a:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  z-index: 0;
  transition: all .2s ease-out;
  border-radius: 6px;
}
.btn a:hover span:after {
  transform: translateX(5px);
}
.btn a:hover:before {
  width: 100%;
}
.btn.btn--primary a {
  background-color: #243564;
}
.btn.btn--primary a:before {
  background-color: #38539c;
}
.btn.btn--primary a span {
  color: #fff;
}
.btn.btn--white a {
  background-color: #fff;
}
.btn.btn--white a:before {
  background-color: #cdd6ed;
}
.btn.btn--white a span {
  color: #243564;
}
.btn.btn--left {
  justify-content: flex-start;
}
.btn.btn--right {
  justify-content: flex-end;
}

/* トップへ戻るボタン
-----------------------------------------------*/
.btn_page_top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 70px;
  height: 70px;
  transform: translateX(90px);
  opacity: 0;
  transition: all .3s;
}
.btn_page_top.visible {
  transform: translateX(0);
  opacity: 1;
}
.btn_page_top.visible:hover {
  transform: translateY(-10px);
}
.btn_page_top a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 100%;
  background-color: rgba(23,33,63,.6);
  color: #fff;
  font-size: 2rem;
  transition: all .2s;
}
.btn_page_top a:hover {
  background-color: rgba(221,165,0,.7);
  font-size: 2.5rem;
}

/*===============================================
 モジュール 見出し
===============================================*/
/* 見出しレベル1
-----------------------------------------------*/
.hl_1 {
  font-size: 3rem;
  position: relative;
  font-weight: 700;
  padding: 0 .3em;
  line-height: 1.4;
  color: #333;
  display: inline-block;
}
.hl_1:after {
  position: absolute;
  bottom: -12px;
  left: 0;
  content: "";
  width: 0;
  opacity: 0;
  height: 3px;
  background-color: #dda500;
}
.hl_1.hl_1--white {
  color: #fff;
}

/* inview */
.inview_line:after {
  animation-name: inview_line;
  animation-fill-mode: forwards;
  animation-duration: .7s;
  animation-iteration-count: 1;
  animation-timing-function: ease;
  animation-delay: 0s;
  animation-direction: normal;
}
@keyframes inview_line {
  0% {
    width: 0;
    opacity: 0;
  }
  to {
    width: 100%;
    opacity: 1;
  }
}

/* 見出しレベル2
-----------------------------------------------*/
.hl_2 {
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.4;
  color: #333;
  border-bottom: 1px solid #ddd;
  width: 100%;
}
.hl_2:after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  margin-top: 14px;
  background-color: #dda500;
}
.hl_2 i {
  color: #243564;
}

/*===============================================
 コンポーネント ヘッダー PC用
===============================================*/
header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  box-shadow: 0 0 6px rgba(36,53,100,.2);
}
header .h_logo {
  width: 180px;
  flex-shrink: 0;
  margin-left: 20px;
}
header .h_logo a {
  display: flex;
}
header .h_nav {
  margin-left: auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
}
header .h_nav li {
  line-height: 1.3;
}
header .h_nav li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 500;
  font-size: 1.3rem;
  position: relative;
  gap: 6px;
}
header .h_nav li a:after {
  position: absolute;
  left: 0;
  bottom: -8px;
  content: "";
  width: 0;
  opacity: 0;
  height: 3px;
  background-color: #dda500;
  transition: all .2s;
}
header .h_nav li a span {
  font-family: Edu TAS Beginner,cursive;
  font-size: 2rem;
  color: #243564;
  transition: all .2s;
}
header .h_nav li a:hover:after {
  opacity: 1;
  width: 100%;
}
header .h_nav li a:hover span {
  color: #3f5daf;
}
header .h_nav li.current a:after {
  opacity: 1;
  width: 100%;
}
header .h_form {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #dda500;
  height: 60px;
  width: 160px;
  border-radius: 6px;
  color: #fff;
  gap: 6px;
  font-size: 1.4rem;
  font-weight: 500;
  transition: background-color .2s;
}
header .h_form:before {
  font-family: Font Awesome\ 5 Free;
  font-weight: 500;
  content: "\f0e0";
  font-size: 2rem;
}
header .h_form:hover {
  background-color: #f7b800;
}

/*===============================================
 コンポーネント ヘッダー SP用
===============================================*/
.sp_nav_btn {
  margin-left: auto;
  font-size: 2rem;
}

/* モーダルベースレイアウト
-----------------------------------------------*/
/* モーダル */
.modal-overlay {
  display: flex;
  justify-content: center;
  position: fixed;
  background: rgba(0,0,0,.6);
  bottom: 0;
  left: 0;
  right: 0;
  top: 0;
  z-index: 100;
}

.modal-container {
  background-color: #243564;
  width: 100%;
  overflow-y: auto;
  padding: 20px;
}

.modal-header {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  width: 100%;
  margin-bottom: 30px;
}

.modal-close {
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
}
.modal-close:before {
  content: "✕";
}

.modal-open {
  display: block;
  cursor: pointer;
}

/* モーダルアニメーション */
@keyframes mmfadeIn {
  0% {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes mmfadeOut {
  0% {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes mmslideIn {
  0% {
    transform: translateY(-5%);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes mmslideOut {
  0% {
    transform: translateY(0);
  }
  to {
    transform: translateY(0);
  }
}
.micromodal-slide {
  display: none;
}

.micromodal-slide.is-open {
  display: block;
}

.micromodal-slide[aria-hidden=false] .modal-overlay {
  animation: mmfadeIn .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide[aria-hidden=false] .modal-container {
  animation: mmslideIn .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide[aria-hidden=true] .modal-overlay {
  animation: mmfadeOut .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide[aria-hidden=true] .modal-container {
  animation: mmslideOut .3s cubic-bezier(0, 0, .2, 1);
}

.micromodal-slide .modal-container,.micromodal-slide .modal-overlay {
  will-change: transform;
}

/* モーダルコンテンツ
-----------------------------------------------*/
.sp_nav_contents {
  color: #fff;
  line-height: 1.4;
}
.sp_nav_contents ul {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  font-size: 1.7rem;
}
.sp_nav_contents ul li a {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 4px;
  font-weight: 700;
}
.sp_nav_contents ul li a span {
  font-family: Edu TAS Beginner,cursive;
  font-weight: 400;
}
.sp_nav_contents__form {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}
.sp_nav_contents__form a {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #dda500;
  height: 60px;
  width: 200px;
  border-radius: 6px;
  color: #fff;
  gap: 4px;
  font-size: 1.6rem;
  font-weight: 500;
}
.sp_nav_contents__form a:before {
  font-family: Font Awesome\ 5 Free;
  font-weight: 500;
  content: "\f0e0";
  font-size: 2rem;
}

/*===============================================
 コンポーネント footer
===============================================*/
footer {
  position: sticky;
  top: 100vh;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 40px;
  background-color: rgba(36,53,100,.05);
}
footer .f_logo {
  width: 160px;
  flex-shrink: 0;
}
footer .f_content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
footer .f_content__nav {
  display: flex;
  align-items: center;
  line-height: 1.4;
  gap: 24px;
  font-size: 1.3rem;
  font-weight: 500;
  color: #243564;
}
footer .f_content__company {
  font-size: 1.3rem;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  line-height: 1.4;
}
footer .f_content__company span {
  font-weight: 500;
}

/*===============================================
 コンポーネント 記事リスト
===============================================*/
.topics_list {
  width: 100%;
  display: grid;
  gap: 40px;
}

.topics_list__articles {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  align-items: flex-start;
  gap: 40px 16px;
}
.topics_list__articles__item {
  display: grid;
  gap: 10px;
  position: relative;
}
.topics_list__articles__item__thumb {
  background: no-repeat 50%/cover;
  aspect-ratio: 3/2;
  transition: all .2s;
  position: relative;
}
.topics_list__articles__item__title {
  display: grid;
  gap: 4px;
}
.topics_list__articles__item__title h3 {
  font-size: 1.6rem;
  line-height: 1.4;
  font-weight: 500;
  transition: color .2s;
}
.topics_list__articles__item__title h3 a:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.topics_list__articles__item__title time {
  color: #8e8e8e;
  font-size: 1.2rem;
}
.topics_list__articles__item__title__tag {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}
.topics_list__articles__item__title__tag a {
  position: relative;
  border: 1px solid rgba(36,53,100,.4);
  border-radius: 4px;
  padding: 4px 6px;
  line-height: 1;
  font-size: 1.1rem;
  color: #243564;
  font-weight: 500;
  transition: all .2s;
}
.topics_list__articles__item__title__tag a:hover {
  background-color: #243564;
  color: #fff;
}
.topics_list__articles__item:hover .topics_list__articles__item__thumb {
  box-shadow: 0 4px 10px rgba(36,53,100,.2);
  transform: translateY(-4px);
}
.topics_list__articles__item:hover h3 {
  color: #243564;
}

.topics_list__pager {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 20px;
  gap: 6px;
}
.topics_list__pager a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(36,53,100,.3);
  color: #243564;
  border-radius: 4px;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1;
  transition: background-color .2s;
}
.topics_list__pager a:hover {
  background-color: rgba(36,53,100,.1);
}
.topics_list__pager a.active {
  background-color: #243564;
  color: #fff;
}

/*===============================================
 コンポーネント サイドカラム
===============================================*/
.side_column {
  display: grid;
  gap: 28px;
  position: sticky;
  top: 20px;
}
.side_column__tag {
  display: grid;
  gap: 16px;
  background-color: #fff;
  box-shadow: 0 0 10px rgba(36,53,100,.16);
  border-radius: 8px;
  padding: 20px;
}
.side_column__tag__title {
  font-size: 1.7rem;
  color: #243564;
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
}
.side_column__tag__title:before {
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f0d7";
}
.side_column__tag__item {
  font-size: 1.4rem;
}
.side_column__tag__item li {
  border-top: 1px solid #ddd;
}
.side_column__tag__item li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px;
}
.side_column__tag__item li a span {
  font-size: 1.2rem;
  color: #8e8e8e;
  margin-left: auto;
}
.side_column__tag__item li a:after {
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f105";
  color: #333;
}
.side_column__tag__item li a:hover {
  color: #3f5daf;
}
.side_column__latest {
  display: grid;
  gap: 20px;
}
.side_column__latest__list {
  display: grid;
  gap: 8px;
}
.side_column__latest__list__item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.side_column__latest__list__item:not(:last-child) {
  border-bottom: 1px solid #ddd;
  padding-bottom: 8px;
}
.side_column__latest__list__item__thumb {
  width: 70px;
  height: 70px;
  flex-shrink: 0;
  background: no-repeat 50%/cover;
  transition: all .2s;
}
.side_column__latest__list__item__title {
  display: grid;
  gap: 4px;
}
.side_column__latest__list__item__title h2 {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5;
  transition: all .2s;
}
.side_column__latest__list__item__title time {
  font-size: 1.1rem;
  color: #8e8e8e;
}
.side_column__latest__list__item:hover .side_column__latest__list__item__thumb {
  opacity: .8;
}
.side_column__latest__list__item:hover .side_column__latest__list__item__title h2 {
  color: #243564;
}

/*===============================================
 コンポーネント トピックパス
===============================================*/
.topic_path {
  background-color: rgba(36,53,100,.05);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding: 14px 40px;
  font-size: 1.3rem;
  color: #575757;
  gap: 6px 10px;
  line-height: 1.3;
}
.topic_path a {
  display: flex;
  align-items: center;
  gap: 10px;
}
.topic_path a+a:before {
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f105";
  font-size: .8em;
}
.topic_path a:hover {
  color: #3f5daf;
}

/*===============================================
 個別ページ 共通レイアウト
===============================================*/
/* wrap
-----------------------------------------------*/
.wrap_center {
  display: grid;
  justify-items: center;
  padding: 80px 30px;
}
.wrap_center.wrap_center--margin-top-zero {
  padding-top: 0;
}
.wrap_center__inner {
  display: grid;
  gap: 60px;
  max-width: 800px;
  width: 100%;
}
.wrap_center__inner.wrap_center__inner--column {
  grid-template-columns: 1fr 280px;
  align-items: flex-start;
  gap: 40px;
  max-width: 1120px;
}
.wrap_center__inner section {
  display: grid;
  gap: 30px;
  justify-items: center;
}

/* ページタイトル
-----------------------------------------------*/
.page_title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #243564;
  padding: 60px 20px 160px;
  margin-bottom: -100px;
}
.page_title .category_title {
  color: #fff;
  margin-top: 20px;
}

/* トップイメージ
-----------------------------------------------*/
.page_top_image {
  display: grid;
  height: 360px;
}
.page_top_image--single {
  grid-template-columns: 1fr;
}
.page_top_image--multiple {
  grid-template-columns: repeat(4, 1fr);
}
.page_top_image__item {
  background: no-repeat 50%/cover;
}

/* カラム
-----------------------------------------------*/
.sec_body {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: 100%;
}
.sec_body--column {
  flex-direction: row;
}
.sec_body--column .sec__image {
  width: 300px;
  flex-shrink: 0;
}

/* テキスト
-----------------------------------------------*/
.sec__text {
  width: 100%;
}
.sec__text p {
  line-height: 2;
}
.sec__text p+p {
  margin-top: 1em;
}

/* 写真
-----------------------------------------------*/
.sec__image {
  display: grid;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
}
.sec__image img {
  width: 100%;
}
.sec__image p {
  color: #575757;
  font-size: 1.3rem;
  line-height: 1.5;
}

/* リストスタイル
-----------------------------------------------*/
.sec__list li {
  font-size: 1.4rem;
  padding: 4px;
}
.sec__list li:not(:first-child) {
  border-top: 1px solid #ddd;
}
.sec__list li.sec__list__title {
  font-weight: 500;
  margin-bottom: .5em;
  font-size: 1.6rem;
}

/* 個別ページへのリンク
-----------------------------------------------*/
.page_link {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  width: 100%;
}
.page_link__item {
  border: 1px solid #243564;
  font-size: 1.8rem;
  padding: 24px;
  transition: all .2s;
  position: relative;
  color: #243564;
}
.page_link__item span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-weight: 500;
  z-index: 2;
  position: relative;
}
.page_link__item span:after {
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f105";
}
.page_link__item:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: #243564;
  z-index: 1;
  transition: width .2s;
}
.page_link__item:hover {
  color: #fff;
}
.page_link__item:hover:after {
  width: 100%;
}

/*===============================================
 トップページ
===============================================*/
/* インナー
-----------------------------------------------*/
#home section {
  display: grid;
  justify-items: center;
  width: 100%;
}

.inner_wide {
  max-width: 1000px;
  width: 100%;
}

/* トップイメージ
-----------------------------------------------*/
.home_fv {
  background: url(../img/fv.jpg) no-repeat 50%/cover;
  padding: 120px 60px;
}
.home_fv__contents {
  display: flex;
  flex-direction: column;
  line-height: 1.4;
}
.home_fv__contents h2 {
  font-size: 4.8rem;
  font-weight: 700;
  margin-bottom: 8px;
  letter-spacing: .05em;
}
.home_fv__contents p {
  font-size: 2rem;
  margin-bottom: 28px;
  font-weight: 500;
}
.home_fv__contents img {
  width: 380px;
  margin-bottom: 56px;
}

/* お知らせ
-----------------------------------------------*/
.home_topics {
  padding: 50px 30px;
}
.home_topics__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: center;
  gap: 40px;
}
.home_topics__grid__text p {
  font-size: 1.6rem;
  line-height: 2;
}
.home_topics__grid__topics p {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
  font-weight: 500;
}
.home_topics__grid__topics p:after,.home_topics__grid__topics p:before {
  content: "";
  height: 2px;
  flex-grow: 1;
}
.home_topics__grid__topics p:before {
  margin-right: 1rem;
  background: linear-gradient(90deg, rgba(221,165,0,0), #dda500);
}
.home_topics__grid__topics p:after {
  margin-left: 1rem;
  background: linear-gradient(90deg, #dda500, rgba(221,165,0,0));
}
.home_topics__grid__topics ul li {
  border-bottom: 1px solid #ddd;
}
.home_topics__grid__topics ul li a {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5;
  padding: 8px 4px;
  display: flex;
  align-items: center;
  gap: 20px;
  transition: color .2s;
  color: #333;
}
.home_topics__grid__topics ul li a:hover {
  color: #3f5daf;
}
.home_topics__grid__topics ul li a time {
  margin-left: auto;
  color: #8e8e8e;
  font-size: 1.2rem;
  font-weight: 400;
}
.home_topics__grid__topics__more {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}
.home_topics__grid__topics__more a {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 1.3rem;
}
.home_topics__grid__topics__more a:after {
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f105";
  transform: translateX(0);
  transition: transform .2s;
}
.home_topics__grid__topics__more a:hover {
  color: #243564;
}
.home_topics__grid__topics__more a:hover:after {
  transform: translateX(.3em);
}

/* 家づくりについて
-----------------------------------------------*/
.home_about {
  background: #243564;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.home_about__picture {
  width: 100%;
  display: grid;
  grid-template-areas: "p1 p1" "p2 p3";
}
.home_about__picture div {
  background: no-repeat 50%/cover;
}
.home_about__picture div:first-child {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  -ms-grid-column-span: 2;
  grid-area: p1;
}
.home_about__picture div:nth-child(2) {
  -ms-grid-row: 2;
  -ms-grid-column: 1;
  grid-area: p2;
}
.home_about__picture div :nth-child(3) {
  -ms-grid-row: 2;
  -ms-grid-column: 2;
  grid-area: p3;
}
.home_about__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.home_about__text__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 440px;
  width: 100%;
  gap: 40px;
  padding: 140px 20px;
}
.home_about__text__inner p {
  line-height: 1.8;
  color: #fff;
}

/* 施工事例
-----------------------------------------------*/
.home_works {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  padding: 60px 20px;
}
.home_works__title {
  display: flex;
  align-items: center;
  gap: 30px;
}
.home_works__title .hl_1 {
  flex-shrink: 0;
}
.home_works .topics_list__articles {
  grid-template-columns: repeat(4, 1fr);
}

/* バナー枠
-----------------------------------------------*/
.home_bana {
  margin-bottom: 40px;
}
.home_bana .inner_wide {
  overflow: hidden;
}

.sliderArea {
  max-width: calc(100% - 20px);
  margin: 0 auto;
  padding: 0 25px;
}

.slick-slide {
  margin: 0 5px;
}

.slick-slide img {
  width: 100%;
  height: auto;
}

.slick-next:before,.slick-prev:before {
  color: #243564;
}

/*===============================================
 富樫建設について
===============================================*/
/* ロゴ
-----------------------------------------------*/
.about_logo {
  width: 280px;
  margin-left: -20px;
}

/*===============================================
 記事詳細ページ
===============================================*/
/* wrap
-----------------------------------------------*/
.article_wrap {
  width: 100%;
  display: grid;
  justify-items: center;
}
.article_wrap__inner {
  max-width: 700px;
  width: 100%;
  display: grid;
  gap: 30px;
}

/* 記事ヘッダー
-----------------------------------------------*/
.article__header {
  display: grid;
  gap: 24px;
}
.article__header__tag {
  display: flex;
  align-items: center;
  gap: 10px;
}
.article__header__tag__item {
  font-size: 1.3rem;
  color: #243564;
  background-color: #243564;
  line-height: 1;
  padding: 8px 10px;
  border-left: 6px solid #dda500;
  color: #fff;
  font-weight: 500;
}
.article__header__title {
  display: grid;
  gap: 20px;
}
.article__header__title h1 {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
}
.article__header__title time {
  color: #8e8e8e;
  font-size: 1.5rem;
}

/* 記事本文
-----------------------------------------------*/
.article__body>p {
  line-height: 2;
  margin-bottom: 2em;
}
.article__body>p a {
  color: #3f5daf;
  text-decoration: underline;
}
.article__body .imgbox {
  display: grid;
  gap: 10px;
  margin-bottom: 40px;
}
.article__body .imgbox.img_right {
  max-width: calc(50% - 32px);
  margin: 0 0 32px 32px;
  clear: both;
  float: right;
}
.article__body .imgbox.img_left {
  max-width: calc(50% - 32px);
  margin: 0 32px 32px 0;
  clear: both;
  float: left;
}
.article__body .imgbox a {
  transition: opacity .2s;
}
.article__body .imgbox a:hover {
  opacity: .8;
}
.article__body .imgbox a img {
  width: 100%;
  display: block;
}
.article__body .imgbox p {
  font-size: 1.3rem;
  color: #575757;
  line-height: 1.5;
}

/*===============================================
 会社概要
===============================================*/
/* google map
-----------------------------------------------*/
.googlemap {
  width: 100%;
  position: relative;
  padding-top: 56.25%;
}
.googlemap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*===============================================
 お問い合わせページ
===============================================*/
.form_contents {
  max-width: 800px;
  width: 100%;
  background-color: #fff;
  box-shadow: 0 0 10px rgba(36,53,100,.16);
  border-radius: 8px;
  padding: 48px;
  display: grid;
  gap: 36px;
}
.form_contents p {
  font-size: 1.6rem;
  color: #575757;
}
.form_contents p.note {
  font-size: 1.4rem;
}
.form_contents dl {
  display: grid;
  gap: 8px;
}
.form_contents dl dt {
  font-size: 1.5rem;
  color: #575757;
  display: flex;
  align-items: center;
  gap: 4px;
}
.form_contents dl dt span {
  font-size: 1rem;
  display: flex;
  align-items: center;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 100px;
  font-weight: 500;
  color: #fff;
}
.form_contents dl dt span.required {
  background-color: #ef5656;
}
.form_contents dl dt span.optional {
  background-color: #969696;
}
.form_contents dl dd {
  display: grid;
  gap: 10px;
}
.form_contents dl dd select {
  background-color: #eee;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 1.6rem;
  max-width: 300px;
  width: 100%;
}
.form_contents dl dd select.error {
  background-color: rgba(239,86,86,.2);
}
.form_contents dl dd input,.form_contents dl dd textarea {
  font-size: 1.6rem;
  width: 100%;
  border: 2px solid #ddd;
  border-radius: 6px;
  padding: 10px 12px;
  transition: all .2s;
}
.form_contents dl dd input:focus,.form_contents dl dd textarea:focus {
  border: 2px solid #243564;
}
.form_contents dl dd input::-moz-placeholder,.form_contents dl dd textarea::-moz-placeholder {
  color: #bbb;
}
.form_contents dl dd input::placeholder,.form_contents dl dd textarea::placeholder {
  color: #bbb;
}
.form_contents dl dd input.error,.form_contents dl dd textarea.error {
  border: 2px solid #ef5656;
}
.form_contents dl dd textarea {
  height: 200px;
}
.form_contents dl dd label.error {
  color: #ef5656;
  font-size: 1.4rem;
  display: flex;
  align-items: center;
  gap: 2px;
  line-height: 1;
}
.form_contents dl dd label.error:before {
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f06a";
  margin-top: 2px;
}
.form_contents .form_btn input {
  background-color: #243564;
  color: #fff;
  display: flex;
  justify-content: center;
  font-weight: 700;
  font-size: 1.7rem;
  padding: 18px 10px;
  border-radius: 6px;
  width: 100%;
  transition: background-color .2s;
  cursor: pointer;
}
.form_contents .form_btn input:hover {
  background-color: #32498a;
}
.form_contents .answer {
  border-left: 4px solid #243564;
  padding: 16px;
  font-size: 1.7rem;
}
.form_contents .form_btn_edit {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  cursor: pointer;
  color: #575757;
}
.form_contents .form_btn_edit:before {
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f044";
  margin-right: .3em;
}
@media (max-width:768px){
  .sp_none {
    display: none !important;
  }
  .pc_none {
    display: block !important;
  }
  .hl_1 {
    font-size: 2.4rem;
  }
  .hl_2 {
    font-size: 2rem;
  }
  header .h_logo {
    width: 150px;
    margin-left: 0;
  }
  footer {
    flex-direction: column;
  }
  footer .f_content {
    gap: 20px;
  }
  footer .f_content__nav {
    flex-direction: column;
    gap: 8px;
  }
  footer .f_content__company {
    flex-direction: column;
    align-items: center;
  }
  .topics_list__articles {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 10px;
  }
  .topic_path {
    padding: 10px 16px;
  }
  .wrap_center {
    padding: 40px 16px;
  }
  .wrap_center__inner.wrap_center__inner--column {
    grid-template-columns: 1fr;
  }
  .page_title {
    padding: 40px 20px 100px;
    margin-bottom: -60px;
  }
  .page_top_image--single {
    height: 200px;
  }
  .page_top_image--multiple {
    grid-template-columns: repeat(2, 1fr);
    height: 300px;
  }
  .sec_body--column {
    flex-direction: column;
  }
  .sec_body--column .sec__image {
    width: 100%;
  }
  .page_link {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .home_fv {
    background: url(../img/fv_sp.jpg?v=02) no-repeat bottom/cover;
    min-height: 550px;
    padding: 40px 20px;
  }
  .home_fv__contents {
    align-items: center;
  }
  .home_fv__contents .btn {
    justify-content: center;
  }
  .home_fv__contents h2 {
    font-size: 3.2rem;
  }
  .home_fv__contents p {
    font-size: 1.5rem;
  }
  .home_fv__contents img {
    width: 200px;
    margin-bottom: 30px;
  }
  .home_topics {
    padding: 36px 16px;
  }
  .home_topics__grid {
    grid-template-columns: 1fr;
  }
  .home_about {
    grid-template-columns: 1fr;
  }
  .home_about__picture {
    height: 400px;
  }
  .home_about__text__inner {
    padding: 60px 20px;
  }
  .home_works {
    padding: 40px 16px;
  }
  .home_works__title {
    flex-direction: column;
  }
  .home_works .topics_list__articles {
    grid-template-columns: repeat(2, 1fr);
  }
  .about_logo {
    width: 200px;
  }
  .article__header__tag__item {
    font-size: 1.1rem;
  }
  .article__header__title h1 {
    font-size: 2.4rem;
  }
  .article__body>p {
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .article__body .imgbox p {
    font-size: 1.2rem;
  }
  .googlemap {
    padding-top: 100%;
  }
  .form_contents {
    padding: 30px 20px;
  }}
