@charset "UTF-8";
/**
 * このスタイルシートは[FLOCSS](https://github.com/hiloki/flocss)をベースにしています。
 * 定義されているレイヤー以外にもThemeやTestなどのレイヤーを追加することもできます。
 * 詳しくは[CSSコーディングルール](https://github.com/manabuyasuda/styleguide/blob/master/css-coding-rule.md#flocss)を参照してください。
 */
/* ----------------------------------------------------------
   #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: "Montserrat", "Zen Kaku Gothic New", "游ゴシック体", "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;
}

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

a {
  text-decoration: none;
  color: #96A53B;
  transition: 0.3s;
}

a:hover {
  color: #b0c43d;
}

img {
  max-width: 100%;
  height: auto;
  transition: 0.3s;
  vertical-align: top;
}
img:not(.no-radius) {
  border-radius: 20px;
}

#wrap {
  width: 100%;
}
#wrap:not(.no-top) {
  padding-top: 70px;
}
@media screen and (max-width: 800px) {
  #wrap:not(.no-top) {
    padding-top: 60px;
  }
}

strong {
  font-weight: 700;
}

hr {
  border-color: #ccc;
  border-top: none;
}

[id^=sec-] {
  padding-top: 70px;
  margin-top: -70px;
}

/* ----------------------------------------------------------
   #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: 0;
  left: 0;
  width: 100%;
  padding: 0 20px;
  background-color: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(10px);
  z-index: 999;
  height: 70px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.l-header.is-hidden .l-header_inner {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}
.l-header.is-visible .l-header_inner {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

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

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

.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: #96A53B;
}
.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: 2px;
  background: #96A53B;
  bottom: 10px;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  border-radius: 2px;
}

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

.l-header_has-child {
  position: relative;
}

.l-header_sub_nav {
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 3px 6px rgba(51, 51, 51, 0.15);
  width: 180px;
  padding: 5px;
  border-radius: 5px;
  position: absolute;
  left: 0;
  top: 50px;
  z-index: 4;
  transition: all 0.3s;
  visibility: hidden;
  opacity: 0;
  backdrop-filter: blur(10px);
}
.l-header_sub_nav a {
  padding: 8px 14px;
  color: #96A53B;
  border-radius: 5px;
}
.l-header_sub_nav a:hover {
  color: #b0c43d;
  background: #FFFDEE;
}
.l-header_sub_nav a::before {
  display: none;
}

.l-header_has-child:hover .l-header_sub_nav {
  visibility: visible;
  opacity: 1;
}

.l-header_reserve {
  position: relative;
}
.l-header_reserve .main {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: center;
  padding: 5px 40px 5px 15px;
  min-height: 40px;
  color: #fff;
  background: #96A53B;
  border-radius: 25px;
  font-weight: 500;
  position: relative;
}
.l-header_reserve .main:hover {
  background: #b0c43d;
}
.l-header_reserve .main::before {
  content: "";
  background: url("../img/ico-blank_ac1.svg") center/8px no-repeat;
  background-color: #fff;
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 10px;
  translate: 0 -50%;
  transition: 0.3s;
}
.l-header_reserve .other {
  position: absolute;
  right: 0;
  top: 100%;
  padding-top: 10px;
  transition: 0.3s;
  visibility: hidden;
  opacity: 0;
  transition: 0.3s;
}
.l-header_reserve ul {
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 3px 6px rgba(51, 51, 51, 0.15);
  border-radius: 5px;
  padding: 5px 0;
  white-space: nowrap;
  z-index: 1000;
}
.l-header_reserve ul li {
  padding: 0;
}
.l-header_reserve ul li a {
  display: block;
  padding: 8px 14px;
  color: #96A53B;
  border-radius: 5px;
}
.l-header_reserve ul li a:hover {
  color: #b0c43d;
  background: #FFFDEE;
}
.l-header_reserve:hover .other {
  visibility: visible;
  opacity: 1;
}

.l-header__contact_img {
  max-height: 18px;
}

/*----- プルダウン -----*/
.has-child {
  position: relative;
}
.has-child ul {
  position: absolute;
  left: 0;
  top: 50px;
  z-index: 4;
  background: #fff;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
  width: 180px;
  opacity: 0;
  transition: all 0.3s;
  /*はじめは非表示*/
  visibility: hidden;
  border-radius: 10px;
}
.has-child {
  /*hoverしたら表示*/
}
.has-child:hover > ul,
.has-child ul li:hover > ul, .has-child:active > ul,
.has-child ul li:active > ul {
  visibility: visible;
  opacity: 1;
}

@media screen and (max-width: 800px) {
  .l-header_inner {
    padding: 0 5px 0 15px;
    height: 60px;
  }
  .l-header_logo img {
    width: 150px;
  }
  .l-header_menu {
    width: 100%;
    position: fixed;
    z-index: 998;
    top: 0;
    right: 0;
    transform: translateY(calc(-100% - 60px));
    transition: all 0.6s;
    background: #FFFDEE;
  }
  .l-header_menu.is-active {
    transform: translateY(0%);
  }
  .l-header_menu::before {
    content: "";
    display: block;
    mask: url("../img/dco_wave_01.svg") center bottom/cover no-repeat;
    background: #FFFDEE;
    width: 100%;
    height: 15px;
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    rotate: 180deg;
    z-index: 1;
  }
  .l-header_menu::after {
    content: "";
    display: block;
    height: 50px;
    width: 100%;
    background: rgba(255, 255, 255, 0.5);
    position: absolute;
    bottom: -50px;
    left: 0;
  }
  .l-header_menu_inner {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    padding: 60px 0 30px;
    width: 100%;
    height: calc(100dvh - 50px);
    max-width: 400px;
    overflow-y: scroll;
    overscroll-behavior-y: contain;
    position: relative;
  }
  .u-db-hd:has(.l-header_logo_sp) {
    width: 100%;
    padding: 0 15px;
  }
  .l-header_logo_sp {
    display: block;
    text-align: center;
    width: 65%;
    max-width: 110px;
    margin: 0 auto;
  }
  .l-header_receive_sp .jp {
    margin: 40px auto 10px;
  }
  .l-header_item {
    gap: 10px;
  }
  .l-header_nav {
    text-align: center;
    letter-spacing: 3px;
    display: block;
    width: 100%;
    margin-top: 30px;
    border-top: solid 1px #e9e1a4;
    position: relative;
  }
  .l-header_nav a {
    color: #96A53B;
    padding: 15px 55px 15px 35px;
  }
  .l-header_nav a::before {
    display: none;
  }
  .l-header_nav a:hover {
    color: #b0c43d;
  }
  .l-header_nav > li:nth-child(2n) {
    background: #fff;
  }
  .l-header_nav .sub-nav li {
    padding-left: 10px;
    border-bottom: 3px #cae2df dotted;
  }
  .l-header_nav .sub-nav li a {
    border: none;
  }
  .l-header_nav li.has-child > a {
    padding-right: 40px;
  }
  .l-header_sub_nav {
    width: 100%;
    padding: 0 15px 10px;
    font-weight: 400;
    background: transparent;
    position: relative;
    left: 0;
    top: 0;
    display: none;
    transition: none;
    box-shadow: none;
  }
  .l-header_sub_nav a {
    padding: 5px 0;
  }
  .l-header_has-child {
    position: relative;
  }
  .l-header_nav_btn {
    display: grid;
    place-content: center;
    position: absolute;
    height: 40px;
    width: 40px;
    top: 10px;
    right: 15px;
    transition: all ease 0.3s;
  }
  .l-header_nav_btn span {
    background: #DCAE82;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    position: relative;
  }
  .l-header_nav_btn::before, .l-header_nav_btn::after {
    content: "";
    display: block;
    width: 10px;
    height: 2px;
    border-radius: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    z-index: 1;
  }
  .l-header_nav_btn::after {
    rotate: 90deg;
    transition: 0.3s;
  }
  .l-header_has-child.is-active .l-header_nav_btn::after {
    rotate: 0deg;
  }
  .l-header_reserve .main {
    padding: 5px 30px 5px 10px;
    gap: 5px;
    min-height: 35px;
  }
  .l-header_reserve .main::before {
    width: 18px;
    height: 18px;
    right: 8px;
  }
  .l-header_reserve figure, .l-header_reserve img {
    height: 16px;
  }
  /* ハンバーガーボタン */
  .l-header_burger {
    display: block;
    position: relative;
    width: 40px;
    height: 40px;
    cursor: pointer;
    text-align: center;
    z-index: 999;
  }
  .l-header_burger span {
    display: block;
    position: absolute;
    width: 20px;
    height: 2px;
    border-radius: 1px;
    background: #75A4A4;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    transition: 0.3s;
  }
  .l-header_burger span::before, .l-header_burger span::after {
    content: "";
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 1px;
    background: #75A4A4;
    position: absolute;
    top: -7px;
    right: 0;
    transition: 0.3s;
  }
  .l-header_burger span::after {
    top: 7px;
    background: #75A4A4;
  }
  .l-header_burger {
    /* ナビ開いてる時のボタン */
  }
  .l-header_burger.is-active span {
    background: transparent;
  }
  .l-header_burger.is-active span::before {
    top: 0;
    rotate: -45deg;
  }
  .l-header_burger.is-active span::after {
    top: 0;
    rotate: 45deg;
  }
  /*----- プルダウン -----*/
  .has-child .nav-btn {
    position: absolute;
    top: 10px;
    right: 0;
    width: 40px;
    height: 40px;
    display: block;
    transition: all ease 0.3s;
  }
  .has-child .nav-btn::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border: 1px solid #555;
    border-color: transparent transparent #555 #555;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
  }
  .has-child.is-active .nav-btn {
    transform: rotate(180deg);
  }
  .has-child ul {
    position: relative;
    left: 0;
    top: 0;
    width: 100%;
    visibility: visible; /*JSで制御するため一旦表示*/
    opacity: 1; /*JSで制御するため一旦表示*/
    display: none; /*JSのslidetoggleで表示させるため非表示に*/
    transition: none; /*JSで制御するためCSSのアニメーションを切る*/
    box-shadow: none;
  }
  .has-child ul li.has-child::before {
    left: 20px;
  }
  .has-child ul ul li.has-child::before {
    transform: rotate(135deg);
    left: 20px;
  }
  .has-child li.has-child.is-active::before {
    transform: rotate(-45deg);
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* フッター 
----- layout/_footer ---------- */
.l-footer_reserve {
  position: fixed;
}

.l-footer {
  margin-top: 100px;
}

.top + .l-footer {
  margin-top: 0;
}
.top + .l-footer .l-footer_inner::after {
  background: #F1FFFF;
}

.l-footer_inner {
  display: grid;
  grid-template: "footer_menu footer_r" 1fr "footer_location footer_r " auto/1fr auto;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-color: #DCAE82;
  padding: 110px 0 0 30px;
  gap: 0 30px;
}
.l-footer_inner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.4)), url("../img/footer_bag.jpg") center/cover no-repeat;
  background-attachment: fixed;
  z-index: -999;
  pointer-events: none;
}
.l-footer_inner::after {
  content: "";
  width: 100%;
  height: 35px;
  mask: url("../img/dco_wave_01.svg") center top/cover no-repeat;
  background: #fff;
  position: absolute;
  top: -1px;
  left: 0;
  rotate: 180deg;
}

.l-footer_menu {
  grid-area: footer_menu;
  padding-left: 30px;
}

.l-footer_logo {
  display: block;
  width: 250px;
}

.l-footer_nav {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: flex-end;
  gap: 20px 30px;
  margin-top: 170px;
  padding: 0 0 15px;
}
.l-footer_nav .main {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 80px;
  align-items: flex-start;
  margin: 0 0 30px;
}
.l-footer_nav .main > ul {
  display: grid;
  gap: 40px 0;
}
.l-footer_nav .main a {
  color: #fff;
}
.l-footer_nav .main a:hover {
  color: #96A53B;
}
.l-footer_nav .parent_link {
  font-weight: 400;
  display: flex;
  flex-wrap: wrap;
  gap: 0 15px;
  align-items: center;
}
.l-footer_nav .parent_link strong {
  font-size: 2rem;
}
.l-footer_nav .child {
  margin-top: 5px;
  display: flex;
  flex-wrap: wrap;
  gap: 0 15px;
}
.l-footer_nav .sub {
  font-size: 1.3rem;
  text-align: right;
}
.l-footer_nav .sub a {
  color: #ccc;
  display: block;
  margin-top: 5px;
}
.l-footer_nav .sub a:hover {
  color: #fff;
}

.l-footer_r {
  grid-area: footer_r;
  display: grid;
  align-items: flex-end;
}
.l-footer_r .c-cta .en {
  border-radius: 0;
}

.l-footer_location {
  grid-area: footer_location;
  color: #fff;
  padding: 15px 0 5px 30px;
  border-top: 1px solid #fff;
  line-height: 2;
}
.l-footer_location a {
  color: #fff;
}
.l-footer_location a:hover {
  opacity: 0.8;
}

.l-footer_copyright {
  text-align: right;
  color: #ccc;
}

@media screen and (max-width: 768px) {
  .l-footer {
    margin-top: 80px;
  }
  .l-footer_inner {
    grid-template: "footer_menu" auto "footer_r" auto "footer_location" auto/auto;
    padding: 90px 15px 0;
  }
  .l-footer_inner::after {
    height: 15px;
  }
  .l-footer_menu {
    padding: 0;
  }
  .l-footer_logo {
    width: 100%;
    max-width: 200px;
  }
  .l-footer_nav {
    grid-template-columns: auto;
    margin-top: 70px;
  }
  .l-footer_nav .main {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin: 0;
  }
  .l-footer_nav .main > ul {
    gap: 30px 0;
  }
  .l-footer_nav .parent_link {
    gap: 0 10px;
  }
  .l-footer_nav .parent_link strong {
    font-size: 1.8rem;
  }
  .l-footer_nav .parent_link span {
    font-size: 1.2rem;
  }
  .l-footer_nav .child a {
    padding-left: 10px;
    position: relative;
  }
  .l-footer_nav .child a::before {
    content: "";
    display: block;
    width: 5px;
    height: 1px;
    border-radius: 1px;
    background-color: #fff;
    position: absolute;
    top: 50%;
    left: 0;
  }
  .l-footer_nav .sub {
    display: flex;
    gap: 0 20px;
    justify-content: center;
  }
  .l-footer_r .jp {
    margin: 20px auto 10px;
  }
  .l-footer_location {
    margin-top: 30px;
    line-height: 1.5;
    padding: 20px 0 5px 0;
  }
  .l-footer_location .info a, .l-footer_location .info span {
    display: inline-block;
    padding-top: 8px;
  }
  .l-footer_copyright {
    text-align: center;
    margin-top: 20px;
  }
}
/* #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_wrap {
  padding: 10px 20px;
  position: relative;
}
.c-ttl-1_wrap .deco {
  display: block;
  height: 160px;
  background: #96A53B;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
}
.c-ttl-1_wrap .deco::before {
  content: "";
  width: 100%;
  height: 35px;
  background: url("../img//dco_wave_01.svg") center bottom/contain repeat-x;
  position: absolute;
  bottom: -1px;
  left: 0;
}
.c-ttl-1_wrap .deco:has(img) {
  height: 290px;
}
.c-ttl-1_wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-ttl-1 {
  display: block;
  text-align: center;
  margin: 30px auto 0;
  position: relative;
  z-index: 1;
}
.c-ttl-1 .en {
  display: block;
  font-size: 6.4rem;
  line-height: 1.5;
}
.c-ttl-1 .jp {
  display: inline-block;
  font-size: 2rem;
  margin-top: 10px;
  padding: 0 65px;
  position: relative;
}
.c-ttl-1 .jp::before, .c-ttl-1 .jp::after {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 35px;
  height: 10px;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}
.c-ttl-1 .jp::after {
  left: auto;
  right: 0;
}

.c-ttl-2 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 15px;
  font-size: 3.3rem;
  margin-top: 80px;
}
.c-ttl-2 .en {
  font-size: 1.4rem;
  padding-top: 20px;
  position: relative;
  min-width: 35px;
}
.c-ttl-2 .en::before {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 35px;
  height: 10px;
  position: absolute;
  top: 5px;
  left: 0;
}
.c-ttl-2 + *:not(h1, h2, h3, h4, h5, h6) {
  margin-top: 30px;
}

.c-ttl-3 {
  font-size: 2.6rem;
  margin-top: 60px;
  padding-bottom: 15px;
  width: fit-content;
  position: relative;
}
.c-ttl-3::before {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 35px;
  height: 10px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.c-ttl-3 + *:not(h1, h2, h3, h4, h5, h6) {
  margin-top: 20px;
}

.c-ttl-4 {
  font-size: 2.2rem;
  margin-top: 50px;
  padding-right: 35px;
  width: fit-content;
  position: relative;
}
.c-ttl-4::before {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 25px;
  height: 7px;
  position: absolute;
  bottom: 10px;
  right: 0;
}
.c-ttl-4 + *:not(h1, h2, h3, h4, h5, h6) {
  margin-top: 20px;
}

.c-ttl-5 {
  font-size: 1.8rem;
  margin-top: 30px;
  color: #DCAE82;
  padding-left: 15px;
  position: relative;
}
.c-ttl-5::before {
  content: "";
  background: url("../img/deco-ttl-5.svg") center/contain no-repeat;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 10px;
  left: 0;
}
.c-ttl-5 + *:not(h1, h2, h3, h4, h5, h6) {
  margin-top: 15px;
}

@media screen and (max-width: 768px) {
  .c-ttl-1_wrap {
    padding: 10px 15px;
  }
  .c-ttl-1_wrap .deco {
    height: 120px;
  }
  .c-ttl-1_wrap .deco:has(img) {
    height: auto;
    aspect-ratio: 17/8;
  }
  .c-ttl-1_wrap .deco::before {
    height: 15px;
  }
  .c-ttl-1 {
    margin-top: 10px;
  }
  .c-ttl-1 .en {
    font-size: 3.8rem;
  }
  .c-ttl-1 .jp {
    font-size: 1.7rem;
    margin-top: 5px;
    padding: 0 50px;
  }
  .c-ttl-1 .jp::before, .c-ttl-1 .jp::after {
    width: 30px;
  }
  .c-ttl-2 {
    gap: 0 10px;
    font-size: 2.8rem;
    margin-top: 60px;
  }
  .c-ttl-2 .jp {
    width: 100%;
  }
  .c-ttl-2 .en {
    font-size: 1.3rem;
    min-width: 30px;
    padding: 0 35px 0 0;
  }
  .c-ttl-2 .en::before {
    width: 30px;
    top: 50%;
    left: auto;
    right: 0;
    translate: 0 -50%;
  }
  .c-ttl-2 + *:not(h1, h2, h3, h4, h5, h6) {
    margin-top: 20px;
  }
  .c-ttl-3::before, .c-ttl-4::before {
    width: 30px;
  }
  .c-ttl-3 + *:not(h1, h2, h3, h4, h5, h6), .c-ttl-4 + *:not(h1, h2, h3, h4, h5, h6) {
    margin-top: 15px;
  }
  .c-ttl-3 {
    font-size: 2.2rem;
    margin-top: 40px;
    padding-bottom: 10px;
  }
  .c-ttl-4 {
    font-size: 2rem;
    padding-right: 30px;
    margin-top: 35px;
  }
  .c-ttl-4::before {
    width: 25px;
  }
  .c-ttl-5 {
    margin-top: 20px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ボタン 
----- object/component/_c-btn ----- */
.c-btn, .c-btn__02, .c-btn__blank, .c-btn__back {
  display: grid;
  align-items: center;
  color: #96A53B;
  font-weight: 500;
  min-height: 40px;
  padding-right: 55px;
  margin-top: 50px;
  position: relative;
  width: fit-content;
}
.c-btn::before, .c-btn__02::before, .c-btn__blank::before, .c-btn__back::before {
  content: "";
  display: block;
  background: #96A53B url("../img/ico-arrow-w.svg") center/8px no-repeat;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 5px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn:hover, .c-btn__02:hover, .c-btn__blank:hover, .c-btn__back:hover {
  color: #b0c43d;
}
.c-btn:hover::before, .c-btn__02:hover::before, .c-btn__blank:hover::before, .c-btn__back:hover::before {
  background-color: #b0c43d;
  right: 0;
}
.c-btn__02 {
  color: #DCAE82;
}
.c-btn__02::before {
  background-color: #DCAE82;
}
.c-btn__02:hover {
  color: #ee9a6c;
}
.c-btn__02:hover::before {
  background-color: #ee9a6c;
}
.c-btn__blank::before {
  background: #96A53B url("../img/ico-blank_w.svg") center/14px no-repeat;
}
.c-btn__blank:hover::before {
  top: calc(50% - 5px);
}
.c-btn__back {
  color: #333;
  padding: 0 0 0 55px;
}
.c-btn__back::before {
  background-color: #333;
  right: auto;
  left: 5px;
  rotate: 180deg;
}
.c-btn__back:hover {
  opacity: 0.8;
  color: #333;
}
.c-btn__back:hover::before {
  left: 0;
}

.c-btn_text {
  display: inline;
  font-weight: 500;
  padding-right: 20px;
  position: relative;
}
.c-btn_text::before {
  content: "";
  mask: url("../img/ico-arrow-w.svg") center/contain no-repeat;
  background: #96A53B;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 5px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn_text:hover::before {
  right: 0;
  background: #b0c43d;
}

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

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

.c-btn_receive {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: center;
  margin: 50px auto 0;
  padding: 5px 40px 5px 15px;
  min-height: 45px;
  max-width: 250px;
  color: #fff;
  background: #96A53B;
  border-radius: 25px;
  font-weight: 500;
  position: relative;
  text-align: center;
}
.c-btn_receive:hover {
  background: #b0c43d;
  color: #fff;
}
.c-btn_receive::before {
  content: "";
  background: url("../img/ico-blank_ac1.svg") center/8px no-repeat;
  background-color: #fff;
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 10px;
  translate: 0 -50%;
  transition: 0.3s;
}

.c-btn_tel {
  display: block;
  padding-left: 20px;
  position: relative;
  font-size: 1.8rem;
  font-weight: 700;
  margin-top: 15px;
}
.c-btn_tel::before {
  content: "";
  mask: url("../img/ico-tel.svg") center/contain no-repeat;
  background-color: #96A53B;
  width: 15px;
  height: 15px;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn_tel:hover::before {
  background-color: #b0c43d;
}

@media screen and (max-width: 768px) {
  .c-btn, .c-btn__02, .c-btn__blank, .c-btn__back {
    min-height: 35px;
    padding-right: 50px;
    margin-top: 40px;
  }
  .c-btn::before, .c-btn__02::before, .c-btn__blank::before, .c-btn__back::before {
    width: 35px;
    height: 35px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* リンク（ボタンの形ではないもの） 
----- object/component/_c-link ----- */
.c-link_text {
  text-decoration: underline;
}

.c-link_blank {
  padding: 0 20px 0 5px;
  position: relative;
}
.c-link_blank::before {
  content: "";
  mask: url("../img/ico-blank_ac1.svg") center/contain no-repeat;
  background: #96A53B;
  display: block;
  width: 12px;
  height: 12px;
  position: absolute;
  right: 3px;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-link_blank:hover::before {
  right: 0;
  top: calc(50% - 3px);
  background: #b0c43d;
}
.c-link_blank.u-text-white::before, .c-link_blank.u-text-white:hover::before {
  background: #fff;
}

a .c-link_blank {
  transition: 0.3s;
}
a:hover .c-link_blank::before {
  right: 0;
  top: calc(50% - 3px);
}

.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: #96A53B;
  height: 25px;
  border-radius: 5px;
}
.c-ico_pu img {
  height: 11px;
}
.c-ico_pu__text {
  display: inline-block;
  font-weight: 500;
  color: #fff;
  background: #96A53B;
  padding: 1px 10px;
  line-height: 1.5;
  border-radius: 5px;
  height: auto;
}

.c-ico_cate {
  display: inline-block;
  color: #333;
  background-color: #E6E6E6;
  min-width: 85px;
  padding: 1px 10px 0;
  border-radius: 15px;
  text-align: center;
  height: fit-content;
  font-size: 1.4rem;
  font-weight: 500;
}

.c-ico_number {
  display: grid;
  place-content: center;
  place-items: center;
  color: #fff;
  background: #96A53B;
  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: 1.5em;
  margin-top: 20px;
}
.c-list li {
  margin-top: 5px;
  padding-left: 5px;
  list-style-type: inherit;
}
.c-list li::marker {
  color: #75A4A4;
  font-weight: 600;
}

ol.c-list {
  list-style-type: decimal;
}

.c-list_dl {
  display: grid;
  grid-template-columns: auto 1fr;
  margin-top: 0;
}
.c-list_dl > * {
  border-bottom: solid 1px #ccc;
  padding: 0 5px 10px 5px;
}
.c-list_dl > *:not(:nth-last-child(-n+2)) {
  margin-bottom: 10px;
}
.c-list_dl dt {
  padding-left: 0;
  font-weight: 600;
}
.c-list_dl.__top_line {
  border-top: solid 1px #ccc;
  padding-top: 10px;
}

@media screen and (max-width: 768px) {
  .c-list {
    margin-top: 15px;
  }
  .c-list_dl {
    grid-template-columns: auto;
  }
  .c-list_dl dt {
    margin: 0 !important;
    padding: 0;
    border: none;
  }
  .c-list_dl dd {
    padding: 0 0 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 :is(th, td) {
  border-bottom: 1px solid #ccc;
  padding: 15px 20px;
  text-align: left;
}
.c-table th {
  color: #fff;
  background: #96A53B;
  font-weight: 600;
  border-color: #fff;
}
.c-table th::before {
  background: #fff;
}
.c-table tr *:nth-child(n+2) {
  position: relative;
}
.c-table tr *:nth-child(n+2)::before {
  content: "";
  width: 1px;
  height: 60%;
  background: #ccc;
  position: absolute;
  top: 20%;
  left: 0;
}
.c-table tr:has(th):has(td):first-child th {
  border-radius: 10px 10px 0 0;
}
.c-table tr:has(th):has(td) td:nth-child(2)::before {
  display: none;
}
.c-table tr:not(:has(td)) th:first-child {
  border-radius: 10px 0 0 0;
}
.c-table tr:not(:has(td)) th:last-child {
  border-radius: 0 10px 0 0;
}

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

@media screen and (max-width: 768px) {
  .c-table.__md-v :is(th, td) {
    display: block;
    padding: 5px 15px;
  }
  .c-table.__md-v td {
    padding-bottom: 10px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* CTA 予約リンク 
----- object/component/_c-cta ----- */
.c-cta {
  max-width: 300px;
}
.c-cta .jp {
  display: grid;
  grid-template-columns: auto 1fr;
  color: #fff;
  background: #96A53B;
  padding: 25px 10px 0 0;
  border-radius: 20px 0 0 0;
}
.c-cta .jp:hover {
  color: #fff;
  background: #b0c43d;
}
.c-cta .jp:hover .link span::before {
  right: 0;
  top: calc(50% - 5px);
}
.c-cta .l {
  display: flex;
  align-items: center;
  gap: 0 20px;
  writing-mode: vertical-rl;
  position: relative;
  padding: 0 10px;
  font-weight: 500;
  letter-spacing: 0.5rem;
}
.c-cta .l::before {
  content: "";
  width: 2px;
  height: calc(100% + 35px);
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.5);
  position: absolute;
  top: -10px;
  right: 0;
}
.c-cta .r {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 15px;
}
.c-cta .r strong {
  font-size: 1.8rem;
}
.c-cta .r strong + span {
  font-size: 1.2rem;
}
.c-cta .r .link {
  width: 100%;
  margin-top: 30px;
}
.c-cta .r .link span {
  color: #fff;
  margin: 0 0 0 auto;
}
.c-cta .r .link span::before {
  background: #fff url("../img/ico-blank_ac1.svg") center/14px no-repeat;
}
.c-cta .en {
  display: block;
  padding: 5px 30px 15px 60px;
  color: #fff;
  background: #96A53B;
  text-align: right;
  font-size: 1.3rem;
  border-radius: 0 0 0 20px;
}
.c-cta .en:hover {
  background: #b0c43d;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 回遊リンク 
----- object/component/_c-related_link ----- */
.c-related_link {
  margin-top: 70px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 20px;
}
@media screen and (min-width: 769px) {
  .c-related_link.__3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .c-related_link.__3 img {
    aspect-ratio: 7/5;
  }
}
.c-related_link a {
  display: block;
  position: relative;
  border-radius: 20px;
  overflow: hidden;
}
.c-related_link a:hover img {
  scale: 1.1;
  border-radius: 20px;
}
.c-related_link a:hover .text::before {
  right: 10px;
  background-color: #b0c43d;
}
.c-related_link a:hover .text::after {
  opacity: 1;
}
.c-related_link img {
  aspect-ratio: 10/4.5;
  object-fit: cover;
}
.c-related_link .text {
  font-weight: 600;
  width: calc(100% - 20px);
  padding: 5px 65px 15px 15px;
  border-radius: 0 0 15px 15px;
  position: absolute;
  bottom: 10px;
  left: 10px;
  z-index: 1;
}
.c-related_link .text::before {
  content: "";
  display: block;
  background: #96A53B url("../img/ico-arrow-w.svg") center/8px no-repeat;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 15px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-related_link .text::after {
  content: "";
  width: 100%;
  height: calc(100% + 15px);
  background: url("../img/dco_wave_01.svg") top center/100% 15px no-repeat, linear-gradient(#fff, #fff) bottom center/100% calc(100% - 14px) no-repeat;
  border-radius: 0 0 15px 15px;
  opacity: 0.9;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  transition: 0.3s;
}
.c-related_link .text .en {
  font-size: 4rem;
  line-height: 1.2;
}

@media screen and (max-width: 768px) {
  .c-related_link {
    grid-template-columns: auto;
    margin-top: 50px;
  }
  .c-related_link img {
    aspect-ratio: 2/1;
  }
  .c-related_link .text .en {
    font-size: 2.8rem;
  }
  .c-related_link .text .jp {
    font-size: 1.3rem;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ふわっとイーズイン 
----- object/component/_c-fade ----- */
.c-fade {
  opacity: 0;
  transform: translateY(50px);
  transition: all 0.8s ease-out;
}
.c-fade.__left {
  transform: translateX(-50px);
}
.c-fade.__right {
  transform: translateX(50px);
}
.c-fade.is-active {
  opacity: 1;
  transform: translate(0, 0);
}

/* -- 
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 {
  max-width: 830px;
  margin: 0 auto;
  margin-top: 30px;
}
.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: #ccc solid 1px;
  width: 100%;
  padding: 12px 15px;
  border-radius: 10px;
}
.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;
  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: #96A53B;
}
.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/ico-arrow_border.svg") center/contain no-repeat;
  width: 10px;
  height: 10px;
  position: absolute;
  right: 15px;
  top: 50%;
  translate: 0 -50%;
  z-index: 1;
}
.p-form dl {
  display: grid;
  gap: 5px 20px;
  grid-template-columns: auto 1fr;
}
.p-form dt {
  padding-top: 7px;
  margin-top: 20px;
  font-weight: 700;
}
.p-form dd {
  margin-top: 20px;
}
.p-form .require {
  display: inline-block;
  background: #DCAE82;
  color: #fff;
  font-size: 1.3rem;
  line-height: 1;
  text-align: center;
  padding: 3px 10px;
  border-radius: 15px;
  margin-left: 10px;
}
.p-form .item_wrap {
  position: relative;
  margin-left: 10px;
}
.p-form .item_name {
  font-size: 14px;
  color: #96A53B;
  background-color: #fff;
  position: absolute;
  left: 10px;
  top: 0;
  padding: 0 5px;
  z-index: 1;
}
.p-form .c-btn {
  padding: 0;
}
.p-form .c-btn input[type=button], .p-form .c-btn input[type=submit] {
  padding-right: 55px;
  color: #96A53B;
  min-height: 40px;
  font-weight: 500;
}
.p-form input[type=checkbox] {
  border-radius: 0;
  appearance: none;
}
.p-form input[type=checkbox] {
  position: relative;
  width: 15px;
  height: 15px;
  border: 1px solid #96A53B;
  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: #96A53B;
}
.p-form input[type=checkbox]:checked::before {
  opacity: 1;
}
.p-form input[type=file]::file-selector-button {
  color: #96A53B;
  background: #fff;
  border-radius: 5px;
  padding: 1px 15px;
  text-align: center;
  border: 1px solid #96A53B;
  cursor: pointer;
  transition: 0.3s;
}
.p-form input[type=file]:hover::file-selector-button {
  background-color: #b0c43d;
  border-color: #b0c43d;
  color: #fff;
}
.p-form__max-w-250 {
  max-width: 250px;
}

.p-form_min {
  max-width: 250px;
}

.p-form_in_text {
  border: #ccc solid 1px;
  background: #fff;
  padding: 0 15px;
  border-radius: 10px;
}
.p-form_in_text p {
  display: flex;
  align-items: center;
}
.p-form_in_text input {
  padding: 12px 0 !important;
  border: none !important;
  border-radius: 0 !important;
}

.p-form_address02 {
  margin-top: 5px;
}

@media screen and (max-width: 768px) {
  .p-form dl {
    grid-template-columns: auto;
  }
  .p-form dt {
    padding: 0;
  }
  .p-form dd {
    margin: 0;
  }
}
/* #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 {
  margin-top: 60px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 5px;
}
.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: #777;
  border-radius: 50%;
}
.wp-pagenavi .page:hover, .wp-pagenavi .last:hover, .wp-pagenavi .first:hover {
  color: #fff;
  background: #b0c43d;
}
.wp-pagenavi .current {
  border-radius: 50%;
  color: #fff;
  background: #96A53B;
}
.wp-pagenavi .extend {
  width: auto;
}
.wp-pagenavi .nextpostslink, .wp-pagenavi .previouspostslink {
  color: transparent;
  overflow: hidden;
  position: relative;
  order: 1;
}
.wp-pagenavi .nextpostslink::before, .wp-pagenavi .previouspostslink::before {
  content: "";
  background: url("../img/ico-arrow_turn.svg") center/contain no-repeat;
  display: block;
  width: 11px;
  height: 13px;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: 0.3s;
}
.wp-pagenavi .nextpostslink:hover::before, .wp-pagenavi .previouspostslink:hover::before {
  left: calc(50% + 5px);
}
.wp-pagenavi .previouspostslink {
  order: -1;
}
.wp-pagenavi .previouspostslink::before {
  rotate: -180deg;
}
.wp-pagenavi .previouspostslink:hover::before {
  left: calc(50% - 5px);
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 記事一覧 
----- object/project/_p-archive ----- */
.p-archive {
  margin-top: 50px;
  border-top: solid 1px #ccc;
}

.p-archive_item {
  border-bottom: solid 1px #ccc;
  padding: 5px 0;
}
.p-archive_item a {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 40px;
  padding: 25px 50px 25px 5px;
  color: #333;
  border-radius: 20px;
  position: relative;
}
.p-archive_item a::before {
  content: "";
  display: block;
  background: #96A53B url("../img/ico-arrow-w.svg") center/8px no-repeat;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 10px;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-archive_item a:hover {
  color: #b0c43d;
  background: #FFFDEE;
}
.p-archive_item a:hover::before {
  right: 5px;
  background-color: #b0c43d;
}
.p-archive_item .date {
  color: #777;
}
.p-archive_item h5 {
  font-size: 1.6rem;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media screen and (max-width: 768px) {
  .p-archive {
    margin-top: 30px;
  }
  .p-archive_item a {
    grid-template-columns: auto;
    padding: 15px 60px 15px 5px;
  }
  .p-archive_item a::before {
    width: 30px;
    height: 30px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 記事詳細
----- object/project/_p-single ----- */
.p-single {
  margin-top: 70px;
}
.p-single .date {
  color: #777;
}
.p-single .date + h3 {
  margin-top: 10px;
}
.p-single > .inner {
  max-width: 840px;
  margin: 40px auto;
}

/* ----- 前後リンク ----- */
.c-single_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.c-single_nav li {
  min-width: 85px;
  font-weight: 500;
}

.c-single_nav_back a {
  display: grid;
  place-content: center;
  padding: 10px 25px;
  min-height: 50px;
  background: #96A53B;
  color: #fff;
  border-radius: 30px;
}
.c-single_nav_back a:hover {
  background: #b0c43d;
}

.c-single_nav_arrow a {
  display: block;
  padding: 10px 0;
  position: relative;
}
.c-single_nav_arrow a::before {
  content: "";
  background: url("../img/ico-arrow_turn.svg") center/contain no-repeat;
  display: block;
  width: 15px;
  height: 15px;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}

.c-single_nav_next a {
  padding-right: 25px;
}
.c-single_nav_next a::before {
  right: 0;
}
.c-single_nav_next a:hover::before {
  right: -5px;
}

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

@media screen and (max-width: 768px) {
  .c-single_nav {
    gap: 10px;
  }
  .c-single_nav_back a {
    padding: 5px 20px;
    min-height: 45px;
  }
}
/* #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 p {
  margin-bottom: 20px;
}
.p-editor h1, .p-editor h2, .p-editor h3, .p-editor h4, .p-editor h5, .p-editor h6 {
  line-height: 1.4;
}
.p-editor h1 {
  font-size: 3.5rem;
  line-height: 1.2;
  margin: 80px 0 30px;
  padding-top: 120px;
  text-align: center;
  position: relative;
}
.p-editor h1::before {
  content: "";
  display: block;
  width: calc(100% + 30px);
  height: 90px;
  background: url("../img/dco_wave_01.svg") bottom center/100% 15px no-repeat, linear-gradient(#96A53B, #96A53B) top center/100% calc(100% - 1px) no-repeat;
  border-radius: 20px;
  position: absolute;
  top: 0;
  left: -15px;
}
.p-editor h1 span {
  display: inline-block;
  font-size: 1.8rem;
  margin-top: 5px;
  padding: 0 65px;
  position: relative;
}
.p-editor h1 span::before, .p-editor h1 span::after {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 35px;
  height: 10px;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}
.p-editor h1 span::after {
  left: auto;
  right: 0;
}
.p-editor h2 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 15px;
  font-size: 3.3rem;
  margin: 80px 0 30px;
}
.p-editor h2 > span {
  font-size: 1.4rem;
  padding-top: 20px;
  position: relative;
  min-width: 35px;
}
.p-editor h2 > span::before {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 35px;
  height: 10px;
  position: absolute;
  top: 5px;
  left: 0;
}
.p-editor h3 {
  font-size: 2.6rem;
  margin: 60px 0 20px;
  padding-bottom: 15px;
  width: fit-content;
  position: relative;
}
.p-editor h3::before {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 35px;
  height: 10px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.p-editor h4 {
  font-size: 2.2rem;
  margin: 50px 0 20px;
  padding-right: 35px;
  width: fit-content;
  position: relative;
}
.p-editor h4::before {
  content: "";
  background: url("../img/deco-ttl.svg") center/contain no-repeat;
  width: 25px;
  height: 7px;
  position: absolute;
  bottom: 10px;
  right: 0;
}
.p-editor h5 {
  font-size: 1.8rem;
  margin: 30px 0 15px;
  color: #DCAE82;
  padding-left: 15px;
  position: relative;
}
.p-editor h5::before {
  content: "";
  background: url("../img/deco-ttl-5.svg") center/contain no-repeat;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 7px;
  left: 0;
}
.p-editor h6 {
  color: #DCAE82;
  font-size: 1.6rem;
  margin: 30px 0 10px;
}
.p-editor ul, .p-editor ol {
  list-style-type: disc;
  padding-left: 1.5em;
  margin-bottom: 20px;
}
.p-editor li {
  margin-bottom: 5px;
  padding-left: 5px;
  list-style-type: inherit;
}
.p-editor li::marker {
  color: #75A4A4;
  font-weight: 600;
}
.p-editor ol {
  list-style-type: decimal;
}
.p-editor strong {
  font-weight: bold;
}
.p-editor em {
  font-style: italic;
}
.p-editor a {
  text-decoration: underline;
}
.p-editor a:hover {
  text-decoration: none;
}
.p-editor blockquote {
  position: relative;
  background: #FFFDEE;
  border-radius: 20px;
  padding: 30px 50px 0;
  margin-bottom: 20px;
}
.p-editor blockquote::before {
  content: "";
  background: url("../img/blockquote_deco.svg") center/contain no-repeat;
  width: 25px;
  height: 20px;
  position: absolute;
  top: 15px;
  left: 15px;
}
.p-editor blockquote cite {
  display: block;
  font-size: 1.4rem;
  text-align: right;
  color: #fff;
  width: calc(100% + 100px);
  margin-left: -50px;
  padding: 10px 30px 10px;
  background: rgba(150, 165, 59, 0.7);
  border-radius: 0 0 20px 20px;
  position: relative;
}
.p-editor blockquote cite::before {
  content: "";
  background: url("../img/blockquote_deco.svg") center/contain no-repeat;
  width: 25px;
  height: 20px;
  position: absolute;
  bottom: calc(100% + 15px);
  right: 15px;
  transform: scaleX(-1);
}
.p-editor blockquote cite a {
  color: #fff;
}
.p-editor blockquote cite p:last-child {
  margin: 0;
}
.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 !important;
  float: left;
  margin-right: 10px;
  margin-bottom: 20px;
}
.p-editor .alignright {
  width: auto !important;
  float: right;
  margin-left: 10px;
  margin-bottom: 20px;
}
.p-editor .size-large {
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
}
.p-editor .size-medium {
  max-height: 490px;
}
.p-editor .size-thumbnail {
  max-height: 300px;
}
.p-editor table :is(th, td) {
  border-bottom: 1px solid #ccc;
  padding: 15px 20px;
  text-align: left;
}
.p-editor table th {
  color: #fff;
  background: #96A53B;
  font-weight: 600;
  border-color: #fff;
}
.p-editor table th::before {
  background: #fff;
}
.p-editor table tr *:nth-child(n+2) {
  position: relative;
}
.p-editor table tr *:nth-child(n+2)::before {
  content: "";
  width: 1px;
  height: 60%;
  background: #ccc;
  position: absolute;
  top: 20%;
  left: 0;
}
.p-editor table tr:has(th):has(td):first-child th {
  border-radius: 10px 10px 0 0;
}
.p-editor table tr:has(th):has(td) td:nth-child(2)::before {
  display: none;
}
.p-editor table tr:not(:has(td)) th:first-child {
  border-radius: 10px 0 0 0;
}
.p-editor table tr:not(:has(td)) th:last-child {
  border-radius: 0 10px 0 0;
}
.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;
}
.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: 3rem;
    margin: 60px 0 20px;
    padding-top: 100px;
    line-height: 1.3;
  }
  .p-editor h1::before {
    width: 100%;
    height: 80px;
    left: 0;
  }
  .p-editor h1 span {
    font-size: 1.5rem;
    padding: 0 50px;
  }
  .p-editor h1 span::before, .p-editor h1 span::after {
    width: 30px;
  }
  .p-editor h2 {
    gap: 0 10px;
    font-size: 2.8rem;
    margin: 60px 0 20px;
  }
  .p-editor h2 span {
    font-size: 1.3rem;
    min-width: 30px;
    padding: 0 35px 0 0;
  }
  .p-editor h2 span::before {
    width: 30px;
    top: 50%;
    left: auto;
    right: 0;
    translate: 0 -50%;
  }
  .p-editor h3 {
    font-size: 2.2rem;
    margin: 40px 0 15px;
    padding-bottom: 10px;
  }
  .p-editor h3::before {
    width: 30px;
  }
  .p-editor h4 {
    font-size: 2rem;
    padding-right: 30px;
    margin: 35px 0 15px;
  }
  .p-editor h4::before {
    width: 25px;
  }
  .p-editor h5 {
    margin-top: 20px;
  }
  .p-editor blockquote {
    padding: 35px 15px 0;
  }
  .p-editor blockquote::before {
    width: 20px;
    height: 15px;
    top: 10px;
  }
  .p-editor blockquote cite {
    width: calc(100% + 30px);
    margin: 30px 0 0 -15px;
  }
  .p-editor blockquote cite::before {
    width: 20px;
    height: 15px;
    bottom: calc(100% + 10px);
  }
  .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;
  }
  .p-editor .size-thumbnail {
    max-height: 200px;
  }
}
.p-editor {
  /* WYSIWYGエディタ内の u-grid */
}
.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/
 */
body:has([popover]:popover-open) .p-help_overlay {
  position: fixed;
  inset: 0;
  background: #000;
  opacity: 0.2;
  width: 100%;
  height: 100%;
  display: block;
}

.p-help_btn {
  display: inline-block;
  display: block;
  width: 30px;
  height: 30px;
  padding: 6px;
}
.p-help_btn span {
  display: grid;
  place-content: center;
  width: 100%;
  height: 100%;
  background-color: #DCAE82;
  color: #fff;
  border-radius: 50%;
  font-size: 1.3rem;
  line-height: 1;
}

.p-help_overlay {
  display: block;
  position: fixed;
  inset: 0;
  background: #000;
  z-index: 999;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: 0.3s;
}
.p-help_overlay.is-active {
  opacity: 0.2;
  visibility: visible;
  pointer-events: auto;
}

.p-help_contents {
  background-color: #fff;
  border: 1px solid #96A53B;
  border-radius: 5px;
  padding: 30px;
  position: fixed;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: 0.3s;
  width: calc(100% - 30px);
  max-width: 750px;
  max-height: calc(100% - 100px);
}
.p-help_contents:popover-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.p-help_close {
  display: block;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 5px;
  color: transparent;
}
.p-help_close span:first-child {
  display: block;
  border-radius: 50%;
  background-color: #96A53B;
  position: relative;
  width: 30px;
  height: 30px;
}
.p-help_close span:first-child::before, .p-help_close span:first-child::after {
  content: "";
  width: 15px;
  height: 1px;
  border-radius: 1px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  rotate: 45deg;
}
.p-help_close span:first-child::after {
  rotate: -45deg;
}

.p-help_grid {
  display: grid;
  grid-template: "img ttl" auto "img text" auto/40% 1fr;
  gap: 10px 20px;
}

.p-help_img {
  grid-area: img;
}

.p-help_ttl {
  grid-area: ttl;
  color: #96A53B;
  font-size: 1.7rem;
}

.p-help_text {
  grid-area: text;
}

.p-help_price {
  display: grid;
  grid-template-columns: auto 1fr;
}
.p-help_price dt, .p-help_price dd {
  border-top: solid 1px #ddd;
  padding: 5px 0;
}
.p-help_price dd {
  min-width: 140px;
  padding-left: 1.5rem;
  position: relative;
}
.p-help_price dd::before {
  content: "：";
  position: absolute;
  top: 5px;
  left: 0;
}

@media screen and (max-width: 768px) {
  .p-help_contents {
    padding: 20px;
  }
  .p-help_grid {
    grid-template: "ttl" "img" "text"/1fr;
  }
  .p-help_img {
    width: 90%;
    margin: 5px auto 10px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* スライド（splide.js用のクラス）
----- object/project/_p-slide ----- */
.p-splide {
  position: relative;
}
.p-splide .splide__arrow--prev {
  right: auto;
  left: -20px;
  rotate: 180deg;
}
.p-splide .splide__arrow {
  width: 40px;
  height: 40px;
  position: absolute;
  top: 50%;
  right: -20px;
  translate: 0 -50%;
  z-index: 1;
}
.p-splide .splide__arrow:hover::before {
  background-color: #b0c43d;
}
.p-splide .splide__arrow::before {
  content: "";
  display: block;
  background: #96A53B url("../img/ico-arrow-w.svg") center/8px no-repeat;
  width: 35px;
  height: 35px;
  border: 2px solid #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: 0.3s;
}
.p-splide .splide__arrow svg path {
  fill: transparent;
}
.p-splide .splide__pagination button {
  width: 15px;
  height: 15px;
  position: relative;
}
.p-splide .splide__pagination button::before {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  background: #96A53B;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: 0.3s;
}
.p-splide .splide__pagination button.is-active::before {
  background: #b0c43d;
}
.p-splide .splide__pagination button:not(.is-active):hover::before {
  background: #DCAE82;
}

/* 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.gap-50 {
  margin: 10px -25px 0;
}
.u-grid.gap-50 .col {
  padding: 0 25px;
}
.u-grid.gap-60 {
  margin: 10px -30px 0;
}
.u-grid.gap-60 .col {
  padding: 0 30px;
}
.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: 950px) {
  .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 {
    order: 1;
  }
  .order-md-2 {
    order: 2;
  }
  .order-md-3 {
    order: 3;
  }
  .order-md-4 {
    order: 4;
  }
  .order-md-5 {
    order: 5;
  }
  .order-md-6 {
    order: 6;
  }
}
.u-grid__02 {
  display: grid;
  grid-template: "g2-img g2-ttl" auto "g2-img g2-text" 1fr/55% 45%;
  margin-top: 80px;
}
.u-grid__02 .ttl {
  grid-area: g2-ttl;
}
.u-grid__02 .text {
  grid-area: g2-text;
}
.u-grid__02 .img {
  grid-area: g2-img;
}
.u-grid__02.__img-l .img {
  padding-right: 40px;
}
.u-grid__02.__img-l .ttl, .u-grid__02.__img-l .text {
  padding-left: 40px;
}
.u-grid__02.__img-r {
  grid-template: "g2-ttl g2-img" auto "g2-text g2-img" 1fr/45% 55%;
}
.u-grid__02.__img-r .img {
  padding-left: 40px;
}
.u-grid__02.__img-r .text {
  padding-right: 40px;
}
@media screen and (max-width: 768px) {
  .u-grid__02 {
    grid-template: "g2-ttl" auto "g2-img" auto "g2-text" auto/1fr !important;
    margin-top: 60px;
  }
  .u-grid__02 > * {
    padding: 0 !important;
  }
}

/* #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: 950px) {
  .u-dn-lg {
    display: none !important;
  }
}
@media screen and (max-width: 1080px) {
  .u-dn-xl {
    display: none !important;
  }
}
@media screen and (max-width: 800px) {
  .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: 950px) {
  .u-db-lg {
    display: block !important;
  }
}
@media screen and (max-width: 1080px) {
  .u-db-xl {
    display: block !important;
  }
}
@media screen and (max-width: 800px) {
  .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: 950px) {
  .u-di-lg {
    display: inline !important;
  }
}
@media screen and (max-width: 1080px) {
  .u-di-xl {
    display: inline !important;
  }
}
@media screen and (max-width: 800px) {
  .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: 950px) {
  .u-dib-lg {
    display: inline-block !important;
  }
}
@media screen and (max-width: 1080px) {
  .u-dib-xl {
    display: inline-block !important;
  }
}
@media screen and (max-width: 800px) {
  .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: 950px) {
  .u-df-lg {
    display: flex !important;
  }
}
@media screen and (max-width: 1080px) {
  .u-df-xl {
    display: flex !important;
  }
}
@media screen and (max-width: 800px) {
  .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: 950px) {
  .u-dg-lg {
    display: grid !important;
  }
}
@media screen and (max-width: 1080px) {
  .u-dg-xl {
    display: grid !important;
  }
}
@media screen and (max-width: 800px) {
  .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: 1110px;
  margin: 0 auto;
  padding: 0 15px;
}
.u-contents .u-contents_min {
  max-width: 950px;
  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: 980px;
  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
---------------------------------------------------------- */
/*doc
---
title: display
name: display
categories: [utility]
---

5px刻みで余白を調整します
*/
/* 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-md-0 {
    margin-top: 0px !important;
  }
  .u-mt-md-5 {
    margin-top: 5px !important;
  }
  .u-mt-md-10 {
    margin-top: 10px !important;
  }
  .u-mt-md-15 {
    margin-top: 15px !important;
  }
  .u-mt-md-20 {
    margin-top: 20px !important;
  }
  .u-mt-md-25 {
    margin-top: 25px !important;
  }
  .u-mt-md-30 {
    margin-top: 30px !important;
  }
  .u-mt-md-35 {
    margin-top: 35px !important;
  }
  .u-mt-md-40 {
    margin-top: 40px !important;
  }
  .u-mt-md-45 {
    margin-top: 45px !important;
  }
  .u-mt-md-50 {
    margin-top: 50px !important;
  }
  .u-mt-md-55 {
    margin-top: 55px !important;
  }
  .u-mt-md-60 {
    margin-top: 60px !important;
  }
  .u-mt-md-65 {
    margin-top: 65px !important;
  }
  .u-mt-md-70 {
    margin-top: 70px !important;
  }
  .u-mt-md-75 {
    margin-top: 75px !important;
  }
  .u-mt-md-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-md-0 {
    margin-bottom: 0px !important;
  }
  .u-mb-md-5 {
    margin-bottom: 5px !important;
  }
  .u-mb-md-10 {
    margin-bottom: 10px !important;
  }
  .u-mb-md-15 {
    margin-bottom: 15px !important;
  }
  .u-mb-md-20 {
    margin-bottom: 20px !important;
  }
  .u-mb-md-25 {
    margin-bottom: 25px !important;
  }
  .u-mb-md-30 {
    margin-bottom: 30px !important;
  }
  .u-mb-md-35 {
    margin-bottom: 35px !important;
  }
  .u-mb-md-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;
}

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

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

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

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

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

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

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

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

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

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

@media screen and (max-width: 768px) {
  .u-p-md-0 {
    padding: 0px !important;
  }
  .u-p-md-5 {
    padding: 5px !important;
  }
  .u-p-md-10 {
    padding: 10px !important;
  }
  .u-p-md-15 {
    padding: 15px !important;
  }
  .u-p-md-20 {
    padding: 20px !important;
  }
  .u-p-md-25 {
    padding: 25px !important;
  }
  .u-p-md-30 {
    padding: 30px !important;
  }
  .u-p-md-35 {
    padding: 35px !important;
  }
  .u-p-md-40 {
    padding: 40px !important;
  }
  .u-p-md-45 {
    padding: 45px !important;
  }
  .u-p-md-50 {
    padding: 50px !important;
  }
  .u-p-md-55 {
    padding: 55px !important;
  }
  .u-p-md-60 {
    padding: 60px !important;
  }
  .u-p-md-65 {
    padding: 65px !important;
  }
  .u-p-md-70 {
    padding: 70px !important;
  }
  .u-p-md-75 {
    padding: 75px !important;
  }
  .u-p-md-80 {
    padding: 80px !important;
  }
}
.u-pb-0 {
  padding-bottom: 0px !important;
}

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

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

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

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

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

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

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

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

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

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

.u-pb-55 {
  padding-bottom: 55px !important;
}

.u-pb-60 {
  padding-bottom: 60px !important;
}

.u-pb-65 {
  padding-bottom: 65px !important;
}

.u-pb-70 {
  padding-bottom: 70px !important;
}

.u-pb-75 {
  padding-bottom: 75px !important;
}

.u-pb-80 {
  padding-bottom: 80px !important;
}

.u-pb-85 {
  padding-bottom: 85px !important;
}

.u-pb-90 {
  padding-bottom: 90px !important;
}

.u-pb-95 {
  padding-bottom: 95px !important;
}

.u-pb-100 {
  padding-bottom: 100px !important;
}

@media screen and (max-width: 768px) {
  .u-pb-md-0 {
    padding-bottom: 0px !important;
  }
  .u-pb-md-5 {
    padding-bottom: 5px !important;
  }
  .u-pb-md-10 {
    padding-bottom: 10px !important;
  }
  .u-pb-md-15 {
    padding-bottom: 15px !important;
  }
  .u-pb-md-20 {
    padding-bottom: 20px !important;
  }
  .u-pb-md-25 {
    padding-bottom: 25px !important;
  }
  .u-pb-md-30 {
    padding-bottom: 30px !important;
  }
  .u-pb-md-35 {
    padding-bottom: 35px !important;
  }
  .u-pb-md-40 {
    padding-bottom: 40px !important;
  }
  .u-pb-md-45 {
    padding-bottom: 45px !important;
  }
  .u-pb-md-50 {
    padding-bottom: 50px !important;
  }
  .u-pb-md-55 {
    padding-bottom: 55px !important;
  }
  .u-pb-md-60 {
    padding-bottom: 60px !important;
  }
  .u-pb-md-65 {
    padding-bottom: 65px !important;
  }
  .u-pb-md-70 {
    padding-bottom: 70px !important;
  }
  .u-pb-md-75 {
    padding-bottom: 75px !important;
  }
  .u-pb-md-80 {
    padding-bottom: 80px !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-md0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .u-ps-md15 {
    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: #333 !important;
}

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

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

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

.u-bg-ac1 {
  background-color: #96A53B !important;
}

.u-bg-ac2 {
  background-color: #DCAE82 !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: #333 !important;
}

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

.u-text-ac1 {
  color: #96A53B !important;
}

.u-text-ac2 {
  color: #DCAE82 !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: 600 !important;
}

.u-text-w-black {
  font-weight: 700 !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-md-right {
    text-align: right !important;
  }
  .u-text-md-center {
    text-align: center !important;
  }
  .u-text-md-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.2rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxl {
    font-size: 2rem;
  }
}

.u-text-xxxl {
  font-size: 2.4rem;
}
@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-md-min { @include fw.fz('min');}
  .u-text-md-xxs { @include fw.fz('xxs');}
  .u-text-md-xs { @include fw.fz('xs');}
  .u-text-md-sm { @include fw.fz('sm');}
  .u-text-md-md { @include fw.fz('md');}
  .u-text-md-lg { @include fw.fz('lg');}
  .u-text-md-xl { @include fw.fz('xl');}
  .u-text-md-xxl { @include fw.fz('xxl');}
  .u-text-md-xxxl { @include fw.fz('xxxl');}
  .u-text-md-xxxxl { @include fw.fz('xxxxl');}
  .u-text-md-xxxxxl { @include fw.fz('xxxxxl');}
  .u-text-md-xxxxxxl { @include fw.fz('xxxxxxl');}
  .u-text-md-max { @include fw.fz('max');}
} */
.u-text_catch {
  display: block;
  margin-top: 30px;
  font-weight: 600;
  color: #96A53B;
  font-size: 1.8rem;
  text-align: center;
}

/* #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;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* caption 
----- object/u-caption ----- */
.u-caption {
  font-size: 1.3rem;
  text-align: center;
  color: #777;
}
.u-caption figcaption {
  margin-top: 5px;
}
.u-caption.__note {
  position: relative;
  color: #bbb;
}
.u-caption.__note figcaption {
  position: absolute;
  bottom: 5px;
  right: 10px;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 囲み 
----- object/u-wrapper ----- */
.u-wrapper {
  padding: 30px;
  border-radius: 20px;
  background: #FFFDEE;
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .u-wrapper {
    padding: 20px 15px;
    margin-top: 40px;
  }
}/*# sourceMappingURL=style.css.map */