@charset "UTF-8";
/* CSS Document */

/*
 オリジナルリセットcss
 ----------------------------------------------------------- */
* {box-sizing: border-box;}
html, body, blockquote, form {margin: 0;padding: 0;}
blockquote, code, embed, iframe, img, input, object, pre, table, td, textarea, video {max-width: 100%;height: auto;}
a img, form, fieldset {border: none;}
input, button, select {vertical-align: middle;}
textarea {overflow: auto;vertical-align: top;}
abbr {cursor: help;border-bottom: 1px dotted #bbb;}
blockquote p, button, input, li h1, li h2, li h3, li h4, li h5, li h6, li li, li p, select, td p, th p {font-size: 100%;}
p{margin-bottom:0;}
img{display: block;}

/*
 デバイス共通
 ----------------------------------------------------------- */
html{
  font-size: 62.5%;
  overflow-x: hidden !important;
}
body{
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Meiryo, sans-serif;
  /* font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif; */
  font-size: 1.6rem;
  line-height:1.65;
  color:#333;
  letter-spacing: .05em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden !important;
  word-break: break-all;
  line-break: strict;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
@media screen and (max-width: 767px){
  body{font-size: 1.6rem;line-height: 1.4;}
}

a,a img{transition: all .3s;}
a:hover,a img:hover{opacity: 0.7;}
.m0a{margin:0 auto;}
.posr{position: relative;}
.imgr{display: block;max-width: 100%;height: auto;}
.fdrr{flex-direction: row-reverse;}
.ovfh {overflow: hidden;}

@media (hover: none) {
  a:hover,
  a img:hover,
  .btn:hover,
  nav li a:hover{
      opacity: 1;
      text-decoration: none;
      background-color: inherit;
      box-shadow: inherit;
  }
}

@media screen and (max-width: 767px){
  .sp_scroll{width: 100%;overflow-x: scroll;}
  .sp_scroll > *{min-width: 768px;}
}

.delay_time02{
  animation-delay: 0.2s;
}
.delay_time04{
  animation-delay: 0.4s;
}
.delay_time06{
  animation-delay: 0.6s;
}
.delay_time08{
  animation-delay: 0.8s;
}
@media (min-width: 768px) and (max-width: 1199px){
  .delay_time02{
    animation-delay: unset;
  }
  .delay_time04{
    animation-delay: unset;
  }
  .delay_time06{
    animation-delay: unset;
  }
  .delay_time08{
    animation-delay: unset;
  }
}
@media screen and (max-width: 767px){
  .delay_time02{
    animation-delay: unset;
  }
  .delay_time04{
    animation-delay: unset;
  }
  .delay_time06{
    animation-delay: unset;
  }
  .delay_time08{
    animation-delay: unset;
  }
}
.fadeIn{
  animation-name:fadeInAnime;
  animation-duration: 1s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeInAnime{
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fadeUp{
  animation-name:fadeUpAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(30px);
  }
  to {
    opacity: 1;
  transform: translateY(0);
  }
}
.fadeDown{
  animation-name:fadeDownAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeDownAnime{
  from {
    opacity: 0;
  transform: translateY(-30px);
  }
  to {
    opacity: 1;
  transform: translateY(0);
  }
}
.fadeLeft{
  animation-name:fadeLeftAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeLeftAnime{
  from {
    opacity: 0;
  transform: translateX(-30px);
  }
  to {
    opacity: 1;
  transform: translateX(0);
  }
}
.fadeRight{
  animation-name:fadeRightAnime;
  animation-duration: 1s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(30px);
  }
  to {
    opacity: 1;
  transform: translateX(0);
  }
}
@keyframes reveal-image {
  from {
    clip-path: inset(30% round 20%);
  }
  to {
    clip-path: inset(0);
  }
}
.flipLeft{
  animation-name:flipLeftAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  perspective-origin:left center;
  opacity:0;
}
@keyframes flipLeftAnime{
  from {
    transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
  opacity: 0;
  }

  to {
  transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
  opacity: 1;
  }
}
.flipLeftTop{
  animation-name:flipLeftTopAnime;
  animation-duration:1.5s;
  animation-fill-mode:forwards;
  opacity:0;
}
@keyframes flipLeftTopAnime{
  from {
    transform: translate(-20px,80px) rotate(-15deg);
  opacity: 0;
  }

  to {
    transform: translate(0,0) rotate(0deg);
  opacity: 1;
  }
}
.blur{
  animation-name:blurAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
}
@keyframes blurAnime{
  from {
  filter: blur(10px);
  transform: scale(1.02);
  opacity: 0;
  }
  to {
  filter: blur(0);
  transform: scale(1);
  opacity: 1;
  }
}
.zoomIn{
  animation-name:zoomInAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
}
@keyframes zoomInAnime{
  from {
  transform: scale(0.9);
  opacity: 0;
  }
  to {
    transform: scale(1);
  opacity: 1;
  }
}
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger,
.flipLeftTopTrigger,
.flipLeftTrigger,
.blurTrigger,
.zoomInTrigger{
  opacity: 0;
}
/*
 テキスト関連
 ----------------------------------------------------------- */
.fwb{font-weight:bold!important;}
.underline{text-decoration:underline;}
.font_xs{font-size: 0.666em;}/*12px*/
.font_s{font-size: 0.777em;}/*14px*/
.font_m{font-size: 1.333em;}/*24px*/
.font_l{font-size: 2.222em;}/*40px*/
.font_xl{font-size: 3.333em;}/*60px*/
@media screen and (max-width: 767px){
  .font_xs{font-size: 0.4em;}
.font_s{font-size: 0.5em;}
.font_m{font-size: 1.1em;}
.font_l{font-size: 1.5em;}
.font_xl{font-size: 2em;}
}
.tac{text-align: center!important;}
.tal{text-align: left!important;}
.tar{text-align: right!important;}
.font_min {font-family: "Yu Mincho", YuMincho, HG明朝B, "MS Mincho", serif;}
.font_go {font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "YuGothic M", sans-serif;}
.indent {text-indent: -1em; padding-left: 1em;}
.note {
  position: relative;
  font-size: 0.777em;
  padding-left: 1em;
}
.note:before {
  position: absolute;
  content: "※";
  top: 0;
  left: 0;
  font-size: 1em;
  line-height: 1.554em;
}
.shadow{text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;}
@media (min-width: 768px) and (max-width: 1199px) {
  .tab_shadow {text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;}
}
@media screen and (max-width: 767px){
  .sp_tal {text-align: left!important;}
  .sp_shadow {text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff,0 0 3px #fff;}
}

/*
 余白&幅調整
 ----------------------------------------------------------- */
.mt0{margin-top: 0;}.mt5{margin-top: 5px;}.mt10{margin-top: 10px;}.mt15{margin-top: 15px;}.mt20{margin-top: 20px;}.mt30{margin-top: 30px;}.mt45{margin-top: 45px;}.mt60{margin-top: 60px;}.mt75{margin-top: 75px;}.mt90{margin-top: 90px;}.mt120{margin-top: 120px;}
.mb0{margin-bottom: 0;}.mb5{margin-bottom: 5px;}.mb10{margin-bottom: 10px;}.mb15{margin-bottom: 15px;}.mb20{margin-bottom: 20px;}.mb30{margin-bottom: 30px;}.mb45{margin-bottom: 45px;}.mb60{margin-bottom: 60px;}.mb75{margin-bottom: 75px;}.mb90{margin-bottom: 90px;}.mb120{margin-bottom: 120px;}
.pt0{padding-top: 0;}.pt5{padding-top: 5px;}.pt10{padding-top: 10px;}.pt15{padding-top: 15px;}.pt20{padding-top: 20px;}.pt30{padding-top: 30px;}.pt45{padding-top: 45px;}.pt60{padding-top: 60px;}.pt75{padding-top: 75px;}.pt90{padding-top: 90px;}.pt120{padding-top: 120px;}
.pb0{padding-bottom: 0;}.pb5{padding-bottom: 5px;}.pb10{padding-bottom: 10px;}.pb15{padding-bottom: 15px;}.pb20{padding-bottom: 20px;}.pb30{padding-bottom: 30px;}.pb45{padding-bottom: 45px;}.pb60{padding-bottom: 60px;}.pb75{padding-bottom: 75px;}.pb90{padding-bottom: 90px;}.pb120{padding-bottom: 120px;}

.pl0{padding-left:0;}
.pr0{padding-right:0;}
.ph0{padding-left:0;padding-right:0;}
.ph15{padding-left:15px;padding-right:15px;}

@media (min-width: 768px) and (max-width: 1199px) {
  .tbmt0{margin-top: 0;}.tbmt5{margin-top: 5px;}.tbmt10{margin-top: 10px;}.tbmt15{margin-top: 15px;}.tbmt20{margin-top: 20px;}.tbmt30{margin-top: 30px;}.tbmt45{margin-top: 45px;}.tbmt60{margin-top: 60px;}
  .tbmb0{margin-bottom: 0;}.tbmb5{margin-bottom: 5px;}.tbmb10{margin-bottom: 10px;}.tbmb15{margin-bottom: 15px;}.tbmb20{margin-bottom: 20px;}.tbmb30{margin-bottom: 30px;}.tbmb45{margin-bottom: 45px;}.tbmb60{margin-bottom: 60px;}
  .tbpt0{padding-top: 0;}.tbpt5{padding-top: 5px;}.tbpt10{padding-top: 10px;}.tbpt15{padding-top: 15px;}.tbpt20{padding-top: 20px;}.tbpt30{padding-top: 30px;}.tbpt45{padding-top: 45px;}.tbpt60{padding-top: 60px;}
  .tbpb0{padding-bottom: 0;}.tbpb5{padding-bottom: 5px;}.tbpb10{padding-bottom: 10px;}.tbpb15{padding-bottom: 15px;}.tbpb20{padding-bottom: 20px;}.tbpb30{padding-bottom: 30px;}.tbpb45{padding-bottom: 45px;}.tbpb60{padding-bottom: 60px;}
  .tbpl0{padding-left:0;}
  .tbpr0{padding-right:0;}
  .tbph0{padding-left:0;padding-right:0;}
}

@media screen and (max-width: 767px){
  .spmt0{margin-top: 0;}.spmt5{margin-top: 5px;}.spmt10{margin-top: 10px;}.spmt15{margin-top: 15px;}.spmt20{margin-top: 20px;}.spmt30{margin-top: 30px;}.spmt45{margin-top: 45px;}.spmt60{margin-top: 60px;}
  .spmb0{margin-bottom: 0;}.spmb5{margin-bottom: 5px;}.spmb10{margin-bottom: 10px;}.spmb15{margin-bottom: 15px;}.spmb20{margin-bottom: 20px;}.spmb30{margin-bottom: 30px;}.spmb45{margin-bottom: 45px;}.spmb60{margin-bottom: 60px;}
  .sppt0{padding-top: 0;}.sppt5{padding-top: 5px;}.sppt10{padding-top: 10px;}.sppt15{padding-top: 15px;}.sppt20{padding-top: 20px;}.sppt30{padding-top: 30px;}.sppt45{padding-top: 45px;}.sppt60{padding-top: 60px;}
  .sppb0{padding-bottom: 0;}.sppb5{padding-bottom: 5px;}.sppb10{padding-bottom: 10px;}.sppb15{padding-bottom: 15px;}.sppb20{padding-bottom: 20px;}.sppb30{padding-bottom: 30px;}.sppb45{padding-bottom: 45px;}.sppb60{padding-bottom: 60px;}
  .sppl0{padding-left:0;}
  .sppr0{padding-right:0;}
  .spph0{padding-left:0;padding-right:0;}
}

@media screen and (max-width: 767px){
  .spwd50{width: 50%!important;}
  .spwd60{width: 60%!important;}
  .spwd70{width: 70%!important;}
  .spwd80{width: 80%!important;}
  .spwd90{width: 90%!important;}
}

/*
 見出し
----------------------------------------------------------- */
h2 {
  text-align: center;
}

/*
 ボタン
 ----------------------------------------------------------- */
.btn{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: block;
  background: #25ad38;
  margin:0 auto;
  border: 3px solid #25ad38;
  border-radius: 5px;
  color: #fff;
  font-weight: bold;
  font-size: 190%;
  font-family: inherit;
  padding: 5px;
  transition: all 0.2s ease;
  cursor: pointer;
  -webkit-box-shadow: 0px 4px 0px #197827;
  box-shadow: 0px 4px 0px #197827;
  text-align: center;
  padding: 10px 0;
  position: relative;
  width: 100%;
}
.btn a{color: #FFF;}
.btn:focus {
  color: #FFF;
  text-decoration: none;
}
.btn:hover {
  background: #45ba55;
  border: 3px solid #45ba55;
  -webkit-box-shadow: 0px 4px 0px #236251;
  box-shadow: 0px 4px 0px #236251;
  color: #FFF;
  text-decoration: none;
}
.btn img {
  position: absolute;
  right: 5px;
  width: 20%;
  top: -12px;
}
.btn_gradient{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: block;
  background: #2d660a;
  background: -moz-linear-gradient( #5edd00 0%, #2d660a 100%);
  background: -webkit-gradient(linear, left top, left bottom, from(#5edd00), to(#2d660a));
  background: -webkit-linear-gradient( #5edd00 0%, #2d660a 100%);
  background: -o-linear-gradient( #5edd00 0%, #2d660a 100%);
  background: -ms-linear-gradient( #5edd00 0%, #2d660a 100%);
  background: linear-gradient( #5edd00 0%, #2d660a 100%);
}
button {
  margin: 0 auto;
  text-align: center;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
  width: 100%;
}
button img:hover{opacity: .7;}
@media (min-width: 768px) and (max-width: 1199px) {
}
@media screen and (max-width: 767px){
}

/*
 Page Top
 ----------------------------------------------------------- */
 /*TOPへ戻る*/
.pagetop {
  display: none;
  position: fixed;
  bottom: 15px;
  right: 15px;
  z-index:9999;
}
.pagetop a {
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  background-color: var(--yellow);
  border-radius:50%;
  filter:alpha(opacity=100);
  -moz-opacity: 1;
  opacity: 1;
}
.pagetop a:before {
  position: absolute;
    content: "";
    height: 10px;
    width: 10px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    translate: 0 20%;
    rotate: -45deg;
    top: calc(50% - 5px);
    left: calc(50% - 5px);
}
.pagetop a:hover {
  display: block;
  text-align: center;
  color: #fff;
  font-size: 12px;
  text-decoration: none;
  filter:alpha(opacity=70);
  -moz-opacity: 0.7;
  opacity: 0.7;
}
.pagetop a:link,
.pagetop a:visited {color: #fff;}

/*
 ページ下部固定部分
 ----------------------------------------------------------- */
.btm_fix{
  position: fixed;
  left: 0;
  bottom: 0;
  background: #b4e2cce7;
  width: 100%;
  padding-top: 10px;
  padding-bottom: 10px;
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
@media (min-width: 768px) and (max-width: 1199px) {
  .btm_fix .fbox_4 > * {width: 50%;}
}
@media screen and (max-width: 767px){
  .sp_fix_area_wrap {
    display: flex;
    justify-content: space-between;
  }
  .sp_fix_area_icon_box {
    background: var(--yellow02);
    padding: 10px;
    border-radius: 10px;
    box-shadow: 0 3px 5px 0 #00422263;
  }
  .sp_fix_area_wrap li:nth-child(n + 2) {
    margin-left: 15px;
  }
  .sp_fix_area_icon {
    color: var(--green);
    font-size: 2.4rem;
    margin-bottom: 5px;
    text-align: center;
  }
  .sp_fix_area_txt {
    font-size: 0.8em;
    color: var(--green);
  }
}

/*
 flex-box
 ----------------------------------------------------------- */
.fbox {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  margin: 0 -15px;
}
.fbox > * {
  box-sizing: border-box;
  padding-right: 15px;
  padding-left: 15px;
  -ms-word-break: break-all;
  word-break: break-all;
}
.fbox_2 > * {width: 50%;}
.fbox_3 > * {width: 33.3333%;;}
.fbox_4 > * {width: 25%;}
.fbox_6 > * {width: 16.6666%;}
@media (min-width: 768px) and (max-width: 1199px) {
  .fbox_3 > * {width: 33.3333%;;}
  .fbox_4 > * {width: 25%;}
}
@media screen and (max-width: 767px){
  .fbox > * {width: 100%;}
  .fbox_4 > * {width: 50%;}
  .fbox_6 > * {width: 33.333%;}
}

/*
 white-box
 ----------------------------------------------------------- */
.white_box {
  padding: 50px;
  background-color: #fff;
  margin-bottom: 30px;
}
.white_box:last-of-type {
  margin-bottom: 0;
}
@media (min-width: 768px) and (max-width: 1199px) {
  .white_box {
    padding: 30px;
    margin-bottom: 15px;
  }
}
@media screen and (max-width: 767px){
  .white_box {
    padding: 15px;
    margin-bottom: 15px;
  }
}

/*
 check_list
 ----------------------------------------------------------- */
.check_list li {
  position: relative;
  padding-left: 1em;
  margin-bottom: 3px;
}
.check_list li:before {
  position: absolute;
  content: "\f14a";
  font: var(--fa-font-solid);
  /* font: var(--fa-font-regular);
  font: var(--fa-font-brands); */
  font-weight: bolder;
  top: 0;
  left: 0;
  color: orange;
}
.list_border {
  border-bottom: 2px dashed #000;
}
.list_border_stop {
  border-bottom: 2px dashed #000;
  display: inline-block;
}


/*
 Container / Break
 ----------------------------------------------------------- */
@media (min-width: 1200px) {
  .container{
    width:1200px;
    margin:0 auto;
    position:relative;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
  }
  .p_none {display: none;}
  .pt_none {display: none;}
  .ps_none {display: none;}
  .t_none {display: block;}
  .ts_none {display: block;}
  .s_none {display: block;}
}

@media (min-width: 768px) and (max-width: 1199px) {
  body{
    overflow-x: hidden;
  }
  .container{
    width:768px;
    margin:0 auto;
    position:relative;
    margin-right: auto;
    margin-left: auto;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
  }
  .p_none {display: block;}
  .pt_none {display: none;}
  .ps_none {display: block;}
  .t_none {display: none;}
  .ts_none {display: none;}
  .s_none {display: block;}
}

@media screen and (max-width: 767px){
  body{
    overflow-x: hidden;
  }
  .container{
    margin-right: auto;
    margin-left: auto;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
  }
  .p_none {display: block;}
  .pt_none {display: block;}
  .ps_none {display: none;}
  .t_none {display: block;}
  .ts_none {display: none;}
  .s_none {display: none;}
}
.cmn_img {
  width: 400px;
}
.cmn_txt {
  width: calc(100% - 400px);
}
.cmn_top_img {
  width: 400px;
}
.cmn_top_txt {
  width: calc(100% - 400px);
}
.cmn_mdl_img {
  width: 400px;
}
.cmn_mdl_txt {
  width: calc(100% - 400px);
}
.cmn_btm_img {
  width: 400px;
}
.cmn_btm_txt {
  width: calc(100% - 400px);
}
@media (min-width: 768px) and (max-width: 1199px) {
  .cmn_img {
    width: 320px;
  }
  .cmn_txt {
    width: calc(100% - 320px);
  }
  .cmn_top_img {
    width: 320px;
  }
  .cmn_top_txt {
    width: calc(100% - 320px);
  }
  .cmn_mdl_img {
    width: 320px;
  }
  .cmn_mdl_txt {
    width: calc(100% - 320px);
  }
  .cmn_btm_img {
    width: 320px;
  }
  .cmn_btm_txt {
    width: calc(100% - 320px);
  }
}
@media screen and (max-width: 767px){
  .cmn_img {
    width: 100%;
  }
  .cmn_txt {
    width: 100%;
  }
  .cmn_top_img {
    width: 100%;
  }
  .cmn_top_txt {
    width: 100%;
  }
  .cmn_mdl_img {
    width: 100%;
  }
  .cmn_mdl_txt {
    width: 100%;
  }
  .cmn_btm_img {
    width: 100%;
  }
  .cmn_btm_txt {
    width: 100%;
  }
}

/*
 マーカーアニメーション
----------------------------------------------------------- */
.marker {
    display: inline;
    background-repeat: repeat-x;
    background-size: 200% 0.6em;
    background-position: right -100% center;
    background-image: linear-gradient(to right, rgba(255,255,255,0) 50%, #FFFCD1 50%);
    font-weight: bold;
    padding-bottom: 0.6em;
}
.marker.is-animated {
    transition: background-position 2s ease 0.1s;
    background-position: left -100% center;
}
.marker2 {
    display: inline;
    background-repeat: repeat-x;
    background-size: 200% 0.6em;
    background-position: right -100% center;
    background-image: linear-gradient(to right, rgba(255,255,255,0) 50%, #ff0000 50%);
    font-weight: bold;
    padding-bottom: 0.6em;
}
.marker2.is-animated {
    transition: background-position 3s ease 0.1s;
    background-position: left -100% center;
}

/*
 Flexbox Grid
----------------------------------------------------------- */
.flex-grid {
    --grid-gap: 30px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--grid-gap);
    width: 100%;
}
.flex-grid > * {
    flex: 0 0 auto;
    box-sizing: border-box;
    word-break: break-all;
}
.flex-grid.col-2 > * { width: calc(50% - var(--grid-gap) / 2); }
.flex-grid.col-3 > * { width: calc((100% - var(--grid-gap) * 2) / 3); }
.flex-grid.col-4 > * { width: calc((100% - var(--grid-gap) * 3) / 4); }
@media (768px <= width <= 1199px) {
    .flex-grid.col-4 > * { width: calc((100% - var(--grid-gap)) / 2); }
}
@media (width < 768px) {
    .flex-grid.col-2 > *,
    .flex-grid.col-3 > *,
    .flex-grid.col-4 > * { width: 100%; }
}