*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box; }

@media screen and (max-width: 599px) {
  #wrap {
    overflow: hidden; } }
#wrap #contents section {
  position: relative; }
  @media screen and (min-width: 1025px) {
    #wrap #contents section .pc_line #line_01 {
      width: 100%;
      z-index: 0;
      position: absolute;
      top: 0; }
    #wrap #contents section .pc_line #line_02 {
      width: 100%;
      z-index: 0;
      position: absolute;
      top: 20%; }
    #wrap #contents section .pc_line #line_10 {
      width: 100%;
      z-index: 0;
      position: absolute;
      top: 23%; } }
  @media screen and (max-width: 1024px) {
    #wrap #contents section .pc_line {
      display: none; } }
  #wrap #contents section .sp_line {
    display: none; }
    @media screen and (max-width: 1024px) {
      #wrap #contents section .sp_line {
        position: absolute;
        display: block;
        width: 100%;
        height: 100%; }
        #wrap #contents section .sp_line #line_01_sp {
          z-index: 0;
          position: absolute;
          top: 30%; }
        #wrap #contents section .sp_line #line_02_sp {
          position: absolute;
          bottom: -14%; } }
  #wrap #contents section .bubble_01 {
    width: 390px;
    height: 390px;
    position: absolute;
    top: -5%;
    right: 10%;
    transform: rotate(-67deg);
    background-image: linear-gradient(45deg, rgba(225, 226, 253, 0.5), rgba(236, 231, 252, 0.5));
    animation: bubble_03 20s infinite;
    mix-blend-mode: multiply;
    z-index: 1;
    pointer-events: none; }
    @media screen and (max-width: 599px) {
      #wrap #contents section .bubble_01 {
        position: absolute;
        top: -20%;
        right: -15%;
        width: 85%;
        height: 300px;
        z-index: 99;
        transform: rotate(0);
        background-image: linear-gradient(45deg, rgba(225, 226, 253, 0.6), rgba(236, 231, 252, 0.6));
        animation: bubble_03 20s infinite; } }
  #wrap #contents section .bubble_02 {
    width: 670px;
    height: 620px;
    position: absolute;
    bottom: 20%;
    left: 10%;
    transform: rotate(85deg);
    background-image: linear-gradient(45deg, rgba(225, 226, 253, 0.5), rgba(236, 231, 252, 0.5));
    animation: bubble_04 20s infinite;
    mix-blend-mode: multiply;
    pointer-events: none; }
    @media screen and (max-width: 599px) {
      #wrap #contents section .bubble_02 {
        position: absolute;
        width: 85%;
        height: 370px;
        bottom: -35%;
        left: auto;
        right: -5%;
        transform: rotate(0);
        background-image: linear-gradient(45deg, rgba(225, 226, 253, 0.6), rgba(236, 231, 252, 0.6));
        animation: bubble_04 20s infinite; } }
  #wrap #contents section .bubble_03 {
    width: 280px;
    height: 255px;
    position: absolute;
    top: 5%;
    left: 25%;
    transform: rotate(82deg);
    background-image: linear-gradient(45deg, rgba(225, 226, 253, 0.5), rgba(236, 231, 252, 0.5));
    animation: bubble_01 20s infinite;
    mix-blend-mode: multiply;
    pointer-events: none; }
    @media screen and (max-width: 1024px) {
      #wrap #contents section .bubble_03 {
        display: none; } }
  #wrap #contents section .sectionInner h2 {
    opacity: 0;
    transition: all 1s; }
    #wrap #contents section .sectionInner h2.active, #wrap #contents section .sectionInner h2.is-show {
      opacity: 1; }
  #wrap #contents section .sectionInner .titleBlock {
    margin: 35px 0 0 40px; }
    @media screen and (max-width: 1024px) {
      #wrap #contents section .sectionInner .titleBlock {
        text-align: center;
        margin: 20px 0; } }
    #wrap #contents section .sectionInner .titleBlock p {
      opacity: 0;
      transition: opacity 1.5s ease; }
      #wrap #contents section .sectionInner .titleBlock p em {
        font-family: "fot-tsukuaoldmin-pr6n", "serif";
        font-weight: 300;
        font-style: normal;
        font-size: 2.4375em;
        line-height: 1.6;
        letter-spacing: 0.18em;
        background: url(/assets/img/philosophy/text_bg.webp) no-repeat 50%/800% 100%;
        background-clip: text;
        -webkit-background-clip: text;
        background-position-x: 100%;
        color: transparent;
        display: inline-block;
        transition: background-position 2.5s ease-in-out; }
        @media screen and (max-width: 599px) {
          #wrap #contents section .sectionInner .titleBlock p em {
            display: block;
            font-size: 2em;
            /*font-size: 1.5em;*/
            text-align: left; } }
        #wrap #contents section .sectionInner .titleBlock p em span {
          display: block; }
          #wrap #contents section .sectionInner .titleBlock p em span:nth-child(2) {
            margin-left: 2.3em;
            /*margin-left: 2.5em;*/ }
          #wrap #contents section .sectionInner .titleBlock p em span:nth-child(3) {
            margin-left: 1.75em; }
          #wrap #contents section .sectionInner .titleBlock p em span:last-child {
            margin-left: 6em; }
      #wrap #contents section .sectionInner .titleBlock p.is-show {
        opacity: 1; }
        #wrap #contents section .sectionInner .titleBlock p.is-show em {
          background-position-x: 0; }
  #wrap #contents section .sectionInner .headingBlock h3 {
    display: grid;
    grid-template-columns: 5px 1fr;
    align-items: center;
    gap: 0 10px;
    font-size: 1em; }
    @media screen and (max-width: 599px) {
      #wrap #contents section .sectionInner .headingBlock h3 {
        /*font-size: 0.875em;*/ } }
    #wrap #contents section .sectionInner .headingBlock h3::before {
      content: '';
      width: 5px;
      height: 1px;
      background-color: #596072;
      margin-top: 0.25em; }
  #wrap #contents section .sectionInner .textBlock {
    display: grid;
    opacity: 0;
    transform: translateY(20px);
    transition: all 1s; }
    #wrap #contents section .sectionInner .textBlock.active, #wrap #contents section .sectionInner .textBlock.is-show {
      opacity: 1;
      transform: translateY(0); }
    #wrap #contents section .sectionInner .textBlock.fv {
      transition: all 1s 1s; }
    #wrap #contents section .sectionInner .textBlock dl dt {
      font-size: 1.5em;
      margin: 20px 0 40px; }
      @media screen and (max-width: 599px) {
        #wrap #contents section .sectionInner .textBlock dl dt {
          font-size: 1.25em;
          /*font-size: 1.125em;*/
          margin: 20px 0; } }
      #wrap #contents section .sectionInner .textBlock dl dt:nth-of-type(2) {
        margin: 40px 0; }
      #wrap #contents section .sectionInner .textBlock dl dt.no-margin {
        font-size: 0;
        margin: 0; }
    #wrap #contents section .sectionInner .textBlock dl dd {
      line-height: 2; }
      @media screen and (max-width: 599px) {
        #wrap #contents section .sectionInner .textBlock dl dd {
          line-height: 1.8; } }
      #wrap #contents section .sectionInner .textBlock dl dd .sign {
        display: block;
        max-width: 270px;
        margin: 40px 0 0 auto; }
        @media screen and (max-width: 599px) {
          #wrap #contents section .sectionInner .textBlock dl dd .sign {
            max-width: 180px; } }
    #wrap #contents section .sectionInner .textBlock.con_01 {
      grid-template-columns: minmax(0, 1fr) minmax(0, 540px); }
    #wrap #contents section .sectionInner .textBlock.con_02 {
      grid-template-columns: minmax(0, 1fr) minmax(0, 540px) minmax(0, 1fr);
      margin: 75px 0 130px; }
      @media screen and (max-width: 1024px) {
        #wrap #contents section .sectionInner .textBlock.con_02 {
          margin: 50px 0; } }
    #wrap #contents section .sectionInner .textBlock.con_03 {
      grid-template-columns: minmax(0, 1fr) minmax(0, 540px); }
    #wrap #contents section .sectionInner .textBlock.con_04 {
      grid-template-columns: minmax(0, 1fr) minmax(0, 830px) minmax(0, 1fr);
      margin: 150px 0 0; }
      @media screen and (max-width: 1024px) {
        #wrap #contents section .sectionInner .textBlock.con_04 {
          margin: 50px 0 0; } }
