@charset "utf-8";
/**
 * Layout: layout.css
 * ページ全体を構成する「器（大枠）」のスタイルを管理する。
 * ヘッダー、フッター、メインエリア、サイドバー、コンテナ幅、グリッドシステムなど、
 * 複数のページで共通して使用されるレイアウト構造を定義。
 * * 運用ルール:
 * - 接頭辞「l-」を使用すること。
 * - 原則として、内部の細かなパーツ（ボタン、装飾等）のスタイルは記述しない。
 * - ページ固有のレイアウト調整が必要な場合は Projectレイヤーでの上書きを検討すること。
 */


 /* ==========================================================================
   Layout: Container (.l-container)
   役割: コンテンツ幅指定
   ========================================================================== */
   .l-container {
    margin: 0 auto;
    padding: 0 20px;
    }

  @media screen and (min-width: 768px) {
    .l-container {}
  }/* min-width: 768px */

  @media screen and (min-width: 1025px) {
    .l-container {}
  }/* min-width: 1025px */

  @media screen and (min-width: 1040px) {
    .l-container {
      padding: 0;
      max-width: 1000px;
    }
  }/* min-width: 1040px */

 /* ==========================================================================
   Layout: Footer (.l-footer)
   役割: フッター指定
   ========================================================================== */
    .l-footer{
      margin: 2.6875rem 0 0;
    }

    .l-footer__inner{
      padding: 0 var(--contens-margin) 5.25rem;
      position: relative;
    }

    .l-footer-logo{
      text-align: center;
    }

    .l-footer-logo__link{
      display: inline-block;      
      margin: 0 auto;
      max-width: 170px;
    
    }

    .l-footer-logo__caption{
      font-size: 1rem;
      font-weight: var(--font-weight-bold);
      line-height: 1.25;
      margin: 0.8em 0 0;
    }

    .l-footer-trustee{
      margin: 1rem 0 0;
    }

    .l-footer-trustee__list{
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem 1rem;
      justify-content: center;
      list-style: none;
      margin: 0.5rem 0 0;
      padding: 0;
    }

    .l-footer-trustee__item{
      font-size: 1rem;
      font-weight: var(--font-weight-medium);
    }
    .l-footer-trustee__item--theme{
      display: block;
      font-weight: var(--font-weight-bold);
      text-align: center;
      width: 100%;
    }

    .l-footer-trustee__link{
      display: inline-block;
      text-decoration: none;
    }

    .l-footer-deco{
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .l-footer-deco__item{
      position: absolute;
    }
    .l-footer-deco__item:nth-of-type(1){
      bottom: 2.5rem;
      height: 20px;
      left: var(--contens-margin);
      width: 41px;
    }
    .l-footer-deco__item:nth-of-type(2){
      bottom: 0;
      height: 40px;
      left: 20vw;
      width: 67px;
    }
    .l-footer-deco__item:nth-of-type(3){
      bottom: 1.5rem;
      height: 25px;
      right: var(--contens-margin);
      width: 77px;
    }

    .copyright{
      padding: 1.5rem 0 0;
      position: relative;
    }
    .copyright:before{
      background-image: url(../images/common/illust/fuji_mountaion_blue01.svg);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      content: "";
      display: inline-block;
      height: 59px;
      position: absolute;
      right: 3.25rem;
      top: 0;
      width: 145px;
    }

    .copyright__text{
      font-size: 0.875rem;
      font-weight: 400;
      line-height: 1;
      margin: 0;      
      padding: 1.5rem 0 1.8rem;
      position: relative;
      z-index: var(--zindex-normal);
    }

    @media screen and (min-width: 768px) {
      .l-footer{}

      .l-footer__inner{}

      .l-footer-logo{}

      .l-footer-logo__link{}

      .l-footer-logo__caption{}

      .l-footer-trustee{}

      .l-footer-trustee__list{}

      .l-footer-trustee__item{}
      .l-footer-trustee__item--theme{}

      .l-footer-trustee__link{}

      .l-footer-deco{}

      .l-footer-deco__item{}
      .l-footer-deco__item:nth-of-type(1){}
      .l-footer-deco__item:nth-of-type(2){}
      .l-footer-deco__item:nth-of-type(3){}

      .copyright{}
      .copyright:before{}

      .copyright__text{}


    }/* /min-width: 768px */


    @media screen and (min-width: 1025px) {
      .l-footer{
        margin: 6.375rem 0 0;
      }

      .l-footer__inner{}

      .l-footer-logo{}

      .l-footer-logo__link{}

      .l-footer-logo__caption{}

      .l-footer-trustee{}

      .l-footer-trustee__list{}

      .l-footer-trustee__item{}
      .l-footer-trustee__item--theme{}

      .l-footer-trustee__link{}

      .l-footer-deco{}

      .l-footer-deco__item{}
      .l-footer-deco__item:nth-of-type(1){}
      .l-footer-deco__item:nth-of-type(2){}
      .l-footer-deco__item:nth-of-type(3){}

      .copyright{
        padding: 3rem 0 0;      
        }
      .copyright:before{}

      .copyright__text{
        font-size: 1rem;
        padding: 2.3125rem 0 2rem;
      }

    }/* /min-width: 1025px */

    @media screen and (min-width: 1040px) {
      .l-footer{}

      .l-footer__inner{
        padding: 0 0 1rem;
      }

      .l-footer-logo{}

      .l-footer-logo__link{
        max-width: 222px;
      }
      .l-footer-logo__link:hover{
        opacity: var(--hover-opacity);
      }

      .l-footer-logo__caption{
        margin: 1.375em 0 0;
      }

      .l-footer-trustee{
        margin: 1.25rem 0 0;
      }

      .l-footer-trustee__list{
        gap: 0;
      }

      .l-footer-trustee__item{
        margin: 0 1rem 0 0;
      }
      .l-footer-trustee__item:last-of-type{
        margin: 0;
      }
      .l-footer-trustee__item--theme{
        display: inline-block;
        margin: 0;
        width: auto;
      }

      .l-footer-trustee__link{}

      .l-footer-deco{}

      .l-footer-deco__item{}
      .l-footer-deco__item:nth-of-type(1){
        bottom: 6rem;
        /*bottom: 9rem;*/
        height: 40px;
        left: 18vw;
        width: 82px;
      }
      .l-footer-deco__item:nth-of-type(2){
        bottom: 1rem;
        /*bottom: 4rem;*/
        height: 81px;
        left: 23vw;
        width: 135px;
      }
      .l-footer-deco__item:nth-of-type(3){
        bottom: 4rem;
        /*bottom: 7rem;*/
        height: 53px;
        right: 13vw;
        width: 155px;
      }

      .copyright{
        padding: 3.125rem 0 0;
      }      
      .copyright:before{
        height: 117px;
        right: 16vw;
        top: 0;
        width: 290px;
      }

      .copyright__text{}

    }/* /min-width: 1040px */