/* ------------------------------------
 *  schoolsofy / officesofy 共通パーツ
 * --------------------------------- */

.block-01 {
  position: relative;
  width: 100%;
  max-width: 350px;
  padding: 0 15px 14px;
  margin-inline: auto;
  margin-top: 60px;
  background-color: #fff;
  border-radius: 20px;
}

.block-01.product {
  max-width: 340px;
  padding-inline: 20px;
}

.block-01::before {
  position: absolute;
  top: -25px;
  left: 50%;
  width: 280px;
  height: 25px;
  content: "";
  background: #fff;
  border-radius: 25px 25px 0 0;
  transform: translateX(-50%);
}

.marker-01 {
  font-weight: 500;
  background: linear-gradient(transparent 75%, #febed2 25%);
  background-repeat: no-repeat;
  background-position: bottom;
}

.marker-02 {
  font-weight: 500;
  background: linear-gradient(transparent 75%, #bbbbec 25%);
  background-repeat: no-repeat;
  background-position: bottom;
}

.sub-text-01,
.sub-text-02 {
  position: absolute;
  left: 50%;
  width: 100%;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: calc(14 * var(--rem));
  font-weight: 500;
  line-height: calc(20 / 14);
  color: var(--dokodemosofy-color-black-01);
  text-align: center;
  transform: translateX(-50%);
}

.sub-text-01 {
  top: -8px;
}

.sub-text-02 {
  top: 32px;
}

.dokodemosofy-text-01 {
  font-size: calc(16 * var(--rem));
  font-weight: 400;
  line-height: calc(28 / 16);
  color: var(--dokodemosofy-color-black-01);
}

.dokodemosofy-text-02 {
  font-size: calc(16 * var(--rem));
  font-weight: 400;
  line-height: calc(32 / 16);
  color: var(--dokodemosofy-color-black-01);
}

.detail-link {
  margin-left: 16px;
  font-size: calc(12 * var(--rem));
  font-weight: 400;
  line-height: calc(20 / 12);
  color: var(--dokodemosofy-color-black-01);
}

.detail-link a {
  position: relative;
  font-size: calc(12 * var(--rem));
  font-weight: 400;
  line-height: calc(20 / 12);
  color: var(--dokodemosofy-color-black-01);
}

.detail-link a::before {
  position: absolute;
  top: 50%;
  left: -16px;
  width: 11.05px;
  height: 11.05px;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  content: "";
  background-color: var(--dokodemosofy-color-pink-01);
  transform: translateY(-50%);
}

.detail-blank-link a::after {
  position: absolute;
  top: 50%;
  right: -21.6px;
  width: 12.6px;
  height: 12.6px;
  font-size: 0;
  content: "別ウインドウで開きます";
  background-image: url("/content/dam/sites/www_sofy_jp/campaign/dokodemosofy/icon-blank_01.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translateY(-50%);
}

.napkin-block .uc-mod-media-01,
.merit-block-01 .uc-mod-media-01 {
  margin: auto;
}

.merit-section {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 33px;
  align-items: center;
  width: 100%;
  max-width: 340px;
  padding: 0 20px 34.8px;
  margin: 100px auto 0;
  background-color: rgb(255 255 255 / 70%);
  border-radius: 20px;
}

.merit-section::before {
  position: absolute;
  top: -80px;
  left: 50%;
  width: 160px;
  height: 80px;
  content: "";
  background-color: rgb(255 255 255 / 70%);
  border-radius: 50% / 100% 100% 0 0;
  transform: translateX(-50%);
}

.merit-block-01 {
  width: 100%;
  max-width: 120px;
  margin-top: -64px;
}

.merit-block-02 {
  width: 100%;
  max-width: 300px;
}

.merit-heading-01 > *,
.merit-heading-02 > *,
.merit-heading-03 > * {
  font-size: calc(26 * var(--rem));
  line-height: calc(30 / 26);
}

.merit-heading-01 > * {
  color: var(--dokodemosofy-color-pink-01);
}

.merit-heading-02 > * {
  color: var(--dokodemosofy-color-purple-01);
}

.merit-heading-03 > * {
  color: var(--dokodemosofy-color-light-blue-01);
}

.merit-heading-text {
  margin-block: 9.8px 16.7px;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: calc(20 * var(--rem));
  font-weight: 500;
  line-height: calc(30 / 20);
  color: var(--dokodemosofy-color-black-01);
  text-align: center;
}

.merit-text {
  font-size: calc(16 * var(--rem));
  font-weight: 400;
  line-height: calc(30 / 16);
  color: var(--dokodemosofy-color-black-01);
  text-align: left;
}

.note-logo {
  width: 100%;
  max-width: 134px;
  margin-bottom: 21.6px;
}

.note-text {
  margin-bottom: 33.8px;
}

.note-block {
  display: flex;
  flex-direction: column;
  gap: 60px;
  align-items: center;
  justify-content: center;
}

.note-wrap {
  width: 100%;
  max-width: 320px;
}

.note-wrap a {
  color: var(--dokodemosofy-color-black-01);
}

.note-wrap a {
  color: var(--dokodemosofy-color-black-01);
}

.note-wrap a:hover .uc-put-lead p {
  text-decoration: underline;
}

.note-wrap .uc-mod-media-put-text-01 {
  margin-bottom: 0;
}

.note-wrap .uc-mod-media-put-text-01.uc-js-media-put-01.uc-is-disable-title.uc-is-disable-lead .uc-put-text {
  position: relative;
  top: 210px;
  right: unset;
  bottom: unset;
  transform: unset;
}

@media (max-width: 350px) {
  .note-wrap .uc-mod-media-put-text-01.uc-js-media-put-01.uc-is-disable-title.uc-is-disable-lead .uc-put-text {
    top: calc(225vw / 3.74);
  }
}

.note-wrap .uc-mod-media-put-text-01.uc-js-media-put-01.uc-is-disable-title.uc-is-disable-lead .uc-js-put-lead.uc-put-lead {
  text-align: left;
}

.note-wrap .uc-put-text .uc-put-lead > * {
  font-size: calc(14 * var(--rem));
  font-weight: 400;
  line-height: calc(32 / 14);
  color: var(--dokodemosofy-color-black-01);
}

.note-wrap .uc-caption {
  margin-top: 43px;
  font-size: calc(18 * var(--rem));
  font-weight: 400;
  line-height: calc(32 / 18);
  color: var(--dokodemosofy-color-black-01);
  text-align: left;
}

.info-text {
  margin-block: 13px 28.3px;
  text-align: center;
}

@media (min-width: 769px) and (max-width: 820px) {
  .note-block:has(> :nth-child(2):last-child)
    .note-wrap
    .uc-mod-media-put-text-01.uc-js-media-put-01.uc-is-disable-title.uc-is-disable-lead
    .uc-put-text {
    top: 26vw;
  }

  .note-block:has(> :nth-child(3):last-child)
    .note-wrap
    .uc-mod-media-put-text-01.uc-js-media-put-01.uc-is-disable-title.uc-is-disable-lead
    .uc-put-text {
    top: 18vw;
  }
}

@media (min-width: 769px) and (max-width: 1200px) {
  .note-block:has(> :nth-child(3):last-child)
    .note-wrap
    .uc-mod-media-put-text-01.uc-js-media-put-01.uc-is-disable-title.uc-is-disable-lead
    .uc-put-text {
    top: 18vw;
  }
}

@media screen and (min-width: 769px) {
  .note-wrap .uc-mod-media-put-text-01.uc-js-media-put-01.uc-is-disable-title.uc-is-disable-lead .uc-put-text {
    top: 225px;
  }
}

@media screen and (min-width: 769px) {
  .block-01 {
    max-width: 1200px;
    padding: 0 60px 57px;
    margin-top: 60px;
    border-radius: 20px;
  }

  .block-01::before {
    top: -40px;
    width: 500px;
    height: 40px;
    background: #fff;
    border-radius: 40px 40px 0 0;
  }

  .block-01.product {
    max-width: 1200px;
  }

  .sub-text-01,
  .sub-text-02 {
    font-size: calc(16 * var(--rem));
    line-height: calc(20 / 16);
  }

  .sub-text-02 {
    top: 39px;
  }

  .dokodemosofy-text-02 {
    font-size: calc(18 * var(--rem));
    line-height: calc(36 / 18);
  }

  .detail-link {
    font-size: calc(14 * var(--rem));
    line-height: calc(20 / 14);
  }

  .detail-link a {
    font-size: calc(14 * var(--rem));
    line-height: calc(20 / 14);
  }

  .merit-section {
    position: unset;
    flex-direction: row;
    gap: 33px;
    max-width: 1200px;
    padding: 16px 30px;
    margin: 0 0 30px;
    border-radius: 120px;
  }

  .merit-section::before {
    content: none;
  }

  .merit-block-01 {
    max-width: 200px;
    margin-top: 0;
  }

  .merit-block-02 {
    max-width: 850px;
  }

  .merit-heading-01 > *,
  .merit-heading-02 > *,
  .merit-heading-03 > * {
    font-size: calc(30 * var(--rem));
    line-height: calc(32 / 30);
  }

  .merit-heading-block {
    display: flex;
    align-items: center;
    justify-content: left;
  }

  .merit-heading-text {
    margin: 0 0 0 30px;
    font-size: calc(22 * var(--rem));
    line-height: calc(30 / 22);
    text-align: left;
  }

  .merit-text {
    margin-top: 12px;
  }

  .note-text {
    margin-bottom: 47px;
  }

  .note-logo {
    max-width: unset;
    margin-bottom: 22.2px;
  }

  .note-block {
    flex-direction: row;
    gap: 60px;
    align-items: stretch;
  }

  .note-wrap {
    max-width: 360px;
  }

  .note-wrap .uc-put-text .uc-put-lead > * {
    font-size: calc(16 * var(--rem));
    line-height: calc(32 / 16);
  }

  .note-wrap .uc-caption {
    font-size: calc(20 * var(--rem));
    line-height: calc(32 / 20);
  }

  .info-text {
    margin-block: 20px 38px;
  }
}

/* ------------------------------------
 * 共通 シェアパーツ
 * --------------------------------- */

.napkin.block-01 {
  max-width: 340px;
  padding-inline: 20px;
}

.napkin-block-01 {
  width: 100%;
  max-width: 200px;
  margin: 46px auto 0;
  margin-inline: auto;
}

.napkin-text {
  margin-block: 20px 19px;
  font-size: calc(18 * var(--rem));
  font-weight: 400;
  line-height: calc(26 / 18);
  color: var(--dokodemosofy-color-black-01);
  text-align: center;
}

.napkin-block-02 .dokodemosofy-text-01 {
  margin-bottom: 15px;
}

.napkin-block .uc-mod-media-01.napkin-image {
  margin-top: 30px;
}

.other {
  margin-top: 50px;
}

.other-heading > * {
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: calc(20 * var(--rem));
  font-weight: 500;
  color: var(--dokodemosofy-color-black-01);
  text-align: center;
}

.other-text-01 {
  margin-bottom: 22.5px;
  font-size: calc(16 * var(--rem));
  font-weight: 400;
  line-height: calc(25 / 16);
  color: var(--dokodemosofy-color-black-01);
  text-align: center;
}

.other-text-02 {
  font-size: calc(14 * var(--rem));
  font-weight: 400;
  line-height: calc(26 / 14);
  color: var(--dokodemosofy-color-black-01);
  text-align: left;
}

.CMP-CM10-text:has(.blank-link) {
  width: 100%;
  max-width: 300px;
  margin-inline: auto;
}

.blank-link,
.blank-link a {
  font-size: calc(16 * var(--rem));
  font-weight: 400;
  line-height: calc(25 / 16);
  color: var(--dokodemosofy-color-black-01);
  text-align: center;
}

.blank-link a {
  position: relative;
  display: block;
  width: 100%;
  max-width: 300px;
  padding: 16px 30px;
  background-color: rgb(255 255 255 / 70%);
  border-radius: 30px;
}

.blank-link a::after {
  position: absolute;
  top: 50%;
  right: 28.4px;
  width: 12.6px;
  height: 12.6px;
  font-size: 0;
  content: "別ウインドウで開きます";
  background-image: url("/content/dam/sites/www_sofy_jp/campaign/dokodemosofy/icon-blank_01.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translateY(-50%);
}

.other-block-border {
  border-top-color: rgb(0 0 0 / 24%);
}

.other-block-border.other-block-border-none {
  border: none;
}

.other-block {
  display: flex;
  flex-direction: column;
  gap: 37.5px;
  justify-content: center;
  width: 100%;
  max-width: 300px;
  margin-inline: auto;
  margin-top: 40px;
}

/* 要素が1つのみ・中央寄せの場合 */
.other-block-center {
  width: fit-content;
}

/* 2個目の要素に設定 */
.other-block-border-custom {
  border-top-style: solid;
  border-top-width: 1px;
}

.other-block .other-block-border .CMP-CM11-image-and-text {
  max-width: 60%;
  margin-inline: auto;
}

.other-block .other-text-02 {
  width: 100%;
  max-width: 300px;
  margin-bottom: 15px;
}

.introduction-block {
  width: 100%;
  max-width: 320px;
  margin-inline: auto;
}

.introduction-text {
  margin-block: 14px 34.5px;
  text-align: center;
}

.uc-mod-media-01.introduction-unit {
  margin-bottom: 0;
}

.introduction-unit .uc-object {
  margin-bottom: 20px;
}

.introduction-unit.uc-mod-media-01 .uc-object img {
  width: 91%;
}

.uc-mod-media-01.introduction-unit .uc-caption {
  padding-top: 0;
  margin-bottom: 50px;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: calc(18 * var(--rem));
  font-weight: 500;
  line-height: calc(26 / 18);
  color: var(--dokodemosofy-color-black-01);
  text-align: center;
}

.introduction-unit-next .uc-object::before {
  position: absolute;
  right: 41%;
  bottom: 12px;
  width: 21px;
  height: 21px;
  clip-path: polygon(0 0, 100% 0%, 50% 100%);
  content: "";
  transform: translateX(-50%);
}

.schoolsofy .introduction-unit-next .uc-object::before {
  background-color: var(--dokodemosofy-color-pink-01);
}

.officesofy .introduction-unit-next .uc-object::before {
  background-color: #6bcce7;
}

.faq-section {
  padding: 50px 22.5px 70px;
  margin: -20px auto 0;
}

.faq-section .CMP-CM39-accordion {
  border-bottom: 1px solid #c8c8c8;
}

.faq-section .CMP-CM39-accordion:first-child {
  border-top: 1px solid #c8c8c8;
}

.faq-section .uc-accordion-btn-close {
  display: none;
}

.faq-section .uc-mod-accordion-01 .uc-accordion-title {
  padding: 24px 0;
  margin-bottom: 0;
}

.faq-text {
  margin-block: 22px 43.5px;
  text-align: center;
}

.faq-section .uc-accordion-text,
.faq-section .uc-accordion-table .answer-text {
  font-size: calc(16 * var(--rem));
  font-weight: 400;
  line-height: calc(24 / 16);
  color: var(--dokodemosofy-color-black-01);
  text-align: left;
}

.faq-section .uc-accordion-table {
  padding-top: 23.4px;
  border-top: 1px solid #c8c8c8;
}

.faq-section .uc-accordion-text {
  padding-inline: 15px;
}

.faq-section .uc-accordion-table .CMP-CM05-block-01 {
  display: flex;
  gap: 14.5px;
}

.faq-section .answer-imge {
  width: 30px;
}

.faq-section .uc-accordion-image img {
  max-width: 30px;
}

.answer-text-block {
  width: 100%;
  margin-bottom: 23.4px;
}

.answer-annotation {
  font-size: calc(14 * var(--rem));
  font-weight: 400;
  line-height: calc(24 / 14);
  color: var(--dokodemosofy-color-black-01);
  text-align: left;
}

.answer-annotation ul {
  margin-block: 15px 0;
}

.answer-annotation ul li {
  margin-left: 0;
  list-style: none;
}

@media screen and (min-width: 769px) {
  .napkin-block {
    display: flex;
    gap: 90px;
    align-items: center;
    justify-content: center;
    margin-top: 70px;
  }

  .napkin-heading {
    margin-top: -15px;
  }

  .napkin.block-01 {
    max-width: none;
    margin-top: 100px;
  }

  .napkin-block-01 {
    max-width: 400px;
    margin-top: 0;
  }

  .napkin-block-02 {
    width: 100%;
    max-width: 500px;
  }

  .napkin-text {
    margin-block: 0 17px;
    margin-top: 0;
    font-size: calc(22 * var(--rem));
    line-height: calc(26 / 22);
    text-align: left;
  }

  .napkin-block-02 .dokodemosofy-text-01 {
    margin-bottom: 20px;
  }

  .other {
    margin-top: 75px;
  }

  .other-heading > * {
    font-size: calc(24 * var(--rem));
  }

  .other-block {
    flex-direction: row;
    gap: 0.5px;
    max-width: unset;
    margin-top: 40px;
  }

  .other-block-border {
    border-right: 1px solid;
    border-right-color: rgb(0 0 0 / 24%);
    border-left: 1px solid;
    border-left-color: rgb(0 0 0 / 24%);
  }

  /* 2個目の要素に設定 */
  .other-block-border-custom {
    border-top: 0;
    border-left: 0;
  }

  .other-block .other-block-border .CMP-CM11-image-and-text {
    max-width: none;
  }

  .other-block .CMP-CM05-block:has(.other-block-border) {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    width: 50%;
  }

  .other-block-border {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    width: 100%;
    max-width: 600px;
    padding: 18px 33px 0 45px;
  }

  .other-text-01 {
    margin-bottom: 27px;
    font-size: calc(18 * var(--rem));
    line-height: calc(30 / 18);
  }

  .other-text-02 {
    font-size: calc(16 * var(--rem));
    line-height: calc(28 / 16);
  }

  .other-block .other-text-02 {
    max-width: 500px;
    margin-bottom: 30px;
  }

  .CMP-CM10-text.CMP-CM10-text:has(.blank-link) {
    margin-top: auto;
  }

  .introduction-text {
    margin-block: 14px 58px;
  }

  .introduction-block {
    display: flex;
    gap: 27px;
    justify-content: center;
    max-width: 1200px;
  }

  .introduction-wrap {
    display: flex;
    gap: 27px;
    justify-content: center;
  }

  .CMP-CM11-image-and-text:has(.introduction-unit) {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    width: 100%;
    max-width: 280px;
  }

  .uc-mod-media-01.introduction-unit .uc-caption {
    margin-top: auto;
    margin-bottom: 0;
    font-size: calc(20 * var(--rem));
    line-height: calc(26 / 20);
  }

  .introduction-unit .uc-object {
    position: relative;
    display: grid inline;
    place-content: center;
    margin-block: 49px 44px;

    /* width: 195px;
    height: 209px; */
  }

  .introduction-unit.uc-mod-media-01 .uc-object img {
    width: 100%;
  }

  .introduction-unit-next .uc-object::before {
    top: 50%;
    right: -80px;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    transform: translateY(-50%);
  }

  .faq-section {
    max-width: 1280px;
    padding: 120px 40px;
  }

  .faq-section .uc-mod-accordion-01 .uc-accordion-title {
    padding: 16px 0 16.5px;
  }

  .faq-text {
    margin-block: 25px 58.5px;
  }

  .faq-section .uc-accordion-table {
    padding-top: 23.4px;
  }

  .faq-section .answer-imge {
    width: 47px;
  }

  .faq-section .uc-accordion-text,
  .faq-section .uc-accordion-table .answer-text {
    font-size: calc(18 * var(--rem));
    line-height: calc(32 / 18);
  }

  .faq-section .uc-accordion-table .CMP-CM05-block-01 {
    gap: 16px;
  }

  .faq-section .uc-accordion-image img {
    max-width: 47px;
  }

  .answer-text-block {
    max-width: 1050px;
    margin-bottom: 27px;
  }
}

@media (min-width: 769px) and (max-width: 1100px) {
  .introduction-unit-next .uc-object::before {
    right: -30px;
  }
}
