@charset "UTF-8";
@import url(reset.css);
/*============================
  :root管理
============================*/
/* color
------------------------------*/
:root {
  --main-color: #3e3a39;
  --red-color: #e53935;
  --blue-color: #2b96ea;
  --green-color: #06c755;
  --gray-color: #c7c7c7;
  --gray-color-light: #e4e4e4;
  --gold-color: #beaf87;
  --pink-color: #ed5f92;
  --beige-color: #F5F4E4;
}

/* font
------------------------------*/
:root {
  --font-family-kaku: "Zen Kaku Gothic New", sans-serif;
  --font-family-icon: "bootstrap-icons";
  --font-size-xxxl: 4rem;
  --font-size-xxl: 3rem;
  --font-size-xl: 2.4rem;
  --font-size-lg: 1.8rem;
  --font-size-base: 1.6rem;
  --font-size-sm: 1.5rem;
  --font-size-xs: 1.2rem;
  --line-height-title: 1.4;
  --line-height-lg: 1.8;
  --line-height-base: 1.6;
  --line-height-sm: 1.4;
  --letter-spacing-base: 0.05em;
}

@media screen and (max-width: 767px) {
  :root {
    --font-size-xxxl: 1.875em;
    --font-size-xxl: 1.5em;
    --font-size-xl: 1.25em;
    --font-size-lg: 1.125em;
    --font-size-base: 1em;
    --font-size-sm: 0.875em;
    --font-size-xs: 0.75em;
    --line-height-title: 1.5;
  }
}
/*============================
  全体共通
============================*/
/* reCAPTCHAバッジを非表示にする
------------------------------*/
.grecaptcha-badge {
  visibility: hidden;
}

/* PC/SP振り分け用
------------------------------*/
@media screen and (min-width: 768px) {
  .pc-none {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .sp-none {
    display: none !important;
  }
}
/* wrapper
------------------------------*/
#wrapper {
  width: 100%;
  min-width: 1200px;
  margin-inline: auto;
  position: relative;
  z-index: 0;
}
@media screen and (max-width: 767px) {
  #wrapper {
    min-width: 100%;
  }
}

/* ===============================================
 Typography
=============================================== */
body {
  font-family: var(--font-family-kaku);
  font-size: var(--font-size-base);
  font-weight: 500;
  color: var(--main-color);
  background: #fff;
}
@media screen and (max-width: 767px) {
  body {
    font-size: clamp(1.3rem, 3.5555555556vw, 1.6rem);
  }
}

/* ===============================================
 ヘッダー
=============================================== */
.header {
  width: 100%;
  background: #fff;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 99;
}
.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: clamp(100px, 6.25vw, 120px);
  padding: 17px 30px 18px;
}
.header__logo {
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0;
}
.header__logo img {
  aspect-ratio: 260/56;
}
.header__right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  font-size: clamp(1.3rem, 0.8333333333vw, 1.6rem);
  -moz-column-gap: 20px;
       column-gap: 20px;
}
.header__btn {
  width: clamp(200px, 13.8020833333vw, 265px);
  height: clamp(65px, 4.4270833333vw, 85px);
}
.header__btn > span {
  font-size: 1.625em;
}
.header__btn > span.min {
  font-size: 0.875em;
}
@media screen and (max-width: 767px) {
  .header__inner {
    min-height: inherit;
    padding: 1.125em 1em;
  }
  .header__logo {
    width: clamp(130px, 43.3333333333vw, 195px);
  }
  .header__right {
    display: flex;
    align-items: center;
    width: 100%;
    font-size: 1em;
    position: fixed;
    bottom: 0;
    left: 0;
    background: #fff;
    box-shadow: 0 0 0 2px var(--gold-color);
    padding: 1em 0.75em 0.75em;
    z-index: 99;
  }
  .header__tel {
    grid-column: span 2;
    margin: 0 auto;
  }
  .header__btn {
    width: 100%;
    height: clamp(50px, 13.3333333333vw, 60px);
  }
  .header__btn > span {
    font-size: var(--font-size-lg);
  }
  .header__btn > span.min {
    font-size: 0.625em;
  }
}

/* ===============================================
 フッター
=============================================== */
.footer__copyright {
  text-align: center;
  font-size: var(--font-size-xs);
  font-weight: 700;
  color: #fff;
  line-height: 2;
  background: var(--gold-color);
  padding: 6px 0 5px;
}
@media screen and (max-width: 767px) {
  .footer {
    padding-bottom: clamp(112px, 30.2222222222vw, 136px);
  }
}

/*============================
  Visual styles
============================*/
.visual {
  background: url(../../assets/images/visual/bg.jpg) no-repeat center/cover;
  overflow: hidden;
}

/* メインビジュアル
------------------------------*/
.visual__main {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  height: clamp(520px, 40.625vw, 780px);
  position: relative;
}
.visual__main::before {
  content: "";
  width: 73.855%;
  max-width: 1418px;
  height: 94.103%;
  background: url(../../assets/images/visual/character-left.png) no-repeat left bottom/contain;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  z-index: 1;
}
.visual__main::after {
  content: "";
  width: 84.896%;
  max-width: 1630px;
  height: 95.513%;
  background: url(../../assets/images/visual/character-right.png) no-repeat right bottom/contain;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  z-index: 1;
}
.visual__main .visual__main-box {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 93.975%;
  padding-top: 5px;
  position: relative;
}
.visual__main .visual__main-box::before {
  content: "";
  width: clamp(650px, 50.8333333333vw, 976px);
  aspect-ratio: 1;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  z-index: 0;
  opacity: 0.85;
}
.visual__main .visual__main-box > * {
  position: relative;
  z-index: 3;
}
.visual__main .visual__main-catch {
  font-size: 1rem;
  letter-spacing: 0;
  line-height: 1;
  margin-bottom: clamp(18px, 1.40625vw, 27px);
}
.visual__main .visual__main-catch img {
  height: clamp(222px, 17.2916666667vw, 332px);
}
.visual__main .visual__main-list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: clamp(6px, 0.5208333333vw, 10px);
  margin-bottom: clamp(40px, 3.125vw, 60px);
}
.visual__main .visual__main-list li {
  font-size: clamp(2rem, 1.5625vw, 3rem);
  color: #fff;
  line-height: 1;
  letter-spacing: var(--letter-spacing-base);
  background: var(--gold-color);
  border-radius: 5px;
  padding: clamp(10px, 0.78125vw, 15px) clamp(15px, 1.0416666667vw, 20px);
  box-shadow: 0 0 0 1px #fff;
  text-align: center;
}
.visual__main .visual__main-btn {
  text-align: center;
  aspect-ratio: 52/12;
  height: clamp(80px, 6.25vw, 120px);
  font-size: clamp(1.2rem, 0.8333333333vw, 1.6rem);
  row-gap: clamp(10px, 0.7291666667vw, 14px);
  /* box-shadow: 0 clamp(7px, 0.5208333333vw, 10px) 0 #c04e77; */
  background: var(--green-color);
  box-shadow: 0 5px 0 #008d3a;
}
.visual__main .visual__main-btn:hover {
  transform: translateY(clamp(7px, 0.5208333333vw, 10px));
}
.visual__main .visual__main-btn:hover::before, .visual__main .visual__main-btn:hover::after {
  transform: translateY(clamp(-10px, -0.5208333333vw, -7px));
}
/* .visual__main .visual__main-btn::before {
  content: "";
  height: 189.167%;
  aspect-ratio: 1;
  background: url(../../assets/images/visual/character-shinchan.png) no-repeat left bottom/contain;
  position: absolute;
  left: -15.385%;
  bottom: -46.6667%;
  z-index: -1;
  pointer-events: none;
  transition: all 0.3s ease-out;
} */
/* .visual__main .visual__main-btn::after {
  content: "";
  height: 180.8334%;
  aspect-ratio: 296/217;
  background: url(../../assets/images/visual/character-shiro.png) no-repeat right bottom/contain;
  position: absolute;
  right: -12.308%;
  bottom: -36.6667%;
  z-index: -1;
  pointer-events: none;
  transition: all 0.3s ease-out;
} */
.visual__main .visual__main-btn .label {
  font-size: clamp(15px, 1.04vw, 20px);
  line-height: 1.38462;
  color: #008d3a;
  background-color: #fff;
  padding: 0 10px;
  border-radius: 100vh;
}
.visual__main .visual__main-btn .main {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2em;
  line-height: 1;
  letter-spacing: var(--letter-spacing-base);
}
.visual__main .visual__main-btn .main::after {
  content: "";
  width: clamp(6px, 0.46875vw, 9px);
  aspect-ratio: 9/15;
  background: url(../../assets/images/common/arrow.svg) no-repeat center/contain;
  margin-left: 8px;
}
.visual__main .visual__main-btn .main span{
  font-size: clamp(16px, 1.25vw, 24px);
  margin-left: 5px;
}
@media screen and (max-width: 767px) {
  .visual__main {
    height: min(480px, 155vw - clamp(172px, 48vw, 216px));
  }
  .visual__main::before {
    width: 135%;
    max-width: 729px;
    height: 80%;
  }
  .visual__main::after {
    width: 150%;
    max-width: 810px;
    height: 78%;
  }
  .visual__main .visual__main-box {
    height: auto;
    padding: clamp(48px, 15.1111111111vw, 68px) 0 clamp(32px, 10vw, 45px);
  }
  .visual__main .visual__main-box::before {
    width: auto;
    height: 136%;
  }
  .visual__main .visual__main-catch {
    margin-bottom: clamp(12px, 4vw, 18px);
  }
  .visual__main .visual__main-catch img {
    height: clamp(96px, 30vw, 135px);
  }
  .visual__main .visual__main-list {
    padding: 0 15%;
    margin-bottom: 1.5em;
  }
  .visual__main .visual__main-list li {
    font-size: var(--font-size-sm);
    padding: 0.5em;
  }
  .visual__main .visual__main-btn {
    width: clamp(215px, 66.6666666667vw, 300px);
    height: clamp(60px, 17.7777777778vw, 80px);
    font-size: 1em;
  }
  .visual__main .visual__main-btn::before {
    height: 8em;
    left: -4.5em;
  }
  .visual__main .visual__main-btn::after {
    height: 8em;
    right: -3em;
  }
  .visual__main .visual__main-btn .label {
    font-size: var(--font-size-sm);
  }
  .visual__main .visual__main-btn .main {
    font-size: var(--font-size-xl);
    padding-right: 0.5em;
  }
  .visual__main .visual__main-btn .main span {
    font-size: 15px;
    margin-left: 5px;
  }
}

/* サブビジュアル
------------------------------*/
.visual__sub {
  display: flex;
  justify-content: center;
  align-items: center;
  height: clamp(260px, 20.3125vw, 390px);
}
.visual__sub .visual__sub-catch {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 93.975%;
  font-size: 1em;
  letter-spacing: 0;
  line-height: 1;
  position: relative;
}
.visual__sub .visual__sub-catch::before {
  content: "";
  width: clamp(650px, 50.8333333333vw, 976px);
  aspect-ratio: 1;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  opacity: 0.85;
}
.visual__sub .visual__sub-catch > span {
  font-size: clamp(4.8rem, 3.6458333333vw, 7rem);
  -webkit-text-stroke: #fff clamp(10px, 0.78125vw, 15px);
  paint-order: stroke;
  filter: drop-shadow(0 4px 4px rgba(51, 51, 51, 0.25));
  position: relative;
  z-index: 3;
}
@media screen and (max-width: 767px) {
  .visual__sub {
    align-items: center;
    height: min(350px, 125vw - clamp(172px, 48vw, 216px));
  }
  .visual__sub .visual__sub-catch {
    height: auto;
    padding: 2.5em 0;
  }
  .visual__sub .visual__sub-catch::before {
    width: 100vw;
    height: 100%;
    border-radius: 0;
  }
  .visual__sub .visual__sub-catch > span {
    text-align: center;
    font-size: min(3.6rem, 8vw);
    -webkit-text-stroke-width: 0.2em;
    word-break: keep-all;
  }
}

/*===============================================
  main#container
===============================================*/
#container {
  line-height: var(--line-height-base);
  letter-spacing: 0;
  overflow: hidden;
  position: relative;
}
#container > section {
  position: relative;
}

/*============================
  main共通
============================*/
.section {
  padding: 100px 0;
}
.section:nth-of-type(2n):not(.contact) {
  background: var(--beige-color);
}
@media screen and (max-width: 767px) {
  .section {
    padding: clamp(56px, 16vw, 72px) 0;
  }
}

.inner {
  width: 1080px;
  margin-inline: auto;
  position: relative;
  z-index: 5;
}
@media screen and (max-width: 767px) {
  .inner {
    width: 90%;
  }
}

/* 電話番号
------------------------------*/
.tel {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  flex-direction: column;
  width: -moz-fit-content;
  width: fit-content;
  line-height: 1;
}
.tel-num {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2.375em;
  font-weight: 900;
  letter-spacing: 0.1em;
}
.tel-num::before {
  content: "";
  display: block;
  width: calc(1em - 2px);
  aspect-ratio: 1;
  background: url(../../assets/images/common/icon_tel.png) no-repeat center/contain;
  margin-right: 8px;
}
.tel-num > span {
  display: block;
  margin-top: -0.15em;
}
.tel:has(.tel-txt) .tel-num {
  font-size: 3em;
}
.tel:has(.tel-txt) .tel-num::before {
  width: 0.875em;
}
.tel:has(.tel-txt) .tel-time {
  margin-top: 4px;
}
.tel-time {
  font-size: var(--font-size-sm);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-base);
}
.tel-txt {
  width: 100%;
  text-align: center;
  font-size: 1.1875em;
  line-height: 1;
  font-weight: 700;
  color: #fff;
  background: var(--main-color);
  border-radius: 100vh;
  padding: 10px;
  margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
  .tel-num {
    font-size: var(--font-size-xxxl);
  }
  .tel-num::before {
    width: 0.8em;
  }
  .tel-num span {
    margin: -0.2em 0 -0.05em;
  }
  .tel-time {
    font-size: var(--font-size-xs);
  }
  .tel-txt {
    font-size: var(--font-size-base);
    padding: 0.75em 0.5em;
  }
  .tel:has(.tel-txt) .tel-num {
    font-size: 2.5em;
  }
  .tel:has(.tel-txt) .tel-time {
    margin-top: 4px;
  }
}

/* ボタン
------------------------------*/
.btn {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  font-weight: 700;
  color: #fff;
  line-height: 1.5;
  transition: all 0.3s ease-out;
  background: var(--pink-color);
  box-shadow: 0 5px 0 #c04e77;
  border-radius: 5px;
  position: relative;
  z-index: 2;
}
.btn span {
  display: block;
}
.btn:hover {
  transform: translateY(5px);
  box-shadow: none !important;
}
.btn--line {
  background: var(--green-color);
  box-shadow: 0 5px 0 #008d3a;
}

/* テーブル
------------------------------*/
.table table {
  width: 100%;
}
.table tr {
  border-bottom: solid 1px var(--gray-color);
}
.table tr th {
  text-align: left;
  vertical-align: top;
  width: 310px;
  font-size: var(--font-size-lg);
  line-height: 1.33334;
  padding: 20px 30px;
}
.table tr td {
  text-align: left;
  line-height: 1.5;
  padding: 20px 30px 20px 0;
}
.table tr:first-child th,
.table tr:first-child td {
  padding-top: 0;
}
@media screen and (max-width: 767px) {
  .table tr th {
    width: 7em;
    padding: 1.5em 0;
  }
  .table tr td {
    padding: 1.5em 0;
  }
}

/*フォーム部品
-----------------------------*/
.form table {
  width: 100%;
}
.form th {
  text-align: left;
  vertical-align: top;
  font-weight: 700;
  width: 310px;
  font-size: var(--font-size-lg);
  line-height: 1.33334;
  padding: 18px 40px 18px 0;
}
.form th .min {
  font-size: var(--font-size-sm);
  line-height: 1;
}
.form th span:not(.min) {
  display: inline-block;
  width: 3.25em;
  font-size: var(--font-size-base);
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0;
  float: right;
}
.form th span:not(.min).required {
  color: #fff;
  background: var(--red-color);
}
.form th span:not(.min).optional {
  background: var(--gray-color);
}
.form td {
  font-weight: var(--font-bold);
  padding: 13px 0 12px;
}
.form td label {
  margin-right: 1.25em;
}
.form td label:last-of-type {
  margin-right: 0;
}
.form tr:first-child th {
  padding-top: 5px;
}
.form tr:first-child td {
  padding-top: 0;
}
.form tr:last-child th,
.form tr:last-child td {
  padding-bottom: 0;
}
.form--table tr {
  border-bottom: solid 1px var(--gray-color);
}
.form--table tr th {
  padding: 20px 40px 20px 0 !important;
}
.form--table tr td {
  line-height: 1.5;
  padding: 20px 0 !important;
}
.form select,
.form textarea,
.form input[type=tel],
.form input[type=text],
.form input[type=email] {
  width: 100%;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.14286;
  letter-spacing: 0;
  border: 1px solid var(--gray-color);
  border-radius: 0;
  box-shadow: 0 1px 1px rgba(150, 150, 150, 0.1) inset;
  box-sizing: border-box;
  padding: 8px 10px;
}
.form input[name=your-age] {
  width: 6em;
  font-size: 1.4rem;
  line-height: 1.14286;
  padding: 8px 10px;
}
.form textarea {
  width: 100%;
}
.form-submit__wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  padding-top: 40px;
}
.form-submit__btn {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  transition: all 0.4s ease-out;
  position: relative;
}
.form-submit__btn::after {
  content: "";
  display: block;
  width: 9px;
  aspect-ratio: 9/15;
  background: url(../../assets/images/common/arrow.svg) no-repeat center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: calc(50% + 6em - 4px);
  z-index: 1;
  pointer-events: none;
}
.form-submit__btn:hover {
  transform: translateY(5px);
}
.form-submit__btn:hover button,
.form-submit__btn:hover input[type=submit],
.form-submit__btn:hover input[type=button] {
  box-shadow: none;
}
.form-submit__btn button,
.form-submit__btn input[type=submit],
.form-submit__btn input[type=button] {
  padding-right: 1em;
}
.form button,
.form input[type=submit],
.form input[type=button] {
  display: block;
  width: 265px;
  height: 85px;
  text-align: center;
  font-size: 1.25em;
  font-weight: 700;
  color: #fff;
  letter-spacing: var(--letter-spacing-base);
  background: var(--pink-color);
  border: none;
  border-radius: 5px;
  box-shadow: 0 5px #c04e77;
  -webkit-appearance: none;
  transition: all 0.4s ease-out;
  cursor: pointer;
}
.form-text {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 80px 0 30px;
}
.form-text p:first-child {
  margin-top: -0.25em;
}
.form-text p:last-child {
  margin-bottom: -0.25em;
}
.form-text a {
  color: var(--blue-color);
  text-decoration: underline;
}
.form-text a:hover {
  color: var(--main-color);
}
.form .wpcf7-spinner {
  white-space: nowrap;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 100%;
}
@media screen and (max-width: 767px) {
  .form table,
  .form table tbody,
  .form table tr,
  .form table th,
  .form table td {
    display: block;
    width: 100%;
  }
  .form tr {
    margin-bottom: 2em;
  }
  .form tr:last-of-type {
    margin-bottom: 0;
  }
  .form tr th {
    padding: 0;
    margin-bottom: 1em;
  }
  .form tr th .min {
    font-size: 0.8333334em;
  }
  .form tr th span:not(.min) {
    display: inline-block;
    font-size: 0.8em;
    line-height: 2;
    padding: 0;
  }
  .form tr td {
    padding: 0;
  }
  .form select,
  .form textarea,
  .form input[type=tel],
  .form input[type=text],
  .form input[type=email],
  .form input[type=url] {
    width: 100%;
    font-size: 1em;
    line-height: 1.6;
    padding: 5px;
  }
  .form textarea {
    width: 100%;
  }
  .form-submit__wrap {
    margin-top: 2.5em;
    gap: 1em;
  }
  .form-submit__btn::after {
    width: clamp(6px, 2vw, 9px);
    left: calc(50% + 6em - clamp(3px, 0.8888888889vw, 4px));
  }
  .form button,
  .form input[type=submit],
  .form input[type=button] {
    width: min(360px, 75vw);
    max-width: 100%;
    height: clamp(60px, 18.75vw, 75px);
    font-size: var(--font-size-lg);
    letter-spacing: 0.05em;
  }
  .form-text {
    padding: 3em 0 2em;
  }
}

/*テキスト
-----------------------------*/
.text .mb {
  margin-bottom: 2em;
}
@media screen and (max-width: 767px) {
  .text .mb {
    margin-bottom: 1em;
  }
  .text br {
    display: none;
  }
}

/*===============================================
  タイトル
===============================================*/
/*大タイトル
-----------------------------*/
.title01 {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: -moz-fit-content;
  width: fit-content;
  text-align: center;
  font-size: 1em;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  row-gap: 20px;
  margin: 0 auto 50px;
  position: relative;
  z-index: 3;
}
.title01 > span {
  display: block;
  position: relative;
  z-index: 0;
}
.title01 .sub {
  font-size: var(--font-size-xl);
  color: #fff;
  background: var(--gold-color);
  padding: 15px 20px;
  border-radius: 5px;
}
.title01 .main {
  font-size: var(--font-size-xxxl);
  line-height: var(--line-height-title);
}
.title01 .main .b {
  font-size: 4.8rem;
}
.title01 .main--mid {
  font-size: 4.4rem;
}
.title01 .c-pink {
  color: var(--pink-color);
}
.title01 .c-blue {
  color: var(--blue-color);
}
.title01 .mark {
  background: linear-gradient(to top, rgba(237, 95, 146, 0.3) 0.4375em, transparent 0.4375em);
}
@media screen and (max-width: 767px) {
  .title01 {
    row-gap: 1em;
    margin-bottom: 2.5em;
  }
  .title01 .sub {
    font-size: var(--font-size-lg);
    padding: 0.5em;
  }
  .title01 .main {
    font-size: var(--font-size-xxl);
  }
  .title01 .main .b {
    font-size: 1.25em;
    line-height: 1;
  }
  .title01 .main--mid {
    font-size: 1.5625em;
  }
  .title01 .main--mid .b {
    font-size: 1.2em;
  }
}

/*中タイトル
-----------------------------*/
.title02 {
  font-size: var(--font-size-xxl);
  font-weight: 700;
  color: var(--gold-color);
  line-height: var(--line-height-title);
  letter-spacing: var(--letter-spacing-base);
  border-bottom: solid 1px var(--gold-color);
  padding-bottom: 13px;
  margin-bottom: 25px;
}
@media screen and (max-width: 767px) {
  .title02 {
    padding-bottom: 0.5em;
    margin-bottom: 1em;
  }
}

/* ===============================================
 株式会社ディライトワークスについて
=============================================== */
.about__title .sub::after {
  content: "";
  width: 11.25em;
  aspect-ratio: 270/147;
  background: url(../../assets/images/about/character-shinchan.png) no-repeat right bottom/contain;
  position: absolute;
  right: -3.875em;
  bottom: -1em;
  z-index: -1;
}
.about__text {
  font-size: var(--font-size-lg);
  font-weight: 700;
  line-height: var(--line-height-lg);
}
.about__text .mb {
  margin-bottom: calc(var(--line-height-lg) * 1em);
}
.about__image {
  position: relative;
  z-index: 0;
}
.about__image::after {
  content: "";
  width: 385px;
  aspect-ratio: 1;
  background: url(../../assets/images/about/character-family.png) no-repeat right bottom/contain;
  position: absolute;
  right: -78px;
  bottom: -115px;
  z-index: 1;
}
.about__image img {
  border-radius: 5px;
}
@media screen and (min-width: 768px) {
  .about__inner {
    min-height: 606px;
    padding-top: 16px;
    padding-left: 525px;
  }
  .about__title {
    align-items: flex-start;
    text-align: left;
    row-gap: 12px;
    margin-left: 0;
    margin-bottom: 34px;
  }
  .about__image {
    position: absolute;
    top: 0;
    left: -100px;
  }
  .about__image img {
    width: 534px;
    height: 550px;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
@media screen and (max-width: 767px) {
  .about__title {
    row-gap: 0.875em;
    margin-bottom: 1.5em;
  }
  .about__title .sub::after {
    width: 10em;
    right: -3.5em;
  }
  .about__title .main {
    font-size: 2em;
  }
  .about__title .main .b {
    font-size: 1.4;
  }
  .about__title .main .c-pink {
    margin-right: -0.25em;
  }
}
@media screen and (max-width: 767px) and (max-width: 450px) {
  .about__title {
    align-items: flex-start;
    text-align: left;
    margin-left: 0;
  }
}
@media screen and (max-width: 767px) {
  .about__text br {
    display: none;
  }
  .about__image {
    margin-top: 2.5em;
  }
  .about__image img {
    width: 100%;
    aspect-ratio: 1.7777777778;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .about__image::after {
    width: 50%;
    right: -3vw;
    bottom: 0;
    margin-bottom: -10%;
  }
}

/* ===============================================
 取り扱い物件
=============================================== */
.property__list {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 40px 20px;
}
.property__item {
  text-align: center;
  width: 200px;
}
.property__icon {
  margin-bottom: 20px;
}
.property__txt {
  font-size: var(--font-size-xl);
  font-weight: bold;
  line-height: 1;
}
.property__box {
  width: 720px;
  background: var(--pink-color);
  padding: 32px 270px 32px 32px;
  margin: 130px auto 0;
  outline: solid 2px #fff;
  outline-offset: -11px;
  position: relative;
  z-index: 0;
}
.property__box::after {
  content: "";
  width: 419px;
  aspect-ratio: 419/320;
  background: url(../../assets/images/property/character-img.png) no-repeat right bottom/contain;
  position: absolute;
  right: -105px;
  bottom: 0;
  z-index: 1;
}
.property__box p {
  font-size: var(--font-size-xxxl);
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
  letter-spacing: var(--letter-spacing-base);
  word-break: keep-all;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.4);
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .property__title .main {
    word-break: keep-all;
  }
  .property__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(7.5em, 1fr));
    gap: 1.5em 1em;
  }
  .property__item {
    width: auto;
  }
  .property__icon {
    margin-bottom: 0.5em;
  }
  .property__icon img {
    width: 7.5em;
  }
  .property__txt {
    font-size: var(--font-size-base);
  }
  .property__box {
    width: 100%;
    max-width: 405px;
    padding: 1.5em 3em 1.5em 1.5em;
    margin-top: 4em;
    outline-offset: -6px;
  }
  .property__box p {
    font-size: var(--font-size-xxl);
    line-height: 1.5;
  }
  .property__box::after {
    width: 18em;
    right: -5.5em;
  }
}

/* ===============================================
 当社買取の5つのメリット
=============================================== */
.merit__title::before {
  content: "";
  width: 305px;
  aspect-ratio: 305/211;
  background: url(../../assets/images/merit/character-shinchan.png) no-repeat left bottom/contain;
  position: absolute;
  left: -195px;
  bottom: -30px;
  z-index: -1;
}
.merit__title::after {
  content: "";
  width: 233px;
  aspect-ratio: 1;
  background: url(../../assets/images/merit/character-shiro.png) no-repeat right bottom/contain;
  position: absolute;
  right: -178px;
  bottom: -18px;
  z-index: -1;
}
.merit__list {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
  counter-reset: num 0;
  gap: 30px;
}
.merit__item {
  width: 340px;
  min-height: 445px;
  background: var(--beige-color);
  padding: 20px;
}
.merit__image {
  margin-bottom: 15px;
}
.merit__heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 700;
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: solid 1px var(--gold-color);
}
.merit__heading::before {
  counter-increment: num 1;
  content: counter(num, decimal-leading-zero);
  color: var(--gold-color);
  font-size: var(--font-size-xxxl);
  font-weight: 900;
  line-height: 1.3;
}
.merit__heading > span {
  display: block;
  width: calc(100% - 56px);
  font-size: 1.375em;
  line-height: 1.5;
  word-break: keep-all;
}
@media screen and (max-width: 767px) and (max-width: 520px) {
  .merit__title {
    padding-top: 2em;
  }
}
@media screen and (max-width: 767px) {
  .merit__title::before {
    width: 12em;
    bottom: inherit;
    left: -7em;
    top: 1.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 520px) {
  .merit__title::before {
    left: -4em;
    top: -2em;
  }
}
@media screen and (max-width: 767px) {
  .merit__title::after {
    width: 9.5em;
    bottom: inherit;
    right: -6.5em;
    top: 1.25em;
  }
}
@media screen and (max-width: 767px) and (max-width: 520px) {
  .merit__title::after {
    right: -3.8em;
    top: -2.5em;
  }
}
@media screen and (max-width: 767px) {
  .merit__title .main {
    -webkit-text-stroke: #fff 0.2em;
    paint-order: stroke;
  }
  .merit__list {
    display: block;
  }
  .merit__item {
    width: 100%;
    min-height: inherit;
    padding: 1.25em;
    margin-bottom: 2em;
  }
  .merit__item:last-of-type {
    margin-bottom: 0;
  }
  .merit__image {
    margin-bottom: 0.5em;
  }
  .merit__image img {
    width: 100%;
    aspect-ratio: 1.7777777778;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .merit__heading {
    padding-bottom: 0.5em;
    margin-bottom: 1em;
  }
  .merit__heading > span {
    width: calc(100% - 2em);
    font-size: var(--font-size-xl);
  }
}

/* ===============================================
 買取と仲介の違い
=============================================== */
.defference__box {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: 80px;
       column-gap: 80px;
  margin-bottom: 69px;
}
.defference__box:last-of-type {
  margin-bottom: 0;
}
.defference__box-title {
  text-align: center;
  font-size: var(--font-size-xxl);
  font-weight: 700;
  line-height: 2;
  color: #fff;
  background: var(--main-color);
  border-radius: 100vh;
  grid-column: span 2;
  margin-bottom: 23px;
}
.defference__heading {
  text-align: center;
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 1;
  background: #fff;
  padding: 15px 20px;
  border-radius: 5px;
  box-shadow: 0 0 0 1px rgba(190, 175, 135, 0.5) inset;
  margin-bottom: 10px;
}
.defference__image {
  text-align: center;
  font-size: 1em;
  letter-spacing: 0;
  line-height: 1;
}
.defference__list {
  counter-reset: num 0;
  letter-spacing: var(--letter-spacing-base);
  padding-top: 10px;
}
.defference__list dt {
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  background: var(--gold-color);
  padding: 6px 10px;
  border-radius: 5px;
  margin-bottom: 10px;
}
.defference__list dd {
  font-size: var(--font-size-lg);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-base);
  padding-left: calc(1em + var(--letter-spacing-base));
  position: relative;
}
.defference__list dd::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}
.defference__list li {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-weight: 700;
  color: #fff;
  padding: 1.375em 2.75em 1.375em 9.625em;
  background: var(--gold-color);
  border-radius: 5px;
  margin-bottom: 3.3125em;
  position: relative;
}
.defference__list li::after {
  content: "";
  height: 1.4375em;
  aspect-ratio: 65/23;
  background: var(--gold-color);
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
          clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(100% + 0.9375em);
}
.defference__list li:last-of-type {
  margin-bottom: 0;
}
.defference__list li:last-of-type::after {
  display: none;
}
.defference__list li::before {
  counter-increment: num 1;
  content: counter(num, decimal-leading-zero) ".";
  display: block;
  width: 1.5em;
  font-size: var(--font-size-xxl);
  line-height: 1;
  margin-top: -0.15em;
}
.defference__list li p {
  max-width: calc(100% - 2.25em);
  font-size: 1.25em;
  line-height: 1.5;
}
.defference__icon {
  width: 96px;
  line-height: 1;
  letter-spacing: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 37px;
}
.defference__icon img {
  aspect-ratio: 1;
}
.defference__text {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 720px;
  min-height: 220px;
  background: var(--blue-color);
  padding: 32px 270px 32px 60px;
  margin: 114px auto 0;
  outline: solid 2px #fff;
  outline-offset: -11px;
  position: relative;
  z-index: 0;
}
.defference__text::after {
  content: "";
  width: 267px;
  aspect-ratio: 267/298;
  background: url(../../assets/images/defference/character-img.png) no-repeat right bottom/contain;
  position: absolute;
  right: -9px;
  bottom: 0;
  z-index: 1;
}
.defference__text p {
  font-size: var(--font-size-xxxl);
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
  letter-spacing: var(--letter-spacing-base);
  word-break: keep-all;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.4);
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .defference__title .main {
    word-break: keep-all;
  }
  .defference__box {
    display: block;
    margin-bottom: 4.5em;
  }
  .defference__box-title {
    margin-bottom: 0.75em;
  }
  .defference__item {
    margin-bottom: 3em;
  }
  .defference__item:last-of-type {
    margin-bottom: 0;
  }
  .defference__heading {
    padding: 0.75em 0.5em;
    margin-bottom: 0.5em;
  }
  .defference__image img {
    width: 100%;
    max-width: 360px;
    aspect-ratio: 2/1;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .defference__list {
    padding-top: 0.5em;
  }
  .defference__list dt {
    font-size: var(--font-size-lg);
    padding: 0.5em 1em;
    margin-bottom: 0.5em;
  }
  .defference__list li {
    padding: 1em 1em 1em 6.5em;
  }
  .defference__icon {
    width: 4.8em;
    left: 1em;
  }
  .defference__text {
    width: 100%;
    max-width: 405px;
    min-height: 10em;
    padding: 1.5em 3em 1.5em 1.5em;
    margin-top: 4em;
    outline-offset: -6px;
  }
  .defference__text p {
    font-size: var(--font-size-xxl);
    line-height: 1.5;
  }
  .defference__text::after {
    width: 12em;
    right: -3em;
  }
}

/* ===============================================
 ディライトワークスが選ばれる理由
=============================================== */
.reason__title::after {
  content: "";
  width: 320px;
  aspect-ratio: 320/196;
  background: url(../../assets/images/reason/character-shinchan.png) no-repeat right bottom/contain;
  position: absolute;
  right: -157px;
  bottom: -31px;
  z-index: -1;
}
.reason__box {
  position: relative;
  margin-bottom: 64px;
}
.reason__box:last-of-type {
  margin-bottom: 0;
}
.reason__body p {
  margin-bottom: calc(var(--line-height-base) * 1em);
}
.reason__body p:last-child {
  margin-bottom: 0;
}
.reason__image img {
  border-radius: 5px;
}
@media screen and (min-width: 768px) {
  .reason__box {
    min-height: 336px;
    padding-right: 568px;
  }
  .reason__image {
    width: 520px;
    position: absolute;
    top: 0;
    right: 0;
  }
}
@media screen and (max-width: 767px) {
  .reason__title::after {
    width: 12em;
    right: -3.5em;
    bottom: -1.5em;
  }
  .reason__box {
    margin-bottom: 3em;
  }
  .reason__heading br {
    display: none;
  }
  .reason__body p {
    margin-bottom: 1.25em;
  }
  .reason__body br {
    display: none;
  }
  .reason__image {
    margin-top: 1em;
  }
  .reason__image img {
    width: 100%;
    aspect-ratio: 1.7777777778;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

/* ===============================================
 買取実績
=============================================== */
.achievement__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
.achievement__item {
  font-weight: 700;
  line-height: 1;
  letter-spacing: var(--letter-spacing-base);
  background: #fff;
  border-radius: 5px 5px 0 0;
  overflow: hidden;
}
.achievement__image img {
  width: 100%;
  aspect-ratio: 1.7333333333;
  -o-object-fit: cover;
     object-fit: cover;
}
.achievement__inner {
  padding: 20px;
}
.achievement__inner > * {
  margin-bottom: 15px;
}
.achievement__inner > *:has(+ .achievement__price) {
  margin-bottom: 10px;
}
.achievement__inner > *:last-child {
  margin-bottom: 0;
}
.achievement__tags {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 10px;
}
.achievement__tag {
  line-height: 1.75;
  color: #fff;
  background: var(--gold-color);
  border-radius: 5px;
  padding: 0 6px;
}
.achievement__tag::before {
  content: "＃";
}
.achievement__heading {
  color: var(--main-color);
  padding-bottom: 15px;
}
.achievement__heading > span {
  display: block;
  margin-block: calc((1em - 1lh) / 2);
}
.achievement__add {
  font-size: var(--font-size-lg);
}
.achievement__date {
  display: block;
  font-size: var(--font-size-sm);
}
.achievement__price {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
.achievement__price > span {
  display: block;
}
.achievement__price .label {
  font-size: 1.125em;
  margin-right: 1em;
}
.achievement__price .fee {
  font-size: 2.25em;
  color: var(--pink-color);
  font-weight: 900;
}
.achievement__price .fee .b {
  font-size: calc(1em + 10px);
}
@media screen and (max-width: 767px) {
  .achievement__title .main {
    word-break: keep-all;
  }
  .achievement__list {
    grid-template-columns: repeat(auto-fit, minmax(256px, 1fr));
    gap: 1.5em 1em;
  }
  .achievement__inner {
    padding: 1em 0.75em;
  }
  .achievement__inner > * {
    margin-bottom: 0.75em;
  }
  .achievement__inner > *:has(+ .achievement__price) {
    margin-bottom: 0.5em;
  }
  .achievement__price {
    flex-wrap: wrap;
  }
  .achievement__price .label {
    font-size: var(--font-size-lg);
    margin-right: 0.5em;
  }
  .achievement__price .fee {
    font-size: var(--font-size-xxl);
  }
}

/* ===============================================
 よくあるご質問
=============================================== */
.qa__item {
  font-weight: 700;
  box-shadow: 0 0 0 1px rgba(190, 175, 135, 0.5);
  border-radius: 5px;
  overflow: hidden;
  margin-bottom: 30px;
}
.qa__item:last-of-type {
  margin-bottom: 0;
}
.qa__heading {
  font-size: 1.25em;
  color: #fff;
  line-height: 1.6;
  letter-spacing: var(--letter-spacing-base);
  background: var(--gold-color);
  padding: 0.75em 3em 0.75em 0.75em;
  cursor: pointer;
  position: relative;
}
.qa__heading::before {
  content: "Q.";
}
.qa__heading::after {
  content: "＋";
  font-size: 1.6em;
  letter-spacing: 0;
  line-height: 1;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0.46875em;
}
.qa__heading.active::after {
  content: "－";
}
.qa__body {
  font-size: var(--font-size-sm);
  padding: 10px 1em;
}
@media screen and (max-width: 767px) {
  .qa__title .main {
    word-break: keep-all;
  }
  .qa__heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    font-size: var(--font-size-lg);
    padding: 0.5em 2.5em 0.5em 0.75em;
  }
  .qa__heading::before {
    width: 1.5em;
  }
  .qa__heading::after {
    font-size: 1.2em;
    right: 0.65em;
  }
  .qa__heading > span {
    display: block;
    width: calc(100% - 1.5em);
  }
  .qa__body {
    font-size: var(--font-size-base);
    padding: 1em;
  }
  .qa__body br {
    display: none;
  }
}

/* ===============================================
 スタッフ紹介
=============================================== */
.staff__image {
  text-align: center;
}
.staff__text {
  width: 1000px;
  background: var(--pink-color);
  padding: 35px 100px;
  margin: 85px auto 0;
  outline: solid 2px #fff;
  outline-offset: -11px;
  position: relative;
  z-index: 0;
}
.staff__text::before {
  content: "";
  width: 286px;
  aspect-ratio: 286/326;
  background: url(../../assets/images/staff/character-left.png) no-repeat left bottom/contain;
  position: absolute;
  left: -65px;
  bottom: 0;
  z-index: 1;
}
.staff__text::after {
  content: "";
  width: 307px;
  aspect-ratio: 307/394;
  background: url(../../assets/images/staff/character-right.png) no-repeat right bottom/contain;
  position: absolute;
  right: -65px;
  bottom: 0;
  z-index: 1;
}
.staff__text p {
  text-align: center;
  font-size: var(--font-size-xxxl);
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
  letter-spacing: var(--letter-spacing-base);
  word-break: keep-all;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.4);
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .staff__title .main {
    word-break: keep-all;
  }
  .staff__text {
    width: 100%;
    max-width: 480px;
    padding: 1.5em;
    margin-top: 4em;
    outline-offset: -6px;
  }
  .staff__text p {
    text-align: left;
    font-size: var(--font-size-xxl);
    line-height: 1.5;
    word-break: keep-all;
  }
}
@media screen and (max-width: 767px) and (max-width: 500px) {
  .staff__text br {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .staff__text::before {
    display: none;
  }
  .staff__text::after {
    width: 13em;
    right: -4em;
  }
}

/* ===============================================
 ご相談の流れ
=============================================== */
.flow__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 30px;
  counter-reset: num 0;
}
.flow__item::before {
  counter-increment: num 1;
  content: "STEP " counter(num, decimal-leading-zero);
  display: block;
  text-align: center;
  font-size: 1.375em;
  font-weight: 700;
  color: #fff;
  line-height: 1.68182;
  background: var(--main-color);
  border-radius: 5px;
  margin-bottom: 10px;
}
.flow__image {
  text-align: center;
  margin-bottom: 10px;
}
.flow__heading {
  text-align: center;
  font-size: 1.25em;
  line-height: 1.5;
  font-weight: 700;
  margin-bottom: 10px;
}
.flow__btn {
  flex-direction: row;
  width: 420px;
  height: 100px;
  text-align: center;
  -moz-column-gap: 15px;
       column-gap: 15px;
  margin: 45px auto 0;
}
.flow__btn .main {
  font-size: 2.25em;
}
.flow__btn::before {
  content: "";
  display: block;
  width: 50px;
  aspect-ratio: 1;
  background: url(../../assets/images/common/line_qr.png) no-repeat center/contain;
}
.flow__btn::after {
  content: "";
  display: block;
  width: 9px;
  aspect-ratio: 9/15;
  background: url(../../assets/images/common/arrow.svg) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .flow__title .main {
    word-break: keep-all;
  }
  .flow__list {
    display: block;
  }
  .flow__item {
    margin-bottom: 3em;
  }
  .flow__item:last-of-type {
    margin-bottom: 0;
  }
  .flow__image {
    margin-bottom: 0.5em;
  }
  .flow__image img {
    height: clamp(136px, 42.4444444444vw, 191px);
  }
  .flow__btn {
    width: 24em;
    max-width: 100%;
    height: clamp(80px, 22.2222222222vw, 100px);
  }
  .flow__btn .main {
    font-size: var(--font-size-xxl);
  }
  .flow__btn .sub {
    font-size: var(--font-size-sm);
  }
  .flow__btn::before {
    width: clamp(45px, 13.3333333333vw, 60px);
  }
  .flow__btn::after {
    width: clamp(6px, 2vw, 9px);
  }
}

/* ===============================================
 お問い合わせ
=============================================== */
.contact {
  background: #fff;
  padding-top: 0;
}
.contact__title {
  margin-bottom: 0;
}
.contact__title-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 305px;
  background: url(../../assets/images/contact/bg-img.jpg) no-repeat center/cover;
  padding-top: 16px;
  margin-bottom: 42px;
}
.contact__title .main::before {
  content: "";
  width: calc(100% + 32px);
  height: 21px;
  background: #fff;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -4px;
  z-index: -2;
}
.contact__title .main .inner {
  -webkit-text-stroke: #fff 8px;
  paint-order: stroke;
  filter: drop-shadow(0 4px 4px rgba(51, 51, 51, 0.25));
}
.contact__title::before {
  content: "";
  width: 202px;
  aspect-ratio: 1;
  background: url(../../assets/images/contact/character-shinchan.png) no-repeat left bottom/contain;
  position: absolute;
  left: -162px;
  bottom: -42px;
  z-index: -1;
}
.contact__title::after {
  content: "";
  width: 304px;
  aspect-ratio: 304/197;
  background: url(../../assets/images/contact/character-shiro.png) no-repeat right bottom/contain;
  position: absolute;
  right: -158px;
  bottom: -42px;
  z-index: -1;
}
.contact__text {
  text-align: center;
  font-size: var(--font-size-lg);
  font-weight: 700;
  letter-spacing: var(--letter-spacing-base);
  margin-bottom: 32px;
}
.contact__btn {
  flex-direction: row;
  width: 420px;
  height: 100px;
  text-align: center;
  -moz-column-gap: 15px;
       column-gap: 15px;
}
.contact__btn .main {
  font-size: 2.25em;
}
.contact__btn::before {
  content: "";
  display: block;
  width: 65px;
  aspect-ratio: 1;
  background: url(../../assets/images/common/line_qr.png) no-repeat center/contain;
}
.contact__btn::after {
  content: "";
  display: block;
  width: 9px;
  aspect-ratio: 9/15;
  background: url(../../assets/images/common/arrow.svg) no-repeat center/contain;
}
.contact__inner {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 41px 78px;
}
.contact__table-box {
  width: 100%;
  box-shadow: 0 0 0 2px var(--pink-color) inset;
  border-radius: 5px;
  overflow: hidden;
}
.contact__heading {
  width: 100%;
  color: #fff;
  background: var(--pink-color);
  row-gap: 10px;
  padding: 17px 0;
  margin-bottom: 0;
}
.contact__heading .sub {
  font-size: 2.6rem;
  color: var(--pink-color);
  background: #fff;
  border-radius: 100vh;
  padding: 10px 20px;
}
.contact__heading .main {
  line-height: 1;
}
.contact__table {
  padding: 42px 60px 45px 30px;
}
@media screen and (max-width: 767px) {
  .contact__title .main::before {
    width: calc(100% + 1em);
    height: 0.72em;
  }
  .contact__title .main .inner {
    -webkit-text-stroke-width: 0.2em;
  }
  .contact__title::before {
    width: 9.5em;
    left: -8em;
    bottom: -3em;
  }
  .contact__title::after {
    width: 14em;
    right: -7.5em;
    bottom: -2.5em;
  }
  .contact__title-wrap {
    height: min(256px, 56.8888888889vw);
    padding-top: 0.5em;
    margin-bottom: 2em;
  }
  .contact__text {
    margin-bottom: 2em;
  }
  .contact__text p {
    word-break: keep-all;
  }
  .contact__inner {
    gap: 2em 1.5em;
  }
  .contact__btn {
    width: 24em;
    max-width: 100%;
    height: clamp(80px, 22.2222222222vw, 100px);
  }
  .contact__btn .main {
    font-size: var(--font-size-xxl);
  }
  .contact__btn .sub {
    font-size: var(--font-size-sm);
  }
  .contact__btn::before {
    width: clamp(45px, 13.3333333333vw, 60px);
  }
  .contact__btn::after {
    width: clamp(6px, 2vw, 9px);
  }
  .contact__heading {
    row-gap: 0.75em;
    padding: 1.25em 0;
  }
  .contact__heading .sub {
    font-size: var(--font-size-lg);
    padding: 0.5em 1em;
  }
  .contact__table {
    padding: 1.25em 1.25em 2em;
  }
}

/*============================
  お探しのページは
  見つかりませんでした。
============================*/
.error__text {
  text-align: center;
  font-size: var(--font-size-lg);
  font-weight: 700;
  line-height: 2;
}
.error__text p {
  word-break: keep-all;
}
.error__text-link {
  color: var(--blue-color);
  text-decoration: underline;
}
.error__text-link:hover {
  color: var(--main-color);
}
@media screen and (max-width: 767px) {
  .error__title .main {
    word-break: keep-all;
  }
}

/*============================
  お問い合わせ確認
============================*/
/*============================
  送信完了ページ
============================*/
.thanks__text {
  text-align: center;
  font-size: var(--font-size-lg);
  font-weight: 700;
  line-height: 2;
}
.thanks__text p {
  word-break: keep-all;
}
.thanks__btn {
  width: 320px;
  height: 60px;
  margin: 50px auto 0;
}
@media screen and (max-width: 767px) {
  .thanks__title .main {
    word-break: keep-all;
  }
  .thanks__btn {
    width: 18em;
    max-width: 100%;
    height: clamp(50px, 13.3333333333vw, 60px);
    margin-top: 2.5em;
  }
}

/* アニメーション実装 */

.visual__main-btn {
  position: relative;
  overflow: hidden;
  /* 光がはみ出さないように */
}

.visual__main-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  /* スタート位置 */
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.5) 50%,
      rgba(255, 255, 255, 0) 100%);
  transform: skewX(-25deg);
  animation: shine 3s ease-in-out infinite;
  /* 無限ループ */
}

@keyframes shine {
  0% {
    left: -75%;
  }

  60% {
    left: 125%;
  }

  100% {
    left: 125%;
  }
}

.btn--line {
  position: relative;
  overflow: hidden;
  /* 光がはみ出さないように */
}

.btn--line::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  /* スタート位置 */
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.5) 50%,
      rgba(255, 255, 255, 0) 100%);
  transform: skewX(-25deg);
  animation: shine 3s ease-in-out infinite;
  /* 常時ループ */
}

@keyframes shine {
  0% {
    left: -75%;
  }

  60% {
    left: 125%;
  }

  100% {
    left: 125%;
  }
}

@media screen and (min-width: 768px) {
  .pc_none {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .sp_none{
    display: none;
  }
}