@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css");

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&family=Noto+Serif+JP:wght@400;700;900&family=Ropa+Sans:ital@0;1&display=swap');

/* common */



:root {

  --g-blue: #00a6e8;

  --g-blue2: #0d6cff;

  --g-yellow: #ffff13;

  --e-pink: #ff0095;

  --e-blue: #002af5;

}



* {

  margin: 0;

  padding: 0;

}



html {

  scroll-behavior: smooth;

}



body {

  background-size: 100% auto;

  background-repeat: no-repeat;

  font-family: 'Noto Sans JP', sans-serif;

}



img {

  display: block;

}



#gototop {

  position: fixed;

  transition: all 1s;

  bottom: 55px;

  right: 20px;

  z-index: 10;

}



#gototop a {

  display: flex;

  flex-direction: column;

  width: 100px;

  height: 100px;

  box-sizing: border-box;

  border-radius: 50%;

  padding: 15px;

  background-color: var(--g-blue);

  text-decoration: none;

  justify-content: center;

  text-align: center;

  font-weight: bold;

  color: white;

  letter-spacing: 0.1em;

}



#gototop a:hover {

  opacity: 0.8;

}



#gototop a span {

  font-size: 120%;

}



@media(max-width: 768px) {

  #gototop {

    right: 10px;

  }

  #gototop a {

    width: 60px;

    height: 60px;

    font-size: 60%;

  }

  #gototop a span {

    font-size: 100%;

  }

}



.gtHidden {

  transform: translateY(165px);

}



/* common - header */



header {

  display: flex;

  justify-content: space-between;

  z-index: 10;

  position: relative;

  height: 76px;

  overflow: hidden;

  background-color: white;

  font-weight: bold;

}



#headerLeft {

  display: flex;

  align-items: center;

}



.logo {

  align-self: center;

  padding-left: 10px;

  font-size: 40px;

  font-family: 'Noto Serif JP', serif;

  font-weight: 900;

}



.logo a {

  color: #000;

  text-decoration: none;

}



#headerLeft p.desc {

  font-size: 12px;

  margin-left: 10px;

  font-weight: 400;

}



ul.contact {

  list-style-type: none;

  display: flex;

}



ul.contact li a {

  box-sizing: border-box;

  font-size: 30px;

  color: inherit;

  text-decoration: none;

  height: 100%;

  width: 87px;

  display: flex;

  flex-direction: column;

  justify-content: space-around;

  padding: 5px;

  text-align: center;

}



ul.contact li span {

  font-size: 11px;

}



ul.contact .accessButton a {

  color: white;

  background-color: var(--g-blue);

}



ul.contact .contactButton a {

  background-color: var(--g-yellow);

}



ul.contact .telButton {

  display: none;

}



ul.contact .hamButton {

  display: none;

}



ul.contact .tel a {

  height: 100%;

  width: 230px;

  background-color: #f2f2f2;

}



ul.contact .tel a span:first-child {

  font-size: 22px;

  font-weight: 900;

}



@media (max-width: 768px) {

  header {

    height: 60px;

    position: sticky;

    top: 0;

    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);

  }



  .logo {

    font-size: 27px;

  }



  ul.contact {

    align-items: center;

  }



  ul.contact li a {

    font-size: 24px;

    padding: 3px;

    width: 66px;

  }



  ul.contact li span {

    font-size: 9px;

  }



  ul.contact li.accessButton a,

  ul.contact li.contactButton a,

  ul.contact li.telButton a {

    color: var(--g-blue2);

    background-color: transparent;

    width: 62px;

    font-size: 20px;

  }





  #headerLeft p.desc,

  ul.contact .tel {

    display: none;

  }



  ul.contact .telButton {

    display: list-item;

  }



  ul.contact .hamButton {

    height: 100%;

    display: list-item;

  }



  ul.contact .hamButton a {

    background-color: var(--g-blue2);

    box-sizing: border-box;

    justify-content: center;

    align-items: center;

  }



  ul.contact .hamButton span {

    position: absolute;

    display: block;

    height: 4px;

    width: 30px;

    background-color: white;

  }



  ul.contact .hamButton span:first-child {

    transition: all 300ms;

    top: 18px;

  }



  ul.contact .hamButton span:last-child {

    transition: all 250ms;

    bottom: 18px;

  }



  ul.contact .hamOpen1 span:first-child {

    transform: translateY(10px);

  }



  ul.contact .hamOpen1 span:last-child {

    transform: translateY(-10px);

  }



  ul.contact .hamOpen2 span:first-child {

    transform: translateY(10px) rotate(45deg);

  }



  ul.contact .hamOpen2 span:last-child {

    transform: translateY(-10px) rotate(-45deg);

  }

}



#hero .swiper-slide img, #footer-back {

  width: 100%;

}

.swiper-slide img, #footer-back {

  width: 100%;

}

/* nav */



nav {

  background-color: #fff;

  position: sticky;

  top: 0;

  display: flex;

  align-items: center;

  justify-content: space-between;

  height: 52px;

  z-index: 11;

}



nav, .navSide, .main {

  transition: all 1s;

}



.navShadowUp {

  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);

}



.navShadowDown {

  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);

}



nav ul#mainMenu {

  display: flex;

  justify-content: space-around;

  width: 70%;

  height: 100%;

  max-width: 1000px;

  list-style-type: none;

  font-weight: 400;

}



nav ul#mainMenu li {

  height: 100%;

}



nav ul#mainMenu li a {

  text-decoration: none;

  height: 100%;

  color: black;

  display: flex;

  align-items: center;

}



nav ul#mainMenu li img {

  height: 1em;

  margin-right: 5px;

  margin-top: 3px;

}



nav .contact {

  height: 100%;

}



.navSide {

  overflow: hidden;

  height: 100%;

  align-self: flex-start;

}



p.navSide {

  display: flex;

  align-items: center;

}



nav .hiddenNav {

  opacity: 0;

  height: 0;

}



@media (min-width: 768px) {

  .navShadowUp ul.submenu {

    opacity: 0;

    visibility: hidden;

    transform: translateY(-10px);

    position: absolute;

    top :100%;

    left :50%;

    transform: translateX(-50%) translateY(-10px);

    background-color: rgba(255, 255, 255, 0.8);

    padding: 0;

    margin: 0;

    list-style: none;

    box-shadow: 0 2px 6px rgba(0,0,0,0.15);

    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;

}

  .navShadowUp ul#mainMenu > li {

    position: relative;

  }

  .navShadowUp ul#mainMenu > li:hover > ul.submenu {

    opacity: 1;

    visibility: visible;

    transform: translateX(-50%) translateY(0);

  }

  .navShadowUp ul.submenu li {

    padding: 0;

    margin: 0;

}

  .navShadowUp ul.submenu li a {

    display: block;

    padding: 15px 25px;

    color: #333;

    text-decoration: none;

    font-size: 90%;

    white-space: nowrap;

    transition: color 0.3s;

  }

  .navShadowUp ul.submenu li a:hover {

    background: #fff;

    color: #00a6e8 !important;

  }
}



@media (min-width: 768px) and (max-width: 1010px) {

  nav ul#mainMenu {

    font-size: 1.4vw;

    width: auto;

    flex-grow: 1;

  }



  nav .logo {

    font-size: 3vw;

  }



  nav ul.contact li a {

    width: 76px;

  }

}



@media (max-width: 768px) {

  nav {

    position: fixed;

    display: block;

    top: 60px;

    right: 0;

    box-sizing: border-box;

    height: 100vh;

    width: 50vw;

    background: url(../img/header/navback.png) 0 0 repeat;

    z-index: 1000;

    padding: 10px;

    transform: translateX(200vh);

    transition: all 500ms;

  }

  .navOpen {

    transform: none;

  }

  nav ul#mainMenu {

    flex-direction: column;

    width: 100%;

    height: auto;

    font-weight: 400;

    font-size: 90%;

  }



  nav ul#mainMenu li {

    padding: 10px 5px;

    border-bottom: 1px solid #fff;

  }



  nav ul#mainMenu li:last-of-type {

    border: none;

  }



  nav ul#mainMenu li a{

    color: white;

  }



  nav ul#mainMenu li a img {

    padding-right: 5px;

  }



  nav .navSide {

    display: none;

  }



  nav ul.submenu {

    display: block;

    margin-left: 2em;

    list-style-type: none;

  }



  nav ul#mainMenu ul.submenu li {

    border: none;

  }



  nav ul#mainMenu ul.submenu li span::before {

    font: var(--fa-font-solid);

    color: white;

    content: "\f054";

    margin-right: 10px;

  }



}



/* index - splash */



#splash {

  width: 100vw;

  height: 100vh;

  position: fixed;

  z-index: 999;

  transition: opacity 1s;

  background-color: #fff;

  overflow: hidden;

}

#splash picture {

  display: block;

  width: 100%;

  height: 100%;

  background-image: url(../img/index/splash.jpg);

  background-size: cover;

  background-position: center;

  transition: opacity 0.5s;

  opacity: 0;

}



@media (max-width: 1100px) {

  #splash picture {

    background-image: url(../img/index/splash_m.jpg);

  }

}



.noScroll {

  overflow: hidden;

}



/* index */



#index, #newspage {

  background-image: url('../img/gaku_top_back.png');

}



.swiper {

  background-color: white;

  margin-bottom: 50px;

}
.swiper2 {

  background-color: white;

  margin-bottom: 50px;

}


article {

  max-width: 1000px;

  margin: 0 auto;

  padding: 0 min(5vw, 50px);

}



.main {

  margin: 0 auto;

}



.hidden {

  opacity: 0;

  transform: translateY(50px);

}



.main em {

  font-style: normal;

  background: linear-gradient(transparent 70%, var(--g-yellow) 70%) no-repeat;

  background-size: 100% 100%;

  transition: background-size 1.5s;

}



.main em.hiddenMarker {

  background-size: 0 100%;

}



/* index - introduction */



#introduction {

  position: relative;

  text-align: center;

  font-weight: 500;

  line-height: 2;

  font-size: clamp(13px, 2vw, 34px);

}



#introduction *:not(br) {

  margin: max(80px, 15vw) 0;  position: relative;

  z-index: 2;

}



#introduction .alert {

  transition: all 300ms;

  position: absolute;

  color: white;

  font-weight: bold;

  font-size: clamp(8px, 1.6vw, 32px);

  top: -18%;

  right: 0;

  margin: 0;

  margin-left: -4vw;

  width: 18vw;

  height: 18vw;

  z-index: 1;

}



#introduction .alert img {

  width: 100%;

  height: 100%;

  margin: 0;

  position: absolute;

  top: 0;

  left: 0;

  animation: rotate 30s linear infinite;

}



@keyframes rotate {

  0%{

     transform: rotate(0deg);

  }

  100%{

      transform: rotate(360deg);

  }

}



.shrunk {

  transform: scale(0);

}





#introduction .alert .alertText {

  position: absolute;

  top: 50%;

  left: 50%;

  transform: translate(-50%, -50%);

  margin: 0;

}



@media (min-width: 1500px) {

  #introduction .alert {

    left: 100%;

  }

}



@media (max-width: 768px) {

  #introduction .alert {

    top: 25%;

    right: 5%;

    width: 20vw;

    height: 20vw;

  }

}



h2 {

  text-align: center;

  font-size: clamp(14px, 2.4vw, 37px);

  font-weight: 900;

}



section .sectionHead {

  position: relative;

  font-size: 1.8rem;

  color: white;

}





section .sectionHead img {

  height: 4rem;

  margin: max(50px, 10vw) auto;

}



section .sectionHead h2 {

  position: absolute;

  top: 50%;

  left: 50%;

  width: 100%;

  transform: translate(-50%, -55%);

  text-align: center;

  font-size: 2rem;

}



@media (max-width: 700px) {

  section .sectionHead img {

    height: 9vw;

  }

  section .sectionHead h2 {

    font-size: 4vw;

  }

}



/* index - features */



#features {

  width: 90%;

  margin: 0 auto;

  font-size: clamp(13px, 2.8vw, 30px);

  font-weight: 900;

}



#features h2 {

  font-size: clamp(20px, 2.8vw, 40px);

  letter-spacing: 5px;

  margin-bottom: max(50px, 10vw);

  position: relative;

}



#features h2 span {

  position: relative;

  padding-top: 0.2em;

}



#features h2 span::before {

  position: absolute;

  content: '';

  width: 0.3em;

  height: 0.3em;

  border-radius: 50%;

  background-color: var(--g-blue2);

  top: 0;

  left: 50%;

  transform: translateX(-50%);

}



#features h2 span:nth-of-type(even)::before {

  background-color: var(--e-pink);

}



#features .fItem {

  display: flex;

  justify-content: center;

  align-items: center;

  margin-bottom: max(50px, 10vw);

}



#features .fPic,

#voice .vPic {

  margin-right: min(3vw, 50px);

  color: var(--g-blue2);

  text-align: center;

}



#features .fPic picture,

#voice .vPic picture {

  display: flex;

  justify-content: center;

  align-items: center;

  margin-top: 20px;

  width: 28vw;

  height: 28vw;

  max-width: 360px;

  max-height: 360px;

  border: 10px solid var(--g-blue2);

  border-radius: 50%;

  overflow: hidden;

}





#features .fPic picture img,

#voice .vPic picture img {

  width: 100%;

  height: 100%;

}





#features .fItem .fText {

  line-height: 1.5;

}





#features .fItem h3 {

  font-family: 'Ropa Sans', sans-serif;

  font-size: 250%;

  color: #0d6cff;

  line-height: 1;

}



#features .fItem p.mobile {

  display: none;

}



#features .fItem a {

  position: relative;

  display: inline-block;

  color: white;

  background-position: center;

  font-weight: 600;

  text-decoration: none;

  margin-top: 20px;

}



#features .fItem a img {

  height: 3rem;

}



#features .fItem a span {

  display: block;

  position: absolute;

  top: 50%;

  left: 50%;

  width: 100%;

  transform: translate(-50%, -50%);

  padding: 5px min(2vw, 30px);

  text-align: center;

  font-size: 1.3rem;

}



#features .fItem:nth-child(odd) {

  flex-direction: row-reverse;

}



#features .fItem:nth-child(odd) .fPic {

  margin-right: 0;

  margin-left: min(3vw, 50px);

}



#features .fItem:nth-child(odd) .fPic,

#features .fItem:nth-child(odd) h3

{

  color: var(--e-pink);

}



#features .fItem:nth-child(odd) .fPic picture{

  border-color: var(--e-pink);

}





@media (max-width: 700px) {

  #features {

    width: 100%;

  }



  #features .fPic {

    font-size: max(2vw, 11px);

  }



  #features .fPic picture,

  #voice .vPic picture {

    width: 36vw;

    height: 36vw;

    border-width: 5px;

  }



  #features .fItem p.pc {

    display: none;

  }



  #features .fItem p.mobile {

    display: block;

  }



  #features .fItem a img {

    height: 6vw;

  }

  #features .fItem a span {

    font-size: 2.5vw;

  }

}



/* voice */

#voice {

  font-size: clamp(13px, 2.4vw, 28px);

  color: var(--e-blue);

  font-weight: 900;

}



#voice .vItem {

  display: flex;

  margin-bottom: 100px;

}



#voice .vPic {

  color: var(--e-blue);

  margin-right: max(30px, 1.2vw);

}



#voice .vPic picture {

  width: max(80px, 15vw);

  height: max(80px, 15vw);

  max-width: 250px;

  max-height: 250px;

  margin: 0 auto 10px;

  background-color: var(--e-blue);

  border: none;

}



#voice .vText {

  position: relative;

  padding: 20px;

  border: 1px solid var(--e-blue);

  border-radius: min(6vw, 50px);

  align-self: flex-start;

  font-weight: 500;

  padding: min(4vw, 40px) min(4vw, 60px);

  line-height: 1.7;

}



#voice .vText::before,

#voice .vText::after {

  content: '';

  position: absolute;

  top: 50%;

  left: -26px;

  border: 10px solid transparent;

}



#voice .vText::before {

  border-right: 16px solid var(--e-blue);

  margin-top: -10px;

}



#voice .vText::after {

  border-right: 16px solid white;

  margin-top: -9px;

}



#voice .vItem:nth-child(odd) {

  flex-direction: row-reverse;

}



#voice .vItem:nth-child(odd) .vPic {

  margin-right: 0;

  margin-left: max(30px, 1.2vw);

}



#voice .vItem:nth-child(odd) .vText::before,

#voice .vItem:nth-child(odd) .vText::after {

  border-right: 10px solid transparent;

  border-left: 16px solid var(--e-blue);

  left: 100%;

}



#voice .vItem:nth-child(odd) .vText::after {

  border-left-color: white;

}



@media (max-width: 700px) {

  #voice .vPic {

    font-size: max(1.8vw, 9px);

  }



  #voice .vText::before,

  #voice .vText::after{

    top: 30%;

  }

}



#manga img {

  margin: 20px auto;

  max-width: 100%;

}


a.openManga {

  cursor: pointer;

}

a.openManga2{
	cursor:pointer;
}

.overlay {

  position: fixed;

  display: none;

  top: 0;

  left: 0;

  width: 100vw;

  height: 100vh;

  transition: background-color 800ms;

  z-index: 1000;

}
.overlay2 {

  position: fixed;

  display: none;

  top: 0;

  left: 0;

  width: 100vw;

  height: 100vh;

  transition: background-color 800ms;

  z-index: 1000;

}


.overlayDark {

  background-color: rgba(0,0,0, 0.5);

}



.mangaViewer {

  position: fixed;

  display: none;

  width: 80%;

  height: 90%;

  border-radius: 5px;

  top: calc(50%);

  left: 50%;

  transform: translate(-50%, -50%);

  opacity: 0;

  background-color: white;

  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);

  transition: opacity 500ms;

  z-index: 0;

padding-bottom:2em;
box-sizing:border-box;

}

.mangaViewer2 {

  position: fixed;

  display: none;

  width: 80%;

  height: 90%;

  border-radius: 5px;

  top: calc(50%);

  left: 50%;

  transform: translate(-50%, -50%);

  opacity: 0;

  background-color: white;

  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);

  transition: opacity 500ms;

  z-index: 0;

}

.mangaShow {

  opacity: 1;

  z-index: 1001;

}



.mangaViewer .closeButton {

  position: absolute;

  right: 0;

  top: 0;

  margin-top: 10px;

  margin-right: 10px;

  width: 35px;

  height: 35px;

  cursor: pointer;

  z-index: 1001;

}



.mangaViewer .closeButton::before {

  position: absolute;

  top:0;

  left: 0;

  font: var(--fa-font-solid);

  font-size: 40px;

  color: #666;

  content: "\f00d";

}

.mangaSwiper {

  box-sizing: border-box;

  padding-top: 50px;

  margin: 0 auto;

  height: 100%;

  overflow: hidden;

  position: relative;

  user-select: none;

}
.mangaViewer2 .closeButton {

  position: absolute;

  right: 0;

  top: 0;

  margin-top: 10px;

  margin-right: 10px;

  width: 35px;

  height: 35px;

  cursor: pointer;

  z-index: 1001;

}



.mangaViewer2 .closeButton::before {

  position: absolute;

  top:0;

  left: 0;

  font: var(--fa-font-solid);

  font-size: 40px;

  color: #666;

  content: "\f00d";

}

.mangaSwiper2 {

  box-sizing: border-box;

  padding-top: 50px;

  margin: 0 auto;

  height: 100%;

  overflow: hidden;

  position: relative;

  user-select: none;

}

.mangaSwiper .swiper-slide img {

  height: 100%;
  object-fit:contain;
  margin: 0 auto;

}
.mangaSwiper2 .swiper-slide img {

  height: 100%;
  object-fit:contain;
  margin: 0 auto;

}


.cover {

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

}



@media (max-width: 1137px) {

  .mangaViewer {

    height: auto;

  }

  .mangaSwiper .swiper-slide img {

    width: 100%;

    height: auto;

  }

  .mangaViewer2 {

    height: auto;

  }

  .mangaSwiper2 .swiper-slide img {

    width: 100%;

    height: auto;

  }

}



#news {

  display: flex;

  flex-direction: column;

  align-items: center;

}



#news table a {

  display: block;

  padding: min(2vw, 20px);

  text-decoration: none;

  color: var(--e-blue);

}



#news td {

  color: var(--e-blue);

  font-size: clamp(15px, 2.8vw, 30px);

  font-weight: bold;

}



#news td:first-of-type img {

  height: clamp(18px, 3vw, 36px);

}



.detailButton {

  text-align: center;

  color: white;

  background-color: #727171;

  font-weight: 900;

  font-size: max(1.5vw, 9px);

  border-radius: 50px;

  margin-left: auto;

  margin-right: 0;

  margin-top: max(50px, 10vw);

  padding: max(2vw, 10px);

  text-decoration: none;

}



#access {

  padding-top: 52px;

  margin-top: -52px;

  overflow: hidden;

}



@media (max-width: 768px) {

  #access {

    padding-top: 60px;

    margin-top: -60px;

    overflow: hidden;

  }

}



#access div {

  display: flex;

  justify-content: center;

  flex-direction: row-reverse;

  flex-wrap: wrap;

}



#access iframe {

  margin-bottom: 20px;

}



#access table {

  border-collapse: collapse;

  font-weight: 600;

  margin-bottom: 20px;

}



#access td, th {

  box-sizing: border-box;

  padding: 30px 10px;

  border: 1px solid #eeeeee;

  border-left-color: var(--g-blue2);

  border-right-color: var(--g-blue2);

  text-align: left;

}



#access th {

  background-color: #eeeeee;

  min-width: 120px;

}



#access td {

  min-width: 320px;

}



#access td span {

  display: inline-block;

  white-space: nowrap;

}



#access tr:first-child th,

#access tr:first-child td {

  border-top-color: var(--g-blue2);

}



#access tr:last-child th,

#access tr:last-child td {

  border-bottom-color: var(--g-blue2);

}



@media (max-width: 490px) {

  #access th {

    min-width: 100px;

  }

  #access td {

    min-width: 200px;

  }

}



footer {

  margin-top: 100px;

  position: relative;

  display: flex;

  flex-direction: column;

  justify-content: flex-end;

  background: url('../img/footer/footer.png') left bottom 46px repeat-x,

   linear-gradient(to top, #6ad5ff, transparent 80%);

}



footer #footerContent {

  margin: 0 auto 170px;

  width: 70%;

  max-width: 1200px;

  display: flex;

  justify-content: space-around;

  align-items: center;

  flex-wrap: wrap;

}



footer #footerLeft,

footer #footerRight {

  width: 400px;

  margin-bottom: 30px;

}



footer img {

  width: 100%;

}



footer #footerRight {

  display: flex;

  flex-direction: column;

  flex-wrap: wrap;

  height: 150px;

  list-style-type: none;

}



footer #footerRight li::before {

  font: var(--fa-font-solid);

  font-size: 0.9rem;

  color: var(--g-blue);

  content: "\f054";

  margin-right: 10px;

}



footer #footerRight li {

  line-height: 2;

  margin-bottom: 12px;

}



footer #footerRight li a {

  font-size: 0.9rem;

  font-weight: bold;

  text-decoration: none;

  color: black;

}





footer #bottomBar {

  height: 46px;

  width: 100%;

  display: flex;

  justify-content: center;

  align-items: center;

  color: white;

  font-weight: 400;

  background-color: var(--g-blue);

  letter-spacing: 0.1em;

}



@media (max-width: 490px) {

  footer #footerContent {

    margin: 0 auto 120px;

    width: 90%;

  }



  footer #bottomBar {

    font-size: 90%;

  }

}

/* ページネーション */
.swiper-pagination {
  color: #444;
}

/* 現在のスライド番号 */
.swiper-pagination-current {
}

/* スライド総数 */
.swiper-pagination-total {
}



/* インスタ動画 */
@media (max-width: 768px) {

  .insta_video {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 30px;
    margin-top: 40px;
  }
/* インスタ動画ここまで */
}
