/* ==========================================================================
   Layout: サイト全体の枠組み
   ========================================================================== */
:root{
  /* background */
  --bg-grad-primary: linear-gradient(90deg,rgba(228, 39, 100, 1) 0%, rgba(147, 62, 124, 1) 50%, rgba(100, 76, 138, 1) 100%);
  --bg-grad-gray: linear-gradient(90deg,rgba(243, 243, 246, 1) 0%, rgba(213, 213, 213, 1) 100%);

  /* color */
  --color-base: #000;  
  --color-bg-white: #FFFFFF;
  --color-text-white: #FFFEFE;
  --color-primary: #644C8A;

  /* font */
  --font-base: "Noto Sans JP", sans-serif;
  --font-mincho: "Noto Serif JP", serif;
  --font-en: "Bebas Neue", sans-serif;
  --font-en-accent: "Big Shoulders", sans-serif;

  /* font-weight */
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 600;
  --font-weight-extra-bold: 700;
  
  /* line height */
  --line-height-0line: 0;
  --line-height-1line: 1;
  --line-height-xs: 1.5;
  --line-height-sm: 1.75;
  --line-height-md: 2;
  --line-height-lg: 2.2;
  --line-height-xl: 2.5;

  /* transition */
  --transition-normal: all 0.3s;

  /* zindex */
  --zindex-normal: 50;
  --zindex-header-navi: 200;
}

html{
  scroll-behavior: smooth;
}

body{
  font-family: var(--font-base);
}

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

a{
  text-decoration: none;
  transition: var(--transition-normal);
}

a:before,
a:after{
  transition: var(--transition-normal);
}

button{
  transition: var(--transition-normal);
}

button:before,
button:after{
  transition: var(--transition-normal);
}

/* ==========================================================================
   Contents: サイトコンテンツ幅
   ========================================================================== */
   .l-contents{
    margin: 0 auto;
    padding: 0 1.25rem;
   }

   @media screen and (min-width: 600px) {
   }/* min-width: 600px */

   @media screen and (min-width: 1025px) {
   }/* min-width: 1025px */

   @media screen and (min-width: 1240px) {
    .l-contents{
      padding: 0;
      max-width: 1200px;
    }    
   }/* min-width: 1240px */
  
/* ==========================================================================
   Wrap: サイト共通Wrapコンテンツ
   ========================================================================== */
   .l-wrap{
    position: relative;
   }
   @media screen and (min-width: 600px) {
      .l-wrap{}
   }/* min-width: 600px */

   @media screen and (min-width: 1025px) {
      .l-wrap{}
   }/* min-width: 1025px */

/* ==========================================================================
   Headder: サイト共通ヘッダー
   ========================================================================== */
   .l-header{
    height: 60px;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: var(--zindex-header-navi);
   }

   .l-header__outer{
    height: 100%;
    margin: 0 auto;
    padding: 0 1.25rem;
   }

   .l-header__inner{
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: space-between;
   }

    .l-header__symbol{}
    .l-wrap--home .l-header__symbol{
        width: 100%;
        max-width: 45px;
      }
    .l-wrap--lower .l-header__symbol{} 

   .l-header__symbol-link{
    color: var(--color-base);
    display: block;
   }
   .l-header__symbol-item{}
   .l-header__symbol-item--home{}
   .l-wrap--home .l-header__symbol-item--home{
    display: block;
   }
   .l-wrap--lower .l-header__symbol-item--home{
    display: none;  
   }
   .l-header__symbol-item--lower{}
   .l-wrap--home .l-header__symbol-item--lower{
    display: none;
   }
   .l-wrap--lower .l-header__symbol-item--lower{
    display: block;  
   }

   .l-header__symbol-inner{
    align-items: center;
    display: flex;
    flex-wrap: wrap;
   }

   .l-header__symbol-image{
    width: 100%;
    max-width: 80px;
   }

   .l-header__symbol-caption{
    margin: 0 0 0 0.5rem;
   }

   .l-header__symbol-main{
    display: block;
    font-size: 0.875rem;
    font-weight: var(--font-weight-bold);
   }

   .l-header__symbol-sub{
    display: block;
    font-weight: var(--font-weight-medium);
    margin: 0.2em 0 0;
    letter-spacing: 0.1em;
   }

   .l-header__nav{
    background: var(--bg-grad-primary);
    box-sizing: border-box;
    opacity: 0;
    padding: 1.25rem;
    position: absolute;
    right: 0;
    top: 0;
    transition: var(--transition-normal);
    visibility: hidden; 
    width: 100%;
   }
   .is-header-open .l-header__nav{
    opacity: 1;
    visibility: visible; 
   }

   .l-header__nav-inner{
    background-color: var(--color-bg-white);
    padding: 1.25rem 1rem;
   }

   .l-header__nav-logo{
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 0 0.5rem;
    margin: 0 0 1rem;
   }

   .l-header__nav-image{
    line-height: var(--line-height-0line);
    width: 100%;
    max-width: 120px;
   }

   .l-header__nav-caption{
    display: inline-block;
    font-size: 1.25rem;
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-1line);    
   }

   .l-header__nav-list{
    list-style: none;
    margin: 0;
    padding: 0;
   }

   .l-header__nav-item{}

   .l-header__nav-link{
    border-bottom: 1px var(--color-base) solid;  
    color: var(--color-base);
    display: flex;
    flex-wrap: wrap;
    padding: 0.6em 0;
    position: relative; 
   }
   .l-header__nav-item:last-of-type .l-header__nav-link{
    border-bottom: none;
   }

   .l-header__nav-link:after{
    background-image: url(/40thanniv/images/common/arrow_right_black.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: inline-block;  
    height: 10px;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
   }

   .l-header__nav-year{
    font-size: 1rem;
    font-weight: var(--font-weight-regular);
   }

   .l-header__nav-text{
    font-size: 1rem;
    font-weight: var(--font-weight-regular);
   }

   .l-header__toggle{
    background-color: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    width: 100%;
    max-width: 50px;
   }

   .l-header__toggle-box{
    box-sizing: border-box;
    height: 28px;
    margin: 0 0 2px;
    position: relative;
    transition: var(--transition-normal);
   }
   .is-header-open .l-header__toggle-box{
    transform: translate(-5px,20px);
   }

   .l-header__toggle-line{
    background-color: #010000;
    box-sizing: border-box;
    height: 2px;
    left: 0;
    position: absolute;
    transition: all 0.5s;
    width: 100%;
   }
   .l-header__toggle-line:nth-of-type(1){
    top: 0;
   }
   .l-header__toggle-line:nth-of-type(2){
    top: 50%;
    transform: translateY(-50%);
   }
   .l-header__toggle-line:nth-of-type(3){
    bottom: 0;
   }
   .is-header-open .l-header__toggle-line:nth-of-type(1){
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
   }
  .is-header-open .l-header__toggle-line:nth-of-type(2){
    opacity: 0;
    visibility: hidden;
   }
  .is-header-open .l-header__toggle-line:nth-of-type(3){
    bottom: 50%;
    transform: translateY(50%) rotate(-45deg);
    width: 100%;
   }

   @media screen and (min-width: 600px) {
      .l-header{
        height: 80px;
      }

      .l-header__outer{}

      .l-header__inner{}

      .l-header__symbol{}
      .l-wrap--home .l-header__symbol{
        max-width: 60px;
      }
      .l-wrap--lower .l-header__symbol{} 

      .l-header__symbol-link{}

      .l-header__symbol-item{}
      .l-header__symbol-item--home{}
      .l-header__symbol-item--lower{}

      .l-header__symbol-inner{}

      .l-header__symbol-image{}

      .l-header__symbol-caption{}

      .l-header__symbol-main{
        font-size: 1rem;
      }

      .l-header__symbol-sub{
        margin: 0.3em 0 0;
      }

      .l-header__nav{}

      .l-header__nav-inner{}

      .l-header__nav-logo{}

      .l-header__nav-image{
        max-width: 160px;
      }

      .l-header__nav-caption{
        font-size: 1.5rem;
      }
      .l-header__nav-list{}

      .l-header__nav-item{}

      .l-header__nav-link{}

      .l-header__nav-year{}

      .l-header__nav-text{}

      .l-header__toggle{
        max-width: 67px;
      }

      .l-header__toggle-box{
        height: 32px;
      }
      .is-header-open .l-header__toggle-box{
        transform: translate(-10px,20px);
      }

      .l-header__toggle-line{}
   }/* min-width: 600px */

   @media screen and (min-width: 1025px) {
      .l-header{}

      .l-header__outer{}

      .l-header__inner{}

      .l-header__symbol{}
      .l-wrap--home .l-header__symbol{}
      .l-wrap--lower .l-header__symbol{} 

      .l-header__symbol-link{}      
      .l-header__symbol-link:hover{
        opacity: 0.8;
      }

      .l-header__symbol-item{}
      .l-header__symbol-item--home{}
      .l-header__symbol-item--lower{}

      .l-header__symbol-inner{}

      .l-header__symbol-image{}

      .l-header__symbol-caption{}

      .l-header__symbol-main{}
      
      .l-header__symbol-sub{}

      .l-header__nav{}

      .l-header__nav-inner{}

      .l-header__nav-logo{}

      .l-header__nav-image{}

      .l-header__nav-caption{}

      .l-header__nav-list{}

      .l-header__nav-item{}

      .l-header__nav-link{}
      .l-header__nav-link:hover{
        background-color: #F3F3F6;
      }
      .l-header__nav-link:hover:after{
        right: 5px;
      }

      .l-header__nav-year{}

      .l-header__nav-text{}

      .l-header__toggle{}

      .l-header__toggle-box{}

      .l-header__toggle-line{}

   }/* min-width: 1025px */

   @media screen and (min-width: 1240px) {
      .l-header{
        height: 113px;
      }

      .l-header__outer{
        max-width: 1200px;
        padding: 0;
      }

      .l-header__inner{}

      .l-header__symbol{}
      .l-wrap--home .l-header__symbol{}
      .l-wrap--lower .l-header__symbol{} 

      .l-header__symbol-link{}

      .l-header__symbol-item{}
      .l-header__symbol-item--home{}
      .l-header__symbol-item--lower{}

      .l-header__symbol-inner{}

      .l-header__symbol-image{
        max-width: 200px;
      }

      .l-header__symbol-caption{
        margin: 0 0 0 2rem;
      }

      .l-header__symbol-main{
        font-size: 1.5rem;
      }
      
      .l-header__symbol-sub{
        font-size: 1.5rem;
        letter-spacing: 0.18em;
      }

      .l-header__nav{
        right: calc(0rem + ((1vw - 0.775rem) * 44.7059));/* 0~19rem */
        max-width: 744px;
      }

      .l-header__nav-inner{
        padding: 1.5rem 2rem;
      }

      .l-header__nav-logo{
        gap: 0 1.5rem;
        margin: 0 0 1.875rem;
      }

      .l-header__nav-image{
        max-width: 230px;
      }

      .l-header__nav-caption{
        font-size: 2.25rem;
      }

      .l-header__nav-list{}

      .l-header__nav-item{}

      .l-header__nav-link{
        gap: 0 10px;
      }

      .l-header__nav-year{
        font-size: 1.25rem;
        width: 110px;
      }

      .l-header__nav-text{
        font-size: 1.25rem;
      }

      .l-header__toggle{}

      .l-header__toggle-box{}

      .l-header__toggle-line{} 

   }/* min-width: 1240px */


/* ==========================================================================
   Main: サイト共通Mainコンテンツ
   ========================================================================== */
   .l-main{
    padding: 2rem 0 0;
    position: relative;
   }
   .l-wrap--lower .l-main{
    padding: 4rem 0 0;
   }

   .l-main:after{
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    display: inline-block;
    height: 100%;
    left: 0;
    position: absolute;
    width: 100%;
    z-index: -1;
   }   
   .l-wrap--home .l-main:after{
    background-image: url(/40thanniv/images/common/bg-gradient_line.png);
    background-position: center top -2rem;
    bottom: 0;
   }
   .l-wrap--lower .l-main:after{
    background-image: url(/40thanniv/images/common/bg-gradient_line_small.png);
    background-position: center bottom -10rem;
    bottom: 0;
    max-height: 1000px;
   }
   @media screen and (min-width: 600px) {
      .l-main{}
      .l-wrap--lower .l-main{
        padding: 5rem 0 0;
      }

      .l-main:after{}
      .l-wrap--home .l-main:after{
        background-position: center top;
      }
      .l-wrap--lower .l-main:after{}

   }/* min-width: 600px */

   @media screen and (min-width: 1025px) {
      .l-main{
        padding: 3rem 0 0;
      }
      .l-wrap--lower .l-main{
        padding: 7.0625rem 0 0;
      }

      .l-main:after{}
      .l-wrap--home .l-main:after{}
      .l-wrap--lower .l-main:after{
        background-position: center bottom -10rem;
        max-height: 1640px;
      }

   }/* min-width: 1025px */

/* ==========================================================================
   Footer: サイト共通フッター
   ========================================================================== */
   .l-footer{}

   .l-footer #pc-only{}

   .l-footer #sp-only{}

   #foot_navi{}

   #cont-naviarea{}

   #cont-naviarea .naviarea{}

   #cont-naviarea .naviarea-sec{}

   #cont-naviarea .naviarea-end{}

   #cont-naviarea dl dt{}

   #cont-naviarea dl dd{}

   #cont-naviarea a{}

   #cont-list{
    background-color: #fff;
   }

   #foot-cont{
    margin: 8px auto;
   }

   #foot-cont a {
    color: #626262;
    text-decoration: none;
   }

   #foot-cont p {
    font-size: 12px;
   }

   .foot_logo{}

   #foot-cont .address{
    color: #626262;
    padding-right: 10px;
   }

   #foot-cont .iconarea{}

   #foot-cont .privacy{
    font-size: 11px;
    background-image: url(/images/top/icon_privacy.png);
    background-repeat: no-repeat;
    background-position: left center;
    padding: 2px 0 0 17px;
   }

   #foot-cont .sitemap{
    font-size: 11px;
    background-image: url(/images/top/icon_sitemap.png);
    background-repeat: no-repeat;
    background-position: left center;
   }

   .l-footer .cl{
    clear: both;
   }

   #footer{
    background: #434343;
    margin-top: 0px;
   }

   #copyright{
    margin: 0 auto;
   }

   #copyright p{
    font-size: 12px;
    color: #fff;
   }

   #copyright p.text{
    color: #fff;
   }

   .l-footer #sp-only .footer-bg{}

   .l-footer #sp-only .footer-bg .img-half-left{}

   .l-footer #sp-only .footer-bg .img-half-right{}
   
   @media screen and (min-width: 769px) {
    .l-footer{}

    .l-footer #pc-only{}

    .l-footer #sp-only{
      display: none;
    }

    #foot_navi{
      background: #eeeeee;
    }

    #cont-naviarea{
      display: flex;
      justify-content: center;
      margin: 0 auto;
      /* width: 965px; */
      padding: 20px 0;
    }

    #cont-naviarea .naviarea{
      padding: 0 10px 0 0;
      border-right: 1px solid #cdcdcd;
      width: calc(100% / 4);
      max-width: 180px;
    }

    #cont-naviarea .naviarea-sec{
      padding: 0 0 0 15px;
      border-right: 1px solid #cdcdcd;
      width: calc(100% / 4);
      max-width: 180px;
    }

    #cont-naviarea .naviarea-end{
      padding: 0 0 0 15px;
      width: calc(100% / 4);
      max-width: 180px;
    }

    #cont-naviarea dl dt{
      font-size: 14px;
      background-image: url(/images/top/icon_arrow01.jpg);
      background-repeat: no-repeat;
      background-position: left center;
      padding: 2px 0 0 20px;
      margin: 0 0 5px;
    }

    #cont-naviarea dl dd{
      font-size: 12px;
      background-image: url(/images/top/icon_arrow02.jpg);
      background-repeat: no-repeat;
      background-position: left center;
      padding: 2px 0 0 17px;
      margin: 0 0 3px;
    }

    #cont-naviarea a{
      color: #626262;
    }

    #cont-list{}

    #foot-cont{
      align-items: center;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      padding: 0 15px;
      /* width: 1000px; */
    }

    #foot-cont a:link {}

    #foot-cont p {
      margin: 0;
      padding-right: 30px;
    }

    .foot_logo{}

    #foot-cont .address{
      border-right: 1px solid #cdcdcd;
      margin: 0 10px;
    }

    #foot-cont .iconarea{
      display: flex;
      margin-left: 10px;
    }

    #foot-cont .privacy{
      padding: 2px 0 0 17px;
    }

    #foot-cont .sitemap{
      padding: 2px 0 0 17px;
      margin-left: 7px;
    }

    .l-footer .cl{}

    #footer{}

    #copyright{
      text-align: center;
      padding: 10px 0;
    }

    #copyright p{
      padding: 0 0 5px 40px;     
    }

    #copyright p.text{
      padding-bottom: 5px;
      margin-left: 150px;
    }

    .l-footer #sp-only .footer-bg{}

    .l-footer #sp-only .footer-bg .img-half-left{}

    .l-footer #sp-only .footer-bg .img-half-right{}

    }/* min-width: 769px */

   @media screen and (max-width: 768px) {
    .l-footer{}

    .l-footer #pc-only{
      display: none;  
    }

    .l-footer #sp-only{}

    #foot_navi{
      display: none;
    }

    #cont-naviarea{}

    #cont-naviarea .naviarea{}

    #cont-naviarea .naviarea-sec{}

    #cont-naviarea .naviarea-end{}

    #cont-naviarea dl dt{}

    #cont-naviarea dl dd{}

    #cont-naviarea a{}

    #cont-list{      
      padding: 0 10px;
      overflow: hidden;
    }
    #foot-cont{}

    #foot-cont a:link {}

    #foot-cont p {
      padding-left: 32px;
    }

    .foot_logo{}

    #foot-cont .address{}

    #foot-cont .iconarea{}

    #foot-cont .privacy{}

    #foot-cont .sitemap{}

    .l-footer .cl{}

    #footer{}

    #copyright{      
      padding: 10px 0 0 0;
    }

    #copyright p{
      padding: 0 10px 5px 10px;
    }

    #copyright p.text{      
      margin-right: 10px;
    }

    .l-footer #sp-only .footer-bg{
      text-align: center;
    }

    .l-footer #sp-only .footer-bg a{
      display: block;
    }

    .l-footer #sp-only .footer-bg .img-full{
      max-width: inherit;
      width: 100%;
    }

    .l-footer #sp-only .footer-bg .img-half-left{
      width: 50%;
      float: left;
    }

    .l-footer #sp-only .footer-bg .img-half-right{
        width: 50%;
        float: right;
    }

    }/* max-width: 768px */