@charset "utf-8";

/* --------------------------------------------
common
-----------------------------------------------*/
:root {
  --base-white: #fff;
  --base-black: #000;
  --base-orange: #f4a576;
  --base-light-orange: #fcedd1;
  --base-yellow: #e6b949;
  --base-pale-orange: #fff4e3;
  --txt-black: #4a4644;
}

:root {
  --leading-trim: calc((1em - 1lh) / 2);
  --fontsize11: min(calc(11 / 1280 * 100vw), 11px);
  --fontsize12: min(calc(12 / 1280 * 100vw), 12px);
  --fontsize13: min(calc(13 / 1280 * 100vw), 13px);
  --fontsize14: min(calc(14 / 1280 * 100vw), 14px);
  --fontsize15: min(calc(15 / 1280 * 100vw), 15px);
  --fontsize16: min(calc(16 / 1280 * 100vw), 16px);
  --fontsize17: min(calc(17 / 1280 * 100vw), 17px);
  --fontsize18: min(calc(18 / 1280 * 100vw), 18px);
  --fontsize18-2: min(calc(18 / 1440 * 100vw), 18px);
  --fontsize19: min(calc(19 / 1280 * 100vw), 19px);
  --fontsize20: min(calc(20 / 1280 * 100vw), 20px);
  --fontsize20-2: min(calc(20 / 1440 * 100vw), 20px);
  --fontsize21: min(calc(21 / 1280 * 100vw), 21px);
  --fontsize22: min(calc(22 / 1280 * 100vw), 22px);
  --fontsize23: min(calc(23 / 1280 * 100vw), 23px);
  --fontsize24: min(calc(24 / 1280 * 100vw), 24px);
  --fontsize24-2: min(calc(24 / 1440 * 100vw), 24px);
  --fontsize25: min(calc(25 / 1280 * 100vw), 25px);
  --fontsize26: min(calc(26 / 1280 * 100vw), 26px);
  --fontsize27: min(calc(27 / 1280 * 100vw), 27px);
  --fontsize28: min(calc(28 / 1280 * 100vw), 28px);
  --fontsize29: min(calc(29 / 1280 * 100vw), 29px);
  --fontsize30: min(calc(30 / 1280 * 100vw), 30px);
  --fontsize31: min(calc(31 / 1280 * 100vw), 31px);
  --fontsize32: min(calc(32 / 1280 * 100vw), 32px);
  --fontsize34: min(calc(34 / 1280 * 100vw), 34px);
  --fontsize34-2: min(calc(34 / 1440 * 100vw), 34px);
  --fontsize35: min(calc(35 / 1280 * 100vw), 35px);
  --fontsize36: min(calc(36 / 1280 * 100vw), 36px);
  --fontsize38: min(calc(38 / 1280 * 100vw), 38px);
  --fontsize38-2: min(calc(38 / 1440 * 100vw), 38px);
  --fontsize40: min(calc(40 / 1280 * 100vw), 40px);
  --fontsize41: min(calc(41 / 1280 * 100vw), 41px);
  --fontsize42: min(calc(42 / 1280 * 100vw), 42px);
  --fontsize43: min(calc(43 / 1280 * 100vw), 43px);
  --fontsize44: min(calc(44 / 1280 * 100vw), 44px);
  --fontsize45: min(calc(45 / 1280 * 100vw), 45px);
  --fontsize46: min(calc(46 / 1280 * 100vw), 46px);
  --fontsize48: min(calc(48 / 1280 * 100vw), 48px);
  --fontsize50: min(calc(50 / 1280 * 100vw), 50px);
  --fontsize52: min(calc(52 / 1280 * 100vw), 52px);
  --fontsize55: min(calc(55 / 1280 * 100vw), 55px);
  --fontsize56: min(calc(56 / 1280 * 100vw), 56px);
  --fontsize65: min(calc(65 / 1280 * 100vw), 65px);
  --fontsize70: min(calc(70 / 1280 * 100vw), 70px);
  --fontsize100: min(calc(100 / 1200 * 100vw), 100px);
  --fontsize120: min(calc(120 / 1200 * 100vw), 120px);
  --fontsize150: min(calc(150 / 1200 * 100vw), 150px);
}

@media screen and (max-width: 767px) {
  :root {
    --fontsize11: min(calc(11 / 390 * 100vw), 11px);
    --fontsize12: min(calc(12 / 390 * 100vw), 12px);
    --fontsize13: min(calc(13 / 390 * 100vw), 13px);
    --fontsize14: min(calc(14 / 390 * 100vw), 14px);
    --fontsize15: min(calc(15 / 390 * 100vw), 15px);
    --fontsize16: min(calc(16 / 390 * 100vw), 16px);
    --fontsize17: min(calc(17 / 390 * 100vw), 17px);
    --fontsize18: min(calc(18 / 390 * 100vw), 18px);
    --fontsize19: min(calc(19 / 390 * 100vw), 19px);
    --fontsize20: min(calc(20 / 390 * 100vw), 20px);
    --fontsize21: min(calc(21 / 390 * 100vw), 21px);
    --fontsize22: min(calc(22 / 390 * 100vw), 22px);
    --fontsize23: min(calc(23 / 390 * 100vw), 23px);
    --fontsize24: min(calc(24 / 390 * 100vw), 24px);
    --fontsize25: min(calc(25 / 390 * 100vw), 25px);
    --fontsize26: min(calc(26 / 390 * 100vw), 26px);
    --fontsize27: min(calc(27 / 390 * 100vw), 27px);
    --fontsize28: min(calc(28 / 390 * 100vw), 28px);
    --fontsize29: min(calc(29 / 390 * 100vw), 29px);
    --fontsize30: min(calc(30 / 390 * 100vw), 30px);
    --fontsize31: min(calc(31 / 390 * 100vw), 31px);
    --fontsize32: min(calc(32 / 390 * 100vw), 32px);
    --fontsize34: min(calc(34 / 390 * 100vw), 34px);
    --fontsize35: min(calc(35 / 390 * 100vw), 35px);
    --fontsize36: min(calc(36 / 390 * 100vw), 36px);
    --fontsize38: min(calc(38 / 390 * 100vw), 38px);
    --fontsize40: min(calc(40 / 390 * 100vw), 40px);
    --fontsize41: min(calc(41 / 390 * 100vw), 41px);
    --fontsize42: min(calc(42 / 390 * 100vw), 42px);
    --fontsize43: min(calc(43 / 390 * 100vw), 43px);
    --fontsize44: min(calc(44 / 390 * 100vw), 44px);
    --fontsize45: min(calc(45 / 390 * 100vw), 45px);
    --fontsize46: min(calc(46 / 390 * 100vw), 46px);
    --fontsize48: min(calc(48 / 390 * 100vw), 48px);
    --fontsize50: min(calc(50 / 390 * 100vw), 50px);
    --fontsize52: min(calc(50 / 390 * 100vw), 52px);
    --fontsize55: min(calc(55 / 390 * 100vw), 55px);
    --fontsize56: min(calc(56 / 390 * 100vw), 56px);
    --fontsize65: min(calc(65 / 390 * 100vw), 65px);
    --fontsize70: min(calc(70 / 390 * 100vw), 70px);
  }
}

body {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  color: var(--txt-black);
  overflow-x: hidden;
  font-size: var(--fontsize16);
}

main {
  overflow-x: hidden;
}

.large-inner {
  max-width: 1440px;
  width: 95%;
  margin-inline: auto;
}

.inner {
  max-width: 1240px;
  width: 95%;
  margin-inline: auto;
}

.heading {
  display: flex;
  flex-direction: column;
  margin-bottom: min(60/1440 * 100vw, 60px);
}

.heading__title-jp {
  font-size: var(--fontsize34);
  font-weight: 500;
  /* letter-spacing: 0.3em; */
}

.heading__title-en {
  position: relative;
  display: flex;
  align-items: baseline;
  font-size: var(--fontsize16);
  color: var(--base-orange);
}

.heading__title-en::before {
  content: "";
  display: block;
  width: min(10/1240 * 100vw, 10px);
  height: min(10/1240 * 100vw, 10px);
  border-radius: 50%;
  background: var(--base-orange);
  margin-right: 8px;
}

@media screen and (max-width: 767px) {
  .heading__title-jp {
    font-size: var(--fontsize24);
  }

  .heading__title-en {
    font-size: var(--fontsize12);
  }

  .heading__title-en::before {
    width: min(5/390 * 100vw, 5px);
    height: min(5/390 * 100vw, 5px);
    margin-right: 5px;
  }
}

.sub-heading,
.wp-content h2 {
  position: relative;
  font-size: var(--fontsize32);
  padding-bottom: 15px;
  text-align: center;
  margin-bottom: min(80/1240 * 100vw, 80px);
}

.sub-heading::after,
.wp-content h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50%;
  width: 40px;
  height: 3px;
  background-color: var(--base-orange);
}

@media screen and (max-width: 767px) {
  .sub-heading,
  .wp-content h2 {
    font-size: var(--fontsize24);
    padding-bottom: 5px;
    margin-bottom: min(30/390 * 100vw, 30px);
  }

  .sub-heading::after,
  .wp-content h2::after {
    width: 35px;
    height: 2px;
  }
}

/* --------------------------------------------
header
-----------------------------------------------*/
header {
  background: var(--base-white);
}

.header__wrap {
  padding: min(60/1260 * 100vw, 60px) 0 min(40/1260 * 100vw, 40px);
  display: flex;
  justify-content: space-between;
}

.header__logo {
  width: min(27%, 310px);
}

.header__logo a {
  display: block;
}

.header-nav {
  display: flex;
  align-items: center;
}

.header-nav__list {
  display: flex;
  gap: min(30/1440 * 100vw, 30px);
  margin-right: min(55/1440 * 100vw, 55px);
}

.header-nav__list a {
  position: relative;
  display: flex;
  flex-direction: column;
  font-size: var(--fontsize26);
}

.header-nav__list a::before {
  content: "";
  width: 100%;
  height: 1px;
  background: var(--base-orange);
  position: absolute;
  bottom: -10px;
  left: 0;
  transform-origin: left bottom;
  transform: scaleX(0);
  transition: all 0.3s;
}

.header-nav__list a:hover::before {
  transform: scaleX(1);
  transition: all 0.3s;
}

.header-nav__list a span {
  font-size: var(--fontsize14);
  font-family: "Poppins", sans-serif;
  color: var(--base-orange);
}

.header__contact a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: min(17/1260 * 100vw, 17px) min(35/1260 * 100vw, 35px)
    min(17/1260 * 100vw, 17px) min(75/1260 * 100vw, 75px);
  color: var(--base-white);
  font-size: var(--fontsize26);
  background: var(--base-orange);
  border: 1px solid var(--base-orange);
  border-radius: 50px;
  transition: all 0.3s;
}

.header__contact a:hover {
  background: var(--base-white);
  color: var(--base-orange);
  transition: all 0.3s;
}

.header__contact a::before {
  content: "";
  background: url(../../img/common/header-mail.webp) no-repeat center;
  background-size: min(27/1260 * 100vw, 27px) min(20/1260 * 100vw, 20px);
  width: min(27/1260 * 100vw, 27px);
  height: min(20/1260 * 100vw, 20px);
  position: absolute;
  top: 50%;
  left: min(40/1260 * 100vw, 40px);
  translate: 0 -50%;
  transition: all 0.3s;
}

.header__contact a:hover::before {
  background-image: url(../../img/common/orange-header-mail.webp);
  transition: all 0.3s;
}

.header__hamb {
  display: none;
}

.header__sp-menu {
  display: none;
  position: fixed;
  top: 64px;
  left: 0;
  width: 100vw;
  height: 100dvh;
  background: var(--base-pale-orange);
  z-index: 100;
  padding: 20px 2.5%;
  overflow: auto;
}

.header__sp-menu ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.header__sp-menu a {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--base-orange);
  font-weight: 600;
  font-size: var(--fontsize24);
}

.header__sp-menu a::before {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  margin-right: 10px;
  border-radius: 50%;
  background: var(--base-orange);
}

@media screen and (max-width: 767px) {
  header {
    position: fixed;
    z-index: 100;
    left: 0;
    top: 0;
    width: 100vw;
  }

  .header__wrap {
    padding: 20px 0;
    align-items: center;
  }

  .header__logo {
    width: min(50%, 230px);
  }

  .header-nav {
    display: none;
  }

  .header__hamb {
    position: relative;
    display: block;
    width: 40px;
    height: 20px;
    cursor: pointer;
  }

  .header__hamb span {
    position: absolute;
    background: var(--base-orange);
    width: 80%;
    height: 1px;
  }

  .header__hamb span:nth-child(1) {
    top: 0;
    left: 50%;
    translate: -50%;
  }

  .header__hamb span:nth-child(2) {
    top: 10px;
    left: 50%;
    translate: -50%;
  }

  .header__hamb span:nth-child(3) {
    top: 20px;
    left: 50%;
    translate: -50%;
  }

  .header__hamb.active span:nth-child(1) {
    top: 50%;
    rotate: 45deg;
  }

  .header__hamb.active span:nth-child(2) {
    display: none;
  }

  .header__hamb.active span:nth-child(3) {
    top: 50%;
    rotate: -45deg;
  }

  .header__sp-menu.active {
    display: block;
  }
}

/* --------------------------------------------
footer
-----------------------------------------------*/
.footer {
  background: var(--base-light-orange);
  overflow-x: clip;
  padding-bottom: min(30 / 1240 * 100vw, 30px);
}

/* お問い合わせ
---------------------------------- */
.footer-contact {
  position: relative;
  padding-top: min(60/1440 * 100vw, 60px);
  padding-bottom: min(140/1440 * 100vw, 140px);
}

.footer-contact::before {
  content: "";
  position: absolute;
  bottom: -110px;
  left: 0;
  background: url(../../img/common/footer-decoration.webp) no-repeat center;
  background-size: min(520/1440 * 100vw, 520px) min(491/1440 * 100vw, 491px);
  width: min(520/1440 * 100vw, 520px);
  height: min(491/1440 * 100vw, 491px);
  z-index: 0;
}

/* イラスト */
.footer-contact__illust {
  position: absolute;
  top: calc(-1 * min(120/1440 * 100vw, 120px));
  right: -24px;
  z-index: 5;
  width: min(24%, 313px);
}

.footer-contact__wrap {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  /* gap: min(78/1440 * 100vw, 78px); */
  padding: 35px 0;
}

.footer-contact__img {
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
  z-index: 5;
  width: min(43%, 610px);
}

.footer-contact__text {
  position: relative;
  flex-shrink: 0;
  padding: min(55/1440 * 100vw, 55px) 0px min(60/1440 * 100vw, 60px);
  background: var(--base-white);
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.footer-contact__text-wrap {
  width: 52.4%;
  margin-left: auto;
}

/* タイトル */
.footer-contact__title {
  position: relative;
  font-size: var(--fontsize34-2);
  letter-spacing: 0.3em;
  margin-bottom: min(30/1240 * 100vw, 30px);
}

.footer-contact__title span {
  position: relative;
  font-weight: 500;
  z-index: 5;
}

.footer-contact__title span::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: #fdf2e1;
  z-index: -1;
}

.footer-contact__description {
  font-size: var(--fontsize16);
  margin-bottom: min(35/1440 * 100vw, 35px);
  line-height: 2;
}

.footer-contact__info {
  display: grid;
  grid-template-columns: min(350/1440 * 100vw, 350px) auto;
  border: 2px dotted #dcdcdc;
  border-radius: 15px;
}

.footer-contact__info-wrap {
  text-align: center;
  padding: min(35/1440 * 100vw, 35px) 5px;
}

.footer-contact__info-wrap:first-child {
  border-right: 2px dotted #dcdcdc;
}

/* お電話のお問い合わせ */
.footer-contact__tel-title {
  font-size: var(--fontsize20-2);
  margin-bottom: min(25/1440 * 100vw, 25px);
}

.footer-contact__tel-detail {
  display: block;
  font-size: var(--fontsize38-2);
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  color: var(--base-orange);
  line-height: 1;
  margin-bottom: min(15/1440 * 100vw, 15px);
}

.footer-contact__tel-detail span {
  font-size: var(--fontsize14);
  color: var(--txt-black);
}

.footer-cotact__info-time {
  font-size: var(--fontsize14);
}

/* メールのお問い合わせ */
.footer-contact__info-title {
  position: relative;
  font-size: var(--fontsize20-2);
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: min(25 / 1440 * 100vw, 25px);
}

.footer-contact__info-title::before {
  content: "";
  background: url(../../img/common/contact-icon.png) no-repeat center;
  background-size: 20px 15px;
  width: 20px;
  height: 15px;
  margin-right: 10px;
}

/* ボタン */
.footer-contact__info-link a {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: var(--base-white);
  background: var(--base-orange);
  padding: min(15/1440 * 100vw, 15px) min(18/1440 * 100vw, 18px);
  font-size: var(--fontsize18-2);
  border: 1px solid var(--base-orange);
  border-radius: 50px;
  transition: all 0.3s;
}

.footer-contact__info-link a:hover {
  background: var(--base-white);
  color: var(--base-orange);
  transition: all 0.3s;
}

.footer-contact__info-link a::after {
  content: "";
  flex-shrink: 0;
  width: min(30/1440 * 100vw, 30px);
  height: min(30/1440 * 100vw, 30px);
  background: url(../../img/common/orange-right-arw.png) no-repeat center;
  background-size: min(8/1440 * 100vw, 8px) min(13/1440 * 100vw, 13px);
  background-color: var(--base-white);
  border-radius: 50%;
  margin-left: min(10/1440 * 100vw, 10px);
  transition: all 0.3s;
}

.footer-contact__info-link a:hover:after {
  background: url(../../img/common/white-right-arw.png) no-repeat center;
  background-size: min(8/1440 * 100vw, 8px) min(13/1440 * 100vw, 13px);
  background-color: var(--base-orange);
  transition: all 0.3s;
}

@media screen and (max-width: 767px) {
  .footer-contact__info-wrap {
    padding: min(25/390 * 100vw, 25px) 5px;
  }
}

/* フッター
----------------------------- */
.footer__wrap {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-bottom: min(20/1440 * 100vw, 20px);
  z-index: 5;
  gap: 20px;
}

/* ロゴ */
.footer__logo {
  margin-bottom: min(25/1440 * 100vw, 25px);
}

/* 住所＆電話番号 */
.footer__address {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer__address-txt {
  font-size: var(--fontsize14);
}

.footer__address-txt--large {
  font-size: var(--fontsize16);
  font-weight: 600;
}

/* フッターナビゲーション */
.footer__right {
  display: flex;
  gap: min(55/1440 * 100vw, 55px);
}

.footer__nav {
  flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: min(60/1440 * 100vw, 60px) min(60/1440 * 100vw, 60px);
}

.footer__nav a {
  display: flex;
  align-items: center;
  font-size: var(--fontsize26);
}

.footer__nav a::before {
  content: "";
  width: min(18/1240 * 100vw, 18px);
  height: min(18/1240 * 100vw, 18px);
  background: var(--txt-black);
  border-radius: 50%;
  margin-right: 10px;
}

/* コピーライト */
.footer__copy {
  display: block;
  font-size: var(--fontsize16);
  text-align: center;
}

@media screen and (max-width: 767px) {
  .footer {
    padding-top: min(30/390 * 100vw, 30px);
  }

  .footer-contact {
    padding-top: min(20/390 * 100vw, 20px);
    padding-bottom: min(30/390 * 100vw, 30px);
    background: var(--base-white);
  }

  .footer-contact::before {
    content: none;
  }

  .footer-contact__illust {
    top: calc(-1 * min(180/1440 * 100vw, 180px));
    right: -5px;
  }

  .footer-contact__wrap {
    padding: 0;
    flex-direction: column;
  }

  .footer-contact__img {
    top: initial;
    left: initial;
    translate: initial;
    position: relative;
    width: 100%;
  }

  .footer-contact__img img {
    width: 100%;
  }

  .footer-contact__text {
    padding: min(15/390 * 100vw, 15px) 0px 0;
    width: 100vw;
    margin-left: 0;
  }

  .footer-contact__text-wrap {
    width: 100%;
    margin-left: initial;
  }

  .footer-contact__title {
    font-size: var(--fontsize18);
    margin-bottom: min(15/390 * 100vw, 15px);
  }

  .footer-contact__description {
    font-size: var(--fontsize14);
    margin-bottom: min(15/390 * 100vw, 15px);
  }

  .footer-contact__info {
    grid-template-columns: 1fr;
    border-radius: 5px;
  }

  .footer-contact__info-wrap:first-child {
    border-right: none;
    border-bottom: 2px dotted #dcdcdc;
  }

  .footer-contact__tel-title {
    font-size: var(--fontsize16);
    margin-bottom: min(10/390 * 100vw, 10px);
  }

  .footer-contact__tel-detail {
    font-size: var(--fontsize24);
    margin-bottom: 0;
  }

  .footer-cotact__info-time {
    font-size: var(--fontsize12);
  }

  .footer-contact__info-title {
    font-size: var(--fontsize16);
    margin-bottom: min(5 / 390 * 100vw, 5px);
  }

  .footer-contact__info-link a {
    padding: min(5/390 * 100vw, 5px) min(10/390 * 100vw, 10px);
    font-size: var(--fontsize14);
  }

  .footer-contact__info-link a::after,
  .footer-contact__info-link a:hover::after {
    width: 20px;
    height: 20px;
    background-size: 5px 9px;
    margin-left: 5px;
  }

  .footer__wrap {
    padding-top: 30px;
    flex-direction: column;
    gap: 0;
  }

  .footer__left {
    margin-bottom: min(20/390 * 100vw, 20px);
  }

  .footer__logo {
    margin-bottom: min(15/390 * 100vw, 15px);
    width: min(60%, 310px);
  }

  .footer__address {
    gap: 5px;
  }

  .footer__address-txt {
    font-size: var(--fontsize12);
  }

  .footer__address-txt--large {
    font-size: var(--fontsize14);
  }

  .footer__right {
    flex-direction: column;
    gap: min(15/390 * 100vw, 15px);
  }

  .footer__nav {
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: initial;
  }

  .footer__nav a {
    font-size: var(--fontsize18);
  }

  .footer__nav a::before {
    width: min(5/390 * 100vw, 5px);
    height: min(5/390 * 100vw, 5px);
    margin-right: 5px;
  }

  .footer__link a {
    display: block;
    width: 40%;
    max-width: 260px;
  }
}
