:where(.first-content, .page-e-consent) {
  --fs-title: 24px;
  --fs-basic: 16px;
  --fs-small: 14px;

  @media (min-width: 656px) {
    --fs-title: 32px;
    --fs-basic: 20px;
    --fs-small: 16px;
  }
}

:where(.first-content, .page-e-consent) {
  h2 {
    font-size: var(--fs-title);
    font-weight: 600;
    margin-block: clamp(20px, 5vw, 55px);
    text-align: center;
  }

  img {
    max-width: 100%;
    height: auto;
  }

  .c-font {
    color: #4272B0
  }
}

.cautionary {
  font-size: clamp(12px, 14px, 16px)
}

section:not([class]) div {
  text-align: center
}

.button-slidechange.change-basic {
  color: #FFFFFF;
  background-image: linear-gradient(90deg, #FFFFFF 50%, #4272B0 50%);
  border: 2px solid #4272B0;

  &:hover {
    color: #4272B0
  }
}

.first-content {
  background-image: linear-gradient(#fff, #fff), url("../img/background_triangle_tile.png");
  background-blend-mode: saturation;
  background-size: cover;
}

.first-content__inner {
  max-width: calc(1024px + 56px);
  margin-inline: auto;
  padding-inline: 28px;

  @media (min-width: 656px) {
    display: flex;
    justify-content: space-between
  }
}

.first-content__logotext {
  flex: 1 0 0;
  display: grid;
  place-content: center;

  .svg-caption {
    margin-block: 30px;
    font-size: 32px;
    font-weight: 600
  }

  .svg_ccj-carekartelive {
    --mb-end: 40px;
    width: min(100%, 372px);
    margin-block-end: var(--mb-end);

    @media (min-width: 656px) {
      --mb-end: 60px
    }
  }

  .button-slidechange {
    width: min(100%, 230px);
    aspect-ratio: 230 / 48;
  }
}

.first-content__logotext__inner {
  display: grid;
  justify-items: center;
  grid-template-columns: minmax(0, 1fr);
  padding-block: 10px;

  @media (min-width: 656px) {
    justify-items: start
  }
}

.first-content__image {
  flex: 1 1 0;
  max-width: 428px;
  margin-block: clamp(50px, 7.5vw, 95px);
  margin-inline: auto;
  background-color: #fff;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.2);

  h3 {
    background-color: #4272B0;
    color: #fff;
    font-size: 23px;
    padding: 0.5em;
    text-align: center
  }
}

.entry_form {
  position: relative;
  padding-bottom: 100%;
  height: 500px;
  overflow: hidden;
  max-width: 100%;

  iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 500px
  }
}

.page-e-consent b {
  font-weight: bold
}

.page-e-consent section,
.page-e-consent__customers-only {
  max-width: calc(1024px + 56px);
  margin-block: 0 50px;
  margin-inline: auto;
  padding-inline: 28px;
  padding-block: 28px
}

.page-e-consent .background-wave {
  --wave-h: clamp(1px, calc(100vw - 375px), calc(142 / 1280 * 100vw));
  font-size: var(--fs-basic);
  background-color: #F8F8F8;
  background-clip: content-box;
  padding-block: var(--wave-h);
  position: relative;

  &::before,
  &::after {
    content: "";
    display: block;
    width: 100%;
    height: var(--wave-h);
    background-color: #F8F8F8;
    clip-path: url(#svg_img-wave01__clip);
    position: absolute;
    z-index: -1
  }

  &::before {
    top: 5px;
  }

  &::after {
    transform: scale(1, -1);
    bottom: 5px;
  }

  small {
    font-size: var(--fs-small)
  }
}

.page-e-consent :has(> .decobox-border) {
  position: relative;
  z-index: 0
}

.page-e-consent .decobox-border {
  --color: #4272B0;
  --round: 10px;
  --bg-boder-w: 4px;
  --bg-boder-w2: calc(var(--bg-boder-w) * 2);
  border: 2px solid var(--color);
  border-radius: var(--round);
  background-color: #FFFFFF;
  position: relative;

  &::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 8px;
    z-index: -1;
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--round);
    background-image:
      repeating-linear-gradient(-45deg, transparent 0 var(--bg-boder-w), var(--color) 0 var(--bg-boder-w2));
  }
}

.page-e-consent .button-slidechange {
  width: min(100%, 300px);
  aspect-ratio: 300 / 48;
}

.function-box {
  --mb-end: 30px;
  --flex-dir: row;
  --type-pos: 0 auto;
  --type-arrow: 100% 100%;
  --head-align: left;

  &.record-list {
    --flex-dir: row-reverse;
    --type-pos: auto 0;
    --type-arrow: 0% 100%;
    --head-align: right;
  }

  @media (min-width: 656px) {
    --mb-end: initial;
    display: flex;
    flex-direction: var(--flex-dir);
    justify-content: center;
    align-items: center;
    gap: clamp(16px, 4.5vw, 62px)
  }
}

.function-box__text {
  flex: 1;
  max-width: 430px;
  margin-inline: auto
}

.function-box__text__type {
  --size-h: 35px;
  --bg-color: #4272B0;
  display: grid;
  place-content: center;
  width: max-content;
  min-width: 100px;
  height: var(--size-h);
  margin-inline: var(--type-pos);
  padding-inline: 1em;
  border-radius: var(--size-h);
  background-color: var(--bg-color);
  font-size: 16px;
  color: #FFFFFF;
  position: relative;

  &::before {
    position: absolute;
    top: calc(100% - 2px);
    right: calc(50% - 4px);
    content: "";
    display: block;
    width: 9px;
    aspect-ratio: 0.75;
    background-color: var(--bg-color);
    clip-path: polygon(0% 0%, 100% 0%, var(--type-arrow))
  }
}

.function-box__text__head {
  margin-block: clamp(10px, 2.5vw, 20px);
  font-size: var(--fs-title);
  font-weight: 600;
  text-align: var(--head-align)
}

.function-box__text__content {
  margin-block-end: var(--mb-end);

  small {
    display: inline-block;
    margin-block-start: 1.5em
  }
}

.function-box__image {
  flex: 1;
  max-width: 424px;
  margin-inline: auto
}

.page-e-consent__explanation {
  p {
    max-width: 840px;
    margin: auto
  }

  .cautionary {
    margin-block: 1em 3em
  }

  .cta {
    margin-block: 1em
  }

  .cta a {
    margin: auto
  }
}

.page-e-consent__explanation__video {
  max-width: 840px;
  aspect-ratio: 1.7777777778;
  margin-inline: auto;
  margin-bottom: 50px
}

.page-e-consent__caption {
  display: grid;
  gap: clamp(20px, 5vw, 40px);
  margin-block: 60px;

  .caption-title {
    margin-block: initial;
    word-break: break-word
  }

  .caption-text01 {
    font-size: var(--fs-title);
    font-weight: 600
  }

  .caption-text02 {
    font-size: var(--fs-basic)
  }

  @media (min-width: 656px) {
    :is(.caption-text01, .caption-text02) {
      text-align: center;
      word-break: keep-all
    }
  }

  div {
    text-align: center
  }
}

.page-e-consent__outline .caption-text02 {
  margin-block: 0 2em
}

.page-e-consent__recommend {
  display: grid;
  gap: clamp(20px, 5vw, 40px);
  margin-block: 60px;

  .caption-text01 {
    font-size: var(--fs-title);
    font-weight: 600
  }

  .caption-text02 {
    font-size: var(--fs-basic)
  }

  @media (min-width: 656px) {
    :is(.caption-text01, .caption-text02) {
      text-align: center;
      word-break: keep-all
    }
  }

  .recommend-box__group {
    --fs-head: 20px;
    --fs-content: 14px;
    display: grid;
    gap: 20px 30px;

    @media (min-width: 536px) {
      --fs-head: clamp(20px, 4vw, 24px);
      --fs-content: clamp(14px, 3vw, 20px)
    }

    @media (min-width: 656px) {
      grid-template-columns: repeat(2, 1fr)
    }

    &.benefits {
      grid-template-columns: repeat(1, 1fr)
    }
  }
}


.page-e-consent__recommend .recommend-box {
  flex: 1;
  padding: 30px;
  display: grid;
  gap: 20px;

  @media (min-width: 656px) {
    grid-template-rows: subgrid;
    grid-row: span 2
  }
}

.page-e-consent__recommend .recommend-box__head {
  display: flex;
  justify-content: center;
  font-size: var(--fs-head);
  word-break: normal;

  @media (min-width: 656px) {
    word-break: keep-all
  }

  .h3-center {
    flex-basis: 8em;
    text-align: center;
    margin: 0 1em
  }

  &::before {
    content: "…";
    transform: rotate(45deg)
  }

  &::after {
    content: "…";
    transform: rotate(-45deg)
  }
}


.page-e-consent__recommend .recommend-box__content {
  display: grid;
  gap: 0.5em;
  font-size: var(--fs-content);
  line-height: 1.5;

  @media (min-width: 656px) {
    align-content: center;
  }

  li {
    margin-inline-start: 1em;
    list-style-type: "・"
  }
}

.page-e-consent__reviews__video {
  max-width: 840px;
  aspect-ratio: 16 / 9;
  margin-inline: auto
}

.page-e-consent__connecting-functions {
  --box-space: 50px;

  @media (min-width: 656px) {
    --box-space: 100px
  }
}

.page-e-consent__connecting-functions .function-box:not(:first-of-type) {
  margin-block-start: var(--box-space)
}

.page-e-consent__target-service {
  background-color: #fff
}

.page-e-consent__target-service_list {
  display: grid;
  justify-content: center;
  gap: 1em;
  max-width: 780px;
  margin: auto;

  @media (min-width: 824px) {
    grid-template-columns: repeat(3, 1fr)
  }
}

.page-e-consent__target-service .list_item {
  margin-bottom: clamp(1.5em, 3em, 5em);
  --color: #F8F8F8;

  dt {
    background-color: var(--color);
    padding: 0.3em;
    text-align: center;
  }

  li {
    padding: 0.3em;
    border: solid 1px #efefef;
  }

  li a {
    padding: 0.5em 0.5em 0.5em 0;
  }

  li a::before {
    content: "";
    display: inline-block;
    background-image: url("../img/page-e-consent/iconmonstr-windows-thin.svg");
    background-repeat: no-repeat;
    background-size: 10px;
    background-position: 0 40%;
    width: 10px;
    height: 10px;
    margin-right: 0.3em;
    opacity: 0.4
  }

  li+li {
    border-top: none
  }
}

.page-e-consent__target-service .cautionary {
  max-width: 780px;
  margin: 0 auto clamp(1.5em, 3em, 5em)
}

.page-e-consent__target-service .cta a {
  margin: auto
}

.page-e-consent__customer-comments__list {
  display: grid;
  justify-content: center;
  gap: 24px;

  @media (min-width: 824px) {
    grid-template-columns: repeat(2, 1fr)
  }
}

.page-e-consent__customer-comments .comment-box {
  --face-icon: 100px;
  --speaker-text: center;
  --comment-fs: 14px;
  display: grid;
  gap: 10px 20px;
  max-width: 520px;
  padding-block: 30px;
  padding-inline: 40px;

  @media (min-width: 536px) {
    --speaker-text: left;
    --comment-fs: 16px;
    display: grid;
    grid-template-columns: var(--face-icon) 1fr;
    padding-inline: 30px
  }
}

.page-e-consent__customer-comments .comment-box__face-icon {
  width: var(--face-icon);
  aspect-ratio: 1;
  margin-inline: auto
}

.page-e-consent__customer-comments .comment-box__content__speaker {
  margin-block-end: 10px;
  font-weight: 600;
  text-align: var(--speaker-text)
}

.page-e-consent__customer-comments .comment-box__content__comment {
  line-height: 1.8;
  font-size: var(--comment-fs)
}

.page-e-consent__questions {
  --color: #F8F8F8;
  --link-c: #3E57BE
}

.page-e-consent__questions__q {
  background-color: var(--color);

  &::before {
    content: "Q"
  }
}

.page-e-consent__questions__a {
  margin-block-end: clamp(20px, 5vw, 30px);
  border: 3px solid var(--color);

  &::before {
    content: "A"
  }
}

.page-e-consent__questions .questions__item {
  padding-block: 1em;
  padding-inline: 3.5em 1.5em;
  line-height: 1.6;
  font-weight: 600;
  position: relative;

  &::before {
    position: absolute;
    left: 1.5em
  }
}

.page-e-consent__questions .questions__link {
  color: var(--link-c);

  &:hover {
    opacity: 0.7
  }
}



.footer__guidance {
  display: block;
  background-color: initial;
  background-image: url("../img/page-e-consent/background_guidance.202509.png");
  padding-block: 28px;

  .footer__guidance__inner {
    display: grid;
    justify-content: center;
    align-content: center;
    max-width: 1024px;
    height: 100%;
    margin-inline: auto;

    @media (min-width:824px) {
      justify-content: start;
    }
  }

  .footer__guidance__box {
    width: min(100%, 420px);
  }

  .img_ccj-careconne.e-consent {
    width: 100%;
    max-height: 200px;
  }

  .button-caption {
    margin-block-start: 30px;
    margin-block-end: 22px;
    font-size: 24px;
    font-weight: 600;
    text-align: center;

    @media (min-width:824px) {
      margin-block-start: 40px;
      margin-block-end: 15px
    }
  }
}