@charset "UTF-8";
/* ======================== */
/*         fv           */
/* ======================== */
.p-fv {
  position: relative;
  overflow: hidden;
}
.p-fv__media picture,
.p-fv__media img {
  display: block;
  width: 100%;
  height: auto;
}
.p-fv__content {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  pointer-events: none;
  padding-top: min(5.3333333333vw, 40px);
}
@media screen and (min-width: 751px) {
  .p-fv__content {
    padding-top: min(2.0833333333vw, 40px);
    justify-content: flex-start;
  }
}
.p-fv__content .layout-padding {
  padding-block: 0;
  padding-inline: min(4vw, 1.875rem);
}
@media screen and (min-width: 751px) {
  .p-fv__content .layout-padding {
    padding-block: min(8.3333333333vw, 160px);
    padding-inline: min(13.5416666667vw, 260px);
  }
}
.p-fv__catch {
  max-width: 44rem;
  margin-inline: auto;
  text-align: center;
}
@media screen and (min-width: 751px) {
  .p-fv__catch {
    max-width: 60rem;
    text-align: left;
  }
}
.p-fv__lead {
  position: relative;
  letter-spacing: 0.15em;
  line-height: 1.2;
  padding-top: min(3.7333333333vw, 28px);
  font-size: min(8vw, 3.75rem);
}
@media screen and (min-width: 751px) {
  .p-fv__lead {
    padding-top: min(1.1458333333vw, 22px);
    font-size: min(4.7916666667vw, 92px);
    letter-spacing: 0.05em;
  }
}
.p-fv__quote {
  color: #060606;
  letter-spacing: 0em;
}
.p-fv__lead-core {
  color: #47763e;
  display: inline-flex;
  font-weight: 500;
}
.p-fv__char {
  position: relative;
  display: inline-block;
}
.p-fv__dot {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -0.5em;
  width: 0.25em;
  height: 0.25em;
  border-radius: 50%;
  background: #ec6841;
}
.p-fv__sub {
  margin-top: min(1.3333333333vw, 10px);
  font-size: min(4.8vw, 2.25rem);
  letter-spacing: 0.05em;
  line-height: 1.4;
  font-weight: 500;
}
@media screen and (min-width: 751px) {
  .p-fv__sub {
    margin-top: min(1.3541666667vw, 26px);
    font-size: min(2.6041666667vw, 50px);
  }
}

/* =================================================
   Vision
================================================= */
.p-vision .layout-padding {
  padding-top: 0;
}
@media screen and (min-width: 751px) {
  .p-vision .layout-padding {
    padding-inline: min(14.5833333333vw, 280px);
  }
}

/* 背景は画面幅いっぱい */
.p-vision__bg {
  background: #4b6e54;
}

/* 中身は1920で止める */
.p-vision__container {
  max-width: 1920px;
  margin-inline: auto;
  /* 浮かせ配置の基準 */
  position: relative;
  padding-top: min(16vw, 120px);
  padding-bottom: min(26.6666666667vw, 200px);
}
@media screen and (min-width: 751px) {
  .p-vision__container {
    padding-top: min(7.2916666667vw, 140px);
    padding-bottom: min(13.0208333333vw, 250px);
  }
}

/* layout-paddingの左右余白を変数化（下線の“左端くっつき”用） */
.p-vision__layout-padding {
  --pad-x: min(calc(60 / 750 * 100vw), 60px);
}
@media screen and (min-width: 751px) {
  .p-vision__layout-padding {
    --pad-x: min(calc(280 / 1920 * 100vw), 280px);
  }
}

/* -------------------------------------------------
   Head
------------------------------------------------- */
.p-vision__head {
  margin-bottom: min(9.6vw, 72px);
}
@media screen and (min-width: 751px) {
  .p-vision__head {
    margin-bottom: min(2.0833333333vw, 40px);
  }
}

/* OSAKA（画像）: 写真に被せる */
.p-vision__osaka {
  position: absolute;
  z-index: 3;
  margin: 0;
  top: min(10.6666666667vw, 80px);
  left: min(2.4vw, 18px);
}
@media screen and (min-width: 751px) {
  .p-vision__osaka {
    left: var(--pad-x);
    top: min(5.5729166667vw, 107px);
  }
}
.p-vision__osaka img {
  display: block;
  width: min(76vw, 570px);
  height: auto;
}
@media screen and (min-width: 751px) {
  .p-vision__osaka img {
    width: min(51.0416666667vw, 980px);
  }
}

/* Vision 見出し + 下線（下線はpadding無視で左端にくっつける） */
.heading-left {
  position: relative;
  /* OSAKAが上にいるので、見出しを下へ逃がす */
  margin-top: min(14.6666666667vw, 110px);
  padding-bottom: min(2.4vw, 18px);
  /* 下線だけ左端へ */
}
@media screen and (min-width: 751px) {
  .heading-left {
    margin-top: min(13.0208333333vw, 250px);
    padding-bottom: min(0.8333333333vw, 16px);
  }
}
.heading-left::after {
  content: "";
  position: absolute;
  left: calc(var(--pad-x) * -1);
  bottom: 0;
  width: calc(40% + var(--pad-x));
  height: min(0.6666666667vw, 5px);
  background: #f1e4af;
}
@media screen and (min-width: 751px) {
  .heading-left::after {
    width: calc(33% + var(--pad-x));
  }
}

.p-label {
  color: #f1e4af;
  font-size: min(4.5333333333vw, 34px);
  letter-spacing: 0.1em;
}
@media screen and (min-width: 751px) {
  .p-label {
    font-size: min(3.3333333333vw, 64px);
  }
}

.p-title {
  color: #ffffff;
  font-size: min(4.5333333333vw, 34px);
  letter-spacing: 0.1em;
}
@media screen and (min-width: 751px) {
  .p-title {
    font-size: min(3.3333333333vw, 64px);
  }
}

/* -------------------------------------------------
   Body
------------------------------------------------- */
@media screen and (min-width: 751px) {
  .p-vision__body {
    display: block;
  }
}

/* テキスト：右メディアの幅分だけ避ける */
.p-vision__text {
  color: #ffffff;
  font-size: min(3.6vw, 27px);
  line-height: 1.8;
  font-weight: 200;
  /* SPの右メディア分を確保 */
  padding-right: min(29.3333333333vw, 220px);
}
@media screen and (min-width: 751px) {
  .p-vision__text {
    max-width: 52rem;
    font-size: min(1.3541666667vw, 26px);
    line-height: 3;
    /* PCの右メディア分を確保 */
    padding-right: 0;
  }
}
.p-vision__text p + p {
  margin-top: 1em;
}

/* -------------------------------------------------
   Media（写真2枚 + 地図）
------------------------------------------------- */
/* 右上に浮かせる */
.p-vision__media {
  position: absolute;
  top: 0;
  right: 0;
  width: min(40vw, 300px);
}
@media screen and (min-width: 751px) {
  .p-vision__media {
    width: min(43.2291666667vw, 830px);
  }
}

/* 写真2枚（SP/PCは picture で切り替え） */
.p-vision__photos {
  display: grid;
  grid-template-columns: 1fr;
}

.p-vision__photo picture,
.p-vision__photo img {
  display: block;
  width: 100%;
  height: auto;
}

/* 大阪地図 */
.p-vision__map {
  position: relative;
  margin-top: min(16vw, 120px);
  width: min(34vw, 255px);
}
@media screen and (min-width: 751px) {
  .p-vision__map {
    margin-top: min(2.6041666667vw, 50px);
    margin-left: min(8.3333333333vw, 160px);
    width: min(15.7291666667vw, 302px);
  }
}
.p-vision__map picture,
.p-vision__map img {
  display: block;
  width: 100%;
  height: auto;
}

.p-vision__badge {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  /* 箱と箱の間の“隙間”(スクショのグリーンが見える部分) */
  gap: min(0.8vw, 6px);
}
@media screen and (min-width: 751px) {
  .p-vision__badge {
    gap: min(1.0416666667vw, 20px);
    left: min(14.5833333333vw, 280px);
    bottom: min(-0.7291666667vw, -14px);
  }
}

.p-vision__badge-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f1e4af;
  color: #4b6e54;
  font-weight: 600;
  /* 箱サイズ感 */
  width: min(10.6666666667vw, 80px);
  height: min(10.6666666667vw, 80px);
  font-size: min(7.7333333333vw, 58px);
  line-height: 1;
}
@media screen and (min-width: 751px) {
  .p-vision__badge-box {
    width: min(7.2916666667vw, 140px);
    height: min(7.2916666667vw, 140px);
  }
}
@media screen and (min-width: 751px) {
  .p-vision__badge-box {
    font-size: min(5.4166666667vw, 104px);
  }
}

/* =================================================
   Service
================================================= */
.p-service .layout-padding {
  padding-top: 0;
}
@media screen and (min-width: 751px) {
  .p-service .layout-padding {
    padding-inline: min(13.5416666667vw, 260px);
  }
}

/* -------------------------------------------------
   背景（波＋家）を上セクションに重ねる
------------------------------------------------- */
.p-service__bg {
  position: relative;
  max-width: 1920px;
  margin-inline: auto;
  background-image: url("../img/top/service_bg-sp.png");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center top;
  /* 上に重ねる分（ここはスクショ見ながら微調整ポイント） */
  margin-top: min(-18.6666666667vw, -140px);
  padding-top: min(18.6666666667vw, 140px);
}
@media screen and (min-width: 751px) {
  .p-service__bg {
    background-image: url("../img/top/service_bg.png");
    margin-top: clamp(-174px, -10.9375vw, -10px);
    padding-top: min(8.3333333333vw, 160px);
  }
}

/* 中身は1920で止める */
.p-service__container {
  max-width: 1920px;
  margin-inline: auto;
}

/* layout-padding上書き運用（下線の左端くっつきにも使う） */
.p-service__layout-padding.layout-padding {
  --pad-x: min(calc(60 / 750 * 100vw), 60px);
  padding-inline: var(--pad-x);
}
@media screen and (min-width: 751px) {
  .p-service__layout-padding.layout-padding {
    --pad-x: min(calc(260 / 1920 * 100vw), 260px);
  }
}

.p-service__content {
  padding-top: min(7.7333333333vw, 58px);
}
@media screen and (min-width: 751px) {
  .p-service__content {
    padding-top: min(10.4166666667vw, 200px);
    padding-bottom: min(6.25vw, 120px);
  }
}

/* -------------------------------------------------
   Heading（右上 / 下線はpadding無視で左端へ）
------------------------------------------------- */
.p-service__head {
  display: flex;
  justify-content: flex-end;
}

.heading-right {
  position: relative;
  text-align: left;
  width: auto;
  width: auto;
  padding-bottom: min(2.4vw, 18px);
}
@media screen and (min-width: 751px) {
  .heading-right {
    text-align: right;
    width: auto;
    padding-bottom: min(0.8333333333vw, 16px);
  }
}
.heading-right::after {
  content: "";
  position: absolute;
  right: calc(var(--pad-x) * -1);
  bottom: 0;
  width: calc(110% + var(--pad-x));
  height: min(0.6666666667vw, 5px);
  background: #4b6e54;
}
@media screen and (min-width: 751px) {
  .heading-right::after {
    width: calc(100% + var(--pad-x));
    height: min(0.2604166667vw, 5px);
  }
}

.p-service__label {
  color: #4b6e54;
}

.p-service__title {
  color: #060606;
}

/* -------------------------------------------------
   List
------------------------------------------------- */
.p-service__body {
  margin-top: min(5.3333333333vw, 40px);
}
@media screen and (min-width: 751px) {
  .p-service__body {
    margin-top: min(-2.9166666667vw, -56px);
    width: min(54.6875vw, 1050px);
    margin-right: min(2.8645833333vw, 55px);
  }
}

.p-service__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: min(12.9333333333vw, 97px);
}
@media screen and (min-width: 751px) {
  .p-service__list {
    gap: min(3.125vw, 60px);
  }
}

/* 1アイテム = 2カラム（左アイコン / 右テキスト縦並び） */
.p-service__item {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  -moz-column-gap: min(4vw, 30px);
       column-gap: min(4vw, 30px);
}
@media screen and (min-width: 751px) {
  .p-service__item {
    -moz-column-gap: min(2.9166666667vw, 56px);
         column-gap: min(2.9166666667vw, 56px);
    align-items: center;
  }
}

/* 左：アイコン（png） */
.icon-01 {
  width: min(16vw, 120px);
}
@media screen and (min-width: 751px) {
  .icon-01 {
    width: min(11.4583333333vw, 220px);
  }
}
.icon-01 img {
  display: block;
  width: 100%;
  height: auto;
}

.icon-02 {
  width: min(16vw, 120px);
}
@media screen and (min-width: 751px) {
  .icon-02 {
    width: min(11.4583333333vw, 220px);
  }
}
.icon-02 img {
  display: block;
  height: auto;
  width: min(14.6666666667vw, 110px);
}
@media screen and (min-width: 751px) {
  .icon-02 img {
    width: min(10.2604166667vw, 197px);
  }
}

.icon-03 {
  width: min(16vw, 120px);
}
@media screen and (min-width: 751px) {
  .icon-03 {
    width: min(11.4583333333vw, 220px);
  }
}
.icon-03 img {
  display: block;
  height: auto;
  width: min(12.1333333333vw, 91px);
}
@media screen and (min-width: 751px) {
  .icon-03 img {
    width: min(8.4895833333vw, 163px);
  }
}

/* 右：テキストブロック（title/sub/text の縦並び） */
.p-service__texts {
  display: grid;
  row-gap: min(1.3333333333vw, 10px);
  letter-spacing: 0.2em;
}
@media screen and (min-width: 751px) {
  .p-service__texts {
    row-gap: min(0.4166666667vw, 8px);
    letter-spacing: 0.1em;
    width: min(40.2604166667vw, 773px);
  }
}

.p-service__item-title {
  margin: 0;
  color: #060606;
  font-weight: 700;
  font-size: min(4.2666666667vw, 32px);
}
@media screen and (min-width: 751px) {
  .p-service__item-title {
    font-size: min(2.1875vw, 42px);
  }
}

.p-service__item-sub {
  margin: 0;
  color: #060606;
  font-weight: 700;
  font-size: min(3.3333333333vw, 25px);
}
@media screen and (min-width: 751px) {
  .p-service__item-sub {
    font-size: min(1.25vw, 24px);
  }
}

.p-service__item-text {
  margin: 0;
  color: #060606;
  font-weight: 200;
  font-size: min(3.2vw, 24px);
  line-height: 1.5;
}
@media screen and (min-width: 751px) {
  .p-service__item-text {
    font-size: min(1.25vw, 24px);
    line-height: 2.1;
  }
}

/* =================================================
   News
================================================= */
.p-news .layout-padding {
  padding-top: 0;
}
@media screen and (min-width: 751px) {
  .p-news .layout-padding {
    padding-inline: min(13.5416666667vw, 260px);
  }
}
.p-news .heading-left {
  margin-top: 0;
}
.p-news .heading-left::after {
  width: calc(25% + var(--pad-x));
}
@media screen and (min-width: 751px) {
  .p-news .heading-left::after {
    width: calc(20% + var(--pad-x));
  }
}

/* 背景（波＋人物イラスト込み） */
.p-news__bg {
  position: relative;
  max-width: 1920px;
  margin-inline: auto;
  background-image: url("../img/top/news-bg-sp.png");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center top;
  padding-top: min(18.6666666667vw, 140px);
  padding-bottom: min(53.3333333333vw, 300px);
}
@media screen and (min-width: 751px) {
  .p-news__bg {
    background-image: url("../img/top/news-bg.png");
    margin-top: clamp(-160px, -8.3333333333vw, -10px);
    padding-top: min(8.3333333333vw, 160px);
  }
}

/* 中身は1920で止める */
.p-news__container {
  max-width: 1920px;
  margin-inline: auto;
}

.p-news__layout-padding.layout-padding {
  --pad-x: min(calc(60 / 750 * 100vw), 60px);
  padding-inline: var(--pad-x);
}
@media screen and (min-width: 751px) {
  .p-news__layout-padding.layout-padding {
    --pad-x: min(calc(260 / 1920 * 100vw), 260px);
  }
}

.p-news__content {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 751px) {
  .p-news__content {
    padding-bottom: min(9.375vw, 180px);
    padding-top: 0;
  }
}

/* パネル */
.p-news__panel {
  margin-top: min(10.4vw, 78px);
  background: #f5e6c6;
  padding-inline: min(4.1333333333vw, 31px);
  padding-bottom: min(5.6vw, 42px);
  padding-top: min(9.3333333333vw, 70px);
}
@media screen and (min-width: 751px) {
  .p-news__panel {
    margin-top: min(2.0833333333vw, 40px);
    width: min(48.5416666667vw, 932px);
    height: min(26.9270833333vw, 517px);
    margin-inline: auto;
    /* 中央寄せ */
    padding-inline: 0;
    padding-top: min(5.4166666667vw, 104px);
    padding-bottom: min(2.8125vw, 54px);
  }
}

.p-news__panel-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}

.p-news__panel-inner.is-empty {
  height: min(40vw, 300px);
}
@media screen and (min-width: 751px) {
  .p-news__panel-inner.is-empty {
    height: min(15.625vw, 300px);
  }
}

/* 投稿リスト */
.p-news__list {
  list-style: none;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  display: grid;
  gap: min(4vw, 30px);
}
@media screen and (min-width: 751px) {
  .p-news__list {
    gap: min(3.125vw, 60px);
    padding-inline: min(9.2708333333vw, 178px);
  }
}

.p-news__link {
  display: grid;
  grid-template-columns: auto 1fr;
  -moz-column-gap: min(3.7333333333vw, 28px);
       column-gap: min(3.7333333333vw, 28px);
  align-items: baseline;
  text-decoration: none;
  color: #060606;
}
@media screen and (min-width: 751px) {
  .p-news__link {
    -moz-column-gap: min(1.25vw, 24px);
         column-gap: min(1.25vw, 24px);
  }
}

.p-news__date {
  font-weight: 700;
  font-size: min(3.2vw, 24px);
}
@media screen and (min-width: 751px) {
  .p-news__date {
    font-size: min(1.3020833333vw, 25px);
  }
}

.p-news__title {
  font-weight: 700;
  font-size: min(3.2vw, 24px);
  line-height: 1.8;
}
@media screen and (min-width: 751px) {
  .p-news__title {
    font-size: min(1.3020833333vw, 25px);
  }
}

.p-news__empty {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  font-weight: 700;
  text-align: center;
  font-size: min(2.6666666667vw, 20px);
  height: 100%;
}
@media screen and (min-width: 751px) {
  .p-news__empty {
    font-size: min(1.3020833333vw, 25px);
  }
}

/* ボタン */
.p-news__button {
  margin-top: min(5.6vw, 42px);
  display: flex;
  justify-content: center;
  line-height: 1;
}
@media screen and (min-width: 751px) {
  .p-news__button {
    padding-right: min(2.6041666667vw, 50px);
    margin-top: min(3.3854166667vw, 65px);
    justify-content: flex-end;
  }
}

.p-news__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #c5caab;
  color: #060606;
  text-decoration: none;
  font-weight: 700;
  border-radius: min(3.8666666667vw, 29px);
  padding: min(2vw, 15px) min(5.0666666667vw, 38px);
  font-size: min(2.6666666667vw, 20px);
}
@media screen and (min-width: 751px) {
  .p-news__btn {
    border-radius: min(1.3541666667vw, 26px);
    padding: min(0.625vw, 12px) min(1.6666666667vw, 32px);
    font-size: min(1.0416666667vw, 20px);
  }
}

.p-news__btn-arrow {
  margin-left: 0.4em;
}

/* =================================================
   Company
================================================= */
.p-company .layout-padding {
  padding-top: 0;
}
@media screen and (min-width: 751px) {
  .p-company .layout-padding {
    padding-inline: min(13.5416666667vw, 260px);
  }
}

/* 背景色は画面幅いっぱい */
.p-company__bg {
  position: relative;
  max-width: 1920px;
  margin-inline: auto;
  background-image: url("../img/top/company-bg-sp.png");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center top;
  padding-top: min(13.3333333333vw, 100px);
  padding-bottom: min(6.6666666667vw, 50px);
  margin-top: min(-16.5333333333vw, -124px);
}
@media screen and (min-width: 751px) {
  .p-company__bg {
    background-image: url("../img/top/company-bg.png");
    margin-top: clamp(-550px, -28.6458333333vw, -420px);
    padding-top: min(10.4166666667vw, 200px);
    padding-bottom: min(5.2083333333vw, 100px);
  }
}

.p-company__container {
  max-width: 1920px;
  margin-inline: auto;
}

.p-company__layout-padding.layout-padding {
  --pad-x: min(calc(60 / 750 * 100vw), 60px);
  padding-inline: var(--pad-x);
}
@media screen and (min-width: 751px) {
  .p-company__layout-padding.layout-padding {
    --pad-x: min(calc(260 / 1920 * 100vw), 260px);
  }
}

.p-company__head {
  display: flex;
  justify-content: flex-end;
  margin-bottom: min(7.4666666667vw, 56px);
}
@media screen and (min-width: 751px) {
  .p-company__head {
    margin-bottom: min(3.6458333333vw, 70px);
  }
}

.p-company__label {
  color: #4b6e54;
  letter-spacing: 0.1em;
}

.p-company__title {
  color: #060606;
}

/* 本文 */
@media screen and (min-width: 751px) {
  .p-company__body {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: min(4.1666666667vw, 80px);
    align-items: start;
  }
}

/* 会社情報 */
.p-company__list {
  margin: 0;
  padding: 0;
  line-height: 1.5;
}

.p-company__row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  font-weight: 200;
  font-size: min(3.3333333333vw, 25px);
}
@media screen and (min-width: 751px) {
  .p-company__row {
    font-size: min(1.3541666667vw, 26px);
  }
}
.p-company__row + .p-company__row {
  margin-top: min(1.3333333333vw, 10px);
}
@media screen and (min-width: 751px) {
  .p-company__row + .p-company__row {
    margin-top: min(0.3125vw, 6px);
  }
}

.p-company__term {
  margin: 0;
  white-space: nowrap;
  font-weight: 200;
}

.p-company__desc {
  margin: 0;
  white-space: nowrap;
}

/* 地図 */
.p-company__map {
  margin-top: min(5.3333333333vw, 40px);
  width: min(84vw, 630px);
  height: min(57.6vw, 432px);
}
@media screen and (min-width: 751px) {
  .p-company__map {
    margin-top: 0;
    width: min(33.8541666667vw, 650px);
    height: min(23.0208333333vw, 442px);
    position: relative;
  }
}

/* iframeレスポンシブ */
.p-company__map-inner {
  position: relative;
  width: 100%;
  aspect-ratio: 16/11;
  overflow: hidden;
}
@media screen and (min-width: 751px) {
  .p-company__map-inner {
    aspect-ratio: 16/11;
    position: absolute;
    left: min(4.1666666667vw, 80px);
  }
}
.p-company__map-inner iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* =================================================
   Contact
================================================= */
.p-contact .layout-padding {
  padding-top: min(14.6666666667vw, 110px);
  padding-bottom: 0;
}

/* 背景は画面幅いっぱい */
.p-contact__bg {
  background: #b3c9ab;
}

/* 見出しは中央寄せ用（共通化してないならここで） */
.heading-center {
  text-align: center;
  position: relative;
  padding-bottom: min(2.4vw, 18px);
  /* 下線は中央配置・長さ固定(デザイン寄せ) */
}
@media screen and (min-width: 751px) {
  .heading-center {
    padding-bottom: min(0.8333333333vw, 16px);
  }
}
.heading-center::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: min(65.6vw, 492px);
  height: min(0.4vw, 3px);
  background: #f1e4af;
}
@media screen and (min-width: 751px) {
  .heading-center::after {
    width: min(40.625vw, 780px);
  }
}

/* リード */
.p-contact__lead {
  margin-top: min(3.4666666667vw, 26px);
  text-align: center;
  color: #ffffff;
  font-size: min(3.6vw, 27px);
  line-height: 2;
}
@media screen and (min-width: 751px) {
  .p-contact__lead {
    margin-top: min(0.9375vw, 18px);
    font-size: min(1.7708333333vw, 34px);
  }
}

/* ボタン群 */
.p-contact__buttons {
  margin-top: min(8.5333333333vw, 64px);
  display: grid;
  gap: min(5.3333333333vw, 40px);
  justify-items: center;
}
@media screen and (min-width: 751px) {
  .p-contact__buttons {
    margin-top: min(4.0625vw, 78px);
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    gap: min(4.6875vw, 90px);
  }
}

/* ボタン共通 */
.p-contact__btn {
  width: min(74.6666666667vw, 560px);
  height: min(17.7333333333vw, 133px);
  color: #f1e4af;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  text-decoration: none;
  padding-right: min(8vw, 60px);
  padding-left: min(4.6666666667vw, 35px);
}
@media screen and (min-width: 751px) {
  .p-contact__btn {
    width: min(23.4375vw, 450px);
    height: min(5.78125vw, 111px);
  }
}
@media screen and (min-width: 751px) {
  .p-contact__btn {
    padding-inline: min(1.0416666667vw, 20px);
  }
}

/* アイコン */
.p-contact__btn-icon {
  width: min(8.2666666667vw, 62px);
  height: min(8.2666666667vw, 62px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 751px) {
  .p-contact__btn-icon {
    width: min(2.65625vw, 51px);
    height: min(2.65625vw, 51px);
  }
}
.p-contact__btn-icon img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

/* ボタン文字 */
.p-contact__btn-text {
  font-weight: 600;
  font-size: min(3.6vw, 27px);
  letter-spacing: 0.1em;
}
@media screen and (min-width: 751px) {
  .p-contact__btn-text {
    font-size: min(1.1458333333vw, 22px);
  }
}

/* LINEボタン */
.p-contact__btn--line {
  background: #ec6841;
  gap: min(5.0666666667vw, 38px);
  white-space: nowrap;
}
@media screen and (min-width: 751px) {
  .p-contact__btn--line {
    gap: min(1.4583333333vw, 16px);
  }
}

/* MAILボタン */
.p-contact__btn--mail {
  background: #759668;
  gap: min(5.0666666667vw, 38px);
}
@media screen and (min-width: 751px) {
  .p-contact__btn--mail {
    gap: min(1.4583333333vw, 16px);
  }
}

.p-contact__illustration {
  margin-top: min(16.6666666667vw, 125px);
  display: flex;
  justify-content: center;
  overflow: hidden;
}
@media screen and (min-width: 751px) {
  .p-contact__illustration {
    margin-top: min(6.7708333333vw, 130px);
  }
}
.p-contact__illustration picture,
.p-contact__illustration img {
  display: block;
  width: min(1920px, 100%);
  height: auto;
}

/* グリーンだけ3カラムにする */
.p-contact__btn-text--mail {
  display: grid;
  grid-template-columns: auto auto auto;
  align-items: center;
  -moz-column-gap: min(1.3333333333vw, 10px);
       column-gap: min(1.3333333333vw, 10px);
}
@media screen and (min-width: 751px) {
  .p-contact__btn-text--mail {
    -moz-column-gap: min(0.4166666667vw, 8px);
         column-gap: min(0.4166666667vw, 8px);
  }
}

/* 左「家を」 */
.p-contact__btn-left {
  display: block;
  white-space: nowrap;
}

/* 中「貸したい/売りたい」縦並び */
.p-contact__btn-middle {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* ここはデザイン的に中央 */
  justify-content: center;
  row-gap: min(0.5333333333vw, 4px);
}
@media screen and (min-width: 751px) {
  .p-contact__btn-middle {
    row-gap: min(0.1041666667vw, 2px);
  }
}

.p-contact__btn-middle-line {
  display: block;
  line-height: 1.3;
  white-space: nowrap;
}

/* 右「方はこちら→」 */
.p-contact__btn-right {
  display: block;
  white-space: nowrap;
}

/* =================================================
   heading
================================================= */
.p-heading__text {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.p-heading__text.is-show {
  opacity: 1;
  transform: translateY(0);
}