@charset "utf-8";

/* ---------------
共通部分
--------------- */
/* 共通項目 */
html {
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
}
body {
  background-color: #ffffcc;
  position: relative;
  font-family: "M PLUS Rounded 1c", sans-serif;
}

body::after {
  content: "";
  position: absolute;
  z-index: -2;
  top: 0;
  left: 0;
  opacity: 0.5;
  width: 100%;
  height: 100%;
  background-image: url(../images/common/site-background.svg);
  background-repeat: repeat-y;
}

.inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 5%;
}

.check-btn {
  text-align: center;
  display: flex;
  justify-content: center;
  font-size: 2rem;
  line-height: 3;
  font-weight: bold;
  margin: 0 0 10vh 0;
}

.check-btn a {
  display: block;
  width: 50vw;
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 20px;
}

.check-btn a:hover {
  background-color: #97874c;
}

/* header */
header {
  width: 100vw;
  max-width: 1200px;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

header .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.trigger-btn {
  display: none;
}

header h1 {
  display: block;
  width: 10vw;
  max-width: 10vw;
  height: auto;
  object-fit: cover;
}
nav ul {
  display: flex;
  gap: 1vw;
  margin: 1vh 0 0;
}

nav ul li {
  background-color: #ffffcc;
  line-height: 3;
  border-radius: 50%;
  border: 2px solid #464646;
  text-align: center;
}

nav ul li a {
  min-width: 180px;
  padding: 20px 50px;
  display: block;
}

nav ul .nav-check {
  background-color: #da927a;
}

nav ul a:hover {
  transform: scale(1.5);
}

.overlay {
  opacity: 0;
  visibility: hidden;
}

/* totop */
.to-top {
  position: fixed;
  bottom: 1vw;
  right: 1vw;
  width: 100px;
  aspect-ratio: 1/1;
  font-size: 2rem;
  text-align: center;
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 50%;
}

.to-top a {
  display: block;
}

/* ---------------
index.html
--------------- */
/* hero */
.hero {
  padding: 13% 0 20%;
  position: relative;
  overflow: hidden;
}

.hero .inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.hero .inner p {
  font-size: 1.5rem;
}

.hero .inner .hero-item {
  position: absolute;
  display: block;
  width: 300px;
  max-width: 300px;
  aspect-ratio: 1/1;
}

.hero-logo {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.hero-logo .pencil {
  object-fit: cover;
  position: absolute;
  top: -150px;
  left: -200px;
  transform: rotate(30deg);
  animation: decorationanime 3s ease-in-out infinite alternate;
}
.hero-logo .eraser {
  object-fit: cover;
  position: absolute;
  bottom: -100px;
  left: -250px;
  transform: rotate(-35deg);
  animation: decorationanime 3.5s ease-in-out infinite alternate;
}
.hero-logo .ruler {
  object-fit: cover;
  position: absolute;
  top: -100px;
  right: -250px;
  transform: rotate(-35deg);
  animation: decorationanime 2.5s ease-in-out infinite alternate;
}
.hero-logo .book {
  object-fit: cover;
  position: absolute;
  bottom: -50px;
  right: -280px;
  transform: rotate(30deg);
  animation: decorationanime 4s ease-in-out infinite alternate;
}

.hero .inner img {
  width: 50vw;
  height: auto;
}

.hero h1 {
  animation: logoanime 3s linear 0.3s;
}

@keyframes decorationanime {
  0% {
    transform: translate(0, 0) rotate(-25deg);
  }
  50% {
    transform: translate(0, -25px) rotate(0deg);
  }
  100% {
    transform: translate(0, 0) rotate(25deg);
  }
}

@keyframes logoanime {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.2);
  }
}

/* concept */
.concept {
  scroll-margin-top: 13vh;
}
.concept .inner {
  display: flex;
  flex-direction: column;
  background-color: #ffffcc;
  border: 2px solid #464646;
  border-radius: 20px;
  justify-content: center;
  text-align: center;
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s, transform 1s;
}

.concept .inner.is-show {
  opacity: 1;
  transform: translateY(0);
}

.concept h2 {
  font-size: 3rem;
  line-height: 3;
  margin: 0 0 1vw 0;
}

.concept .content-text {
  font-size: 1.5rem;
  text-decoration: underline;
  margin: 0 0 1vw 0;
}

.concept h3 {
  font-size: 2rem;
  margin: 0 0 1vw 0;
}

/* typelist */

.typelist {
  margin: 10vh 0 20vh;
  scroll-margin-top: 13vh;
}

.typelist .inner {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s, transform 1s;
}

.typelist .inner.is-show {
  opacity: 1;
  transform: translateY(0);
}

.typelist h2 {
  background-color: #d3bd6c;
  font-size: 3rem;
  line-height: 3;
  padding: 0 10vw;
  border: 2px solid #464646;
  border-radius: 50%;
}

.typelist-card {
  display: flex;
  width: 100%;
  margin: 15vh 0;
}

.typelist-card:nth-child(even) {
  flex-direction: row-reverse;
}

.type-text {
  width: 50%;
  margin: 2vw;
  padding: 2vh 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: #ffffcc;
  border: 2px solid #464646;
  border-radius: 20px;
}

.type-text h3 {
  font-size: 2rem;
  line-height: 3;
}

.type-text p {
  font-size: 1.5rem;
  line-height: 2;
}

.detail-btn {
  width: 50%;
  font-size: 1.7rem;
  line-height: 3;
  margin: 5vh 0 0;
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 20px;
}

.detail-btn:hover {
  background-color: #97874c;
}

.type-img {
  width: 50%;
}

.typelist img {
  width: 100%;
  aspect-ratio: 1/1;
}

/* ---------------
check.html
--------------- */
.check {
  min-height: 100dvh;
  display: flex;
  justify-content: center;
}

.check .inner {
  margin: 120px 0 80px;
  background-color: #ffffcc;
  border: 2px solid #464646;
  border-radius: 20px;
  width: 100%;
  min-height: 80%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.number-area {
  width: 90%;
  display: flex;
  justify-content: left;
}

.question-number {
  margin: 5vh 0;
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 50%;
  display: block;
  width: 70px;
  font-size: 2rem;
  line-height: 2;
  text-align: center;
}

.question-text {
  width: 90%;
  font-size: 2.5rem;
  line-height: 3;
  text-align: center;
}

.answer-list {
  width: 90%;
  margin: 50px 0 60px;
  display: grid;
  width: 100%;
  gap: 30px;
  grid-template-columns: repeat(2, 1fr);
}

.answer-box {
  width: 100%;
}

.answer-btn {
  width: 100%;
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 20px;
  text-align: center;
  font-size: 1.5rem;
  line-height: 2;
}

.answer-btn:hover,
.reload-btn:hover,
.result-btn:hover {
  background-color: #97874c;
}

.progress {
  width: 100%;
  height: 15px;
  margin: 30px 0;
  background-color: #ffffcc;
  border: 2px solid #464646;
  border-radius: 20px;
}

#progressfill {
  height: 100%;
  border-radius: 20px;
  background-color: #d3bd6c;
}

#progresstext {
  width: 100%;
  text-align: center;
  font-size: 1.3rem;
}

.result-btn {
  width: 100%;
  margin: 3vh 0;
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 20px;
  font-size: 1.3rem;
  line-height: 3;
}

.reload-btn {
  width: 100%;
  margin: 0 0 3vh 0;
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 20px;
  font-size: 1.3rem;
  line-height: 3;
}

/* ---------------
result.html
--------------- */
.result,
.details {
  padding: 8vh 0 0;
  min-height: 80dvh;
  display: flex;
  justify-content: center;
}

.result .inner,
.details .inner {
  margin: 5vh 0;
  background-color: #ffffcc;
  border: 2px solid #464646;
  border-radius: 20px;
  width: 100%;
  min-height: 80%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.result h2 {
  text-align: center;
}

#resulttype {
  font-size: 3rem;
}

.result-area {
  width: 90%;
  min-height: 80%;
  display: flex;
}

.result-text,
.result-img {
  width: 50%;
}

.result-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#resulttext1 {
  text-align: center;
  height: 60%;
  margin: 1vh 0 0;
  font-size: 1.2rem;
}

#resulttext2 {
  text-align: center;
  height: 40%;
}

#resulttext2 h3 {
  font-size: 1.5rem;
  line-height: 2;
}

#resulttext2 ul {
  font-size: 1.2rem;
}

.result-img img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
}

.details h2 {
  font-size: 3rem;
}

.details h3 {
  font-size: 1.5rem;
}

.details p {
  font-size: 1.2rem;
}

.details-area {
  height: 80%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.detail-img-area {
  width: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.stationery-btn {
  font-size: 2rem;
  border: 2px solid #464646;
  border-radius: 0;
  background-color: #d3bd6c;
  height: 50%;
}

.stationery-btn:hover {
  background-color: #97874c;
}

.stationery-img-area {
  width: 50%;
  margin: 0 1vw;
  border: 2px solid #464646;
  border-radius: 20px;
  background-color: #ffffff;
}

#stationeryimg {
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 20px;
}

.detail-text-area {
  text-align: center;
  width: 50%;
}

.fade {
  opacity: 0;
  transition: 0.3s;
}

.fade.show {
  opacity: 1;
}

/* ---------------
privacypolicy.html
--------------- */
.privacypolicy {
  padding: 10vh 0;
}

.privacypolicy .inner {
  background-color: #ffffcc;
  border: 2px solid #464646;
  border-radius: 20px;
}

.privacypolicy h2 {
  font-size: 3rem;
  line-height: 3;
}

.privacypolicy h3 {
  font-size: 2rem;
  line-height: 3;
}

.privacypolicy p,
.privacypolicy ol {
  font-size: 1.3rem;
}

.privacypolicy ol {
  list-style-type: decimal;
  list-style-position: inside;
  text-indent: -1em;
  padding-left: 1em;
}

.privacypolicy ol ol {
  text-indent: -1em;
  padding-left: 1em;
}

/* ---------------
contact.html
--------------- */

.contact {
  padding: 10vh 0;
}

.contact .inner {
  padding: 5vh 0;
  background-color: #ffffcc;
  border: 2px solid #464646;
  border-radius: 20px;
}

.contact-title {
  width: 100%;
  text-align: center;
  line-height: 3;
  font-size: 2rem;
}

form {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

form div {
  width: 90%;
  display: flex;
  justify-content: center;
  margin: 3vh 0;
}

.contact-br {
  display: none;
}

.required {
  position: relative;
}

.required::after {
  content: "必須";
  width: 2em;
  background-color: #d3bd6c;
  font-size: 1.3rem;
  line-height: 2;
}

form label {
  width: 14em;
  text-align: left;
  font-size: 1.5rem;
}

form input,
form select,
form textarea {
  width: 30em;
}

form .submit-btn {
  background-color: #d3bd6c;
  border: 2px solid #464646;
  border-radius: 20px;
  width: 10em;
  font-size: 1.5rem;
  line-height: 2;
}

/* ---------------
footer
--------------- */
footer {
  background-color: #d3bd6c;
  padding: 10vh 3vw;
  display: flex;
}

.company {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 50%;
}

.footer-menu {
  width: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer-menu-list li {
  font-size: 1.3rem;
  line-height: 3;
}

footer img {
  width: 70%;
  height: auto;
}

/* ---------------
タブレットサイズ
--------------- */
@media screen and (max-width: 1200px) {
  /* 共通項目 */
  .inner {
    padding: 0 1%;
  }

  header {
    width: 100vw;
    max-width: 1200px;
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
  }

  header h1 {
    display: block;
    width: 20vw;
    max-width: 20vw;
    height: auto;
    object-fit: cover;
  }

  nav ul li a {
    min-width: 100px;
    padding: 10px 30px;
    display: block;
  }

  /* hero */
  .hero {
    padding: 13% 0 20%;
    position: relative;
    overflow: hidden;
  }

  .hero .inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .hero .inner .hero-item {
    display: none;
  }

  .hero .inner p {
    font-size: 1.5rem;
  }

  .hero-logo {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .hero .inner img {
    width: 80vw;
    height: auto;
  }

  /* check.html */

  .question-text {
    font-size: 2rem;
    line-height: 3;
    text-align: center;
  }

  .answer-btn {
    font-size: 1.3rem;
  }

  /* privacypolicy.html */
  .privacypolicy h2 {
    font-size: 2rem;
    line-height: 3;
  }

  .privacypolicy h3 {
    font-size: 1.5rem;
    line-height: 3;
  }

  .privacypolicy p,
  .privacypolicy ol {
    font-size: 1.3rem;
  }
}

/* ---------------
スマホサイズ
--------------- */
@media screen and (max-width: 767px) {
  /* 共通項目 */
  .inner {
    padding: 0 1%;
  }
  /* header */
  header h1 {
    display: block;
    width: 30%;
    max-width: 30%;
    height: auto;
  }

  header .inner {
    position: relative;
  }

  .header-nav {
    display: none;
    position: absolute;
    width: 100%;
    top: 100%;
    right: 0;
    left: 0;
  }

  .header-nav.active {
    display: block;
  }

  .trigger-btn {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    height: 80%;
    aspect-ratio: 2/1;
  }
  .trigger-btn span {
    width: 10vw;
    height: 4px;
    background-color: #464646;
    border-radius: 4px;
  }
  .trigger-btn,
  .trigger-btn span {
    transition: all 0.5s;
  }
  .trigger-btn.active {
    transform: rotate(360deg);
  }
  .trigger-btn.active span:nth-of-type(1),
  .trigger-btn.active span:nth-of-type(3) {
    width: 60%;
  }
  .trigger-btn.active span:nth-of-type(1) {
    transform: translate(-50%) rotate(-45deg);
  }
  .trigger-btn.active span:nth-of-type(3) {
    transform: translate(-50%) rotate(45deg);
  }

  nav ul {
    flex-direction: column;
  }

  nav ul li {
    background-color: #ffffcc;
    border-radius: 20px;
    border: 0;
    text-align: center;
  }

  nav ul li a {
    min-width: 180px;
    padding: 20px 50px;
    display: block;
  }

  .overlay.active {
    opacity: 0.8;
    visibility: visible;
  }

  .overlay {
    position: fixed;
    inset: 0;
    background-color: #969696;
    transition: 0.3s;
    z-index: 9;
  }

  /* totop */
  .to-top {
    position: fixed;
    bottom: 1vw;
    right: 1vw;
    width: 70px;
    aspect-ratio: 1/1;
    font-size: 1.2rem;
    text-align: center;
    background-color: #d3bd6c;
    border: 2px solid #464646;
    border-radius: 50%;
  }

  .to-top a {
    display: block;
  }

  /* hero */
  .hero {
    padding: 20% 0 30%;
  }

  .hero .inner .hero-item {
    display: none;
  }

  .hero .inner img {
    width: 80vw;
    height: auto;
  }

  /* concept */
  .concept h2 {
    font-size: 2rem;
  }

  .concept .content-text {
    font-size: 1.3rem;
  }

  .concept h3 {
    font-size: 1.6rem;
  }

  /* typelist */
  .typelist h2 {
    font-size: 2rem;
  }

  .typelist-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 5vh 0;
  }

  .typelist-card:nth-child(even) {
    flex-direction: column;
  }

  .type-text {
    width: 100%;
    margin: 2vw 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-color: #ffffcc;
    border: 2px solid #464646;
    border-radius: 20px;
  }

  .type-text h3 {
    font-size: 2rem;
    line-height: 3;
  }

  .type-text p {
    font-size: 1.5rem;
    line-height: 2;
  }

  .detail-btn {
    width: 50%;
    font-size: 1.7rem;
    line-height: 3;
    margin: 5vh 0 0;
    background-color: #d3bd6c;
    border: 2px solid #464646;
    border-radius: 20px;
  }

  .detail-btn:hover {
    background-color: #97874c;
  }

  .type-img {
    width: 100%;
  }

  .typelist img {
    width: 100%;
    aspect-ratio: 1/1;
  }

  /* footer */
  .company {
    width: 30%;
  }

  .footer-menu {
    width: 70%;
  }

  .footer-menu-list li {
    font-size: 0.8rem;
  }

  footer img {
    width: 90%;
  }

  /* check.html */
  .question-text {
    font-size: 1.5rem;
  }

  .answer-list {
    margin: 20px 0 30px;
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, 1fr);
  }

  .answer-box {
    width: 100%;
  }

  .answer-btn {
    width: 100%;
    background-color: #d3bd6c;
    border: 2px solid #464646;
    border-radius: 20px;
    text-align: center;
    font-size: 0.9rem;
    height: 4em;
  }

  .progress {
    width: 100%;
    height: 15px;
    margin: 30px 0;
    background-color: #ffffcc;
    border: 2px solid #464646;
    border-radius: 20px;
  }

  /* result.html */
  #resulttype {
    font-size: 2rem;
  }

  .result-area {
    display: flex;
    flex-direction: column-reverse;
  }

  .result-text,
  .result-img {
    width: 100%;
  }

  #resulttext2 h3 {
    font-size: 1.5rem;
    line-height: 2;
    background: linear-gradient(transparent 70%, #d3bd6c 70%);
  }

  #resulttext2 ul {
    font-size: 1.2rem;
  }

  .details h2 {
    font-size: 2rem;
  }

  .details-area {
    height: 80%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .detail-img-area {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .stationery-btn {
    font-size: 2rem;
    border: 2px solid #464646;
    border-radius: 0;
    background-color: #d3bd6c;
    height: 50%;
  }

  .stationery-img-area {
    width: 50%;
    margin: 0 1vw;
    border: 2px solid #464646;
    border-radius: 20px;
    background-color: #ffffff;
  }

  #stationeryimg {
    width: 100%;
    aspect-ratio: 1/1;
    border-radius: 20px;
  }

  .detail-text-area {
    text-align: center;
    width: 100%;
  }
  /* privacypolicy.html */
  .privacypolicy h2 {
    font-size: 2rem;
    line-height: 3;
  }

  .privacypolicy h3 {
    font-size: 1.3rem;
    line-height: 3;
  }

  .privacypolicy p,
  .privacypolicy ol {
    font-size: 1rem;
  }

  /* contact.html */
  .contact-title {
    font-size: 1.5rem;
  }
  .required {
    font-size: 1rem;
  }

  .required::after {
    font-size: 1rem;
  }

  .contact-br {
    display: block;
  }
}
