@charset "UTF-8";
/* ----------------------------------------------------------
   #Foundation
---------------------------------------------------------- */
html {
  overflow: auto;
  -webkit-text-size-adjust: 100%;
}

*, *::after, *::before {
  box-sizing: border-box;
}

*, *::after, *::before, blockquote, body, dd, div, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, input, p, pre, td, th {
  margin: 0;
  padding: 0;
}

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

fieldset, img {
  border: 0;
}

figure {
  margin: 0;
}

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

ul, ol, li {
  list-style-type: none;
}

address, caption, cite, code, dfn, em, th, var {
  font-style: normal;
  font-weight: 400;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
}

q::before, q::after {
  content: "";
}

input[type=checkbox], input[type=radio] {
  margin: 0 2px 0 0;
  padding: 0;
  vertical-align: -2px;
}

button, input[type=button], input[type=submit], input[type=text] {
  box-sizing: border-box;
  -webkit-appearance: none;
  border: 0;
  cursor: pointer;
  border-radius: 0;
  background: transparent;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ----------------------------------------------------------
   #GLOBAL
---------------------------------------------------------- */
html {
  padding: 0;
  margin: 0;
  font-size: 10px;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body {
  font-family: "Lato", "Noto Sans JP", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  font-size: 1.5rem;
  color: #333;
  line-height: 1.7;
  letter-spacing: 1px;
}

html.is-open, html.is-open.body {
  overflow: hidden;
  height: 100vh;
}

h1, h2, h3, h4, h5 {
  font-weight: 700;
}

a {
  text-decoration: none;
  color: #41AFFF;
  transition: 0.3s;
}

a:hover {
  color: #136DAD;
}

img {
  max-width: 100%;
  height: auto;
  transition: 0.3s;
  vertical-align: top;
}

#wrap {
  width: 100%;
}

strong {
  font-weight: 700;
}

/* ----------------------------------------------------------
   #Layout
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ヘッダー 
----- layout/_header ---------- */
.l-header_inner {
  position: fixed;
  top: 15px;
  left: 15px;
  width: calc(100% - 30px);
  padding: 0 20px;
  backdrop-filter: blur(10px);
  z-index: 999;
  border-radius: 40px;
  border: solid rgba(255, 255, 255, 0.4) 1px;
  background: rgba(255, 255, 255, 0.4);
}

.l-header_grid {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  height: 80px;
}

.l-header_menu_inner {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}

.l-header_logo a {
  display: block;
}
.l-header_logo img {
  height: 40px;
}

.l-header_info {
  display: flex;
  gap: 20px;
  align-items: center;
}

.l-header_nav {
  display: grid;
  grid-auto-flow: column;
  gap: 10px 30px;
  font-weight: 500;
}
.l-header_nav a {
  display: block;
  color: #333;
  text-decoration: none;
  padding: 10px 0;
  position: relative;
}
.l-header_nav a:hover {
  color: #41AFFF;
}
.l-header_nav a:hover::before {
  visibility: visible;
  bottom: 10px; /*アニメーションが止まる位置*/
  opacity: 1;
}
.l-header_nav a::before {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 1px;
  background: #41AFFF;
  bottom: 10px;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}

.l-header_item a {
  display: flex;
  place-items: center;
  gap: 5px;
}
.l-header_item figure {
  display: grid;
  place-content: center;
  width: 20px;
  height: 20px;
}

/*----- プルダウン -----*/
.l-header_has-child {
  position: relative;
}
.l-header_has-child:hover .l-header_sub_nav {
  visibility: visible;
  opacity: 1;
}

.l-header_sub_nav {
  padding-top: 30px;
  position: absolute;
  left: 50%;
  top: 45px;
  translate: -50%;
  z-index: 4;
  transition: all 0.3s;
  visibility: hidden;
  opacity: 0;
}
.l-header_sub_nav ul {
  width: 200px;
  padding: 15px 20px;
  border: solid rgba(65, 175, 255, 0.3) 1px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 20px;
}

.l-header_child {
  margin-top: -5px;
}
.l-header_child a {
  padding: 0 0 5px 10px;
  color: #41AFFF;
}
.l-header_child a:hover {
  color: #136DAD;
}
.l-header_child a::before {
  display: none;
}

@media screen and (min-width: 769px) {
  .l-header.is-change .l-header_nav {
    opacity: 0;
    pointer-events: none;
    transition: 0.3s;
  }
  .l-header_item a {
    color: #333;
  }
  .l-header_item a:hover {
    color: #41AFFF;
  }
}
@media screen and (max-width: 768px) {
  .l-header_inner {
    padding: 0 15px 0 20px;
    background: rgba(255, 255, 255, 0.8);
    top: 10px;
    left: 10px;
    width: calc(100% - 20px);
  }
  .l-header_grid {
    height: 60px;
  }
  .l-header_logo img {
    width: 105px;
  }
  .l-header_menu {
    width: calc(100% + 30px);
    position: fixed;
    z-index: 998;
    top: -15px;
    right: -15px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: all 0.6s;
    background: #fff;
    overflow-y: scroll;
    overscroll-behavior-y: contain;
  }
  .l-header_menu.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .l-header_menu_inner {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    padding: 70px 20px 0;
    width: 100%;
    max-width: 500px;
    height: calc(100vh + 10px);
    max-width: 400px;
  }
  .l-header_nav {
    letter-spacing: 3px;
    width: 100%;
    padding-right: 50px;
    display: grid;
    grid-auto-flow: dense;
    gap: 10px;
    margin: 60px 0 50px;
  }
  .l-header_nav a {
    padding: 10px 40px 10px 15px;
    background: #F4F5F7;
  }
  .l-header_nav > li > a {
    border-radius: 5px;
    position: relative;
  }
  .l-header_nav > li > a::before {
    content: "";
    display: block;
    background: url(../img/arrow_white.svg) center/5px 10px no-repeat;
    background-color: #000;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    position: absolute;
    left: auto;
    bottom: 50%;
    right: 15px;
    translate: 0 50%;
    opacity: 1;
    visibility: unset;
  }
  .l-header_nav > li > a:hover {
    color: #fff;
    background-color: #136DAD;
  }
  .l-header_nav > li > a:hover::before {
    right: 10px;
    bottom: 50%;
  }
  .l-header_item {
    display: flex;
    align-items: flex-end;
    gap: 15px;
  }
  .l-header_item a {
    display: grid;
    line-height: 1;
  }
  .l-header_item figure {
    display: grid;
    place-content: center;
    width: 20px;
    height: 20px;
  }
  .l-header_logo_sp {
    display: block;
    text-align: center;
  }
  .l-header_cta_sp {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    width: 100%;
    margin: auto 0 0;
    padding-bottom: 20px;
  }
  .l-header_cta_sp a {
    display: grid;
    place-content: center;
    place-items: center;
    gap: 5px;
    text-align: center;
    line-height: 1.4;
    border: solid #41AFFF 1px;
    border-radius: 5px;
    padding: 15px;
    min-height: 110px;
  }
  .l-header_cta_sp a:hover {
    color: #fff;
    border-color: #136DAD;
    background: #136DAD;
  }
  .l-header_cta_sp a:hover figure::before {
    opacity: 1;
  }
  .l-header_cta_sp figure {
    position: relative;
  }
  .l-header_cta_sp figure::before {
    content: "";
    display: block;
    mask: url("../img/ico-recruit.svg") center/contain no-repeat;
    background: #fff;
    width: 30px;
    height: 35px;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: 0.3s;
  }
  .l-header_cta_sp img {
    width: 30px;
    height: 35px;
  }
  .l-header_cta_contact a {
    color: #fff;
    background: #41AFFF;
  }
  .l-header_cta_contact a:hover {
    background: #136DAD;
  }
  .l-header_cta_contact figure::before {
    mask: url("../img/ico-contact.svg") center/contain no-repeat;
    opacity: 1;
  }
  /*----- ハンバーガーボタン -----*/
  .l-header_burger {
    line-height: 1;
    place-items: center;
    align-items: flex-end;
    color: #FF6473;
    border-radius: 5px;
    margin-left: -5px;
    width: 40px;
    height: 40px;
    transition: 0.3s;
    position: relative;
    z-index: 999;
    cursor: pointer;
    /* ↓↓↓ ナビ開いてる時のボタン ↓↓↓ */
  }
  .l-header_burger span {
    display: grid;
    height: 20px;
    width: 20px;
    position: relative;
    place-content: center;
  }
  .l-header_burger span::before, .l-header_burger span::after {
    content: "";
    mask: url("../img/header_burger.svg") center/contain no-repeat;
    background: #FF6473;
    display: block;
    width: 15px;
    height: 3px;
    position: absolute;
    top: calc(50% - 5px);
    left: 50%;
    translate: -50% -50%;
    transition: 0.3s;
  }
  .l-header_burger span::after {
    top: calc(50% + 5px);
  }
  .l-header_burger p {
    position: relative;
  }
  .l-header_burger p::before {
    content: "Close";
    color: #fff;
    position: absolute;
    top: 0;
    left: 0;
    transition: 0.3s;
    opacity: 0;
  }
  .l-header_burger.is-active {
    gap: 5px;
    color: transparent;
    background: #FF6473;
    place-content: center;
    margin: 0 -5px 0 0;
    width: 45px;
    height: 45px;
  }
  .l-header_burger.is-active span {
    height: 15px;
  }
  .l-header_burger.is-active span::before, .l-header_burger.is-active span::after {
    rotate: 35deg;
    background: #fff;
    top: 50%;
  }
  .l-header_burger.is-active span::after {
    rotate: -35deg;
    scale: -1 1;
  }
  .l-header_burger.is-active img {
    opacity: 0;
  }
  .l-header_burger.is-active p::before {
    opacity: 1;
  }
  /*----- プルダウン -----*/
  .l-header_sub_nav {
    width: 100%;
    padding: 0;
    margin: 0;
    background: #F4F5F7;
    padding: 0 15px;
    border-radius: 0 0 5px 5px;
    position: unset;
    translate: none;
    /* jsで制御 */
    visibility: visible;
    opacity: 1;
    display: none;
    transition: none;
  }
  .l-header_sub_nav ul {
    width: 100%;
    padding-top: 10px;
    border: none;
    border-top: 1px solid #ddd;
    border-radius: 0;
    background: transparent;
    padding: 5px 0px;
  }
  .l-header_sub_nav a {
    padding: 10px 0;
  }
  .l-header_child {
    margin-top: -5px;
  }
  .l-header_child a {
    padding: 0 0 5px 10px;
    color: #41AFFF;
  }
  .l-header_child a:hover {
    color: #136DAD;
  }
  .l-header_child a::before {
    display: none;
  }
  .l-header_nav_btn {
    background: #41AFFF;
    border: 1px solid #41AFFF;
    border-radius: 5px;
    position: absolute;
    top: 0;
    right: -50px;
    width: 40px;
    height: 40px;
    display: block;
    transition: 0.3s;
  }
  .l-header_nav_btn::before, .l-header_nav_btn::after {
    content: "";
    display: block;
    width: 15px;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    transition: 0.3s;
  }
  .l-header_nav_btn::after {
    width: 1px;
    height: 15px;
  }
  .l-header_has-child.is-active a {
    border-radius: 5px 5px 0 0;
  }
  .l-header_has-child.is-active .l-header_nav_btn {
    background-color: transparent;
  }
  .l-header_has-child.is-active .l-header_nav_btn::before {
    background: #41AFFF;
  }
  .l-header_has-child.is-active .l-header_nav_btn::after {
    background: #41AFFF;
    rotate: 90deg;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* フッター 
----- layout/_footer ---------- */
.l-footer {
  margin-top: 100px;
}

/* cta */
.l-footer_cta_link {
  display: block;
  color: #fff;
  padding: 30px;
  position: relative;
}
.l-footer_cta_link:hover {
  color: #fff;
}
.l-footer_cta_link:hover .l-footer_cta_inner::before {
  opacity: 1;
}
.l-footer_cta_link:hover .l-footer_cta_text::before {
  right: -5px;
}

.l-footer_cta_inner {
  display: grid;
  align-items: center;
  background: #000;
  border-radius: 5px;
  overflow: hidden;
  min-height: 325px;
  padding: 50px 100px;
  position: relative;
}
.l-footer_cta_inner::before {
  content: "";
  display: block;
  background: linear-gradient(94deg, rgba(65, 175, 255, 0.5) 0.5%, rgba(255, 100, 115, 0.5) 100%);
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: 0.3s;
}

.l-footer_cta_text {
  padding: 0 110px 20px 0;
  position: relative;
}
.l-footer_cta_text::before {
  content: "";
  display: block;
  background: url(../img/arrow_black.svg) center/8px 12px no-repeat;
  background-color: #fff;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  transition: 0.3s;
}
.l-footer_cta_text p {
  font-weight: 700;
  font-size: 1.8rem;
}

.footer_cta_deco {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
}
.footer_cta_deco.__hov {
  opacity: 0;
  transition: 0.3s;
}
.footer_cta_deco.__hov.__back {
  z-index: -1;
}
.footer_cta_deco img {
  position: absolute;
  height: auto;
  transition: 0.3s;
}
.footer_cta_deco img.__back {
  z-index: -1;
}
.footer_cta_deco img.__rotate_90 {
  rotate: 90deg;
}
.footer_cta_deco img.__rotate_180 {
  rotate: 180deg;
}
.footer_cta_deco img.__rotate_270 {
  rotate: 270deg;
}
.footer_cta_deco img._01 {
  width: 210px;
  top: -50px;
  right: -75px;
}
.footer_cta_deco img._02 {
  width: 275px;
  bottom: -115px;
  left: -110px;
}
.footer_cta_deco img._03 {
  width: 215px;
  bottom: -115px;
  left: 110px;
}
.footer_cta_deco img._04 {
  width: 275px;
  bottom: -160px;
  left: calc(50% + 65px);
}
.footer_cta_deco img._05 {
  width: 250px;
  top: -170px;
  left: -120px;
}
.footer_cta_deco img._06 {
  width: 215px;
  top: -170px;
  right: 55px;
}
.footer_cta_deco img._07 {
  width: 305px;
  bottom: -150px;
  right: -155px;
}
.footer_cta_deco img._08 {
  width: 215px;
  bottom: -160px;
  left: calc(50% - 65px);
}

.l-footer_cta_link:hover .footer_cta_deco.__hov {
  opacity: 1;
}
.l-footer_cta_link:hover .footer_cta_deco img._01 {
  top: -45px;
  right: -70px;
}
.l-footer_cta_link:hover .footer_cta_deco img._02 {
  bottom: -110px;
  left: -105px;
}
.l-footer_cta_link:hover .footer_cta_deco img._08 {
  bottom: -155px;
}

.l-footer_cta_other {
  display: grid;
  gap: 10px 15px;
  grid-template-columns: repeat(2, 1fr);
  padding: 15px 30px;
  text-align: center;
}
.l-footer_cta_other a {
  display: grid;
  align-items: center;
  color: #333;
  background: #F4F5F7;
  min-height: 50px;
  padding: 10px 60px 10px 20px;
  border-radius: 5px;
  position: relative;
}
.l-footer_cta_other a::before {
  content: "";
  background: url("../img/arrow_round.svg") center/cover no-repeat;
  display: block;
  width: 30px;
  height: 30px;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  transition: 0.3s;
}
.l-footer_cta_other a:hover {
  color: #fff;
  background: #136DAD;
}
.l-footer_cta_other a:hover::before {
  right: 15px;
}

/* footer本体 */
.l-footer_inner {
  margin-top: 30px;
}

.l-footer_grid {
  display: grid;
  gap: 40px 50px;
  grid-template-columns: 65% 1fr;
}

.l-footer_main {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.l-footer_main nav {
  gap: 40px 50px;
}
.l-footer_main nav, .l-footer_main nav ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.l-footer_main nav ul {
  gap: 30px;
}
.l-footer_main nav a {
  color: #333;
}
.l-footer_main nav a:hover {
  color: #41AFFF;
}

.l-footer_logo {
  display: block;
  height: 95px;
  width: 90px;
}
.l-footer_logo img {
  height: 100%;
  object-fit: contain;
}

.l-footer_sub {
  display: grid;
  gap: 20px;
}
.l-footer_sub .p-sns {
  justify-content: flex-end;
}

.l-footer_company_grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 50px;
}

.l-footer_recruit a {
  display: block;
  color: #fff;
  border-radius: 5px;
  overflow: hidden;
  position: relative;
}
.l-footer_recruit a:hover img {
  scale: 1.1;
}
.l-footer_recruit a:hover span::before {
  right: -5px;
}
.l-footer_recruit span {
  display: grid;
  align-items: center;
  padding-right: 60px;
  min-height: 60px;
  position: absolute;
  bottom: 15px;
  right: 15px;
  z-index: 1;
}
.l-footer_recruit span::before {
  content: "";
  display: block;
  background: url(../img/arrow_02.svg) center/20px 15px no-repeat;
  width: 50px;
  height: 50px;
  border: 1px solid #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  transition: 0.3s;
}
.l-footer_recruit img {
  filter: brightness(50%);
}

.l-footer_bottom_grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  min-height: 50px;
  padding: 10px 15px !important;
}
.l-footer_bottom_grid ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 40px;
}
.l-footer_bottom_grid a {
  color: #777;
}
.l-footer_bottom_grid a:hover {
  color: #41AFFF;
}

@media screen and (max-width: 768px) {
  .l-footer {
    margin-top: 80px;
  }
  .l-footer_cta_inner {
    min-height: 280px;
    padding: 60px 15px 20px;
  }
  .l-footer_cta_link {
    padding: 15px;
  }
  .l-footer_cta_text {
    padding: 0 0 70px;
  }
  .l-footer_cta_text::before {
    background-size: 5px 10px;
    height: 60px;
    width: 60px;
    top: auto;
    bottom: 0;
    translate: none;
  }
  .l-footer_cta_text p {
    font-weight: 400;
    font-size: 1.5rem;
  }
  .footer_cta_deco img._01 {
    width: 95px;
    top: -25px;
    right: -25px;
  }
  .footer_cta_deco img._02 {
    width: 120px;
    bottom: -45px;
    left: -25px;
  }
  .footer_cta_deco img._03 {
    width: 95px;
    bottom: -45px;
    left: 70px;
  }
  .footer_cta_deco img._05 {
    width: 120px;
    top: -65px;
    left: -40px;
  }
  .footer_cta_deco img._07 {
    width: 145px;
    bottom: -55px;
    right: -55px;
  }
  .footer_cta_deco img._06 {
    width: 105px;
    top: -65px;
    right: 40px;
  }
  .footer_cta_deco img._08 {
    width: 100px;
    bottom: -65px;
    left: 50%;
  }
  .l-footer_cta_link:hover .footer_cta_deco.__hov {
    opacity: 1;
  }
  .l-footer_cta_link:hover .footer_cta_deco img._01 {
    top: -20px;
    right: -20px;
  }
  .l-footer_cta_link:hover .footer_cta_deco img._02 {
    bottom: -40px;
    left: -20px;
  }
  .l-footer_cta_link:hover .footer_cta_deco img._08 {
    bottom: -60px;
  }
  .l-footer_cta_other {
    grid-template-columns: auto;
    padding: 15px;
  }
  .l-footer_cta_other a {
    min-height: 40px;
    padding: 10px 45px 10px 15px;
  }
  .l-footer_cta_other a::before {
    width: 20px;
    height: 20px;
    right: 15px;
  }
  .l-footer_cta_other a:hover::before {
    right: 10px;
  }
  .l-footer_grid {
    grid-template-columns: auto;
  }
  .l-footer_main nav {
    justify-content: center;
  }
  .l-footer_main nav ul {
    justify-content: center;
    gap: 5px 15px;
    width: 100%;
  }
  .l-footer_main .l-footer_logo {
    height: 100px;
    width: 95px;
    order: 1;
  }
  .l-footer_sub {
    place-items: center;
    gap: 10px;
  }
  .l-footer_bottom_grid {
    justify-content: center;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.l-main_grid {
  display: flex;
}
.l-main_grid .l-main_left {
  width: 100%;
}
.l-main_grid:has(.l-sidebar) .l-main_left {
  width: calc(100% - 275px);
}
@media screen and (max-width: 768px) {
  .l-main_grid {
    display: block;
  }
  .l-main_grid:has(.l-sidebar) .l-main_left {
    width: 100%;
  }
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ----------------------------------------------------------
   #Object
---------------------------------------------------------- */
/* Comment
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* タイトル 
----- object/component/_c-ttl ----- */
.c-ttl-1 {
  font-size: 4rem;
  color: #41AFFF;
  background: #F4F5F7;
  padding: 110px 90px 15px;
  margin-bottom: 100px;
  position: relative;
}
.c-ttl-1::before {
  content: "";
  background: url("../img/ttl-1_deco_l.svg") center/cover no-repeat;
  display: block;
  width: 210px;
  height: 185px;
  position: absolute;
  top: 0;
  left: 0;
}
.c-ttl-1::after {
  content: "";
  background: url("../img/ttl-1_deco_r.svg") center/cover no-repeat;
  display: block;
  width: 260px;
  height: 245px;
  position: absolute;
  bottom: 0;
  right: 0;
}
.c-ttl-1 h1 {
  display: grid;
  align-items: center;
  min-height: 185px;
  width: 100%;
  max-width: 1130px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.c-ttl-2 {
  font-size: 3.2rem;
  margin-top: 100px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 10px;
}
.c-ttl-2 .en {
  color: #41AFFF;
  font-size: 1.8rem;
}
.c-ttl-2 + * {
  margin-top: 30px;
}

.c-ttl-3 {
  font-size: 2.5rem;
  margin-top: 70px;
  padding-left: 15px;
  position: relative;
}
.c-ttl-3::before {
  content: "";
  width: 5px;
  height: 25px;
  border-radius: 5px 0 2px 0;
  background: #41AFFF;
  position: absolute;
  top: 8px;
  left: 0;
}
.c-ttl-3 + * {
  margin-top: 20px;
}

.c-ttl-4 {
  font-size: 2.2rem;
  margin-top: 50px;
}
.c-ttl-4 + * {
  margin-top: 10px;
}

.c-ttl-5 {
  font-size: 1.8rem;
}

@media screen and (max-width: 768px) {
  .c-ttl-1 {
    padding: 80px 15px 15px;
    font-size: 2.8rem;
    margin-bottom: 80px;
  }
  .c-ttl-1::before {
    width: 100px;
    height: 90px;
  }
  .c-ttl-1::after {
    width: 100px;
    height: 95px;
  }
  .c-ttl-1 h1 {
    min-height: 100px;
  }
  .c-ttl-2 {
    font-size: 2.5rem;
    margin-top: 60px;
  }
  .c-ttl-2 .en {
    font-size: 1.3rem;
  }
  .c-ttl-3 {
    font-size: 2.2rem;
    margin-top: 40px;
  }
  .c-ttl-3::before {
    height: 22px;
    top: 4px;
  }
  .c-ttl-2 + * {
    margin-top: 20px;
  }
  .c-ttl-4 {
    font-size: 2rem;
    margin-top: 40px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ボタン 
----- object/component/_c-btn ----- */
.c-btn {
  display: grid;
  align-items: center;
  font-weight: 500;
  color: #fff;
  background: #000;
  margin: 50px auto 0;
  border-radius: 5px;
  width: 270px;
  min-height: 60px;
  padding: 5px 15px;
  text-align: center;
}
.c-btn:hover {
  color: #fff;
  background: #136DAD;
}
.c-btn.__02 {
  background: #41AFFF;
}
.c-btn.__02:hover {
  background: #136DAD;
}
.c-btn.__back {
  background: #777;
  border: none;
}
.c-btn.__back:hover {
  background: #136DAD;
}
.c-btn.__ico {
  display: flex;
  justify-content: center;
}
.c-btn.__ico span {
  display: inline-block;
  padding-left: 30px;
  position: relative;
}
.c-btn.__ico span::before {
  content: "";
  display: block;
  mask: url(../img//ico-contact.svg) center/contain no-repeat;
  background-color: #fff;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}

.c-btn_text {
  display: grid;
  align-items: center;
  color: #333;
  font-weight: 500;
  min-height: 40px;
  width: fit-content;
  padding-right: 60px;
  position: relative;
}
.c-btn_text::before {
  content: "";
  display: block;
  background: url(../img/arrow_white.svg) center/5px 10px no-repeat;
  background-color: #000;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 5px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn_text:hover {
  color: #136DAD;
}
.c-btn_text:hover::before {
  right: 0;
  background-color: #136DAD;
}
.c-btn_text.__blank::before {
  background-image: url("../img/ico-blank.svg");
  background-size: 16px 16px;
  background-position: 50% 55%;
}
.c-btn_text.__blank:hover::before {
  top: calc(50% - 5px);
}

a:hover .c-btn_text::before {
  right: 0;
}

.c-btn-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 50px;
}
.c-btn-wrap a, .c-btn-wrap .c-btn {
  margin-top: 0;
}

@media screen and (max-width: 768px) {
  .c-btn {
    min-height: 50px;
    margin-top: 40px;
  }
  .c-btn::before {
    right: 20px;
  }
  .c-btn__blank:hover::before {
    right: 18px;
  }
  .c-btn-wrap {
    margin-top: 40px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* リンク（ボタンの形ではないもの） 
----- object/component/_c-link ----- */
.c-link {
  color: #41AFFF;
  text-decoration: underline;
}
.c-link.__blank {
  display: inline-block;
  padding-right: 20px;
  position: relative;
}
.c-link.__blank::before {
  content: "";
  mask: url("../img/ico-blank.svg") center/contain no-repeat;
  background: #136DAD;
  display: block;
  width: 15px;
  height: 15px;
  position: absolute;
  right: 3px;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-link.__blank:hover {
  color: #136DAD;
}
.c-link.__blank:hover::before {
  background: #136DAD;
  top: calc(50% - 3px);
  right: 0;
}

a .c-link.__blank {
  transition: 0.3s;
}
a:hover .c-link.__blank {
  color: #41AFFF;
}
a:hover .c-link.__blank::before {
  mask-image: url("../img/ico-blank--hover.svg");
  width: 14px;
  height: 12px;
  right: 1px;
  top: calc(50% - 2px);
}

.c-link_invalid {
  pointer-events: none;
  color: #777 !important;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* アイコン 
----- object/component/_c-ico ----- */
.c-ico_pu {
  display: inline-block;
  padding: 7px 10px;
  background: #41AFFF;
  height: 25px;
  border-radius: 5px;
}
.c-ico_pu img {
  height: 11px;
}
.c-ico_pu__text {
  display: inline-block;
  font-weight: 500;
  color: #fff;
  background: #41AFFF;
  padding: 1px 10px;
  line-height: 1.5;
  border-radius: 5px;
  height: auto;
}

.c-ico_cate {
  display: inline-block;
  color: #333;
  background-color: #fff;
  min-width: 55px;
  padding: 0 10px;
  border-radius: 5px;
  text-align: center;
  height: fit-content;
  font-size: 1.4rem;
}

.c-ico_number {
  display: grid;
  place-content: center;
  place-items: center;
  color: #fff;
  background: #41AFFF;
  line-height: 1;
  width: 45px;
  height: 45px;
  flex-shrink: 0;
  border-radius: 5px 5px 25px 5px;
  position: absolute;
  top: 0;
  left: 0;
}
.c-ico_number small {
  display: block;
  font-size: 1.2rem;
}
.c-ico_number span {
  font-size: 2.2rem;
  font-weight: 500;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ul ol dl リスト 
----- object/component/_c-list ----- */
.c-list {
  list-style-type: disc;
  padding-left: 1em;
  margin-top: 20px;
}
.c-list li {
  margin-bottom: 10px;
  padding-left: 5px;
  list-style-type: inherit;
  line-height: 1.5;
}

ol.c-list {
  padding-left: 1.5em;
  list-style-type: decimal;
}

.c-list_dl {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px 40px;
}
.c-list_dl dt {
  display: grid;
  place-content: center;
  font-weight: 700;
  text-align: center;
  background: #eee;
  border-radius: 20px;
  padding: 2px 20px;
}
.c-list_dl dd {
  display: grid;
  align-items: center;
}

@media screen and (max-width: 768px) {
  .c-list_dl {
    display: grid;
    grid-template-columns: auto;
    gap: 10px;
    padding-bottom: 10px;
    border-bottom: solid 1px #ddd;
  }
  .c-list_dl dd {
    padding-bottom: 10px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* テーブル 
----- object/component/_c-table ----- */
.c-table {
  width: 100%;
}
.c-table thead {
  position: sticky;
  top: 110px;
  left: 0;
  z-index: 2;
}
.c-table thead th {
  font-weight: 700;
  background: #41AFFF;
  color: #fff;
  padding: 10px;
  min-height: 50px;
  text-align: center;
  vertical-align: middle;
  position: relative;
}
.c-table thead th:not(:first-child)::before {
  content: "";
  display: block;
  background: #fff;
  width: 1px;
  height: calc(100% - 20px);
  position: absolute;
  left: 0;
  top: 10px;
}
.c-table thead th:first-child {
  border-radius: 25px 0 0 25px;
}
.c-table thead th:last-child {
  border-radius: 0 25px 25px 0;
}
.c-table tbody :is(th, td) {
  border-bottom: 1px solid #ddd;
  padding: 20px 10px;
}
.c-table tbody th {
  font-weight: 700;
}
.c-table .c-table_subttl {
  position: sticky;
  top: 155px;
  left: 0;
  z-index: 1;
}
.c-table .c-table_subttl th {
  border: none;
  padding: 10px 0 0;
}
.c-table .c-table_subttl span {
  display: grid;
  place-content: center;
  background: #000;
  color: #fff;
  text-align: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 15px;
}

.c-table_scroll {
  overflow-x: scroll;
}

.c-table_discount_wrap {
  display: grid;
  gap: 20px 10px;
  grid-template-columns: 15% 1fr;
}

.c-table_discount {
  width: 100%;
  border-radius: 5px;
  text-align: center;
  vertical-align: middle;
  overflow: hidden;
}
.c-table_discount.sp {
  display: none;
}
.c-table_discount th {
  color: #fff;
  padding: 0 15px;
  font-weight: 500;
  font-weight: 500;
  text-align: center;
  border-bottom: solid 1px #fff;
}
.c-table_discount thead th {
  background: #41AFFF;
}
.c-table_discount tbody tr {
  border-left: solid 1px #ddd;
  border-right: solid 1px #ddd;
}
.c-table_discount tbody tr:last-child {
  border-radius: 0 0 5px 5px;
  border-bottom: solid 1px #ddd;
}
.c-table_discount tbody tr:last-child td:first-child {
  border-radius: 0 0 0 5px;
}
.c-table_discount tbody tr:last-child td:last-child {
  border-radius: 0 0 5px 0;
}
.c-table_discount tbody th {
  background: #E387B7;
  padding: 2px 15px;
}
.c-table_discount tbody td {
  background: #fff;
  height: 55px;
  text-align: center;
}
.c-table_discount tbody td:not(:last-child) {
  border-right: solid 1px #ccc;
}
.c-table_discount tbody td span {
  font-size: 2.2rem;
}

.c-table_discount_late thead th {
  background: #FF6473;
}
.c-table_discount_late tbody th {
  background: #4391B5;
}
.c-table_discount_late tbody th:nth-child(2n) {
  background: #48A6C9;
}

@media screen and (max-width: 768px) {
  .c-table thead {
    top: 80px;
  }
  .c-table .c-table_subttl {
    top: 140px;
  }
  .c-table_discount_wrap {
    grid-template-columns: none;
  }
  .c-table_discount.pc {
    display: none;
  }
  .c-table_discount.sp {
    display: table;
  }
  .c-table_discount tbody th {
    padding: 0 15px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* テキスト（キャッチなど） 
----- object/component/_c-text ----- */
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* マウスストーカー
----- object/component/_c-stalker ----- */
.js-stalker-area {
  position: relative;
  overflow: hidden;
}
.js-stalker-area::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #EDF8FE;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
}

.c-stalker {
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, #A6DDF9, #EDF8FE 65% 100%);
  border-radius: 50%;
  transform: translate(var(--x, 0px), var(--y, 0px)) translate(-50%, -50%);
  transition: transform 0.6s ease-out, opacity 0.3s ease, width 0.3s ease, height 0.3s ease;
  z-index: -1;
  opacity: 0;
  will-change: transform, opacity;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.c-stalker.is-active {
  opacity: 1;
}
.c-stalker.is-hover {
  background: rgba(255, 255, 255, 0.1);
  border: solid 2px #41AFFF;
  z-index: 10;
  transform: translate(var(--x, 0px), var(--y, 0px)) translate(-50%, -50%) scale(0.3);
  transition: transform 0.2s ease-out, opacity 0.2s ease, width 0.2s ease, height 0.2s ease;
}
.c-stalker.is-hover::after {
  content: "View more";
  font-size: 4rem;
  padding-bottom: 110px;
}

.js-stalker-area.__vehicle::before {
  background: #fbf2f2;
}
.js-stalker-area.__vehicle .c-stalker {
  background: radial-gradient(circle, #FBB3BC, #fbf2f2 65% 100%);
}
.js-stalker-area.__vehicle .c-stalker.is-hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #FF6473;
}

@media screen and (max-width: 768px) {
  .c-stalker {
    opacity: 1;
    transform: translate(-30%, -50%);
  }
  .c-stalker.__vehicle {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0;
    transform: translate(30%, 50%);
  }
}
/* Project
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* コンタクトフォーム
----- object/project/_p-form ----- */
.p-form {
  border-radius: 5px;
}
.p-form input[type=text], .p-form input[type=tel], .p-form input[type=email], .p-form select, .p-form textarea, .p-form input[type=password], .p-form input[type=number] {
  border: none;
  background: #fff;
  width: 100%;
  padding: 10px 15px;
  border-radius: 5px;
}
.p-form__inner {
  max-width: 560px;
  padding: 50px 30px;
  margin: 0 auto;
}
.p-form.__btn_multiple .p-form__inner {
  padding-bottom: 0;
}
.p-form .radio_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 20px;
}
.p-form .radio_wrap .wpcf7-list-item {
  margin: 0;
}
.p-form input[type=radio] {
  position: relative;
  width: 16px;
  height: 16px;
  border: 1px solid #aaa;
  border-radius: 50%;
  vertical-align: -2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  margin-right: 5px;
}
.p-form input[type=radio]:checked::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #41AFFF;
}
.p-form .p-form_select-wrap {
  width: 100%;
  position: relative;
}
.p-form .p-form_select-wrap select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 25px;
}
.p-form .p-form_select-wrap::before {
  content: "";
  background: url("../img/arrow.svg") center/cover no-repeat;
  position: absolute;
  width: 4px;
  height: 8px;
  right: 15px;
  top: 50%;
  rotate: 90deg;
  translate: 0 -50%;
  z-index: 1;
  pointer-events: none;
}
.p-form dl {
  width: 100%;
}
.p-form dt {
  font-size: 1.6rem;
  margin-top: 25px;
  font-weight: 700;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.p-form dd {
  margin-top: 5px;
}
.p-form .require {
  display: inline-block;
  background: #FF6473;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1.6;
  text-align: center;
  padding: 0 10px;
  border-radius: 5px;
  margin-left: 10px;
  font-weight: 400;
}
.p-form .item_wrap {
  position: relative;
  padding-top: 15px;
}
.p-form .item_name {
  font-size: 14px;
  color: #41AFFF;
  background-color: #fff;
  position: absolute;
  left: 10px;
  top: 0;
  padding: 0 5px;
  z-index: 1;
}
.p-form .c-btn {
  padding: 0;
  transition: 0.3s;
}
.p-form .c-btn input[type=button], .p-form .c-btn input[type=submit] {
  padding: 5px 15px;
  color: #fff;
  min-height: 60px;
}
.p-form input[type=checkbox] {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.p-form input[type=checkbox] {
  position: relative;
  width: 15px;
  height: 15px;
  border: 1px solid #41AFFF;
  border-radius: 3px;
  transition: 0.3s;
}
.p-form input[type=checkbox]::before {
  content: "";
  transition: 0.3s;
  position: absolute;
  top: calc(50% - 1px);
  translate: -50% -50%;
  left: 50%;
  transform: rotate(50deg);
  width: 4px;
  height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  opacity: 0;
}
.p-form input[type=checkbox]:checked {
  background: #41AFFF;
}
.p-form input[type=checkbox]:checked::before {
  opacity: 1;
}
.p-form input[type=file]::file-selector-button {
  color: #41AFFF;
  background: #fff;
  border-radius: 5px;
  padding: 1px 15px;
  text-align: center;
  border: 1px solid #41AFFF;
  cursor: pointer;
  transition: 0.3s;
}
.p-form input[type=file]:hover::file-selector-button {
  background-color: #136DAD;
  border-color: #136DAD;
  color: #fff;
}
.p-form__max-w-250 {
  max-width: 250px;
}
.p-form .c-btn-wrap {
  margin: 0;
  padding: 40px 15px 60px;
}

.p-form-end-text__1 input, .p-form-end-text__1 .p-form_select-wrap {
  max-width: calc(100% - 25px);
  display: inline-block;
}
.p-form-end-text__1 > p {
  display: inline-block;
  width: 20px;
  text-align: right;
}

@media screen and (max-width: 768px) {
  .p-form__inner {
    padding: 40px 15px 50px;
  }
  .p-form .c-btn :is(input[type=button], input[type=submit]) {
    min-height: 50px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ページネーション（プラグイン WP-PageNavi） 
----- object/project/_p-wp_navi ----- */
.wp-pagenavi {
  display: flex;
  gap: 5px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 50px;
}
.wp-pagenavi a, .wp-pagenavi span {
  display: grid;
  place-content: center;
  width: 40px;
  height: 40px;
}
.wp-pagenavi .page, .wp-pagenavi .last, .wp-pagenavi .first {
  color: #333;
  border-radius: 5px;
}
.wp-pagenavi .page:hover, .wp-pagenavi .last:hover, .wp-pagenavi .first:hover {
  background: #EDF8FE;
}
.wp-pagenavi .current {
  border-radius: 5px;
  color: #fff;
  background: #000;
}
.wp-pagenavi .extend {
  width: auto;
  padding: 0 5px;
}
.wp-pagenavi .nextpostslink, .wp-pagenavi .previouspostslink {
  color: transparent;
  position: relative;
  order: 1;
}
.wp-pagenavi .nextpostslink::before, .wp-pagenavi .previouspostslink::before {
  content: "";
  background: url(../img/arrow_black.svg) center/5px 10px no-repeat;
  background-color: #F4F5F7;
  border-radius: 50%;
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  transition: 0.3s;
}
.wp-pagenavi .nextpostslink:hover::before, .wp-pagenavi .previouspostslink:hover::before {
  left: 5px;
}
.wp-pagenavi .previouspostslink {
  order: -1;
}
.wp-pagenavi .previouspostslink::before {
  rotate: -180deg;
}
.wp-pagenavi .previouspostslink:hover::before {
  left: -5px;
}

@media screen and (max-width: 768px) {
  /* .wp-pagenavi {
      a, span {
          width: 45px;
          height: 45px;
      }
      .extend {
          padding: 0;
      }
      .nextpostslink, .previouspostslink {
          width: 30px;
      }
  } */
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 記事一覧 
----- object/project/_p-archive ----- */
/* カード（製造実績） */
.p-archive {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px 10px;
}

.p-archive_item {
  background-color: #F4F5F7;
  border-radius: 5px;
}
.p-archive_item figure {
  overflow: hidden;
  border-radius: 5px;
}
.p-archive_item img {
  aspect-ratio: 3/2;
  width: 100%;
}
.p-archive_item a {
  color: #333;
  display: block;
  height: 100%;
  position: relative;
  padding: 15px 15px 55px;
}
.p-archive_item a::before {
  content: "";
  background: url(../img/arrow_white.svg) center/5px 10px no-repeat;
  display: block;
  background-color: #000;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  position: absolute;
  bottom: 15px;
  right: 15px;
  transition: 0.3s;
}
.p-archive_item a:hover {
  color: #41AFFF;
}
.p-archive_item a:hover::before {
  visibility: visible;
  right: 10px;
}
.p-archive_item a:hover img {
  scale: 1.1;
}

@media screen and (max-width: 768px) {
  .p-archive {
    grid-template-columns: auto;
    gap: 10px;
  }
  .p-archive_item a {
    padding: 15px;
  }
  .p-archive_item a::before {
    width: 20px;
    height: 20px;
  }
  .p-archive_item a > p {
    padding-right: 25px;
  }
  .p-archive_item figure {
    width: min(200px, 50%);
  }
  .p-archive_info {
    display: flex;
    align-items: center;
    gap: 15px;
  }
}
/* リスト（お知らせ一覧） */
.p-archive_news {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 50px;
}

.p-archive_news_item:nth-child(-n+2) a {
  border-top: solid 1px #ddd;
}
.p-archive_news_item a {
  display: block;
  color: #333;
  padding: 30px 50px 30px 0;
  border-bottom: solid 1px #ddd;
  position: relative;
  height: 100%;
}
.p-archive_news_item a::before {
  content: "";
  background: url(../img/arrow_white.svg) center/5px 10px no-repeat;
  display: block;
  background-color: #000;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  position: absolute;
  top: 50%;
  right: 5px;
  transform: translateY(-50%);
  transition: 0.3s;
}
.p-archive_news_item a:hover {
  color: #41AFFF;
}
.p-archive_news_item a:hover::before {
  right: 0px;
}

@media screen and (max-width: 768px) {
  /* リスト（お知らせ一覧） */
  .p-archive_news {
    grid-template-columns: auto;
  }
  .p-archive_news_item a {
    padding: 20px 30px 20px 0;
  }
  .p-archive_news_item a::before {
    width: 20px;
    height: 20px;
  }
  .p-archive_news_item:nth-child(2) a {
    border-top: none;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 記事詳細
----- object/project/_p-single ----- */
.p-single_cate .c-ico_cate {
  background-color: #F4F5F7;
  border: solid 1px transparent;
}
.p-single_cate .c-ico_cate.child {
  background-color: #fff;
  border-color: #ddd;
}

.c-single_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px 40px;
  margin-top: 40px;
}

.c-single_nav_arrow {
  min-width: 100px;
}
.c-single_nav_arrow a {
  display: block;
  color: #333;
  padding-right: 40px;
  position: relative;
}
.c-single_nav_arrow a::before {
  content: "";
  background: url(../img//arrow_white.svg) center/5px 10px no-repeat;
  background-color: #000;
  position: absolute;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-single_nav_arrow a:hover {
  color: #41AFFF;
}
.c-single_nav_arrow a:hover::before {
  background-color: #41AFFF;
  right: -5px;
}
.c-single_nav_arrow.__prev a {
  padding: 0 0 0 45px;
}
.c-single_nav_arrow.__prev a::before {
  rotate: 180deg;
  right: auto;
  left: 0;
}
.c-single_nav_arrow.__prev a:hover::before {
  left: -5px;
}

.c-single_nav_back a {
  width: auto;
  min-height: 50px;
  min-width: 100px;
  margin: 0;
}

@media screen and (max-width: 768px) {
  .c-single_nav {
    gap: 10px 25px;
  }
  .c-single_nav_arrow {
    min-width: 90px;
  }
  .c-single_nav_arrow a {
    padding-right: 25px;
    position: relative;
  }
  .c-single_nav_arrow a::before {
    width: 20px;
    height: 20px;
  }
  .c-single_nav_arrow.__prev a {
    padding: 0 0 0 25px;
  }
  .c-single_nav_back a {
    min-height: 40px;
    min-width: auto;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 記事詳細 前後リンク 
----- object/project/_p-post_nav ----- */
.c-post_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
.c-post_nav li {
  min-width: 85px;
  font-weight: 500;
}

.c-post_nav_back a {
  display: grid;
  place-content: center;
  padding: 10px 25px;
  min-height: 50px;
  background: #EDF8FE;
  border-radius: 25px;
}
.c-post_nav_back a:hover {
  background: #136DAD;
  color: #fff;
}

.c-post_nav_arrow a {
  display: block;
  padding: 10px 0;
  color: #333;
  position: relative;
}
.c-post_nav_arrow a::before {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-post_nav_arrow a:hover {
  color: #136DAD;
}

.c-post_nav_next a {
  padding-right: 30px;
}
.c-post_nav_next a::before {
  right: 0;
}
.c-post_nav_next a:hover::before {
  right: -5px;
}

.c-post_nav_prev a {
  padding-left: 30px;
}
.c-post_nav_prev a::before {
  left: 0;
  rotate: 180deg;
}
.c-post_nav_prev a:hover::before {
  left: -5px;
}

.c-post_nav.--luxury {
  justify-content: space-between;
}
.c-post_nav.--luxury .c-post_nav_back a {
  background: #41AFFF;
  color: #fff;
}
.c-post_nav.--luxury .c-post_nav_back a:hover {
  background: #136DAD;
}
.c-post_nav.--luxury .c-post_nav_arrow {
  width: 100%;
  max-width: 300px;
}
.c-post_nav.--luxury .c-post_nav_arrow a {
  padding: 10px 20px;
  background: #EDF8FE;
}
.c-post_nav.--luxury .c-post_nav_arrow a:hover {
  background: #136DAD;
}
.c-post_nav.--luxury .c-post_nav_arrow a:hover p, .c-post_nav.--luxury .c-post_nav_arrow a:hover span {
  color: #fff;
}
.c-post_nav.--luxury .c-post_nav_prev a::before {
  left: -10px;
}
.c-post_nav.--luxury .c-post_nav_next a::before {
  right: -10px;
}

.c-post_nav_grid {
  display: grid;
  grid-template-columns: 85px 1fr;
  gap: 10px;
  align-items: center;
}

.c-post_nav_next .c-post_nav_grid {
  grid-template-columns: 1fr 85px;
}

.c-post_nav_grid_img {
  width: 85px;
}
.c-post_nav_grid_img figure {
  width: 100%;
  position: relative;
  padding-top: 60%;
}
.c-post_nav_grid_img img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  object-fit: cover;
}

.c-post_nav_grid_itext p {
  color: #777;
  font-size: 1.3rem;
}
.c-post_nav_grid_itext span {
  color: #333;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media screen and (max-width: 768px) {
  .c-post_nav.--luxury {
    justify-content: center;
  }
  .c-post_nav.--luxury .c-post_nav_back {
    order: 1;
    width: 100%;
    max-width: 250px;
  }
  .c-post_nav.--luxury .c-post_nav_back a {
    min-height: 45px;
    width: 100%;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* WYSIWYGエディタ
----- object/project/_p-editor ----- */
.p-editor {
  max-width: 800px;
  margin: 50px auto 0;
  /* WYSIWYGエディタ内の u-grid */
}
.p-editor p {
  margin-bottom: 20px;
}
.p-editor h1, .p-editor h2, .p-editor h3, .p-editor h4, .p-editor h5, .p-editor h6 {
  font-weight: 700;
  line-height: 1.4;
  margin: 40px 0 10px;
}
.p-editor h1 {
  font-size: 3.5rem;
  color: #41AFFF;
  padding: 10px 20px;
  position: relative;
  overflow: hidden;
}
.p-editor h1::before {
  content: "";
  width: 35px;
  height: 55px;
  border-radius: 0 40px 0 0;
  background-image: linear-gradient(55deg, #FF6473, rgba(255, 184, 191, 0.9));
  position: absolute;
  bottom: -5px;
  left: -15px;
  rotate: -10deg;
  z-index: -1;
}
.p-editor h1::after {
  content: "";
  display: block;
  background: #F4F5F7;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
}
.p-editor h2 {
  font-size: 3.2rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 10px;
}
.p-editor h2 span {
  color: #41AFFF;
  font-size: 1.8rem;
}
.p-editor h3 {
  font-size: 2.5rem;
  padding-left: 15px;
  position: relative;
}
.p-editor h3::before {
  content: "";
  width: 5px;
  height: 25px;
  border-radius: 5px 0 2px 0;
  background: #41AFFF;
  position: absolute;
  top: 8px;
  left: 0;
}
.p-editor h4 {
  font-size: 2.2rem;
}
.p-editor h5 {
  font-size: 1.8rem;
}
.p-editor h6 {
  font-size: 1.6rem;
}
.p-editor ul, .p-editor ol {
  list-style-type: disc;
  padding-left: 1.5em;
  margin-bottom: 20px;
}
.p-editor ol {
  list-style-type: decimal;
}
.p-editor li {
  margin-bottom: 5px;
  padding-left: 5px;
  list-style-type: inherit;
}
.p-editor strong {
  font-weight: bold;
}
.p-editor em {
  font-style: italic;
}
.p-editor a {
  text-decoration: underline;
}
.p-editor blockquote {
  position: relative;
  background: #EDF8FE;
  border-radius: 5px;
  padding: 30px 30px 5px;
  margin: 30px 0 20px;
}
.p-editor blockquote::before {
  content: "";
  background: url("../img/blockquote_deco.svg") center/cover no-repeat;
  width: 30px;
  height: 25px;
  position: absolute;
  left: 25px;
  top: -10px;
}
.p-editor blockquote cite {
  display: block;
  border-top: 1px solid #ccc;
  padding-top: 10px;
  font-size: 1.4rem;
  text-align: right;
  color: #777;
}
.p-editor img {
  height: auto;
  max-width: 100%;
  max-height: 640px;
  display: block;
  object-fit: contain;
}
.p-editor .aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.p-editor .alignleft {
  width: auto;
  float: left;
  margin-right: 10px;
  margin-bottom: 20px;
}
.p-editor .alignright {
  width: auto;
  float: right;
  margin-left: 10px;
  margin-bottom: 20px;
}
.p-editor .size-large {
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
}
.p-editor .size-medium {
  width: calc(50% - 10px);
  max-height: 490px;
}
.p-editor .size-thumbnail {
  width: calc(33.333% - 10px);
  max-height: 300px;
}
.p-editor table {
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0 10px;
  margin-bottom: 20px;
}
.p-editor table th {
  background-color: #41AFFF;
  color: #fff;
  border-radius: 30px;
  padding: 5px 15px;
  text-align: center;
}
.p-editor table td {
  border-bottom: 1px solid #ddd;
  padding: 5px 15px;
  text-align: left;
  position: relative;
}
.p-editor table td:not(:last-child)::before {
  content: "";
  display: block;
  background: #ddd;
  width: 1px;
  height: calc(100% - 20px);
  position: absolute;
  right: 0;
  top: 10px;
}
.p-editor .table_scroll {
  overflow-x: scroll;
}
.p-editor .wp-caption {
  max-width: 100%;
  text-align: center;
  margin-bottom: 20px;
}
.p-editor .wp-caption img {
  margin-bottom: 5px;
  width: 100%;
}
.p-editor .wp-caption .wp-caption-text {
  font-size: 1.4rem;
  color: #777;
  margin-bottom: 0;
}
.p-editor iframe {
  max-width: 100%;
}
.p-editor::after {
  content: "";
  display: table;
  clear: both;
}
@media screen and (max-width: 768px) {
  .p-editor h1 {
    font-size: 2.8rem;
    padding: 10px 15px;
  }
  .p-editor h1::before {
    width: 30px;
    height: 45px;
  }
  .p-editor h2 {
    font-size: 2.5rem;
  }
  .p-editor h2 span {
    font-size: 1.3rem;
  }
  .p-editor h3 {
    font-size: 2.2rem;
  }
  .p-editor h3::before {
    height: 22px;
    top: 4px;
  }
  .p-editor blockquote {
    padding: 25px 20px 1px;
  }
  .p-editor blockquote::before {
    width: 25px;
    height: 21px;
    left: 15px;
  }
  .p-editor blockquote cite {
    display: block;
    border-top: 1px solid #ccc;
    padding-top: 10px;
    font-size: 1.4rem;
    text-align: right;
    color: #777;
  }
  .p-editor .alignleft:not(.size-thumbnail):not(:has(.size-thumbnail)), .p-editor .alignright:not(.size-thumbnail):not(:has(.size-thumbnail)) {
    float: none;
    margin: 0 auto 20px;
  }
  .p-editor .alignleft:not(.size-thumbnail):not(:has(.size-thumbnail)) img, .p-editor .alignright:not(.size-thumbnail):not(:has(.size-thumbnail)) img {
    margin-left: auto;
    margin-right: auto;
  }
  .p-editor img, .p-editor .size-medium {
    max-height: 320px;
    width: 100%;
  }
  .p-editor .size-thumbnail {
    max-height: 200px;
    width: calc(50% - 10px);
  }
}
.p-editor .u-grid {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
.p-editor .u-grid .col {
  margin: 0 0 10px;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* SNSリスト 
----- object/project/_p-sns ----- */
.p-sns {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}
.p-sns a {
  display: grid;
  place-content: center;
  padding: 15px;
  border: 1px solid transparent;
  border-radius: 5px;
}
.p-sns a:hover {
  border-color: #41AFFF;
}
.p-sns img {
  height: 25px;
}

@media screen and (max-width: 768px) {
  .p-sns {
    order: 1;
  }
  .p-sns img {
    height: 30px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* slickスライダー装飾（ドット・前後矢印）
----- object/project/_p-slick ----- */
.p-slick .slick-dots {
  display: flex;
  justify-content: center;
  margin-top: 5px;
}
.p-slick .slick-dots button {
  width: 20px;
  height: 20px;
  color: transparent;
  position: relative;
}
.p-slick .slick-dots button::before {
  content: "";
  display: block;
  background: #ddd;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
.p-slick .slick-dots .slick-active button::before {
  background-color: #41AFFF;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ページ導入
----- object/project/_p-intro ----- */
.p-intro_grid {
  position: relative;
  min-height: 400px;
  display: grid;
  align-items: center;
}

.p-intro_text {
  width: 50%;
  padding-right: 25px;
}

.p-intro_img {
  display: flex;
  align-items: center;
  padding-left: 25px;
  width: 50%;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
}
.p-intro_img img {
  object-fit: contain;
  border-radius: 5px;
  height: 100%;
}

@media screen and (max-width: 768px) {
  .c-ttl-1 + .p-intro {
    margin-top: -65px;
  }
  .p-intro_grid {
    min-height: auto;
    gap: 30px;
  }
  .p-intro_text {
    width: 100%;
    padding-right: 0;
  }
  .p-intro_img {
    width: 100%;
    height: 100%;
    position: unset;
    padding: 0 15px;
    order: -1;
  }
  .p-intro_img img {
    object-fit: contain;
    border-radius: 5px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ギャラリー（ライトボックス）
----- object/project/_p-lightbox ----- */
.p-lightbox_item figure {
  overflow: hidden;
  border-radius: 5px;
  cursor: pointer;
}
.p-lightbox_item:hover img {
  scale: 1.1;
  transition: 0.3s;
}

.p-lightbox_guide {
  display: inline-block;
  padding-left: 35px;
  position: relative;
}
.p-lightbox_guide::before {
  content: "";
  background: url("../img/ico-expansion.svg") center/cover no-repeat;
  width: 17px;
  height: 30px;
  position: absolute;
  top: 50%;
  left: 10px;
  translate: 0 -50%;
  rotate: -45deg;
}

.p-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  /* 初期状態: 非表示 */
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}
.p-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}
.p-lightbox__content {
  position: relative;
  max-width: 90%;
  max-height: 90vh;
}
.p-lightbox figure {
  padding: 15px 15px 10px;
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}
.p-lightbox figcaption {
  margin-top: 10px;
  font-size: 1.4rem;
  text-align: center;
}
.p-lightbox img {
  width: 100%;
  max-width: 800px;
  max-height: calc(90vh - 30px);
  display: block;
  user-select: none;
  border-radius: 5px;
}
.p-lightbox .close {
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1001;
  width: 45px;
  height: 45px;
  position: fixed;
  top: 20px;
  right: 20px;
  transition: 0.3s;
}
.p-lightbox .close::before, .p-lightbox .close::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 2px;
  background-color: #fff;
}
.p-lightbox .close::before {
  transform: rotate(45deg);
}
.p-lightbox .close::after {
  transform: rotate(-45deg);
}
.p-lightbox .close:hover {
  opacity: 0.7;
}
.p-lightbox .btn {
  height: 100%;
  position: absolute;
  top: 0;
}
.p-lightbox .btn::before {
  content: "";
  background: url(../img/arrow_white.svg) center/5px 10px no-repeat;
  background-color: #777;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-lightbox .btn:hover::before {
  background-color: #136DAD;
}
.p-lightbox .btn.__prev {
  width: 40%;
  left: 0;
}
.p-lightbox .btn.__prev::before {
  left: -30px;
  rotate: 180deg;
}
.p-lightbox .btn.__prev:hover::before {
  left: -35px;
}
.p-lightbox .btn.__next {
  width: 60%;
  right: 0;
}
.p-lightbox .btn.__next::before {
  right: -30px;
}
.p-lightbox .btn.__next:hover::before {
  right: -35px;
}

@media screen and (max-width: 768px) {
  .p-lightbox__content {
    padding-bottom: 30px;
  }
  .p-lightbox figure {
    padding: 10px 10px 5px;
  }
  .p-lightbox .btn::before {
    top: auto;
    bottom: 0;
    translate: 0;
  }
  .p-lightbox .btn.__prev::before {
    left: 10px;
  }
  .p-lightbox .btn.__prev:hover::before {
    left: 5px;
  }
  .p-lightbox .btn.__next::before {
    right: 10px;
  }
  .p-lightbox .btn.__next:hover::before {
    right: 5px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* カテゴリ 
----- object/project/_p-cate ----- */
/* カテゴリ一覧 */
.p-cate_list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  justify-content: center;
}
.p-cate_list > li {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 5px;
  align-items: center;
  background: #F4F5F7;
  border-radius: 5px;
}
.p-cate_list .is-active > a {
  color: #fff;
  background: #000;
  border-color: #000;
  pointer-events: none;
}
.p-cate_list .is-active:has(.is-active) > a {
  pointer-events: auto;
}
.p-cate_list a {
  display: grid;
  place-content: center;
  color: #333;
  background: #fff;
  font-weight: 700;
  border: solid 1px #ddd;
  border-radius: 5px;
  padding: 10px;
  min-height: 50px;
  min-width: 100px;
  text-align: center;
}
.p-cate_list a:hover {
  color: #fff;
  background: #136DAD;
  border-color: #136DAD;
}

.p-cate_child {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding-right: 10px;
}
.p-cate_child a {
  min-height: 30px;
  padding: 0 15px;
  min-width: 70px;
  border-radius: 15px;
}
.p-cate_child .is-active {
  color: #fff;
  background: #000;
  border-color: #000;
  pointer-events: none;
}

@media screen and (max-width: 768px) {
  .p-cate_list {
    gap: 10px;
  }
  .p-cate_list > li > a {
    padding: 5px 10px;
    min-height: 40px;
    min-width: 70px;
  }
  .p-cate_child a {
    min-height: auto;
    min-width: 60px;
  }
}
/* 記事で選択されたカテゴリ */
.p-cate {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}
.p-cate .machinery {
  color: #fff;
  background: #41AFFF;
}
.p-cate .vehicle {
  color: #fff;
  background: #FF6473;
}
.p-cate .child {
  order: 1;
}

/* Utility
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ------------------------
    カラム分け
------------------------ */
.u-grid {
  display: flex;
  flex-wrap: wrap;
  margin: 10px -15px 0;
  position: relative;
}
.u-grid.ai-center {
  align-items: center;
}
.u-grid.jc-center {
  justify-content: center;
}
.u-grid.gap-0 {
  margin: 10px 0 0;
}
.u-grid.gap-0 .col {
  padding: 0;
}
.u-grid.gap-0 {
  margin: 10px -0 0;
}
.u-grid.gap-0 .col {
  padding: 0 0;
}
.u-grid.gap-10 {
  margin: 10px -5px 0;
}
.u-grid.gap-10 .col {
  padding: 0 5px;
}
.u-grid.gap-20 {
  margin: 10px -10px 0;
}
.u-grid.gap-20 .col {
  padding: 0 10px;
}
.u-grid.gap-40 {
  margin: 10px -20px 0;
}
.u-grid.gap-40 .col {
  padding: 0 20px;
}
.u-grid .col {
  box-sizing: border-box;
  position: relative;
  padding: 0 15px;
  margin-top: 30px;
}
.u-grid .col.col-2 {
  width: 16.6666%;
}
.u-grid .col.col-20p {
  width: 20%;
}
.u-grid .col.col-3 {
  width: 25%;
}
.u-grid .col.col-4 {
  width: 33.33333%;
}
.u-grid .col.col-5 {
  width: 41.66666%;
}
.u-grid .col.col-0 {
  width: 45.83333%;
}
.u-grid .col.col-6 {
  width: 50%;
}
.u-grid .col.col-1 {
  width: 54.16666%;
}
.u-grid .col.col-7 {
  width: 58.33333%;
}
.u-grid .col.col-8 {
  width: 66.66666%;
}
.u-grid .col.col-9 {
  width: 75%;
}
.u-grid .col.col-10 {
  width: 83.33333%;
}
.u-grid .col.col-12 {
  width: 100%;
}

.u-order-1 {
  order: 1;
}

.u-order-2 {
  order: 2;
}

.u-order-3 {
  order: 3;
}

.u-order-4 {
  order: 4;
}

.u-order-5 {
  order: 5;
}

.u-order-6 {
  order: 6;
}

@media screen and (max-width: 840px) {
  .u-grid .col.col-lg-2 {
    width: 16.6666%;
  }
  .u-grid .col.col-lg-20p {
    width: 20%;
  }
  .u-grid .col.col-lg-3 {
    width: 25%;
  }
  .u-grid .col.col-lg-4 {
    width: 33.33333%;
  }
  .u-grid .col.col-lg-5 {
    width: 41.66666%;
  }
  .u-grid .col.col-lg-6 {
    width: 50%;
  }
  .u-grid .col.col-lg-7 {
    width: 58.33333%;
  }
  .u-grid .col.col-lg-8 {
    width: 66.66666%;
  }
  .u-grid .col.col-lg-9 {
    width: 75%;
  }
  .u-grid .col.col-lg-10 {
    width: 83.33333%;
  }
  .u-grid .col.col-lg-12 {
    width: 100%;
  }
  .u-order-lg-1 {
    order: 1;
  }
  .u-order-lg-2 {
    order: 2;
  }
  .u-order-lg-3 {
    order: 3;
  }
  .u-order-lg-4 {
    order: 4;
  }
  .u-order-lg-5 {
    order: 5;
  }
  .u-order-lg-6 {
    order: 6;
  }
}
@media screen and (max-width: 768px) {
  .u-grid {
    margin: 5px -5px 0;
  }
  .u-grid.gap-md-10 {
    margin: 10px -5px 0;
  }
  .u-grid.gap-md-10 .col {
    padding: 0 5px;
  }
  .u-grid.gap-md-20 {
    margin: 10px -10px 0;
  }
  .u-grid.gap-md-20 .col {
    padding: 0 10px;
  }
  .u-grid.gap-md-40 {
    margin: 10px -20px 0;
  }
  .u-grid.gap-md-40 .col {
    padding: 0 20px;
  }
  .u-grid.gap-md-50 {
    margin: 10px -25px 0;
  }
  .u-grid.gap-md-50 .col {
    padding: 0 25px;
  }
  .u-grid.gap-md-60 {
    margin: 10px -30px 0;
  }
  .u-grid.gap-md-60 .col {
    padding: 0 30px;
  }
  .u-grid .col {
    padding: 0 5px;
  }
  .u-grid .col.col-md-2 {
    width: 16.6666%;
  }
  .u-grid .col.col-md-20p {
    width: 20%;
  }
  .u-grid .col.col-md-3 {
    width: 25%;
  }
  .u-grid .col.col-md-4 {
    width: 33.33333%;
  }
  .u-grid .col.col-md-5 {
    width: 41.66666%;
  }
  .u-grid .col.col-md-6 {
    width: 50%;
  }
  .u-grid .col.col-md-7 {
    width: 58.33333%;
  }
  .u-grid .col.col-md-8 {
    width: 66.66666%;
  }
  .u-grid .col.col-md-9 {
    width: 75%;
  }
  .u-grid .col.col-md-10 {
    width: 83.33333%;
  }
  .u-grid .col.col-md-12 {
    width: 100%;
  }
  .order-md-1 {
    -webkit-box-ordinal-group: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-md-2 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-md-3 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-md-4 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-md-5 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-md-6 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 6;
    order: 6;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ----------------------------------------------------------
   #Display
---------------------------------------------------------- */
/*doc
---
title: display
name: display
categories: [utility]
---

表示非表示を切り替えます。

dn = display: none 
db = display: block

 pcのみ表示 → class="u-dn-md"
 spのみ表示 = class="u-dn u-db-md"

*/
.u-dn {
  display: none !important;
}

@media screen and (max-width: 434px) {
  .u-dn-sm {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dn-md {
    display: none !important;
  }
}
@media screen and (max-width: 840px) {
  .u-dn-lg {
    display: none !important;
  }
}
@media screen and (max-width: 950px) {
  .u-dn-xl {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dn-hd {
    display: none !important;
  }
}
.u-db {
  display: block !important;
}

@media screen and (max-width: 434px) {
  .u-db-sm {
    display: block !important;
  }
}
@media screen and (max-width: 768px) {
  .u-db-md {
    display: block !important;
  }
}
@media screen and (max-width: 840px) {
  .u-db-lg {
    display: block !important;
  }
}
@media screen and (max-width: 950px) {
  .u-db-xl {
    display: block !important;
  }
}
@media screen and (max-width: 768px) {
  .u-db-hd {
    display: block !important;
  }
}
.u-di {
  display: inline !important;
}

@media screen and (max-width: 434px) {
  .u-di-sm {
    display: inline !important;
  }
}
@media screen and (max-width: 768px) {
  .u-di-md {
    display: inline !important;
  }
}
@media screen and (max-width: 840px) {
  .u-di-lg {
    display: inline !important;
  }
}
@media screen and (max-width: 950px) {
  .u-di-xl {
    display: inline !important;
  }
}
@media screen and (max-width: 768px) {
  .u-di-hd {
    display: inline !important;
  }
}
.u-dib {
  display: inline-block !important;
}

@media screen and (max-width: 434px) {
  .u-dib-sm {
    display: inline-block !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dib-md {
    display: inline-block !important;
  }
}
@media screen and (max-width: 840px) {
  .u-dib-lg {
    display: inline-block !important;
  }
}
@media screen and (max-width: 950px) {
  .u-dib-xl {
    display: inline-block !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dib-hd {
    display: inline-block !important;
  }
}
.u-df {
  display: flex !important;
}

@media screen and (max-width: 434px) {
  .u-df-sm {
    display: flex !important;
  }
}
@media screen and (max-width: 768px) {
  .u-df-md {
    display: flex !important;
  }
}
@media screen and (max-width: 840px) {
  .u-df-lg {
    display: flex !important;
  }
}
@media screen and (max-width: 950px) {
  .u-df-xl {
    display: flex !important;
  }
}
@media screen and (max-width: 768px) {
  .u-df-hd {
    display: flex !important;
  }
}
.u-dg {
  display: grid !important;
}

@media screen and (max-width: 434px) {
  .u-dg-sm {
    display: grid !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dg-md {
    display: grid !important;
  }
}
@media screen and (max-width: 840px) {
  .u-dg-lg {
    display: grid !important;
  }
}
@media screen and (max-width: 950px) {
  .u-dg-xl {
    display: grid !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dg-hd {
    display: grid !important;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.u-contents {
  position: relative;
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 15px;
}
.u-contents .u-contents_min {
  max-width: 840px;
  padding: 0;
}

.u-contents .u-contents_600, .u-contents_min .u-contents_600 {
  max-width: 600px;
  padding: 0;
}
.u-contents .u-contents_650, .u-contents_min .u-contents_650 {
  max-width: 650px;
  padding: 0;
}
.u-contents .u-contents_750, .u-contents_min .u-contents_750 {
  max-width: 750px;
  padding: 0;
}

.u-contents_min {
  width: 100%;
  max-width: 870px;
  margin: 0 auto;
  padding: 0 15px;
}

.u-contents_600 {
  width: 100%;
  max-width: 570px;
  margin: 0 auto;
  padding: 0 15px;
}

.u-contents_650 {
  width: 100%;
  max-width: 620px;
  margin: 0 auto;
  padding: 0 15px;
}

.u-contents_750 {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 0 15px;
}

@media screen and (max-width: 768px) {
  .u-contents {
    max-width: 100%;
  }
  .u-contents .u-contents_min {
    max-width: 100%;
  }
  .u-contents_min {
    max-width: 100%;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* spacing 
----- object/utility/_spacing ----- */
/* margin top */
.u-mt-0 {
  margin-top: 0px !important;
}

.u-mt-5 {
  margin-top: 5px !important;
}

.u-mt-10 {
  margin-top: 10px !important;
}

.u-mt-15 {
  margin-top: 15px !important;
}

.u-mt-20 {
  margin-top: 20px !important;
}

.u-mt-25 {
  margin-top: 25px !important;
}

.u-mt-30 {
  margin-top: 30px !important;
}

.u-mt-35 {
  margin-top: 35px !important;
}

.u-mt-40 {
  margin-top: 40px !important;
}

.u-mt-45 {
  margin-top: 45px !important;
}

.u-mt-50 {
  margin-top: 50px !important;
}

.u-mt-55 {
  margin-top: 55px !important;
}

.u-mt-60 {
  margin-top: 60px !important;
}

.u-mt-65 {
  margin-top: 65px !important;
}

.u-mt-70 {
  margin-top: 70px !important;
}

.u-mt-75 {
  margin-top: 75px !important;
}

.u-mt-80 {
  margin-top: 80px !important;
}

.u-mt-85 {
  margin-top: 85px !important;
}

.u-mt-90 {
  margin-top: 90px !important;
}

.u-mt-95 {
  margin-top: 95px !important;
}

.u-mt-100 {
  margin-top: 100px !important;
}

.u-mt-105 {
  margin-top: 105px !important;
}

.u-mt-110 {
  margin-top: 110px !important;
}

@media screen and (max-width: 768px) {
  .u-mt-s-0 {
    margin-top: 0px !important;
  }
  .u-mt-s-5 {
    margin-top: 5px !important;
  }
  .u-mt-s-10 {
    margin-top: 10px !important;
  }
  .u-mt-s-15 {
    margin-top: 15px !important;
  }
  .u-mt-s-20 {
    margin-top: 20px !important;
  }
  .u-mt-s-25 {
    margin-top: 25px !important;
  }
  .u-mt-s-30 {
    margin-top: 30px !important;
  }
  .u-mt-s-35 {
    margin-top: 35px !important;
  }
  .u-mt-s-40 {
    margin-top: 40px !important;
  }
  .u-mt-s-45 {
    margin-top: 45px !important;
  }
  .u-mt-s-50 {
    margin-top: 50px !important;
  }
  .u-mt-s-55 {
    margin-top: 55px !important;
  }
  .u-mt-s-60 {
    margin-top: 60px !important;
  }
  .u-mt-s-65 {
    margin-top: 65px !important;
  }
  .u-mt-s-70 {
    margin-top: 70px !important;
  }
  .u-mt-s-75 {
    margin-top: 75px !important;
  }
  .u-mt-s-80 {
    margin-top: 80px !important;
  }
}
/* margin bottom */
.u-mb-0 {
  margin-bottom: 0px !important;
}

.u-mb-5 {
  margin-bottom: 5px !important;
}

.u-mb-10 {
  margin-bottom: 10px !important;
}

.u-mb-15 {
  margin-bottom: 15px !important;
}

.u-mb-20 {
  margin-bottom: 20px !important;
}

.u-mb-25 {
  margin-bottom: 25px !important;
}

.u-mb-30 {
  margin-bottom: 30px !important;
}

.u-mb-35 {
  margin-bottom: 35px !important;
}

.u-mb-40 {
  margin-bottom: 40px !important;
}

.u-mb-45 {
  margin-bottom: 45px !important;
}

.u-mb-50 {
  margin-bottom: 50px !important;
}

.u-mb-55 {
  margin-bottom: 55px !important;
}

.u-mb-60 {
  margin-bottom: 60px !important;
}

@media screen and (max-width: 768px) {
  .u-mb-s-0 {
    margin-bottom: 0px !important;
  }
  .u-mb-s-5 {
    margin-bottom: 5px !important;
  }
  .u-mb-s-10 {
    margin-bottom: 10px !important;
  }
  .u-mb-s-15 {
    margin-bottom: 15px !important;
  }
  .u-mb-s-20 {
    margin-bottom: 20px !important;
  }
  .u-mb-s-25 {
    margin-bottom: 25px !important;
  }
  .u-mb-s-30 {
    margin-bottom: 30px !important;
  }
  .u-mb-s-35 {
    margin-bottom: 35px !important;
  }
  .u-mb-s-40 {
    margin-bottom: 40px !important;
  }
}
/* padding */
.u-p-1 {
  padding: 1px !important;
}

.u-p-0 {
  padding: 0px !important;
}

.u-p-5 {
  padding: 5px !important;
}

.u-p-10 {
  padding: 10px !important;
}

.u-p-15 {
  padding: 15px !important;
}

.u-p-20 {
  padding: 20px !important;
}

.u-p-25 {
  padding: 25px !important;
}

.u-p-30 {
  padding: 30px !important;
}

.u-p-35 {
  padding: 35px !important;
}

.u-p-40 {
  padding: 40px !important;
}

.u-p-45 {
  padding: 45px !important;
}

.u-p-50 {
  padding: 50px !important;
}

@media screen and (max-width: 768px) {
  .u-p-s-0 {
    padding: 0px !important;
  }
  .u-p-s-5 {
    padding: 5px !important;
  }
  .u-p-s-10 {
    padding: 10px !important;
  }
  .u-p-s-15 {
    padding: 15px !important;
  }
  .u-p-s-20 {
    padding: 20px !important;
  }
  .u-p-s-25 {
    padding: 25px !important;
  }
  .u-p-s-30 {
    padding: 30px !important;
  }
  .u-p-s-35 {
    padding: 35px !important;
  }
  .u-p-s-40 {
    padding: 40px !important;
  }
}
.u-ps-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.u-ps-15 {
  padding-left: 15px !important;
  padding-right: 15px !important;
}

@media screen and (max-width: 768px) {
  .u-ps-s0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .u-ps-s15 {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.u-bg-black {
  background-color: #000 !important;
}

.u-bg-white {
  background-color: #fff !important;
}

.u-bg1 {
  background-color: #EDF8FE !important;
}

.u-bg2 {
  background-color: #fbf2f2 !important;
}

.u-bg3 {
  background-color: #F4F5F7 !important;
}

.u-bg-ac1 {
  background-color: #41AFFF !important;
}

.u-bg-ac2 {
  background-color: #FF6473 !important;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ---
テキストのスタイルを指定する汎用クラスです。
--- */
/* 文字の色を指定します */
.u-text-red {
  color: #FF4B00 !important;
}

.u-text-white {
  color: #fff !important;
}

.u-text-black {
  color: #000 !important;
}

.u-text-gray {
  color: #777 !important;
}

.u-text-ac1 {
  color: #41AFFF !important;
}

.u-text-ac2 {
  color: #FF6473 !important;
}

/* font-weightを指定します */
.u-text-thin {
  font-weight: 200 !important;
}

.u-text-light {
  font-weight: 300 !important;
}

.u-text-normal {
  font-weight: 400 !important;
}

.u-text-medium {
  font-weight: 500 !important;
}

.u-text-semibold {
  font-weight: 600 !important;
}

.u-text-bold {
  font-weight: 700 !important;
}

.u-text-w-black {
  font-weight: 900 !important;
}

/* text-alignを指定します */
.u-text-right {
  text-align: right !important;
}

.u-text-center {
  text-align: center !important;
}

.u-text-left {
  text-align: left !important;
}

.u-text-top {
  vertical-align: top !important;
}

.u-text-middle {
  vertical-align: middle !important;
}

.u-text-bottom {
  vertical-align: bottom !important;
}

@media screen and (max-width: 768px) {
  .u-text-s-right {
    text-align: right !important;
  }
  .u-text-s-center {
    text-align: center !important;
  }
  .u-text-s-left {
    text-align: left !important;
  }
}
/* フォントサイズを指定します */
.u-text-min {
  font-size: 1rem;
}
@media screen and (max-width: 768px) {
  .u-text-min {
    font-size: 1rem;
  }
}

.u-text-xxs {
  font-size: 1.2rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxs {
    font-size: 1.2rem;
  }
}

.u-text-xs {
  font-size: 1.3rem;
}
@media screen and (max-width: 768px) {
  .u-text-xs {
    font-size: 1.3rem;
  }
}

.u-text-sm {
  font-size: 1.4rem;
}
@media screen and (max-width: 768px) {
  .u-text-sm {
    font-size: 1.4rem;
  }
}

.u-text-md {
  font-size: 1.5rem;
}
@media screen and (max-width: 768px) {
  .u-text-md {
    font-size: 1.5rem;
  }
}

.u-text-lg {
  font-size: 1.8rem;
}
@media screen and (max-width: 768px) {
  .u-text-lg {
    font-size: 1.6rem;
  }
}

.u-text-xl {
  font-size: 2rem;
}
@media screen and (max-width: 768px) {
  .u-text-xl {
    font-size: 1.8rem;
  }
}

.u-text-xxl {
  font-size: 2.3rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxl {
    font-size: 2rem;
  }
}

.u-text-xxxl {
  font-size: 2.5rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxl {
    font-size: 2.2rem;
  }
}

.u-text-xxxxl {
  font-size: 2.8rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxl {
    font-size: 2.6rem;
  }
}

.u-text-xxxxxl {
  font-size: 3rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxxl {
    font-size: 2.8rem;
  }
}

.u-text-xxxxxxl {
  font-size: 3.5rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxxxl {
    font-size: 3rem;
  }
}

.u-text-max {
  font-size: 4rem;
}
@media screen and (max-width: 768px) {
  .u-text-max {
    font-size: 3.5rem;
  }
}

/*@include fw.mq(min, ml){
  .u-text-s-min { @include fw.fz('min');}
  .u-text-s-xxs { @include fw.fz('xxs');}
  .u-text-s-xs { @include fw.fz('xs');}
  .u-text-s-sm { @include fw.fz('sm');}
  .u-text-s-md { @include fw.fz('md');}
  .u-text-s-lg { @include fw.fz('lg');}
  .u-text-s-xl { @include fw.fz('xl');}
  .u-text-s-xxl { @include fw.fz('xxl');}
  .u-text-s-xxxl { @include fw.fz('xxxl');}
  .u-text-s-xxxxl { @include fw.fz('xxxxl');}
  .u-text-s-xxxxxl { @include fw.fz('xxxxxl');}
  .u-text-s-xxxxxxl { @include fw.fz('xxxxxxl');}
  .u-text-s-max { @include fw.fz('max');}
} */
/* 文字下線 */
.u-text_under-yellow {
  background: linear-gradient(transparent 60%, #FFFAC6 40%);
}

/* #Align
  -------------------------------------------------------------------------- */
/*doc
---
title: align
name: align
categories: [utility]
---

画像などを左右や中央に配置します。

*/
.u-align-left {
  margin-left: 0 !important;
  margin-right: auto !important;
}

.u-align-center {
  margin-right: auto !important;
  margin-left: auto !important;
}

.u-align-right {
  margin-left: auto !important;
  margin-right: 0 !important;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* スクリーンリーダー用のテキスト（非表示）
----- object/utility/_u-sr ----- */
/* フォーカス不要（テキストなど） */
.u-sr-only {
  width: 1px;
  height: 1px;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  margin: -1px;
  padding: 0;
  border: 0;
}

/* フォーカス必須（ボタンなど） */
.u-sr-only_fc:not(:focus):not(:active) {
  height: 1px;
  width: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}