@charset "utf8";

/** 定義 */
:root {
  /** color */
  --default-background-color: #fff;
  --default-font-color: #000;
  --default-hover-background-color: #ccc;
  --default-shadow-color: rgba(0, 0, 0, 0.5);
  --default-title-color: #222b64;
  --default-border-color: #ddd;

  --white-font-color: #fff;

  /** font-size */
  --default-h1-size: clamp(1.5rem, 2.2vw, 2.2rem);
  --default-h2-size: clamp(1.4rem, 2.0vw, 2.0rem);
  --default-h3-size: clamp(1.3rem, 1.8vw, 1.8rem);
  --default-h4-size: clamp(1.2rem, 1.6vw, 1.6rem);
  --default-h5-size: clamp(1.1rem, 1.4vw, 1.4rem);
  --default-h6-size: clamp(1.0rem, 1.2vw, 1.2rem);

  --default-article-size: clamp(1.0rem, 1.3vw, 1.3rem);
}

/** reset */
* {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  padding: 0;
  margin: 0;
  background-color: var(--default-background-color);
  color: var(--default-font-color);
  font-family: 'Noto Serif JP', 'Lato', 'メイリオ', 'Meiryo', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ＭＳ Ｐゴシック', sans-serif;

  letter-spacing: 0.1rem;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding: 0;
}

a {
  color: var(--default-font-color);
  text-decoration: none;
}

p {
  margin: 0;
  padding: 0;
}

ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/** header */
header {
  width: 100%;
  height: auto;
  background-color: var(--default-background-color);
  box-shadow: 0px 2px 5px 0px var(--default-shadow-color);
  position: sticky;
  top: 0;
  left: 0;
  z-index: 10;
}

header > h1 {
  text-align: center;
  font-size: var(--default-h1-size);
}

header > nav {
  width: 100%;
  max-width: 950px;
  margin: 0 auto 0;
}

header > nav > ul {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
}

header > nav > ul > li {
  display: block;
  width: 20%;
  height: calc(2rem - 1px);
  perspective: 800px;
  overflow: hidden;
  cursor: pointer;
}

header > nav > ul > li > span {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transform-origin: center center -1rem;
  transition: transform 0.5s ease;
}

header > nav > ul > li:hover > span {
  transform: rotateX(-90deg);
}

header > nav > ul > li > span > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

header > nav > ul > li > span > span.top {
  transform: rotateX(90deg) translateY(-16px) translateZ(48px);
}

header > nav > ul > li > span > span.front {
  transform: rotateX(0deg) translateZ(0);
}

header > nav > ul > li a {
  display: block;
  width: 100%;
  text-align: center;
}

header > nav > ul > li > a:hover {
  background-color: var(--default-hover-background-color);
}

/** main */
main {
  width: 100%;
}

main > section {
  width: 100%;
  margin: 0 0 1rem 0;
}

main > section > div.contents {
  max-width: 950px;
  width: 100%;
  margin: 0 auto 0;
}

main > section > h2 {
  font-size: var(--default-h2-size);
  font-weight: 600;
  text-align: center;
}

/** main visual */
div.mainVisual {
  width: 100%;
  max-width: 950px;
  margin: 0 auto 1rem;
}

div.mainVisual > .swiper {
  padding: 0 0 1rem 0;
}

div.mainVisual > .swiper > .swiper-pagination {
  top: unset;
  bottom: 0;
}

div.mainVisual img {
  display: block;
  width: 100%;
}

/** contents */
div.contents h3 {
  font-size: var(--default-h3-size);
  color: var(--default-title-color);
  font-weight: 600;
  text-align: center;
}

div.contents h4 {
  font-size: var(--default-h4-size);
  color: var(--default-title-color);
  font-weight: 600;
  text-align: left;
}

div.contents .description {
  margin: 0 0 1rem 0;
  font-size: var(--default-h5-size);
  font-weight: 600;
  text-align: left;
}

div.contents p {
  text-indent: 1rem;
  text-align: left;
}

div.contents p+h4 {
  margin: 1rem 0 0 0;
}

div.contents img {
  width: 100%;
}

/** company */
section#company div {}

/** service */
section#service {}

/** news */
section#news {
  background-color: var(--default-hover-background-color);
  padding: 0 0 1rem 0;
}

/** contact */
section#contact div.flex > div > h4,
section#contact div.flex > div > p {
  font-size: var(--default-h4-size);
  text-align: center;
  text-indent: 0;
}

/** access */
section#access {
  background-color: var(--default-hover-background-color);
  padding: 0 0 1rem 0;
}

section#access iframe {
  width: 100%;
  min-height: 240px;
}

/** flex box */
div.flex {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
}

div.flex > div {
  width: calc(50% - 1rem);
  min-width: calc(390px - 2rem);
}

@media (max-width: 950px) {
  div.flex {
    justify-content: center;
  }

  div.flex > div {
    width: 100%;
  }

  div.flex.sp-reverse {
    flex-direction: column-reverse;
  }
}

/** scroll box */
div.scroll-box {
  min-width: 390px;
  min-height: 240px;
  max-height: 240px;
  height: auto;
  margin: 0 auto 0;
  background-color: var(--default-background-color);
  overflow-y: scroll;
}

div.scroll-box > div.record {
  display: flex;
  flex-direction: column;
  width: calc(100% - 2rem);
  padding: 1rem 0 1rem 0;
  margin: 0 auto 0;
  border-bottom: 1px solid var(--default-border-color);
}

div.scroll-box > div.record:last-child {
  border-bottom: 0;
}

div.scroll-box > div.record > h5 {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: left;
  font-size: var(--default-h5-size);
  font-weight: 600;
}

div.scroll-box > div.record > h5 > date {
  background-color: var(--default-title-color);
  color: var(--white-font-color);
  padding: 0.25rem;
  margin: 0 0.25rem 0 0;
}

div.scroll-box > div.record > article {
  font-size: var(--default-article-size);
}

/** footer */
footer {
  width: 100%;
  border-top: 1px solid var(--default-border-color);
}

footer > p {
  text-align: center;
}
