@charset "UTF-8";
/* =============================================
   Setting
   ============================================= */
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;600;700;900&family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap");
/** サイドのパディングなし **/
/* fontfamily　*/
/* color */
@media screen and (max-width: 1139px), print {
  :root {
    --font18: calc(18px * 0.8);
    --font20: calc(20px * 0.8);
    --font24: calc(24px * 0.8);
    --font26: calc(26px * 0.8);
    --font28: calc(28px * 0.8);
    --font30: calc(30px * 0.8);
    --font32: calc(32px * 0.8);
    --font36: calc(36px * 0.8);
    --font46: calc(46px * 0.8);
    --font48: calc(48px * 0.8);
    --font50: calc(50px * 0.8);
    --px16: 12.8px;
    --px24: 19.2px;
    --px32: 25.6px;
    --px40: 32px;
    --px48: 38.4px;
    --px56: 44.8px;
    --px64: 51.2px;
    --px72: 57.6px;
    --px80: 64px;
    --px88: 70.4px;
    --px96: 76.8px;
    --px104: 83.2px;
    --px112: 89.6px;
    --px120: 96px;
    --px128: 102.4px;
    --px136: 108.8px;
    --px144: 115.2px;
    --px152: 121.6px;
    --px160: 128px;
    --px168: 134.4px;
    --px176: 140.8px;
    --px184: 147.2px;
    --px192: 153.6px;
    --px200: 160px;
    --px208: 166.4px;
    --px216: 172.8px;
    --px224: 179.2px;
    --px232: 185.6px;
    --px240: 192px;
    --px248: 198.4px;
    --px256: 204.8px;
    --px264: 211.2px;
    --px272: 217.6px;
    --px280: 224px;
  }
}
@media screen and (max-width: 768px), print {
  :root {
    --px32: 19.2px;
    --px40: 24px;
    --px48: 28.8px;
    --px56: 33.6px;
    --px64: 38.4px;
    --px72: 43.2px;
    --px80: 48px;
    --px88: 52.8px;
    --px96: 57.6px;
    --px104: 62.4px;
    --px112: 67.2px;
    --px120: 72px;
    --px128: 76.8px;
    --px136: 81.6px;
    --px144: 86.4px;
    --px152: 91.2px;
    --px160: 96px;
    --px168: 100.8px;
    --px176: 105.6px;
    --px184: 110.4px;
    --px192: 115.2px;
    --px200: 120px;
    --px208: 124.8px;
    --px216: 129.6px;
    --px224: 134.4px;
    --px232: 139.2px;
    --px240: 144px;
    --px248: 148.8px;
    --px256: 153.6px;
    --px264: 158.4px;
    --px272: 163.2px;
    --px280: 168px;
  }
}
@media screen and (min-width: 769px), print {
  :root {
    --font18: calc(18px * 0.8);
    --font20: calc(20px * 0.8);
    --font24: calc(24px * 0.8);
    --font26: calc(26px * 0.8);
    --font28: calc(28px * 0.8);
    --font30: calc(30px * 0.8);
    --font32: calc(32px * 0.8);
    --font36: calc(36px * 0.8);
    --font46: calc(46px * 0.8);
    --font48: calc(48px * 0.8);
    --font50: calc(50px * 0.8);
    --px8: 6.4px;
    --px16: 12.8px;
    --px24: 19.2px;
    --px32: 25.6px;
    --px40: 32px;
    --px48: 38.4px;
    --px56: 44.8px;
    --px64: 51.2px;
    --px72: 57.6px;
    --px80: 64px;
    --px88: 70.4px;
    --px96: 76.8px;
    --px104: 83.2px;
    --px112: 89.6px;
    --px120: 96px;
    --px128: 102.4px;
    --px136: 108.8px;
    --px144: 115.2px;
    --px152: 121.6px;
    --px160: 128px;
    --px168: 134.4px;
    --px176: 140.8px;
    --px184: 147.2px;
    --px192: 153.6px;
    --px200: 160px;
    --px208: 166.4px;
    --px216: 172.8px;
    --px224: 179.2px;
    --px232: 185.6px;
    --px240: 192px;
    --px248: 198.4px;
    --px256: 204.8px;
    --px264: 211.2px;
    --px272: 217.6px;
    --px280: 224px;
  }
}
@media screen and (min-width: 1140px), print {
  :root {
    --font12: 12px;
    --font13: 13px;
    --font14: 14px;
    --font15: 15px;
    --font16: 16px;
    --font18: 18px;
    --font20: 20px;
    --font24: 24px;
    --font26: 26px;
    --font28: 28px;
    --font30: 30px;
    --font32: 32px;
    --font36: 36px;
    --font46: 46px;
    --font48: 48px;
    --font50: 50px;
    --px8: 8px;
    --px16: 16px;
    --px24: 24px;
    --px32: 32px;
    --px40: 40px;
    --px48: 48px;
    --px56: 56px;
    --px64: 64px;
    --px72: 72px;
    --px80: 80px;
    --px88: 88px;
    --px96: 96px;
    --px104: 104px;
    --px112: 112px;
    --px120: 120px;
    --px128: 128px;
    --px136: 136px;
    --px144: 144px;
    --px152: 152px;
    --px160: 160px;
    --px168: 168px;
    --px176: 176px;
    --px184: 184px;
    --px192: 192px;
    --px200: 200px;
    --px208: 208px;
    --px216: 216px;
    --px224: 224px;
    --px232: 232px;
    --px240: 240px;
    --px248: 248px;
    --px256: 256px;
    --px264: 264px;
    --px272: 272px;
    --px280: 280px;
  }
}
/* keyframes */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
    visibility: visible;
    display: block;
  }
  100% {
    opacity: 0;
    visibility: hidden;
    display: none;
  }
}
/* =============================================
   Foundation
   ============================================= */
/* ========== Reset ========== */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
  all: unset;
  display: revert;
}

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

a:hover,
button:hover {
  cursor: pointer;
}

img {
  width: 100%;
  height: auto;
  max-inline-size: 100%;
  max-block-size: 100%;
  vertical-align: bottom;
}

table {
  border-collapse: collapse;
}

input {
  all: revert;
}

input,
textarea {
  user-select: auto;
  -webkit-user-select: auto;
}

textarea {
  white-space: revert;
}

strong {
  font-weight: 600;
}

sup {
  font-size: 70%;
  vertical-align: super;
}

sub {
  font-size: 70%;
  vertical-align: sub;
}

em {
  font-style: italic;
}

meter {
  -webkit-appearance: revert;
  appearance: revert;
}

:where(pre) {
  all: revert;
}

::placeholder {
  color: unset;
}

::marker {
  content: initial;
}

:where([hidden]) {
  display: none;
}

:where([contenteditable]:not([contenteditable=false])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  line-break: after-white-space;
  -webkit-line-break: after-white-space;
  user-select: auto;
  -webkit-user-select: auto;
}

:where([draggable=true]) {
  -webkit-user-drag: element;
}

:where(dialog:modal) {
  all: revert;
}

/* ========== Base ========== */
html {
  scroll-behavior: smooth;
  margin: 0;
}
html :target {
  scroll-margin-top: 150px;
}

body {
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-size: 16px;
  color: #1D2242;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  overflow-x: hidden;
  position: relative;
  -webkit-text-size-adjust: 100%;
}

h1, h2, h3, h4 {
  font-family: "Zen Old Mincho", serif;
}

main {
  overflow: hidden;
  background-color: #ffffff;
}
main p {
  line-height: 1.8;
}
main b {
  font-weight: 500;
}

a:hover {
  opacity: 0.8;
  transition: all 0.3s ease-out;
}

@media screen and (min-width: 769px), print {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
/*** 配置 ****/
.position-center {
  margin: 0 auto;
}

/*** text関連 ****/
.text-gothic {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-vertical {
  writing-mode: vertical-rl;
}

.no-wrap {
  white-space: nowrap;
}

/*** list関連 ****/
.list-disc {
  list-style: disc;
  padding-left: 1.5em;
}

/*** font関連 ****/
.fontWeight-medium {
  font-weight: 500;
}

.fontWeight-bold {
  font-weight: 700;
}

.font-XS {
  font-size: 12px;
}

.font-S {
  font-size: 14px;
}

/*** 背景 ****/
.bg-lattice {
  background: url(./img/bg-lattice.png) left center repeat;
}

.bg-blue {
  background-color: #F1F5F5;
}

/*** レスポンシブ調整 ****/
.spHeader-hide {
  display: none;
}
@media screen and (min-width: 1140px), print {
  .spHeader-hide {
    display: block !important;
  }
}

.bps-hide {
  display: none;
}
@media screen and (min-width: 769px), print {
  .bps-hide {
    display: block !important;
  }
}

.bps-show {
  display: block;
}
@media screen and (min-width: 769px), print {
  .bps-show {
    display: none !important;
  }
}

/* ========== System(js) ========== */
.is-fixed .l-header {
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0px 3px 12px rgba(95, 95, 95, 0.4);
  padding: 16px 0;
}
.is-fixed .l-header .l-header__main {
  align-items: center;
}
.is-fixed .l-header .l-header__logo {
  width: 160px;
}
.is-fixed .l-header .l-header__spMenu .l-header__btn span {
  background-color: #222222;
}
.is-fixed .l-header .l-header__gNav nav a {
  color: #222222;
}

.is-fixed .l-header.is-open,
.l-header.is-open {
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background: #ffffff;
  overflow-y: scroll;
}
.is-fixed .l-header.is-open .l-header__main,
.l-header.is-open .l-header__main {
  flex-direction: column;
  gap: 20px 0;
}
.is-fixed .l-header.is-open .l-header__logo,
.l-header.is-open .l-header__logo {
  display: none;
}
.is-fixed .l-header.is-open .l-header__gNav,
.l-header.is-open .l-header__gNav {
  display: block;
  visibility: visible;
  width: 100%;
  height: calc(100vh - 120px);
}
.is-fixed .l-header.is-open .l-header__gNav .c-gNav,
.l-header.is-open .l-header__gNav .c-gNav {
  justify-content: flex-start;
}
.is-fixed .l-header.is-open .l-header__gNav .c-gNav a,
.l-header.is-open .l-header__gNav .c-gNav a {
  display: block;
  width: 100%;
  color: #222222;
  padding: 16px;
  font-weight: 500;
  text-align: center;
}
.is-fixed .l-header.is-open .l-header__gNav .c-gNav .c-gMenu,
.l-header.is-open .l-header__gNav .c-gNav .c-gMenu {
  padding: 40px 20px;
}
.is-fixed .l-header.is-open .l-header__spMenu,
.l-header.is-open .l-header__spMenu {
  right: 10px;
}
.is-fixed .l-header.is-open .l-header__spMenu .l-header__btn span:nth-of-type(1),
.l-header.is-open .l-header__spMenu .l-header__btn span:nth-of-type(1) {
  top: 21px;
  transform: translateY(6px) rotate(-45deg);
}
.is-fixed .l-header.is-open .l-header__spMenu .l-header__btn span:nth-of-type(2),
.l-header.is-open .l-header__spMenu .l-header__btn span:nth-of-type(2) {
  top: 27px;
  width: 30px;
  transform: rotate(45deg);
}

/* ========== WPブロックエディタに対するスタイル調整 ========== */
.l-wp__post p {
  line-height: 1.8;
  min-height: 1em;
}
.l-wp__post a {
  text-decoration: underline;
}
.l-wp__post ul.wp-block-list {
  padding-left: 1em;
}

/* =============================================
   Layout
   ============================================= */
/* ========== header ========== */
.l-header {
  width: 100%;
  z-index: 99;
  transition: all 0.3s ease;
  background-color: #ffffff;
  padding: 24px 0;
}
.l-header ol, .l-header ul {
  list-style: none;
}
@media screen and (min-width: 769px), print {
  .l-header {
    padding: 28px 0;
  }
}
.l-header__main {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
  position: relative;
}
@media screen and (max-width: 768px), print {
  .l-header__main {
    padding: 0 20px;
  }
}
@media screen and (min-width: 769px), print {
  .l-header__main {
    gap: 0 140px;
  }
}
@media screen and (max-width: 1139px), print {
  .l-header__main {
    gap: 0 8%;
  }
}
@media screen and (min-width: 1140px), print {
  .l-header__main {
    padding: 0 80px;
  }
}
.l-header__logo {
  width: 20%;
  min-width: 160px;
  max-width: 340px;
}
@media screen and (max-width: 1139px), print {
  .l-header__gNav {
    display: none;
  }
}
@media screen and (max-width: 1139px), print {
  .l-header__spMenu {
    position: absolute;
    top: -14px;
    right: 20px;
    z-index: 99;
  }
}
@media screen and (min-width: 1140px), print {
  .l-header__spMenu {
    display: none;
  }
}
.l-header__spMenu .l-header__btn {
  position: relative;
  margin-top: 0;
  width: 50px;
  height: 56px;
  cursor: pointer;
  transform: translateX(0);
}
.l-header__spMenu .l-header__btn span {
  display: inline-block;
  box-sizing: border-box;
  position: absolute;
  height: 1px;
  background-color: #222222;
  transition: all 0.5s;
}
.l-header__spMenu .l-header__btn span:nth-of-type(1) {
  top: 24px;
  right: 10px;
  width: 30px;
}
.l-header__spMenu .l-header__btn span:nth-of-type(2) {
  top: 31px;
  right: 10px;
  width: 23px;
}

.l-contentsInner {
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}

.l-container__section {
  padding: 40px 0;
}
@media screen and (min-width: 769px), print {
  .l-container__section {
    padding: 80px 0;
  }
}

/* ========== footer ========== */
.l-ft {
  background: #1D2242;
  color: #ffffff;
  padding: var(--px120) 0;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 769px), print {
  .l-ft {
    padding: var(--px144) 0;
  }
}
.l-ft ol, .l-ft ul {
  list-style: none;
}
.l-ft__left {
  width: 100%;
  padding: 20px 0;
}
@media screen and (max-width: 1139px), print {
  .l-ft__left {
    max-width: 720px;
    margin: 0 auto;
    border-bottom: 1px solid #ffffff;
  }
}
@media screen and (min-width: 1140px), print {
  .l-ft__left {
    flex: 1;
    padding: 20px 48px 20px 0;
  }
}
.l-ft__left .--inner {
  width: 100%;
  margin: 56px auto 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}
@media screen and (min-width: 769px), print {
  .l-ft__left .--inner {
    flex-direction: row;
    justify-content: space-between;
  }
}
.l-ft__right {
  width: 390px;
  padding: 20px 0;
  align-self: center;
  margin: 0 auto;
}
@media screen and (min-width: 1140px), print {
  .l-ft__right {
    border-left: 1px solid #ffffff;
  }
}
.l-ft__logo {
  text-align: center;
}
.l-ft__logo img {
  width: 100%;
  max-width: 650px;
}
@media screen and (min-width: 1140px), print {
  .l-ft__logo {
    text-align: left;
  }
}
.l-ft__contact {
  flex: 1;
  max-width: 350px;
  text-align: center;
}
@media screen and (min-width: 769px), print {
  .l-ft__contact {
    text-align: left;
  }
}
.l-ft__contact h3 {
  font-size: 38px;
  margin-bottom: 16px;
  line-height: 1;
}
.l-ft__contact p {
  font-size: 14px;
  word-break: auto-phrase;
}
.l-ft__contact .c-anchor::after {
  margin-top: 28px;
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46.21 13.29"><defs><style>.cls-1, .cls-2 {fill:%23fff;stroke-width: 0px;}</style></defs><g><path class="cls-2" d="M45.39,7.32H.65c-.36,0-.65-.29-.65-.65s.29-.65.65-.65h44.74c.36,0,.65.29.65.65s-.29.65-.65.65Z"/><path class="cls-1" d="M39.49,13.29c-.17,0-.34-.07-.47-.2-.25-.26-.25-.67.01-.92l5.6-5.49-5.58-5.58c-.25-.25-.25-.67,0-.92s.67-.25.92,0l6.04,6.04c.22.22.25.57.08.83-.02.03-.06.09-.09.11l-6.06,5.93c-.13.12-.29.19-.46.19Z"/></g></svg>');
  width: 1.5em;
  vertical-align: baseline;
}
.l-ft__address {
  width: 350px;
}
.l-ft__address dt {
  display: inline-block;
  border-top: 0.5px solid #ffffff;
  border-bottom: 0.5px solid #ffffff;
  padding: 4px 1em;
  margin-bottom: 0.5em;
}
.l-ft__address dd {
  margin-bottom: 1em;
}
.l-ft__tel {
  text-align: center;
}
.l-ft__tel h3 {
  margin-bottom: 16px;
}
.l-ft__tel h3 img {
  width: 28px;
}
.l-ft__tel h3 p {
  margin-top: 16px;
}
.l-ft__tel a {
  font-size: 38px;
  margin-top: 24px;
}
.l-ft__tel a span {
  font-size: 28px;
}
.l-ft__tel p {
  font-size: 12px;
}
.l-ft__sns {
  gap: 16px;
  justify-content: end;
  margin-top: 24px;
}
.l-ft__sns img {
  width: 32px;
}
.l-ft__map {
  position: relative;
  width: 100%;
  height: 350px;
  margin-top: 100px;
}
.l-ft__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.l-ft__nav {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media screen and (min-width: 769px), print {
  .l-ft__nav {
    flex-direction: row;
    justify-content: space-between;
  }
}
.l-ft__nav .l-ft__pageList > a {
  font-size: 14px;
  border-bottom: 1px solid #ffffff;
  padding: 4px;
}
@media screen and (max-width: 768px), print {
  .l-ft__nav .l-ft__pageList > a {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .l-ft__nav .l-ft__pageList > a::after {
    content: "〉";
    font-size: 80%;
  }
}
.l-ft__nav .l-ft__pageContents {
  display: none;
  margin-top: 32px;
  font-weight: 200;
  font-size: 12px;
}
@media screen and (min-width: 769px), print {
  .l-ft__nav .l-ft__pageContents {
    display: block;
  }
}
.l-ft__nav .l-ft__pageContents li {
  margin-top: 12px;
}
.l-ft__nav .l-ft__pageContents a {
  position: relative;
  display: inline-block;
}
.l-ft__nav .l-ft__pageContents a::before {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 1px;
  background: #ffffff;
  bottom: -1px;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.3s;
}
.l-ft__nav .l-ft__pageContents a:hover::before {
  transform: scale(1, 1);
  opacity: 1;
}
.l-ft__policy {
  font-size: 12px;
  margin: 20px 0;
  text-align: right;
}
.l-ft__copyright {
  text-align: right;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 10px;
}

/* =============================================
   component
   ============================================= */
/* ========== グローバルメニュー ========== */
.c-gNav .c-gMenu {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1140px), print {
  .c-gNav .c-gMenu {
    flex-direction: row;
    gap: 0 var(--px24);
  }
  .c-gNav .c-gMenu__item a {
    font-size: 14px;
    position: relative;
    display: inline-block;
  }
  .c-gNav .c-gMenu__item a.current {
    border-bottom: 1px solid #222222;
  }
  .c-gNav .c-gMenu__item a::before {
    position: absolute;
    left: 0;
    content: "";
    width: 100%;
    height: 1px;
    background: #222222;
    bottom: -1px;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform 0.3s;
  }
  .c-gNav .c-gMenu__item a:not(.current):hover::before {
    transform: scale(1, 1);
  }
}

/* ========== 見出し ========== */
.c-hd {
  letter-spacing: 0.4em;
  text-align: center;
}
.c-hd p {
  font-size: max(4vw, 22px);
}
.c-hd span {
  font-size: 16px;
  display: inline-block;
}
.c-hd span.--line {
  border-bottom: 1px solid #1D2242;
  padding: 4px 8px;
}
@media screen and (min-width: 769px), print {
  .c-hd p {
    font-size: min(4vw, 48px);
  }
  .c-hd span {
    font-size: 18px;
  }
}

.c-hdIcon {
  font-size: max(4vw, 24px);
  color: #1D2242;
  margin-bottom: 64px;
  letter-spacing: 0.05em;
  line-height: 1;
}
.c-hdIcon::before {
  content: url(./img/icon/icon-navy.svg);
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 16px;
  vertical-align: bottom;
}
.c-hdIcon.--white {
  color: #ffffff;
}
.c-hdIcon.--white::before {
  content: url(./img/icon/icon-white.svg);
}
.c-hdIcon span {
  font-size: 18px;
  display: block;
}
@media screen and (min-width: 769px), print {
  .c-hdIcon {
    font-size: min(4vw, 36px);
  }
  .c-hdIcon span {
    font-size: 20px;
    display: inline-block;
  }
}

.c-hdSection {
  font-size: max(4vw, 24px);
  text-align: center;
  margin-bottom: var(--px64);
  letter-spacing: 0.4em;
}
.c-hdSection span {
  display: block;
  font-size: 16px;
  letter-spacing: 0.1em;
  margin-top: var(--px24);
}
@media screen and (min-width: 769px), print {
  .c-hdSection {
    font-size: min(4vw, 36px);
  }
  .c-hdSection span {
    font-size: 20px;
  }
}

.c-hdSub {
  font-size: max(3.5vw, 22px);
  color: #222222;
  margin-bottom: 30px;
  letter-spacing: 0.1em;
}
.c-hdSub span {
  font-size: 18px;
}
@media screen and (min-width: 769px), print {
  .c-hdSub {
    font-size: 30px;
    font-size: min(3.5vw, 30px);
  }
  .c-hdSub span {
    font-size: 20px;
  }
}
.c-hdSub.--line {
  border-bottom: 1px solid #222222;
  padding-bottom: 4px;
}

.c-hdCopy {
  font-size: 24px;
  font-size: max(4vw, 20px);
  margin-bottom: 32px;
}
@media screen and (min-width: 769px), print {
  .c-hdCopy {
    font-size: 36px;
    font-size: min(4vw, 36px);
  }
}

/* ========== ボタン ========== */
.c-button {
  display: block;
  width: 100%;
  max-width: 610px;
  background-color: #F1F5F5;
  color: #1D2242;
  font-size: 16px;
  letter-spacing: 0.1em;
  text-align: center;
  padding: 18px;
  margin: 0 auto;
}
.c-button img {
  height: 0.8em;
  width: auto;
  vertical-align: baseline;
}
.c-button::after {
  content: url(./img/icon/icon-arrow.svg);
  display: inline-block;
  width: 1em;
  transition: all 0.3s ease-out;
  margin-left: 0.5em;
  vertical-align: text-top;
}
.c-button:hover::after {
  transform: translateX(10px);
}
@media screen and (min-width: 769px), print {
  .c-button {
    font-size: 19px;
  }
}

.c-anchor {
  font-size: 17px;
  padding-bottom: 4px;
  display: inline-block;
  line-height: 1;
  margin-right: 10px;
  border-bottom: 1px solid #1D2242;
}
.c-anchor::after {
  /*content:url(./img/icon/icon-arrow.svg);*/
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27.47 13.72"><defs><style>.cls-1, .cls-2 {fill:%231d2242;stroke-width: 0px;} </style></defs><g><path class="cls-2" d="M26.63,7.56H.67c-.37,0-.67-.3-.67-.67s.3-.67.67-.67h25.96c.37,0,.67.3.67.67s-.3.67-.67.67Z"/><path class="cls-1" d="M20.53,13.72c-.17,0-.35-.07-.48-.2-.26-.27-.25-.69.01-.95l5.78-5.66-5.75-5.75c-.26-.26-.26-.69,0-.95s.69-.26.95,0l6.23,6.23c.23.23.26.59.08.86-.02.04-.07.09-.1.12l-6.25,6.12c-.13.13-.3.19-.47.19Z"/></g></svg>');
  display: inline-block;
  width: 1em;
  transition: all 0.3s ease-out;
  margin-left: 0.5em;
  vertical-align: text-top;
}
.c-anchor:hover::after {
  transform: translateX(10px);
}

/* ========== パンくず ========== */
.c-breadcrumb__list {
  list-style: none;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  align-items: baseline;
  padding: 8px 0;
  font-size: 12px;
}
.c-breadcrumb__list span {
  padding: 0 8px;
}

/* ========== ページネーション ========== */
.c-pagination {
  text-align: center;
  margin: var(--px80) 0;
}
.c-pagination .page-numbers {
  display: inline-block;
  padding: 4px 8px;
  min-width: 2em;
  border: 1px solid #1D2242;
  background-color: #1D2242;
  color: #ffffff;
  font-size: var(--font20);
  font-weight: 500;
  margin: 0 4px;
}
.c-pagination .page-numbers:not([aria-current=page]) {
  border: 1px solid #1D2242;
  background-color: #ffffff;
  color: #1D2242;
}
.c-pagination .page-numbers:not([aria-current=page]):hover {
  border: 1px solid #1D2242;
  background-color: #1D2242;
  color: #ffffff;
}

/* ========== フローティングバナー ========== */
.c-floating {
  font-size: 15px;
  letter-spacing: 0.2em;
  background-color: #1D2242;
  color: #ffffff;
  border: 1px solid #1D2242;
  display: inline-block;
  padding: 16px;
  position: fixed;
  bottom: 0;
  left: 0;
}
@media screen and (min-width: 769px), print {
  .c-floating {
    writing-mode: vertical-rl;
    left: auto;
    right: 0;
    bottom: 16px;
  }
}
.c-floating:hover {
  background-color: #ffffff;
  color: #1D2242;
}

/* ========== ローディング画面 ========== */
#js-load {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  background: #1D2242;
  color: #ffffff;
  width: 100vw;
  height: 100vh;
  justify-content: center;
  align-items: center;
  z-index: 99;
  background: url(./img/pattern-lt.png) left top no-repeat, url(./img/pattern-rb.png) right bottom no-repeat, linear-gradient(#1D2242, #1D2242);
  background-size: 30%;
}
#js-load p {
  font-size: min(5vw, 42px);
  display: none;
}
#js-load:not(.js-loaded) {
  display: none;
}

/* =============================================
   project
   ============================================= */
/* ========== top ========== */
.p-top__mv {
  background: url(./img/top/mv.webp) center left 35% no-repeat;
  background-size: cover;
  width: 100%;
  height: 100vh;
  max-height: 600px;
  display: flex;
  justify-content: center;
  align-items: center;
  writing-mode: vertical-rl;
}
@media screen and (min-width: 1140px), print {
  .p-top__mv {
    background: url(./img/top/mv.webp) center center no-repeat;
    background-size: cover;
    max-height: none;
  }
}
.p-top__tagline {
  background-color: rgba(255, 255, 255, 0.7);
  padding: 0.5em 0;
  position: relative;
  font-size: max(4.5vw, 32px);
  letter-spacing: 0.2em;
  height: 13em;
}
.p-top__tagline::before {
  content: "";
  background-color: #ffffff;
  width: 1px;
  height: 100%;
  display: block;
  position: absolute;
  left: 50%;
  top: 0;
}
@media screen and (min-width: 769px), print {
  .p-top__tagline {
    font-size: min(4.5vw, 40px);
  }
}
.p-top__lead {
  background: url(./img/bg-lattice.png) left center repeat;
  text-align: center;
  width: 100%;
  padding: var(--px160) 0;
}
.p-top__lead .p-top__textWrap {
  font-size: 16px;
  display: inline-block;
  text-align: left;
}
.p-top__lead .p-top__textWrap h2 {
  font-size: max(2.5vw, 22px);
  margin-left: 0;
  margin-bottom: var(--px80);
  letter-spacing: 0.2em;
}
.p-top__lead .p-top__textWrap > div p {
  margin-bottom: 1em;
  margin-left: 0;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 769px), print {
  .p-top__lead {
    padding: var(--px280) 0;
  }
  .p-top__lead .p-top__textWrap {
    height: 22em;
    writing-mode: vertical-rl;
    font-size: min(2vw, 24px);
  }
  .p-top__lead .p-top__textWrap h2 {
    font-size: 33px;
    font-size: min(2.5vw, 33px);
    margin-left: var(--px88);
    margin-bottom: 0;
  }
  .p-top__lead .p-top__textWrap > div p {
    margin-left: 1em;
    margin-bottom: 0;
  }
}
.p-top__hatsune {
  text-align: center;
}
.p-top__hatsune .p-top__cover {
  background: url(./img/top/hatsune.jpg) center repeat;
  background-size: cover;
  width: 100%;
  text-align: center;
  padding: var(--px88) 0;
}
.p-top__hatsune .p-top__cover h2 {
  writing-mode: vertical-rl;
  text-align: left;
  display: inline-block;
  font-size: 40px;
  font-size: 20px;
  letter-spacing: 0.4em;
}
.p-top__hatsune .p-top__cover h2 span {
  font-size: 10px;
  display: block;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 769px), print {
  .p-top__hatsune .p-top__cover {
    background: url(./img/top/hatsune.jpg) center bottom -180px repeat;
  }
  .p-top__hatsune .p-top__cover h2 {
    font-size: min(4vw, 36px);
  }
  .p-top__hatsune .p-top__cover h2 span {
    font-size: 16px;
  }
}
.p-top__hatsune .l-contentsInner {
  padding: var(--px184) 20px;
}
.p-top__hatsune .p-top__text {
  font-size: 28px;
  margin-top: 80px;
}
.p-top__hatsune .p-top__text .--small {
  font-size: 18px;
}
.p-top__hatsune .c-button {
  margin-top: 80px;
}
.p-top__housing {
  background: url(./img/top/housing.jpg) center center no-repeat;
  background-size: cover;
  color: #ffffff;
  text-align: center;
  padding: var(--px160) 0;
}
.p-top__housing .p-top__text {
  width: 100%;
  margin: 0 auto 40px;
  text-align: left;
}
@media screen and (min-width: 769px), print {
  .p-top__housing .p-top__text {
    word-break: auto-phrase;
    width: 40em;
    font-size: 20px;
  }
}
.p-top__housing ul {
  list-style: none;
  width: 100%;
  max-width: 1080px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: min(2.2vw, 24px);
  font-weight: 300;
  line-height: 1.2;
  margin-top: 64px;
  position: relative;
  padding-top: 25.5%;
}
.p-top__housing ul li {
  width: 25.5%;
  height: 100%;
  position: absolute;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.p-top__housing ul li:nth-of-type(1) {
  left: 4%;
  background: url(./img/top/circle-left.svg) center no-repeat;
  background-size: 100% auto;
}
.p-top__housing ul li:nth-of-type(2) {
  left: 26.5%;
  background: url(./img/top/circle-center.svg) center no-repeat;
  background-size: 100% auto;
}
.p-top__housing ul li:nth-of-type(3) {
  left: 48.5%;
  background: url(./img/top/circle-center.svg) center no-repeat;
  background-size: 100% auto;
}
.p-top__housing ul li:nth-of-type(4) {
  left: 71%;
  background: url(./img/top/circle-right.svg) center no-repeat;
  background-size: 100% auto;
}
.p-top__housing .c-button {
  background: rgba(241, 245, 245, 0.7);
  margin-top: var(--px120);
}
.p-top__store {
  padding: var(--px144) 0;
}
.p-top__store .u-flex {
  justify-content: space-between;
  flex-direction: column;
  gap: var(--px64);
}
.p-top__store .p-top__text .c-button {
  margin-top: 48px;
}
.p-top__store .p-top__img {
  margin-bottom: 40px;
}
@media screen and (min-width: 769px), print {
  .p-top__store .u-flex {
    flex-direction: row;
  }
  .p-top__store .l-contentsInner {
    position: relative;
  }
  .p-top__store .p-top__text {
    max-width: 500px;
    width: 50%;
    font-size: 20px;
  }
  .p-top__store .p-top__img {
    width: 50%;
    padding: 0 20px 0 40px;
    position: absolute;
    right: 20px;
    bottom: 0;
  }
}
.p-top__news {
  padding: var(--px120) 0;
  background: url(./img/top/bg-news.jpg) center center no-repeat;
  background-size: cover;
}
.p-top__news h2 {
  text-align: center;
}
.p-top__news .c-anchor {
  margin-top: 60px;
}
.p-top__news .p-news__lists .p-news__item .p-news__img {
  border: none;
}
.p-top__instagram {
  padding: var(--px144) 0;
  width: 100%;
  text-align: center;
}
.p-top__instagram .c-hdIcon::before {
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.62 31.83"><defs><style>.cls-1 {fill: none;}.cls-2 {fill:fff;}</style></defs><g><path class="cls-1" d="M28.2,8.35c-.34-2.45-2.35-4.74-4.89-4.99-4.74-.47-10.27.32-15.08.03-2.4.43-4.53,2.37-4.79,4.85-.51,4.8.35,10.39-.01,15.27.37,2.53,2.38,4.77,5.01,5,4.7.41,9.99-.31,14.75,0,2.63-.38,4.81-2.42,5.02-5.11.38-4.83-.3-10.16,0-15.04ZM16.24,24.06c-10.53.53-11.67-15.35-1.08-16.24,10.83-.9,11.87,15.69,1.08,16.24ZM23.33,9.13c-1.36-.79-1.04-2.99.26-3.28,3.72-.84,2.62,4.96-.26,3.28Z"/><path class="cls-2" d="M31.43,8.83c-.29-4.65-3.5-7.93-8.06-8.69-4.85.34-10.35-.46-15.12,0C3.67.59.47,4.54.19,8.96-.07,13.01-.06,18.96.19,23.02c.29,4.66,3.76,8.34,8.49,8.69,1,.07,2.02.1,3.06.12h2.18c3.47-.05,7.03-.27,10.32-.3,4.23-.96,6.91-4.35,7.19-8.63.26-4.06.25-10.01,0-14.07ZM28.21,23.39c-.21,2.69-2.39,4.73-5.02,5.11-4.76-.31-10.05.41-14.75,0-2.63-.23-4.65-2.47-5.01-5,.36-4.88-.49-10.47.01-15.27.26-2.48,2.39-4.43,4.79-4.85,4.82.29,10.35-.5,15.08-.03,2.55.25,4.56,2.54,4.89,4.99-.29,4.88.39,10.21,0,15.04Z"/><path class="cls-2" d="M15.17,7.83c-10.59.88-9.45,16.76,1.08,16.24,10.8-.54,9.75-17.14-1.08-16.24ZM18.04,21.04c-4.33,1.78-8.48-1.74-7.77-6.26.32-2.05,2.48-4.06,4.52-4.38,6.77-1.05,9.2,8.18,3.25,10.63Z"/><path class="cls-2" d="M23.58,5.84c-1.3.29-1.62,2.49-.26,3.28,2.88,1.67,3.98-4.13.26-3.28Z"/></g></svg>');
}
.p-top__instagram .p-top__igFeed {
  margin: var(--px120) 0 80px;
}
.p-top__instagram .p-top__text {
  font-size: 17px;
  margin-top: 30px;
}
@media screen and (min-width: 769px), print {
  .p-top__instagram #sb_instagram #sbi_images {
    padding: 0;
  }
}

/* ========== サービス ========== */
.p-housing section {
  padding: var(--px184) 0;
}
.p-housing section .u-flexColumn_row {
  gap: var(--px80);
}
.p-housing section:nth-of-type(odd) {
  background: url(./img/bg-lattice.png) left center repeat;
}
@media screen and (min-width: 769px), print {
  .p-housing section:nth-of-type(odd) .u-flexColumn_row {
    flex-direction: row-reverse;
  }
}
.p-housing section:nth-of-type(even) {
  background-color: #F1F5F5;
}
.p-housing section#contact {
  background: #ffffff;
}
@media screen and (min-width: 769px), print {
  .p-housing section#contact {
    text-align: center;
  }
}
.p-housing__text {
  flex: 1;
}
.p-housing__img {
  width: 100%;
}
@media screen and (min-width: 769px), print {
  .p-housing__img {
    width: 50%;
  }
}
.p-housing .l-contentsInner {
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}
.p-housing .l-contentsInner p {
  line-height: 2;
}

/* ========== 店舗設計・施工 ========== */
.p-store {
  background-color: #F1F5F5;
}
.p-store section {
  padding: var(--px184) 0;
}
.p-store .p-store__img {
  margin-top: var(--px160);
}
.p-store .p-store__text {
  max-width: 960px;
  width: 100%;
  margin: var(--px160) auto 0;
}
.p-store .p-store__text .c-hdCopy {
  text-align: center;
}
.p-store .p-store__text p {
  line-height: 2;
}
.store .c-breadcrumb {
  background-color: #F1F5F5;
}

/* ========== 会社概要 ========== */
.p-company .l-contentsInner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}
.p-company .p-company__overview {
  margin: var(--px80) 0;
  font-size: 16px;
}
.p-company .p-company__overview .c-hdIcon {
  margin-bottom: 40px;
}
@media screen and (min-width: 769px), print {
  .p-company .p-company__overview .c-hdIcon {
    margin-bottom: 70px;
  }
}
.p-company .p-company__overview dl div {
  padding: 8px 0;
  display: flex;
  gap: 1em;
}
@media screen and (min-width: 769px), print {
  .p-company .p-company__overview dl div {
    gap: 2em;
  }
}
.p-company .p-company__overview dl dt {
  width: 5em;
}
.p-company .p-company__overview dl dd {
  flex: 1;
  word-break: auto-phrase;
}
.p-company .p-company__overview dl dd a {
  text-decoration: underline;
}
.p-company .p-company__overview dl dd p {
  margin-bottom: 16px;
}
.p-company .p-company__overview ol {
  list-style: none;
}

/* ========== お問い合わせ ========== */
.p-contact .l-contentsInner,
.p-contact__thanks .l-contentsInner {
  max-width: 800px;
  width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}
.p-contact .wpcf7 form.sent .wpcf7-response-output,
.p-contact__thanks .wpcf7 form.sent .wpcf7-response-output {
  border: 2px solid #1D2242;
}

/* ========== お問い合わせフォーム ========== */
.p-contactForm {
  padding: 80px 0;
  font-size: 16px;
}
.p-contactForm > dt {
  font-weight: 500;
  margin-bottom: 8px;
}
.p-contactForm > dd input,
.p-contactForm > dd textarea {
  border: 1px solid #1D2242;
  border-radius: 5px;
  background-color: #ffffff;
  padding: 8px;
  width: 100%;
  box-sizing: border-box;
}
.p-contactForm > dd {
  margin-bottom: 30px;
}
.p-contactForm .c-required {
  display: inline-block;
  line-height: 1;
  font-size: 11px;
  background-color: #1D2242;
  color: #ffffff;
  padding: 4px;
  margin: 0 4px 4px;
}
.p-contactForm__agree {
  text-align: center;
}
.p-contactForm__agree > a {
  color: #1D2242;
  text-decoration: underline;
}
.p-contactForm__agree > a:hover {
  opacity: 0.8;
}
.p-contactForm__btn {
  background-color: #1D2242;
  font-size: 24px;
  color: #ffffff;
  font-weight: 500;
  display: block;
  margin: 0 auto;
  width: 100%;
  max-width: 320px;
  text-align: center;
  padding: 16px;
  border: 1px solid #1D2242;
  letter-spacing: 0.2em;
  transition: all 0.3s ease-in-out;
}
.p-contactForm__btn:hover {
  cursor: pointer;
  background-color: #ffffff;
  color: #1D2242;
}

/* ========== お知らせ ========== */
.p-news {
  font-size: 16px;
}
.p-news section {
  padding: var(--px184) 0;
}
.p-news__lists {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: var(--px80) 30px;
}
.p-news__lists .p-news__item {
  flex: 1;
  overflow: hidden;
}
.p-news__lists .p-news__item a:hover .p-news__img img {
  transform: scale(1.1);
}
.p-news__lists .p-news__item .p-news__img {
  width: 100%;
  height: 64%;
  overflow: hidden;
}
.p-news__lists .p-news__item .p-news__img img {
  transition: all 0.3s ease-out;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-news__lists .p-news__item .p-news__text {
  padding-top: 16px;
  font-size: 20px;
}
.p-news__lists .p-news__item .p-news__text .p-news__time {
  font-size: 14px;
}
.p-news__lists .p-news__item:hover:hover {
  opacity: 1;
}
.p-news__lists .p-news__item:hover:hover .p-news__img {
  transform: scale(1.1);
}

.p-newsArticle .l-contentsInner {
  max-width: 1040px;
  width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}

/* =============================================
   utility
   ============================================= */
/****** 上のmargin ******/
.u-mtS {
  margin-top: 1em;
}

.u-mtM {
  margin-top: var(--px40);
}

.u-mtL {
  margin-top: var(--px64);
}

.u-mtXL {
  margin-top: var(--px120);
}

/****** 下のmargin ******/
.u-mbS {
  margin-bottom: 1em;
}

.u-mbM {
  margin-bottom: var(--px40);
}

.u-mbL {
  margin-bottom: var(--px64);
}

.u-mbXL {
  margin-bottom: var(--px120);
}

/****** 右のmargin ******/
.u-mrS {
  margin-right: var(--px16);
}

.u-mrM {
  margin-right: var(--px40);
}

.u-mrL {
  margin-right: var(--px64);
}

/****** 左右のmargin ******/
.u-mxS {
  margin: 0 var(--px16);
}

.u-mxM {
  margin: 0 var(--px40);
}

.u-mxL {
  margin: 0 var(--px64);
}

.u-pS {
  padding: var(--px16);
}

.u-pM {
  padding: var(--px40);
}

.u-pL {
  padding: var(--px64);
}

.u-pXl {
  padding: var(--px120);
}

/****** 上下のpadding ******/
.u-pyS {
  padding-top: var(--px16);
  padding-bottom: var(--px16);
}

.u-pyM {
  padding-top: var(--px40);
  padding-bottom: var(--px40);
}

.u-pyL {
  padding-top: var(--px64);
  padding-bottom: var(--px64);
}

.u-pyXl {
  padding-top: var(--px120);
  padding-bottom: var(--px120);
}

/****** 左右のpadding ******/
.u-pxS {
  padding-left: var(--px16);
  padding-right: var(--px16);
}

.u-pxM {
  padding-left: var(--px40);
  padding-right: var(--px40);
}

.u-pxL {
  padding-left: var(--px64);
  padding-right: var(--px64);
}

.u-flex {
  display: flex;
}
.u-flex.u-flex__wrap {
  flex-wrap: wrap;
}

.u-flexColumn {
  display: flex;
  flex-direction: column;
}

.u-flexRow {
  display: flex;
  flex-direction: row;
  /* 均等の場合 */
}
.u-flexRow .u-row__content {
  flex: 1;
}

ul.u-flexRow {
  list-style: none;
}

.u-flexColumn_row {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 769px), print {
  .u-flexColumn_row {
    flex-direction: row;
  }
}

.u-flex__between {
  justify-content: space-between;
}

.u-flex__alignCenter {
  align-items: center;
}/*# sourceMappingURL=style.css.map */