@charset "shift_jis";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Shippori+Mincho:wght@500;600;700;800&display=swap");

#main_contents {
  --font-gothic: "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  --font-serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --color-ink: #22191c;
  --color-purple: #a78ec6;
  --color-purple-dark: #78639d;
  --color-peach: #f6b49d;
  --color-pink: #efb5c4;
  --color-cream: #fff8f2;
  --color-border: #bda8d3;
  --lp-width: 100%;
  --content-width: 980px;

  width: 100%;
  max-width: var(--lp-width);
  margin: 0 auto 40px;
  overflow: hidden;
  color: var(--color-ink);
  background: #fff;
  font-family: var(--font-gothic);
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0;
}

#main_contents *,
#main_contents *::before,
#main_contents *::after {
  box-sizing: border-box;
}

#main_contents h1,
#main_contents h2,
#main_contents h3,
#main_contents p,
#main_contents figure,
#main_contents dl,
#main_contents dd,
#main_contents ul {
  margin: 0;
  padding: 0;
}

#main_contents img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

#main_contents ul {
  list-style: none;
}

#main_contents a {
  color: inherit;
  text-decoration: none;
}

#main_contents .ts-section {
  position: relative;
  width: 100%;
}

#main_contents .ts-inner {
  width: min(100%, var(--content-width));
  margin: 0 auto;
}

#main_contents .ts-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

#main_contents .ts-hero,
#main_contents .ts-visual {
  background: #fff;
}

#main_contents .ts-hero {
  aspect-ratio: 1280 / 780;
  overflow: hidden;
}

#main_contents .ts-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

#main_contents .ts-visual img {
  width: min(100%, var(--content-width));
}

#main_contents .ts-visual--content08 img {
  width: 100%;
}

#main_contents .ts-visual--content08 {
  z-index: 2;
  margin-top: -188px;
}

#main_contents .ts-visual--content10 img {
  width: 100%;
}

#main_contents .ts-difference {
  position: relative;
  /*! aspect-ratio: 2561 / 979; */
  overflow: hidden;
  background: url("../img/contents05-back@2x.png") center top / 100% 100% no-repeat;
  height: 490px;
}

#main_contents .ts-difference__inner {
  position: absolute;
  inset: 0;
}

#main_contents .ts-difference h2 {
  position: absolute;
  top: 116px;
  left: 0;
  width: 100%;
  margin: 0;
  color: #fff;
  font-family: "Shippori Mincho", var(--font-serif);
  font-size: 50px;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
}

#main_contents .ts-difference__checks {
  position: absolute;
  top: 202px;
  left: 50%;
  width: 837px;
  aspect-ratio: 1674 / 333;
  transform: translateX(-50%);
}

#main_contents .ts-difference__checks img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#main_contents .ts-difference__item {
  position: absolute;
  margin: 0;
  color: #000;
  font-family: "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

#main_contents .ts-difference__item--01 {
  top: 24px;
  left: 83px;
}

#main_contents .ts-difference__item--02 {
  top: 24px;
  left: 512px;
}

#main_contents .ts-difference__item--03 {
  top: 109px;
  left: 83px;
}

#main_contents .ts-difference__item--04 {
  top: 109px;
  left: 512px;
}

#main_contents .ts-content01__copy {
  width: min(100%, var(--content-width));
  margin: -10px auto 0;
  color: #000;
  font-family: "Shippori Mincho", var(--font-serif);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

#main_contents .ts-content01__worry-heading {
  position: relative;
  z-index: 2;
  width: min(100%, var(--content-width));
  margin: 0 auto;
  color: #000000;
  font-family: "Shippori Mincho", var(--font-serif);
  font-size: 50px;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
}

#main_contents .ts-content02__nayami {
  position: relative;
  z-index: 3;
  width: min(100%, var(--content-width));
  margin: 15px auto 0;
}

#main_contents .ts-visual--content02 {
  width: 100%;
  margin: 0 auto;
  padding-top: 130px;
  overflow: hidden;
  background: #e8f0fb url("../img/contents02-back@2x.png") center / cover no-repeat;
}

#main_contents .ts-visual--content02::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 30%);
}

#main_contents .ts-visual--content03 img {
  max-width: 100%;
}

#main_contents .ts-visual--content03 {
  width: 100%;
  z-index: 4;
  margin-top: -10px;
}

#main_contents .ts-content03__obi {
  position: relative;
  width: 100%;
  height: 228px;
  margin: 0 auto;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.16));
}

#main_contents .ts-content03__obi::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #b9a3cf;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 48px), calc(50% + 48px) calc(100% - 48px), 50% 100%, calc(50% - 48px) calc(100% - 48px), 0 calc(100% - 48px));
}

#main_contents .ts-content03__obi-text {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: calc(100% - 48px);
  margin: 0;
  color: #fff;
  font-family: "Shippori Mincho", var(--font-serif);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0;
  text-align: center;
}

#main_contents .ts-content03__obi-line {
  display: block;
}

#main_contents .ts-content03__obi-line--small {
  font-size: 38px;
}

#main_contents .ts-content03__obi-line--large {
  margin-top: 8px;
  font-size: 42px;
}

#main_contents .ts-content03__kouka {
  width: min(100%, var(--content-width));
  margin: 0 auto;
}

#main_contents .ts-layer {
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
}

#main_contents .ts-layer__inner {
  width: min(100%, var(--content-width));
  margin: 0 auto;
}

#main_contents .ts-points {
  background: url("../img/contents04_back3@2x.png") center top / 100% auto repeat-y;
}

#main_contents .ts-points .ts-layer__inner {
  padding: 115px 0 96px;
}

#main_contents .ts-points h2 img {
  width: 100%;
  margin-bottom: 33px;
}

#main_contents .ts-points .ts-layer__inner > img {
  width: 100%;
  margin-top: 30px;
}

#main_contents .ts-point-card {
  position: relative;
  width: 100%;
  margin: 63px auto 0;
}

#main_contents .ts-point-card--02,
#main_contents .ts-point-card--03,
#main_contents .ts-point-card--04 {
  margin-top: 30px;
}

#main_contents .ts-point-card img {
  width: 100%;
}

#main_contents .ts-point-card__copy {
  position: absolute;
  bottom: 47px;
  z-index: 1;
  margin: 0;
  color: #000;
  font-family: "Noto Sans JP", "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 32px;
  letter-spacing: 0.05em;
  text-align: left;
}

#main_contents .ts-point-card__copy--left {
  left: 63px;
}

#main_contents .ts-point-card__copy--right {
  left: 522px;
}

#main_contents .ts-point-card__strong {
  font-weight: 700;
}

#main_contents .ts-point-card__heading,
#main_contents .ts-point-card__body,
#main_contents .ts-point-card__balloon-text {
  position: absolute;
  z-index: 1;
  margin: 0;
  color: #000;
  font-family: "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  text-align: left;
}

#main_contents .ts-point-card__heading--02 {
  top: 172px;
  left: 59.5px;
  font-size: 30px;
  font-weight: 700;
  line-height: 34.8px;
  letter-spacing: 0.05em;
}

#main_contents .ts-point-card__heading--02 span {
  display: block;
}

#main_contents .ts-point-card__heading--02 span + span {
  margin-left: -2px;
}

#main_contents .ts-point-card__body--02 {
  top: 260px;
  left: 61.7px;
  font-family: "Noto Sans JP", "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 32px;
  letter-spacing: 0.05em;
}

#main_contents .ts-point-card__body--02 sup {
  position: relative;
  top: calc(-0.35em + 10px);
  font-size: 10px;
  line-height: 0;
}

#main_contents .ts-point-card__body--02 small {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.05em;
}

#main_contents .ts-point-card__body--04 {
  top: 178.5px;
  left: 61.8px;
  font-family: "Noto Sans JP", "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 32px;
  letter-spacing: 0.05em;
}

#main_contents .ts-point-card__body--04 sup {
  position: relative;
  top: -0.35em;
  left: -5px;
  margin-right: -5px;
  font-size: 10px;
  line-height: 0;
}

#main_contents .ts-point-card__body--04 .ts-point-card__note-mark {
  font-size: 10px;
  line-height: 0;
  vertical-align: super;
}

#main_contents .ts-point-card__body--04 small {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.05em;
}

#main_contents .ts-point-card__balloon-text--03 {
  top: 181px;
  left: 705.8px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}

#main_contents .ts-point-card__underline {
  position: absolute;
  bottom: 52px;
  z-index: 0;
  background: #dbcee4;
  opacity: 0.8;
  clip-path: polygon(2% 0, 100% 0, 98.8% 100%, 0 100%);
  pointer-events: none;
}

#main_contents .ts-point-card__underline--left {
  left: 70.4px;
  width: 190px;
  height: 8.5px;
}

#main_contents .ts-point-card__underline--aka {
  left: 520.3px;
  width: 20.6px;
  height: 8.5px;
}

#main_contents .ts-point-card__underline--kakushitsu {
  left: 553.4px;
  width: 34.2px;
  height: 8.5px;
}

#main_contents .ts-point-card__underline--point02-kakushitsu {
  top: 310.4px;
  bottom: auto;
  left: 288px;
  width: 75.2px;
  height: 8.5px;
}

#main_contents .ts-point-card__underline--point02-kawa {
  top: 309.4px;
  bottom: auto;
  left: 375.8px;
  width: 22.8px;
  height: 8.5px;
}

#main_contents .ts-point-card__underline--point02-shibore {
  top: 342.2px;
  bottom: auto;
  left: 59.5px;
  width: 56.3px;
  height: 8.5px;
}

#main_contents .ts-point-card__underline--point02-yasashiku {
  top: 374px;
  bottom: auto;
  left: 123.8px;
  width: 253.7px;
  height: 8.5px;
}

#main_contents .ts-point-card__underline--point03-kimochi {
  top: 206.6px;
  bottom: auto;
  left: 706.6px;
  width: 164.5px;
  height: 8.5px;
}

#main_contents .ts-set {
  z-index: 2;
  /*! aspect-ratio: 2561 / 2124; */
  background-image: url("../img/contents06-back_1@2x.png");
  height: 1120px;
}

#main_contents .ts-set .ts-layer__inner {
  position: absolute;
  inset: 0;
  width: 100%;
  padding: 0;
}

#main_contents .ts-set h2 {
  position: absolute;
  top: 100px;
  left: 50%;
  width: 977.5px;
  transform: translateX(-50%);
}

#main_contents .ts-set h2 img {
  width: 100%;
}

#main_contents .ts-set__image {
  position: absolute;
  top: 300px;
  left: 50%;
  width: 955.5px;
  transform: translateX(-50%);
}

#main_contents .ts-puff {
  z-index: 1;
  aspect-ratio: 2561 / 4855;
  margin-top: -414px;
  background-image: url("../img/contents07-back2@2x.png");
  height: 2400px;
}

#main_contents .ts-puff .ts-layer__inner {
  position: absolute;
  inset: 414px 0 0;
  width: 100%;
  padding: 0;
}

#main_contents .ts-puff h2 {
  position: absolute;
  top: -18px;
  left: 50%;
  width: 976.5px;
  transform: translateX(-50%);
}

#main_contents .ts-puff h2 img {
  width: 100%;
}

#main_contents .ts-puff__lead {
  position: absolute;
  top: 154px;
  left: 0;
  width: 100%;
  margin: 0;
  color: #000;
  font-family: "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.1em;
  text-align: center;
}

#main_contents .ts-puff__lead-normal {
  font-family: "Noto Sans JP", "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-weight: 500;
}

#main_contents .ts-puff__underline {
  display: inline-block;
  position: relative;
  z-index: 0;
  font-family: "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-weight: 700;
  line-height: 1.05;
}

#main_contents .ts-puff__underline::before {
  content: "";
  position: absolute;
  left: -0.2em;
  right: -0.2em;
  bottom: -2px;
  z-index: -1;
  height: 0.45em;
  pointer-events: none;
}

#main_contents .ts-puff__underline--soft::before {
  background: rgba(133, 183, 221, 0.78);
}

#main_contents .ts-puff__underline--hard::before {
  background: rgba(239, 177, 218, 0.82);
}

#main_contents .ts-puff__pafu {
  position: absolute;
  top: 246px;
  left: 50%;
  width: 826.5px;
  transform: translateX(-50%);
}

#main_contents .ts-puff__pafu-comment {
  position: absolute;
  top: 612px;
  left: 50%;
  width: 500px;
  transform: translateX(-50%);
}

#main_contents .ts-puff__fuwafuwa {
  position: absolute;
  top: 742px;
  left: calc(50% + 50px);
  z-index: 2;
  width: 894.5px;
  transform: translateX(-50%);
}

#main_contents .ts-puff__leaf {
  position: absolute;
  top: 1040px;
  right: -12px;
  z-index: 1;
  width: 372.5px;
}

#main_contents .ts-puff__care-heading {
  position: absolute;
  top: 1384px;
  left: 0;
  width: 100%;
  margin: 0;
  color: #000;
  font-family: "Shippori Mincho", var(--font-serif);
  font-size: 40px;
  font-weight: 600;
  line-height: 56.65px;
  letter-spacing: 0;
  font-feature-settings: "palt" 1, "kern" 1;
  font-variant-east-asian: proportional-width;
  font-kerning: normal;
  text-align: center;
}

#main_contents .ts-puff__care {
  position: absolute;
  top: 1464px;
  left: 50%;
  width: 994.5px;
  transform: translateX(-50%);
}

#main_contents .ts-cross {
  height: 1530px;
  overflow: hidden;
  background: url("../img/contents09_back@2x.png") center top / 100% 100% no-repeat;
  color: #000;
}

#main_contents .ts-cross__asset {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

#main_contents .ts-cross__top-copy {
  position: absolute;
  top: 30px;
  left: 0;
  width: 100%;
  margin: 0;
  color: #fff;
  font-family: "Shippori Mincho", var(--font-serif);
  font-size: 50px;
  font-weight: 800;
  line-height: 60px;
  letter-spacing: 0.025em;
  text-align: center;
}

#main_contents .ts-cross__title-block {
  position: absolute;
  top: 273px;
  left: 50%;
  width: 704.5px;
  transform: translateX(-50%);
}

#main_contents .ts-cross__title-block img {
  width: 100%;
}

#main_contents .ts-cross__lead,
#main_contents .ts-cross__body,
#main_contents .ts-cross__set-heading,
#main_contents .ts-cross__set-copy {
  position: absolute;
  margin: 0;
  color: #000;
  font-family: "Noto Sans JP", "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  letter-spacing: 0;
}

#main_contents .ts-cross__lead {
  top: 383px;
  left: 0;
  width: 100%;
  font-size: 20px;
  font-weight: 400;
  line-height: 34px;
  text-align: center;
}

#main_contents .ts-cross__lead span {
  display: block;
}

#main_contents .ts-cross__lead .ts-cross__strong {
  display: inline;
  font-weight: 700;
  font-size: 24px;
}

#main_contents .ts-cross__photo {
  position: absolute;
  top: 488px;
  left: 50%;
  width: 803.5px;
  transform: translateX(-50%);
}

#main_contents .ts-cross__body {
  top: 1023px;
  left: 0;
  width: 100%;
  font-size: 18px;
  font-weight: 400;
  line-height: 31px;
  text-align: center;
}

#main_contents .ts-cross__body span {
  display: block;
}

#main_contents .ts-cross__body span:first-child {
  font-weight: 400;
}

#main_contents .ts-cross__set-block {
  position: absolute;
  top: 1145px;
  left: 50%;
  width: 808.5px;
  transform: translateX(-50%);
}

#main_contents .ts-cross__set-block img {
  width: 100%;
}

#main_contents .ts-cross__set-heading {
  top: 89px;
  left: 111px;
  font-size: 25px;
  font-weight: 700;
  line-height: 35px;
}

#main_contents .ts-cross__set-copy {
  top: 140px;
  left: 111px;
  font-size: 20px;
  font-weight: 400;
  line-height: 32px;
  text-align: left;
}

#main_contents .ts-recommend {
  height: 478px;
  overflow: hidden;
  background: #fffaf6;
}

#main_contents .ts-recommend__inner {
  position: relative;
  width: 100%;
  height: 100%;
}

#main_contents .ts-recommend h2 {
  position: absolute;
  top: 108px;
  left: 0;
  width: 100%;
  margin: 0;
  color: #000;
  font-family: "Shippori Mincho", var(--font-serif);
  font-size: 50px;
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: 0;
  text-align: center;
}

#main_contents .ts-recommend img {
  position: absolute;
  top: 194px;
  left: 50%;
  width: 686.5px;
  transform: translateX(-50%);
}

#main_contents .ts-recommend__item {
  position: absolute;
  top: 294px;
  width: 180px;
  margin: 0;
  color: #000;
  font-family: "Noto Sans JP", "Source Han Sans", "Source Han Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: 0;
  text-align: center;
}

#main_contents .ts-recommend__item--01 {
  left: calc(50% - 325px);
}

#main_contents .ts-recommend__item--02 {
  left: calc(50% - 90px);
}

#main_contents .ts-recommend__item--03 {
  left: calc(50% - -145px);
}

#main_contents .ts-bottom-set {
  padding: 46px 0 46px;
  background: #fffaf6;
  text-align: center;
}
#main_contents .ts-bottom-set .ts-inner {
  width: min(1001px, 100%);
  transform: translateY(-50px);
}

#main_contents .ts-bottom-set__title {
  position: relative;
  width: 992.5px;
  max-width: 100%;
  height: 58.5px;
  margin: 0 auto 12px;
}

#main_contents .ts-bottom-set__title img {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
}

#main_contents .ts-bottom-set__image {
  width: 1001px;
  max-width: 100%;
}

@media (max-width: 720px) {
  #main_contents {
    font-size: 14px;
  }

  #main_contents .ts-points .ts-layer__inner {
    padding: 9vw 0 7.5vw;
  }

  #main_contents .ts-points h2 img {
    margin-bottom: 2.6vw;
  }

  #main_contents .ts-points .ts-layer__inner > img {
    margin-top: 2.3vw;
  }

  #main_contents .ts-cross {
    padding-top: 0;
  }

  #main_contents .ts-recommend {
    height: 37.4vw;
  }

  #main_contents .ts-bottom-set {
    padding: 6.6vw 16px 7.8vw;
  }
}