@charset "UTF-8";
/* ==============================
   Foundation
   ============================== */
/**
 * 例：
 * @include sp { ... }
 * @include pc { ... }
 */
html {
  font-size: 16px;
}

/* ============================
   用途別ミックスイン（推奨値）
   ※ 企業サイト向けに控えめなスケール
   ============================ */
/* ============================
   （任意）ユーティリティ自動生成
   ============================ */
.u-text--xs {
  font-size: clamp(12px, 1.2vw, 14px);
  line-height: 1.6;
}

.u-text--sm {
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.5;
}

.u-text--md {
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.8;
}

.u-text--lg {
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.75;
}

.u-h1 {
  font-weight: 600;
  font-size: clamp(24px, 2.4vw, 28px);
  line-height: 1.2;
}

.u-h2 {
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}

.u-h3 {
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}

.u-btn {
  font-weight: 600;
  font-size: clamp(14px, 1.3vw, 16px);
  line-height: 1.1;
}

/* 変数・mixinをグローバル風に */
/* 使っていれば併用（任意。variablesで@forwardしているなら省略可） */
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  list-style: none;
}

body {
  line-height: 1;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

/* ==============================
   Foundation
   ============================== */
html,
body {
  height: 100%;
}

body {
  color: #333;
  font-family: "Noto Sans JP", "游ゴシック Medium", YuGothic, YuGothicM, "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, sans-serif;
  font-size: 100%;
  line-height: 1.8;
  font-weight: 400;
  background-image: url(../images/common/bg_header.png);
  background-repeat: no-repeat;
  background-position: center top;
}

body.page-recruit {
  background-image: url(../images/recruit/bg_recruit.png);
  background-repeat: no-repeat;
}

body.menu-open {
  overflow: hidden;
  touch-action: none;
}

@media (min-width: 768px) {
  body.menu-open {
    overflow: auto;
    /* 768px以上は固定しない */
    touch-action: auto;
  }
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: normal;
  line-height: 1.6;
}

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

a {
  color: #333;
  text-decoration: none;
}

a:hover {
  transition: 0.4s;
}

a:hover g {
  transition: 0.4s;
}

a:hover img {
  transition: 0.4s;
}

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

figure {
  margin: 0;
}

img[data-fancybox] {
  cursor: pointer;
}

/* ==============================
   Layout
   ============================== */
/* ==============================
   Foundation
   ============================== */
/* ==============================
   Foundation
   ============================== */
html.is-fixed,
body.is-fixed {
  overflow: hidden;
}

.u-visually-hidden {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
}

.l-header {
  position: relative;
  top: 0;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 72px;
  padding-inline: clamp(16px, 3vw, 32px);
  /* オーバーレイ本体（全画面＆中央寄せ） */
}
.l-header__logo {
  display: grid;
  place-items: center;
  width: 120px;
}
.l-header__logolink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
.l-header__logoimg {
  display: block;
  width: 120px;
  height: auto;
}
.l-header__navwrap {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2vw, 24px);
}
.l-header__gnav {
  display: none;
}
@media (min-width: 992px) {
  .l-header__gnav {
    display: block;
    margin-right: 24px;
  }
}
.l-header__spnav {
  position: fixed;
  inset: 0;
  z-index: 1100;
  background-color: #6B83B2;
  display: grid;
  place-items: center;
  /* 安全領域・計算用の余白（ハンバーガー分 + 24px） */
  --overlay-pad-y: calc(24px + env(safe-area-inset-top));
  --overlay-pad-x: clamp(20px, 5vw, 40px);
  /* 余白：ヘッダー分 + 内側余白（必要に応じて調整） */
  padding: var(--overlay-pad-y) var(--overlay-pad-x);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity 0.25s, transform 0.25s, visibility 0s linear 0.25s;
}
@media (min-width: 992px) {
  .l-header__spnav {
    background-image: linear-gradient(#6b9eb2, #6b83b2);
  }
}
.l-header__spnav.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity 0.25s, transform 0.25s, visibility 0s;
}

.l-hamburger {
  position: relative;
  z-index: 1102;
}

.l-hamburger__btn {
  /* 固定配置（右上） */
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: inherit;
  /* タップ領域 */
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  /* デフォルト色（閉じている時） */
  color: #111;
  /* 3本線（色は currentColor に追従） */
  /* OPEN時は × に変形（aria-expanded を参照） */
}
.l-hamburger__btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.l-hamburger__btn .l-hamburger__line {
  position: absolute;
  left: 50%;
  width: 24px;
  height: 2px;
  background: currentColor;
  transform: translateX(-50%);
  transition: transform 0.25s ease, opacity 0.2s ease, top 0.25s ease;
  box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 6%, transparent);
}
.l-hamburger__btn .l-hamburger__line:nth-child(1) {
  top: 14px;
}
.l-hamburger__btn .l-hamburger__line:nth-child(2) {
  top: 21px;
}
.l-hamburger__btn .l-hamburger__line:nth-child(3) {
  top: 28px;
}
.l-hamburger__btn[aria-expanded=true] .l-hamburger__line:nth-child(1) {
  top: 21px;
  transform: translateX(-50%) rotate(45deg);
}
.l-hamburger__btn[aria-expanded=true] .l-hamburger__line:nth-child(2) {
  opacity: 0;
}
.l-hamburger__btn[aria-expanded=true] .l-hamburger__line:nth-child(3) {
  top: 21px;
  transform: translateX(-50%) rotate(-45deg);
}

/* 閉じている時は必ず黒、開いている時は白（特定度を上げて確定） */
html:not(.is-fixed) .l-hamburger__btn {
  color: #111;
}

html.is-fixed .l-hamburger__btn {
  color: #fff;
}

/* 線の色は必ず currentColor を使う（どこかで #fff を直指定しても潰す） */
.l-hamburger__btn .l-hamburger__line {
  background: currentColor !important;
}

.l-gnav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: none;
}
@media (min-width: 992px) {
  .l-gnav {
    display: flex;
    align-items: center;
    gap: clamp(16px, 2.2vw, 32px);
  }
}
.l-gnav .l-gnav__link {
  display: inline-block;
  padding: 8px 0;
  text-decoration: none;
  color: #111;
  font-weight: 500;
  line-height: 1;
  position: relative;
  /* ▼ 下線（初期は非表示） */
  /* ▼ hover/focus で下線が右に向かって伸びる */
  /* ※ text-decoration は不要なので削除 */
}
.l-gnav .l-gnav__link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background-color: currentColor;
  transition: width 0.3s ease;
}
.l-gnav .l-gnav__link:hover::before, .l-gnav .l-gnav__link:focus-visible::before {
  width: 100%;
}
.l-gnav .l-gnav__link:focus-visible {
  outline: none;
}

/* 中身：3カラム */
.l-spnav {
  /* 中身自体をセンタリング＆横幅制御 */
  width: min(800px, 92vw);
  /* ここがポイント：縦方向の最大値をビューポート高 - 上下余白 に */
  max-height: calc(100dvh - var(--overlay-pad-y) * 2);
  overflow-y: auto;
  overscroll-behavior: contain;
  /* オーバースクロールを親へ伝播させない */
  -webkit-overflow-scrolling: touch;
  /* iOSでスムーズスクロール */
  display: flex;
  /* 縦方向中央 */
  /* 3カラムを左右に配分 */
  gap: 16px;
  /* SPは縦積み（中央寄せ） */
  flex-direction: column;
  text-align: center;
  /* 任意：スクロールバーの見た目（必要なければ削除OK） */
  /* 3カラムの幅配分：ロゴ1/3、ナビ1/3ずつ */
  /* 2つ目のナビ（文字数が多い） */
  /* 子階層（必要ならアコーディオンJSのままでOK） */
}
@media (min-width: 992px) {
  .l-spnav {
    /* タブレット以上で3カラム横並び */
    flex-direction: row;
    text-align: left;
    gap: clamp(16px, 4vw, 48px);
  }
}
.l-spnav::-webkit-scrollbar {
  width: 8px;
}
.l-spnav::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.25);
  border-radius: 4px;
}
.l-spnav::-webkit-scrollbar-track {
  background: transparent;
}
.l-spnav__logo {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
@media (min-width: 992px) {
  .l-spnav__logo {
    width: 280px;
    justify-content: flex-start;
  }
}
.l-spnav__logowrap {
  width: 100%;
}
.l-spnav__logoimg {
  width: 120px;
  margin: 8px auto 24px auto;
  height: auto;
  display: block;
}
@media (min-width: 992px) {
  .l-spnav__logoimg {
    margin: 16px 0 0 0;
  }
}
.l-spnav__snswrap {
  display: flex;
  gap: 16px;
  justify-content: center;
  width: 100%;
}
@media (min-width: 992px) {
  .l-spnav__snswrap {
    justify-content: left;
  }
}
.l-spnav__sns {
  fill: #fff;
  width: 30px;
  height: 30px;
}
.l-spnav__nav {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  gap: 12px;
  width: 90%;
  /* SPのときは余白を少し広めに */
}
@media (min-width: 380px) {
  .l-spnav__nav {
    gap: clamp(8px, 2.8vw, 12px);
  }
}
@media (min-width: 992px) {
  .l-spnav__nav {
    width: auto;
  }
}
@media (min-width: 992px) {
  .l-spnav__nav:nth-of-type(1) {
    /* 残り幅（100% - 240px）を分配 */
    width: calc((100% - 280px) * 0.35);
  }
}
@media (min-width: 992px) {
  .l-spnav__nav:nth-of-type(2) {
    width: calc((100% - 280px) * 0.65);
  }
}
.l-spnav__link {
  display: block;
  padding: 10px 0;
  text-decoration: none;
  color: #fff;
  font-size: clamp(16px, 4.6vw, 20px);
  line-height: 1.35;
  background-color: #607aa3;
  position: relative;
  /* ▼ SP用：右の「＞」アイコン */
  /* ▼ PC用：下線アニメーション（テキスト幅だけ） */
  /* ▼ hover / focus 時に下線を伸ばすのは「リンク本体」に対して書く */
}
@media (min-width: 992px) {
  .l-spnav__link {
    background-color: transparent;
    padding-bottom: 12px;
    display: inline-block;
  }
}
.l-spnav__link::after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 8px;
  background-size: contain;
  background-repeat: no-repeat;
  /* 白い「＞」SVG */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 14'><path fill='%23fff' d='M0 0l8 7-8 7z'/></svg>");
}
@media (min-width: 992px) {
  .l-spnav__link::after {
    display: none;
  }
}
.l-spnav__link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  background-color: #fff;
  width: 0;
  transition: width 0.3s ease;
  display: none;
}
@media (min-width: 992px) {
  .l-spnav__link::before {
    display: block;
  }
}
.l-spnav__link:hover, .l-spnav__link:focus-visible {
  text-decoration: none;
  outline: none;
}
@media (min-width: 992px) {
  .l-spnav__link:hover::before, .l-spnav__link:focus-visible::before {
    width: 100%;
  }
}
.l-spnav__child {
  list-style: none;
  margin: 6px 0 0 0;
  padding: 0 0 0 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
}
.l-spnav__childlist {
  width: calc((100% - 16px) / 2);
}
.l-spnav__childlist a {
  display: block;
  padding: 0;
  font-size: clamp(14px, 3.6vw, 16px);
  color: #fff;
  text-decoration: none;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.15);
}

/* ハンバーガーボタンはモーダルより上に固定（×として使う） */
.l-hamburger {
  position: relative;
  z-index: 1102;
}
.l-hamburger__btn {
  position: fixed;
  top: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  z-index: inherit;
  /* 開いたら × に変形 */
}
.l-hamburger__btn .l-hamburger__line {
  position: absolute;
  left: 50%;
  width: 24px;
  height: 2px;
  background: #fff;
  /* 背景暗いので白線 */
  transform: translateX(-50%);
  transition: transform 0.25s ease, opacity 0.2s ease, top 0.25s ease;
}
.l-hamburger__btn .l-hamburger__line:nth-child(1) {
  top: 14px;
}
.l-hamburger__btn .l-hamburger__line:nth-child(2) {
  top: 21px;
}
.l-hamburger__btn .l-hamburger__line:nth-child(3) {
  top: 28px;
}
.l-hamburger__btn[aria-expanded=true] .l-hamburger__line:nth-child(1) {
  top: 21px;
  transform: translateX(-50%) rotate(45deg);
}
.l-hamburger__btn[aria-expanded=true] .l-hamburger__line:nth-child(2) {
  opacity: 0;
}
.l-hamburger__btn[aria-expanded=true] .l-hamburger__line:nth-child(3) {
  top: 21px;
  transform: translateX(-50%) rotate(-45deg);
}
.l-hamburger__btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* PCのグロナビはtab以上で表示、SPでは非表示のまま */
.l-header__gnav {
  display: none;
}
@media (min-width: 992px) {
  .l-header__gnav {
    display: block;
  }
}

/* ==============================
   Foundation
   ============================== */
/* ==============================
   Foundation
   ============================== */
.c-container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .c-container {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .c-container {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .c-container {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}

.c-container-small {
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .c-container-small {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .c-container-small {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}

.c-pageback {
  text-align: center;
  margin-bottom: 80px;
}

.c-pagination {
  text-align: center;
  margin: 40px auto 80px;
}
@media (min-width: 992px) {
  .c-pagination {
    margin-top: 64px auto 120px;
  }
}
.c-pagination__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding: 0;
  margin: 0;
  list-style: none;
}
@media (min-width: 768px) {
  .c-pagination__list {
    gap: 8px;
  }
}
@media (min-width: 992px) {
  .c-pagination__list {
    gap: 10px;
  }
}
.c-pagination__item {
  display: inline-flex;
}
.c-pagination .page-numbers {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  font-size: 13px;
  border: 1px solid #6B83B2;
  border-radius: 50%;
  color: #6B83B2;
  text-decoration: none;
  background-color: #fff;
  line-height: 1;
  transition: all 0.2s ease;
}
@media (min-width: 768px) {
  .c-pagination .page-numbers {
    min-width: 36px;
    height: 36px;
    font-size: 14px;
    padding: 0 10px;
  }
}
@media (min-width: 992px) {
  .c-pagination .page-numbers {
    min-width: 40px;
    height: 40px;
    font-size: 15px;
    padding: 0 12px;
  }
}
.c-pagination .page-numbers:hover, .c-pagination .page-numbers:focus {
  border-color: #6B83B2;
  background-color: #6B83B2;
  color: #fff;
}
.c-pagination .page-numbers.current {
  font-weight: 700;
  color: #fff;
  background-color: #6B83B2;
  border-color: #6B83B2;
  pointer-events: none;
}
.c-pagination .page-numbers.dots {
  border: none;
  background: none;
  color: #6B83B2;
  cursor: default;
}
.c-pagination .prev,
.c-pagination .next {
  font-weight: 700;
}

.c-postnav {
  display: flex;
  gap: 24px;
  justify-content: center;
  margin-bottom: 120px;
}
.c-postnav .c-btn {
  padding: 16px 32px;
}
.c-postnav__next .c-btn {
  flex-direction: row;
  gap: 10px;
}
.c-postnav__next .c-btn::after {
  margin: 0;
  transform: none;
}
.c-postnav__next .c-btn:hover::after {
  transform: translateX(4px);
}
.c-postnav__prev .c-btn {
  flex-direction: row-reverse;
  gap: 10px;
}
.c-postnav__prev .c-btn::after {
  margin: 0;
  transform: rotate(180deg);
}
.c-postnav__prev .c-btn:hover::after {
  transform: translateX(-4px) rotate(180deg);
}

.c-404 {
  text-align: center;
  padding: 80px 30px;
}
.c-404__title {
  max-width: 360px;
  margin: 0 auto 16px auto;
}
.c-404__sub-title {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 40px;
}
.c-404__txt {
  margin-bottom: 16px;
}
.c-404__link {
  text-decoration: underline;
}

.c-pagetop {
  position: fixed;
  right: clamp(12px, 2vw, 20px);
  bottom: clamp(12px, 2vw, 20px);
  width: 30px;
  height: 83px;
  display: grid;
  place-items: center;
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.2s ease;
  transform: translateY(8px);
}
.c-pagetop.is-show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.c-pagetop__icon {
  width: 100%;
  height: auto;
  display: block;
}
.c-pagetop > * {
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .c-pagetop {
    transition: none;
    transform: none;
  }
}

.c-contact {
  margin-bottom: 80px;
}
@media (min-width: 992px) {
  .c-contact {
    display: flex;
    margin-bottom: 120px;
  }
}
.c-contact__tel {
  background-color: #FFF0F0;
  text-align: center;
  padding: 64px 16px;
}
@media (min-width: 992px) {
  .c-contact__tel {
    width: 33.3333333333%;
  }
}
.c-contact__sns {
  background-color: #FFF0F0;
  text-align: center;
  padding: 64px 16px;
}
@media (min-width: 992px) {
  .c-contact__sns {
    width: 33.3333333333%;
  }
}
.c-contact__mail {
  background-color: #F0DCDC;
  text-align: center;
  padding: 64px 16px;
}
@media (min-width: 992px) {
  .c-contact__mail {
    width: 33.3333333333%;
  }
}
.c-contact__title {
  margin-bottom: 24px;
  position: relative;
  padding-top: 40px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.c-contact__title::before {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  margin-left: -20px;
  background-image: url("../images/common/icon_tel.png");
  background-repeat: no-repeat;
  background-size: contain;
}
.c-contact__title--sns::before {
  width: 50px;
  height: 50px;
  margin-left: -25px;
  background-image: url("../images/common/icon_sns.png");
}
.c-contact__title--mail::before {
  width: 40px;
  height: 40px;
  margin-left: -20px;
  background-image: url("../images/common/icon_mail.png");
}
.c-contact__telnum {
  margin-bottom: 24px;
}
.c-contact__link {
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.c-contact__txt {
  margin-bottom: 24px;
}
.c-contact__btn {
  margin: 0 auto;
}
.c-contact__snsicon {
  width: 40px;
  height: auto;
  margin-top: 24px;
}

.c-recruitbnr {
  margin-bottom: 80px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .c-recruitbnr {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .c-recruitbnr {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (min-width: 768px) {
  .c-recruitbnr {
    display: flex;
    margin-bottom: 120px;
  }
}

.c-rightnav {
  position: fixed;
  z-index: 10;
  bottom: 0;
  width: 100%;
  /* --- contact ボタン ------------------------------------ */
  /* --- recruit ボタン ------------------------------------ */
  /* --- 縦書きラベル共通 ------------------------------------ */
}
@media (min-width: 768px) {
  .c-rightnav {
    width: auto;
    right: 0;
    top: 160px;
    bottom: auto;
    left: auto;
  }
}
.c-rightnav__menu {
  display: flex;
}
@media (min-width: 768px) {
  .c-rightnav__menu {
    display: block;
  }
}
.c-rightnav__list {
  width: 50%;
}
@media (min-width: 768px) {
  .c-rightnav__list {
    width: auto;
  }
}
.c-rightnav__contact {
  display: block;
  position: relative;
  padding: 8px 8px 8px 40px;
  background-color: #869F9B;
  color: #fff;
  text-align: center;
}
@media (min-width: 768px) {
  .c-rightnav__contact {
    width: 48px;
    padding: 56px 8px 24px;
    border-radius: 16px 0 0 0;
  }
}
.c-rightnav__contact::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background: url("../images/common/icon_mail-white.png") no-repeat center/contain;
}
@media (min-width: 768px) {
  .c-rightnav__contact::before {
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
  }
}
.c-rightnav__contact:hover {
  background-color: #E2CEAF;
}
.c-rightnav__recruit {
  display: block;
  position: relative;
  padding: 8px 8px 8px 40px;
  background-color: #D6ABAD;
  color: #fff;
  text-align: center;
}
@media (min-width: 768px) {
  .c-rightnav__recruit {
    width: 48px;
    padding: 56px 8px 24px;
    border-radius: 0 0 0 16px;
  }
}
.c-rightnav__recruit::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background: url("../images/common/icon_recruit-white.png") no-repeat center/contain;
}
@media (min-width: 768px) {
  .c-rightnav__recruit::before {
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
  }
}
.c-rightnav__recruit:hover {
  background-color: #E2CEAF;
}
@media (min-width: 768px) {
  .c-rightnav__label {
    display: inline-block;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.2em;
  }
}

.c-bnr {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .c-bnr {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .c-bnr {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .c-bnr {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .c-bnr {
    margin-bottom: 160px;
  }
}
.c-bnr__link {
  background-color: #E1CCAD;
  padding: 16px;
  text-align: center;
  display: flex;
  gap: 8px;
}
@media (min-width: 768px) {
  .c-bnr__link {
    display: block;
    width: calc((100% - 72px) / 4);
  }
}
.c-bnr__link:hover {
  background-color: #ccc;
}
.c-bnr__img {
  width: 45%;
}
@media (min-width: 768px) {
  .c-bnr__img {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .c-bnr__pic {
    margin-bottom: 16px;
  }
}
.c-bnr__title {
  font-weight: bold;
  font-size: clamp(16px, 1.4vw, 28px);
  margin-bottom: 8px;
}
@media (min-width: 768px) {
  .c-bnr__title {
    line-height: 1.2;
    font-size: clamp(16px, 1.2vw, 24px);
  }
}
.c-bnr__inner {
  width: 55%;
}
@media (min-width: 768px) {
  .c-bnr__inner {
    width: 100%;
  }
}
.c-bnr__txt {
  font-size: clamp(12px, 1.2vw, 14px);
  line-height: 1.6;
}

.c-housebnr {
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .c-housebnr {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .c-housebnr {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .c-housebnr {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .c-housebnr {
    margin-bottom: 160px;
  }
}
.c-housebnr__list {
  display: flex;
  justify-content: center;
  gap: 24px;
}
.c-housebnr__item {
  max-width: 320px;
}

.c-booking {
  margin-bottom: 160px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .c-booking {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .c-booking {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .c-booking {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.c-booking__title {
  text-align: center;
  background-color: #6B83B2;
  color: #fff;
  margin-bottom: 40px;
  padding: 16px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.c-booking__subtitle {
  text-align: center;
  margin-bottom: 40px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.c-booking__txt {
  text-align: center;
  margin-bottom: 40px;
}
.c-booking__wrap {
  padding: 24px;
  background-color: #FFF8EF;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .c-booking__wrap {
    padding: 40px;
  }
}
.c-booking__telnum {
  text-align: center;
  margin-bottom: 16px;
}
.c-booking__link {
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.c-booking__time {
  text-align: center;
}

@media (min-width: 768px) {
  .c-mailform {
    display: flex;
    flex-wrap: wrap;
    max-width: 800px;
    margin: 0 auto;
    justify-content: space-between;
  }
}
.c-mailform__item {
  width: 100%;
  padding: 16px;
  text-align: center;
  border-bottom: solid 1px #ccc;
  background-color: #fff;
}
@media (min-width: 768px) {
  .c-mailform__item {
    background-color: transparent;
    padding: 24px 16px;
    width: 200px;
    text-align: right;
  }
}
.c-mailform__must {
  color: #ff0000;
  margin-left: 8px;
  font-size: 12px;
}
.c-mailform__input {
  width: 100%;
  padding: 16px 0;
  border-bottom: solid 1px #ccc;
}
@media (min-width: 768px) {
  .c-mailform__input {
    width: calc(100% - 200px);
    padding: 24px 16px;
  }
}
.c-mailform__inputtext {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #ccc;
  border-radius: 3px;
  line-height: 1.5;
  font-size: 16px;
}
.c-mailform__inputpost {
  width: 200px;
  margin-bottom: 8px;
}
.c-mailform__inputshort {
  width: 80px;
}
.c-mailform__radio {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3em 2em;
  border: none;
}
.c-mailform__radio label {
  display: flex;
  align-items: center;
  gap: 0 0.5em;
  position: relative;
  cursor: pointer;
}
.c-mailform__radio label::before, .c-mailform__radio label:has(:checked)::after {
  border-radius: 50%;
  content: "";
}
.c-mailform__radio label::before {
  width: 18px;
  height: 18px;
  background-color: #e6edf3;
}
.c-mailform__radio label:has(:checked)::after {
  position: absolute;
  top: 50%;
  left: 9px;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  background-color: #974949;
  animation: anim-radio-1 0.3s linear;
}
.c-mailform__radio input {
  display: none;
}
.c-mailform input::-moz-placeholder {
  color: #ccc;
}
.c-mailform input::placeholder {
  color: #ccc;
}
.c-mailform__select {
  display: inline-flex;
  align-items: center;
  position: relative;
}
.c-mailform__select::after {
  position: absolute;
  right: 15px;
  width: 10px;
  height: 7px;
  background-color: #535353;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
  pointer-events: none;
}
.c-mailform__select select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 12px 32px 12px 12px;
  border: 1px solid #d0d0d0;
  border-radius: 3px;
  background-color: #fff;
  color: #333333;
  font-size: 1em;
  cursor: pointer;
}
.c-mailform__select--inline {
  float: left;
  margin-right: 16px;
}
.c-mailform__subtitle {
  background-color: #6B83B2;
  color: #fff;
  text-align: center;
  padding: 16px;
  margin-top: 24px;
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.75;
}
.c-mailform__note {
  display: block;
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.5;
}
.c-mailform__pplink {
  font-weight: bold;
  text-decoration: underline;
}
.c-mailform__check {
  font-size: 20px;
  margin-top: 16px;
}
.c-mailform__confirm {
  padding-top: 40px;
  text-align: center;
  margin-bottom: 32px;
}
.c-mailform__submit {
  text-align: center;
  margin: 0 auto;
}
.c-mailform__submit .c-btn {
  margin: 0 auto;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.8;
}
.c-mailform__submit .c-btn:hover {
  background-color: #fff;
}

@keyframes c-mailform__radio {
  0% {
    box-shadow: 0 0 0 1px transparent;
  }
  50% {
    box-shadow: 0 0 0 10px #f2f2f2;
  }
  100% {
    box-shadow: 0 0 0 10px transparent;
  }
}
.wpcf7 form .wpcf7-response-output {
  margin: 2em 0.5em 1em;
  padding: 0.2em 1em;
  background-color: #e05858;
  color: #fff;
  border: none;
  text-align: center;
  /* Blue */
}

.wpcf7 form.init .wpcf7-response-output {
  display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
  background-color: #869F9B;
  color: #fff;
  text-align: center;
  /* Green */
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  border-color: #dc3232;
  /* Red */
}

.wpcf7 form.spam .wpcf7-response-output {
  border-color: #f56e28;
  /* Orange */
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
  border-color: #ffb900;
  /* Yellow */
}

.c-case__box {
  width: calc((100% - 80px) / 3);
}
.c-case__link {
  color: #fff;
}
.c-case__link:hover {
  text-decoration: none;
}
.c-case__img {
  margin-bottom: 16px;
  overflow: hidden;
}
.c-case__img {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .c-case__img {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .c-case__img {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .c-case__img {
    border-radius: 32px;
  }
}
.c-case__pic {
  transition: all 0.3s ease-in-out;
}
.c-case__pic:hover {
  transform: scale(1.1);
}
.c-case__casetitle {
  margin-bottom: 16px;
}
.c-case__btn {
  margin: 0 auto;
}

.c-pagetitle {
  text-align: center;
  padding: 24px 0;
  margin: 24px 0 24px;
}
@media (min-width: 768px) {
  .c-pagetitle {
    padding: 40px 0 16px 0;
    margin: 40px 0 64px;
  }
}
@media (min-width: 992px) {
  .c-pagetitle {
    margin-bottom: 96px;
  }
}
.c-pagetitle__title {
  letter-spacing: 0.15em;
  text-indent: 0.15em;
  font-weight: 600;
  font-size: clamp(24px, 2.4vw, 28px);
  line-height: 1.2;
}
.c-pagetitle__etusus {
  max-width: 300px;
  height: auto;
}

.c-subtitle {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 32px;
}
@media (min-width: 768px) {
  .c-subtitle {
    flex-wrap: nowrap;
  }
}
.c-subtitle__title {
  font-size: 32px;
  font-family: "Noto Serif JP", 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", HGS明朝E, メイリオ, Meiryo, serif;
  margin-right: 24px;
}
@media (min-width: 768px) {
  .c-subtitle__title {
    font-size: 38px;
  }
}
.c-subtitle__sub {
  font-size: 18px;
}

.c-contents p {
  margin-bottom: 1.8em;
}
.c-contents img {
  margin-bottom: 0.8em;
}
.c-contents h1 {
  font-size: 1.6rem;
  font-weight: bold;
}
.c-contents h2 {
  font-size: 1.4rem;
  font-weight: bold;
}
.c-contents h3 {
  font-size: 1.2rem;
  font-weight: bold;
}
.c-contents strong {
  font-weight: bold;
}
.c-contents a {
  text-decoration: underline;
  color: #6B83B2;
}
.c-contents mark {
  font-style: initial;
  font-weight: initial;
}

/* ローディング全体 */
.c-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: linear-gradient(#fff8ef, #fbe2e2);
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
.c-loader__inner {
  text-align: center;
}
.c-loader__logo img {
  max-width: 40px;
  height: auto;
  margin-bottom: 16px;
  animation: logo-sway 2.4s ease-in-out infinite;
}
.c-loader__spinner {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 3px solid rgb(61, 86, 178);
  border-top-color: #fe2d2a;
  animation: loader-spin 0.9s linear infinite;
  margin: 0 auto 12px;
}
.c-loader__txt {
  font-size: 14px;
  letter-spacing: 0.08em;
}
.c-loader.is-hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@keyframes logo-sway {
  0% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-3px);
  }
  50% {
    transform: translateX(0);
  }
  75% {
    transform: translateX(3px);
  }
  100% {
    transform: translateX(0);
  }
}
/* スピナーのアニメーション */
@keyframes loader-spin {
  to {
    transform: rotate(360deg);
  }
}
.l-footer {
  display: flex;
  flex-wrap: wrap;
  padding-bottom: 80px;
  justify-content: space-between;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .l-footer {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .l-footer {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
.l-footer__address {
  text-align: center;
  width: 100%;
}
@media (min-width: 768px) {
  .l-footer__address {
    width: auto;
    text-align: left;
  }
}
.l-footer__logo {
  display: block;
}
.l-footer__logoimg {
  margin: 0 auto 40px;
}
@media (min-width: 768px) {
  .l-footer__logoimg {
    margin-bottom: 40px;
  }
}
.l-footer__name {
  font-weight: bold;
  margin-bottom: 16px;
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.75;
}
.l-footer__info {
  margin-bottom: 40px;
}
.l-footer__sns {
  margin-bottom: 60px;
}
.l-footer__icon {
  width: 40px;
  height: auto;
}
.l-footer__menu {
  padding: 0 24px;
  display: flex;
  gap: 0 32px;
  font-size: 14px;
  justify-content: center;
  width: 100%;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .l-footer__menu {
    width: auto;
    padding: 0;
    gap: 0 40px;
    font-size: inherit;
  }
}
.l-footer__page {
  list-style: circle;
}
.l-footer__page a {
  text-decoration: underline;
}
.l-footer__child {
  margin-left: 24px;
}
.l-footer__copy {
  width: 100%;
  text-align: center;
  font-size: clamp(12px, 1.2vw, 14px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .l-footer__copy {
    text-align: left;
  }
}
.l-footer__map {
  text-decoration: underline;
}

/* ==============================
   Object
   ============================== */
/* コンテナmixinを上で読み込んでおくと、header/footer等からも使えて便利 */
/* object配下の集約（component, project, utility など） */
/* ==============================
   Foundation
   ============================== */
/* object/_index.scss
   - object配下の component / project / utility をまとめて読み込む
   - ここは「objectフォルダからの相対パス」で記述する
*/
/* （必要なら）foundationの変数・breakpointsを利用 */
/* component */
/* ← c-container / c-container-small の @mixin を使うなら読み込んでおく */
/* ==============================
   Foundation
   ============================== */
.c-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 20px;
  text-align: center;
  color: #fff;
  border: 2px solid #869F9B;
  background: #869F9B;
  overflow: hidden;
  z-index: 1;
  font-weight: bold;
  max-width: 280px;
  transition: 0.2s cubic-bezier(0.45, 0, 0.55, 1);
  font-family: "Noto Sans JP", "游ゴシック Medium", YuGothic, YuGothicM, "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, sans-serif;
}
.c-btn {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .c-btn {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .c-btn {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .c-btn {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .c-btn {
    padding: 16px 32px;
  }
}
.c-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s ease;
  z-index: -1;
}
.c-btn:hover::before {
  transform: scaleX(1);
}
.c-btn::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 0px;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  vertical-align: middle;
  transition: transform 0.3s ease;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%23fff'><polygon points='163.92 0 92.08 71.82 276.26 256 92.08 440.18 163.92 512 419.92 256 163.92 0'/></svg>");
}
.c-btn:hover::after {
  transform: translateX(4px);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%23869F9B'><polygon points='163.92 0 92.08 71.82 276.26 256 92.08 440.18 163.92 512 419.92 256 163.92 0'/></svg>");
}
.c-btn:hover {
  color: #869F9B;
  text-decoration: none;
}

.c-btn--white {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 32px;
  text-align: center;
  color: #869F9B;
  border: 2px solid #fff;
  background: #fff;
  overflow: hidden;
  z-index: 1;
  font-weight: bold;
  max-width: 240px;
  transition: 0.2s cubic-bezier(0.45, 0, 0.55, 1);
  font-family: "Noto Sans JP", "游ゴシック Medium", YuGothic, YuGothicM, "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, sans-serif;
}
.c-btn--white {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .c-btn--white {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .c-btn--white {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .c-btn--white {
    border-radius: 32px;
  }
}
.c-btn--white::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #6B83B2;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s ease;
  z-index: -1;
}
.c-btn--white:hover::before {
  transform: scaleX(1);
}
.c-btn--white::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 0px;
  background: no-repeat center/contain;
  vertical-align: middle;
  transition: transform 0.3s ease;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%23869F9B'><polygon points='163.92 0 92.08 71.82 276.26 256 92.08 440.18 163.92 512 419.92 256 163.92 0'/></svg>");
}
.c-btn--white:hover::after {
  transform: translateX(4px);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%23fff'><polygon points='163.92 0 92.08 71.82 276.26 256 92.08 440.18 163.92 512 419.92 256 163.92 0'/></svg>");
}
.c-btn--white:hover {
  color: #fff;
  text-decoration: none;
}

/* ==============================
   Foundation
   ============================== */
/* =========================================================
 * Gutenberg Block Editor Style
 * Component: c-entry__content
 * Project: Nakata Komuten Renewal
 * ---------------------------------------------------------
 * WordPressの本文（single/post/page共通）に適用
 * ---------------------------------------------------------
 * 基本思想：
 *  - c-entry__content 以下にすべてスコープ
 *  - サイト全体で統一された記事本文スタイル
 *  - シンプルで読みやすい余白と階層設計
 * ========================================================= */
/* ---------------------------------------
   Design Tokens
--------------------------------------- */
:root {
  --c-text: #222;
  --c-muted: #666;
  --c-border: #e5e5e5;
  --c-accent: #523b31;
  /* 中田工務店ブランドブラウン */
  --ff-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --ff-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
  --fs-body: 16px;
  --lh-body: 1.8;
  --w-reading: 80ch;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
}

/* ---------------------------------------
   Scope
--------------------------------------- */
.c-entry__content {
  color: var(--c-text);
  font-family: var(--ff-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  /*max-width: var(--w-reading);*/
  margin-inline: auto;
}

/* ブロック全体の間隔統一 */
.c-entry__content > * {
  margin-block: var(--space-4);
}

/* メディア要素のリセット */
.c-entry__content img,
.c-entry__content video,
.c-entry__content iframe {
  max-width: 100%;
  height: auto;
}

/* ---------------------------------------
   見出し
--------------------------------------- */
.c-entry__content h1,
.c-entry__content h2,
.c-entry__content h3,
.c-entry__content h4,
.c-entry__content h5,
.c-entry__content h6 {
  line-height: 1.4;
  margin-block: var(--space-5) var(--space-3);
  font-weight: 700;
}

.c-entry__content h1 {
  font-size: clamp(1.75rem, 2vw + 1rem, 2.25rem);
}

.c-entry__content h2 {
  font-size: clamp(1.5rem, 1.6vw + 1rem, 1.875rem);
  border-bottom: 1px solid var(--c-border);
  padding-bottom: 0.4em;
}

.c-entry__content h3 {
  font-size: clamp(1.25rem, 1vw + 0.9rem, 1.5rem);
}

.c-entry__content h4 {
  font-size: 1.125rem;
}

.c-entry__content h5 {
  font-size: 1rem;
}

.c-entry__content h6 {
  font-size: 0.95rem;
  color: var(--c-muted);
}

/* ---------------------------------------
   段落・強調
--------------------------------------- */
.c-entry__content p {
  margin-block: var(--space-3);
}

.c-entry__content strong {
  font-weight: 700;
}

.c-entry__content em {
  font-style: italic;
}

/* ---------------------------------------
   リスト
--------------------------------------- */
.c-entry__content ul,
.c-entry__content ol {
  padding-left: 1.2em;
  margin-block: var(--space-3);
}

.c-entry__content li {
  margin-block: 0.4em;
}

.c-entry__content li > ul,
.c-entry__content li > ol {
  margin-block: 0.4em;
}

/* ---------------------------------------
   引用
--------------------------------------- */
.c-entry__content blockquote {
  margin: var(--space-4) 0;
  padding: var(--space-3) var(--space-4);
  border-left: 4px solid var(--c-accent);
  background: #faf9f7;
  color: #111;
}

.c-entry__content blockquote p:last-child {
  margin-bottom: 0;
}

/* Pullquote */
.c-entry__content .wp-block-pullquote {
  border-top: 2px solid var(--c-border);
  border-bottom: 2px solid var(--c-border);
  padding: var(--space-4) 0;
  text-align: center;
}

/* ---------------------------------------
   画像・図版
--------------------------------------- */
.c-entry__content figure {
  margin: var(--space-4) 0;
}

.c-entry__content figcaption {
  color: var(--c-muted);
  font-size: 0.9rem;
  text-align: center;
  margin-top: 0.5rem;
}

/* ギャラリー */
.c-entry__content .wp-block-gallery {
  gap: var(--space-2);
}

.c-entry__content .wp-block-image img {
  display: block;
}

/* ---------------------------------------
   ボタン
--------------------------------------- */
.c-entry__content .wp-block-button .wp-block-button__link {
  display: inline-block;
  padding: 0.75em 1.25em;
  border-radius: 0.5rem;
  background: var(--c-accent);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  transition: background-color 0.3s;
}

.c-entry__content .wp-block-button .wp-block-button__link:hover {
  background-color: #6a4c40;
}

.c-entry__content .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--c-accent);
  border: 2px solid var(--c-accent);
}

/* ---------------------------------------
   テーブル
--------------------------------------- */
.c-entry__content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.c-entry__content th,
.c-entry__content td {
  border: 1px solid var(--c-border);
  padding: 0.75em 0.9em;
  vertical-align: top;
}

.c-entry__content th {
  background: #f7f7f7;
  text-align: left;
  white-space: nowrap;
}

/* ---------------------------------------
   区切り線・コード
--------------------------------------- */
.c-entry__content hr {
  border: 0;
  border-top: 1px solid var(--c-border);
  margin-block: var(--space-5);
}

.c-entry__content code {
  font-family: var(--ff-mono);
  font-size: 0.9em;
  background: #f4f6f8;
  padding: 0.15em 0.35em;
  border-radius: 0.25rem;
}

.c-entry__content pre {
  font-family: var(--ff-mono);
  font-size: 0.9rem;
  line-height: 1.6;
  background: #0b1020;
  color: #e8edf7;
  padding: var(--space-4);
  border-radius: 0.5rem;
  overflow: auto;
}

/* ---------------------------------------
   カラム
--------------------------------------- */
.c-entry__content .wp-block-columns {
  gap: var(--space-3);
  margin-block: var(--space-4);
}

@media (max-width: 768px) {
  .c-entry__content .wp-block-columns {
    flex-wrap: wrap !important;
  }
  .c-entry__content .wp-block-column {
    flex-basis: 100% !important;
  }
}
/* ---------------------------------------
   アラインメント
--------------------------------------- */
.c-entry__content .alignwide {
  max-width: min(1100px, 92vw);
  margin-inline: auto;
}

.c-entry__content .alignfull {
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
}

.c-entry__content .alignleft {
  float: left;
  margin: 0.25rem 1rem 1rem 0;
  max-width: 45%;
}

.c-entry__content .alignright {
  float: right;
  margin: 0.25rem 0 1rem 1rem;
  max-width: 45%;
}

@media (max-width: 768px) {
  .c-entry__content .alignleft,
  .c-entry__content .alignright {
    float: none;
    margin: var(--space-3) 0;
    max-width: 100%;
  }
}
/* ---------------------------------------
   リンク・埋め込み
--------------------------------------- */
.c-entry__content a {
  color: var(--c-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.3s;
}

.c-entry__content a:hover {
  opacity: 0.8;
}

.c-entry__content .wp-block-embed {
  margin-block: var(--space-4);
}

.c-entry__content .wp-block-embed iframe {
  width: 100%;
  aspect-ratio: 16/9;
}

/* ---------------------------------------
   チェックリスト風
--------------------------------------- */
.c-entry__content ul.is-style-checklist li {
  list-style: "✔︎  ";
}

/* ---------------------------------------
   余白調整
--------------------------------------- */
.c-entry__content > *:first-child {
  margin-top: 0;
}

.c-entry__content > *:last-child {
  margin-bottom: 0;
}

/* project */
/* ==============================
   Foundation
   ============================== */
.p-mv {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 600px;
  background-image: url(../images/index/bg_mv.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-top: -72px;
}
@media (min-width: 768px) {
  .p-mv {
    height: 1056px;
    margin-bottom: 80px;
  }
}
.p-mv__txt {
  position: absolute;
  width: 200px;
  top: 100px;
  left: 30px;
  /* 既存の位置指定はそのまま */
  opacity: 0;
  /* 初期は非表示 */
  animation: MVfadeIn 0.9s ease-out 0.4s both;
  /*            ^^^^           ^^^^
   表示時間 0.9s     遅延 0.4s   / bothで最終状態(1)を保持 */
}
@media (min-width: 768px) {
  .p-mv__txt {
    width: 340px;
    top: 140px;
    left: 10%;
  }
}
@media (min-width: 992px) {
  .p-mv__txt {
    width: 420px;
    top: 165px;
    left: 10%;
  }
}
.p-mv__layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.p-mv__person {
  /* 動きの設定（個体差をつけたい場合はstyleで上書き） */
  --ampx: 4px;
  --ampy: 10px;
  --rot: 1deg;
  --dur: 2.2s;
  --delay: 0s;
  transform-origin: 50% 100%;
  animation: personFloat var(--dur) ease-in-out infinite;
  animation-delay: var(--delay);
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.08));
  /* 既存のプロパティはそのまま残し、animationだけ差し替え */
  opacity: 0;
  /* フェードの遅延 = 個体差の --delay にちょい足し（段階的に出現） */
  --fade-delay: calc(var(--delay, 0s) + .2s);
  animation: MVfadeIn 0.8s ease-out var(--fade-delay) both, personFloat var(--dur) ease-in-out var(--delay) infinite;
  /*   ↑ 先にフェード 0.8s / 少し遅らせる
       その後は既存の揺れ（無限） */
}
.p-mv__item {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--w, 4rem);
  transform: translate(calc(-50% + var(--x, 0px)), calc(-50% + var(--y, 0px)));
  will-change: transform;
  /* =============== */
  /*  スマホ（初期） */
  /* =============== */
  /* 00 */
  /* 01 */
  /* 02 */
  /* 03 */
  /* 04 */
  /* 05 */
  /* 06 */
  /* 07 */
  /* 08 */
  /* 09 */
  /* 10 */
  /* 11 */
  /* 12 */
  /* 13 */
  /* 14 */
  /* 15 */
  /* 16 */
  /* 17 */
  /* 18 */
  /* 19 */
  /* 20 */
  /* 21 */
}
.p-mv__item--00 {
  --x: 0px;
  --y: 40px;
  --w: 15px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: .2deg;
  --dur: 2.1s;
  --delay: 0s;
}
@media (min-width: 768px) {
  .p-mv__item--00 {
    --x: -10px;
    --y: 80px;
    --w: 28px;
    --rot: .2deg;
    --dur: 2.1s;
  }
}
.p-mv__item--01 {
  --x: -20px;
  --y: 110px;
  --w: 32px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: .2deg;
  --dur: 2.1s;
  --delay: 0.5s;
}
@media (min-width: 768px) {
  .p-mv__item--01 {
    --x: -20px;
    --y: 180px;
    --w: 52px;
    --rot: .2deg;
    --dur: 2.1s;
  }
}
.p-mv__item--02 {
  --x: -30px;
  --y: -10px;
  --w: 20px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.4s;
  --delay: 1s;
}
@media (min-width: 768px) {
  .p-mv__item--02 {
    --x: -50px;
    --y: -10px;
    --w: 30px;
    --rot: 0deg;
    --dur: 2.4s;
  }
}
.p-mv__item--03 {
  --x: 140px;
  --y: 120px;
  --w: 40px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 1.4deg;
  --dur: 1.9s;
  --delay: 1.5s;
}
@media (min-width: 768px) {
  .p-mv__item--03 {
    --x: 450px;
    --y: 220px;
    --w: 70px;
    --rot: 1.4deg;
    --dur: 1.9s;
  }
}
.p-mv__item--04 {
  --x: 30px;
  --y: 80px;
  --w: 50px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 1.1deg;
  --dur: 2.2s;
  --delay: 2s;
}
@media (min-width: 768px) {
  .p-mv__item--04 {
    --x: -200px;
    --y: 100px;
    --w: 80px;
    --rot: 1.1deg;
    --dur: 2.2s;
  }
}
.p-mv__item--05 {
  --x: 70px;
  --y: 110px;
  --w: 40px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 1.6deg;
  --dur: 1.8s;
  --delay: 2.5s;
}
@media (min-width: 768px) {
  .p-mv__item--05 {
    --x: 160px;
    --y: 200px;
    --w: 77px;
    --rot: 1.6deg;
    --dur: 1.8s;
  }
}
.p-mv__item--06 {
  --x: -60px;
  --y: 110px;
  --w: 20px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 3s;
}
@media (min-width: 768px) {
  .p-mv__item--06 {
    --x: -126px;
    --y: 200px;
    --w: 30px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--07 {
  --x: -110px;
  --y: 100px;
  --w: 10px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 3.5s;
}
@media (min-width: 768px) {
  .p-mv__item--07 {
    --x: -250px;
    --y: 235px;
    --w: 22px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--08 {
  --x: -200px;
  --y: 80px;
  --w: 25px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 4s;
}
@media (min-width: 768px) {
  .p-mv__item--08 {
    --x: -420px;
    --y: 160px;
    --w: 60px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--09 {
  --x: 120px;
  --y: 30px;
  --w: 40px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 4.5s;
}
@media (min-width: 768px) {
  .p-mv__item--09 {
    --x: 320px;
    --y: 70px;
    --w: 90px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--10 {
  --x: -120px;
  --y: 60px;
  --w: 30px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 5s;
}
@media (min-width: 768px) {
  .p-mv__item--10 {
    --x: -310px;
    --y: 170px;
    --w: 60px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--11 {
  --x: 60px;
  --y: 10px;
  --w: 50px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 5.5s;
}
@media (min-width: 768px) {
  .p-mv__item--11 {
    --x: 140px;
    --y: 50px;
    --w: 90px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--12 {
  --x: -90px;
  --y: -0px;
  --w: 50px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 6s;
}
@media (min-width: 768px) {
  .p-mv__item--12 {
    --x: -220px;
    --y: 0px;
    --w: 90px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--13 {
  --x: 190px;
  --y: 80px;
  --w: 20px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 6.5s;
}
@media (min-width: 768px) {
  .p-mv__item--13 {
    --x: 300px;
    --y: 170px;
    --w: 40px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--14 {
  --x: 20px;
  --y: 40px;
  --w: 10px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 7s;
}
@media (min-width: 768px) {
  .p-mv__item--14 {
    --x: 30px;
    --y: 70px;
    --w: 22px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--15 {
  --x: 90px;
  --y: -30px;
  --w: 25px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 7.5s;
}
@media (min-width: 768px) {
  .p-mv__item--15 {
    --x: 160px;
    --y: -50px;
    --w: 40px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--16 {
  --x: -220px;
  --y: 50px;
  --w: 25px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 8s;
}
@media (min-width: 768px) {
  .p-mv__item--16 {
    --x: -540px;
    --y: 100px;
    --w: 42px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--17 {
  --x: -180px;
  --y: 120px;
  --w: 55px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 8.5s;
}
@media (min-width: 768px) {
  .p-mv__item--17 {
    --x: -520px;
    --y: 230px;
    --w: 100px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--18 {
  --x: -160px;
  --y: 20px;
  --w: 50px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 9s;
}
@media (min-width: 768px) {
  .p-mv__item--18 {
    --x: -380px;
    --y: 30px;
    --w: 100px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--19 {
  --x: 170px;
  --y: 40px;
  --w: 25px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 9.5s;
}
@media (min-width: 768px) {
  .p-mv__item--19 {
    --x: 430px;
    --y: 70px;
    --w: 50px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--20 {
  --x: 130px;
  --y: -10px;
  --w: 25px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 10s;
}
@media (min-width: 768px) {
  .p-mv__item--20 {
    --x: 270px;
    --y: -20px;
    --w: 50px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}
.p-mv__item--21 {
  --x: 110px;
  --y: 70px;
  --w: 25px;
  --ampx: -1px;
  --ampy: -1px;
  --rot: 0deg;
  --dur: 2.5s;
  --delay: 10.5s;
}
@media (min-width: 768px) {
  .p-mv__item--21 {
    --x: 80px;
    --y: 140px;
    --w: 50px;
    --rot: 0deg;
    --dur: 2.5s;
  }
}

/* 上下・左右に少し動くアニメーション */
@keyframes personFloat {
  0% {
    transform: translate(calc(-50% + var(--x, 0px)), calc(-50% + var(--y, 0px))) rotate(0);
  }
  50% {
    transform: translate(calc(-50% + var(--x, 0px) + var(--ampx)), calc(-50% + var(--y, 0px) - var(--ampy))) rotate(var(--rot));
  }
  100% {
    transform: translate(calc(-50% + var(--x, 0px)), calc(-50% + var(--y, 0px))) rotate(0);
  }
}
/* 1) ふわっと表示のキーフレーム */
@keyframes MVfadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-mv__person {
    animation: none !important;
  }
}
.p-maincopy {
  text-align: center;
  margin-bottom: 100px;
  overflow: visible;
}
@media (min-width: 768px) {
  .p-maincopy {
    margin-bottom: 160px;
  }
}
.p-maincopy__title {
  position: relative;
  margin: 0 auto 56px;
  width: 300px;
  padding-top: 120px;
}
@media (min-width: 768px) {
  .p-maincopy__title {
    margin: 0 auto 80px;
    width: 520px;
  }
}
.p-maincopy__title::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 67px;
  background: url("../images/common/icon_house01.png") no-repeat center/contain;
  z-index: -1;
}
.p-maincopy__txt {
  line-height: 2.4em;
  margin-bottom: 80px;
  padding: 0 20px;
  font-size: clamp(18px, 1.4vw, 24px);
}
@media (min-width: 768px) {
  .p-maincopy__txt {
    line-height: 2.6em;
    font-size: clamp(20px, 1.4vw, 22px);
  }
}
.p-maincopy__btn {
  margin: 0 auto;
}

.p-indexnews {
  background-color: #FFF8EF;
  background-image: url("../images/index/bg_casetop.png"), url("../images/index/bg_casebottom.png");
  background-repeat: no-repeat, no-repeat;
  background-position: top center, bottom center;
  background-size: auto, auto;
  padding: 60px 0 100px;
}
.p-indexnews__wrap {
  padding: 80px 0;
  text-align: center;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-indexnews__wrap {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-indexnews__wrap {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-indexnews__wrap {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-indexnews__wrap {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
  }
}
.p-indexnews__title {
  padding-top: 64px;
  position: relative;
  width: 100%;
  margin-bottom: 40px;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-indexnews__title {
    padding-top: 88px;
  }
}
.p-indexnews__title::before {
  content: "";
  position: absolute;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 42px;
  background: url("../images/common/icon_house01.png") no-repeat center/contain;
}
@media (min-width: 768px) {
  .p-indexnews__title::before {
    width: 48px;
    height: 67px;
  }
}
.p-indexnews__box {
  text-align: left;
}
@media (min-width: 768px) {
  .p-indexnews__box {
    width: calc((100% - 80px) / 3);
  }
}
.p-indexnews__link {
  display: flex;
  gap: 16px;
}
@media (min-width: 768px) {
  .p-indexnews__link {
    display: block;
  }
}
.p-indexnews__link:hover {
  text-decoration: none;
}
.p-indexnews__img {
  width: 150px;
  margin-bottom: 16px;
  overflow: hidden;
}
.p-indexnews__img {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-indexnews__img {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-indexnews__img {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-indexnews__img {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .p-indexnews__img {
    width: 100%;
  }
}
.p-indexnews__pic {
  transition: all 0.3s ease-in-out;
}
.p-indexnews__pic:hover {
  transform: scale(1.1);
}
.p-indexnews__inner {
  width: calc(100% - 166px);
}
@media (min-width: 768px) {
  .p-indexnews__inner {
    width: 100%;
  }
}
.p-indexnews__newstitle {
  margin-bottom: 16px;
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .p-indexnews__newstitle {
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: 1.8;
  }
}
.p-indexnews__cat {
  display: inline-block;
  margin-right: 8px;
  background-color: #fff;
  padding: 0 8px;
  font-size: clamp(12px, 1.2vw, 14px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-indexnews__cat {
    margin-right: 16px;
  }
}
.p-indexnews__date {
  font-size: clamp(12px, 1.2vw, 14px);
  line-height: 1.6;
}
.p-indexnews__btnwrap {
  margin: 40px auto 0;
}
.p-indexhouse {
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-indexhouse {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-indexhouse {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-indexhouse {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-indexhouse {
    display: flex;
    align-items: center;
    margin-bottom: 160px;
  }
}
.p-indexhouse__title {
  padding-top: 88px;
  position: relative;
  margin-bottom: 40px;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-indexhouse__title {
    width: 30%;
  }
}
@media (min-width: 992px) {
  .p-indexhouse__title {
    width: 35%;
  }
}
.p-indexhouse__title::before {
  content: "";
  position: absolute;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 67px;
  background: url("../images/common/icon_house01.png") no-repeat center/contain;
}
@media (min-width: 768px) {
  .p-indexhouse__wrap {
    width: 70%;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
  }
}
@media (min-width: 992px) {
  .p-indexhouse__wrap {
    width: 65%;
  }
}
.p-indexhouse__link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #F2F2F2;
  height: 120px;
  overflow: hidden;
  margin-top: 16px;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.35;
}
@media (min-width: 768px) {
  .p-indexhouse__link {
    width: calc((100% - 16px) / 2);
    margin-top: 0;
    height: 200px;
  }
}
.p-indexhouse__link::after {
  content: "";
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 18px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 18" fill="%23869F9B"><polygon points="0,0 10,9 0,18"/></svg>') no-repeat center/contain;
  transition: transform 0.3s ease, background-image 0.3s ease;
}
.p-indexhouse__link:hover {
  background-color: #FFFAE9;
}
.p-indexhouse__link:hover::after {
  transform: translateY(-50%) translateX(4px);
}
.p-indexhouse__link--house {
  width: 100%;
  justify-content: space-between;
}
.p-indexhouse__img {
  width: 50%;
}
.p-indexhouse__concept {
  width: 100%;
  text-align: center;
}
@media (min-width: 768px) {
  .p-indexhouse__concept {
    width: 50%;
  }
}
.p-indexhouse__logo {
  max-width: 180px;
  height: auto;
}
@media (min-width: 768px) {
  .p-indexhouse__logo {
    max-width: 160px;
  }
}
@media (min-width: 1200px) {
  .p-indexhouse__logo {
    max-width: 200px;
  }
}

.p-indexcase {
  padding: 120px 0 80px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  background-color: #6B83B2;
  background-image: url("../images/common/bg_sectiontop02.png");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: auto;
}
.p-indexcase__title {
  padding-top: 88px;
  position: relative;
  width: 100%;
  margin-bottom: 40px;
  color: #fff;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-indexcase__title::before {
  content: "";
  position: absolute;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 67px;
  background: url("../images/common/icon_house01.png") no-repeat center/contain;
}

.p-indexrecruit {
  background-color: #DEE9EB;
  padding: 32px 0 120px;
}
.p-indexrecruit__wrap {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-indexrecruit__wrap {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-indexrecruit__wrap {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-indexrecruit__wrap {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-indexrecruit__wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}
.p-indexrecruit__inner {
  text-align: center;
}
.p-indexrecruit__title {
  padding-top: 88px;
  position: relative;
  width: 100%;
  margin-bottom: 54px;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-indexrecruit__title::before {
  content: "";
  position: absolute;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 67px;
  background: url("../images/common/icon_house01.png") no-repeat center/contain;
}
.p-indexrecruit__copy {
  max-width: 480px;
  margin-bottom: 64px;
}
.p-indexrecruit__btn {
  margin: 0 auto 40px;
}
@media (min-width: 768px) {
  .p-indexrecruit__btn {
    margin: 0 auto;
  }
}
.p-indexrecruit__pic {
  padding: 0 16px;
}
@media (min-width: 768px) {
  .p-indexrecruit__pic {
    width: 500px;
  }
}

/* ==============================
   Foundation
   ============================== */
.p-conceptanime {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100px;
  background-image: url(../images/concept/bg_town.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  margin-bottom: 80px;
  overflow: visible;
}
@media (min-width: 768px) {
  .p-conceptanime {
    height: 200px;
    margin-bottom: 160px;
  }
}
.p-conceptanime__layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.p-conceptanime__person {
  /* 動きの設定（個体差をつけたい場合はstyleで上書き） */
  --ampx: 4px;
  --ampy: 10px;
  --rot: 1deg;
  --dur: 2.2s;
  --delay: 0s;
  transform-origin: 50% 100%;
  animation: conceptpersonFloat var(--dur) ease-in-out infinite;
  animation-delay: var(--delay);
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.08));
}
.p-conceptanime__item {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--w, 4rem);
  transform: translate(calc(-50% + var(--x, 0px)), calc(-50% + var(--y, 0px)));
  will-change: transform;
  /* 01 */
}
.p-conceptanime__item--01 {
  --x: 10px;
  --y: -10px;
  --w: 52px;
  --ampx: 0px;
  --ampy: -2px;
  --rot: .2deg;
  --dur: 2.1s;
  --delay: 0.21s;
}
@media (min-width: 768px) {
  .p-conceptanime__item--01 {
    --x: 50px;
    --y: -40px;
    --w: 72px;
    --ampx: 0px;
    --ampy: -2px;
    --rot: .2deg;
    --dur: 2.1s;
    --delay: 0.21s;
  }
}
.p-conceptanime__item--02 {
  --x: -130px;
  --y: -20px;
  --w: 40px;
  --ampx: -1px;
  --ampy: 0px;
  --rot: .2deg;
  --dur: 2.1s;
  --delay: .2s;
}
@media (min-width: 768px) {
  .p-conceptanime__item--02 {
    --x: -300px;
    --y: 0px;
    --w: 62px;
    --ampx: -1px;
    --ampy: 0px;
    --rot: .2deg;
    --dur: 2.1s;
    --delay: .2s;
  }
}
.p-conceptanime__item--03 {
  --x: 100px;
  --y: -60px;
  --w: 52px;
  --ampx: 1px;
  --ampy: 1px;
  --rot: .2deg;
  --dur: 2.1s;
  --delay: .1s;
}
@media (min-width: 768px) {
  .p-conceptanime__item--03 {
    --x: 250px;
    --y: -60px;
    --w: 72px;
    --ampx: 1px;
    --ampy: 1px;
    --rot: .2deg;
    --dur: 2.1s;
    --delay: .1s;
  }
}
.p-conceptanime__item--04 {
  --x: -55px;
  --y: -55px;
  --w: 28px;
  --ampx: 1px;
  --ampy: 0px;
  --rot: .2deg;
  --dur: 1.4s;
  --delay: 1.1s;
}
@media (min-width: 768px) {
  .p-conceptanime__item--04 {
    --x: -100px;
    --y: -105px;
    --w: 38px;
    --ampx: 1px;
    --ampy: 0px;
    --rot: .2deg;
    --dur: 1.4s;
    --delay: 1.1s;
  }
}
.p-conceptanime__item--05 {
  --x: -85px;
  --y: -65px;
  --w: 28px;
  --ampx: 1px;
  --ampy: 1px;
  --rot: .2deg;
  --dur: 2.1s;
  --delay: .1s;
}
@media (min-width: 768px) {
  .p-conceptanime__item--05 {
    --x: -140px;
    --y: -115px;
    --w: 30px;
    --ampx: 1px;
    --ampy: 1px;
    --rot: .2deg;
    --dur: 2.1s;
    --delay: .1s;
  }
}

/* 上下・左右に少し動くアニメーション */
@keyframes conceptpersonFloat {
  0% {
    transform: translate(calc(-50% + var(--x, 0px)), calc(-50% + var(--y, 0px))) rotate(0);
  }
  50% {
    transform: translate(calc(-50% + var(--x, 0px) + var(--ampx)), calc(-50% + var(--y, 0px) - var(--ampy))) rotate(var(--rot));
  }
  100% {
    transform: translate(calc(-50% + var(--x, 0px)), calc(-50% + var(--y, 0px))) rotate(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-mv__person {
    animation: none !important;
  }
}
.p-conceptinfo {
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-conceptinfo {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-conceptinfo {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-conceptinfo {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-conceptinfo {
    margin-bottom: 160px;
  }
}
.p-conceptinfo__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-conceptinfo__wrap {
  padding: 32px;
  margin-bottom: 40px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
@media (min-width: 768px) {
  .p-conceptinfo__wrap {
    padding: 40px;
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: center;
  }
}
@media (min-width: 992px) {
  .p-conceptinfo__wrap {
    padding: 40px 80px;
    height: 420px;
    margin-bottom: 64px;
    background-size: contain;
  }
}
.p-conceptinfo__wrap--reverse {
  flex-direction: row-reverse;
}
.p-conceptinfo > .p-conceptinfo__wrap:nth-of-type(1) {
  background-image: url(../images/concept/bg_concept01.png);
}
.p-conceptinfo > .p-conceptinfo__wrap:nth-of-type(2) {
  background-image: url(../images/concept/bg_concept02.png);
}
.p-conceptinfo > .p-conceptinfo__wrap:nth-of-type(3) {
  background-image: url(../images/concept/bg_concept03.png);
}
.p-conceptinfo__inner {
  width: 100%;
  text-align: center;
}
@media (min-width: 768px) {
  .p-conceptinfo__inner {
    width: calc(80% - 200px);
  }
}
@media (min-width: 992px) {
  .p-conceptinfo__inner {
    width: 440px;
  }
}
.p-conceptinfo__subtitle {
  margin-bottom: 24px;
  text-align: left;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-conceptinfo__txt {
  text-align: left;
}
.p-conceptinfo__img {
  text-align: center;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .p-conceptinfo__img {
    width: 200px;
    margin-bottom: 0;
  }
}
@media (min-width: 992px) {
  .p-conceptinfo__img {
    width: 30%;
  }
}
.p-conceptinfo__pic {
  width: 200px;
  height: auto;
}
.p-conceptinfo__btn {
  margin-top: 24px;
}
/* ==============================
   Foundation
   ============================== */
.p-house {
  text-align: center;
  margin-bottom: 80px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-house {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-house {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (min-width: 768px) {
  .p-house {
    margin-bottom: 80px;
  }
}
.p-house__img {
  max-width: 300px;
  margin: 0 auto 56px;
}
@media (min-width: 768px) {
  .p-house__img {
    max-width: 500px;
    margin: 0 auto 64px;
  }
}
.p-house__copy {
  max-width: 320px;
  margin: 0 auto 32px auto;
}
@media (min-width: 768px) {
  .p-house__copy {
    max-width: 540px;
    margin: 0 auto 64px auto;
  }
}
.p-house__txt {
  line-height: 2.4em;
  margin-bottom: 80px;
  font-size: clamp(18px, 1.4vw, 24px);
}
@media (min-width: 768px) {
  .p-house__txt {
    line-height: 2.6em;
    font-size: clamp(20px, 1.4vw, 22px);
  }
}
.p-housecase {
  padding: 120px 0 80px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .p-housecase {
    margin-bottom: 120px;
  }
}
.p-housecase__title {
  padding-top: 88px;
  position: relative;
  width: 100%;
  margin-bottom: 40px;
  text-align: center;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-housecase__title::before {
  content: "";
  position: absolute;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 67px;
  background: url("../images/common/icon_house01.png") no-repeat center/contain;
}
.p-housecase .c-case__casetitle {
  color: #333;
}

.p-housepic {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
}
.p-housepic__pic {
  width: 50%;
}
@media (min-width: 992px) {
  .p-housepic__pic {
    width: 25%;
  }
}

.p-houseinfo {
  margin-bottom: 20px;
  background-color: #FFF8EF;
  background-image: url("../images/common/bg_sectionbottom.png");
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: auto;
  padding: 80px 0 120px;
}
@media (min-width: 768px) {
  .p-houseinfo {
    padding: 160px 0 220px;
    margin-bottom: 120px;
  }
}
.p-houseinfo__title {
  text-align: center;
  margin-bottom: 64px;
  width: 100%;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-houseinfo__wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-houseinfo__wrap {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-houseinfo__wrap {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-houseinfo__wrap {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-houseinfo__box {
  background-color: #fff;
  padding: 32px 20px;
}
@media (min-width: 768px) {
  .p-houseinfo__box {
    width: calc((100% - 24px) / 2);
    padding: 40px;
  }
}
.p-houseinfo__subtitle {
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.35;
}
.p-houseinfo__img {
  margin-bottom: 24px;
  text-align: center;
}
.p-houseinfo__pic {
  width: 200px;
  height: auto;
}

.p-flow {
  margin-bottom: 160px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-flow {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-flow {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-flow {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-flow__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-flow__wrap {
  position: relative;
  border: solid 1px #ccc;
  margin-bottom: 40px;
}
.p-flow__wrap:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -20px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #6B83B2;
}
.p-flow__subtitle {
  color: #6B83B2;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-flow__num {
  display: inline-block;
  width: 50px;
  height: 50px;
  background-color: #6B83B2;
  line-height: 50px;
  text-align: center;
  color: #fff;
  margin-right: 32px;
  vertical-align: bottom;
}
.p-flow__contents {
  padding: 24px 40px 40px 40px;
}

/* ==============================
   Foundation
   ============================== */
.p-contacttxt {
  margin-bottom: 40px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-contacttxt {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-contacttxt {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}

.p-requestinfo {
  border: solid 8px #F0DCDC;
  padding: 40px;
  text-align: center;
  margin-bottom: 64px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-requestinfo {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-requestinfo {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
.p-requestinfo__img {
  margin-bottom: 16px;
}
.p-requestinfo__title {
  margin-bottom: 16px;
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.75;
}
.p-policy {
  margin-bottom: 120px;
  margin-top: 80px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-policy {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-policy {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
.p-policy__txt {
  margin-bottom: 24px;
}
.p-policy__item {
  font-weight: bold;
  margin-bottom: 8px;
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.75;
}
.p-policy__contents {
  margin-bottom: 32px;
}
.p-policy__list {
  margin-top: 24px;
}
.p-policy__listitem {
  list-style: circle;
  margin-left: 24px;
}

div.wpcf7 .wpcf7-spinner {
  display: block;
}

/* ==============================
   Foundation
   ============================== */
.p-caselist {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-caselist {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-caselist {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-caselist {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-caselist {
    gap: 40px;
  }
}
.p-caselist__wrap {
  width: calc((100% - 24px) / 2);
}
@media (min-width: 768px) {
  .p-caselist__wrap {
    width: calc((100% - 80px) / 3);
    margin-bottom: 24px;
  }
}
.p-caselist__img {
  margin-bottom: 16px;
  overflow: hidden;
}
.p-caselist__img {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-caselist__img {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-caselist__img {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-caselist__img {
    border-radius: 32px;
  }
}
.p-caselist__link {
  display: block;
  transition: all 0.3s ease-in-out;
}
.p-caselist__link:hover {
  transform: scale(1.1);
}
.p-caselist__pic {
  width: 100%;
  vertical-align: middle;
}
.p-case {
  margin-bottom: 160px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-case {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-case {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-case {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-case__photo {
  aspect-ratio: 4/3;
  /* 好きな比率に変更可（例：4/3 など） */
  width: 100%;
  max-width: 960px;
  max-height: 640px;
  margin-bottom: 24px;
}
.p-case__photo .swiper-slide > a {
  display: inline-flex;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  line-height: 0;
}
.p-case__photo .swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}
.p-case__photo.js-caseMain, .p-case__photo.js-caseMain .swiper-wrapper, .p-case__photo.js-caseMain .swiper-slide {
  height: 100%;
}
.p-case__photo.js-caseMain .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-case__photoimg {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
  display: block;
}
.p-case__thumbs {
  /* 1列で流す：Swiper が1行レールにしてくれるので wrap しない */
  overflow: hidden;
  /* スクロールバーは Swiper のを使う */
  padding-bottom: 16px;
  margin-bottom: 80px;
}
.p-case__thumbs .swiper-slide {
  /* slidesPerView: 'auto' 用：サムネ1枚の見た目幅 */
  width: 80px;
  /* お好みで 80~120px 程度 */
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s ease;
}
@media (min-width: 768px) {
  .p-case__thumbs .swiper-slide {
    width: 120px;
  }
}
.p-case__thumbs .swiper-slide-thumb-active {
  opacity: 1;
  outline: 2px solid rgba(0, 0, 0, 0);
}
.p-case__thumbimg {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 4px;
}
.p-case__title {
  text-align: center;
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-case .swiper-button-prev,
.p-case .swiper-button-next {
  width: 40px;
  height: 40px;
  background: #6B83B2;
  border-radius: 50%;
  color: #fff;
}
.p-case .swiper-button-prev::after,
.p-case .swiper-button-next::after {
  font-size: 16px;
}
.p-case .js-caseMain {
  position: relative;
  overflow: visible;
}
.p-case .swiper-button-prev,
.p-case .swiper-button-next {
  top: 50%;
}
.p-case .swiper-button-prev {
  left: 0px;
}
@media (min-width: 768px) {
  .p-case .swiper-button-prev {
    left: -30px;
  }
}
.p-case .swiper-button-next {
  right: 0px;
}
@media (min-width: 768px) {
  .p-case .swiper-button-next {
    right: -30px;
  }
}

/* 狭い画面では比率だけだと低すぎる場合があるので下限を用意しても◎ */
@media (max-width: 480px) {
  .p-case__photo {
    min-height: 280px;
  }
}
/* ==============================
   Foundation
   ============================== */
.p-estatecat {
  display: flex;
  gap: 8px;
  margin-bottom: 32px;
  border-bottom: 6px solid #6B83B2;
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .p-estatecat {
    gap: 16px;
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: 1.8;
  }
}
.p-estatecat__list {
  width: 25%;
}
.p-estatecat__link {
  display: flex;
  text-align: center;
  height: 60px;
  justify-content: center;
  align-items: center;
  background-color: #FFF8EF;
  border-radius: 16px 16px 0 0;
}
.p-estatecat__link:hover {
  background-color: #6B83B2;
  color: #fff;
}
.p-estatecat__link--active {
  background-color: #6B83B2;
  color: #fff;
}

.p-estatelist {
  margin-bottom: 160px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-estatelist {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-estatelist {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-estatelist {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-estatelist__wrap {
  padding: 24px;
  background-color: #f5f5f5;
  margin-bottom: 8px;
}
.p-estatelist__wrap {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-estatelist__wrap {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-estatelist__wrap {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-estatelist__wrap {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .p-estatelist__wrap {
    padding: 32px;
    display: flex;
  }
}
.p-estatelist__img {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .p-estatelist__img {
    width: 50%;
    margin-bottom: 0;
  }
}
@media (min-width: 992px) {
  .p-estatelist__img {
    max-width: 400px;
  }
}
.p-estatelist__pic {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-estatelist__pic {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-estatelist__pic {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-estatelist__pic {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .p-estatelist__inner {
    padding: 16px 0 16px 32px;
    width: 50%;
  }
}
@media (min-width: 992px) {
  .p-estatelist__inner {
    width: calc(100% - 0px - 400px);
  }
}
.p-estatelist__title {
  margin-bottom: 16px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.35;
}
.p-estatelist__point {
  margin-bottom: 24px;
}
.p-estatelist__info {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.p-estatelist__item {
  width: 30%;
  margin-bottom: 8px;
}
@media (min-width: 1200px) {
  .p-estatelist__item {
    width: 15%;
  }
}
.p-estatelist__address {
  width: 70%;
  margin-bottom: 8px;
}
@media (min-width: 1200px) {
  .p-estatelist__address {
    width: 85%;
  }
}
.p-estatelist__contents {
  width: 70%;
}
@media (min-width: 1200px) {
  .p-estatelist__contents {
    width: 30%;
  }
}
.p-estatelist__link {
  text-align: center;
}
@media (min-width: 768px) {
  .p-estatelist__link {
    text-align: left;
  }
}
.p-estatelist__btn {
  padding: 6px 32px;
}

.p-estate {
  margin-bottom: 100px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
  /* 右端カラム（4列目）の dd に右ボーダー */
  /* ddは2,4,6...番目に現れるので、偶数番ddに右線 */
  /* ── ここが肝 ──────────────────────────────
     子要素総数が 4n+2（= ペア数が奇数）のときだけ、
     最後の dt/dd を「全幅（1行1“項目”）」にする。
     ※最後の dd にも右線を付与
  ------------------------------------------------*/
}
@media (min-width: 768px) {
  .p-estate {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-estate {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-estate {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-estate__photo {
  aspect-ratio: 3/2;
  /* 好きな比率に変更可（例：4/3 など） */
  width: 100%;
  max-width: 960px;
  margin-bottom: 24px;
}
.p-estate__photo .swiper-slide > a {
  display: inline-flex;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  line-height: 0;
}
.p-estate__photo .swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}
.p-estate__photo.js-caseMain, .p-estate__photo.js-caseMain .swiper-wrapper, .p-estate__photo.js-caseMain .swiper-slide {
  height: 100%;
}
.p-estate__photo.js-caseMain .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-estate__photoimg {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
  display: block;
}
.p-estate__thumbs {
  /* 1列で流す：Swiper が1行レールにしてくれるので wrap しない */
  overflow: hidden;
  /* スクロールバーは Swiper のを使う */
  padding-bottom: 16px;
  margin-bottom: 80px;
}
.p-estate__thumbs .swiper-slide {
  /* slidesPerView: 'auto' 用：サムネ1枚の見た目幅 */
  width: 120px;
  /* お好みで 80~120px 程度 */
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s ease;
}
.p-estate__thumbs .swiper-slide-thumb-active {
  opacity: 1;
  outline: 2px solid #000;
}
.p-estate__thumbimg {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 4px;
}
.p-estate__title {
  text-align: center;
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-estate__titlecat {
  display: inline-block;
  border: solid 1px #ccc;
  padding: 4px 24px;
  margin-bottom: 16px;
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.5;
}
.p-estate__titlemain {
  display: block;
}
.p-estate__contents {
  margin-bottom: 64px;
}
.p-estate__summary {
  text-align: center;
  margin-bottom: 40px;
}
.p-estate__subtitle {
  background-color: #6B83B2;
  text-align: center;
  color: #FFF;
  padding: 16px;
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.75;
}
.p-estate__info {
  display: grid;
  grid-template-columns: 120px 1fr;
  /* 必要なら gap 指定 */
  margin-bottom: 32px;
}
@media (min-width: 768px) {
  .p-estate__info {
    /* 1行に「dt, dd, dt, dd」で2セット=4カラム */
    grid-template-columns: 120px 1fr 120px 1fr;
  }
}
.p-estate__item, .p-estate__detail {
  padding: 16px;
  border-left: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  border-right: 1px solid #ccc;
}
@media (min-width: 768px) {
  .p-estate__item, .p-estate__detail {
    border-right: none;
  }
}
.p-estate__item {
  background-color: #F2F2F2;
}
.p-estate__detail:nth-of-type(even) {
  border-right: 1px solid #ccc;
}
.p-estate__info:has(> dd:last-child:nth-child(4n+2)) > dt:last-of-type {
  grid-column: 1;
  /* 1列目（ラベル） */
}
.p-estate__info:has(> dd:last-child:nth-child(4n+2)) > dd:last-of-type {
  grid-column: 2/-1;
  /* 2列目〜最後まで（値を全幅） */
  border-right: 1px solid #ccc;
}
.p-estate__gmap {
  margin-bottom: 60px;
}
.p-estate__gmap iframe {
  width: 100%;
}
.p-estate .swiper-button-prev,
.p-estate .swiper-button-next {
  width: 40px;
  height: 40px;
  background: #6B83B2;
  border-radius: 50%;
  color: #fff;
}
.p-estate .swiper-button-prev::after,
.p-estate .swiper-button-next::after {
  font-size: 16px;
}
.p-estate .js-caseMain {
  position: relative;
  overflow: visible;
}
.p-estate .swiper-button-prev,
.p-estate .swiper-button-next {
  top: 50%;
  transform: translateY(-50%);
}
.p-estate .swiper-button-prev {
  left: 0px;
}
@media (min-width: 768px) {
  .p-estate .swiper-button-prev {
    left: -30px;
  }
}
.p-estate .swiper-button-next {
  right: 0px;
}
@media (min-width: 768px) {
  .p-estate .swiper-button-next {
    right: -30px;
  }
}

/* 偶数番目の dd（つまり各セットの右側のdd） */
.p-estate__detail:nth-of-type(even) {
  border-right: 1px solid #ccc;
}

/* ==============================
   Foundation
   ============================== */
.p-newscat {
  display: flex;
  gap: 8px;
  margin-bottom: 32px;
  border-bottom: 6px solid #6B83B2;
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .p-newscat {
    gap: 16px;
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: 1.8;
  }
}
.p-newscat__list {
  width: 25%;
}
.p-newscat__link {
  display: flex;
  text-align: center;
  height: 60px;
  justify-content: center;
  align-items: center;
  background-color: #FFF8EF;
  border-radius: 16px 16px 0 0;
}
.p-newscat__link:hover {
  background-color: #6B83B2;
  color: #fff;
}
.p-newscat__link--active {
  background-color: #6B83B2;
  color: #fff;
}

.p-newslist {
  margin-bottom: 160px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-newslist {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-newslist {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-newslist {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-newslist__wrap {
  padding: 24px;
  background-color: #f5f5f5;
  margin-bottom: 8px;
}
.p-newslist__wrap {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-newslist__wrap {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-newslist__wrap {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-newslist__wrap {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .p-newslist__wrap {
    padding: 32px;
    display: flex;
  }
}
.p-newslist__img {
  margin-bottom: 24px;
  text-align: center;
}
@media (min-width: 768px) {
  .p-newslist__img {
    width: 50%;
    margin-bottom: 0;
  }
}
@media (min-width: 992px) {
  .p-newslist__img {
    max-width: 400px;
  }
}
.p-newslist__date {
  text-align: right;
  margin-bottom: 16px;
}
.p-newslist__pic {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-newslist__pic {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-newslist__pic {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-newslist__pic {
    border-radius: 32px;
  }
}
.p-newslist__inner {
  text-align: center;
}
@media (min-width: 768px) {
  .p-newslist__inner {
    text-align: left;
    padding: 16px 32px;
    width: 50%;
  }
}
@media (min-width: 992px) {
  .p-newslist__inner {
    width: calc(100% - 0px - 400px);
  }
}
.p-newslist__title {
  margin-bottom: 16px;
  text-align: left;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.35;
}
.p-newslist__contents {
  margin-bottom: 40px;
  text-align: left;
}
.p-newslist__link {
  text-align: center;
}
@media (min-width: 768px) {
  .p-newslist__link {
    text-align: left;
  }
}
.p-newslist__btn {
  padding: 6px 32px;
}

.p-news {
  margin-bottom: 60px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-news {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-news {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
.p-news__title {
  text-align: center;
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-news__date {
  text-align: right;
  margin-bottom: 16px;
}
/* ==============================
   Foundation
   ============================== */
.p-modelhouselist {
  margin-bottom: 160px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-modelhouselist {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-modelhouselist {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-modelhouselist {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-modelhouselist {
    gap: 64px;
  }
}
.p-modelhouselist__wrap {
  width: calc((100% - 24px) / 2);
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .p-modelhouselist__wrap {
    width: calc((100% - 64px) / 2);
  }
}
.p-modelhouselist__img {
  margin-bottom: 16px;
  overflow: hidden;
}
.p-modelhouselist__img {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-modelhouselist__img {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-modelhouselist__img {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-modelhouselist__img {
    border-radius: 32px;
  }
}
.p-modelhouselist__link {
  display: block;
  transition: all 0.3s ease-in-out;
}
.p-modelhouselist__link:hover {
  transform: scale(1.1);
}
.p-modelhouselist__pic {
  width: 100%;
  vertical-align: middle;
}
.p-modelhouse {
  margin-bottom: 100px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-modelhouse {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-modelhouse {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-modelhouse {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-modelhouse__title {
  text-align: center;
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-modelhouse__img {
  margin-bottom: 40px;
}
.p-modelhouse__access {
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .p-modelhouse__access {
    display: flex;
    gap: 24px;
  }
}
.p-modelhouse__list {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .p-modelhouse__list {
    width: 50%;
    margin-bottom: 0;
  }
}
.p-modelhouse__item {
  width: 30%;
  background-color: #E2CEAF;
  padding: 16px;
  text-align: right;
  margin-bottom: 2px;
}
.p-modelhouse__detail {
  width: 70%;
  background-color: #FFFAE9;
  padding: 16px;
  margin-bottom: 2px;
}
@media (min-width: 768px) {
  .p-modelhouse__map {
    width: 50%;
  }
}
.p-modelhouse__map iframe {
  width: 100%;
  height: 400px;
}
.p-modelhouse__overview {
  margin: 64px auto 0;
  text-align: center;
}
.p-modelhouse__link {
  text-align: center;
}
.p-modelhouse__contents {
  margin-bottom: 40px;
}

/* ==============================
   Foundation
   ============================== */
.p-eventinfolist {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-eventinfolist {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-eventinfolist {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-eventinfolist {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-eventinfolist {
    margin-bottom: 160px;
    gap: 64px;
  }
}
.p-eventinfolist__wrap {
  width: calc((100% - 24px) / 2);
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .p-eventinfolist__wrap {
    width: calc((100% - 64px) / 2);
  }
}
.p-eventinfolist__img {
  margin-bottom: 16px;
  overflow: hidden;
}
.p-eventinfolist__img {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-eventinfolist__img {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-eventinfolist__img {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-eventinfolist__img {
    border-radius: 32px;
  }
}
.p-eventinfolist__link {
  display: block;
  transition: all 0.3s ease-in-out;
}
.p-eventinfolist__link:hover {
  transform: scale(1.1);
}
.p-eventinfolist__pic {
  width: 100%;
  vertical-align: middle;
}
.p-eventinfolist__date {
  text-align: right;
}

.p-eventinfo {
  margin-bottom: 100px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-eventinfo {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-eventinfo {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-eventinfo {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-eventinfo__title {
  text-align: center;
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-eventinfo__date {
  text-align: right;
}
.p-eventinfo__list {
  display: flex;
  flex-wrap: wrap;
}
.p-eventinfo__item {
  width: 200px;
  margin-bottom: 20px;
}
.p-eventinfo__detail {
  width: calc(100% - 200px);
}
.p-eventinfo__contents {
  margin-bottom: 40px;
}
.p-eventinfo__map {
  margin-bottom: 20px;
}
.p-eventinfo__link {
  margin-bottom: 20px;
}

/* ==============================
   Foundation
   ============================== */
.p-recruitmv {
  padding-top: 80px;
  padding-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitmv {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitmv {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-recruitmv {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-recruitmv {
    padding-top: 120px;
    padding-bottom: 120px;
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
  }
}
.p-recruitmv__img {
  margin: 0 auto 40px;
  width: 80%;
  max-width: 400px;
}
@media (min-width: 768px) {
  .p-recruitmv__img {
    width: 35%;
  }
}
@media (min-width: 768px) {
  .p-recruitmv__inner {
    width: 65%;
    display: flex;
    align-content: center;
    flex-wrap: wrap;
  }
}
.p-recruitmv__copy {
  margin: 0 auto 40px;
  width: 80%;
}
@media (min-width: 768px) {
  .p-recruitmv__copy {
    margin: 0 0 48px 0;
  }
}
.p-recruitmv__txt {
  text-align: center;
  line-height: 2.4;
}
@media (min-width: 768px) {
  .p-recruitmv__txt {
    font-size: clamp(16px, 1vw, 18px);
    text-align: left;
  }
}
@media (min-width: 992px) {
  .p-recruitmv__txt {
    font-size: 18px;
  }
}
@media (min-width: 1200px) {
  .p-recruitmv__txt {
    font-size: 20px;
  }
}

.p-recruitnav {
  margin-bottom: 40px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitnav {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitnav {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-recruitnav {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-recruitnav {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 24px;
  }
}
@media (min-width: 768px) {
  .p-recruitnav__list {
    width: calc((100% - 24px) / 2);
  }
}
@media (min-width: 1200px) {
  .p-recruitnav__list {
    width: calc((100% - 72px) / 4);
  }
}
.p-recruitnav__btn {
  max-width: 100%;
  width: 100%;
  margin-bottom: 8px;
}

.p-recruitabout {
  background-image: url("../images/common/bg_sectiontop.png"), url("../images/common/bg_sectionbottom03.png"), linear-gradient(#fff8ef, #fff8ef 9%, #f0dcdc 48%, #e2ceaf 92%);
  /* ← 一番奥（背景） */
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-position: top center, bottom center, center;
  background-size: auto, auto, cover;
  /* グラデーションは全体に広げたい場合 */
  padding: 40px 16px;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .p-recruitabout {
    margin-bottom: 160px;
    padding: 120px 0 120px;
  }
}
.p-recruitabout__title {
  width: 100%;
  margin-bottom: 24px;
  color: #869F9B;
  text-align: center;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-recruitabout__title {
    margin-bottom: 40px;
    text-align: left;
  }
}
.p-recruitabout__wrap {
  margin-bottom: 40px;
  background-color: #fff;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitabout__wrap {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitabout__wrap {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-recruitabout__wrap {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-recruitabout__wrap {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-recruitabout__wrap {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-recruitabout__wrap {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-recruitabout__wrap {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .p-recruitabout__wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.p-recruitabout__house {
  width: 100%;
  position: relative;
}
.p-recruitabout__houseicon {
  position: absolute;
  width: 32px;
  left: 0;
  top: -15px;
}
@media (min-width: 768px) {
  .p-recruitabout__houseicon {
    width: 40px;
    left: 64px;
    top: -15px;
  }
}
.p-recruitabout__inner {
  padding: 24px 8px;
}
@media (min-width: 768px) {
  .p-recruitabout__inner {
    padding: 40px;
    width: 65%;
  }
}
@media (min-width: 992px) {
  .p-recruitabout__inner {
    padding: 64px;
    width: 65%;
  }
}
.p-recruitabout__txt {
  margin-bottom: 1em;
}
.p-recruitabout__img {
  text-align: center;
  padding: 0 8px 24px 8px;
}
@media (min-width: 768px) {
  .p-recruitabout__img {
    padding: 40px 40px 40px 0;
    width: 35%;
  }
}
@media (min-width: 992px) {
  .p-recruitabout__img {
    padding: 64px 64px 64px 0;
    width: 35%;
  }
}

.p-recruitpoint__title {
  width: 100%;
  margin-bottom: 24px;
  color: #869F9B;
  text-align: center;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-recruitpoint__title {
    margin-bottom: 40px;
    text-align: left;
  }
}
.p-recruitpoint__wrap {
  margin-bottom: 40px;
  background-color: #fff;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitpoint__wrap {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitpoint__wrap {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-recruitpoint__wrap {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-recruitpoint__wrap {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-recruitpoint__wrap {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-recruitpoint__wrap {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-recruitpoint__wrap {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .p-recruitpoint__wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.p-recruitpoint__inner {
  padding: 24px 8px;
}
@media (min-width: 768px) {
  .p-recruitpoint__inner {
    padding: 40px;
    width: 65%;
  }
}
@media (min-width: 992px) {
  .p-recruitpoint__inner {
    padding: 64px;
    width: 65%;
  }
}
.p-recruitpoint__txt {
  margin-bottom: 1em;
}
.p-recruitpoint__img {
  text-align: center;
  padding: 0 8px 24px 8px;
}
@media (min-width: 768px) {
  .p-recruitpoint__img {
    padding: 40px 40px 40px 0;
    width: 35%;
  }
}
@media (min-width: 992px) {
  .p-recruitpoint__img {
    padding: 64px 64px 64px 0;
    width: 35%;
  }
}

.p-recruitmessage__title {
  width: 100%;
  margin-bottom: 24px;
  color: #869F9B;
  text-align: center;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-recruitmessage__title {
    margin-bottom: 40px;
    text-align: left;
  }
}
.p-recruitmessage__wrap {
  margin-bottom: 40px;
  background-color: #fff;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitmessage__wrap {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitmessage__wrap {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-recruitmessage__wrap {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-recruitmessage__wrap {
  border-radius: 16px;
}
@media (min-width: 768px) {
  .p-recruitmessage__wrap {
    border-radius: 16px;
  }
}
@media (min-width: 992px) {
  .p-recruitmessage__wrap {
    border-radius: 24px;
  }
}
@media (min-width: 1200px) {
  .p-recruitmessage__wrap {
    border-radius: 32px;
  }
}
@media (min-width: 768px) {
  .p-recruitmessage__wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.p-recruitmessage__inner {
  padding: 24px 8px;
}
@media (min-width: 768px) {
  .p-recruitmessage__inner {
    padding: 40px;
    width: 65%;
  }
}
@media (min-width: 992px) {
  .p-recruitmessage__inner {
    padding: 64px;
    width: 65%;
  }
}
.p-recruitmessage__txt {
  margin-bottom: 1em;
}
.p-recruitmessage__img {
  text-align: center;
  padding: 0 8px 24px 8px;
}
@media (min-width: 768px) {
  .p-recruitmessage__img {
    padding: 40px 40px 40px 0;
    width: 35%;
  }
}
@media (min-width: 992px) {
  .p-recruitmessage__img {
    padding: 64px 64px 64px 0;
    width: 35%;
  }
}
.p-recruitmessage__name {
  margin-top: 8px;
  text-align: center;
}

.p-recruitattempt {
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitattempt {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitattempt {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-recruitattempt {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-recruitattempt {
    margin-bottom: 160px;
  }
}
.p-recruitattempt__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-recruitattempt__wrap {
  padding: 36px;
  background-color: #FFF0F0;
  position: relative;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .p-recruitattempt__wrap {
    max-width: 800px;
    margin: 0 auto 40px;
    padding: 40px 64px;
  }
}
@media (min-width: 1200px) {
  .p-recruitattempt__wrap {
    max-width: 800px;
    margin-left: 100px;
    padding: 40px 64px;
  }
}
.p-recruitattempt__wrap--yellow {
  background-color: #FFFAE9;
}
@media (min-width: 1200px) {
  .p-recruitattempt__wrap--yellow {
    margin-left: 200px;
  }
}
.p-recruitattempt__subtitle {
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.35;
}
.p-recruitattempt__txt {
  margin-bottom: 24px;
}
.p-recruitattempt__img {
  position: absolute;
  width: 100px;
  bottom: 30px;
  right: 0px;
}
@media (min-width: 768px) {
  .p-recruitattempt__img {
    width: 160px;
    bottom: 30px;
    right: -80px;
  }
}
@media (min-width: 992px) {
  .p-recruitattempt__img {
    width: 220px;
    bottom: 30px;
    right: -80px;
  }
}
.p-recruitattempt__wrap--yellow .p-recruitattempt__img {
  width: 50px;
  bottom: 60px;
  right: 0px;
}
@media (min-width: 768px) {
  .p-recruitattempt__wrap--yellow .p-recruitattempt__img {
    width: 120px;
    bottom: 40px;
    left: -80px;
    right: auto;
  }
}

.p-recruitlist {
  margin-bottom: 80px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitlist {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitlist {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (min-width: 768px) {
  .p-recruitlist {
    margin-bottom: 160px;
  }
}
.p-recruitlist__title {
  margin-bottom: 64px;
  text-align: center;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-recruitlist__link {
  position: relative;
  display: block;
  background-color: #6B83B2;
  padding: 24px 64px 24px 24px;
  margin-bottom: 2px;
  color: #fff;
  transition: background-color 0.3s ease;
}
.p-recruitlist__link::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 16" fill="%236B83B2"><polygon points="0,0 10,8 0,16"/></svg>') no-repeat center/10px 16px, #fff;
  transition: background 0.3s ease, transform 0.3s ease;
}
.p-recruitlist__link:hover {
  background-color: #869F9B;
  text-decoration: none;
}
.p-recruitlist__link:hover::after {
  transform: translateY(-50%) translateX(4px);
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 16" fill="%23869F9B"><polygon points="0,0 10,8 0,16"/></svg>') no-repeat center/10px 16px, #fff;
}
.p-recruitlist__job {
  margin-bottom: 16px;
  font-size: clamp(18px, 1.4vw, 24px);
}
.p-recruitlist__type {
  text-decoration: none;
  font-size: clamp(13px, 1vw, 14px);
  line-height: 1.5;
}
.p-recruitlist__type01 {
  display: inline-block;
  margin-right: 8px;
  background-color: #fff;
  color: #333;
  padding: 0 8px;
}
.p-recruitlist__type02 {
  display: inline-block;
  margin-right: 8px;
  background-color: #FFF0F0;
  color: #333;
  padding: 0 8px;
}

.p-recruitsite {
  margin-top: 64px;
}
.p-recruitsite__txt {
  text-align: center;
  margin-bottom: 24px;
}
.p-recruitsite__list {
  display: flex;
  gap: 24px;
  justify-content: center;
}
.p-recruitsite__site {
  max-width: 300px;
}
.p-recruitsite__link {
  padding: 24px;
  display: block;
  border: solid 1px #ccc;
}
.p-interview {
  margin-bottom: 80px;
  background-color: #E2CEAF;
  background-image: url("../images/common/bg_sectiontop03.png"), url("../images/common/bg_sectionbottom03.png");
  background-repeat: no-repeat, no-repeat;
  background-position: top center, bottom center;
  background-size: auto, auto;
  padding: 120px 0;
}
.p-interview__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-interview__wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-interview__wrap {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-interview__wrap {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-interview__wrap {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-interview__inner {
  text-align: center;
  width: calc((80% - 40px) / 2);
}
@media (min-width: 768px) {
  .p-interview__inner {
    width: calc((100% - 120px) / 4);
  }
}
.p-interview__img {
  margin-bottom: 24px;
}
.p-interview__name {
  margin-bottom: 24px;
}
.p-interview__modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 9999;
  padding: 24px;
  color: #333;
  overflow-y: auto;
}
@media (min-width: 768px) {
  .p-interview__modal {
    padding: 40px;
  }
}
.p-interview__modal.is-active {
  display: block;
}
.p-interview__modalcontent {
  position: relative;
  background: #fff;
  max-width: 800px;
  margin: 0 auto;
  padding: 24px;
  border-radius: 12px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-interview__modalcontent {
    margin: 80px auto;
    padding: 40px;
  }
}
.p-interview__modalclose {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ddd;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  color: #333;
  transition: background 0.2s, opacity 0.2s, transform 0.2s;
}
.p-interview__modalclose:hover {
  background: #bbb;
  transform: scale(1.05);
}
.p-interview__modalclose:active {
  transform: scale(0.95);
}
.p-interview__modalimg {
  width: 160px;
  margin: 0 auto 16px;
}
@media (min-width: 768px) {
  .p-interview__modalimg {
    width: 240px;
  }
}
.p-interview__modaltitle {
  margin-bottom: 16px;
  margin-top: 32px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.35;
}
.p-interview__modaltxt {
  margin-bottom: 16px;
}

.p-recruitinfo {
  margin-bottom: 160px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-recruitinfo {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-recruitinfo {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-recruitinfo {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-recruitinfo__type {
  text-align: center;
  margin-bottom: 16px;
}
.p-recruitinfo__type01 {
  display: inline-block;
  margin-right: 8px;
  background-color: #fff;
  color: #333;
  padding: 0 8px;
}
.p-recruitinfo__type02 {
  display: inline-block;
  margin-right: 8px;
  background-color: #FFF0F0;
  color: #333;
  padding: 0 8px;
}
.p-recruitinfo__title {
  text-align: center;
  margin-bottom: 40px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-recruitinfo__contents {
  margin-bottom: 24px;
}
.p-recruitinfo__inner {
  background-color: #FFF8EF;
  padding: 24px;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .p-recruitinfo__inner {
    padding: 40px;
  }
}
.p-recruitinfo__subtitle {
  background-color: #6B83B2;
  text-align: center;
  color: #fff;
  padding: 8px;
  border-radius: 16px 16px 0 0;
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .p-recruitinfo__detail {
    display: flex;
    flex-wrap: wrap;
    padding-right: 16px;
    padding-left: 16px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .p-recruitinfo__detail {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  .p-recruitinfo__detail {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
.p-recruitinfo__term {
  border-bottom: 1px solid #ccc;
  padding: 16px;
  text-align: center;
}
@media (min-width: 768px) {
  .p-recruitinfo__term {
    text-align: left;
    width: 200px;
  }
}
.p-recruitinfo__desc {
  border-bottom: 1px solid #ccc;
  padding: 16px;
  background-color: #fff;
}
@media (min-width: 768px) {
  .p-recruitinfo__desc {
    background-color: transparent;
    width: calc(100% - 200px);
  }
}

.p-recruitback {
  text-align: center;
  margin-bottom: 160px;
}

/* ==============================
   Foundation
   ============================== */
.p-companymain {
  margin-bottom: 80px;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-companymain {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-companymain {
    width: 848px;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (min-width: 768px) {
  .p-companymain {
    margin-bottom: 160px;
  }
}
.p-companymain__title {
  text-align: center;
  width: 80%;
  margin: 0 auto 40px;
}
@media (min-width: 768px) {
  .p-companymain__title {
    max-width: 600px;
    margin: 0 auto 62px;
    width: auto;
  }
}
.p-companymain__pic {
  width: 80%;
  margin: 0 auto 40px auto;
}
@media (min-width: 768px) {
  .p-companymain__pic {
    max-width: 600px;
    width: auto;
    margin: 0 auto 64px auto;
  }
}
.p-companymain__txt {
  line-height: 2;
  font-size: clamp(18px, 1.4vw, 22px);
}
@media (min-width: 768px) {
  .p-companymain__txt {
    text-align: center;
    line-height: 3em;
    font-size: clamp(20px, 1.4vw, 22px);
  }
}

.p-companyphoto {
  display: flex;
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-companyphoto {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-companyphoto {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-companyphoto {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-companyphoto {
    margin-bottom: 160px;
  }
}
.p-companyphoto__img {
  width: 33.3333333333%;
}

.p-message {
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-message {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-message {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-message {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-message {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 48px;
    margin-bottom: 160px;
  }
}
.p-message__title {
  width: 100%;
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-message__txtwrap {
    width: 65%;
  }
}
.p-message__txt {
  margin-bottom: 1em;
}
.p-message__img {
  max-width: 300px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .p-message__img {
    max-width: none;
    width: calc(35% - 48px);
  }
}
.p-message__name {
  text-align: center;
  margin-top: 8px;
}

.p-company {
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-company {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-company {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-company {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-company {
    margin-bottom: 160px;
  }
}
.p-company__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-company__info {
    display: flex;
    flex-wrap: wrap;
  }
}
.p-company__item {
  text-align: center;
  padding: 16px 16px 0 16px;
}
@media (min-width: 768px) {
  .p-company__item {
    text-align: right;
    width: 200px;
    padding: 24px;
  }
}
@media (min-width: 1200px) {
  .p-company__item {
    width: 300px;
  }
}
.p-company__contents {
  padding: 16px;
}
@media (min-width: 768px) {
  .p-company__contents {
    width: calc(100% - 200px);
    padding: 24px;
  }
}
@media (min-width: 1200px) {
  .p-company__contents {
    width: calc(100% - 300px);
  }
}
.p-company dt:nth-of-type(odd),
.p-company dt:nth-of-type(odd) + dd {
  background-color: #FFF8EF;
}
.p-company dt:nth-of-type(even),
.p-company dt:nth-of-type(even) + dd {
  background-color: #E2CEAF;
}

.p-access {
  margin-bottom: 160px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-access {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-access {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-access {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-access__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-access__address {
  text-align: center;
  margin-bottom: 24px;
}
.p-access__map {
  width: 100%;
  margin-bottom: 40px;
}
.p-access__subtitle {
  text-align: center;
  font-weight: bold;
  margin-bottom: 40px;
}
.p-access__access {
  margin: 0 auto;
}
@media (min-width: 768px) {
  .p-access__access {
    display: flex;
    flex-wrap: wrap;
    max-width: 600px;
  }
}
.p-access__how {
  margin-bottom: 24px;
  font-weight: bold;
}
@media (min-width: 768px) {
  .p-access__how {
    width: 220px;
  }
}
.p-access__info {
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .p-access__info {
    width: 380px;
  }
}

/* ==============================
   Foundation
   ============================== */
.p-etusus {
  text-align: center;
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-etusus {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-etusus {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-etusus {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-etusus {
    margin-bottom: 160px;
  }
}
.p-etusus__copy {
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-etusus__subcopy {
  text-align: center;
  display: inline-block;
  margin: 0 auto 40px;
  padding: 8px 24px;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-etusus__img {
  margin-bottom: 56px;
}
.p-etusus__txt {
  text-align: left;
  max-width: 800px;
  margin: 0 auto 1.5em;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.8;
}

.p-etususbg {
  width: 100%;
  height: 200px;
  margin-bottom: 80px;
  background-image: url(../images/etusus/pic_bg.jpg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
@media (min-width: 768px) {
  .p-etususbg {
    height: 400px;
  }
}
@media (min-width: 992px) {
  .p-etususbg {
    margin-bottom: 160px;
    background-attachment: fixed;
  }
}

.p-etususpoint {
  margin-bottom: 64px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-etususpoint {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-etususpoint {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-etususpoint {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-etususpoint {
    margin-bottom: 120px;
  }
}
.p-etususpoint__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-etususpoint__wrap {
  background-color: #FFFAE9;
  padding: 32px 32px 8px 32px;
  margin-bottom: 24px;
}
.p-etususpoint__subtitle {
  color: #6B83B2;
  margin-bottom: 16px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-etususpoint__point {
  font-weight: bold;
  margin-bottom: 8px;
}
.p-etususpoint__txt {
  margin-bottom: 24px;
}
.p-etususpoint__design {
  text-align: center;
  margin-bottom: 24px;
}

.p-etususLink {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-etususLink {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-etususLink {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-etususLink {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-etususLink__link {
  display: block;
  max-width: 600px;
  text-align: center;
  padding: 24px;
  border: solid 2px #ccc;
  margin: 0 auto 160px auto;
}
.p-etususLink__link:hover {
  background-color: #F2F2F2;
}
.p-etususLink__txt {
  font-weight: bold;
  margin-bottom: 8px;
}
.p-etususLink__img {
  max-width: 240px;
}

/* ==============================
   Foundation
   ============================== */
.p-i-works {
  text-align: center;
  margin-bottom: 80px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-i-works {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-i-works {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-i-works {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-i-works {
    margin-bottom: 160px;
  }
}
.p-i-works__copy {
  margin-bottom: 24px;
  font-weight: 600;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6;
}
.p-i-works__subcopy {
  text-align: center;
  display: inline-block;
  margin: 0 auto 40px;
  padding: 8px 24px;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-i-works__img {
  margin-bottom: 56px;
}
.p-i-works__txt {
  text-align: left;
  max-width: 800px;
  margin: 0 auto 1.5em;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.8;
}

.p-i-worksbg {
  width: 100%;
  height: 200px;
  margin-bottom: 80px;
  background-image: url(../images/i-works/pic_bg.jpg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
@media (min-width: 768px) {
  .p-i-worksbg {
    height: 400px;
  }
}
@media (min-width: 992px) {
  .p-i-worksbg {
    margin-bottom: 160px;
    background-attachment: fixed;
  }
}

.p-i-worksplan {
  margin-bottom: 64px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-i-worksplan {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-i-worksplan {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-i-worksplan {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .p-i-worksplan {
    margin-bottom: 120px;
  }
}
.p-i-worksplan__title {
  text-align: center;
  margin-bottom: 64px;
  font-weight: 600;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.6;
}
.p-i-worksplan__txt {
  max-width: 800px;
  margin: 0 auto 1em;
}
.p-i-worksplan__wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  margin-top: 56px;
}
.p-i-worksplan__plan {
  width: calc((100% - 32px) / 2);
}
@media (min-width: 768px) {
  .p-i-worksplan__plan {
    width: calc((100% - 64px) / 3);
  }
}
.p-i-worksplan__img {
  margin-bottom: 24px;
}
.p-i-worksplan__name {
  font-weight: bold;
  margin-bottom: 8px;
}
.p-i-worksLink {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 768px) {
  .p-i-worksLink {
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 992px) {
  .p-i-worksLink {
    width: 960px;
    padding-right: 32px;
    padding-left: 32px;
  }
}
@media (min-width: 1200px) {
  .p-i-worksLink {
    width: 1116px;
    padding-right: 0;
    padding-left: 0;
  }
}
.p-i-worksLink__link {
  display: block;
  max-width: 600px;
  text-align: center;
  padding: 24px;
  border: solid 2px #ccc;
  margin: 0 auto 160px auto;
}
.p-i-worksLink__link:hover {
  background-color: #F2F2F2;
}
.p-i-worksLink__txt {
  font-weight: bold;
  margin-bottom: 8px;
}
.p-i-worksLink__img {
  max-width: 240px;
}

/* utility */
/* ==============================
   Foundation
   ============================== */
@media (min-width: 768px) {
  .u-sponly {
    display: none;
  }
}

.u-pconly {
  display: none;
}
@media (min-width: 768px) {
  .u-pconly {
    display: block;
  }
}/*# sourceMappingURL=style.css.map */