@charset "UTF-8";
:root {
  --colorA: #333;
  --colorB: #ea6060;
  --colorC: #4dc7e1;
  --colorD: #77e14d;
  --colorE: #e1de4d;
}

@font-face {
  font-family: NotoSansJP;
  font-weight: 100 900;
  src: url("../fonts/SourceHanSansJP-VF.otf.woff2") format("woff2"), url("../fonts/SourceHanSansJP-VF.otf") format("opentype");
}
/* タブレット以上サイズで電話ボタンリンクを非活性状態にする */
@media screen and (width >= 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
body {
  font-family: NotoSansJP, sans-serif;
  color: #333;
  letter-spacing: 0.05em;
}

.l-wrapper {
  width: 100%;
}

.l-mainHeader {
  width: 100%;
}

.l-mainFooter {
  width: 100%;
}

.l-main {
  width: 100%;
  padding-right: 5vw;
  padding-left: 5vw;
  margin: auto;
}

img {
  max-width: 100%;
}

@media (hover: hover) {
  .hover {
    display: inline-block;
    width: 100%;
    height: 100%;
    transition: all 0.5s ease;
  }
  .hover:hover {
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.16);
    transform: translateY(-10px);
  }
}
.sp {
  display: none;
}

.pc {
  display: block;
}

@media screen and (max-width: 1023px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
}
/* =======================================================
追加リセットCSS
======================================================= */
html {
  font-size: min(calc(16 / 1570 * 100vw), 16px);
}

* {
  padding: 0;
  margin: 0;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  font-style: normal;
  word-wrap: break-word;
  overflow-wrap: break-word;
  outline: none;
  box-shadow: none;
  line-break: strict;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

input,
button,
select,
textarea {
  font-size: 1rem;
  cursor: pointer;
  background-color: transparent;
  border: none;
  border-radius: 0;
  outline: none;
  appearance: none;
}

input:-webkit-autofill {
  box-shadow: 0 0 0 1000px #fff inset;
}

button,
textarea {
  font-family: inherit;
  font-size: 100%;
}

ul,
ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

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

@media only screen and (device-width >= 768px) {
  a,
  .hp_hover {
    transition: all 0.3s ease;
  }
  /* PCのみホバー効果 */
  a:hover,
  .hp_hover:hover {
    opacity: 0.7;
  }
}
@media screen and (max-width: 1023px) {
  html {
    font-size: calc(16 / 393 * 100vw);
  }
}
/* =======================================================
共通
======================================================= */
.common-allWrapper {
  max-width: 1920px;
  margin: 0 auto;
  overflow: hidden;
}

.l-common-inner {
  margin: 0 auto;
}

@font-face {
  font-family: TamanegiKaisho;
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/TamanegiKaisho.ttf") format("truetype");
}
.u-font-strong {
  font-family: TamanegiKaisho, sans-serif;
}

.u-font-en {
  font-family: "DIN 2014", sans-serif;
}

.u-font-red {
  color: #c1272d;
}

picture {
  display: flex;
  margin: 0 auto;
}

figure {
  display: flex;
}