@charset "utf-8";

/* ===============================
   リセット・ベース設定（モバイルファースト対応）
================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 62.5%; /* 1rem = 10px */
  scroll-behavior: smooth;
}

body {
  font-family: "Roboto", "Helvetica Neue", sans-serif;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #333;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  text-align: justify;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
  transition: 0.3s;
  display: block;
}

ul, ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button, input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  background: none;
  border: none;
  outline: none;
}

/* ===============================
   レイアウト・構造系
================================== */
#wrap {
  width: 100%;
  max-width: 2560px;
  margin: 0 auto;
  position: relative;
  overflow-x: hidden;
}

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

/* ===============================
   ユーティリティクラス
================================== */
.rel      { position: relative; }
.z-in     { z-index: 100; }

.flex     { display: flex; }
.fww      { flex-wrap: wrap; }
.fwr      { flex-wrap: wrap-reverse; }
.aic      { align-items: center; }
.jsc      { justify-content: center; }
.jsb      { justify-content: space-between; }

.tce, .ta-c { text-align: center; }

.block {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

.m20  { margin-top: 20px; }
.m50  { margin-top: 50px; }
.m100 { margin-top: 100px; }

.ti {
  text-indent: -1em;
  padding-left: 1em;
  display: block;
}
.ti1-5 {
  text-indent: -1.5em;
  padding-left: 1.5em;
  display: block;
}

/* ブレーク制御 */
.Pc_Br { display: none; }
.Sp_Br { display: block; }

.sp { display: none; }


.triangle {
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 50px solid transparent;
	border-left: 50px solid transparent;
	border-top: 60px solid #f7c600;
	border-bottom: 0;
}

/* ===============================
   レスポンシブ：768px以上（タブレット）
================================== */
@media (min-width: 768px) {
  .block {
    padding: 0 24px;
  }
}

/* ===============================
   レスポンシブ：992px以上（ノートPC以上）
================================== */
@media (min-width: 992px) {
  .Pc_Br { display: block; }
  .Sp_Br { display: none; }
  .sp    { display: none !important; }
}