@charset "UTF-8";

/* ===================================
	File Name   : common.css
	Description : Base Layout CSS
	Editor      : Bface Nakamura
  Last Editor : Bface Nakamura
	
	Update Description :
  [2025/12/05] 新規作成
====================================== */

/*========== Style Contents ==========

	1. Global Redefinition
	2. Font Redefinition
  3. Switch Setting
	4. Base Box Setting
	5. Common Items Setting
		- Basic Link
	 	- Header Items
		- Global Navigation
	 	- Footer Items
    - Fixed Btn

====================================== */



/*===== 1. Global Redefinition =====*/
:root {
  --baseC: #fff;
  --dominantC: #01B074;
  --DC: #3b3d40;
}

body {
	color: var(--DC);
	line-height: 1.4;
  margin: 0 auto;
}

dt,li,strong,em,span { line-height: 1.2;}

img { max-width: 100%;}

sup {
  font-size: 1rem;
  vertical-align: text-top;
}

sub {
	font-size: 1rem;
	vertical-align: text-bottom;
}

figure img { display: block;}

time { font-family: 'Merriweather Sans', 'Noto Sans JP', sans-serif;}

hr {
  margin: 0;
  border: none;
  border-bottom: .1rem solid #666;
  background: none;
}



/*===== 2. Font Redefinition =====*/
html { font-size: 62.5%;}

body {
	font-size: 1.6em;
	font-family: "Noto Sans JP", sans-serif;
}

@media (max-width: 768px) {
	html { font-size: calc(100vw / 76.8 * 2.048);}
}
@media (max-width: 640px) { html { font-size: calc(100vw / 64 * 1.7067);}}
@media (max-width: 480px) { html { font-size: calc(100vw / 48 * 1.28);}}
@media (max-width: 375px) { html { font-size: calc(100vw / 37.5 * 1);}}
@media (max-width: 360px) { html { font-size: calc(100vw / 36);}}
@media (max-width: 320px) { html { font-size: calc(100vw / 32);}}

@media (min-width: 1536px){ html { font-size: calc(100vw / 153.6);}}

@font-face {
  font-family: 'icomoon';
  src:  url('./fonts/icomoon.eot?elux7q');
  src:  url('./fonts/icomoon.eot?elux7q#iefix') format('embedded-opentype'),
    url('./fonts/icomoon.ttf?elux7q') format('truetype'),
    url('./fonts/icomoon.woff?elux7q') format('woff'),
    url('./fonts/icomoon.svg?elux7q#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="ico_"], [class*=" ico_"] {
  font-family: 'icomoon' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ico_blank::before {
  content: " \e900";
  color: currentColor;
  font-size: 1.2rem;
}
.ico_pdf::before {
  content: " \e903";
  color: currentColor;
  font-size: 1.4rem;
}

.ico_exhibition::before {
  content: "\e901";
  color: var(--baseC);
}

.ico_online::before {
  content: "\e956";
  color: var(--baseC);
}

.ico_lang::before {
  content: "\e902";
  color: var(--baseC);
}

a:hover {
  .ico_blank:before,
  .ico_pdf:before { color: var(--dominantC);}
}

@media (max-width: 768px) {
  a:hover {
    .ico_blank:before,
    .ico_pdf:before { color: currentColor;}
  }
}

b, strong {
  font-weight: bolder;
}



/*===== 3. Switch Setting =====*/
.pc { display: block;}
.sp { display: none;}
@media (max-width: 768px) {
  .pc { display: none;}
  .sp { display: block;}
}


/*===== 4. Base Box Setting =====*/



/*===== 5. Common Items Setting =====*/
/* Basic Link */
a {
  display: inline-block;
	outline: hidden;
  color: var(--DC);
  font-weight: 500;
  font-family: 'Noto Sans JP',sans-serif;
	text-decoration: none;
  &:hover {
    color: var(--dominantC);
    img { opacity: .6;}
  }
  &.soon {
    opacity: .6;
    pointer-events: none;
  }
  img { transition: .25s;}
}

main a {
  color: #1a73e8;
  text-decoration: underline;
}

a.boxlink {
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: inset 0 0 0 .1rem rgba(0, 0, 0, 0.1), inset 0 -0.3rem 0 rgba(0, 0, 0, 0.15), 0 0.3rem 0.3rem rgba(0, 0, 0, 0.05);
  position: relative;
  width: fit-content;
  min-width: 40rem;
  margin: 2rem auto;
  padding: 2rem 4rem 2rem 3rem;
  border-radius: .4rem;
  background: #1eadba;
  color: var(--baseC); 
  font-size: 2rem;
  text-align: center;
  text-decoration: none;
  &::after {
    position: absolute;
    top: 50%;
    right: 2rem;
    width: 1.2rem;
    height: 1.2rem;
    margin-top: -.5rem;
    border-top: .2rem solid var(--baseC);
    border-right: .2rem solid var(--baseC);
    transform: rotate(45deg);
    content: "";
  }
  @media (hover: hover) {
	    &:hover {
		    opacity: .8;
	    }
    }
}
    

@media (max-width: 768px) {
  a {
  &:hover img { opacity: 1;}
  img { transition: none;}
  }
  a.boxlink {
  width: 100%;
  min-width: 100%;
  font-size: 1.6rem;
  &::after {
    width: 1rem;
    height: 1rem;
  }
}
}

main p {
  line-height: 1.8;
}


#contents {
  width: 100%;
  position: relative;
}

@media (max-width: 768px) {
  #contents {
	width: 100%;
  }
}

#contents.page {
  width: 90%;
  margin: 0 auto 10rem;
} 


/* Header Items */
#header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 .5rem 1rem hsla(0, 0%, 0%, 0.07);
  position: sticky;
  top: 0;
  width: 100%;
  background:var(--baseC);
  height: 7rem;
  transition: top 500ms;
  z-index: 100000;
  #logo {
    height: 24px;
    margin: 16px;
    width: auto;
    display: flex;
    align-content: center;
    flex-direction: column;
    img {
      height: 24px;
      width: auto;
    }
  }
  #gnavi {
    display: flex;
    ul {
      display: flex;
      align-items: center;
    }
    li {
      font-size: 1.4rem;
      margin: 0 1.5rem;
    }
    .app_btn {
      margin-left: 2rem;
      span {
        font-size: 1.2rem;
      }
      a {
        display: flex;
        justify-content: center;
        align-items: center;
        overflow: hidden;
        min-width: 12rem;
        height: 7rem;
        padding: 0 2rem;
        background: #FF7D4A;
        color: var(--baseC);
        &:hover {
          opacity: 0.7;
        }
      }
      &:last-of-type {
        margin-left: 0;
        a {
          flex-direction: column;
          padding: 0 2rem;
          background: #1eadba;
        }
      }
    }
  }
  #btn_gnavi { display: none;}
}

@media (max-width: 768px) {
  #header {
    height: 6rem;
    z-index: 1000;
    #logo {
      width: 55%;
      height: auto;
      img {
        width: 100%;
        height: auto;
      }
    }
    #gnavi {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      visibility: hidden;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      width: 100vw;
      height: 100%;
      background: var(--dominantC);
      color: var(--baseC);
      z-index: 990;
      text-align: center;
      opacity: 0;
      transition: opacity 0.6s ease, visibility 0.6s ease;
      ul {
        display: block;
      }
      li {
        color: #63cff3;
        font-weight: bold;
        font-size: 2rem ;
        line-height: 2;
        opacity: 0;
        transform: translateX(200px);
        transition: transform 0.6s ease, opacity 0.2s ease;
        &:nth-child(2) {
          transition-delay: 0.15s;
        }
        &:nth-child(3) {
          transition-delay: 0.3s;
        }
        a {
          display: block;
          padding: 1rem 0;
          color: var(--baseC);
          transition: color 0.6s ease;
        }
      }
      .app_btn {
        width: 80%;
        margin: 2rem auto 0;
        a {
          height: 5rem;
        }
        &:last-of-type {
          margin: 2rem auto 0;
        }
      }
    }
    #btn_gnavi {
      display: block;
      position: absolute;
      top: 1.6rem;
      right: 2rem;
      width: 3.6rem;
      height: 3.2rem;
      cursor: pointer;
      z-index: 1000;
      span {
        display: block;
        position: absolute;
        width: 100%;
        height: .2rem;
        background: var(--DC);
        transition: transform 0.6s ease-in-out, top 0.5s ease;
        &:nth-child(1) {
          top: 0;
        }
        &:nth-child(2) {
          top: 1.4rem;
        }
        &:nth-child(3) {
          top: 2.8rem;
        }
      }
    }
  }
  .active_nav {
    overflow: hidden;
    #header {
      #gnavi {
        visibility: visible;
        opacity: 1;
        z-index: 1000;
        li {
          opacity: 1;
          transform: translateX(0);
          /* transition: transform 1s ease, opacity 0.9s ease; */
          margin: 0;
        }
      }
      #btn_gnavi {
        span {
          background: var(--baseC);
          &:nth-child(1) {
            top: 1.5rem;
            transform: rotate(45deg);
          }
          &:nth-child(2) {
            width: 0;
          }
          &:nth-child(3) {
            top: 1.5rem;
            transform: rotate(-45deg);
          }
        }
      }
    }
  }
}


/* footer */
footer {
  padding: 5rem 3rem;
  border-top: solid .1rem #F1F5F9;
  border-bottom: solid .1rem #F1F5F9;
  > div {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    max-width: 128rem;
    margin: 0 auto;
  }
  dl {
    dt {
      width: fit-content;
      margin: 0 0 1rem;
      padding: 1rem 2rem;
      border-radius: 50rem;
      background: #222;
      color: var(--baseC);
      font-size: 1.2rem;
    }
    dd:first-of-type {
      margin-bottom: 1rem;
      font-size: 2rem;
      line-height: 1.4;
    }
  }
  nav {
    ul {
      li {
        margin-bottom: 1rem;
        font-size: 1.4rem;
        a {
          position: relative;
          padding-left: 2rem;
          &::before {
            position: absolute;
            left: 0;
            top: 50%;
            border: .4rem solid transparent;
            border-left: .5rem solid #ccc;
            border-radius: .2rem;
            transform: translateY(-50%);
            content: "";
          }
        }
      }
    }
  }
}

@media (max-width: 768px) {
  footer {
    padding: 3rem 2rem;
    > div {
      flex-direction: column;
      gap: 4rem;
    }
    dl {
      text-align: center;
      dt {
        margin: 0 auto 1rem;
      }
      dd:first-of-type {
        font-size: 1.6rem;
      }
      dd:last-of-type {
        font-size: 1.4rem;
      }
    }
  }
}


/* fixed_btn */
#fixed_btn {
  padding: 3rem;
  background: rgba(246, 248, 250, 0.9);
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  ul {
    display: flex;
    justify-content: center;
    gap: 20px;
    max-width: 128rem;
    margin: 0 auto;
    li {
      display: flex;
      justify-content: center;
      align-items: center;
      flex: 1;
      position: relative;
      width: 100%;
      border-radius: .4rem;
      background: #1eadba; 
      font-size: 2rem;
      text-align: center;
      box-shadow: inset 0 0 0 .1rem rgba(0, 0, 0, 0.1), inset 0 -0.3rem 0 rgba(0, 0, 0, 0.15), 0 0.3rem 0.3rem rgba(0, 0, 0, 0.05);
      &:first-child { background: #f58558;}
      &:last-child { background: #315098;}
      a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        padding: 2rem 3rem 2rem 2rem;
        color: var(--baseC);
        text-decoration: none;
      }
      span {
        display: block;
        margin-bottom: .5rem;
        font-size: 1.4rem;
      }
      &:hover {
        opacity: 0.8;
        text-decoration: none;
      }
      &::after {
        position: absolute;
        top: 50%;
        right: 2rem;
        width: 1.2rem;
        height: 1.2rem;
        margin-top: -.5rem;
        border-top: .2rem solid var(--baseC);
        border-right: .2rem solid var(--baseC);
        transform: rotate(45deg);
        content: "";
      }
      &:has(a.soon) { opacity: .6;}
      &:has(a.soon)::after { opacity: .6;}
    }
  }
}

@media (max-width: 768px) {
  #fixed_btn {
    padding: .5rem 1rem;
    ul {
      flex-wrap: wrap;
      gap: .5rem;
      li {
        flex: auto;
        width: calc(50% - 1rem);
        height: 4.8rem;
        font-size: 1.2rem;
        a {padding: .5rem 2rem .5rem 1rem;}
        &:first-child { 
          width: 100%;
          padding: 1.5rem 2rem 1.5rem 1rem;
        }
        span {
          margin-bottom: 0;
          font-size: 1rem;
        }
        &::after {
          right: .8rem;
          width: .8rem;
          height: .8rem;
        }
      }
    }
  }
}

/* other */
.page_title {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  position: relative;
  overflow-x: hidden;
  width: 100%;
  padding: 7rem 0 4rem;
  font-weight: 900;
  font-size: 3.5rem;
  line-height: 1.5;
  text-align: center;
  span {
    display: block;
    padding-top: 2rem;
    color: var(--dominantC);
    font-weight: bold;
    font-size: 1.6rem;
  }
}

@media (max-width: 768px) {
  .page_title {
    padding: 6rem 0 3.5rem;
    font-size: 3rem;
    span {
      font-size: 1.4rem;
    }
  }
}

/* List - Dots */
ul.list_dots {
  margin: .5rem auto;
}
ul.list_dots > li {
  position: relative;
  padding-left: .88em;
}
ul.list_dots > li:not(:first-child) { margin-top: 1rem;}
ul.list_dots > li::before {
  position: absolute;
  top: .5em;
  left: 0;
  width: .5rem;
  height: .5rem;
  background: currentColor;
  border-radius: 50%;
  content: "";
}
ul.list_dots.inline > li {
  display: inline-block;
}
ul.list_dots.inline > li:not(:last-child) {
  margin-right: 1rem;
}

ul.list_dots.horizon {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
}
ul.list_dots.horizon > li:not(:first-child) { margin-top: 0;}
@media (max-width: 768px) {
  
}


