@charset "utf-8";

.fontMincho{
  font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
}

/* =========================
   共通 sideFix
========================= */



.sideFix {
  position: relative;
  z-index: 10000;
  background: rgb(255 255 255 / 90%);
  box-sizing: border-box;
}

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

/* -------------------------
   キャッチコピー
------------------------- */
.sideFix h1 {
  position: absolute;
  top: 58%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  white-space: nowrap;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #333;
  text-shadow: 6px 6px 8px rgba(0, 0, 0, 0.18);
  z-index: 2;
}

.sideFix h1 span{
  display: block;
  margin-top: 86px;
  padding-top: 0;
  padding-right: 12px;
}

/* -------------------------
   ロゴ
------------------------- */
.sideFix .headLogo {
  position: relative;
  display: inline-block;
  margin: 0;
  line-height: 1;
  z-index: 2;
}

.sideFix .headLogo a {
  position: relative;
  display: block;
  line-height: 1;
}

.sideFix .headLogo img {
  display: block;
  width: 100%;
  height: auto;
}

/* ロゴの真下に影画像 */
.sideFix .headLogo::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  aspect-ratio: 300 / 132;
  background: url("../img/common/logo-shadow.png") no-repeat left top / 100% 100%;
  pointer-events: none;
  z-index: 1;
}




/* -------------------------
   メニューボタン
------------------------- */
.sideFix .header-menu-btn {
  position: relative;
  width: 34px;
  height: 34px;
  cursor: pointer;
  background: rgba(0, 0, 0, 0.75);
  flex-shrink: 0;
}

.sideFix .menu-line {
  position: absolute;
  left: 50%;
  width: 16px;
  height: 1px;
  background: #fff;
  transform: translateX(-50%);
}

.sideFix .menu-line--top {
  top: 11px;
}

.sideFix .menu-line--center {
  top: 16px;
}

.sideFix .menu-line--bottom {
  top: 21px;
}

body.is-menu-open .sideFix {
  pointer-events: none;
}

body.is-menu-open .globalMenu__close {
  pointer-events: auto;
}

/* =========================
   PC 基本配置
========================= */
@media screen and (min-width: 768px) {
  body {
    padding-left: 225px;
    box-sizing: border-box;
  }

  .sideFix {
    position: fixed;
    top: 0;
    left: 0;
    width: 225px;
    height: 100vh;
    z-index: 10000;
  }

  #header,
  #container,
  #footer_contactWrap,
  #footer-bottom,
  .section,
  .section-inner {
    box-sizing: border-box;
  }

  .section-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
  }
}


/* =========================
   SP 基本配置
========================= */
@media screen and (max-width: 767px) {
  .sideFix {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 80px;
    /* padding: 10px 12px; */
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    background: transparent;
    pointer-events: none;
    overflow: visible;
    z-index: 10020;
  }

  .sideFix .headLogo{
    position:absolute;
    right:0;
  }

  .sideFix .headLogo::after{
    content:none;
  }

  .sideFix h1 {
    display: none;
  }

  .sideFix .headLogo,
  .sideFix .header-menu-btn {
    pointer-events: auto;
  }

  .sideFix .headLogo {
    width: 88px;
    margin-left: 0;
  }

  .sideFix .header-menu-btn {
    order: -1;
    margin-top: 0;
    margin-left: 0;
  }

  .site-main,
  .l-main,
  main,
  #wrapper,
  .wrapper {
    padding-top: 64px;
  }
}

/* =========================
   開閉メニュー 共通
========================= */
.menu-open {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.globalMenu {
  position: fixed;
  inset: 0;
  z-index: 9990;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease, visibility .35s ease;
}

.globalMenu.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.globalMenu__overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.22);
  cursor: pointer;
}

.globalMenu__panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: rgba(248, 248, 246, 0.92);
}

.globalMenu__close {
  position: fixed;
  border: 0;
  background: rgba(0, 0, 0, 0.75);
  cursor: pointer;
  z-index: 10050;
  padding: 0;
  pointer-events: auto;
  /* mix-blend-mode: multiply; */
}

.globalMenu__closeLine {
  position: absolute;
  display: block;
  width: 24px;
  height: 1px;
  background: #fff;
}

.globalMenu__closeLine--1 {
  transform: rotate(45deg);
}

.globalMenu__closeLine--2 {
  transform: rotate(-45deg);
}

.globalMenu__inner {
  position: relative;
}

.globalMenu__nav {
  display: flex;
}

.globalMenu__col {
  width: 100%;
}

.globalMenu__list,
.globalMenu__sub,
.globalMenu__sns {
  margin: 0;
  padding: 0;
  list-style: none;
}

.globalMenu__list--main > li > a {
  display: inline-block;
  position: relative;
  color: #111;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.globalMenu__list--main > li > a::after {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  margin-top: 8px;
  background: #777;
}

.globalMenu__sub {
  margin-top: 14px;
}

.globalMenu__sub li + li {
  margin-top: 10px;
}

.globalMenu__sub a {
  color: #b5b5b5;
  text-decoration: none;
  font-weight: 500;
  line-height: 1.9;
}

.globalMenu__closeText {
  position: absolute;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.08em;
  font-style: normal;
  font-weight: 400;
  white-space: nowrap;
}

body.is-menu-open {
  overflow: hidden;
}

/* =========================
   PC menu
========================= */
@media screen and (min-width: 768px) {
  .globalMenu {
    z-index: 10030;
  }

  .globalMenu__overlay {
    left: 225px;
    width: calc(100% - 225px);
  }

  .globalMenu__panel {
    left: 225px;
    width: calc(100% - 225px);
    max-width: 660px;
    background-color: rgba(255, 255, 255, 0.9);
    /* background:
      linear-gradient(
        to right,
        rgba(255, 255, 255, 0.92) 0%,
        rgba(255, 255, 255, 0.92) 44%,
        rgba(255, 255, 255, 0.58) 44%,
        rgba(255, 255, 255, 0.12) 100%
      ); */
  }

  .globalMenu__inner {
    min-height: 100vh;
    /* padding: 74px 70px 70px 48px; */
    padding: 90px;
  }

  .globalMenu__nav {
    gap: 60px;
    align-items: flex-start;
    max-width: 760px;
  }

  .globalMenu__col {
    width: 280px;
  }

  .globalMenu__list--main > li {
    margin-bottom: 22px;
  }

  .globalMenu__list--main > li > a {
    font-size: 19px;
    padding-bottom: 8px;
  }

  .globalMenu__sub {
    margin-top: 10px;
  }

  .globalMenu__sub li + li {
    margin-top: 8px;
  }

  .globalMenu__sub a {
    font-size: 16px;
    line-height: 1.6;
  }

  .globalMenu__close {
    left: 0;
    bottom: 0;
    width: 84px;
    height: 84px;
    z-index: 10050;
  }

  .globalMenu__closeLine--1,
  .globalMenu__closeLine--2 {
    right: 50%;
    bottom: 50%;
    transform-origin: center;
  }

  .globalMenu__closeLine--1 {
    transform: translate(50%, 50%) rotate(45deg);
  }

  .globalMenu__closeLine--2 {
    transform: translate(50%, 50%) rotate(-45deg);
  }

}

/* =========================
   SP menu
========================= */
@media screen and (max-width: 767px) {
  .globalMenu {
    z-index: 10010;
  }

  .globalMenu__overlay {
    display: none;
  }

  .globalMenu__panel {
    left: 0;
    width: 100%;
    padding: 20px 20px 48px;
    background: #f5f5f3;
  }

  .globalMenu__close {
    top: 20px;
    left: 20px;
    width: 76px;
    height: 76px;
    background: rgba(0, 0, 0, 0.84);
  }

  .globalMenu__closeLine--1,
  .globalMenu__closeLine--2 {
    top: 50%;
    left: 50%;
    transform-origin: center;
  }

  .globalMenu__closeLine--1 {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .globalMenu__closeLine--2 {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .globalMenu__closeText {
    display: none;
  }

  .globalMenu__inner {
    margin-top: 78px;
  }

  .globalMenu__nav {
    display: block;
  }

  .globalMenu__col + .globalMenu__col {
    margin-top: 0;
  }

  .globalMenu__list--main > li {
    margin-bottom: 0;
    padding: 18px 0;
    border-bottom: 1px solid #bdbdbd;
  }

  .globalMenu__list--main > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    font-size: 24px;
    padding-bottom: 0;
  }

  .globalMenu__list--main > li > a::after {
    width: 40px;
    height: 1px;
    margin-top: 0;
    background: #777;
    flex-shrink: 0;
  }

  .globalMenu__sub {
    margin-top: 18px;
  }

  .globalMenu__sub li + li {
    margin-top: 10px;
  }

  .globalMenu__sub a {
    display: block;
    font-size: 18px;
    color: #b5b5b5;
    line-height: 1.9;
  }
}

/* =========================
   FOOTER footer_contactWrap
========================= */
#footer_contactWrap {
  background: #666361;
  padding: 70px 0 80px;
  color: #fff;
}

#footer_contactWrap a {
  text-decoration: none;
}

#footer_contactWrap .foot-flexArea {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}

/* =========================
   上段
========================= */
#footer_contactWrap .foot-flexArea:first-child {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 120px;
  margin-bottom: 80px;
}

#footer_contactWrap h3 {
  margin: 0;
  font-size: 54px;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.12em;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

#footer_contactWrap .google-map {
  width: 100%;
  max-width: 600px;
}

#footer_contactWrap .google-map iframe,
#footer_contactWrap .google-map img {
  display: block;
  width: 100%;
  height: auto;
}

#footer_contactWrap .google-map > img,
#footer_contactWrap .google-map > iframe,
#footer_contactWrap .google-map > div {
  margin-bottom: 18px;
}

#footer_contactWrap .foot_adress,
#footer_contactWrap .goMap {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.08em;
  font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
}

#footer_contactWrap .google-map {
  display: flex;
  flex-wrap: wrap;
}

#footer_contactWrap .google-map > *:first-child {
  width: 100%;
}

#footer_contactWrap .foot_adress {
  width: calc(100% - 170px);
}

#footer_contactWrap .goMap {
  width: 170px;
  text-align: right;
}

#footer_contactWrap .goMap a {
  color: #fff;
  position: relative;
  display: inline-block;
  padding-right: 22px;
}

#footer_contactWrap .goMap a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 0;
  height: 0;
  transform: translateY(-50%);
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 11px solid #fff;
}

/* =========================
   下段
========================= */
#footer_contactWrap .foot-flexArea:last-child {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  position: relative;
}

#footer_contactWrap .flexLeft,
#footer_contactWrap .flexRight {
  width: 50%;
  text-align: center;
  position: relative;
  padding: 24px 50px 0;
}

#footer_contactWrap .flexLeft::before,
#footer_contactWrap .flexRight::before,
#footer_contactWrap .flexRight::after {
  content: "";
  position: absolute;
  top: 0;
  width: 1px;
  height: 170px;
  background: rgba(255, 255, 255, 0.65);
}

#footer_contactWrap .noBorder .flexLeft::before,
#footer_contactWrap .noBorder .flexRight::before,
#footer_contactWrap .noBorder .flexRight::after {
  content:none;
}

#footer_contactWrap .flexLeft::before {
  left: 0;
}

#footer_contactWrap .flexRight::before {
  left: 0;
}

#footer_contactWrap .flexRight::after {
  right: 0;
}

#footer_contactWrap .text {
  margin: 0 0 28px;
  line-height: 2;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.9);
  font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
}

#footer_contactWrap .textBnr {
  margin: 0;
}

#footer_contactWrap .textBnr a {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 350px;
  min-height: 66px;
  padding: 0 24px 0 72px;
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  transition: opacity 0.3s ease;
}

#footer_contactWrap .textBnr a:hover {
  opacity: 0.8;
}

/* LINEボタン */
#footer_contactWrap .textBnr.line a {
  background: #20110f;
  color: #fff;
}

/* メールボタン */
#footer_contactWrap .textBnr.tel a {
  background: #fff;
  color: #20110f;
}

#footer_contactWrap .textBnr.line a::before,
#footer_contactWrap .textBnr.tel a::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* LINEアイコン */
#footer_contactWrap .textBnr.line a::before {
  left: 24px;
  width: 38px;
  height: 38px;
  background-image: url("../img/common/foot_line.png");
}

/* メールアイコン */
#footer_contactWrap .textBnr.tel a::before {
  left: 28px;
  width: 32px;
  height: 24px;
  background-image: url("../img/common/foot_mail.png");
}

#footer_contactWrap .textBnr.tel a::after {
  content: none;
}

/* =========================
   ダミーのマップ表示用
   「マップ」の文字を仮で地図枠っぽく見せる場合
========================= */
#footer_contactWrap .google-map {
  font-size: 0;
}

#footer_contactWrap .google-map::before {
  /* content: "マップ";
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 350px;
  margin-bottom: 18px;
  background: #d8d8d8;
  color: #333;
  font-size: 24px;
  line-height: 1; */
}

/* =========================
   footer_contactWrap 上段調整
========================= */
#footer_contactWrap .foot-flexArea.noBorder {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
  margin-bottom: 80px;
}

#footer_contactWrap .foot-flexArea.noBorder .flexLeft,
#footer_contactWrap .foot-flexArea.noBorder .flexRight {
  width: 50%;
  padding: 0;
}

#footer_contactWrap .foot-flexArea.noBorder .flexLeft {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 430px;
  text-align: center;
}

#footer_contactWrap .foot-flexArea.noBorder .flexRight {
  display: flex;
  align-items: center;
}

#footer_contactWrap .foot-flexArea.noBorder h3 {
  margin: 0;
  display: inline-block;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

/* マップまわり */
#footer_contactWrap .foot-flexArea.noBorder .google-map {
  width: 100%;
  max-width: 640px;
  margin-left: auto;
  display: block;
  font-size: initial;
}

#gm_advanced_hozo {
  height: 350px;
}
.custom-marker,
.custom-markers {
  width: 60px;
  height: 64px;
  background: url('../img/common/hozo_map.png') no-repeat center;
  background-size: contain;
}


#footer_contactWrap .foot-flexArea.noBorder .google-map::before {
  /* content: "マップ"; */
  content: none;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 350px;
  margin-bottom: 0;
  background: #d8d8d8;
  color: #333;
  font-size: 24px;
  line-height: 1;
}

#footer_contactWrap .foot-flexArea.noBorder .adressMap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-top: 12px;
}

#footer_contactWrap .foot-flexArea.noBorder .foot_adress,
#footer_contactWrap .foot-flexArea.noBorder .goMap {
  margin: 0;
}

#footer_contactWrap .foot-flexArea.noBorder .foot_adress {
  width: auto;
  flex: 1 1 auto;
  text-align: left;
}

#footer_contactWrap .foot-flexArea.noBorder .goMap {
  width: auto;
  flex: 0 0 auto;
  text-align: right;
  white-space: nowrap;
}

/* SP */
@media screen and (max-width: 767px) {
  #footer_contactWrap .foot-flexArea.noBorder {
    display: block;
    margin-bottom: 50px;
  }

  #footer_contactWrap .foot-flexArea.noBorder .flexLeft,
  #footer_contactWrap .foot-flexArea.noBorder .flexRight {
    width: 100%;
  }

  #footer_contactWrap .foot-flexArea.noBorder .flexLeft {
    min-height: auto;
    margin-bottom: 30px;
  }

  #footer_contactWrap .foot-flexArea.noBorder h3 {
    writing-mode: horizontal-tb;
    text-align: center;
  }

  #footer_contactWrap .foot-flexArea.noBorder .adressMap {
    display: block;
    margin-top: 10px;
  }

  #footer_contactWrap .foot-flexArea.noBorder .goMap {
    margin-top: 6px;
    text-align: left;
  }
}

/* =========================
   SP
========================= */
@media screen and (max-width: 767px) {
  #footer_contactWrap {
    padding: 50px 0 60px;
  }

  #footer_contactWrap .foot-flexArea:first-child {
    display: block;
    margin-bottom: 50px;
  }

  #footer_contactWrap h3 {
    writing-mode: horizontal-tb;
    font-size: 40px;
    text-align: center;
    margin-bottom: 30px;
  }

  #footer_contactWrap .google-map {
    max-width: none;
  }

  #footer_contactWrap .google-map::before {
    height: 240px;
  }

  #footer_contactWrap .foot_adress,
  #footer_contactWrap .goMap {
    width: 100%;
    text-align: left;
  }

  #footer_contactWrap .goMap {
    margin-top: 6px;
  }

  #footer_contactWrap .foot-flexArea:last-child {
    display: block;
    gap: 0;
  }

  #footer_contactWrap .flexLeft,
  #footer_contactWrap .flexRight {
    width: 100%;
    padding: 24px 20px 0;
  }

  #footer_contactWrap .flexLeft {
    margin-bottom: 36px;
  }

  #footer_contactWrap .flexLeft::before,
  #footer_contactWrap .flexRight::before,
  #footer_contactWrap .flexRight::after {
    display: none;
  }

  #footer_contactWrap .text {
    font-size: 15px;
    line-height: 1.9;
    margin-bottom: 20px;
  }

  #footer_contactWrap .textBnr a {
    min-width: 100%;
    min-height: 58px;
    font-size: 16px;
    padding-left: 64px;
  }

  #footer_contactWrap .textBnr.line a::before {
    left: 24px;
  }

  #footer_contactWrap .textBnr.tel a::before,
  #footer_contactWrap .textBnr.tel a::after {
    left: 26px;
  }
}

/* ========================================
   footer-bottom 調整
   添付デザイン寄せ
======================================== */
#footer-bottom {
  background: #f4f3f1;
}

#footer-bottom .footer-inner {
  max-width: 1280px;
  width: 100%;
  padding: 90px 40px 80px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 110px;
  text-align: left;
}

/* =========================
   左カラム（ロゴ・住所・TEL・SNS）
========================= */
#footer-bottom .footer-logo-area {
  width: 34%;
  max-width: 420px;
  margin-bottom: 0;
}

#footer-bottom .footer-logo {
  margin: 0 0 28px;
  max-width: 150px;
}

#footer-bottom .footer-logo img {
  width: 150px;
  height: auto;
  display: block;
}

#footer-bottom .footer-logo-area .text {
  text-align: left;
  margin-bottom:unset;
}

#footer-bottom .footer-logo-area .text:after{
  content: "";
  display: block;
  width: 100%;
  max-width: 320px;
  height: 1px;
  background: #9d9d9d;
  margin: 26px 0 24px;
}

#footer-bottom .footer-logo-area .text p,
#footer-bottom .footer-logo-area .text h5 {
  margin: 0;
}

#footer-bottom .footer-logo-area .text > p:first-child {
  font-size: 14px;
  line-height: 2;
  color: #333;
  margin-bottom: 28px;
  letter-spacing: 0.06em;
}

#footer-bottom .footer-logo-area .text h5 {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
  color: #333;
  margin-bottom: 14px;
  letter-spacing: 0.08em;
}

#footer-bottom .footer-logo-area .textTel {
  font-size: 18px;
  line-height: 1.2;
  margin-bottom: 8px !important;
  letter-spacing: 0.04em;
}

#footer-bottom .footer-logo-area .textTel span {
  display: inline-block;
  margin-left: 4px;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}

#footer-bottom .footer-logo-area .text > p:last-child {
  font-size: 13px;
  line-height: 1.8;
  color: #333;
  letter-spacing: 0.06em;
}

#footer-bottom .footer-logo-area .footer-sns-list {
  justify-content: flex-start;
  align-items: center;
  gap: 18px;
  margin: 0;
}

#footer-bottom .footer-logo-area .footer-sns-item {
  margin: 0;
  max-width: none;
}

#footer-bottom .footer-logo-area .footer-sns-item a {
  display: block;
}

#footer-bottom .footer-logo-area .footer-sns-item img {
  width: 46px;
  height: 46px;
  display: block;
}

/* =========================
   右カラム（ナビ）
========================= */
#footer-bottom .footer-nav-area {
  flex: 1;
  width: auto;
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

#footer-bottom .footer-nav {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 50px;
}

#footer-bottom .footer-nav-list {
  flex: 1;
  margin: 0;
  padding: 0;
  list-style: none;
}

#footer-bottom .footer-nav-list .menu-item {
  font-size: 16px;
  font-weight: 700;
  text-align: left;
  letter-spacing: 0.08em;
  list-style: none;
}

#footer-bottom .footer-nav-list .menu-item:last-child {
  margin-bottom: 0;
}

#footer-bottom .footer-nav-list .menu-item > a {
  color: #222;
  display: inline-block;
  position: relative;
}

#footer-bottom .footer-nav-list .menu-item > a::after {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  background: #7f7f7f;
  margin-top: 8px;
}

/* サブメニュー */
#footer-bottom .footer-nav-list .sub-menu {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
}

#footer-bottom .footer-nav-list .sub-menu .menu-item {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.06em;
  color: #b3b3b3;
  padding-left: 0;
  text-indent: 0;
}

#footer-bottom .footer-nav-list .sub-menu .menu-item::before {
  content: "- ";
  display: inline;
  width: auto;
  height: auto;
  margin: 0;
  background: none;
  vertical-align: baseline;
  color: #b3b3b3;
}

#footer-bottom .footer-nav-list .sub-menu .menu-item a {
  color: #b3b3b3;
  padding-bottom: 0;
}

#footer-bottom .footer-nav-list .sub-menu .menu-item a::after {
  display: none;
}

/* 1つ目のサブメニューに footer-nav-list が付いていても崩れないように補正 */
#footer-bottom .footer-nav-list .sub-menu.footer-nav-list {
  display: block;
}

/* =========================
   タブレット
========================= */
@media (max-width: 1200px) {
  #footer-bottom .footer-inner {
    gap: 70px;
    padding: 70px 30px 60px;
  }

  #footer-bottom .footer-nav {
    gap: 40px;
  }

  #footer-bottom .footer-nav-list .menu-item {
    font-size: 15px;
  }

  #footer-bottom .footer-logo-area .textTel span {
    font-size: 30px;
  }
}

/* =========================
   SP
========================= */
@media (max-width: 767px) {
  #footer-bottom {
    width: 100%;
  }

  #footer-bottom .footer-inner {
    width: 100%;
    padding: 50px 20px;
    display: block;
  }

  #footer-bottom .footer-logo-area {
    width: 100%;
    max-width: none;
    margin-bottom: 45px;
  }

  #footer-bottom .footer-logo {
    max-width: 130px;
    margin-bottom: 22px;
  }

  #footer-bottom .footer-logo img {
    width: 130px;
  }

  #footer-bottom .footer-logo-area .text > p:first-child {
    font-size: 13px;
    line-height: 1.8;
    margin-bottom: 22px;
  }

  #footer-bottom .footer-logo-area .text h5 {
    font-size: 13px;
    margin-bottom: 12px;
  }

  #footer-bottom .footer-logo-area .textTel {
    font-size: 16px;
  }

  #footer-bottom .footer-logo-area .textTel span {
    font-size: 28px;
    margin-left: 2px;
  }

  #footer-bottom .footer-logo-area .text > p:last-child {
    font-size: 12px;
  }

  #footer-bottom .footer-logo-area::after {
    max-width: none;
    margin: 22px 0 20px;
  }

  #footer-bottom .footer-logo-area .footer-sns-item img {
    width: 42px;
    height: 42px;
  }

  #footer-bottom .footer-nav-area {
    display:none;
  }
}

/* =========================================
   方法A用：共通トグルボタン
========================================= */

/* sideFix内の旧ボタンは使わない */
.sideFix .header-menu-btn {
  display: none !important;
}

/* 共通トグルボタンを常に前面へ */
.globalMenu__close {
  position: fixed;
  border: 0;
  background: rgba(0, 0, 0, 0.75);
  cursor: pointer;
  z-index: 10060;
  padding: 0;
  pointer-events: auto;
}

.globalMenu__closeText {
  position: absolute;
  left: 50px;
  /* bottom: 13px; */
  color: #fff;
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0.08em;
  font-style: normal;
  font-weight: 400;
  white-space: nowrap;

  top: 0;
  bottom: 0;
  margin: auto;
  height: fit-content;
}

.globalMenu__closeLines {
  position: absolute;

  top: 0;
  right: 50px;
  bottom: 0;
  margin: auto;

  width: 30px;
  height: 12px;
  display: block;
}

.globalMenu__closeLine {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
  display: block;
}

/* 初期は menu */
.globalMenu__closeText--open {
  display: block;
}

.globalMenu__closeText--close {
  display: none;
}

/* 開いたら close */
body.is-menu-open .globalMenu__closeText--open {
  display: none;
}

body.is-menu-open .globalMenu__closeText--close {
  display: block;
}

/* =========================
   PC
========================= */
@media screen and (min-width: 768px) {
  .globalMenu__close {
    left: 0;
    bottom: 0;
    width: 225px;
    height: 100px;
  }

  .globalMenu__closeLine {transition: all .4s;transform: rotate(0deg);}

  .globalMenu__closeLine:nth-child(1) {
    top: 0px;
  }

  .globalMenu__closeLine:nth-child(2) {
    top: 12px;
  }

  .globalMenu__close.is_open {
    .globalMenu__closeLine:nth-child(1),
    .globalMenu__closeLine:nth-child(2) {top: 6px;}
    .globalMenu__closeLine:nth-child(1) {transform: rotate(45deg);}
    .globalMenu__closeLine:nth-child(2) {transform: rotate(135deg);}
  }
}

@media screen and (min-height: 600px) and (max-height: 800px) {
  .sideFix h1 {
    font-size: 36px;
  }
}

@media screen and (min-height: 400px) and (max-height: 599px) {
  .sideFix h1 {
    font-size: 20px !important;
    writing-mode:unset  !important;
    left:56% !important;
  }
  .sideFix h1 span {
    margin-top:unset !important;
  }
}
@media screen and (max-height: 399px) {
  .sideFix h1 {
    display:none;
  }
}

@media screen and (min-width: 768px) and (max-width: 1200px) {
  body {
  padding-left: 180px;
  }
  .sideFix {
    width: 180px;
  }
  .sideFix h1 {
    font-size:27px;
  }
  .sideFix h1 span {
    margin-top: 85px;
  }
  .globalMenu__closeText {
    left:25px;
  }
  .globalMenu__closeLines {
    right:30px;
  }
  .globalMenu__close {
    width: 180px;
  }
  .section-inner {
    width: calc(100% - 40px) !important;
    max-width: 1020px !important;
  }
  #footer_contactWrap h3 {
    font-size:54px;
  }
  #footer_contactWrap .foot-flexArea:last-child {
   gap: 0;
  }
  #footer_contactWrap .text {
    font-size:14px;
  }
  #footer_contactWrap .flexLeft{
    padding:24px 0 0;
  }
}

/* =========================
   SP
========================= */
@media screen and (max-width: 767px) {
  .globalMenu__close {
    top: 10px;
    left: 10px;
    width: 60px;
    height: 60px;
    background: rgba(0, 0, 0, 0.84);

    .globalMenu__closeText {display: none;overflow: hidden;height: 0;}

    .globalMenu__closeLines {
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      margin: auto;

      height: 9px;

      transition: all .4s;

      .globalMenu__closeLine {
        transition: all .4s;
        transform: rotate(0deg);
      }
    }
    /* globalMenu__closeLines */
  }

  .globalMenu__close.is_open {
    .globalMenu__closeLines {height: 1px;}
    .globalMenu__closeLines .globalMenu__closeLine:nth-child(1),
    .globalMenu__closeLines .globalMenu__closeLine:nth-child(2){
      top: 0;
    }
    .globalMenu__closeLines .globalMenu__closeLine:nth-child(1) {transform: rotate(45deg);}
    .globalMenu__closeLines .globalMenu__closeLine:nth-child(2) {transform: rotate(135deg);}
  }

  .globalMenu__closeLine:nth-child(1) {
    top: 2px;
  }

  .globalMenu__closeLine:nth-child(2) {
    top: 9px;
  }
}




.SnsLinks {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  grid-column-gap: 30px;

  margin-top: 40px;

  a {
    width: fit-content;
    height: 40px;
    display: inline-block;
    img {width: 100%;height: 100%;object-fit: contain;}
  }
}

@media screen and (max-width: 767px) {
  .SnsLinks_sphide {display: none;}
}
/* SnsLinks */



/* ブログ関連 */
  .section-inner.is_blog {
    padding: 0;
  }
  #tidbits #bl-contents-post {
    border: none;
    border-top: none!important;

    .post_date {
      color: #9fa0a0;
      font-size: 14px;
      font-weight: bold;
      text-align: center;
    }

    .bl-contents-ttl {font-size: 18px!important;}
    h3 {font-size: 18px;}

    .post-content.article-body {
      font-size: 15px;
      line-height: 1.5;
    }

    .paging a, .paging .page-link {
      font-size: 15px;
      font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
    }

    .paging .btn {
      background-color: #fff;
      color: #333!important;

      &:hover {
        background: #333!important;
        color: #fff!important;
      }
    }
  }

  #main-visual__news {
    &.main-visual {
      background: url("../img/common/blog_column_mv_sp.webp") no-repeat center center / 100% 100%;
      background-size: cover;
      height: 225px;
      aspect-ratio: 15 / 14;

      max-height: 700px;
      position: relative;
      width: 100%;
    }
    .main-visual-inner .page-title-box {width: 100%;}
  }
  /* #visual__concept */


  @media (max-width: 767px) {
    .bl-contents-inner {
      padding-top: 30px;
    }
    #tidbits #bl-contents-post {
      .post_date {
        font-size: 12px;
      }
    }
  }

  @media (min-width: 768px) {
    #tidbits #bl-contents-post .bl-contents-inner {
      max-width: 900px!important;
    }

    #tidbits #bl-contents-post {
      .post-content.article-body {
        font-size: 16px;
        line-height: 1.875;

        h3 {font-size: 23px;}
      }

      .bl-contents-ttl {font-size: 23px!important;}

      .paging a, .paging .page-link {
        font-size: 16px;
      }
    }

    #main-visual__news {
      &.main-visual {
        background: url("../img/common/blog_column_mv_pc.webp") no-repeat center center / 100% 100%;
        background-size: cover;
        height: 500px;

        aspect-ratio: 96 / 35;
        max-height: 700px;
        position: relative;
      }
    }
    /* #visual__concept */
  }


/* ブログ関連 */

/* =========================
   共通 #footer_reception
========================= */
#footer_reception{
  background: url("../img/common/footer_contact.png") no-repeat center center;
  background-size: cover;
  position: relative;
  color: #fff;
  min-height: 500px;
}

/* 中の文字を中央寄せしやすくする */
#footer_reception .section-inner{
  min-height: 500px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#footer_reception .bou.btn {
  color:#fff !important;
  background: unset;
  font-size: 18px;
}

#footer_reception .ttl{
  text-align: center;
  font-size: 45px;
  font-weight: 700;
  margin: 0 auto 40px;
}

#footer_reception .txtFoot{
  font-size: 20px;
  text-align: center;
  line-height: 1.8;
  margin: 0 auto 40px;
}


/* =========================
   SP 共通 #footer_reception
========================= */
@media screen and (max-width: 767px) {
  #footer_reception{
    min-height: 320px;
    background-image: url("../img/common/footer_contact_sp.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
  }

  #footer_reception .section-inner{
    min-height: 320px;
    padding-top: 28px;
    padding-bottom: 28px;
  }

  #footer_reception .ttl{
    font-size: 30px;
    line-height: 1.4;
    margin-bottom: 24px;
  }

  #footer_reception .txtFoot{
    font-size: 16px;
    text-align: left;
    line-height: 1.9;
    margin-bottom: 28px;
  }

  #footer_reception .bou.btn {
    font-size: 14px;
  }
}


/* =========================
   共通 .area-wrap
========================= */
.section.footArea{
  background:#f5f4f2;
}
.area-wrap{
  position:relative;
}
.area-wrap figure{
  position:absolute;
  top:0;
  right:0;
  width:57%;
}
.section-inner.areaSec{
  padding:0;
}

.area-wrap .section-ttl{
  text-align:left;
}

.area-wrap.section-ttl-jp {
    font-size: 20px;
    margin-top: 0.5em;
}


/* =========================
   AREA：dlデザイン調整
========================= */
.areaDetail .textBox dl dt.areaDL-a {
    background: #898989;
    margin-bottom: 0;
    padding:0;
}
.areaDetail .textBox dl dt.areaDL-b{
    background: #9fa0a0;
    margin-bottom: 0;
    padding:0;
}

.areaDetail .textBox dl {
  display: flex;
  align-items: stretch;
  margin: 0;
  border: 1px solid #d9d9d9;
  background: #fff;
}

.areaDetail .textBox dl + dl {
  margin-top: 0;
  border-top: none;
}

.areaDetail .textBox dl dt {
  flex: 0 0 132px;   /* 左の見出し幅 */
  width: 132px;
  margin: 0;
  padding: 22px 16px;
  background: #9b9b9b;
  color: #fff;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.4;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
}

.areaDetail .textBox dl dd {
  flex: 1;
  margin: 0;
  padding: 22px 22px;
  background: #fdfdfd;
  color: #333;
  font-size: 24px;
  line-height: 1.8;
  box-sizing: border-box;
}

/* dl全体の上余白を既存より整える */
.areaDetail .textBox dl:first-of-type {
  margin-top: 40px;
}

/* PCで少し余白を広めに */
@media (min-width: 751px) {
  .areaDetail .textBox dl dt {
    flex-basis: 160px;
    width: 160px;
    padding: 24px 18px;
    font-size: 18px;
  }

  .areaDetail .textBox dl dd {
    padding: 24px 28px;
    font-size: 16px;
  }
}

/* SPでは縦積みにする */
@media (max-width: 750px) {
  .areaDetail .textBox dl {
    display: block;
  }

  .areaDetail .textBox dl + dl {
    margin-top: 12px;
    border-top: 1px solid #d9d9d9;
  }

  .areaDetail .textBox dl dt {
    width: 100%;
    flex: none;
    justify-content: flex-start;
    padding: 14px 16px;
    font-size: 15px;
  }

  .areaDetail .textBox dl dd {
    padding: 14px 16px;
    font-size: 14px;
    line-height: 1.8;
  }

  .areaDetail .textBox dl:first-of-type {
    margin-top: 24px;
  }
}

/* =========================================
   AREA MAP - SPデザイン調整
========================================= */
@media screen and (max-width: 750px) {
  .area-wrap {
    padding: 0 0 50px !important;
    line-height: 1.8;
  }

  /* 絶対配置を解除して通常フローに戻す */
  .area-wrap figure {
    position: static;
    top: auto;
    right: auto;
    margin: 0 0 34px;
    width: 100%;
  }

  .area-wrap figure img {
    display: block;
    width: 100%;
    height: auto;
  }

  .areaDetail {
    display: block;
  }

  .areaDetail .textBox {
    width: 100%;
    margin: 0;
  }

  /* タイトル */
  .area-wrap .section-ttl {
    margin: 0 0 28px;
    text-align: left;
    position:absolute !important;
    top:5%;
  }

  .area-wrap .section-ttl-jp {
    display: block;
    margin: 0 0 10px;
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: 0.08em;
    font-weight: 500;
  }

  .area-wrap .section-ttl-en {
    display: block;
    font-size: 35px;
    line-height: 1;
    letter-spacing: 0.04em;
    font-weight: 400;
  }

  /* 説明文 */
  .areaDetail .textBox > p {
    margin: 0 0 34px;
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.06em;
  }

  /* SPでも表は2カラム維持 */
  .areaDetail .textBox dl {
    display: flex;
    align-items: stretch;
    margin: 0;
    border: 1px solid #d4d4d4;
    background: #fff;
  }

  .areaDetail .textBox dl + dl {
    margin-top: 0;
    border-top: none;
  }

  .areaDetail .textBox dl:first-of-type {
    margin-top: 0;
  }

  .areaDetail .textBox dl dt {
    flex: 0 0 104px;
    width: 104px;
    margin: 0;
    padding: 0 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 500;
    color: #fff;
    box-sizing: border-box;
  }

  .areaDetail .textBox dl dt.areaDL-a {
    background: #9a9a9a;
  }

  .areaDetail .textBox dl dt.areaDL-b {
    background: #a5a5a5;
  }

  .areaDetail .textBox dl dd {
    flex: 1;
    margin: 0;
    padding: 18px 16px;
    background: #fdfdfd;
    color: #333;
    font-size: 13px;
    line-height: 1.9;
    box-sizing: border-box;
  }
}

@media screen and (min-width: 768px) {
  .sideFix .headLogo {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    width: 80% !important;
    margin: 0 !important;
    display: block !important;
    z-index: 3 !important;
  }

  .sideFix {
    height: calc(100vh - 100px);
  }
  .sideFix .headLogo a {
    display: block !important;
    line-height: 1 !important;
  }

  .sideFix .headLogo img {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
  }

  .sideFix .headLogo::after {
    left: 0 !important;
    width: 100% !important;
  }
}

.header_smart span {margin-top: 6em;}


@media screen and (min-width: 768px) {
  #main-visual__top.main-visual {
    margin-left: -230px;
    width: calc(100% + 230px);
  }
  .sideFix h1 {
    font-weight: normal;
    letter-spacing: 0.35em;
    text-shadow: 6px 6px 4px rgba(0, 0, 0, 0.18);

    top: 58%;
    line-height: 1.3;
    font-size: clamp(18px, 3.8vh, 36px);
    z-index: 5;

    span {margin-top: 2.2em;}
  }


  @media screen and (min-height: 954px) {
    .sideFix h1 {
      top: 545px;
      span {margin-top: 5.4em;}
    }
  }
}


#main-visual__staff {
  &.main-visual {
    background: url("../img/staff/mv_staff_sp.webp") no-repeat center center / 100% 100%;
    background-size: cover;
    height: 225px;
    aspect-ratio: 15 / 14;

    max-height: 700px;
    position: relative;
    width: 100%;
  }
  .main-visual-inner .page-title-box {width: 100%;}
}
#staff .is_interview {

  .sentence {
    font-size: 15px;
    line-height: 1.5;

    margin-bottom: 32px;
  }
}

#staff .is_staff_message {
  .bl-contents-inner {padding-top: 0;padding-bottom: 0;width: 100%;}

  .bl-contents-item.bl-contents-media {text-align: center;}
  .staff-item {
    .item-title {
      font-size: 23px;
    }
    .staff-position {
      color: #9fa0a0;
      font-size: 12.4px;
      margin-top: 1em;
    }
  }
}

#staff .btn-box {
  height: 50px;
  width: 100%;
  max-width: 165px;
  margin-left: auto;
  margin-right: auto;

  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #181523;
  font-size: 13px;
}

#staff .item-content {display: none;}


@media screen and (min-width: 768px) {
  #main-visual__staff {
    &.main-visual {
      background: url("../img/staff/mv_staff_pc.webp") no-repeat center center / 100% 100%;
      background-size: cover;
      height: 500px;

      aspect-ratio: 96 / 35;
      max-height: 700px;
      position: relative;
    }
  }
  /* #visual__staff */

  #staff .is_staff_message {
    .bl-contents-inner {width: 100%;max-width: inherit;padding-top: 0;padding-bottom: 0;}
    .bl-contents-media {max-width: 275px;}
    .staff-item {
      grid-column-gap: 50px;
    }
    .staff-item {
      .item-title {
        font-size: 18px;
      }
      .staff-position {
        font-size: 14px;
        margin-top: 1em;
      }
      .staff-license {
        font-size: 15px;
      }
    }
  }
  #staff .btn-box {
    height: 50px;
    cursor: pointer;
  }

  #staff .is_interview {
    position: relative;
    background-color: #f5f4f2;
    z-index: 4;
    padding: 75px 80px;
    width: 100%;

    &:before {
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 100vw;
      background-color: #f5f4f2;
      z-index: -1;
    }
    .sentence {
      font-size: 16px;
      line-height: 1.875;

      margin-bottom: 45px;
    }
  }

  #staff .btn-box {
    height: 50px;
    width: 100%;
    max-width: 200px;
    font-size: 16px;
  }
}


@media screen and (max-width: 767px) {
  .item-thumb {max-width: 250px;margin: auto!important;}
  .bl-contents-ttl {font-size: 18px!important;}

  #staff .is_interview {
    position: relative;
    padding: 50px 0;
    z-index: 4;

    &:before {
      content: "";
      width: 100vw;
      height: 100%;
      position: absolute;
      top: 0;
      left: -5%;
      display: block;
      width: 100vw;
      background-color: #f5f4f2;
      z-index: -1;
    }
  }
}


#main-visual__modelhouse {
  &.main-visual {
    background: url("../img/modelhouse/mv_modelhouse_sp.webp") no-repeat center center / 100% 100%;
    background-size: cover;
    height: 225px;
  }
  .main-visual-inner .page-title-box {width: 100%;}
}
[id] {
  scroll-margin-top: 50px;
}
/* #visual__modelhouse */
html {
  scroll-behavior: smooth;
}

/* 家カフェ */
body.page-id-318 {
  #main-visual__iecafe {display: none;}
  .breadcrumb {display: none;}
}
/* 設計の考え方 */
  body.page-id-3924 #bl-contents-step.bl-contents {padding-bottom: 50px;}

@media screen and (min-width: 768px) {
  [id] {
    scroll-margin-top: 100px;
  }
  #main-visual__modelhouse {
    &.main-visual {
      background: url("../img/modelhouse/mv_modelhouse.webp") no-repeat center center / 100% 100%;
      background-size: cover;
      height: 500px;
    }
  }
  /* visual__modelhouse */

  /* 家カフェ */
  body.page-id-318 {
    .title-area.toCustomer {margin-left: 225px;}
    .main-visual__iecafe {display: none;}
  }

  /* 設計の考え方 */
  body.page-id-3924 #bl-contents-step.bl-contents {padding-bottom: 100px;}
}


/* Privacy Policy */
body.page-id-3 {
  #main-visual__privacy-policy {
    &.main-visual {
      background: url("../img/privacy_policy/mv_policy_sp.webp") no-repeat center center / 100% 100%;
      background-size: cover;
      height: 225px;
    }
    .main-visual-inner .page-title-box {width: 100%;}
  }
}
#bl-contents-step .step-list .step-item:not(:last-child)::after {
  font-family: "Font Awesome 5 Free"!important;
}


@media screen and (min-width: 768px) {
  body.page-id-3 {
    #main-visual__privacy-policy {
    &.main-visual {
      background: url("../img/privacy_policy/mv_policy_pc.webp") no-repeat center center / 100% 100%;
      background-size: cover;
      height: 500px;
    }
  }
  /* main-visual__privacy-policy */
  }

}
