@layer {
  *,
  *::after,
  *::before {
    box-sizing: border-box;
  }
  :focus-visible {
    outline-offset: 3px;
  }
  html {
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
  }
  html {
    line-height: 1.5;
  }
  html {
    scrollbar-gutter: stable;
  }
  body {
    margin: 0;
  }
  h1 {
    font-size: 2em;
    margin-block: 0.67em;
  }
  h2 {
    margin: 0;
  }
  abbr[title] {
    cursor: help;
    text-decoration-line: underline;
    text-decoration-style: dotted;
  }
  @media (forced-colors: active) {
    mark {
      color: HighlightText;
      background-color: Highlight;
    }
  }
  audio,
  iframe,
  img,
  svg,
  video {
    max-block-size: 100%;
    max-inline-size: 100%;
  }
  fieldset {
    min-inline-size: 0;
  }
  label:has(+ input:not([type="radio"], [type="checkbox"]), select, textarea) {
    display: block;
  }
  textarea:not([rows]) {
    min-block-size: 6em;
  }
  img {
    max-width: 100%;
    height: auto;
  }
  button,
  input,
  select,
  textarea {
    font-family: inherit;
    font-size: inherit;
  }
  [type="search"] {
    -webkit-appearance: textfield;
  }
  @supports (-webkit-touch-callout: none) {
    [type="search"] {
      border: 1px solid -apple-system-secondary-label;
      background-color: canvas;
    }
  }
  input:where([type="tel"], [type="url"], [type="email"], [type="number"]):not(:placeholder-shown) {
    direction: ltr;
  }
  table {
    border-collapse: collapse;
    border: 1px solid;
  }
  th,
  td {
    border: 1px solid;
    padding: 0.25em 0.5em;
    vertical-align: top;
  }
  dialog::backdrop {
    background: oklch(0% 0 0 / 0.3);
  }
  dialog,
  [popover],
  dialog::backdrop {
    opacity: 0;
    transition:
      opacity 150ms ease-out,
      display 150ms allow-discrete,
      overlay 150ms allow-discrete;
  }
  dialog[open],
  :popover-open,
  dialog[open]::backdrop {
    opacity: 1;
  }
  @starting-style {
    dialog[open],
    :popover-open,
    dialog[open]::backdrop {
      opacity: 0;
    }
  }
  [hidden]:not([hidden="until-found"]) {
    display: none !important;
  }
  img {
    display: block;
  }
  summary {
    cursor: default;
  }
  iframe {
    border: none;
  }
  @supports (position-area: block-end span-inline-end) {
    [popover] {
      margin: 0;
      position-area: block-end span-inline-end;
    }
  }
}

@font-face {
  font-family: "Local Noto Sans JP";
  src: local("Noto Sans JP");
}
html {
  font-family: "Local Noto Sans JP", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-optical-sizing: auto;
  font-style: normal;
}
a {
  transition: 0.3s;
}
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}
.main-visual {
  position: relative;
  display: flex;
  justify-content: center;
  padding: 32px 127px;
  background-color: #fff1eb;
  @media screen and (width <= 1199px) {
    padding: 6vw 4.5vw;
  }
  .cta__action {
    position: absolute;
    right: -29px;
    bottom: 52px;
    max-width: 458px;
    padding: 21px 53px;
    @media screen and (width <= 1199px) {
      position: relative;
      right: 0;
      bottom: 0;
      width: calc(100% - 11vw);
      max-width: 656px;
      margin-top: 3vw;
      margin-left: 5.5vw;
      margin-right: 5.5vw;
      margin-inline: auto;
      padding: 15px 24px;
    }
    .cta__action-title {
      font-size: 2.25rem;
      @media screen and (width <= 1199px) {
        font-size: 1.375rem;
      }
    }
    .cta__action-icon {
      width: 44px;
      height: 44px;
      @media screen and (width <= 1199px) {
        width: 26px;
        height: 26px;
      }
    }
  }
}
.main-visual__inner {
  position: relative;
}
.main-visual-notes {
  position: absolute;
  left: 22px;
  bottom: -8px;
  color: #98989b;
  font-size: 0.625rem;
  @media screen and (width <= 1199px) {
    position: relative;
    left: 0;
    bottom: 0;
    display: flex;
    gap: 20px;
    padding-top: 15px;
    padding-bottom: calc(4vw - 15px);
    padding-left: 2.5vw;
  }
  p {
    margin: 5px 0;
    @media screen and (width <= 1199px) {
      margin: 0;
    }
  }
  a {
    color: #98989b;
    &:hover {
      text-decoration: none;
    }
  }
}
.main-visual-bnr {
  display: flex;
  justify-content: center;
  padding: 24px 157px;
  @media screen and (width <= 1199px) {
    padding: 6.5vw 15vw;
  }
}

.cta {
  padding: 60px 40px 60px 40px;
  background-color: #fffaf5;
  @media screen and (width <= 1199px) {
    padding: 32px 6vw;
  }
}
.cta__inner {
  display: flex;
  flex-direction: column;
  gap: 36px;
  @media screen and (width <= 1199px) {
    gap: 16px;
  }
}
.cta__lead {
  color: #001758;
  text-align: center;
  font-size: 3rem;
  font-weight: 900;
  @media screen and (width <= 1199px) {
    font-size: 1.125rem;
  }
}
.cta__action {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 656px;
  margin-inline: auto;
  padding: 25px 68px;
  border-radius: 15px;
  border: 2.704px solid #fc6d26;
  box-shadow: 0 7.726px 23.179px 0 rgba(197, 21, 2, 0.25);
  text-decoration: none;
  line-height: normal;
  background-color: #fc6d26;
  color: #fff;
  @media screen and (width <= 1199px) {
    width: 80vw;
    padding: 15px 24px;
  }
  @media screen and (1199px < width) {
    &:hover {
      transform: scale(1.0125, 1.025);
      box-shadow: 0 4px 12px 0 rgba(197, 21, 2, 0.25);
      background-color: #fff;
      color: #fc6d26;
      rect {
        fill: #fc6d26;
      }
      path {
        fill: #fff;
      }
    }
  }
}
.cta__action-title {
  font-size: 3.25rem;
  font-weight: 900;
  @media screen and (width <= 1199px) {
    width: calc(100% - 20px);
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
  }
  span {
    position: relative;
    text-box: trim-both cap alphabetic;
    &::before {
      content: "";
      position: absolute;
      left: calc(50% - 6px);
      top: calc(50% - 46px);
      width: 12px;
      height: 12px;
      background-color: currentColor;
      border-radius: 50%;
      @media screen and (width <= 1199px) {
        left: calc(50% - 3px);
        top: calc(50% - 19px);
        width: 6px;
        height: 6px;
      }
    }
  }
}
.cta__action-icon {
  width: 57px;
  height: 57px;
  @media screen and (width <= 1199px) {
    width: 20px;
    height: 20px;
  }
  svg {
    rect,
    path {
      transition: 0.3s;
    }
  }
}
.cta__link {
  text-align: center;
  a {
    color: #2387f2;
    font-size: 1.5rem;
    font-weight: 700;
    @media screen and (width <= 1199px) {
      font-size: 1rem;
    }
    &:hover {
      text-decoration: none;
    }
  }
}

.features {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 47px;
  padding: 80px 0;
  background-color: #f9fafb;
  @media screen and (width <= 1199px) {
    gap: 20px;
    padding: 48px 8vw;
  }
}
.features__header {
  padding: 0 80px;
  @media screen and (width <= 1199px) {
    padding: 0;
  }
}
.features__content {
  padding: 0 180px;
  @media screen and (width <= 1199px) {
    padding: 0;
  }
}
.features__link {
  a {
    color: #2387f2;
    font-size: 1.5rem;
    font-weight: 700;
    @media screen and (width <= 1199px) {
      font-size: 1rem;
    }
    &:hover {
      text-decoration: none;
    }
  }
}

.benefits {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 48px;
  padding: 80px 40px;
  @media screen and (width <= 1199px) {
    gap: 0;
    padding: 0;
  }
}
.benefits__header {
  @media screen and (width <= 1199px) {
    padding: 48px 4vw 32px;
  }
}
.benefits__content-top {
  @media screen and (width <= 1199px) {
    padding: 0 4vw;
  }
}
.benefits__content-bottom {
  @media screen and (width <= 1199px) {
    padding: 32px 4vw 48px;
  }
}

.example {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 40px;
  padding: 80px 40px;
  @media screen and (width <= 1199px) {
    gap: 16px;
    padding: 48px 4vw;
  }
}
.example__header {
  @media screen and (width <= 1199px) {
    padding: 0 7vw;
  }
}
.example__content {
  @media screen and (width <= 1199px) {
  }
}
.example__notes {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 1360px;
  padding: 0 40px;
  margin-top: 45px;
  margin-inline: auto;
  font-size: 0.8125rem;
  color: #7a7f88;
  line-height: 1.4;
  @media screen and (width <= 1199px) {
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 0 4vw;
    gap: 3px;
    font-size: 0.5625rem;
  }
  p {
    margin: 0 0 0 13px;
    text-indent: -13px;
    @media screen and (width <= 1199px) {
      margin: 0 0 0 9px;
      text-indent: -9px;
    }
  }
}
.example__link {
  a {
    color: #2387f2;
    font-size: 1.5rem;
    font-weight: 700;
    @media screen and (width <= 1199px) {
      font-size: 1rem;
    }
    &:hover {
      text-decoration: none;
    }
  }
}

.flow {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 24px;
  padding: 64px 40px;
  @media screen and (width <= 1199px) {
    padding: 48px 8vw;
    background: #f9fafb;
  }
}

.support {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 32px;
  padding: 64px 40px;
  background-color: #f9fafb;
  @media screen and (width <= 1199px) {
    gap: 24px;
    padding: 48px 4vw;
    background-color: #fff;
  }
}

.footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f7f8fc;
  gap: 36px;
  padding: 48px 40px 64px;
  @media screen and (width <= 1199px) {
    gap: 18px;
    padding: 24px 4vw 32px;
  }
}
.copyright {
  color: #7a7f88;
  @media screen and (width <= 1199px) {
    font-size: 0.625rem;
  }
}
