@charset "utf-8";
/* CSS Document */
/*===共通部分==============
====================================================================*/
html {
  font-size: 100%;
}
body {
  font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
  font-weight: 400;
  color: #333;
  font-size: clamp(16px,2vw,18px);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  /*アンチエイリアスを滑らかに*/
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.7;
  padding-top:86px;
}
p {
  letter-spacing: 0.1em;
}
h1,h2,h3,h4,h5,h6 {
  font-weight: 600;
  line-height: 1.7;
}
a {
  text-decoration: none;
  color: #333;
  transition: .4s;
}
ul,ol {
  list-style: none;
  padding: 0;
}
main {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
section {
  padding: clamp(60px,8vw,100px) 0;
  position: relative;
}
table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  /*隙間なし*/
}
/*改行　-------*/
@media (min-width: 451px) {
  br.only450 {
    display: none;
  }
}
@media (max-width: 450px) {
  br.not450 {
    display: none;
  }
}
span.ib {
  display: inline-block!important;
}
.anchor {
  scroll-margin-top: 110px;
}
/*PC・SP表示-----------------------*/
.sp {
  display: none;
}
.pc {
  display: block;
}
@media (max-width: 767px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
}
/*幅・高さ調整-------*/
.inner {
  width: 96%;
  max-width: 1200px;
  margin: 0 auto;
}
.inner.wide {
  max-width: 1400px;
}
.inner.max {
  max-width: none;
}
.inner.w960 {
  max-width: 960px;
}
/*高さ*/
.mg100 {
  margin-bottom: 100px !important;
}
.mg80 {
  margin-bottom: 80px !important;
}
.mg60 {
  margin-bottom: 60px !important;
}
.mg50 {
  margin-bottom: 50px !important;
}
.mg40 {
  margin-bottom: 40px !important;
}
.mg30 {
  margin-bottom: 30px !important;
}
.mg20 {
  margin-bottom: 20px !important;
}
.mg10 {
  margin-bottom: 10px !important;
}
.mg0 {
  margin-bottom: 0 !important;
}
.pmg5 p {
  margin-bottom: 5px;
}
.pmg p {
  margin-bottom: 10px;
}
.pmg15 p {
  margin-bottom: 15px;
}
.pmg20 p {
  margin-bottom: 20px;
}
.pmg5 p:last-child, .pmg p:last-child, .pmg15 p:last-child, .pmg20 p:last-child {
  margin-bottom: 0;
}
.t_center {
  text-align: center;
}
.t_left {
  text-align: left;
}
/* 画像　-------------------------- */
img {
  width: 100%;
  height: auto;
}
.obj-in {
  width: 100%;
  height: 100%;
  object-fit: contain
}
.obj-cov {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.img_4-3 {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.img_16-9 {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
/*flexbox------------------------*/
.flexbox {
  display: flex;
  flex-wrap: wrap;
}
.f_jsb {
  justify-content: space-between;
}
.f_cent {
  justify-content: center;
}
.fac {
  align-items: center;
}
.comn2 {
  width: 48%;
}
.comn3 {
  width: calc(100% / 3 - 20px);
}
.comn4 {
  width: 35%;
}
.comn5 {
  width: 62%;
}
.f_center {
  align-items: center;
}
@media (max-width: 767px) {
  .flexbox {
    flex-direction: column;
  }
  .flexbox.rever {
    flex-direction: column-reverse;
  }
  .comn2, .comn3, .comn4, .comn5 {
    width: 100%;
    margin-bottom: 30px
  }
}
/* ===== Section Head ===== */
.sec-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
}
.sec-head h2 {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  letter-spacing: .05em;
  display: flex;
  align-items: center;
  gap: 10px;
}
.sec-head h2 .ico {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--main);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
.more-link {
  margin-left: auto;
  color: var(--main);
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: gap .3s;
}
.more-link:hover {
  gap: 10px;
  color: var(--main);
}
.more-link i {
  font-size: 12px;
}
/*===下層用見出し=======================*/
.section-title {
  margin-bottom:50px;
}
.section-title .en {
  display:inline-block;
  color:var(--main);
  font-size:14px;
  font-weight:700;
  letter-spacing:.25em;
  text-transform:uppercase;
  margin-bottom:12px;
}
.section-title h2 {
  position:relative;
  font-size:clamp(28px,2.6vw,40px);
  font-weight:700;
  line-height:1.4;
  padding-bottom:18px;
}
.section-title h2::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:70px;
  height:4px;
  background:var(--main);
}
.section-title.center {
  text-align:center;
}
.section-title.center h2::after {
  left:50%;
  transform:translateX(-50%);
}
/*==Sub Title==========*/
.sub-title {
  position:relative;
  font-size:26px;
  font-weight:700;
  line-height:1.5;
  padding-left:20px;
  margin-bottom:30px;
}
.sub-title::before {
  content:"";
  position:absolute;
  left:0;
  top:4px;
  width:6px;
  height:calc(100% - 8px);
  border-radius:10px;
  background:var(--main);
}
