@charset "UTF-8";
@import url(all.css);
/* ###################### */
/* ######## 変数 ######## */
/* ###################### */
/* カラー */
/* アイコン */
/* 書式 */
/* ###################### */
/* ######## 関数 ######## */
/* ###################### */
/*===============================================
  切り替え用
===============================================*/
.pc-none {
  display: none !important;
}

a[href^="tel:"] {
  pointer-events: none;
}

/*===============================================
  ページネーション
===============================================*/
.pagenation {
  padding-top: 48px;
}
.pagenation li {
  width: 36px;
  font-size: 1.6rem;
  line-height: 40px;
  margin: 5px 4px 0;
}

/*===============================================
  詳細ページ前後
===============================================*/
.paginated-link {
  padding-top: 24px;
  margin-top: 32px;
}
.paginated-link li {
  width: 110px;
}
.paginated-link li a {
  font-size: 1.6rem;
  line-height: 1.625;
  letter-spacing: 0em;
}
.paginated-link li.prev-link a::before {
  margin-right: 1em;
}
.paginated-link li.next-link a::after {
  margin-left: 1em;
}

/*===============================================
  wrapper
===============================================*/
#wrapper {
  min-width: 1280px;
}

/*===============================================
  header
===============================================*/
#header .h-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 120px;
  padding: 20px 53px;
}
/* 追加ここから　2025/08/25 */
#header.header-entrance .h-inner {
  min-height: 80px;
  padding: 13px 40px 14px 20px;
}
#header .h-info {
  display: flex;
  justify-content: center;
  align-items: stretch;
  column-gap: 10px;
}
#header .h-tels {
  align-items: flex-end;
}
#header .h-tels .com-replace {
  margin-top: 8px;
}
#header .h-tels .com-replace img {
  height: 12px;
}
#header .h-time {
  display: flex;
  justify-content: center;
  align-items: center;
  width: auto;
  min-width: 1.125em;
}
/* 追加ここまで */

/*===============================================
  footer
===============================================*/
#footer {
  padding-top: 110px;
}
#footer .f-logo {
  margin-bottom: 50px;
}
#footer .f-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 854px;
  padding-bottom: 70px;
}
#footer .f-oth {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  width: 50%;
}
#footer .f-oth > * {
  margin-top: 40px;
}
#footer .f-oth > *:first-child {
  margin-top: 0;
}
#footer .f-oth > *:first-child.f-info {
  margin-top: -0.9375em;
}
#footer .f-info {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  font-size: 1.6rem;
  line-height: 1.75;
  letter-spacing: 0.08em;
  margin: -0.9375em 0 -0.375em;
}
#footer .f-info > * {
  margin-top: 0.5625em;
}
#footer .f-info dl {
  margin-right: 1em;
}
#footer .f-ig {
  width: 346px;
  height: 60px;
}
#footer .f-ig a {
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  padding-right: 56px;
}
#footer .f-ig a::before {
  width: 30px;
  height: 30px;
  margin-right: 26px;
}
#footer .f-ig a::after {
  width: 14px;
  right: 18px;
}
#footer .f-bnr a {
  box-shadow: 0 0 10px rgba(34, 34, 34, 0.3);
}

/*フッターナビ
-----------------------------*/
.fnav {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 1080px;
  padding: 30px 0 31px;
  margin: 0 auto;
}
.fnav ul {
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 2;
}
.fnav ul:first-child {
  margin-top: -0.5em;
}
.fnav ul:first-child.fnav-list {
  margin-top: -0.625em;
}
.fnav ul:last-child {
  margin-bottom: -0.5em;
}
.fnav ul:last-child.fnav-list {
  margin-bottom: -0.625em;
}
.fnav ul li {
  margin-right: 2em;
}
.fnav ul li:last-of-type {
  margin-right: 0;
}
.fnav ul li a {
  letter-spacing: 0.08em;
  margin-right: -0.08em;
}
.fnav .fnav-list {
  font-size: 1.6rem;
  line-height: 2.25;
}
.fnav .fnav-sub-list {
  font-size: 1.4rem;
}

/*コピーライト
-----------------------------*/
.copy {
  padding: 13px 0;
}
.copy p {
  font-size: 1.4rem;
  letter-spacing: 0.08em;
}
/* 追加ここから　2025/08/25 */
.copy.copy-entrance {
  padding: 13px 0 9px;
}
/* 追加ここまで */

/*===============================================
  fixed固定
===============================================*/
/*サイドボタン
-----------------------------*/
#side {
  display: flex;
  justify-content: center;
  align-items: stretch;
  bottom: 20px;
  right: -430px;
  transition: all 0.56s;
}
#side:hover {
  right: 0;
}
#side .side-ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 65px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0;
  line-height: 1;
  background: #23985c;
  border-radius: 20px 0 0 20px;
}
#side .side-ttl > span {
  display: block;
  font-size: 1.8rem;
  letter-spacing: 0.08em;
  margin-bottom: -0.08em;
  writing-mode: vertical-rl;
  max-height: auto;
  text-orientation: mixed;
}
@media screen and (max-width: 767px) {
  #side .side-ttl > span {
    writing-mode: horizontal-tb;
    max-height: inherit;
  }
}
#side .side-ttl::before {
  content: "";
  display: block;
  width: 23px;
  height: 23px;
  background: url(../img/common/side_icon.png) no-repeat center/contain;
  margin-bottom: 11px;
}
#side .side-box {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 430px;
  background: #fff;
  padding: clamp(30px, 2.34375vw, 45px) 0;
}
#side .side-box .box-time {
  margin-top: 1em;
}
#side .side-box .box-links {
  width: 350px;
  padding-top: 26px;
}
#side .side-box .box-links .link-item {
  margin-bottom: 22px;
}
#side .side-box .box-links .link-item:last-of-type {
  margin-bottom: 0;
}

/*===============================================
  visual
===============================================*/
/*メインビジュアル
-----------------------------*/
.main-visual {
  height: clamp(560px, 43.2291666667vw, 830px);
  padding-bottom: 30px;
  background: url(../img/common/visual/mv-bg.png) no-repeat left top/min(1920px, 100%);
}
.main-visual::after {
  height: clamp(234px, 18.1770833333vw, 349px);
}
.main-visual .mv-box {
  width: clamp(530px, 41.3020833333vw, 793px);
  height: clamp(182px, 14.21875vw, 273px);
  margin-left: max(50% - 872px, 4.584%);
  margin-bottom: min(180px, 9.375%);
  padding: 0 clamp(30px, 2.2916666667vw, 44px) clamp(23px, 1.7708333333vw, 34px) 0;
}
.main-visual .mv-box::before {
  -webkit-clip-path: polygon(0 50.916%, 39.597% 0, calc(39.597% + 2px) 0, 100% 50.916%, 100% 100%, 0 100%);
  clip-path: polygon(0 50.916%, 39.597% 0, calc(39.597% + 2px) 0, 100% 50.916%, 100% 100%, 0 100%);
}
.main-visual .mv-box::after {
  width: 23.96%;
  padding-top: 19.042%;
  right: -7.945%;
  top: 13.554%;
}
.main-visual .mv-box .catch {
  font-size: clamp(2.4rem, 1.8229166667vw, 3.5rem);
  letter-spacing: 0.08em;
  text-shadow: 0 4px 4px rgba(34, 34, 34, 0.2);
  margin-right: -0.33em;
  margin-bottom: 0.62857143em;
}
.main-visual .mv-box .catch .b {
  font-size: clamp(3rem, 2.34375vw, 4.5rem);
}
.main-visual .mv-box .catch .b::before {
  content: "";
  width: calc(3em - 2px);
  height: calc(2em + 1px);
  background: url(../img/common/visual/deco_catch_txt.png) no-repeat right top/contain;
  position: absolute;
  right: calc(-0.8em - 3px);
  top: -2em;
  z-index: -2;
}
.main-visual .mv-list li {
  font-size: clamp(1.7rem, 1.3020833333vw, 2.5rem);
  line-height: 1.6;
  letter-spacing: 0.08em;
  padding: 0 calc(0.92em + 2px) 0 calc(1em + 2px);
  border-radius: 5px;
  margin: 0 clamp(5px, 0.3645833333vw, 7px);
}
.main-visual .mv-imgs {
  max-width: 1920px;
  height: calc(100% - 23px);
  -webkit-clip-path: polygon(0 54.647%, 60.209% 0, calc(60.209% + 2px) 0, 100% 54.647%, 100% 100%, 0 100%);
  clip-path: polygon(0 54.647%, 60.209% 0, calc(60.209% + 2px) 0, 100% 54.647%, 100% 100%, 0 100%);
  bottom: 30px;
}
.main-visual .mv-imgs li {
  width: 50%;
}
.main-visual .mv-imgs li:nth-of-type(1) {
  height: 54.771%;
}
.main-visual .mv-imgs li:nth-of-type(2) {
  height: 63.444%;
}
.main-visual .mv-imgs li:nth-of-type(3),
.main-visual .mv-imgs li:nth-of-type(4) {
  height: 36.556%;
}

/*サブビジュアル
-----------------------------*/
.sub-visual {
  height: 350px;
}
.sub-visual .sv-box {
  width: 1080px;
  height: 220px;
  border-radius: 30px;
}
.sub-visual .sv-box::after {
  width: 190px;
  height: 151px;
  right: -104px;
  bottom: -22px;
}
.sub-visual .sv-box .catch .en {
  font-size: 2.7rem;
  letter-spacing: 0.08em;
  margin: -5px -0.08em -1px 0;
}
.sub-visual .sv-box .catch .ja {
  font-size: 4.5rem;
  letter-spacing: 0.08em;
  margin-right: -0.08em;
  margin-top: 20px;
}

/*===============================================
  グローバルナビ
===============================================*/
#nav {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  color: #222;
  letter-spacing: 0;
  line-height: 1;
  padding-right: 20px;
}
#nav .gnav-list {
  display: flex;
  justify-content: center;
  align-items: center;
}
#nav .gnav-list-item {
  display: flex;
  justify-content: center;
  align-items: center;
}
#nav .gnav-list-item::after {
  content: "";
  display: block;
  width: 2px;
  height: 36px;
  background: linear-gradient(to bottom, #f79700 2px, transparent 2px, transparent 4px) repeat-y center top/2px 4px;
  margin: 0 15px;
}
#nav .gnav-list-item:last-of-type::after {
  display: none;
}
#nav .gnav-list-item .item-link {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
#nav .gnav-list-item .item-link > span {
  display: block;
}
#nav .gnav-list-item .item-link > span.icon {
  margin-bottom: 10px;
  transition: all 0.3s;
}
#nav .gnav-list-item .item-link > span.icon img {
  width: 25px;
}
#nav .gnav-list-item .item-link > span.txt {
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  margin: -0.25em -0.08em -0.25em 0;
}
#nav .gnav-list-item .item-link:hover .icon {
  transform: translateY(-4px);
}
#nav .gnav-list-item .item-link.current {
  color: #f79700;
}

/*===============================================
  main#container
===============================================*/
#container {
  font-size: 1.6rem;
  line-height: 1.75;
  letter-spacing: 0.08em;
}

/*===============================================
  パンくずリスト
===============================================*/
.bread {
  height: 60px;
}
.bread .breadcrumbs {
  width: 1080px;
}
.bread .breadcrumbs li {
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  line-height: 1.875;
}
.bread .breadcrumbs li::after {
  height: 30px;
  margin: 0 calc(1em - 1px);
}

/*===============================================
  main共通
===============================================*/
.inbox {
  width: 1080px;
}

/*電話番号
-----------------------------*/
.com-tels .com-tel {
  font-size: 4rem;
  letter-spacing: 0.08em;
}
.com-tels .com-tel::before {
  width: 32px;
  height: 30px;
  margin-right: 20px;
}
.com-tels .com-tel a {
  margin: -8px -0.08em -3px 0;
}
.com-tels .com-replace {
  margin-top: 12px;
}
.com-tels .com-replace img {
  height: 15px;
}

/*営業時間
-----------------------------*/
.com-time {
  width: 18.75em;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  line-height: 2;
  margin: 0 auto;
}

/*ボタン
-----------------------------*/
.com-btn {
  width: 450px;
  height: 65px;
}
.com-btn a {
  font-size: 1.8rem;
  letter-spacing: 0.08em;
}
.com-btn a::after {
  width: 18px;
  height: 18px;
  right: 24px;
}
.com-btn.ln a,
.com-btn.mail a {
  padding-right: 10px;
}
.com-btn.ln a::before,
.com-btn.mail a::before {
  width: 31px;
  height: 31px;
  margin-right: 16px;
}

.com-link a {
  min-width: 8.25em;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: 0.08em;
  padding: 15px 0;
  margin-top: -15px;
}
.com-link a::after {
  width: 14px;
  height: 14px;
  margin-left: 13px;
}

/*テーブル
-----------------------------*/
.com-table {
  line-height: 1.5;
}
.com-table tr th {
  padding: 20px 0 20px 15px;
}
.com-table tr td {
  padding: 20px 30px;
}
.com-table tr:first-child {
  border-top: dotted 2px rgba(247, 151, 0, 0.5);
}

/*画像
-----------------------------*/
.com-img div {
  border-radius: 30px;
}

/*背景
-----------------------------*/
.com-bg::before {
  min-width: 1920px;
  height: 60px;
}

/*テキストボックス
-----------------------------*/
.com-text-box {
  margin: -0.375em 0;
}
.com-text-box p {
  margin-right: -0.08em;
}
.com-text-box .mb {
  margin-bottom: 1.75em;
}

/*SB未記入テキスト
-----------------------------*/
.com-no-txt {
  font-size: 2.4rem;
  line-height: 1.66667;
  padding: 60px 0;
}

/*===============================================
  タイトル
===============================================*/
/*大タイトル
-----------------------------*/
.com-ttl01 {
  margin-bottom: 60px;
}
.com-ttl01 .en {
  font-size: 2.7rem;
  letter-spacing: 0.08em;
  margin: -5px -0.08em -1px 0;
}
.com-ttl01 .en:has(+ .ja) {
  margin-bottom: 22px;
}
.com-ttl01 .en:has(+ .mid) {
  margin-bottom: 20px;
}
.com-ttl01 .en + .ja::before {
  width: 2.475em;
  height: 2.175em;
  top: -1em;
  left: -1.4em;
}
.com-ttl01 .ja {
  font-size: 4rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  margin: -0.25em -0.08em -0.25em 0;
}
.com-ttl01 .mid {
  font-size: 3rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  margin: -0.25em -0.08em -0.25em 0;
}
.com-ttl01 .mid .b {
  font-size: 4rem;
}

/*中タイトル
-----------------------------*/
.com-ttl02 {
  margin-bottom: 30px;
}
.com-ttl02 > span {
  font-size: 3rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  margin: -0.25em -0.08em -0.25em 0;
}
.com-ttl02.line {
  padding-bottom: 20px;
}
.com-ttl02.deco > span::before {
  width: 58px;
  height: 50px;
  top: -1em;
  right: -1em;
}

/*小タイトル
-----------------------------*/
/*===============================================
  共通セクション
===============================================*/
/*お問い合わせ
-----------------------------*/
.com-contact-sec {
  padding: 105px 0 108px;
  background-size: min(1015px, 52.865%);
}
.com-contact-sec::before {
  max-width: 1920px;
  height: clamp(70px, 5.4166666667vw, 104px);
}
.com-contact-sec .contact-box {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 50px 20px 45px;
  border-radius: 30px;
  box-shadow: 0 0 10px rgba(34, 34, 34, 0.3);
}
.com-contact-sec .contact-box::before {
  width: 171px;
  height: 125px;
  left: -59px;
  bottom: -30px;
}
.com-contact-sec .contact-box > * {
  margin: 0 45px;
}
.com-contact-sec .contact-box .box-time {
  margin-top: 1em;
}
.com-contact-sec .contact-box .box-links {
  width: 350px;
}
.com-contact-sec .contact-box .box-links .link-item {
  margin-bottom: 22px;
}

/*このような症状はありませんか？
-----------------------------*/
.com-trouble-sec {
  padding: 90px 0 115px;
}
.com-trouble-sec::before {
  min-width: 1920px;
  height: 60px;
}
.com-trouble-sec .trouble-list-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 40px;
  border-radius: 30px;
}
.com-trouble-sec .trouble-list-wrap::after {
  content: "";
  width: 31px;
  height: 15px;
  background: #fff;
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 100%;
  z-index: -1;
}
.com-trouble-sec .trouble-list {
  min-width: 230px;
  margin-right: 40px;
}
.com-trouble-sec .trouble-list:last-of-type {
  margin-right: 0;
}
.com-trouble-sec .trouble-list-item {
  font-size: 1.8rem;
  line-height: 1.66667;
  padding-left: calc(1em + 10px);
  margin-bottom: 40px;
}
.com-trouble-sec .trouble-list-item::before {
  height: 30px;
}

/*施行の流れ
-----------------------------*/
.com-flow-sec {
  padding: 80px 0;
}
.com-flow-sec .flow-list {
  padding-top: 25px;
}
.com-flow-sec .flow-list-box {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-direction: row-reverse;
  flex-wrap: wrap;
}
.com-flow-sec .flow-list-box::after {
  width: 40px;
  height: 15px;
  margin: 30px calc(50% - 20px);
}
.com-flow-sec .flow-list-box .box-in {
  width: calc(100% - 360px);
}
.com-flow-sec .flow-list-box .box-in::before {
  width: 120px;
  font-size: 2rem;
  line-height: 1.6;
  padding-bottom: 3px;
  margin-bottom: 25px;
}
.com-flow-sec .flow-list-box .box-ttl > span {
  font-size: 2.8rem;
}
.com-flow-sec .flow-list-box .box-item-wrap {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding-top: 30px;
}
.com-flow-sec .flow-list-box .box-item-wrap > * {
  margin-right: 45px;
}
.com-flow-sec .flow-list-box .box-item-wrap > *:last-child {
  margin-right: 0;
}
.com-flow-sec .flow-list-box .box-time {
  margin-top: 1em;
}
.com-flow-sec .flow-list-box .box-links {
  width: 350px;
}
.com-flow-sec .flow-list-box .box-links .link-item {
  margin-bottom: 22px;
}

/*よくある質問
-----------------------------*/
.com-faq-sec {
  padding: 75px 0 80px;
  background-size: min(1218px, 63.4375%);
}
.com-faq-sec .inbox {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.com-faq-sec .faq-ttl {
  align-items: flex-start;
  padding-left: 56px;
}
.com-faq-sec .faq-list {
  width: 714px;
}
.com-faq-sec .faq-list-item {
  margin-bottom: 30px;
}
.com-faq-sec .faq-list-item .item-ttl {
  padding: 13px 20px;
  border-radius: 8px 8px 0 0;
}
.com-faq-sec .faq-list-item .item-ttl::before {
  width: 36px;
  font-size: 2.4rem;
  transform: translateY(-0.05em);
}
.com-faq-sec .faq-list-item .item-ttl > span {
  width: calc(100% - 36px);
  line-height: 1.5;
}
.com-faq-sec .faq-list-item .item-text {
  line-height: 1.875;
  padding: 11px 20px 11px 58px;
}

/* 追加ここから　2025/08/25 */
/*===============================================
  エントランスページ
===============================================*/
.entrance {
  height: clamp(530px, 41.355vw, 794px);
  min-height: calc(100vh - 130px);
  padding-inline: clamp(20px, 1.5625vw, 30px);
}
.entrance__list {
  display: grid;
  grid-template: 1.0131fr 1fr / 1.8308fr 1fr;
  gap: 15px 18px;
}
.entrance__item {
  border-radius: clamp(20px, 1.5625vw, 30px);
}
.entrance__item--official {
  grid-column: span 2;
}
.entrance__inner {
  height: 61.519%;
}
.entrance__item--official .entrance__inner {
  width: 42.635%;
  height: 70.543%;
}
.entrance__item--official .entrance__inner::before {
  border-radius: 0;
  clip-path: polygon(39.597% 0, calc(39.597% + 1px) 0, 100% 50.916%, 100% 100%, 0 100%, 0 50.916%);
}
.entrance__item--official .entrance__inner::after {
  width: 23.9597%;
  right: -3.784%;
  top: 17.949%;
}
.entrance__item--comic .entrance__inner {
  width: 50.421%;
}
.entrance__item--movie .entrance__inner {
  width: 61.539%;
  padding-inline: clamp(17px, 1.3021vw, 25px);
}
.entrance__inner::before {
  border-radius: clamp(20px, 1.5625vw, 30px);
}
.entrance__title {
  font-size: clamp(1.2rem, 0.834vw, 1.6rem);
  row-gap: 1.25em;
}
.entrance__title > span {
  letter-spacing: 0.08em;
}
.entrance__item--official .entrance__title {
  padding-top: 2.5625em;
  padding-right: 3.9375em;
}
.entrance__title .en {
  font-size: 1.6875em;
}
.entrance__title .sub {
  font-size: 1.125em;
  padding-top: 0.625em;
}
.entrance__item--official .entrance__title .sub {
  font-size: 1.25em;
  padding: 0.5em 0.4em;
  margin-top: 0.5em;
}
.entrance__item--comic .entrance__title .sub {
  padding-block: calc(1em - 2px);
}
.entrance__title .main {
  font-size: 1.75em;
  text-shadow: 0px 4px 4px rgba(34, 34, 34, 0.2);
}
.entrance__title .main .b {
  font-size: 1.28572em;
}
/* 追加ここまで */

/*===============================================
  トップページ
===============================================*/
/*住まいに安心と快適を届ける
-----------------------------*/
.top-greeting {
  padding: clamp(105px, 8.0729166667vw, 155px) 0 clamp(110px, 8.59375vw, 165px);
}
.top-greeting::after {
  width: 90%;
  max-width: 1660px;
  height: clamp(104px, 8.0208333333vw, 154px);
  bottom: clamp(105px, 8.0729166667vw, 155px);
}
.top-greeting .greeting-in {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  min-height: 760px;
  padding-left: 370px;
}
.top-greeting .greeting-ttl {
  width: 100%;
  align-items: flex-start;
  text-align: left;
}
.top-greeting .greeting-ttl::before {
  content: "";
  width: 373px;
  height: 102px;
  background: url(../img/index/deco_greeting_ttl.png) no-repeat center/contain;
  position: absolute;
  right: 0;
  top: -25px;
  z-index: -2;
}
.top-greeting .greeting-ttl .label {
  width: 200px;
  font-size: 5rem;
  line-height: 1.46;
  letter-spacing: 0.08em;
  border-radius: 10px;
  margin-top: 15px;
}
.top-greeting .greeting-btn {
  margin-top: 60px;
}
.top-greeting .greeting-imgs {
  width: calc(50vw - 278px);
  min-width: 362px;
  height: 760px;
  position: absolute;
  top: 0;
  right: calc(50% + 278px);
}
.top-greeting .greeting-imgs li:nth-of-type(1) {
  min-width: 420px;
}
.top-greeting .greeting-imgs li:nth-of-type(1) div {
  height: 492px;
}
.top-greeting .greeting-imgs li:nth-of-type(2) {
  width: 71.555%;
  min-width: 300px;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
}
.top-greeting .greeting-imgs li:nth-of-type(2) div {
  height: 352px;
}
.top-greeting .greeting-imgs li div {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.top-greeting .greeting-imgs li img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/*サービス内容
-----------------------------*/
.top-service {
  padding-top: 80px;
}
.top-service .service-ttl {
  margin-bottom: 70px;
}
.top-service .service-ttl::before {
  width: 590px;
  height: 106px;
  top: -17px;
}
.top-service .service-box {
  padding: 82px 0;
}
.top-service .service-box .box-in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 260px;
  padding: 50px 0;
}
.top-service .service-box .box-in::before {
  width: calc(100vw - 80px);
  max-width: 1280px;
  min-width: 1280px;
  border-radius: 30px;
}
.top-service .service-box .box-ttl {
  padding-top: 22px;
  margin-bottom: 0;
}
.top-service .service-box .box-ttl > span {
  font-size: 3.5rem;
}
.top-service .service-box .box-text-wrap {
  width: 715px;
  position: relative;
}
.top-service .service-box .box-link {
  position: absolute;
  right: 0;
  top: calc(100% + 25px);
}

/*施工実績
-----------------------------*/
.top-works {
  padding: 145px 0 125px;
}
.top-works .works-ttl {
  margin-bottom: 80px;
}
.top-works .works-ttl .ja {
  font-size: 4.5rem;
}
.top-works .works-list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-top: -60px;
}
.top-works .works-list-item {
  width: 530px;
  margin-top: 60px;
  margin-right: 20px;
}
.top-works .works-list-item:nth-of-type(2n),
.top-works .works-list-item:last-of-type {
  margin-right: 0;
}
.top-works .works-list-item .item-imgs {
  margin-bottom: 36px;
}
.top-works .works-list-item .item-imgs figure {
  margin-bottom: 30px;
}
.top-works .works-list-item .item-imgs figure.before div {
  width: 220px;
  height: 145px;
}
.top-works .works-list-item .item-imgs figure.after div {
  width: 346px;
  height: 230px;
}
.top-works .works-list-item .item-imgs figure div {
  background: #fff;
  border-radius: 20px;
  padding: 3px;
  box-shadow: 0 0 10px rgba(34, 34, 34, 0.3);
}
.top-works .works-list-item .item-imgs figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 17px;
}
.top-works .works-list-item .item-imgs figure figcaption {
  width: 85px;
  line-height: 2;
  margin: 0 20px;
  border-radius: 5px;
}
.top-works .works-list-item .item-imgs figure figcaption::before {
  width: 12px;
  height: 12px;
}
.top-works .works-list-item .item-txt {
  font-size: 2rem;
  line-height: 1.5;
  padding: 11px 20px;
}
.top-works .works-btn {
  margin: 85px auto 0;
}

/*お知らせ
-----------------------------*/
.top-news {
  padding: 120px 0 150px;
  background-size: min(1218px, 63.4375%);
}
.top-news .news-ttl {
  align-items: flex-start;
  text-align: left;
}
.top-news .news-box {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  min-height: 200px;
}
.top-news .news-list {
  width: 715px;
}
.top-news .news-list-item {
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.top-news .news-list-item:last-of-type {
  padding-bottom: 0;
  border-bottom: none;
}
.top-news .news-list-item .date {
  width: 106px;
  margin: -0.375em 0;
}
.top-news .news-list-item .tag {
  max-width: calc(100% - 106px);
  margin: -0.375em 0;
}
.top-news .news-list-item .item-ttl {
  margin: 10px 0 -0.375em;
}
.top-news .news-link {
  position: absolute;
  left: 0;
  bottom: 0;
}

/*===============================================
  ジコーについて
===============================================*/
/*代表挨拶
-----------------------------*/
.about-greeting {
  padding: 80px 0;
}
.about-greeting .greeting-in {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.about-greeting .greeting-img {
  position: relative;
}
.about-greeting .greeting-img div {
  border-radius: 8px;
}
.about-greeting .greeting-img figcaption {
  width: 270px;
  font-size: 2.4rem;
  line-height: 1.25;
  border-radius: 8px 0;
  padding: 10px 20px;
  position: absolute;
  right: 0;
  bottom: 0;
}
.about-greeting .greeting-img figcaption span {
  font-size: 1.5rem;
  line-height: 1;
  margin-right: 1em;
}
.about-greeting .greeting-img figcaption::after {
  width: 98px;
  height: 72px;
  bottom: 0;
  right: 10px;
}
.about-greeting .greeting-text {
  width: 660px;
}

/*ジコーが選ばれる理由
-----------------------------*/
.about-reason {
  padding: 80px 0;
}
.about-reason::before {
  width: 1840px;
  height: calc(100% - 380px);
  max-height: 1426px;
  top: 189px;
}
.about-reason .reason-list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-top: -40px;
}
.about-reason .reason-list-box {
  width: 520px;
  margin-top: 40px;
  margin-right: 40px;
}
.about-reason .reason-list-box:nth-of-type(2n),
.about-reason .reason-list-box:last-of-type {
  margin-right: 0;
}
.about-reason .reason-list-box .box-img {
  margin-bottom: 30px;
}
.about-reason .reason-list-box .box-ttl {
  flex-direction: row;
}
.about-reason .reason-list-box .box-ttl::before {
  width: 65px;
  font-size: 4.2rem;
  line-height: 1;
  margin: -7px 0 -3px;
}
.about-reason .reason-list-box .box-ttl > * {
  width: calc(100% - 65px);
  padding-top: 2px;
}
.about-reason .reason-list-box .box-text p {
  display: inline;
}

/*会社情報
-----------------------------*/
.about-company {
  padding: 80px 0;
  background-size: min(1218px, 63.4375%);
}
.about-company .inbox {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.about-company .company-ttl {
  align-items: flex-start;
  padding-left: 56px;
}
.about-company .company-in {
  width: 700px;
}
.about-company .company-table th {
  width: 115px;
}
.about-company .company-table td .replace {
  padding: 5px 0 4px;
}
.about-company .company-table td .replace img {
  height: 15px;
}
.about-company .company-map {
  height: 300px;
  margin-top: 50px;
}

/*===============================================
  屋根工事
===============================================*/
/*その症状、
ジコーの屋根工事にお任せください！
-----------------------------*/
.roof-construction {
  padding: 85px 0 80px;
}
.roof-construction .construction-in {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  min-height: clamp(404px, 31.5625vw, 606px);
  padding-left: 480px;
  position: relative;
}
.roof-construction .construction-img {
  width: calc(50vw - 120px);
  min-width: 520px;
  position: absolute;
  top: 0;
  right: calc(50% + 120px);
}
.roof-construction .construction-img div {
  height: clamp(404px, 31.5625vw, 606px);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.roof-construction .construction-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/*事業内容
-----------------------------*/
.roof-business .business-box {
  padding: 80px 0;
}
.roof-business .business-box .box-in {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
  padding: 50px 0;
}
.roof-business .business-box .box-in::before {
  width: calc(100vw - 80px);
  max-width: 1280px;
  min-width: 1280px;
  border-radius: 30px;
}
.roof-business .business-box .box-ttl {
  width: 100%;
  margin-bottom: 30px;
}
.roof-business .business-box .box-text {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  width: 540px;
}
.roof-business .business-box .box-point {
  width: 100%;
  padding-top: 50px;
}
.roof-business .business-box .box-point .point-ttl {
  width: 900px;
  margin: 0 auto 40px;
}
.roof-business .business-box .box-point .point-list-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.roof-business .business-box .box-point .point-list {
  margin: -6px 0;
  margin-right: 40px;
}
.roof-business .business-box .box-point .point-list:last-of-type {
  margin-right: 0;
}
.roof-business .business-box .box-point .point-list-item {
  font-size: 1.8rem;
  line-height: 1.66667;
  padding-left: 1.5em;
  margin-bottom: 20px;
}
.roof-business .business-box .box-point .point-list-item::before {
  font-size: 1.6rem;
  line-height: 30px;
}

/*屋根は火災保険で
修繕ができる可能性も！
-----------------------------*/
.roof-insurance::after {
  width: 1840px;
  height: 208px;
  bottom: 86px;
}

/*===============================================
  リフォーム
===============================================*/
/*ページ内リンク
-----------------------------*/
.reform-links {
  padding: 40px 0;
}
.reform-links .links-list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-top: -30px;
}
.reform-links .list-item {
  margin: 30px 30px 0;
}

/*その症状、ジコーの
外壁リフォームにお任せください！
-----------------------------*/
.reform-exterior .inbox {
  padding: 80px 0;
}
.reform-exterior .exterior-in {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  min-height: clamp(404px, 31.5625vw, 606px);
  padding-left: 480px;
  position: relative;
}
.reform-exterior .exterior-img {
  width: calc(50vw - 120px);
  min-width: 520px;
  position: absolute;
  top: 0;
  right: calc(50% + 120px);
}
.reform-exterior .exterior-img div {
  height: clamp(404px, 31.5625vw, 606px);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.reform-exterior .exterior-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.reform-exterior .exterior-list-item {
  padding: 82px 0;
}
.reform-exterior .exterior-list-item .item-in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 260px;
  padding: 50px 0;
}
.reform-exterior .exterior-list-item .item-in::before {
  width: calc(100vw - 80px);
  max-width: 1280px;
  min-width: 1280px;
  border-radius: 30px;
}
.reform-exterior .exterior-list-item .item-ttl {
  padding-top: 22px;
  margin-bottom: 0;
}
.reform-exterior .exterior-list-item .item-ttl > span {
  font-size: 3.5rem;
}

/*そのお悩み、ジコーの
内装リフォームで解決！
-----------------------------*/
.reform-interior {
  padding: 85px 0 80px;
}
.reform-interior .interior-in {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  min-height: clamp(404px, 31.5625vw, 606px);
  padding-left: 480px;
  position: relative;
}
.reform-interior .interior-img {
  width: calc(50vw - 120px);
  min-width: 520px;
  position: absolute;
  top: 0;
  right: calc(50% + 120px);
}
.reform-interior .interior-img div {
  height: clamp(404px, 31.5625vw, 606px);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.reform-interior .interior-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.reform-interior .interior-list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  padding-top: 50px;
}
.reform-interior .interior-list-item {
  width: 250px;
  margin-top: 30px;
  margin-right: 26.6666666667px;
}
.reform-interior .interior-list-item:nth-of-type(4n),
.reform-interior .interior-list-item:last-of-type {
  margin-right: 0;
}
.reform-interior .interior-list-item .item-img {
  margin-bottom: 10px;
}
.reform-interior .interior-list-item .item-img div {
  border-radius: 8px;
}
.reform-interior .interior-list-item .item-txt {
  font-size: 1.8rem;
  line-height: 1.33334;
  margin: -3px 0;
}

/*===============================================
  施工実績
===============================================*/
.works-contents {
  padding: 90px 0 100px;
  background-size: min(1218px, 63.4375%);
}
.works-contents .works-list-box {
  margin-bottom: 100px;
}
.works-contents .works-list-box .box-ttl {
  font-size: 2rem;
  line-height: 1.5;
  padding: 10px 20px;
  margin-bottom: 30px;
}
.works-contents .works-list-box .box-imgs:has(+ .box-text) {
  margin-bottom: 50px;
}
.works-contents .works-list-box .box-imgs figure {
  margin-right: 78px;
}
.works-contents .works-list-box .box-imgs figure.before {
  width: 342px;
}
.works-contents .works-list-box .box-imgs figure.before div {
  height: 225px;
}
.works-contents .works-list-box .box-imgs figure.before figcaption {
  font-size: 2rem;
  line-height: 1.4;
}
.works-contents .works-list-box .box-imgs figure.after {
  width: 540px;
}
.works-contents .works-list-box .box-imgs figure.after div {
  height: 360px;
}
.works-contents .works-list-box .box-imgs figure.after figcaption {
  font-size: 2.4rem;
  line-height: 2;
}
.works-contents .works-list-box .box-imgs figure div {
  background: #fff;
  border-radius: 20px;
  padding: 3px;
  box-shadow: 0 0 10px rgba(34, 34, 34, 0.3);
}
.works-contents .works-list-box .box-imgs figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 17px;
}
.works-contents .works-list-box .box-imgs figure figcaption {
  margin-top: 10px;
}
.works-contents .works-list-box .box-imgs figure::after {
  width: 18px;
  height: 20px;
  left: calc(100% + 30px);
}
.works-contents .works-list-box .box-text {
  margin: -0.375em 0;
}

/*==================================================
 ニュース一覧
================================================== */
.news-contents {
  padding: 100px 0;
}
.news-contents .news-ttl {
  align-items: flex-start;
  padding-left: 56px;
  margin-bottom: 0;
}
.news-contents .news-list {
  padding-top: 60px;
}
.news-contents .news-list-item {
  padding-bottom: 25px;
  margin-bottom: 25px;
}
.news-contents .news-list-item .date {
  width: 106px;
  margin: -0.375em 0;
}
.news-contents .news-list-item .tag {
  max-width: calc(100% - 106px);
  margin: -0.375em 0;
}
.news-contents .news-list-item .item-ttl {
  margin: 10px 0 -0.375em;
}

/*タグリスト
-----------------------------*/
.tag-select-box-wrap {
  height: 0;
}
.tag-select-box-wrap .tag-select-box {
  min-width: 240px;
}
.tag-select-box-wrap .tag-select-box::after {
  right: 18px;
}
.tag-select-box-wrap .tag-select-box select {
  font-size: 1.4rem;
  line-height: 1.42858;
  padding: 12px 48px 12px 12px;
}

/*==================================================
 ニュース詳細
================================================== */
.news-detail {
  padding: 100px 0;
}
.news-detail .post-data {
  font-size: 1.4rem;
  line-height: 1.42858;
  margin-bottom: 20px;
}
/*==================================================
 お問い合わせ
================================================== */
.contact-contents {
  padding: 100px 0;
}
.contact-contents .contact-table {
  margin-bottom: 56px;
}
.contact-contents .contact-table th {
  width: 350px;
  text-align: left;
  line-height: 2.375;
}
.contact-contents .contact-table th .optional-mark,
.contact-contents .contact-table th .required-mark {
  font-size: 1.4rem;
  line-height: 2;
  padding: 0 10px;
  margin-top: 5px;
}
.contact-contents .contact-table td {
  vertical-align: middle;
  line-height: 2.375;
}
.contact-contents .contact-submits-wrap {
  padding-top: 32px;
}
.contact-contents .contact-submits-wrap > * {
  width: 320px;
  height: 60px;
  margin: 20px 15px 0;
}

/*==================================================
 お問い合わせ完了
================================================== */
.complete-contents {
  padding: 100px 0;
}
.complete-contents .complete-box {
  text-align: center;
}

/*==================================================
プライバシーポリシー
================================================== */
.privacy-contents {
  padding: 100px 0;
}
.privacy-contents .item-box {
  margin-bottom: 60px;
}

/*==================================================
 サイトマップ
================================================== */
.site-contents {
  padding: 100px 0;
}
.site-contents .site-list {
  display: grid;
  grid-template: repeat(6, 1fr) / repeat(2, 1fr);
  grid-auto-flow: column;
  gap: 20px 80px;
}
.site-contents .site-list-item:first-of-type {
  grid-column: span 2;
}
.site-contents .site-list-item a {
  font-size: 1.8rem;
  line-height: 1.66667;
  padding: 15px 20px;
}

/*===============================================
  404エラー
===============================================*/
.error-contents {
  padding: 100px 0;
}
