@charset "utf-8";

/* ==============================================================
*  reset
* ============================================================ */
*,::before,::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
:where(html) {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}
:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}
:where(a) {
  text-decoration: none;
}
:where(svg, video, canvas, audio, iframe, embed, object) {
	display: block;
}
:where(img, svg, video) {
  block-size: auto;
  max-inline-size: 100%;
  vertical-align: bottom;
}
:where(svg) {
  fill: currentColor;
  stroke: none;
}
:where(ul, ol) {
  list-style: none;
}
:where(table) {
  border-collapse: collapse;
}
:where(hr) {
  block-size: 0;
  border: none;
  border-block-start: 1px solid;
  color: inherit;
  overflow: visible;
}
:where(input) {
  border-radius: 0;
}
:where(input[type="text"], textarea) {
  padding: 0 2px;
}
:where(button, label, select, summary) {
  cursor: pointer;
}
:where(button, input, textarea, select) {
  border: 1px solid;
  font: inherit;
}
:where(textarea) {
  overflow: auto;
  resize: vertical;
  user-select: auto;
}
:where([disabled]) {
  cursor: default;
}
:where([hidden]) {
  display: none;
}

/* ==============================================================
*  base
* ============================================================ */
:root {
  --color-corp: #e50012;
  --color-main:#22ac38;
  --color-sub:#d0e4ae;
  --txt-color-main:#454545;
  --txt-color-sub:#999;
  --link-color: #e50012;
  --hover-link-color: #ff4c5b;
  --btn-color: ;
  --btn-hover-color: #a0cb43;
  --box-shadow-color: #d0e4ae;
  --header-height: 100px;
  --header-height-sp: clamp(60px, 40.916px + 5.089vw, 80px);
  --pc-side-padding: 20px;
  --sp-side-padding: 20px;
  --font-serif: "Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  --font-logo: "Zen Old Mincho", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  --transY: -3px;
}

html {
  box-sizing: border-box;
  line-height: 1.8;
}

body {
  color: var(--txt-color-main);
  font-family: "Noto Sans JP", "游ゴシック", YuGothic, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
  font-kerning: normal;
  font-feature-settings: "palt";
  font-size: 16px;
  &.is-scroll {
    --header-height: 80px;
  }
}

@media screen and (width <= 768px) {
  body {
    height: 100dvh;
    font-size: clamp(14px, 12.092px + 0.509vw, 16px);
  }
}

a {
  color: var(--link-color);
  transition: color 0.3s;
  &:hover {
    color: var(--hover-link-color);
  }
}


/* ==============================================================
*  common
* ============================================================ */
/* ---------- header ---------- */
.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  height: var(--header-height);
  background-color: #FFF;
  transition: height .3s;
}
@media screen and (width <= 768px) {
  .header {
    height: var(--header-height-sp);
  }
}

.header-inner {
  display: flex;
  align-items: center;
  height: 100%;
  padding-left: 30px;
  background-color: #FFF;
}
@media screen and (width <= 1120px) {
  .header-inner {
    padding-left: var(--pc-side-padding);
  }
}
@media screen and (width <= 768px) {
  .header-inner {
    justify-content: space-between;
    padding: 0 var(--sp-side-padding);
  }
}

.logoInner {
  display: flex;
  align-items: flex-end;
  gap: 0 17px;
  & span.corpName {
    color: var(--txt-color-main);
    font-size: 22px;
    font-weight: 600;
    font-family: var(--font-serif);
    line-height: 1;
    white-space: nowrap;
    & span {
      letter-spacing: -0.1em;
    }
  }
}
@media screen and (width <= 1120px) {
  .logoInner {
    gap: 0 clamp(15px, 10.636px + 0.568vw, 17px);
    & img {
      width: clamp(95px, -31.545px + 16.477vw, 153px);
    }
    & span.corpName {
      font-size: clamp(15px, -0.273px + 1.989vw, 22px);
    }
  }
}
@media screen and (width <= 768px) {
  .logoInner {
    flex-wrap: wrap;
    gap: 0.3em min(2vw,15px);
    & img {
      width: min(17.33vw, 130px);
    }
    & span.corpName {
      font-size: min(2.67vw, 20px);
    }
  }
}

.header-nav {
  display: flex;
  gap: 0 60px;
  height: 100%;
  margin-left: auto;
  padding-left: 40px;
}
@media screen and (width <= 1120px) {
  .header-nav {
    gap: 0 clamp(15px, -83.182px + 12.784vw, 60px);
    padding-left: clamp(20px, -23.636px + 5.682vw, 40px);
  }
}
@media screen and (width <= 768px) {
  .header-nav {
    display: block;
    position: absolute;
    top: 100%;
    right: -80vw;
    width: 80vw;
    height: calc(100dvh - var(--header-height-sp));
    padding-left: 0;
    background-color: #fff;
    overflow-x: hidden;
    overflow-y: auto;
    transition: right .5s;
    .is-open & {
      right: 0;
    }
  }
}

.globalNav-list {
  display: flex;
  align-items: center;
  gap: 0 55px;
  height: 100%;
  & > li {
    position: relative;
    & > a {
      position: relative;
      display: flex;
      flex-direction: column-reverse;
      align-items: center;
      padding: 14px 0;
      color: var(--txt-color-main);
      font-size: clamp(14px, 9.636px + 0.568vw, 16px);
      font-weight: 500;
      line-height: 1;
      text-align: center;
      transition: color 0.3s;
      & span {
        margin-bottom: 1.05em;
        color: var(--txt-color-sub);
        font-size: clamp(12px, 10.951px + 0.137vw, 13px);
      }
      &:hover {
        color: var(--color-main);
      }
    }
  }
}
@media screen and (width <= 1120px) {
  .globalNav-list {
    gap: 0 clamp(15px, -50.455px + 8.523vw, 45px);
    & a {
      font-size: clamp(14px, 9.636px + 0.568vw, 16px);
      & span {
        font-size: clamp(12px, 9.818px + 0.284vw, 13px);
        margin-bottom: clamp(12px, 5.455px + 0.852vw, 15px);
      }
    }
  }
}
@media screen and (width <= 768px) {
  .globalNav-list {
    display: block;
    & > li {
      & > a {
        align-items: flex-start;
        padding: min(3.46vw,26px) min(5.33vw,40px);
        font-size: min(3.46vw,26px);
        background-color: var(--color-main);
        background-color: #fff;
        color: #fff;
        color: var(--txt-color-main);
        & span {
          display: none;
        }
        &::after {
          content: none;
        }
       &:hover {
          color: var(--color-main);
          color: var(--txt-color-main);
        }
      }
    }
  }
}

.megaMenu {
  position: absolute;
  clip-path: inset(0 0 100%);
  transition: all 0.3s;
  visibility: hidden;
  & li {
    & a {
      display: block;
      width: 210px;
      padding: 7px min(1.61vw,20px);
      background-color: #f6faf0;
      /* border-bottom: 1px solid #e4f0d2; */
      color: #454545;
      font-size: clamp(14px, 11.818px + 0.284vw, 15px);
      transition: background 0.3s;
    }
    &:last-child a {
      border-bottom: none;
    }
  }
}
@media screen and (width > 768px) {
  .megaMenu {
    .globalNav-list li:hover & {
      clip-path: inset(0 0 0);
      visibility: visible;
    }
    & a {
      &:hover {
        background-color: #e7e7e7;
        color: var(--color-main);
      }
    }
  }
}
@media screen and (width <= 768px) {
  .megaMenu {
    position: static;
    clip-path: none;
    visibility: visible;
    & li {
      &:not(:last-child) {
        /* border-bottom: 1px solid #ccc; */
      }
      a {
        width: 100%;
        padding: 10px min(5.33vw,40px) 10px min(10.66vw,80px);
        background-color: #fff;
        border-bottom: none;
        color: #666;
        font-size: min(3.46vw,26px);
      }
    }
  }
}

.header-contact {
  & a {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 4px 0;
    justify-content: center;
    width: min(9.67vw,120px);
    height: var(--header-height);
    background-color: var(--color-main);
    text-align: center;
    transition: all 0.3s;
    & span {
      display: block;
      color: #fff;
      font-weight: 400;
      line-height: 1;
      &.en {
        margin-top: 3px;
        font-size: clamp(12px, 10.951px + 0.137vw, 13px);
      }
      &.jp {
        margin-top: 3px;
        font-size: clamp(13px, 10.902px + 0.273vw, 15px);
      }
    }
    &:hover {
      background-color: var(--btn-hover-color);
    }
  }
}
@media screen and (width <= 1120px) {
  .header-contact {
    & a {
      width: 100px;
      & img {
        width: clamp(22px, 11.091px + 1.42vw, 27px);
      }
    }
  }
}
@media screen and (width <= 768px) {
  .header-contact {
    display: none;
  }
}

.header-spContact {
  display: none;
}
@media screen and (width <= 768px) {
  .header-spContact {
    display: block;
    & a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: min(8vw,60px);
      aspect-ratio: 1 / 1;
      background-color: var(--color-main);
      border-radius: 50%;
      & img {
        width: min(3.55vw,27px);
        transform: translateX(-10%);
      }
    }
  }
}

.header-spBtn {
  display: none;
}
@media screen and (width <= 768px) {
  .header-spBtn {
    position: relative;
    display: block;
    flex-shrink: 0;
    width: min(8vw,60px);
    height: auto;
    aspect-ratio: 60/48;
    cursor: pointer;
    & span {
      position: absolute;
      left: 0;
      transform-origin: right center;
      width: min(8vw,60px);
      height: auto;
      aspect-ratio: 60/6;
      background-color: var(--color-main);
      transition: rotate 0.3s, width 0.3s;
      &:nth-child(1) {
        top: 0;
      }
      &:nth-child(2) {
        top: calc(50% - min(0.4vw,3px));
      }
      &:nth-child(3) {
        bottom: 0;
        width: min(5.33vw,40px);
        aspect-ratio: 40/6;
      }
    }
  }
}

.is-open .header-spBtn span {
  &:nth-child(1) {
    rotate: -45deg;
  }
  &:nth-child(2) {
    visibility: hidden;
  }
  &:nth-child(3) {
    rotate: 45deg;
    width: min(8vw,60px);
    aspect-ratio: 60/6;
  }
}

.header-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100vh;
  background-color: rgba(0,0,0,0.7);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
@media screen and (width > 768px) {
  .header-bg {
    display: none;
  }
}

.is-open .header-bg {
  opacity: 1;
  visibility: visible;
}

/* ---------- footer ---------- */
.footer {
  position: relative;
  background-color: #f4f4f4;
}

.footer-top {
  padding: 60px 0;
}
@media screen and (width <= 768px) {
  .footer-top {
    padding: 30px 0 0 0;
  }
}

.footer-inner {
  padding: 0 var(--pc-side-padding);
}
@media screen and (width <= 768px) {
  .footer-inner {
    padding: 0;
  }
}

.footer-logo {
  text-align: center;
  display: block;
}
@media screen and (width <= 768px) {
  .footer-logo img {
    width: min(30vw, 200px);
  }
}

.footerNav {
  margin-top: 40px;
  & > ul {
    display: flex;
    gap: 0 66px;
    justify-content: center;
    & li {
      max-width: 210px;
    }
    & a {
      color: var(--txt-color-main);
      font-size: 18px;
      font-weight: 500;
      line-height: 1.35;
      transition: color .3s;
      &:hover {
        color: var(--txt-color-sub);
      }
    }
  }
  & > ul ul {
    margin-top: 10px;
    & li {
      position: relative;
      display: flex;
      align-items: center;
      margin-top: 5px;
      &::before {
        display: inline-block;
        width: 1em;
        margin-right: 8px;
        color: var(--color-main);
        content: "ー";
      }
    }
    & a {
      font-size: 16px;
      font-weight: 400;
      line-height: 1.37;
    }
  }
}
@media screen and (width <= 1120px) {
  .footerNav {
    & > ul {
      gap: 0 50px;
      & a {
        font-size: clamp(16px, 11.636px + 0.568vw, 18px);
      }
    }
    & > ul ul {
      & a {
        font-size: clamp(14px, 9.636px + 0.568vw, 16px);
      }
    }
  }
}
@media screen and (width <= 768px) {
  .footerNav {
    margin-top: 30px;
    & > ul {
      display: block;
      gap: unset;
      & li {
        width: 100%;
        max-width: unset;
        border-top: 1px solid #e5e5e5;
      }
      & a {
        display: block;
        padding: 1em var(--sp-side-padding);
        font-size: clamp(13px, 6.321px + 1.781vw, 20px);
      }
    }
    & ul ul {
      margin-top: 0;
      background-color: #e5e5e5;
      & li {
        display: block;
        margin-top: 0;
        border-top: 1px solid #d5d5d5;
        &:first-child {
          border: none;
        }
        &::before {
          display: none;
        }
      }
      & a {
        padding-left: calc(var(--sp-side-padding) + 1em);
        font-size: clamp(13px, 6.321px + 1.781vw, 20px);
      }
    }
  }
}

.footer-bottom {
  padding: 60px 0;
  background-color: #999;
  & ul {
    display: flex;
    gap: 0 36px;
    justify-content: center;
  }
  & a {
    color: #FFF;
    font-size: 14px;
    line-height: 1.37;
  }
}
@media screen and (width <= 1120px) {
  .footer-bottom {
    & ul {
      gap: 0 30px;
    }
    & a {
      font-size: clamp(12px, 7.636px + 0.568vw, 14px);
    }
  }
}
@media screen and (width <= 768px) {
  .footer-bottom {
    padding: 30px 0;
    & .footer-inner {
      padding: 0 var(--sp-side-padding);
    }
    & ul {
      flex-wrap: wrap;
      gap: 1em 3em;
    }
    & a {
      font-size: clamp(13px, 8.229px + 1.272vw, 18px);
    }
  }
}

.footerCopy {
  margin-top: 44px;
  color: #FFF;
  text-align: center;
  & small {
    font-size: 14px;
  }
}
@media screen and (width <= 1120px) {
  .footerCopy {
    margin-top: clamp(30px, -0.545px + 3.977vw, 44px);
    & small {
      font-size: clamp(12px, 7.636px + 0.568vw, 14px);
    }
  }
}
@media screen and (width <= 768px) {
  .footerCopy {
    margin-top: 30px;
    & small {
      font-size: min(2.93vw, 22px);
    }
  }
}

.pageTop {
  position: absolute;
  top: -80px;
  right: 40px;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-out;
  & button {
    position: relative;
    width: 60px;
    height: auto;
    aspect-ratio: 1;
    border: none;
    border-radius: 50%;
    background: url(/assets/img/common/icn_pagetop.svg) no-repeat center center var(--txt-color-main);
    -webkit-appearance: none;
    appearance: none;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    transition: all 0.3s ease-out;
    &:hover {
      background-color: #333c;
      transform: translateY(var(--transY));
    }
  }
  &.is-fixed {
    position: fixed;
    top: initial;
    bottom: 20px;
  }
  &.is-show {
    opacity: 1;
    pointer-events: auto;
  }
}
@media screen and (width <= 1120px) {
  .pageTop {
    right: 20px;
    top: -60px;
    & button {
      width: 40px;
    }
  }
}

/* ---------- main ---------- */
.main {
  padding-top: var(--header-height);
}
@media screen and (width <= 768px) {
  .main {
    padding-top: var(--header-height-sp);
  }
}

.breadcrumb {
  padding: 20px 0 40px;
  & ol {
    display: flex;
    gap: 0 30px;
    width: 100%;
    max-width: 1380px;
    margin: 0 auto;
    padding: 0 20px;
    & li {
      position: relative;
      color: #454545;
      font-size: min(1.82vw,16px);
      line-height: 1.37;
      &:not(:first-child)::before {
        position: absolute;
        top: 50%;
        left: -19px;
        rotate: 45deg;
        translate: 0 -50%;
        width: 5px;
        height: auto;
        aspect-ratio: 1;
        border-top: 1px solid #454545;
        border-right: 1px solid #454545;
        content: "";
      }
    }
    & a {
      color: #22ac38;
    }
  }
}
@media screen and (width <= 768px) {
  .breadcrumb {
    padding: min(2.13vw,16px) 0 min(3.2vw,24px);
    & ol {
      padding: 0 min(5.33vw,40px);
      & li {
        font-size: min(2.93vw,22px);
      }
    }
  }
}

.pageHeader {
  position: relative;
}

.pageHeader-inner {
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
  padding: min(2.58vw,33px) min(5.71vw,80px);
  background-color: #ffffffe6;
  & h1 {
    color: #454545;
    font-family: var(--font-serif);
    font-size: min(4.28vw,60px);
    font-weight: 500;
    line-height: 1.08;
  }
  & p {
    margin-top: min(1.82vw,20px);
    color: #22ac38;
    font-size: min(1.82vw,20px);
    line-height: 1.1;
    letter-spacing: 0.03em;
  }
}
@media screen and (width <= 768px) {
  .pageHeader-inner {
    max-width: calc(100% - min(10vw,75px));
    padding: min(2.66vw,20px) min(5.33vw,40px) min(4vw,30px);
    & h1 {
      margin-left: -0.2em;
      font-size: min(8vw,60px);
    }
    & p {
      margin-top: min(1.33vw,10px);
      font-size: min(2.66vw,20px);
    }
  }
}

.pageHeader-bg {
  width: calc(100% - min(5.71vw,80px));
  height: auto;
  max-height: 410px;
  aspect-ratio: 1420/410;
  & img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
@media screen and (width <= 768px) {
  .pageHeader-bg {
    width: calc(100% - min(5.33vw,40px));
    aspect-ratio: 712/400;
  }
}

.pageSection {
  padding: min(9.67vw,120px) 0;
  &._gray {
    background-color: #f4f4f4;
  }
  &._green {
    background-color: #f5faef;
  }
  &._pageNav {
    padding-bottom: 0;
  }
}
@media screen and (width <= 768px) {
  .pageSection {
    padding: min(16vw,120px) 0;
    &:first-of-type {
      padding-top: min(8vw,60px);
    }
    &._pageNav {
      padding-top: min(10.66vw,80px);
      padding-bottom: min(6.66vw,50px);
    }
  }
}

.pageSection-inner {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}
@media screen and (width <= 768px) {
  .pageSection-inner {
    max-width: 100%;
    padding: 0 min(5.33vw,40px);
  }
}

.pageSecHeader {
  margin-bottom: min(4.83vw,60px);
  & h2 {
    color: #454545;
    font-family: var(--font-serif);
    font-size: min(4.03vw,50px);
    font-weight: 500;
    line-height: 1.1;
    text-align: center;
    & span {
      position: relative;
      display: inline-block;
      padding-bottom: min(3.62vw,45px);
      &::after {
        position: absolute;
        bottom: 0;
        left: 50%;
        translate: -50% 0;
        width: min(11.69vw,145px);
        height: auto;
        aspect-ratio: 145/5;
        background: url(/assets/img/service/fm/bg_header_dotted.webp) no-repeat center/contain;
        content: "";
      }
    }
  }
}
@media screen and (width <= 768px) {
  .pageSecHeader {
    margin-bottom: min(8vw,60px);
    & h2 {
      font-size: min(6.66vw,50px);
      line-height: 1.3;
      & span {
        padding-bottom: min(4.8vw,36px);
        &::after {
          width: min(23.2vw,174px);
        }
      }
    }
  }
}

.pageHeader2 {
  padding-top: min(2.09vw,26px);
  padding-bottom: min(0.64vw,8px);
  & > div {
    max-width: 1380px;
    margin: 0 auto;
    padding: 0 20px;
  }
  & h1 {
    font-family: var(--font-serif);
    font-size: min(4.28vw,60px);
    font-weight: 500;
    line-height: 1.08;
  }
}
@media screen and (width <= 768px) {
  .pageHeader2 {
    padding-top: min(6vw,45px);
    padding-bottom: min(2.66vw,20px);
    & > div {
      max-width: 100%;
      padding: 0 min(5.33vw,40px);
    }
    & h1 {
      font-size: min(6.66vw,50px);
    }
  }
}

.pageSecBody {
  & :where(p) {
    font-size: min(1.82vw,16px);
  }
  & > p {
    text-align: center;
  }
  & .strong {
    font-size: min(1.82vw,18px);
    font-weight: 500;
  }
}
@media screen and (width <= 768px) {
  .pageSecBody {
    & > p {
      text-align: left;
    }
    & .strong {
      font-size: min(4.53vw,34px);
      line-height: 1.82;
    }
  }
}

.pageSection2 {
  padding: min(4.83vw,60px) 0;
  &:last-child {
    padding-bottom: min(9.67vw,120px);
  }
  & > div {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px;
  }
  & h1, & h2 {
    margin-bottom: min(2.41vw,30px);
    font-family: var(--font-serif);
    font-size: min(3.22vw,40px);
    font-weight: 500;
    line-height: 1.1;
  }
  & h3 {
    margin-top: min(2.82vw,35px);
    margin-bottom: min(0.64vw,8px);
    font-family: var(--font-serif);
    font-size: min(2.41vw,30px);
    font-weight: 500;
    &::before {
      translate: 0 calc(min(0.4vw,5px) * -1);
      display: inline-block;
      width: min(1.04vw,13px);
      height: auto;
      aspect-ratio: 1;
      margin-right: 7px;
      background-color: #454545;
      content: "";
    }
  }
  & h4 {
    margin-top: min(2.09vw,26px);
    margin-bottom: min(0.32vw,4px);
  }
  & :where(p) {
    margin-top: min(0.96vw,12px);
    font-size: min(1.82vw,16px);
    line-height: 2;
    & a {
      color: var(--color-main);
      text-decoration: underline;
    }
  }
  & ol {
    margin-top: min(0.64vw,8px);
    margin-left: 1em;
    list-style: decimal;
    & > li {
      margin-left: 1.3em;
      line-height: 2;
    }
    & ul {
      margin: 0;
    }
    & ol {
      margin: min(0.8vw,10px) 0 min(1.12vw,14px);
      padding: 0;
      list-style: none;
      & li {
        margin: 0;
        counter-increment: count;
        &::before {
          display: inline-block;
          margin-right: 3px;
          content: "(" counter(count) ")";
        }
      }
    }
  }
  & ul {
    margin-top: min(1.2vw,15px);
    margin-left: min(1.61vw,20px);
    & > li {
      position: relative;
      padding-left: 1em;
      line-height: 2;
      &::before {
        position: absolute;
        top: 0;
        left: 0;
        content: "・";
      }
    }
  }
}
@media screen and (width <= 768px) {
  .pageSection2 {
  &:last-child {
    padding-bottom: min(26.67vw,100px);
  }
  & > div {
    max-width: 100%;
    padding: 0 min(5.33vw,40px);
  }
    & h1, & h2 {
      margin-bottom: min(4.66vw,35px);
      font-size: min(6.13vw,46px);
      line-height: 1.47;
    }
    & h3 {
      margin-top: min(6.66vw,50px);
      margin-bottom: min(1.73vw,13px);
      font-size: min(5.33vw,40px);
      line-height: 1.62;
      &::before {
        width: min(2.66vw,20px);
        margin-right: min(1.73vw,13px);
      }
    }
    & h4 {
      margin-top: min(3.33vw,25px);
      margin-bottom: min(1.73vw,13px);
      font-size: min(3.73vw,28px);
      line-height: 1.85;
    }
    & :where(p) {
      font-size: min(3.73vw,28px);
      line-height: 1.85;
    }
    & p + p {
      margin-top: min(4.66vw,35px);
    }
    & ol {
      margin-top: min(4vw,30px);
      margin-left: min(5.33vw,40px);
      & > li {
        font-size: min(3.73vw,28px);
        line-height: 1.85;
      }
      & ol {
        padding-left: 1.2em;
        text-indent: -0.61em;
      }
    }
    & ul {
      margin-top: min(4.66vw,35px);
      margin-left: 2em;
      & > li {
        font-size: min(3.73vw,28px);
        line-height: 1.85;
      }
    }
  }
}


/* ==============================================================
*  utility
* ============================================================ */
@media screen and (width > 768px) {
  .hidden-pc {
    display: none;
  }
}
@media screen and (width <= 768px) {
  .hidden-sp {
    display: none;
  }
}

.txt-center {
  text-align: center !important;
}

.txt-right {
  text-align: right !important;
}

.txt-left {
  text-align: left !important;
}