@charset "UTF-8";
* {
  margin: 0;
  padding: 0;
}

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

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: normal;
  font-size: 1rem;
}

body {
  -webkit-background-size: 100% auto;
  -moz-background-size: 100% auto;
  -webkit-text-size-adjust: none;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  background: transparent;
  color: #333;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

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

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  border: none;
}

ul,
ol {
  list-style: none;
}

em,
i {
  font-style: normal;
}

/* フォントサイズ
-------------------------------------------*/
html {
  font-size: 62.5%;
}

@media screen and (max-width: 991px) {
  html {
    font-size: 72.5%;
  }
}

@media screen and (max-width: 1250px) and (min-width: 992px) {
  html {
    font-size: calc(100vw / 125);
  }
}

@media (max-width: 500px) {
  html {
    font-size: calc(100vw / 37.5);
    /*ビューポートが390pxを基準*/
  }
}

/* body
-------------------------------------------*/
body {
  text-align: left;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #333333;
  width: 100%;
  font-size: 1.4rem;
  font-family: "Zen Kaku Gothic New", serif;
}

body.is_hidden {
  overflow: hidden;
}

@media screen and (max-width: 991px) {
  body.is_hidden .header {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
}

.pageLoader {
  position: fixed;
  inset: 0;
  background: #faffea;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 100000;
  transition: opacity 1s ease, visibility 1s ease;
  transition-delay: 0.2s;
}

.pageLoader.is-hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@media screen and (min-width: 992px) {
  body {
    font-size: 1.6rem;
  }
}

.rocknroll {
  font-family: "RocknRoll One", sans-serif;
}

/* コンテンツ幅
-------------------------------------------*/
.inner {
  width: 100%;
  max-width: 1380px;
  margin: 0 auto;
  padding: 0 50px;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .inner {
    padding: 0 6%;
  }
}

.inner_s {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 50px;
}

@media screen and (max-width: 991px) {
  .inner_s {
    padding: 0 6%;
  }
}

/*------------------------------------
clearfix 
------------------------------------*/
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

.clearfix {
  display: block;
}

/* End IE-mac */
.clear {
  clear: both;
}

/*------------------------------------
リンク 
------------------------------------*/
a {
  color: #333333;
  text-decoration: none;
}

@media screen and (min-width: 992px) {
  /* ホバーアクション */
  .hover {
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
  }
  .hover:hover {
    opacity: 0.6 !important;
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}

/*------------------------------------
スマホ　非表示
------------------------------------*/
@media screen and (min-width: 992px) {
  .disp_sp {
    display: none !important;
  }
}

/*------------------------------------
PC　非表示
------------------------------------*/
@media screen and (max-width: 991px) {
  .disp_pc {
    display: none !important;
  }
}

/*------------------------------------
header
------------------------------------*/
.header {
  z-index: 999;
}

@media screen and (min-width: 992px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 110px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    background: #fff;
  }
  .header-pc {
    height: 100%;
    position: relative;
    z-index: 2;
  }
  .header-sp {
    display: none;
  }
  .header-logo {
    width: 20vw;
    max-width: 348px;
  }
  .header-logo a {
    display: block;
  }
  .header-wrap {
    padding: 0 35px 0 50px;
    width: 100%;
    margin: auto;
    display: flex;
    align-items: center;
    position: relative;
    height: 100%;
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) {
  .header-wrap {
    padding: 0 15px;
  }
}

@media screen and (min-width: 992px) {
  .header-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding: 0 15px 0 0;
    width: calc(100% - 85px);
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) and (min-width: 992px) {
  .header-main {
    width: calc(100% - 70px);
  }
}

@media screen and (min-width: 992px) and (max-width: 1200px) {
  .header-main {
    margin-right: 0;
    padding: 0 15px 0 0;
  }
}

@media screen and (min-width: 992px) {
  .header-gnav ul {
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }
  .header-gnav ul li + li {
    margin-left: 10px;
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) {
  .header-gnav ul li + li {
    margin-left: 15px;
  }
}

@media screen and (min-width: 992px) {
  .header-gnav ul li a {
    font-size: 1.6rem;
    font-weight: 700;
    padding: 10px 15px;
    letter-spacing: 0.16px;
    position: relative;
  }
  .header-gnav ul li a > span {
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0);
    top: -1em;
    color: #e07f1d;
    font-size: 1.4rem;
    white-space: nowrap;
  }
}

@media screen and (min-width: 992px) and (min-width: 1600px) {
  .header-gnav ul li a {
    font-size: 1.8rem;
  }
}

@media screen and (min-width: 992px) and (min-width: 992px) {
  .header-gnav ul li a {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header-gnav ul li a:hover {
    color: #008742;
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) {
  .header-gnav ul li a {
    padding: 10px 5px;
  }
}

@media screen and (min-width: 992px) and (max-width: 1250px) {
  .header-gnav ul li a {
    font-size: 1.28vw;
  }
}

@media screen and (min-width: 992px) {
  .header-gnav ul li a sup {
    vertical-align: text-top;
    line-height: 1;
  }
  .header-gnav ul li.nav-contact {
    margin-left: 20px;
  }
}

@media screen and (min-width: 992px) and (max-width: 1200px) {
  .header-gnav ul li.nav-contact {
    margin-left: 15px;
  }
}

@media screen and (min-width: 992px) {
  .header-gnav ul li.nav-contact a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #e07f1d;
    border: 1px solid #e07f1d;
    color: #fff;
    border-radius: 50px;
    font-size: 1.6rem;
    line-height: 1.4;
    padding: 10px;
    margin: auto;
    width: 250px;
    height: 50px;
    text-align: center;
  }
}

@media screen and (min-width: 992px) and (min-width: 1601px) {
  .header-gnav ul li.nav-contact a {
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
  }
  .header-gnav ul li.nav-contact a:hover {
    background: #fff;
    color: #e07f1d;
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) {
  .header-gnav ul li.nav-contact a {
    width: 18vw;
  }
}

@media screen and (min-width: 992px) and (max-width: 1250px) {
  .header-gnav ul li.nav-contact a {
    font-size: 1.28vw;
  }
}

@media screen and (min-width: 992px) and (max-width: 1600px) {
  .header-gnav ul li.nav-contact a {
    width: 85px;
    height: 85px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
    background: url(../img/img-common/bg_mail_pc.webp) left center no-repeat;
    background-size: 85px;
    padding: 0;
    border: none;
  }
  .header-gnav ul li.nav-contact a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../img/img-common/bg_mail_pc_on.webp) left center no-repeat;
    background-size: 85px;
    opacity: 0;
    transition: opacity 0.4s ease;
  }
}

@media screen and (min-width: 992px) and (max-width: 1600px) and (max-width: 1500px) {
  .header-gnav ul li.nav-contact a::before {
    background-size: 70px;
  }
}

@media screen and (min-width: 992px) and (max-width: 1600px) {
  .header-gnav ul li.nav-contact a:hover::before {
    opacity: 1;
  }
  .header-gnav ul li.nav-contact a b {
    display: none;
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) {
  .header-gnav ul li.nav-contact a {
    width: 70px;
    height: 70px;
    background-size: 70px;
  }
  .header-gnav ul li.nav-contact a:hover {
    background-size: 70px;
  }
}

@media screen and (min-width: 992px) {
  .header-menu {
    width: 85px;
    z-index: 999;
    height: 85px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) {
  .header-menu {
    width: 70px;
    height: 70px;
  }
}

@media screen and (min-width: 992px) {
  .header-menu .js_pc_menu {
    width: 100%;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .header-menu .js_pc_menu::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin: auto;
    width: 85px;
    height: 85px;
    background: #fff;
    border-radius: 50%;
    -webkit-transition: opacity 0.4s ease;
    transition: opacity 0.4s ease;
    border: 1px solid #69af8b;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
  }
}

@media screen and (min-width: 992px) and (max-width: 1500px) {
  .header-menu .js_pc_menu::after {
    width: 70px;
    height: 70px;
  }
}

@media screen and (min-width: 992px) {
  .header-menu .js_pc_menu.active::after {
    opacity: 1;
  }
  .header-menu .js_pc_menu.active img {
    width: 48px;
  }
  .header-menu .js_pc_menu img {
    width: 42px;
    display: block;
    position: relative;
    z-index: 2;
  }
}

@media screen and (min-width: 992px) and (min-width: 992px) {
  .header-menu .js_pc_menu {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
}

@media screen and (min-width: 992px) {
  .header-menu-bg {
    position: fixed;
    top: 0;
    visibility: hidden;
    overflow-y: scroll;
    opacity: 0;
    right: 0;
    left: 0;
    left: 0;
    bottom: 0;
    background: #fff;
    width: 100%;
    transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
    -webkit-overflow-scrolling: touch;
    z-index: 100;
    background: url(../img/common/bg_menu.webp) center center no-repeat;
    background-size: cover;
  }
  .header-menu-bg.is_active {
    visibility: visible;
    opacity: 1;
  }
  .header-menu-wrap {
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 20px 0 0;
  }
  .header-menu-inner {
    width: 100%;
    max-width: 1260px;
    padding: 0 50px 90px;
    min-height: calc(100vh - 30px);
    margin: auto;
    position: relative;
    z-index: 2;
  }
  .header-menu-content {
    padding-top: 60px;
    display: flex;
    justify-content: space-between;
  }
  .header-menu-logo {
    display: flex;
    justify-content: flex-start;
    margin-top: 50px;
  }
  .header-menu-links {
    position: absolute;
    right: 50px;
    bottom: 95px;
  }
  .header-menu-btn {
    width: 200px;
  }
  .header-menu-btn li + li {
    margin-top: 15px;
  }
  .header-menu-btn li a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #34373a;
    color: #fff;
    border-radius: 50px;
    font-size: 1.6rem;
    line-height: 1.1;
    padding: 10px;
    margin: auto;
    width: 100%;
    height: 55px;
    font-weight: 400;
    text-align: center;
  }
}

@media screen and (min-width: 992px) and (max-width: 991px) {
  .header-menu-btn li a {
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 992px) and (min-width: 992px) {
  .header-menu-btn li a {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header-menu-btn li a > span {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header-menu-btn li a:hover {
    background: #fff;
  }
}

@media screen and (min-width: 992px) {
  .header-menu-btn li.nav-online a {
    border: 1px solid #34373a;
  }
  .header-menu-btn li.nav-online a > span {
    background: url(../img/common/icon_blank.svg) right center no-repeat;
    background-size: 16px;
    padding-right: 25px;
    min-height: 16px;
    font-family: "Outfit", sans-serif;
  }
}

@media screen and (min-width: 992px) and (min-width: 992px) {
  .header-menu-btn li.nav-online a:hover {
    color: #34373a;
    background: #fff;
  }
  .header-menu-btn li.nav-online a:hover > span {
    background-image: url(../img/common/icon_blank_on.svg);
  }
}

@media screen and (min-width: 992px) {
  .header-menu-btn li.nav-anniversary a {
    background: #26499c;
    border: 1px solid #26499c;
  }
}

@media screen and (min-width: 992px) and (min-width: 992px) {
  .header-menu-btn li.nav-anniversary a:hover {
    background: #fff;
    color: #26499c;
  }
}

@media screen and (min-width: 992px) {
  .header-menu-search {
    width: 25%;
  }
  .header-menu-search .search-box input {
    height: 40px;
    line-height: 40px;
    background-color: #fff;
  }
  .header-menu-search .search-box button {
    width: 20px;
    height: 20px;
    right: 10px;
  }
  .header-menu-sns {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-top: 60px;
  }
  .header-menu-sns li + li {
    margin-left: 30px;
  }
  .header-menu-sns li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: background-image 0.3s ease;
  }
  .header-menu-sns li a.icon-search {
    background-image: url(../img/common/icon_search.svg);
  }
  .header-menu-sns li a.icon-search:hover {
    background-image: url(../img/common/icon_search_on.svg);
  }
  .header-menu-sns li a.icon-insta {
    background-image: url(../img/common/icon_insta.svg);
  }
  .header-menu-sns li a.icon-insta:hover {
    background-image: url(../img/common/icon_insta_on.svg);
  }
  .header-menu-sns li a.icon-facebook {
    background-image: url(../img/common/icon_facebook.svg);
  }
  .header-menu-sns li a.icon-facebook:hover {
    background-image: url(../img/common/icon_facebook_on.svg);
  }
  .header-menu-sns li a.icon-x {
    background-image: url(../img/common/icon_x.svg);
  }
  .header-menu-sns li a.icon-x:hover {
    background-image: url(../img/common/icon_x_on.svg);
  }
  .header-menu-nav {
    width: 70%;
  }
  .header-menu-nav .flex {
    display: flex;
    flex-wrap: wrap;
  }
  .header-menu-nav .flex + .flex {
    margin-top: 40px;
  }
  .header-menu-nav .flex .item {
    width: 33%;
  }
  .header-menu-nav .flex .item ul li > a,
  .header-menu-nav .flex .item ul li > span {
    color: #fff;
    padding: 5px 0;
    display: table;
  }
}

@media screen and (min-width: 992px) and (min-width: 992px) {
  .header-menu-nav .flex .item ul li > a {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header-menu-nav .flex .item ul li > a:hover {
    opacity: 0.6;
  }
}

@media screen and (min-width: 992px) {
  .header-menu-nav .flex .item ul.menu-l li > a,
  .header-menu-nav .flex .item ul.menu-l li > span {
    font-family: "Outfit", sans-serif;
    font-weight: 600;
    font-size: 2rem;
    letter-spacing: 0.1em;
  }
  .header-menu-nav .flex .item ul.menu-l + .menu-s {
    margin-top: 10px;
  }
  .header-menu-nav .flex .item ul.menu-s li > a,
  .header-menu-nav .flex .item ul.menu-s li > span {
    font-size: 1.6rem;
  }
  .header-menu-close {
    display: flex;
    justify-content: flex-end;
  }
  .header-menu-close .js_menu_close {
    cursor: pointer;
  }
  .header-menu-foot {
    position: absolute;
    left: 50px;
    bottom: 25px;
  }
  .header-menu-foot ul {
    display: flex;
    align-items: center;
  }
  .header-menu-foot ul li {
    color: #5c5d5e;
  }
  .header-menu-foot ul li + li {
    margin-left: 50px;
  }
  .header-menu-foot ul li a {
    color: #5c5d5e;
  }
}

@media screen and (min-width: 992px) and (min-width: 992px) {
  .header-menu-foot ul li a:hover {
    text-decoration: underline;
  }
}

@media screen and (min-width: 992px) {
  .header-menu-symbol {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: url(../img/common/bg_menu_bottom.webp) center bottom no-repeat;
    background-size: contain;
    pointer-events: none;
  }
}

@media screen and (max-width: 991px) {
  .header {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    height: 70px;
    background: #fff;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
  }
  .header-pc {
    display: none;
  }
  .header-sp {
    height: 100%;
    position: relative;
    z-index: 2;
  }
  .header-sp-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding: 0 3%;
    margin: auto;
    z-index: 101;
    position: relative;
  }
  .header-sp-logo {
    height: 41px;
  }
  .header-sp-logo a {
    display: block;
  }
  .header-sp-logo a img {
    height: 41px;
  }
  .header-sp-mail {
    width: 55px;
    margin-left: auto;
    margin-right: 8px;
  }
  .header-sp-menu {
    width: 55px;
    height: 55px;
    border: 1px solid #69af8b;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .header-sp-menu img {
    width: 33px;
  }
  .header-sp-menu .js_sp_menu.active img {
    width: 37px;
  }
  .header #sp_menu_block {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    bottom: 0;
    opacity: 0;
    pointer-events: none;
    -webkit-transition: all 0.5s ease 0s;
    transition: all 0.5s ease 0s;
    background: #fff;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: url(../img/common/bg_menu_sp.webp) center center no-repeat;
    background-size: cover;
  }
  .header #sp_menu_block.is_active {
    opacity: 1;
    pointer-events: all;
  }
  .header .sp-menu {
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 90px 0 20px;
  }
  .header .sp-menu-close {
    display: flex;
    justify-content: flex-end;
    width: 90%;
    margin: auto;
    position: fixed;
    left: 0;
    right: 0;
    top: 10px;
    z-index: 9999;
  }
  .header .sp-menu-main {
    width: 80%;
    margin: 20px auto 0;
    position: relative;
    z-index: 2;
  }
  .header .sp-menu-main .flex {
    display: flex;
    justify-content: space-between;
  }
  .header .sp-menu-symbol {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: url(../img/common/bg_menu_bottom_sp.webp) center bottom no-repeat;
    background-size: contain;
    pointer-events: none;
  }
  .header .sp-menu-nav + .sp-menu-nav {
    margin-top: 20px;
  }
  .header .sp-menu-nav ul li + li {
    margin-top: 5px;
  }
  .header .sp-menu-nav ul li > a,
  .header .sp-menu-nav ul li span {
    color: #fff;
    display: table;
    padding: 3px 0;
  }
}

@media screen and (max-width: 991px) and (min-width: 992px) {
  .header .sp-menu-nav ul li > a,
  .header .sp-menu-nav ul li span {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header .sp-menu-nav ul li > a:hover,
  .header .sp-menu-nav ul li span:hover {
    opacity: 0.6;
  }
}

@media screen and (max-width: 991px) {
  .header .sp-menu-nav .menu-l li > a,
  .header .sp-menu-nav .menu-l li > span {
    font-family: "Outfit", sans-serif;
    font-weight: 600;
    font-size: 1.5rem;
    letter-spacing: 0.1em;
  }
  .header .sp-menu-nav .menu-l + .menu-s {
    margin-top: 5px;
  }
  .header .sp-menu-nav .menu-s li > a,
  .header .sp-menu-nav .menu-s li > span {
    font-size: 1.2rem;
  }
  .header .sp-menu-search {
    margin-top: 30px;
  }
  .header .sp-menu-search .search-box input {
    height: 40px;
    line-height: 40px;
    background-color: #fff;
  }
  .header .sp-menu-search .search-box button {
    width: 20px;
    height: 20px;
    right: 10px;
  }
  .header .sp-menu-btn {
    max-width: 200px;
    margin: 50px auto 0;
    position: relative;
    z-index: 2;
  }
  .header .sp-menu-btn ul li a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #34373a;
    color: #fff;
    border-radius: 50px;
    font-size: 1.6rem;
    line-height: 1.1;
    padding: 10px;
    margin: auto;
    width: 100%;
    font-weight: 400;
    text-align: center;
  }
  .header .sp-menu-btn ul li.nav-online {
    width: 90%;
    margin: 20px auto 0;
  }
  .header .sp-menu-btn ul li.nav-online a {
    border: 1px solid #34373a;
    height: 45px;
  }
  .header .sp-menu-btn ul li.nav-online a > span {
    background: url(../img/common/icon_blank.svg) right center no-repeat;
    background-size: 16px;
    padding-right: 25px;
    min-height: 16px;
    font-family: "Outfit", sans-serif;
  }
}

@media screen and (max-width: 991px) and (min-width: 992px) {
  .header .sp-menu-btn ul li.nav-online a:hover {
    color: #34373a;
    background: #fff;
  }
  .header .sp-menu-btn ul li.nav-online a:hover > span {
    background-image: url(../img/common/icon_blank_on.svg);
  }
}

@media screen and (max-width: 991px) {
  .header .sp-menu-btn ul li.nav-anniversary a {
    background: #26499c;
    border: 1px solid #26499c;
    height: 55px;
  }
}

@media screen and (max-width: 991px) and (min-width: 992px) {
  .header .sp-menu-btn ul li.nav-anniversary a:hover {
    background: #fff;
    color: #26499c;
  }
}

@media screen and (max-width: 991px) {
  .header .sp-menu-bottom {
    position: relative;
    z-index: 2;
    margin: 50px auto 0;
    width: 90%;
  }
  .header .sp-menu-bottom .flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .header .sp-menu-logo {
    width: 140px;
  }
  .header .sp-menu-sns {
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }
  .header .sp-menu-sns li + li {
    margin-left: 30px;
  }
  .header .sp-menu-sns li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: background-image 0.3s ease;
  }
  .header .sp-menu-sns li a.icon-search {
    background-image: url(../img/common/icon_search.svg);
  }
  .header .sp-menu-sns li a.icon-search:hover {
    background-image: url(../img/common/icon_search_on.svg);
  }
  .header .sp-menu-sns li a.icon-insta {
    background-image: url(../img/common/icon_insta.svg);
  }
  .header .sp-menu-sns li a.icon-insta:hover {
    background-image: url(../img/common/icon_insta_on.svg);
  }
  .header .sp-menu-sns li a.icon-facebook {
    background-image: url(../img/common/icon_facebook.svg);
  }
  .header .sp-menu-sns li a.icon-facebook:hover {
    background-image: url(../img/common/icon_facebook_on.svg);
  }
  .header .sp-menu-sns li a.icon-x {
    background-image: url(../img/common/icon_x.svg);
  }
  .header .sp-menu-sns li a.icon-x:hover {
    background-image: url(../img/common/icon_x_on.svg);
  }
  .header .sp-menu-foot {
    margin-top: 20px;
    padding-top: 10px;
    border-top: 1px solid #5c5d5e;
  }
  .header .sp-menu-foot ul {
    display: flex;
    justify-content: space-between;
  }
  .header .sp-menu-foot ul li {
    color: #5c5d5e;
    font-size: 1rem;
    letter-spacing: 0.01em;
  }
  .header .sp-menu-foot ul li a {
    color: #5c5d5e;
    font-size: 1rem;
    text-decoration: underline;
  }
  .header .btn-arrow {
    margin-top: 40px;
    width: 100%;
    background: #e72e35;
    box-shadow: 0 3px 0 0 #b7161f;
    border: 1px solid #b7161f;
    color: #fff;
    font-size: 1.6rem;
  }
  .header .btn-arrow::after {
    border-color: #fff;
  }
  .header .btn-arrow > span {
    position: relative;
    padding-left: 25px;
  }
  .header .btn-arrow > span::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    background: url(../../../img/common/icon_mail_w.svg) left center no-repeat;
    background-size: contain;
    width: 18px;
    height: 100%;
  }
}

.header .btn-arrow {
  display: flex;
  justify-content: center;
  margin: auto;
  max-width: 320px;
  width: 80%;
  font-size: 1.5rem;
  line-height: 1.4;
  font-weight: 700;
  border: 1px solid #dedede;
  background: #fff;
  padding: 15px;
  border-radius: 10px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  box-shadow: 0 3px 0 0 #dedede;
}

.header .btn-arrow::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 25px;
  margin: auto;
  width: 8px;
  height: 8px;
  border-top: 2px solid #e72e35;
  border-right: 2px solid #e72e35;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.header .btn-arrow.--blank::after {
  content: none;
}

.header .btn-arrow.--blank::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 25px;
  margin: auto;
  width: 12px;
  height: 12px;
  background: url(../img/common/icon_blank_red.svg) left center no-repeat;
  background-size: contain;
  border: none;
}

@media screen and (max-width: 991px) {
  .header .btn-arrow {
    font-size: 1.5rem;
  }
}

@media screen and (min-width: 992px) {
  .header .btn-arrow {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header .btn-arrow::after {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header .btn-arrow:hover {
    border-color: #e72e35;
    background: #e72e35;
    color: #fff;
    box-shadow: 0 3px 0 0 #b7161f;
  }
  .header .btn-arrow:hover::after {
    border-color: #fff;
  }
  .header .btn-arrow.--blank::before {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .header .btn-arrow.--blank:hover::before {
    background-image: url(../img/common/icon_blank_w.svg);
  }
}

.home .header {
  background: none;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.home .header.is_active {
  background: #fff;
}

.home .main {
  padding-top: 0;
}

.home.is_hidden .header {
  background: #fff;
}

.pc-hamburger {
  position: fixed;
  top: 0;
  visibility: hidden;
  opacity: 0;
  right: 0;
  left: 0;
  left: 0;
  bottom: 0;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  width: 100%;
  transition: all 0.4s ease;
  -webkit-transition: all 0.4s ease;
  clip-path: circle(0 at 100% 0);
  -webkit-clip-path: circle(0 at 100% 0);
  -webkit-overflow-scrolling: touch;
  z-index: 100;
  pointer-events: none;
}

@media screen and (max-width: 991px) {
  .pc-hamburger {
    background-size: 50px;
  }
}

.pc-hamburger.active {
  visibility: visible;
  opacity: 1;
  clip-path: circle(150% at 100% 0);
  -webkit-clip-path: circle(150% at 100% 0);
  pointer-events: all;
}

.pc-hamburger.active .pc-hamburger-main,
.pc-hamburger.active .pc-hamburger-image {
  opacity: 1;
  transition-delay: 0.5s;
}

.pc-hamburger-image {
  position: absolute;
  left: 0;
  bottom: 0;
  max-width: 734px;
  width: 40vw;
  opacity: 0;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.pc-hamburger-main {
  max-width: 1480px;
  padding: 100px 50px 50px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 30% 1fr;
  gap: 160px;
  place-items: start left;
  opacity: 0;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

@media screen and (max-width: 1200px) {
  .pc-hamburger-main {
    gap: 10vw;
  }
}

.pc-hamburger-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.pc-hamburger-right {
  width: 100%;
}

.pc-hamburger-sns {
  margin-top: 65px;
}

.pc-hamburger-sns ul {
  display: flex;
  align-items: center;
  gap: 30px;
}

.pc-hamburger-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  place-items: start left;
  margin-top: -25px;
}

@media screen and (max-width: 1450px) {
  .pc-hamburger-nav {
    gap: 4vw;
  }
}

.pc-hamburger-nav ul {
  width: 100%;
}

.pc-hamburger-nav ul li {
  max-width: 340px;
}

.pc-hamburger-nav ul li a {
  padding: 30px 0;
  display: flex;
  align-items: center;
  color: #fff;
  font-size: 2rem;
  line-height: 1.5;
  font-weight: 700;
  position: relative;
  background-image: linear-gradient(to right, rgba(255, 255, 255, 0.6) 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.pc-hamburger-nav ul li a:hover {
  opacity: 0.7;
}

.pc-hamburger-nav ul li a:hover::after {
  right: 5px;
}

@media screen and (max-width: 1450px) {
  .pc-hamburger-nav ul li a {
    font-size: 1.3793103448275863vw;
    padding: 25px 0;
  }
}

.pc-hamburger-nav ul li a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 15px;
  margin: auto;
  aspect-ratio: 15 / 8;
  width: 15px;
  background: url(../img/img-common/arrow_right_w.svg) left center no-repeat;
  background-size: contain;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.pc-hamburger-nav ul li a.--external::after {
  transform: rotate(-45deg);
}

.pc-hamburger-nav ul li a.--external > span {
  font-size: 1.4rem;
  padding-left: 0.3em;
}

.pc-hamburger-cv .flex {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  place-items: start left;
  margin-top: 60px;
}

@media screen and (max-width: 1450px) {
  .pc-hamburger-cv .flex {
    gap: 4vw;
  }
}

.pc-hamburger-cv .flex .item {
  width: 100%;
}

.pc-hamburger-cv .flex .item:nth-child(1) {
  max-width: 340px;
}

.pc-hamburger-cv .flex .item:nth-child(1) dl {
  margin-left: 13px;
}

.pc-hamburger-cv .flex .item:nth-child(1) dl dd {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.pc-hamburger-cv .flex dl dt {
  margin-bottom: 25px;
}

.pc-hamburger-cv .flex dl dd a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 75px;
  background-color: #e07f1d;
  border: 1px solid #e07f1d;
  color: #fff;
  border-radius: 50px;
  font-size: 2.2rem;
  line-height: 1.4;
  padding: 0 30px;
  margin: auto;
  width: 100%;
  max-width: 380px;
  text-align: center;
  position: relative;
  font-family: "RocknRoll One", sans-serif;
}

@media screen and (max-width: 1450px) {
  .pc-hamburger-cv .flex dl dd a {
    font-size: 1.5172413793103448vw;
  }
}

.pc-hamburger-cv .flex dl dd a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  background: url(../img/img-common/arrow_right_w.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 15 / 9;
  width: 15px;
}

.pc-hamburger-cv .flex dl dd a > span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

@media screen and (min-width: 992px) {
  .pc-hamburger-cv .flex dl dd a {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .pc-hamburger-cv .flex dl dd a::before {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .pc-hamburger-cv .flex dl dd a:hover {
    background-color: #fff;
    color: #e07f1d;
  }
  .pc-hamburger-cv .flex dl dd a:hover::before {
    background-image: url(../img/img-common/arrow_right_choco.svg);
  }
}

.pc-hamburger-cv .flex .tel {
  padding-left: 5px;
  white-space: nowrap;
}

.pc-hamburger-cv .flex .tel .t1 {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  line-height: 1;
  color: #fff;
  font-weight: 700;
}

.pc-hamburger-cv .flex .tel .t1 > span {
  font-size: 2.2rem;
}

@media screen and (max-width: 1450px) {
  .pc-hamburger-cv .flex .tel .t1 > span {
    font-size: 1.5172413793103448vw;
  }
}

.pc-hamburger-cv .flex .tel .t1 > b {
  font-size: 3.8rem;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 1450px) {
  .pc-hamburger-cv .flex .tel .t1 > b {
    font-size: 2.6206896551724137vw;
  }
}

.pc-hamburger-cv .flex .tel .t2 {
  text-align: right;
  font-size: 1.4rem;
  font-weight: 500;
  color: #fff;
  margin-top: 5px;
  margin-right: -0.4em;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 1450px) {
  .pc-hamburger-cv .flex .tel .t2 {
    font-size: 0.9655172413793104vw;
  }
}

.sp-hamburger {
  position: fixed;
  top: 0;
  visibility: hidden;
  opacity: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: scroll;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  width: 100%;
  transition: all 0.4s ease;
  -webkit-transition: all 0.4s ease;
  clip-path: circle(0 at 100% 0);
  -webkit-clip-path: circle(0 at 100% 0);
  -webkit-overflow-scrolling: touch;
  z-index: 100;
  pointer-events: none;
}

@media screen and (max-width: 991px) {
  .sp-hamburger {
    background-repeat: 50px;
  }
}

.sp-hamburger.active {
  top: 70px;
  visibility: visible;
  opacity: 1;
  pointer-events: all;
  clip-path: circle(150% at 100% 0);
  -webkit-clip-path: circle(150% at 100% 0);
}

.sp-hamburger.active .sp-hamburger-main {
  opacity: 1;
  transition-delay: 0.5s;
}

.sp-hamburger-main {
  padding: 5px 6% 5%;
  opacity: 0;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

.sp-hamburger-nav ul {
  width: 100%;
}

.sp-hamburger-nav ul li a {
  padding: 15px 0;
  display: flex;
  align-items: center;
  color: #fff;
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 700;
  position: relative;
  background-image: linear-gradient(to right, rgba(255, 255, 255, 0.6) 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

.sp-hamburger-nav ul li a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 15px;
  margin: auto;
  aspect-ratio: 15 / 8;
  width: 15px;
  background: url(../img/img-common/arrow_right_w.svg) left center no-repeat;
  background-size: contain;
}

.sp-hamburger-nav ul li a.--external::after {
  transform: rotate(-45deg);
}

.sp-hamburger-nav ul li a.--external > span {
  font-size: 1.2rem;
  padding-left: 0.3em;
}

.sp-hamburger-cv {
  margin-top: 40px;
}

.sp-hamburger-cv ul {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.sp-hamburger-cv ul li a {
  height: 75px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sp-hamburger-cv ul li a.--contact {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 70px;
  background-color: #e07f1d;
  border: 1px solid #e07f1d;
  color: #fff;
  border-radius: 50px;
  font-size: 1.8rem;
  line-height: 1.4;
  padding: 0 30px;
  letter-spacing: 0.03em;
  margin: auto;
  width: 100%;
  max-width: 380px;
  text-align: center;
  position: relative;
  font-family: "RocknRoll One", sans-serif;
  background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><filter id="noiseFilter"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23noiseFilter)" opacity="0.5"/></svg>');
  background-blend-mode: multiply;
}

.sp-hamburger-cv ul li a.--contact::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  background: url(../img/img-common/arrow_right_w.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 15 / 9;
  width: 18px;
}

.sp-hamburger-cv ul li a.--contact > span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.sp-hamburger-cv ul li a.--tel {
  background-color: #f2f2f2;
  border-radius: 50px;
  overflow: hidden;
  max-width: 380px;
  margin: auto;
  background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><filter id="noiseFilter"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23noiseFilter)" opacity="0.5"/></svg>');
}

.sp-hamburger-cv ul li a.--tel img {
  position: relative;
  z-index: 2;
  display: block;
  max-width: 100%;
  height: auto;
}

.sp-hamburger-sns {
  margin-top: 40px;
}

.sp-hamburger-sns ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
}

.sp-hamburger-close {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}

.sp-hamburger-close > div {
  font-size: 1.6rem;
  color: #fff;
  position: relative;
  padding: 0 15px;
  font-weight: 700;
}

.sp-hamburger-close > div::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 1px;
  height: 1em;
  background: #fff;
}

.sp-hamburger-close > div::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 1px;
  height: 1em;
  background: #fff;
}

.footer {
  padding: 0 0 30px;
  position: relative;
  background: url(../img/img-common/bg_footer.webp) center top 1px no-repeat;
  background-size: cover;
  position: relative;
  z-index: 998;
  margin-top: -10px;
  /* フロート用キーフレーム */
}

@media screen and (max-width: 991px) {
  .footer {
    background-image: url(../img/img-common/bg_footer_sp.webp);
    padding: 0 0 20px;
  }
}

.footer-wave-container {
  width: 100%;
  min-width: 1918px;
  aspect-ratio: 1918 / 125;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1918 125' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1844.8 -1372.83C1812.49 -1373.51 1780.25 -1370.11 1748.27 -1364.4C1679.3 -1352.1 1588.16 -1377.51 1519.05 -1368.25C1422.85 -1355.32 1326.63 -1326.16 1229.83 -1324.89C1134.49 -1323.62 1040.34 -1344.5 945.971 -1356C830.969 -1370.02 718.708 -1356.45 603.11 -1356.45C480.412 -1356.45 350.707 -1356.51 229.986 -1379.87C137.98 -1397.68 32.6294 -1435.01 -60.3299 -1411.4C-294.456 -1351.92 -292.311 -1099.91 -269.864 -861.245C-258.14 -736.661 -258.878 -614.325 -269.625 -489.474C-280.968 -357.584 -314.044 -204.102 -295.433 -70.3481C-251.992 241.822 270.663 91.1796 437.757 71.155C581.378 53.9403 726.929 83.1342 868.953 108.69C1027.16 137.174 1164.75 83.4892 1318.21 51.4262C1436.41 26.7283 1561.06 47.3739 1680.64 55.4489C1767.19 61.3054 1877.71 88.1035 1960.95 47.936C2062.75 -1.19375 2119.84 -160.562 2107.28 -290.204C2099.04 -375.213 2055.07 -450.549 2049.23 -538.663C2044.44 -610.953 2048.81 -688.153 2055.74 -758.963C2078.45 -990.355 2163.64 -1230.71 1942.98 -1350.5C1911.59 -1367.54 1882.05 -1372.06 1844.78 -1372.83H1844.8Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 1918 125' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1844.8 -1372.83C1812.49 -1373.51 1780.25 -1370.11 1748.27 -1364.4C1679.3 -1352.1 1588.16 -1377.51 1519.05 -1368.25C1422.85 -1355.32 1326.63 -1326.16 1229.83 -1324.89C1134.49 -1323.62 1040.34 -1344.5 945.971 -1356C830.969 -1370.02 718.708 -1356.45 603.11 -1356.45C480.412 -1356.45 350.707 -1356.51 229.986 -1379.87C137.98 -1397.68 32.6294 -1435.01 -60.3299 -1411.4C-294.456 -1351.92 -292.311 -1099.91 -269.864 -861.245C-258.14 -736.661 -258.878 -614.325 -269.625 -489.474C-280.968 -357.584 -314.044 -204.102 -295.433 -70.3481C-251.992 241.822 270.663 91.1796 437.757 71.155C581.378 53.9403 726.929 83.1342 868.953 108.69C1027.16 137.174 1164.75 83.4892 1318.21 51.4262C1436.41 26.7283 1561.06 47.3739 1680.64 55.4489C1767.19 61.3054 1877.71 88.1035 1960.95 47.936C2062.75 -1.19375 2119.84 -160.562 2107.28 -290.204C2099.04 -375.213 2055.07 -450.549 2049.23 -538.663C2044.44 -610.953 2048.81 -688.153 2055.74 -758.963C2078.45 -990.355 2163.64 -1230.71 1942.98 -1350.5C1911.59 -1367.54 1882.05 -1372.06 1844.78 -1372.83H1844.8Z' fill='black'/%3E%3C/svg%3E");
  /* マスクを要素全体に引き伸ばす */
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  /* フッター本体との隙間対策 */
  margin-bottom: -1px;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  margin-bottom: 200px;
}

@media screen and (max-width: 991px) {
  .footer-wave-container {
    margin-bottom: 150px;
    aspect-ratio: 390 / 80;
    min-width: 100%;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 390 80' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M745.21 -752.345C727.257 -752.723 709.344 -750.833 691.576 -747.661C653.26 -740.823 602.618 -754.942 564.222 -749.798C510.773 -742.615 457.311 -726.408 403.531 -725.702C350.559 -724.995 298.249 -736.599 245.819 -742.993C181.924 -750.784 119.551 -743.239 55.3252 -743.239C-12.8464 -743.239 -84.9105 -743.272 -151.983 -756.257C-203.102 -766.152 -261.635 -786.895 -313.283 -773.779C-443.364 -740.725 -442.172 -600.684 -429.701 -468.056C-423.187 -398.825 -423.597 -330.842 -429.568 -261.463C-435.87 -188.172 -454.247 -102.882 -443.907 -28.5549C-419.771 144.918 -129.383 61.206 -36.5456 50.0783C43.2505 40.5122 124.119 56.7352 203.028 70.9365C290.927 86.7651 367.373 56.9325 452.638 39.1151C518.307 25.3904 587.564 36.8632 654.001 41.3504C702.088 44.6049 763.494 59.4966 809.741 37.1756C866.301 9.87418 898.023 -78.6868 891.046 -150.729C886.465 -197.968 862.038 -239.832 858.794 -288.797C856.133 -328.969 858.556 -371.868 862.408 -411.218C875.026 -539.802 922.358 -673.367 799.758 -739.936C782.321 -749.403 765.904 -751.918 745.197 -752.345H745.21Z' fill='black'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 390 80' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M745.21 -752.345C727.257 -752.723 709.344 -750.833 691.576 -747.661C653.26 -740.823 602.618 -754.942 564.222 -749.798C510.773 -742.615 457.311 -726.408 403.531 -725.702C350.559 -724.995 298.249 -736.599 245.819 -742.993C181.924 -750.784 119.551 -743.239 55.3252 -743.239C-12.8464 -743.239 -84.9105 -743.272 -151.983 -756.257C-203.102 -766.152 -261.635 -786.895 -313.283 -773.779C-443.364 -740.725 -442.172 -600.684 -429.701 -468.056C-423.187 -398.825 -423.597 -330.842 -429.568 -261.463C-435.87 -188.172 -454.247 -102.882 -443.907 -28.5549C-419.771 144.918 -129.383 61.206 -36.5456 50.0783C43.2505 40.5122 124.119 56.7352 203.028 70.9365C290.927 86.7651 367.373 56.9325 452.638 39.1151C518.307 25.3904 587.564 36.8632 654.001 41.3504C702.088 44.6049 763.494 59.4966 809.741 37.1756C866.301 9.87418 898.023 -78.6868 891.046 -150.729C886.465 -197.968 862.038 -239.832 858.794 -288.797C856.133 -328.969 858.556 -371.868 862.408 -411.218C875.026 -539.802 922.358 -673.367 799.758 -739.936C782.321 -749.403 765.904 -751.918 745.197 -752.345H745.21Z' fill='black'/%3E%3C/svg%3E");
    background-size: 50px;
  }
}

.footer-wave-svg {
  color: transparent;
}

.footer-wrap {
  overflow: hidden;
}

@media screen and (min-width: 992px) {
  .footer .bg-left {
    content: "";
    aspect-ratio: 379 / 655;
    width: 379px;
    position: absolute;
    left: 0;
    top: -150px;
    background: url(../img/img-common/bg_footer_left.webp) left center no-repeat;
    background-size: contain;
    /* 上下にふわふわ動くアニメーション */
    will-change: transform;
    animation: floatY 5s cubic-bezier(0.55, 0.085, 0.68, 0.53) infinite;
  }
}

@media screen and (min-width: 992px) {
  .footer .bg-right {
    content: "";
    aspect-ratio: 284 / 771;
    width: 284px;
    position: absolute;
    right: 0;
    top: 0;
    background: url(../img/img-common/bg_footer_right.webp) left center no-repeat;
    background-size: contain;
    /* 上下にふわふわ動くアニメーション（少し遅らせる） */
    will-change: transform;
    animation: floatY 5s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards infinite;
    animation-delay: 2.5s;
  }
}

@keyframes floatY {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-50px);
  }
  100% {
    transform: translateY(0);
  }
}

.footer-cv {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.footer-cv::after {
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  background: url(../img/img-common/bg_footer_cv.webp) center center no-repeat;
  background-size: contain;
  aspect-ratio: 1178 / 317;
  width: 1178px;
}

@media screen and (max-width: 991px) {
  .footer-cv::after {
    background-image: url(../img/img-common/bg_footer_cv_sp.webp);
    width: 95vw;
    aspect-ratio: 745 / 803;
    max-width: 400px;
  }
}

@media screen and (min-width: 992px) {
  .footer-cv::before {
    content: "";
    position: absolute;
    bottom: -91px;
    left: calc(50% + 450px);
    margin: auto;
    aspect-ratio: 102 / 127;
    width: 102px;
    background: url(../img/img-common/illust_tanpopo.webp) left center no-repeat;
    background-size: contain;
    z-index: 2;
  }
}

.footer-cv .tentoumushi {
  position: absolute;
  aspect-ratio: 498 / 346;
  width: 249px;
  background: url(../img/img-common/tentoumushi01.webp) left center no-repeat;
  background-size: contain;
  z-index: 2;
  right: calc(50% + 305px);
  top: -215px;
  animation: slide 12s 0s infinite;
  opacity: 0;
}

@media screen and (max-width: 991px) {
  .footer-cv .tentoumushi {
    aspect-ratio: 686 / 182;
    width: 100%;
    left: 0;
    right: 0;
    margin-inline: auto;
    top: -33vw;
    max-width: 380px;
  }
}

@media screen and (max-width: 991px) and (min-width: 400px) {
  .footer-cv .tentoumushi {
    top: -145px;
  }
}

.footer-cv .tentoumushi.--step01 {
  background-image: url(../img/img-common/tentoumushi01.webp);
  animation-delay: 0s;
}

@media screen and (max-width: 991px) {
  .footer-cv .tentoumushi.--step01 {
    background-image: url(../img/img-common/tentoumushi01_sp.webp);
  }
}

.footer-cv .tentoumushi.--step02 {
  background-image: url(../img/img-common/tentoumushi02.webp);
  animation-delay: 4s;
}

@media screen and (max-width: 991px) {
  .footer-cv .tentoumushi.--step02 {
    background-image: url(../img/img-common/tentoumushi02_sp.webp);
  }
}

.footer-cv .tentoumushi.--step03 {
  background-image: url(../img/img-common/tentoumushi03.webp);
  animation-delay: 8s;
}

@media screen and (max-width: 991px) {
  .footer-cv .tentoumushi.--step03 {
    background-image: url(../img/img-common/tentoumushi03_sp.webp);
  }
}

.footer-cv .flex {
  position: relative;
  z-index: 2;
  display: grid;
}

@media screen and (min-width: 992px) {
  .footer-cv .flex {
    grid-template-columns: 1fr 1fr;
    place-items: start left;
  }
}

@media screen and (max-width: 991px) {
  .footer-cv .flex {
    gap: 40px;
    padding: 0 10%;
  }
}

.footer-cv .flex .item {
  width: 100%;
}

@media screen and (min-width: 992px) {
  .footer-cv .flex .item:nth-child(1) {
    padding-right: 62px;
    border-right: 1px dashed black;
    display: flex;
    justify-content: flex-end;
  }
}

.footer-cv .flex .item:nth-child(1) dl dd {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

@media screen and (min-width: 992px) {
  .footer-cv .flex .item:nth-child(2) {
    padding-left: 62px;
  }
}

.footer-cv .flex dl dt {
  margin-bottom: 30px;
}

@media screen and (max-width: 991px) {
  .footer-cv .flex dl dt {
    margin-bottom: 13px;
  }
  .footer-cv .flex dl dt img {
    height: 10vw;
    max-height: 50px;
  }
}

.footer-cv .flex dl dd a.--contact {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 75px;
  background-color: #e07f1d;
  border: 1px solid #e07f1d;
  color: #fff;
  border-radius: 50px;
  font-size: 2.2rem;
  line-height: 1.4;
  padding: 0 40px;
  margin: auto;
  width: 100%;
  max-width: 420px;
  text-align: center;
  position: relative;
  font-family: "RocknRoll One", sans-serif;
  background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><filter id="noiseFilter"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23noiseFilter)" opacity="0.5"/></svg>');
  background-blend-mode: multiply;
}

@media screen and (max-width: 991px) {
  .footer-cv .flex dl dd a.--contact {
    font-size: 1.8rem;
    height: 65px;
    padding: 0 20px;
    margin-top: -5px;
  }
}

.footer-cv .flex dl dd a.--contact::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  background: url(../img/img-common/arrow_right_w.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 15 / 9;
  width: 15px;
}

.footer-cv .flex dl dd a.--contact > span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

@media screen and (min-width: 992px) {
  .footer-cv .flex dl dd a.--contact {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .footer-cv .flex dl dd a.--contact::before {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .footer-cv .flex dl dd a.--contact:hover {
    background-color: #fff;
    color: #e07f1d;
    background-image: none;
  }
  .footer-cv .flex dl dd a.--contact:hover::before {
    background-image: url(../img/img-common/arrow_right_choco.svg);
  }
}

@media screen and (min-width: 992px) {
  .footer-cv .flex .tel {
    margin-top: -0.5em;
    padding-left: 5px;
    white-space: nowrap;
  }
  .footer-cv .flex .tel .t1 {
    display: flex;
    align-items: flex-end;
    line-height: 1;
    color: #333;
    font-weight: 700;
  }
  .footer-cv .flex .tel .t1 > span {
    font-size: 2.5rem;
    width: 50px;
  }
}

@media screen and (min-width: 992px) and (max-width: 991px) {
  .footer-cv .flex .tel .t1 > span {
    font-size: 1.2rem;
    width: 3em;
  }
}

@media screen and (min-width: 992px) {
  .footer-cv .flex .tel .t1 > b {
    font-size: 4.4rem;
    letter-spacing: 0.1em;
  }
}

@media screen and (min-width: 992px) and (max-width: 991px) {
  .footer-cv .flex .tel .t1 > b {
    font-size: 2.6rem;
  }
}

@media screen and (min-width: 992px) {
  .footer-cv .flex .tel .t2 {
    text-align: left;
    font-size: 1.6rem;
    font-weight: 500;
    color: #333;
    margin-top: 8px;
    letter-spacing: 0.1em;
    padding-left: calc(50px + 0.4em);
  }
}

@media screen and (min-width: 992px) and (max-width: 991px) {
  .footer-cv .flex .tel .t2 {
    font-size: 1.2rem;
    margin-top: 3px;
    letter-spacing: 0.03em;
  }
}

@media screen and (max-width: 991px) {
  .footer-cv .flex .tel {
    background-color: #fff;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    height: 65px;
    border: 1px solid #e07f1d;
  }
  .footer-cv .flex .tel img {
    position: relative;
    z-index: 2;
    display: block;
    max-width: 100%;
    height: auto;
  }
}

.footer-main {
  margin-top: 200px;
  display: grid;
  grid-template-columns: 1fr 453px;
  gap: 52px;
  align-items: start;
}

@media screen and (max-width: 991px) {
  .footer-main {
    margin-top: 100px;
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.footer-left {
  min-width: 0;
}

.footer-right {
  width: 100%;
  max-width: 453px;
}

@media screen and (max-width: 991px) {
  .footer-right {
    max-width: 330px;
    margin: 0 auto;
  }
}

.footer-logo {
  width: 194px;
  margin-inline: auto;
}

@media screen and (max-width: 991px) {
  .footer-logo {
    width: 144px;
    margin: 0 auto;
  }
}

.footer-logo img {
  width: 100%;
  display: block;
}

.footer-lead {
  margin-top: 56px;
  max-width: 675px;
}

@media screen and (max-width: 991px) {
  .footer-lead {
    margin-top: 30px;
    max-width: 100%;
  }
}

.footer-lead p {
  color: #fff;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 2.0588235294;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .footer-lead p {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.7333333333;
    letter-spacing: 0.08em;
  }
}

.footer-info {
  margin-top: 50px;
}

@media screen and (max-width: 991px) {
  .footer-info {
    margin-top: 28px;
  }
}

.footer-info .flex {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

@media screen and (max-width: 991px) {
  .footer-info .flex {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

.footer-info .item {
  min-width: 0;
}

.footer-info dl dt {
  color: #fff;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
  padding-left: 22px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .footer-info dl dt {
    font-size: 1.7rem;
    line-height: 2.6470588235;
  }
}

.footer-info dl dt::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #ea8f21;
}

.footer-info dl dd {
  margin-top: 10px;
}

@media screen and (max-width: 991px) {
  .footer-info dl dd {
    margin-top: 2px;
  }
}

.footer-info dl dd p,
.footer-info dl dd li {
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .footer-info dl dd p,
  .footer-info dl dd li {
    line-height: 1.5625;
  }
}

.footer-info dl dd p a,
.footer-info dl dd li a {
  color: #fff !important;
}

.footer-info dl dd ul {
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: 18px;
}

@media screen and (max-width: 991px) {
  .footer-info dl dd ul {
    margin-top: 0;
    gap: 16px;
  }
}

.footer-insta {
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-radius: 20px;
  padding: 26px 35px 22px 37px;
}

@media screen and (max-width: 991px) {
  .footer-insta {
    padding: 18px 15px 20px;
  }
}

@media screen and (max-width: 991px) {
  .footer-insta dl {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

.footer-insta dl dt {
  color: #fff;
  font-family: "RocknRoll One", sans-serif;
  font-size: 2.4rem;
  line-height: 1.875;
  letter-spacing: 0.08em;
  display: inline-flex;
  align-items: center;
  position: relative;
  padding-left: 56px;
}

@media screen and (max-width: 991px) {
  .footer-insta dl dt {
    font-size: 2.2rem;
    letter-spacing: 0.02em;
    padding-left: 46px;
  }
}

.footer-insta dl dt::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 37px;
  height: 37px;
  background: url(../img/img-index/icon_insta.webp) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .footer-insta dl dt::before {
    width: 32px;
    height: 32px;
  }
}

.footer-insta dl dd {
  margin-top: 25px;
}

@media screen and (max-width: 991px) {
  .footer-insta dl dd {
    margin-top: 25px;
  }
}

.footer-insta dl dd ul li + li {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.4);
}

@media screen and (max-width: 991px) {
  .footer-insta dl dd ul li + li {
    margin-top: 11px;
    padding-top: 11px;
  }
}

.footer-insta dl dd ul li a {
  display: grid;
  position: relative;
  grid-template-columns: 120px 1fr;
  gap: 30px;
  place-items: start left;
}

@media screen and (max-width: 991px) {
  .footer-insta dl dd ul li a {
    gap: 10px;
    grid-template-columns: 30% 1fr;
    place-items: center left;
  }
}

@media screen and (min-width: 992px) {
  .footer-insta dl dd ul li a::after {
    content: "";
    position: absolute;
    right: 20px;
    bottom: 10px;
    margin: auto;
    width: 18px;
    height: 11px;
    background: url(../img/img-common/arrow_right_w.svg) left center no-repeat;
    background-size: contain;
  }
}

.footer-insta dl dd ul li a .item:nth-child(1) img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
}

.footer-insta dl dd ul li a .item:nth-child(2) {
  flex: 1;
  min-width: 0;
  padding-top: 15px;
}

@media screen and (max-width: 991px) {
  .footer-insta dl dd ul li a .item:nth-child(2) {
    padding-top: 0;
  }
}

.footer-insta dl dd ul li a .t1 {
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.03em;
}

@media screen and (max-width: 991px) {
  .footer-insta dl dd ul li a .t1 {
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.2941176471;
  }
}

.footer-insta dl dd ul li a .t2 {
  color: #9bebc2;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.03em;
}

@media screen and (max-width: 991px) {
  .footer-insta dl dd ul li a .t2 {
    font-size: 1.6rem;
    line-height: 2.125;
  }
}

.footer-copy {
  display: flex;
  justify-content: flex-end;
  margin-top: 80px;
}

@media screen and (max-width: 991px) {
  .footer-copy {
    justify-content: center;
    margin-top: 50px;
  }
}

.footer-copy small {
  color: #fff;
  font-size: 1.4rem;
}

@media screen and (max-width: 991px) {
  .footer-copy small {
    font-size: 1.2rem;
    letter-spacing: 0.01em;
  }
}

.footer-copy small a {
  color: #fff;
}

@keyframes slide {
  0% {
    opacity: 0;
  }
  33% {
    opacity: 1;
  }
  66% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

.pagetop {
  aspect-ratio: 1 / 1;
  width: 60px;
  position: fixed;
  bottom: 60px;
  right: 30px;
  transition: opacity 1s;
  opacity: 0;
  cursor: pointer;
  z-index: 998;
}

@media screen and (max-width: 991px) {
  .pagetop {
    width: 40px;
    bottom: 65px;
    right: 15px;
  }
}

.pagetop.is_active {
  opacity: 1;
}

.fix_movie {
  position: fixed;
  bottom: 100px;
  right: 30px;
  z-index: 998;
  transition: opacity 1s;
  opacity: 0;
  pointer-events: none;
}

@media screen and (min-width: 992px) {
  .fix_movie {
    aspect-ratio: 330 / 217;
    width: 330px;
  }
}

@media screen and (max-width: 991px) {
  .fix_movie {
    width: 39px;
    right: 0;
    bottom: 200px;
  }
}

.fix_movie.is_active {
  opacity: 1;
  pointer-events: all;
}

.fix_movie.is_hide_insta {
  opacity: 0;
  pointer-events: none;
}

.fix_movie .js_movie_close {
  position: absolute;
  right: 0;
  top: -12px;
  aspect-ratio: 1 / 1;
  width: 12px;
  z-index: 2;
  background: url(../img/img-common/icon_close.svg) left center no-repeat;
  background-size: contain;
  cursor: pointer;
}

@media screen and (max-width: 991px) {
  .fix_movie .js_movie_close {
    display: none;
  }
}

.fix_movie .js_movie {
  cursor: pointer;
}

.faq .footer-wave-container,
.page_faq .footer-wave-container {
  background: #faffea;
}

.voice .footer-wave-container,
.page_voice .footer-wave-container {
  background: #f8faf2;
}

.renew .footer-wave-container,
.page_renew .footer-wave-container {
  background: #faffea;
}

.flow .footer-wave-container,
.page_flow .footer-wave-container {
  background: #faffea;
}

.archive .footer-wave-container {
  background: #faffea;
}

.single-works .footer-wave-container {
  background-image: url(../img/img-common/bg_w_noise.png);
  background-position: left center;
  background-repeat: repeat;
  background-size: 100px;
}

@media screen and (max-width: 991px) {
  .single-works .footer-wave-container {
    background-size: 50px;
  }
}

.main.--contact + .footer .footer-wave-container {
  background-image: url(../img/img-common/bg_w_noise.png);
  background-position: left center;
  background-repeat: repeat;
  background-size: 100px;
}

@media screen and (max-width: 991px) {
  .main.--contact + .footer .footer-wave-container {
    background-size: 50px;
  }
}

.company .footer-wave-container,
.page_company .footer-wave-container {
  background-image: url(../img/img-common/bg_sky.webp);
  background-position: left center;
  background-repeat: repeat;
  background-size: 100px;
}

@media screen and (max-width: 991px) {
  .company .footer-wave-container,
  .page_company .footer-wave-container {
    background-size: 50px;
  }
}

svg.clip {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.link-bd {
  text-decoration: underline;
}

@media screen and (min-width: 992px) {
  .link-bd:hover {
    text-decoration: none;
  }
}

.main {
  overflow: clip;
}

.main.--normal {
  padding: 125px 0 60px;
  min-height: 50vh;
}

@media screen and (max-width: 991px) {
  .main.--normal {
    padding: 80px 0 30px;
  }
}

.main.--normal + .footer .footer-wave-container {
  background: #fff;
}

.main.--works {
  background: url(../img/img-common/bg_w_noise.png) left center repeat;
  background-size: 100px;
}

@media screen and (max-width: 991px) {
  .main.--works {
    background-size: 50px;
  }
}

.leadtxt p {
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 55px;
  line-height: 2.4;
  letter-spacing: 0.03em;
}

@media screen and (max-width: 991px) {
  .leadtxt p {
    font-size: 1.6rem;
    line-height: 1.8;
    margin-bottom: 25px;
  }
}

.leadtxt p > span {
  color: #008742;
}

.js_more_box.is_more {
  position: relative;
  height: 1300px;
  overflow: hidden;
}

@media screen and (max-width: 991px) {
  .js_more_box.is_more {
    height: 800px;
    height: 200vw;
  }
}

.js_more_box.is_more::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 100%;
  left: 0;
  height: 80px;
  background: linear-gradient(to bottom, rgba(252, 250, 248, 0) 0%, #fcfaf8 70%);
  background: -webkit-linear-gradient(to bottom, rgba(252, 250, 248, 0) 0%, #fcfaf8 70%);
  background: -mozlinear-gradient(to bottom, rgba(252, 250, 248, 0) 0%, #fcfaf8 70%);
  background: -ms-linear-gradient(to bottom, rgba(252, 250, 248, 0) 0%, #fcfaf8 70%);
}

.link_more {
  display: flex;
  justify-content: center;
  margin-top: 50px;
  width: 100%;
  text-align: center;
  cursor: pointer;
  font-family: "RocknRoll One", sans-serif;
  font-size: 1.9rem;
}

@media screen and (max-width: 991px) {
  .link_more {
    font-size: 1.4rem;
    margin-top: 25px;
  }
}

.link_more > span {
  position: relative;
}

.link_more > span::before {
  content: "";
  position: absolute;
  background: #333;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  width: auto;
  opacity: 1;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.link_more > span::after {
  content: "";
  position: absolute;
  margin: auto;
  vertical-align: middle;
  right: -30px;
  top: 0;
  bottom: 4px;
  width: 11px;
  height: 11px;
  border-top: 2px solid #008742;
  border-right: 2px solid #008742;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
}

.bg-circle {
  margin-top: -15vw;
  position: relative;
}

.bg-circle::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background-position: left center;
  background-repeat: repeat;
  background-size: 100px;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

@media screen and (max-width: 991px) {
  .bg-circle::before {
    background-size: 50px;
  }
}

.bg-circle::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background-position: left center;
  background-repeat: repeat;
  background-size: 100px;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

@media screen and (max-width: 991px) {
  .bg-circle::after {
    background-size: 50px;
  }
}

.bg-circle.--green::before, .bg-circle.--green::after {
  background-image: url(../img/img-common/bg_green.webp);
}

.bg-circle.--brown::before, .bg-circle.--brown::after {
  background-image: url(../img/img-common/bg_brown.webp);
}

.bg-circle.--lightbrown::before, .bg-circle.--lightbrown::after {
  background-image: url(../img/img-common/bg_light_brown.webp);
}

.bg-circle.--sky::before, .bg-circle.--sky::after {
  background-image: url(../img/img-common/bg_sky.webp);
}

.bg-circle.--lightgreen::before, .bg-circle.--lightgreen::after {
  background: #faffea;
}

.bg-circle.--white::before, .bg-circle.--white::after {
  background: #fff;
}

.bg-circle.--w_noise::before, .bg-circle.--w_noise::after {
  background-image: url(../img/img-common/bg_w_noise.png);
}

.bg-circle.--ivory::before, .bg-circle.--ivory::after {
  background: #faffea;
}

/* 下層ページMV */
.pageMv {
  position: relative;
}

.pageMv-ttl .t1 {
  font-family: "RocknRoll One", sans-serif;
  font-size: 6.5rem;
  color: #fff;
  line-height: 1.3;
}

@media screen and (max-width: 991px) {
  .pageMv-ttl .t1 {
    font-size: 3.8rem;
  }
}

.pageMv-ttl .t2 {
  padding-top: 25px;
  font-family: "Zen Kaku Gothic New", serif;
  color: #9bebc2;
  font-size: 2.6rem;
  font-weight: 900;
  display: flex;
  justify-content: flex-start;
}

@media screen and (max-width: 991px) {
  .pageMv-ttl .t2 {
    font-size: 1.8rem;
    padding-top: 20px;
  }
}

.pageMv-ttl .t2 > span {
  position: relative;
  padding-bottom: 10px;
}

.pageMv-ttl .t2 > span::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  aspect-ratio: 304 / 11;
  background: url(../img/img-partner/mv_txt_line.svg) left center no-repeat;
  background-size: 100%;
}

.pageMv-txt {
  padding-top: 60px;
}

@media screen and (max-width: 991px) {
  .pageMv-txt {
    padding-top: 30px;
    margin-top: auto;
  }
}

.pageMv-txt p {
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .pageMv-txt p {
    font-size: 1.6rem;
  }
}

.pageMv-txt p + p {
  margin-top: 10px;
}

.pageMv-main {
  position: absolute;
  padding: 95px 50px 0;
  max-width: 1600px;
  top: 80px;
  left: 0;
  right: 0;
  margin-inline: auto;
  animation-delay: 0.2s !important;
}

@media screen and (max-width: 991px) {
  .pageMv-main {
    padding: 100px 6% 100px;
    top: 0;
    bottom: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
}

.pageMv-image {
  display: flex;
  justify-content: center;
  height: 765px;
}

@media screen and (max-width: 991px) {
  .pageMv-image {
    height: auto;
  }
}

.pageMv-image img,
.pageMv-image picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 992px) {
  .pageMv-image img,
  .pageMv-image picture {
    min-width: 1400px;
  }
}

.pageMv-icon {
  z-index: 2;
  margin-top: auto;
  display: flex;
  justify-content: flex-end;
}

@media screen and (max-width: 991px) {
  .pageMv-icon {
    justify-content: center;
  }
}

@media screen and (min-width: 1600px) {
  .pageMv-icon {
    margin-top: -2.5vw;
  }
}

.pageMv.--h .pageMv-image {
  height: 100vh;
}

@media screen and (min-width: 992px) {
  .pageMv.--equipment, .pageMv.--company, .pageMv.--renew {
    height: 115vh;
  }
}

.pageMv.--equipment .pageMv-ttl .t1 {
  text-indent: -1em;
}

.pageMv.--equipment .pageMv-ttl .t2 > span::after {
  aspect-ratio: 127 / 11;
  background-image: url(../img/img-equipment/mv_txt_line.svg);
}

.pageMv.--company .pageMv-ttl .t2 > span::after {
  aspect-ratio: 284 / 9;
  background-image: url(../img/img-company/mv_txt_line.svg);
}

.pageMv.--flow .pageMv-ttl .t2 > span::after {
  aspect-ratio: 223 / 10;
  background-image: url(../img/img-flow/mv_txt_line.svg);
}

/* 下層ページタイトル */
.pageTitle {
  position: relative;
  padding: 155px 0 calc(50px + 15vw);
}

@media screen and (max-width: 991px) {
  .pageTitle {
    padding: 95px 0 calc(40px + 15vw);
  }
}

.pageTitle .inner {
  position: relative;
  z-index: 3;
}

.pageTitle h1 {
  z-index: 2;
}

.pageTitle h1 .t1 {
  font-family: "RocknRoll One", sans-serif;
  font-size: 5rem;
  color: #fff;
  line-height: 1.3;
}

@media screen and (max-width: 991px) {
  .pageTitle h1 .t1 {
    font-size: 3.8rem;
  }
}

.pageTitle h1 .t2 {
  padding-top: 15px;
  font-family: "Zen Kaku Gothic New", serif;
  color: #9bebc2;
  font-size: 2.6rem;
  font-weight: 900;
  display: flex;
  justify-content: flex-start;
}

@media screen and (max-width: 991px) {
  .pageTitle h1 .t2 {
    font-size: 1.8rem;
    padding-top: 10px;
  }
}

.pageTitle h1 .t2 > span {
  position: relative;
  padding-bottom: 10px;
}

.pageTitle h1 .t2 > span::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  background-position: left center;
  background-repeat: no-repeat;
  background-size: 100%;
}

.pageTitle-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.pageTitle-image img,
.pageTitle-image picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 992px) {
  .pageTitle-image img,
  .pageTitle-image picture {
    min-width: 1400px;
  }
}

.pageTitle.--works::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  z-index: 1;
}

.pageTitle.--works h1 .t2 > span::after {
  aspect-ratio: 118 / 10;
  background-image: url(../img/img-works/mv_txt_line.svg);
}

.pageTitle.--works .pageTitle-image picture,
.pageTitle.--works .pageTitle-image img {
  position: relative;
  z-index: 2;
}

.pageTitle.--contact h1 .t2 > span::after {
  aspect-ratio: 343 / 12;
  background-image: url(../img/img-contact/mv_txt_line.svg);
}

.pageTitle.--faq {
  padding-bottom: calc(50px + 200px);
}

@media screen and (max-width: 991px) {
  .pageTitle.--faq {
    padding-bottom: 30vw;
  }
}

@media screen and (max-width: 991px) {
  .pageTitle.--faq .inner {
    z-index: 6;
  }
}

.pageTitle.--faq h1 .t2 > span::after {
  aspect-ratio: 232 / 12;
  background-image: url(../img/img-faq/mv_txt_line.svg);
}

/* 施工実績一覧ページ */
.worksArchive {
  padding: 120px 0 calc(80px + 15vw);
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .worksArchive {
    padding: 60px 0 calc(40px + 15vw);
  }
}

.worksArchive .inner {
  max-width: 1320px;
}

.worksArchive-ttl {
  display: flex;
  justify-content: center;
}

.worksArchive-ttl > span {
  font-family: "RocknRoll One", sans-serif;
  font-weight: 400;
  color: #008741;
  font-size: 4.6rem;
  line-height: 1.5;
  position: relative;
}

@media screen and (max-width: 991px) {
  .worksArchive-ttl > span {
    font-size: 2.8rem;
    text-align: center;
  }
}

.worksArchive-ttl > span::before {
  content: "";
  position: absolute;
  bottom: -10px;
  left: -80px;
  aspect-ratio: 60 / 59;
  width: 60px;
  background: url(../img/img-common/illust_kirameki01.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .worksArchive-ttl > span::before {
    width: 30px;
    bottom: 0;
    left: -15px;
  }
}

.worksArchive-ttl > span::after {
  content: "";
  position: absolute;
  top: 10px;
  right: -80px;
  aspect-ratio: 42 / 39;
  width: 42px;
  background: url(../img/img-common/illust_kirameki02.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .worksArchive-ttl > span::after {
    width: 30px;
    bottom: 0;
    right: -15px;
    top: inherit;
  }
}

.worksArchive-ttl > span b {
  font-size: 5rem;
  font-weight: 400;
}

@media screen and (max-width: 991px) {
  .worksArchive-ttl > span b {
    font-size: 3.2rem;
  }
}

.worksArchive-lead {
  max-width: 988px;
  margin: 60px auto 0;
  padding: 35px 15px;
  background-image: linear-gradient(to right, #e07f1d 2px, transparent 2px), linear-gradient(to right, #e07f1d 2px, transparent 2px);
  background-size: 5px 2px, 5px 2px;
  background-repeat: repeat-x, repeat-x;
  background-position: left bottom, left top;
}

@media screen and (max-width: 991px) {
  .worksArchive-lead {
    margin-top: 30px;
    padding: 20px 0;
  }
}

.worksArchive-lead dl dt {
  font-size: 3.2rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.1em;
  line-height: 1.3;
}

@media screen and (max-width: 991px) {
  .worksArchive-lead dl dt {
    font-size: 2.6rem;
  }
}

.worksArchive-lead dl dt span {
  font-size: 3.8rem;
  padding-right: 0.05em;
  padding-left: 0.4em;
}

@media screen and (max-width: 991px) {
  .worksArchive-lead dl dt span {
    font-size: 3.4rem;
  }
}

.worksArchive-lead dl dd {
  padding-top: 15px;
  text-align: center;
  font-size: 2.2rem;
  line-height: 1.5;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .worksArchive-lead dl dd {
    text-align: left;
    font-size: 1.6rem;
  }
}

.worksArchive-lead dl dd span {
  font-size: 1.6rem;
  padding-left: 1em;
}

@media screen and (max-width: 991px) {
  .worksArchive-lead dl dd span {
    font-size: 1.4rem;
    padding-left: 0.5em;
  }
}

.worksArchive-items {
  margin-top: 90px;
}

@media screen and (max-width: 991px) {
  .worksArchive-items {
    margin-top: 50px;
  }
}

.worksSearch {
  padding: 100px 0 60px;
  position: relative;
  z-index: 2;
}

.worksSearch .worksearch_map {
  margin: 50px auto 0;
  display: table;
  position: relative;
}

.worksSearch .worksearch_map .caution {
  position: absolute;
  left: -180px;
  top: 5px;
}

@media screen and (max-width: 991px) {
  .worksSearch .worksearch_map .caution {
    left: 0;
    width: 60vw;
    max-width: 280px;
  }
}

/*------テーブル------*/
.post-type-archive table tr td,
.tax-works_cat table tr td,
.tax-works_tag table tr td {
  font-family: "M PLUS Rounded 1c";
  font-size: 13px;
  vertical-align: middle;
  box-sizing: content-box;
}

.post-type-archive table tr td a,
.tax-works_cat table tr td a,
.tax-works_tag table tr td a {
  font-family: "M PLUS Rounded 1c";
  display: block;
  padding: 5px;
  text-decoration: underline;
}

@media screen and (min-width: 992px) {
  .post-type-archive table tr td a:hover,
  .tax-works_cat table tr td a:hover,
  .tax-works_tag table tr td a:hover {
    text-decoration: none;
  }
}

.tb_01 {
  width: 100%;
  border-collapse: collapse;
  font-size: 95%;
}

.tb_01 th {
  width: 25%;
  padding: 6px;
  text-align: left;
  vertical-align: top;
  color: #333;
  background-color: #f8f2db;
  border: 1px solid #b9b9b9;
  font-weight: bold;
}

.tb_01 td {
  padding: 6px;
  background-color: #fff;
  border: 1px solid #b9b9b9;
}

.tb_05 {
  width: 100%;
  border-collapse: collapse;
  font-size: 95%;
}

.tb_05 th {
  width: 60%;
  padding: 6px;
  text-align: left;
  vertical-align: top;
  color: #333;
  background-color: #f8f2db;
  border: 1px solid #b9b9b9;
  font-weight: bold;
}

.tb_05 td {
  padding: 6px;
  background-color: #fff;
  border: 1px solid #b9b9b9;
}

.tb_06 {
  width: 100%;
  border-collapse: collapse;
}

.tb_06 th {
  width: 33%;
  padding: 6px;
  text-align: left;
  vertical-align: top;
  color: #333;
  font-size: 90%;
  text-align: center;
  background-color: #eee;
  border: 1px solid #b9b9b9;
}

.tb_06 td {
  padding: 6px;
  font-size: 90%;
  text-align: center;
  background-color: #fff;
  border: 1px solid #b9b9b9;
}

.tb_07 {
  width: 100%;
  border-collapse: collapse;
  font-size: 95%;
}

.tb_07 th {
  width: 35%;
  padding: 6px;
  text-align: left;
  vertical-align: top;
  color: #333;
  background-color: #f8f2db;
  border: 1px solid #b9b9b9;
  font-weight: bold;
}

.tb_07 td {
  padding: 6px;
  background-color: #fff;
  border: 1px solid #b9b9b9;
}

.tb_08 {
  width: 100%;
  border-collapse: collapse;
  font-size: 95%;
}

.tb_08 th {
  width: 5%;
  padding: 2px;
  text-align: left;
  vertical-align: top;
  color: #333;
}

.tb_08 td {
  padding: 2px;
}

.tb_08-1 {
  width: 100%;
  border-collapse: collapse;
  font-size: 95%;
}

.tb_08-1 th {
  width: 3%;
  padding: 2px;
  text-align: left;
  vertical-align: top;
  color: #333;
}

.tb_08-1 td {
  padding: 2px;
}

.tb_08-2 {
  width: 100%;
  border-collapse: collapse;
  font-size: 95%;
}

.tb_08-2 th {
  width: 5%;
  padding: 7px;
  text-align: left;
  vertical-align: top;
  color: #333;
}

.tb_08-2 td {
  padding: 7px;
}

.td-css {
  border: thin solid #9f9fa0;
  background-color: #faf0d3;
  width: 40px;
}

.td-css2 {
  border: thin solid #9f9fa0;
  background-color: #ffcf75;
  width: 40px;
}

.td-css36 {
  border: thin solid #9f9fa0;
  background-color: #faf0d3;
  width: 38px;
}

.td-css36-1 {
  border: thin solid #9f9fa0;
  background-color: #ffcf75;
  width: 38px;
}

.td-css0 {
  border: thin solid #9f9fa0;
  background-color: #faf0d3;
}

.td-css0-1 {
  border: thin solid #9f9fa0;
  background-color: #ffcf75;
}

.td-css50 {
  border: thin solid #9f9fa0;
  background-color: #faf0d3;
  width: 36px;
}

.td-css50-1 {
  border: thin solid #9f9fa0;
  background-color: #faf0d3;
  width: 36px;
}

.td-css70 {
  border: thin solid #9f9fa0;
  background-color: #faf0d3;
  width: 36px;
}

.td-css70-1 {
  border: thin solid #9f9fa0;
  background-color: #faf0d3;
  width: 36px;
}

/* 実績一覧 */
.workslist {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  position: relative;
  margin-bottom: 80px;
}

.workslist::after {
  content: "";
  display: block;
  max-width: 380px;
  width: 30%;
  height: 0;
}

.workslist_item {
  max-width: 380px;
  width: 30%;
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: inherit !important;
}

.workslist_item:hover .workslist_img img,
.workslist_item:hover .workslist_img iframe {
  transform: scale(1.1, 1.1);
}

.workslist_item:nth-child(n + 4) {
  margin-top: 6%;
}

.workslist_img {
  width: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
}

.workslist_img > div {
  overflow: hidden;
  border-radius: 15px;
}

.workslist_img > div.--movie {
  aspect-ratio: 560/315;
  width: 100%;
}

.workslist_img > div.--movie iframe {
  object-fit: cover;
  width: 100%;
  height: 100%;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  pointer-events: none;
}

.workslist_img img {
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.workslist_wrap {
  background: rgba(255, 255, 255, 0.8);
  width: 70%;
  margin-top: -10%;
  z-index: 1;
  position: relative;
  padding: 20px;
}

.workslist_ttl {
  font-size: 18px;
  font-weight: bold;
  padding: 0 0 10px 0;
  line-height: 1.5;
}

.workslist_spot {
  font-size: 14px;
  display: block;
}

.workslist_date {
  font-size: 12px;
  display: block;
  position: relative;
  padding-left: 35px;
  margin: 10px 0;
}

.workslist_date::before {
  content: "";
  position: absolute;
  background: url(../img/img-works/icon_calendar.webp) left center no-repeat;
  background-size: contain;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 24px;
  height: 22px;
}

.workslist_btn {
  display: table;
  margin-left: auto;
}

.workslist_mapback {
  margin-top: 70px;
  text-align: center;
  margin-bottom: 150px;
}

.workslist_none {
  font-size: 1.8rem;
  padding-bottom: 50px;
  text-align: center;
  line-height: 2;
}

@media screen and (max-width: 991px) {
  .workslist {
    margin: 0 auto 30px;
  }
  .workslist::after {
    content: none;
  }
  .workslist_item {
    width: 100%;
    margin: auto;
  }
  .workslist_item:nth-child(n + 4) {
    margin-top: 0;
  }
  .workslist_item:not(:last-child) {
    margin-bottom: 7%;
  }
  .workslist_img {
    width: 85%;
  }
  .workslist_wrap {
    width: 80%;
    margin-top: -10%;
    z-index: 1;
    padding: 15px;
    margin-left: auto;
  }
  .workslist_ttl {
    font-size: 1.4rem;
    padding: 0 0 7px 0;
    line-height: 1.5;
  }
  .workslist_spot {
    font-size: 1.1rem;
    display: block;
  }
  .workslist_date {
    font-size: 1rem;
    padding-left: 25px;
    margin: 7px 0;
  }
  .workslist_date::before {
    background: url(../img/img-works/icon_calendar.webp) left center no-repeat;
    background-size: contain;
    width: 18px;
    height: 14px;
  }
  .workslist_btn {
    display: table;
    width: 100px;
    margin-left: auto;
  }
  .workslist_mapback {
    text-align: center;
    max-width: 280px;
    margin: 40px auto 50px;
  }
  .workslist_none {
    font-size: 1.2rem;
  }
}

/* ------ ペイジャー ------ */
.tablenav {
  color: #2583ad;
  margin: 1em auto;
  line-height: 2em;
  text-align: center;
}

a.page-numbers,
.tablenav .current {
  color: #8c4600;
  border: solid 1px #8c4600;
  text-decoration: none;
}

@media screen and (max-width: 991px) {
  a.page-numbers,
  .tablenav .current {
    font-size: 1.6rem;
    width: 30px;
    height: 30px;
    display: inline-block;
    padding: 0;
  }
}

a.page-numbers:hover {
  color: white;
  background: #8c4600;
}

.tablenav .current {
  color: white;
  background: #8c4600;
  font-weight: bold;
}

.tablenav .next,
.tablenav .prev {
  border: 0 none;
  background: transparent;
  text-decoration: underline;
  font-size: smaller;
  font-weight: bold;
  color: #333333;
}

@media screen and (min-width: 992px) {
  a.page-numbers,
  .tablenav .current {
    padding: 0;
    width: 38px;
    height: 38px;
    line-height: 35px;
    display: inline-block;
    font-size: 1.6rem;
  }
}

.flowHearing {
  --arc-progress: 0;
  padding: 200px 0 calc(80px + 15vw);
  position: relative;
  overflow: visible;
}

@media screen and (max-width: 991px) {
  .flowHearing {
    padding: 60px 0 calc(180px + 15vw);
  }
}

.flowHearing::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% - 15vw);
  bottom: 100%;
  transform: translateX(-50%);
  width: 130%;
  height: calc(15vw * var(--arc-progress));
  background: #faffea;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: center top;
}

.flowHearing::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: #faffea;
  height: calc(100% + 1px);
  width: 100%;
}

.flowHearing-ttl {
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 40px;
  letter-spacing: 0.05em;
  color: #008741;
  display: flex;
  justify-content: center;
  margin-top: -8vw;
}

@media screen and (max-width: 991px) {
  .flowHearing-ttl {
    font-size: 2.4rem;
    letter-spacing: 0.01em;
    margin-bottom: 30px;
  }
}

.flowHearing-ttl > span {
  position: relative;
  text-align: center;
  padding: 0 80px 5px;
}

@media screen and (max-width: 991px) {
  .flowHearing-ttl > span {
    padding: 0 0 0;
    width: 100%;
  }
}

.flowHearing-ttl > span::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(../img/img-common/line_left.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 39 / 44;
  width: 39px;
}

@media screen and (max-width: 991px) {
  .flowHearing-ttl > span::before {
    width: 24px;
    bottom: 5px;
  }
}

.flowHearing-ttl > span::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  background: url(../img/img-common/line_right.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 39 / 44;
  width: 39px;
}

@media screen and (max-width: 991px) {
  .flowHearing-ttl > span::after {
    width: 24px;
    bottom: 5px;
  }
}

.flowHearing-lead {
  position: relative;
  margin-bottom: 70px;
  padding-top: 20px;
}

@media screen and (max-width: 991px) {
  .flowHearing-lead {
    margin-bottom: 10px;
    padding-top: 5px;
  }
}

.flowHearing-lead .txt {
  width: 45%;
}

@media screen and (max-width: 991px) {
  .flowHearing-lead .txt {
    width: 100%;
  }
}

.flowHearing-lead .txt h3 {
  margin-bottom: 40px;
}

@media screen and (min-width: 992px) {
  .flowHearing-lead .txt h3 {
    white-space: nowrap;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-lead .txt h3 {
    margin-bottom: 20px;
  }
}

.flowHearing-lead .txt h3 > span {
  font-family: "RocknRoll One", sans-serif;
  font-size: 5rem;
  font-weight: 400;
  position: relative;
  padding-bottom: 15px;
  background-image: linear-gradient(to right, #5e3b18 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

@media screen and (max-width: 991px) {
  .flowHearing-lead .txt h3 > span {
    font-size: 2.6rem;
    width: 100%;
    display: block;
    padding-bottom: 10px;
  }
}

.flowHearing-lead .txt p {
  font-size: 2rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .flowHearing-lead .txt p {
    font-size: 1.7rem;
  }
}

@media screen and (min-width: 992px) {
  .flowHearing-lead .image {
    position: absolute;
    right: 0;
    top: -30px;
  }
}

@media screen and (max-width: 1350px) and (min-width: 992px) {
  .flowHearing-lead .image {
    width: 75%;
    right: -20%;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-items {
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    width: 100vw;
  }
}

.flowHearing-box {
  position: relative;
  width: 50%;
  display: flex;
  align-items: center;
}

@media screen and (max-width: 991px) {
  .flowHearing-box + .flowHearing-box {
    margin-top: 45px;
  }
}

.flowHearing-box .line01 {
  position: absolute;
  top: 50px;
  right: -174px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowHearing-box .line01 {
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
  }
}

.flowHearing-box .flex {
  position: relative;
  z-index: 2;
}

.flowHearing-box dl {
  position: relative;
  z-index: 2;
  padding: 40px 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .flowHearing-box dl {
    padding: 30px 0;
  }
}

.flowHearing-box dl dt {
  font-family: "RocknRoll One", sans-serif;
  font-weight: 400;
  font-size: 2.8rem;
  position: relative;
  color: #008741;
  display: flex;
  align-items: flex-start;
  /* 上端（1行目）に合わせる */
  gap: 0.7em;
  /* ドットとテキストの距離 */
  line-height: 1.4em;
  margin-bottom: 20px;
}

@media screen and (max-width: 991px) {
  .flowHearing-box dl dt {
    font-size: 2.2rem;
  }
}

.flowHearing-box dl dt::before {
  content: "";
  flex-shrink: 0;
  /* ドットが潰れないように固定 */
  width: 10px;
  height: 10px;
  background: #e07f1d;
  border-radius: 50%;
  /* 1行目の中央に持ってくるための調整 */
  margin-top: calc((1.4em - 10px) / 2);
  /* ↑ (line-height - ドットの高さ) / 2 */
}

.flowHearing-box dl dd p {
  font-size: 1.8rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .flowHearing-box dl dd p {
    font-size: 1.6rem;
    line-height: 1.6;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-box dl dd img {
    display: block;
    width: 60%;
    margin: 0 auto 20px;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--left {
    width: 94%;
    padding-left: 6%;
  }
}

.flowHearing-box.--left .wbox::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 50vw;
  margin-left: calc((50vw - 50%) * -1);
  background: #fff;
  border-top-right-radius: 200px;
  border-bottom-right-radius: 200px;
  box-shadow: 0 5px 0 0 #dee6c1;
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--left .wbox::before {
    border-top-right-radius: 100px;
    border-bottom-right-radius: 100px;
    width: 100vw;
    margin-left: calc((100vw - 50%) * -1);
  }
}

@media screen and (min-width: 992px) {
  .flowHearing-box.--left dl {
    padding-right: 50px;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--left dl dd {
    padding: 0 30px 0 20px;
  }
}

.flowHearing-box.--right {
  margin-left: auto;
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--right {
    width: 94%;
    padding-right: 6%;
  }
}

.flowHearing-box.--right .wbox::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 50vw;
  margin-right: calc((50vw - 50%) * -1);
  background: #fff;
  border-top-left-radius: 200px;
  border-bottom-left-radius: 200px;
  box-shadow: 0 5px 0 0 #dee6c1;
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--right .wbox::before {
    border-top-left-radius: 100px;
    border-bottom-left-radius: 100px;
    width: 100vw;
    margin-right: calc((100vw - 50%) * -1);
  }
}

@media screen and (min-width: 992px) {
  .flowHearing-box.--right dl {
    padding-right: 50px;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--right dl dt {
    padding-left: 50px;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--right dl dd {
    padding: 0 10px 0 50px;
  }
}

@media screen and (min-width: 992px) {
  .flowHearing-box.--no01 {
    min-height: 350px;
  }
  .flowHearing-box.--no01 dl {
    padding-left: 280px;
  }
  .flowHearing-box.--no01 dl dd img {
    display: block;
    max-width: 249px;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
  }
}

@media screen and (max-width: 1400px) and (min-width: 992px) {
  .flowHearing-box.--no01 {
    width: 55%;
  }
  .flowHearing-box.--no01 .wbox::before {
    width: 55vw;
    margin-left: calc((55vw - 50%) * -1);
  }
  .flowHearing-box.--no01 dl {
    padding-left: 40%;
  }
  .flowHearing-box.--no01 dl dd img {
    width: 35%;
  }
}

@media screen and (min-width: 992px) {
  .flowHearing-box.--no02 {
    min-height: 298px;
    margin-top: -80px;
  }
  .flowHearing-box.--no02::after {
    content: "";
    position: absolute;
    bottom: -30px;
    left: 100px;
    margin: auto;
    aspect-ratio: 60 / 59;
    width: 60px;
    background: url(../img/img-flow/illust_hearing02.svg) left center no-repeat;
    background-size: contain;
  }
  .flowHearing-box.--no02 dl {
    padding-right: 280px;
    padding-left: 80px;
  }
  .flowHearing-box.--no02 dl dd img {
    display: block;
    max-width: 249px;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
  }
}

@media screen and (max-width: 1400px) and (min-width: 992px) {
  .flowHearing-box.--no02 dl {
    padding-right: 40%;
  }
  .flowHearing-box.--no02 dl dd img {
    width: 35%;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--no02 dl dd img {
    width: 70%;
  }
}

.flowHearing-box.--no03::after {
  content: "";
  position: absolute;
  top: -15px;
  right: 50px;
  margin: auto;
  aspect-ratio: 96 / 64;
  width: 96px;
  background: url(../img/img-flow/illust_hearing01.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--no03::after {
    width: 72px;
    right: 0;
    top: -5px;
  }
}

@media screen and (min-width: 992px) {
  .flowHearing-box.--no03 {
    min-height: 343px;
    margin-top: -150px;
  }
  .flowHearing-box.--no03 dl dd {
    display: flex;
    align-items: center;
    gap: 40px;
  }
  .flowHearing-box.--no03 dl dd img {
    max-width: 257px;
  }
}

@media screen and (max-width: 991px) {
  .flowHearing-box.--no03 dl dd img {
    width: 80%;
  }
}

@media screen and (max-width: 1400px) and (min-width: 992px) {
  .flowHearing-box.--no03 dl dd img {
    width: 35%;
  }
}

.flowItems {
  padding: 90px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems {
    padding: 40px 0 calc(75px + 15vw);
  }
}

.flowItems.--last {
  padding-bottom: 120px;
}

@media screen and (max-width: 991px) {
  .flowItems.--last {
    padding-bottom: 60px;
  }
}

.flowItems-ttl {
  margin-bottom: 40px;
}

@media screen and (max-width: 991px) {
  .flowItems-ttl {
    margin-bottom: 20px;
  }
}

.flowItems-ttl > span {
  font-family: "RocknRoll One", sans-serif;
  font-size: 5rem;
  font-weight: 400;
  position: relative;
  color: #fff;
  padding-bottom: 15px;
  background-image: linear-gradient(to right, #fff 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

@media screen and (max-width: 991px) {
  .flowItems-ttl > span {
    font-size: 2.6rem;
    width: 100%;
    display: block;
    padding-bottom: 10px;
  }
}

.flowItems .txt p {
  color: #fff;
  font-size: 2rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .flowItems .txt p {
    font-size: 1.7rem;
  }
}

.flowItems .dlbox dl dt {
  font-family: "RocknRoll One", sans-serif;
  font-weight: 400;
  font-size: 2.8rem;
  position: relative;
  padding-left: 25px;
  color: #008741;
  margin-bottom: 20px;
}

@media screen and (max-width: 991px) {
  .flowItems .dlbox dl dt {
    font-size: 2.2rem;
    margin-bottom: 10px;
  }
}

.flowItems .dlbox dl dt::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  width: 11px;
  background: #e07f1d;
  border-radius: 100%;
}

@media screen and (max-width: 991px) {
  .flowItems .dlbox dl dd img + .t1 {
    padding-top: 20px;
  }
}

.flowItems .dlbox dl dd .t1 {
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 15px;
}

@media screen and (max-width: 991px) {
  .flowItems .dlbox dl dd .t1 {
    font-size: 1.7rem;
    margin-bottom: 12px;
  }
}

.flowItems .dlbox dl dd p {
  font-size: 1.7rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .flowItems .dlbox dl dd p {
    font-size: 1.6rem;
  }
}

.flowItems .blk01 .flex {
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk01 .flex {
    display: flex;
    flex-direction: column-reverse;
    gap: 0;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk01 .flex .item:nth-child(1) {
    width: 375px;
    position: absolute;
    left: 0;
    top: 125px;
  }
  .flowItems .blk01 .flex .item:nth-child(2) {
    margin-left: auto;
    display: flex;
    justify-content: flex-end;
  }
}

@media screen and (min-width: 992px) and (max-width: 1350px) and (min-width: 992px) {
  .flowItems .blk01 .flex .item:nth-child(2) {
    width: 70%;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk01 .flex .item:nth-child(2) img {
    margin-right: -50px;
    width: 886px;
    max-width: inherit;
  }
}

@media screen and (min-width: 992px) and (max-width: 1350px) and (min-width: 992px) {
  .flowItems .blk01 .flex .item:nth-child(2) img {
    width: 100%;
    margin-left: auto;
    display: block;
  }
}

.flowItems .blk02 {
  position: relative;
  padding-top: 163px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk02 {
    padding-top: 300px;
  }
}

.flowItems .blk02 .line02 {
  position: absolute;
  top: -300px;
  left: -70px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowItems .blk02 .line02 {
    top: 10px;
    right: 0;
    left: 0;
    margin: auto;
  }
}

.flowItems .blk02 .wbox {
  padding: 28px 130px 40px 0;
  width: 80%;
  position: relative;
}

@media screen and (max-width: 1300px) {
  .flowItems .blk02 .wbox {
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk02 .wbox {
    padding: 25px 25px 35px 0;
    width: 100%;
  }
}

.flowItems .blk02 .wbox::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 100vw;
  margin-left: calc((100vw - 50%) * -1);
  background: #fff;
  border-top-right-radius: 400px;
  border-bottom-right-radius: 400px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk02 .wbox::before {
    border-top-right-radius: 100px;
    border-bottom-right-radius: 100px;
    width: 100vw;
    margin-left: calc((100vw - 50%) * -1);
  }
}

.flowItems .blk02 .wbox::after {
  content: "";
  position: absolute;
  top: -10px;
  right: 94px;
  margin: auto;
  aspect-ratio: 66 / 93;
  width: 66px;
  background: url(../img/img-flow/icon_illust.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .flowItems .blk02 .wbox::after {
    right: 50px;
    top: -30px;
    width: 43px;
  }
}

.flowItems .blk02 .bgtxt {
  position: absolute;
  top: 0;
  right: 450px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk02 .bgtxt {
    right: 0;
    top: 50px;
  }
}

.flowItems .blk02 .dlbox {
  position: relative;
  z-index: 2;
  min-height: 326px;
}

@media screen and (min-width: 992px) {
  .flowItems .blk02 .dlbox dl {
    padding-left: 500px;
    padding-top: 20px;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk02 .dlbox dd img {
    position: absolute;
    left: 0;
    top: 0;
  }
}

.flowItems .blk02 .image {
  position: relative;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .flowItems .blk02 .image {
    margin-right: -50px;
  }
}

.flowItems .blk03 {
  position: relative;
  padding-top: 90px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk03 {
    padding-top: 50px;
  }
}

.flowItems .blk03 .line03 {
  position: absolute;
  top: -209px;
  left: 386px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowItems .blk03 .line03 {
    top: -26vw;
    right: -50vw;
    margin: 0;
    left: inherit;
  }
}

.flowItems .blk03 .wbox {
  padding: 30px 0 30px 177px;
  width: 80%;
  position: relative;
  margin-left: auto;
  display: flex;
  align-items: center;
}

@media screen and (min-width: 992px) {
  .flowItems .blk03 .wbox {
    min-height: 380px;
  }
}

@media screen and (max-width: 1300px) {
  .flowItems .blk03 .wbox {
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk03 .wbox {
    width: 100%;
    padding: 25px 0 35px 45px;
  }
}

.flowItems .blk03 .wbox::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100vw;
  margin-right: calc((100vw - 50%) * -1);
  background: #fff;
  border-top-left-radius: 400px;
  border-bottom-left-radius: 400px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk03 .wbox::before {
    border-top-left-radius: 100px;
    border-bottom-left-radius: 100px;
    width: 100vw;
    margin-right: calc((100vw - 50%) * -1);
  }
}

.flowItems .blk03 .wbox::after {
  content: "";
  position: absolute;
  top: -15px;
  right: 46%;
  margin: auto;
  aspect-ratio: 60 / 59;
  width: 60px;
  background: url(../img/img-flow/icon_perth.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .flowItems .blk03 .wbox::after {
    width: 43px;
    right: 0;
  }
}

.flowItems .blk03 .dlbox {
  position: relative;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .flowItems .blk03 .dlbox dl {
    padding-right: 480px;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk03 .dlbox dl dd img {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    right: 0;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk03 .dlbox dl dd img {
    padding-top: 10px;
  }
}

.flowItems .blk04 {
  padding-top: 80px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk04 {
    padding-bottom: 40px;
  }
}

.flowItems .blk04 .line04 {
  position: absolute;
  top: -136px;
  left: 337px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowItems .blk04 .line04 {
    top: -210px;
    left: inherit;
    right: 0;
    margin: auto;
  }
}

.flowItems .blk04 .line05 {
  position: absolute;
  top: 600px;
  left: 337px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowItems .blk04 .line05 {
    top: inherit;
    left: 30px;
    margin: auto;
    bottom: -120vw;
  }
}

.flowItems .blk04 .flex {
  display: flex;
}

@media screen and (max-width: 991px) {
  .flowItems .blk04 .flex {
    flex-direction: column;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk04 .flex .item:nth-child(1) {
    width: 724px;
  }
}

@media screen and (min-width: 992px) and (max-width: 1320px) {
  .flowItems .blk04 .flex .item:nth-child(1) {
    width: 60%;
  }
  .flowItems .blk04 .flex .item:nth-child(1) img {
    width: 100%;
    max-width: 100%;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk04 .flex .item:nth-child(1) img {
    max-width: inherit;
  }
  .flowItems .blk04 .flex .item:nth-child(2) {
    padding-top: 130px;
    padding-right: 50px;
    padding-left: 65px;
    width: calc(100% - 724px);
  }
}

@media screen and (min-width: 992px) and (max-width: 1320px) and (min-width: 992px) {
  .flowItems .blk04 .flex .item:nth-child(2) {
    width: 40%;
    padding-right: 0;
    padding-left: 30px;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk04 .image {
    display: flex;
    justify-content: flex-end;
    padding-right: 110px;
    margin-top: -130px;
  }
}

@media screen and (max-width: 1300px) and (min-width: 992px) {
  .flowItems .blk04 .image {
    margin-top: -80px;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk04 .image {
    margin-top: 30px;
  }
}

.flowItems .blk05 {
  position: relative;
  padding-top: 50px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk05 {
    padding-top: 20px;
    padding-bottom: 40px;
  }
}

.flowItems .blk05 .line06 {
  position: absolute;
  bottom: -346px;
  right: 150px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowItems .blk05 .line06 {
    bottom: -194px;
    left: 29px;
    margin: auto;
    right: inherit;
  }
}

.flowItems .blk05 .flowItems-ttl > span,
.flowItems .blk05 .txt p {
  color: #333333;
}

.flowItems .blk05 .flowItems-ttl > span {
  background-image: linear-gradient(to right, #333 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

.flowItems .blk05 .flex {
  position: relative;
}

@media screen and (min-width: 992px) {
  .flowItems .blk05 .flex .item:nth-child(2) {
    position: absolute;
    left: 710px;
    top: 0;
  }
  .flowItems .blk05 .flex .item:nth-child(2) img {
    max-width: inherit;
    width: 452px;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk05 .flex {
    display: flex;
    flex-direction: column-reverse;
    gap: 15px;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk05 .image {
    margin-top: 35px;
  }
}

.flowItems .blk06 {
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk06 {
    padding-top: 40px;
  }
}

.flowItems .blk06 .flex {
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk06 .flex {
    display: flex;
    flex-direction: column-reverse;
    gap: 0;
  }
}

.flowItems .blk06 .flex .item {
  position: relative;
}

@media screen and (min-width: 992px) {
  .flowItems .blk06 .flex .item:nth-child(1) {
    width: 470px;
    padding-top: 120px;
  }
}

@media screen and (max-width: 1290px) and (min-width: 992px) {
  .flowItems .blk06 .flex .item:nth-child(1) {
    width: 45%;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk06 .flex .item:nth-child(2) {
    position: absolute;
    right: 0;
    top: 0;
  }
  .flowItems .blk06 .flex .item:nth-child(2) .bgtxt {
    position: absolute;
    left: -350px;
    top: -20px;
  }
  .flowItems .blk06 .flex .item:nth-child(2) .img {
    max-width: inherit;
    width: 752px;
    margin-right: -50px;
  }
}

@media screen and (max-width: 1290px) and (min-width: 992px) {
  .flowItems .blk06 .flex .item:nth-child(2) {
    width: 55%;
  }
  .flowItems .blk06 .flex .item:nth-child(2) .img {
    width: 100%;
  }
}

.flowItems .blk07 {
  margin-top: 70px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 {
    margin-top: 35px;
  }
}

.flowItems .blk07 .line07 {
  position: absolute;
  top: -180px;
  right: 240px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 .line07 {
    bottom: -140vw;
    left: 70px;
    right: inherit;
    top: inherit;
  }
}

.flowItems .blk07 .wbox {
  padding: 30px 80px 30px 0;
  width: 45%;
  position: relative;
  margin-right: auto;
  display: flex;
  align-items: center;
}

@media screen and (min-width: 992px) {
  .flowItems .blk07 .wbox {
    min-height: 290px;
  }
}

@media screen and (max-width: 1290px) and (min-width: 992px) {
  .flowItems .blk07 .wbox {
    width: 55%;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 .wbox {
    width: 100%;
    padding: 25px 40px 35px 10px;
  }
}

.flowItems .blk07 .wbox::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 100vw;
  margin-left: calc((100vw - 50%) * -1);
  background: #fff;
  border-top-right-radius: 400px;
  border-bottom-right-radius: 400px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 .wbox::before {
    border-top-right-radius: 100px;
    border-bottom-right-radius: 100px;
    width: 100vw;
    margin-left: calc((100vw - 50%) * -1);
  }
}

.flowItems .blk07 .flex {
  position: relative;
  z-index: 2;
  display: grid;
}

@media screen and (min-width: 992px) {
  .flowItems .blk07 .flex {
    grid-template-columns: 40% 1fr;
    gap: 40px;
    place-items: center left;
    margin-left: -50px;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 .flex {
    gap: 15px;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk07 .flex p {
    padding-top: 55px;
  }
}

.flowItems .blk07 .flex .image {
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 .flex .image {
    padding-top: 80px;
  }
}

.flowItems .blk07 .flex .image .bgtxt {
  position: absolute;
  right: -190px;
  top: -79px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 .flex .image .bgtxt {
    width: 210px;
    right: 0;
    left: -20px;
    top: -60px;
    margin: auto;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk07 .flex .image .img {
    width: 80%;
    margin-inline: auto;
    display: block;
  }
}

.flowItems .blk08 {
  padding-top: 90px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk08 {
    padding-top: 200px;
    padding-bottom: 40px;
  }
}

.flowItems .blk08 .line08 {
  position: absolute;
  bottom: -450px;
  left: 470px;
  z-index: -1;
}

@media screen and (max-width: 991px) {
  .flowItems .blk08 .line08 {
    bottom: -364px;
    left: 130px;
  }
}

.flowItems .blk08 .flex {
  display: grid;
  position: relative;
}

@media screen and (min-width: 992px) {
  .flowItems .blk08 .flex {
    grid-template-columns: 60% 1fr;
    gap: 70px;
    place-items: start left;
  }
}

@media screen and (max-width: 1400px) and (min-width: 992px) {
  .flowItems .blk08 .flex {
    gap: 35px;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk08 .flex {
    gap: 15px;
  }
  .flowItems .blk08 .flex::after {
    content: "";
    position: absolute;
    top: -100px;
    right: 0;
    margin: auto;
    aspect-ratio: 195 / 99;
    width: 140px;
    background: url(../img/img-flow/illust_ike.svg) left center no-repeat;
    background-size: contain;
  }
}

.flowItems .blk08 .flex .item {
  position: relative;
}

@media screen and (min-width: 992px) {
  .flowItems .blk08 .flex .item:nth-child(2) {
    padding-top: 45px;
  }
  .flowItems .blk08 .flex .item:nth-child(2)::after {
    content: "";
    position: absolute;
    top: 10px;
    left: 190px;
    margin: auto;
    aspect-ratio: 195 / 99;
    width: 195px;
    background: url(../img/img-flow/illust_ike.svg) left center no-repeat;
    background-size: contain;
  }
}

.flowItems .blk08 .flex .item .flowItems-ttl {
  position: relative;
  z-index: 2;
}

.flowItems .blk09 {
  padding-top: 30px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk09 {
    padding-top: 50px;
  }
}

.flowItems .blk09 .flowItems-ttl > span,
.flowItems .blk09 .txt p {
  color: #333333;
}

.flowItems .blk09 .flowItems-ttl > span {
  background-image: linear-gradient(to right, #333 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

.flowItems .blk09 .flex {
  position: relative;
}

@media screen and (max-width: 991px) {
  .flowItems .blk09 .flex {
    display: flex;
    flex-direction: column-reverse;
    gap: 25px;
  }
}

.flowItems .blk09 .flex .item {
  position: relative;
}

@media screen and (min-width: 992px) {
  .flowItems .blk09 .flex .item:nth-child(1) {
    width: 577px;
    padding-top: 120px;
  }
}

@media screen and (max-width: 1350px) and (min-width: 992px) {
  .flowItems .blk09 .flex .item:nth-child(1) {
    width: 45%;
  }
}

@media screen and (min-width: 992px) {
  .flowItems .blk09 .flex .item:nth-child(2) {
    position: absolute;
    right: 0;
    top: 0;
  }
  .flowItems .blk09 .flex .item:nth-child(2) .bgtxt {
    position: absolute;
    left: -500px;
    top: -20px;
  }
  .flowItems .blk09 .flex .item:nth-child(2) .img {
    max-width: inherit;
    width: 752px;
    margin-right: -50px;
  }
}

@media screen and (max-width: 1350px) and (min-width: 992px) {
  .flowItems .blk09 .flex .item:nth-child(2) {
    width: 55%;
  }
  .flowItems .blk09 .flex .item:nth-child(2) .bgtxt {
    left: -80%;
  }
  .flowItems .blk09 .flex .item:nth-child(2) .img {
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk09 .flex .item .image {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

.flowItems .blk10 {
  margin-top: 120px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk10 {
    margin-top: 35px;
  }
}

.flowItems .blk10 h3 {
  display: flex;
  justify-content: center;
}

.flowItems .blk10 h3 > span {
  position: relative;
  font-size: 4.5rem;
  font-weight: 700;
  color: #008741;
  text-align: center;
  line-height: 1.5;
  padding: 0 85px 0 95px;
}

@media screen and (max-width: 991px) {
  .flowItems .blk10 h3 > span {
    padding: 40px 0 30px;
    font-size: 2.4rem;
  }
}

.flowItems .blk10 h3 > span::before {
  content: "";
  position: absolute;
  bottom: 20px;
  left: 0;
  aspect-ratio: 60 / 59;
  width: 60px;
  background: url(../img/img-common/illust_kirameki01.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .flowItems .blk10 h3 > span::before {
    width: 30px;
    bottom: inherit;
    top: 0;
    left: 15px;
  }
}

.flowItems .blk10 h3 > span::after {
  content: "";
  position: absolute;
  top: 10px;
  right: 0;
  aspect-ratio: 42 / 39;
  width: 42px;
  background: url(../img/img-common/illust_kirameki02.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .flowItems .blk10 h3 > span::after {
    width: 30px;
    bottom: 0;
    top: inherit;
  }
}

.flowItems .blk10 .flex {
  display: grid;
  max-width: 1050px;
  margin: 50px auto 0;
  padding: 35px 15px 35px 0;
  background-image: linear-gradient(to right, #008741 2px, transparent 2px), linear-gradient(to right, #008741 2px, transparent 2px);
  background-size: 5px 2px, 5px 2px;
  background-repeat: repeat-x, repeat-x;
  background-position: left bottom, left top;
}

@media screen and (min-width: 992px) {
  .flowItems .blk10 .flex {
    grid-template-columns: 1fr 366px;
    gap: 40px;
    place-items: center left;
  }
}

@media screen and (max-width: 991px) {
  .flowItems .blk10 .flex {
    gap: 20px;
    padding: 30px 10px 40px;
    margin-top: 15px;
  }
}

.flowItems .blk10 .flex .item {
  width: 100%;
}

.flowItems .blk10 .flex .btn-arrow {
  height: 50px;
  justify-content: flex-start;
  max-width: 366px;
  width: 100%;
}

@media screen and (max-width: 991px) {
  .flowItems .blk10 .flex .btn-arrow {
    justify-content: center;
    max-width: 320px;
    height: 55px;
  }
  .flowItems .blk10 .flex .btn-arrow > span {
    padding-right: 1em;
  }
}

.flowItems .blk10 .flex p {
  font-size: 1.9rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .flowItems .blk10 .flex p {
    font-size: 1.6rem;
    text-align: center;
  }
}

/* 園庭土壌改良 */
.renewSoil {
  position: relative;
  padding: 90px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .renewSoil {
    padding: 60px 0 calc(75px + 15vw);
  }
}

@media screen and (max-width: 1376px) and (min-width: 992px) {
  .renewSoil .inner {
    padding: 0;
  }
}

.renewSoil .leadtxt {
  margin-bottom: 50px;
}

.renewSoil .leadtxt p {
  color: #fff;
}

.renewSoil-box {
  position: relative;
  padding: 80px 60px;
}

@media screen and (max-width: 991px) {
  .renewSoil-box {
    padding: 0;
  }
}

@media screen and (min-width: 992px) {
  .renewSoil-box::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
  }
}

.renewSoil-box-wrap {
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .renewSoil-box-wrap {
    padding: 0 20px;
    margin-top: -21px;
  }
  .renewSoil-box-wrap > * {
    position: relative;
    z-index: 2;
  }
  .renewSoil-box-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: calc(100% - 40px);
    background: #faffea;
  }
}

.renewSoil-box .flex01 {
  display: grid;
  margin-top: 30px;
}

@media screen and (min-width: 992px) {
  .renewSoil-box .flex01 {
    grid-template-columns: 1fr 410px;
    gap: 70px;
    place-items: center left;
    padding-left: 20px;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex01 {
    display: flex;
    flex-direction: column-reverse;
    gap: 20px;
    margin-top: 25px;
  }
}

.renewSoil-box .flex02 {
  display: grid;
  margin-top: 40px;
}

@media screen and (min-width: 992px) {
  .renewSoil-box .flex02 {
    grid-template-columns: 428px 1fr;
    gap: 60px;
    place-items: center left;
    padding-left: 20px;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex02 {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
}

.renewSoil-box .flex03 {
  display: grid;
  margin-top: 40px;
}

@media screen and (min-width: 992px) {
  .renewSoil-box .flex03 {
    grid-template-columns: 1fr 540px;
    gap: 60px;
    place-items: start left;
    padding-left: 20px;
    padding-right: 40px;
  }
  .renewSoil-box .flex03 .image {
    margin-top: -120px;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex03 {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
}

.renewSoil-box .flex04 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 45px 75px;
  margin-top: 35px;
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex04 {
    gap: 45px;
    margin-top: 25px;
  }
}

.renewSoil-box .flex04 .item {
  position: relative;
}

@media screen and (min-width: 992px) {
  .renewSoil-box .flex04 .item:nth-child(1) {
    position: relative;
  }
  .renewSoil-box .flex04 .item:nth-child(1)::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: -55px;
    margin: auto;
    aspect-ratio: 39 / 30;
    width: 39px;
    background: url(../img/img-renew/arrow_right.svg) left center no-repeat;
    background-size: contain;
  }
  .renewSoil-box .flex04 .item:nth-child(2) {
    position: relative;
  }
  .renewSoil-box .flex04 .item:nth-child(2)::after {
    content: "";
    position: absolute;
    bottom: -40px;
    right: 0;
    left: 0;
    margin: auto;
    aspect-ratio: 30 / 39;
    width: 30px;
    background: url(../img/img-renew/arrow_bottom.svg) left center no-repeat;
    background-size: contain;
  }
  .renewSoil-box .flex04 .item:nth-child(4) {
    position: relative;
  }
  .renewSoil-box .flex04 .item:nth-child(4)::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: -55px;
    margin: auto;
    aspect-ratio: 39 / 30;
    width: 39px;
    background: url(../img/img-renew/arrow_left.svg) left center no-repeat;
    background-size: contain;
  }
  .renewSoil-box .flex04 .item:nth-child(3) {
    order: 4;
  }
  .renewSoil-box .flex04 .item:nth-child(4) {
    order: 3;
  }
}

@media screen and (max-width: 992px) {
  .renewSoil-box .flex04 .item:not(:last-child) {
    position: relative;
  }
  .renewSoil-box .flex04 .item:not(:last-child)::after {
    content: "";
    position: absolute;
    bottom: -40px;
    right: 0;
    left: 0;
    margin: auto;
    aspect-ratio: 30 / 39;
    width: 30px;
    background: url(../img/img-renew/arrow_bottom.svg) left center no-repeat;
    background-size: contain;
  }
}

.renewSoil-box .flex04 .item .no {
  position: absolute;
  left: 30px;
  top: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  height: 57px;
  width: 57px;
  border: 1px solid #fff;
  font-size: 2.9rem;
  font-weight: 700;
  color: #fff;
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex04 .item .no {
    width: 47px;
    height: 47px;
    left: 25px;
    top: 25px;
  }
}

.renewSoil-box .flex04 .item .txt {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 35px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex04 .item .txt {
    bottom: 25px;
  }
}

.renewSoil-box .flex04 .item .txt > span {
  min-width: 190px;
  height: 45px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 30px;
  color: #83582c;
  font-size: 2rem;
  font-weight: 700;
  border-radius: 50px;
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex04 .item .txt > span {
    font-size: 1.7rem;
  }
}

@media screen and (min-width: 992px) {
  .renewSoil-box.--no01 {
    min-height: 1227px;
  }
  .renewSoil-box.--no01::after {
    background-image: url(../img/img-renew/bg_soil01.webp);
    aspect-ratio: 1376 / 1227;
    width: 1376px;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-box.--no01 .renewSoil-ttl .no {
    margin-bottom: 1.3em;
  }
}

@media screen and (min-width: 992px) {
  .renewSoil-box.--no02 {
    min-height: 599px;
  }
  .renewSoil-box.--no02::after {
    background-image: url(../img/img-renew/bg_soil02.webp);
    aspect-ratio: 1408 / 599;
    width: 1408px;
  }
}

@media screen and (min-width: 992px) {
  .renewSoil-box.--no03 {
    min-height: 1024px;
  }
  .renewSoil-box.--no03::after {
    background-image: url(../img/img-renew/bg_soil03.webp);
    aspect-ratio: 1408 / 1024;
    width: 1408px;
  }
}

.renewSoil-box + .renewSoil-box {
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .renewSoil-box + .renewSoil-box {
    margin-top: 20px;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-box .bg-top {
    background: url(../img/img-renew/bg_soil_top.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 678 / 178;
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-box .bg-bottom {
    background: url(../img/img-renew/bg_soil_bottom.webp) left bottom no-repeat;
    background-size: 100%;
    aspect-ratio: 676 / 190;
    width: 100%;
    margin-top: -21px;
  }
}

.renewSoil-box .flex {
  position: relative;
  z-index: 2;
  padding: 0 30px 0 45px;
  display: grid;
}

@media screen and (min-width: 992px) {
  .renewSoil-box .flex {
    grid-template-columns: 60% 1fr;
    place-items: start left;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-box .flex {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0 30px;
    margin-top: -21px;
  }
  .renewSoil-box .flex::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: calc(100% - 40px);
    background: #faffea;
  }
  .renewSoil-box .flex .item {
    position: relative;
    z-index: 2;
  }
}

.renewSoil-arrow {
  margin-top: 15px;
}

.renewSoil-arrow .icon {
  display: flex;
  justify-content: center;
  margin-bottom: 15px;
}

@media screen and (max-width: 991px) {
  .renewSoil-arrow .icon img {
    display: block;
    width: 130px;
  }
}

.renewSoil-arrow ul {
  max-width: 728px;
  margin-inline: auto;
}

.renewSoil-arrow ul li {
  background: url(../img/img-renew/bg01.webp) center center repeat;
  background-size: 50px;
  height: 67px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  border-radius: 50px;
}

@media screen and (max-width: 991px) {
  .renewSoil-arrow ul li {
    height: inherit;
    min-height: 65px;
    padding: 15px 25px;
    font-size: 1.7rem;
    text-align: center;
  }
}

.renewSoil-arrow ul li + li {
  margin-top: 15px;
}

.renewSoil-ttl {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  padding-bottom: 35px;
}

@media screen and (max-width: 991px) {
  .renewSoil-ttl {
    margin-left: -10px;
    align-items: flex-end;
    gap: 5px;
  }
}

.renewSoil-ttl::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 20px;
  margin: auto;
  aspect-ratio: 143 / 30;
  width: 143px;
  background: url(../img/img-renew/line_renew.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .renewSoil-ttl::after {
    width: 100px;
    left: 10px;
  }
}

.renewSoil-ttl .no {
  width: 80px;
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .renewSoil-ttl .no {
    width: 60px;
    justify-content: flex-start;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-ttl .txt {
    width: calc(100% - 60px);
  }
}

.renewSoil-ttl .txt .t1 {
  color: #e07f1d;
  font-size: 2.5rem;
  font-family: "RocknRoll One", sans-serif;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .renewSoil-ttl .txt .t1 {
    font-size: 1.7rem;
  }
}

.renewSoil-ttl .txt .t2 {
  font-size: 4.4rem;
  font-weight: 700;
  color: #5e3b18;
  line-height: 1.4;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 991px) {
  .renewSoil-ttl .txt .t2 {
    font-size: 2.8rem;
    letter-spacing: 0.05em;
  }
}

.renewSoil-txt p {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2;
}

@media screen and (max-width: 1200px) {
  .renewSoil-txt p {
    font-size: 1.6666666666666667vw;
  }
}

@media screen and (max-width: 991px) {
  .renewSoil-txt p {
    font-size: 1.6rem;
  }
}

.renewSoil-txt p > span {
  background: linear-gradient(transparent 0%, #fff 0%);
  font-weight: 700;
}

.renewSoil-txt p b {
  font-weight: 700;
}

.renewSoil-txt p + p {
  margin-top: 15px;
}

.renewSoil-faq {
  padding-top: 100px;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq {
    padding-top: 50px;
  }
}

.renewSoil-faq h2 {
  margin-bottom: 50px;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq h2 {
    margin-bottom: 25px;
  }
}

.renewSoil-faq h2 .t1 {
  text-align: center;
  font-family: "RocknRoll One", sans-serif;
  color: #fff;
  font-size: 2.5rem;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq h2 .t1 {
    font-size: 1.8rem;
  }
}

.renewSoil-faq h2 .t2 {
  font-size: 4.4rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq h2 .t2 {
    font-size: 2.8rem;
  }
}

.renewSoil-faq-item {
  background: #fff;
  border-radius: 20px;
  max-width: 1000px;
  margin-inline: auto;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item {
    border-radius: 10px;
  }
}

.renewSoil-faq-item + .renewSoil-faq-item {
  margin-top: 30px;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item + .renewSoil-faq-item {
    margin-top: 20px;
  }
}

.renewSoil-faq-item dl dt.js_ac {
  position: relative;
  cursor: pointer;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: #333;
  padding: 30px 95px 30px 48px;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item dl dt.js_ac {
    font-size: 1.6rem;
    line-height: 1.625;
    padding: 14px 55px 14px 20px;
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }
}

.renewSoil-faq-item dl dt.js_ac::after {
  content: "";
  position: absolute;
  right: 30px;
  top: 25px;
  width: 50px;
  transform: rotate(0);
  transition: transform 0.4s ease;
  aspect-ratio: 1 / 1;
  background: url(../img/img-renew/arrow_faq.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item dl dt.js_ac::after {
    width: 36px;
    right: 15px;
    top: 22px;
  }
}

.renewSoil-faq-item dl dt.js_ac.is_open::after {
  transform: rotate(-180deg);
}

.renewSoil-faq-item dl dd.js_ac_box .js_ac_inner {
  padding: 0 46px 38px;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item dl dd.js_ac_box .js_ac_inner {
    padding: 0 22px 30px;
  }
}

.renewSoil-faq-item dl dd.js_ac_box .txt {
  position: relative;
  padding-top: 32px;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item dl dd.js_ac_box .txt {
    padding-top: 24px;
  }
}

.renewSoil-faq-item dl dd.js_ac_box .txt::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 2px;
  background-image: linear-gradient(to right, #83582c 3px, transparent 3px);
  background-size: 8px 2px;
  background-repeat: repeat-x;
}

.renewSoil-faq-item dl dd.js_ac_box .txt p {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 2.222;
  letter-spacing: 0.08em;
  color: #333;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item dl dd.js_ac_box .txt p {
    font-size: 1.5rem;
    line-height: 1.733;
    letter-spacing: 0.1em;
  }
}

.renewSoil-faq-item dl dd.js_ac_box .txt p + p {
  margin-top: 25px;
}

.renewSoil-faq-item dl dd.js_ac_box .faq-btn {
  margin-top: 28px;
  display: flex;
  justify-content: flex-end;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item dl dd.js_ac_box .faq-btn {
    margin-top: 30px;
  }
}

.renewSoil-faq-item dl dd.js_ac_box .faq-btn .btn-arrow {
  width: 236px;
  max-width: none;
  height: 50px;
  font-size: 1.6rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin: 0;
  padding: 0 48px 0 24px;
}

@media screen and (max-width: 991px) {
  .renewSoil-faq-item dl dd.js_ac_box .faq-btn .btn-arrow {
    width: 100%;
    max-width: 250px;
    font-size: 1.7rem;
  }
}

.renewSoil-faq-item dl dd.js_ac_box .faq-btn .btn-arrow::before {
  right: 22px;
}

.renewSoil-info {
  position: relative;
  z-index: 2;
  margin-top: 100px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info {
    margin-top: 70px;
  }
}

.renewSoil-info .flex {
  display: flex;
  justify-content: center;
  gap: 63px;
  max-width: 1163px;
  margin-inline: auto;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .flex {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }
}

.renewSoil-info .item {
  width: 50%;
  max-width: 550px;
  border: 2px solid #fff;
  border-radius: 30px;
  position: relative;
  padding: 0 24px 26px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item {
    padding: 0 14px 19px;
    width: 100%;
  }
}

.renewSoil-info .item .icon {
  position: absolute;
  left: -29px;
  top: -29px;
  width: 90px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item .icon {
    left: -14px;
    width: 71px;
  }
}

.renewSoil-info .item dl dt {
  color: #fff;
  font-size: 2.4rem;
  font-weight: 900;
  padding: 15px 0;
  letter-spacing: 0.02em;
  text-align: center;
  border-bottom: 2px dotted #fff;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item dl dt {
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: 0.02em;
    padding: 10px 0;
  }
}

.renewSoil-info .item dl dd {
  padding-top: 40px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item dl dd {
    padding-top: 20px;
  }
}

.renewSoil-info .item dl dd .image {
  display: block;
}

.renewSoil-info .item dl dd .image img {
  display: block;
  width: 100%;
}

.renewSoil-info .item dl dd .txt .t1 {
  color: #fff2d5;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.625;
  letter-spacing: 0.02em;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item dl dd .txt .t1 {
    font-size: 1.3rem;
    line-height: 1.385;
    letter-spacing: 0.01em;
  }
}

.renewSoil-info .item dl dd .txt .t2 {
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.777;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item dl dd .txt .t2 {
    font-size: 1.4rem;
    line-height: 1.571;
    letter-spacing: 0.08em;
  }
}

.renewSoil-info .item:nth-child(1) dl dd .image {
  width: 323px;
  margin: 0 auto;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item:nth-child(1) dl dd .image {
    width: 217px;
  }
}

.renewSoil-info .item:nth-child(1) dl dd .txt {
  margin-top: 14px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item:nth-child(1) dl dd .txt {
    margin-top: 10px;
  }
}

.renewSoil-info .item:nth-child(1) dl dd .txt .t1 {
  text-align: center;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item:nth-child(2) dl dt {
    padding-left: 30px;
  }
}

.renewSoil-info .item:nth-child(2) dl dd {
  display: grid;
  grid-template-columns: 172px 271px;
  justify-content: center;
  gap: 0 23px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item:nth-child(2) dl dd {
    grid-template-columns: 117px 162px;
    gap: 0 14px;
  }
}

.renewSoil-info .item:nth-child(2) dl dd .image {
  width: 172px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item:nth-child(2) dl dd .image {
    width: 117px;
  }
}

.renewSoil-info .item:nth-child(2) dl dd .txt .t1 {
  margin-top: 25px;
}

@media screen and (max-width: 991px) {
  .renewSoil-info .item:nth-child(2) dl dd .txt .t1 {
    margin-top: 15px;
  }
}

.renewRitasu {
  position: relative;
  padding: 90px 0 150px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .renewRitasu {
    padding: 60px 0 75px;
  }
}

@media screen and (max-width: 1376px) and (min-width: 992px) {
  .renewRitasu .inner {
    padding: 0;
  }
}

.renewRitasu::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background: #faffea;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.renewRitasu::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: #faffea;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

@media screen and (max-width: 991px) {
  .renewRitasu::after {
    background-size: 50px;
  }
}

.renewRitasu .ttl-dot {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
}

@media screen and (max-width: 991px) {
  .renewRitasu .ttl-dot {
    flex-direction: column;
    gap: 10px;
    padding-bottom: 30px;
  }
}

.renewRitasu .ttl-dot sup {
  vertical-align: text-top;
}

.renewRitasu .ttl-dot .no {
  font-size: 1.8rem;
  border: 1px solid #5e3b18;
  display: inline-block;
  padding: 7px 10px;
  line-height: 1;
}

@media screen and (max-width: 991px) {
  .renewRitasu .ttl-dot .no {
    font-size: 1.6rem;
  }
}

.renewRitasu .leadtxt {
  margin-bottom: 50px;
}

@media screen and (max-width: 991px) {
  .renewRitasu .leadtxt {
    margin-bottom: 25px;
  }
}

.renewRitasu .leadtxt p {
  font-weight: 500;
}

.renewRitasu-box {
  position: relative;
  padding: 80px 60px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box {
    padding: 0;
  }
}

@media screen and (min-width: 992px) {
  .renewRitasu-box::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
  }
}

.renewRitasu-box-wrap {
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-wrap {
    padding: 0 20px;
    margin-top: -21px;
  }
  .renewRitasu-box-wrap > * {
    position: relative;
    z-index: 2;
  }
  .renewRitasu-box-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: calc(100% - 40px);
    background: url(../img/img-common/bg_white.webp) left center repeat;
    background-size: 50px;
  }
}

.renewRitasu-box-items {
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items {
    margin-top: 30px;
  }
}

.renewRitasu-box-items .wbox {
  background: #fff;
  border-radius: 20px;
  max-width: 1080px;
  margin-inline: auto;
  width: 100%;
  padding: 33px 43px 33px 47px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox {
    padding: 20px;
  }
}

.renewRitasu-box-items .wbox + .wbox {
  margin-top: 48px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox + .wbox {
    margin-top: 28px;
  }
}

.renewRitasu-box-items .wbox .flex {
  display: grid;
}

@media screen and (min-width: 992px) {
  .renewRitasu-box-items .wbox .flex {
    grid-template-columns: 55% 1fr;
    gap: 47px;
    place-items: start left;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox .flex {
    gap: 20px;
  }
}

.renewRitasu-box-items .wbox .flex .item {
  width: 100%;
}

.renewRitasu-box-items .wbox h4 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 20px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox h4 {
    padding: 0 0.5em;
    font-size: 1.8rem;
  }
}

.renewRitasu-box-items .wbox h4 + dl {
  min-height: 76px;
  background: #faffea;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-right: 40px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox h4 + dl {
    display: flex;
    flex-direction: column;
    padding-right: 10px;
  }
}

.renewRitasu-box-items .wbox dl {
  display: grid;
  padding: 0 20px;
}

@media screen and (min-width: 992px) {
  .renewRitasu-box-items .wbox dl {
    grid-template-columns: 100px 1fr;
    gap: 10px;
    place-items: center left;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox dl {
    grid-template-columns: 6em 1fr;
    gap: 5px;
  }
}

.renewRitasu-box-items .wbox dl + dl {
  margin-top: 12px;
}

.renewRitasu-box-items .wbox dl dt {
  font-size: 1.8rem;
  font-weight: 500;
  color: #5e3b18;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox dl dt {
    font-size: 1.5rem;
  }
}

.renewRitasu-box-items .wbox dl dd {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box-items .wbox dl dd {
    font-size: 1.5rem;
  }
}

.renewRitasu-box .flex01 {
  display: grid;
  margin-top: 30px;
}

@media screen and (min-width: 992px) {
  .renewRitasu-box .flex01 {
    grid-template-columns: 1fr 410px;
    gap: 70px;
    place-items: center left;
    padding-left: 20px;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-box .flex01 {
    display: flex;
    flex-direction: column-reverse;
    gap: 20px;
    margin-top: 25px;
  }
}

.renewRitasu-box .flex02 {
  display: grid;
  margin-top: 30px;
}

@media screen and (min-width: 992px) {
  .renewRitasu-box .flex02 {
    grid-template-columns: 1fr 528px;
    gap: 70px;
    place-items: center left;
    padding-left: 20px;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-box .flex02 {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 25px;
  }
}

@media screen and (min-width: 992px) {
  .renewRitasu-box.--no01 {
    min-height: 977px;
  }
  .renewRitasu-box.--no01::after {
    background-image: url(../img/img-renew/bg_ritasu01.webp);
    aspect-ratio: 1376 / 977;
    width: 1376px;
  }
}

@media screen and (min-width: 992px) {
  .renewRitasu-box.--no02 {
    min-height: 599px;
  }
  .renewRitasu-box.--no02::after {
    background-image: url(../img/img-renew/bg_ritasu02.webp);
    aspect-ratio: 1408 / 599;
    width: 1408px;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-box.--no02 .renewRitasu-ttl .no {
    padding-bottom: 1em;
  }
}

@media screen and (min-width: 992px) {
  .renewRitasu-box.--no03 {
    min-height: 1771px;
  }
  .renewRitasu-box.--no03::after {
    background-image: url(../img/img-renew/bg_ritasu03.webp);
    aspect-ratio: 1408 / 1771;
    width: 1408px;
  }
}

.renewRitasu-box + .renewRitasu-box {
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-box + .renewRitasu-box {
    margin-top: 20px;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-box .bg-top {
    background: url(../img/img-renew/bg_ritasu_top.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 678 / 178;
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-box .bg-bottom {
    background: url(../img/img-renew/bg_ritasu_bottom.webp) left bottom no-repeat;
    background-size: 100%;
    aspect-ratio: 676 / 190;
    width: 100%;
    margin-top: -21px;
  }
}

.renewRitasu-list ul > li {
  display: flex;
  align-items: flex-start;
  /* 上端（1行目）に合わせる */
  gap: 0.7em;
  /* ドットとテキストの距離 */
  line-height: 1.5em;
  font-size: 1.8rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .renewRitasu-list ul > li {
    font-size: 1.6rem;
  }
}

.renewRitasu-list ul > li::before {
  content: "";
  flex-shrink: 0;
  /* ドットが潰れないように固定 */
  width: 0.5em;
  height: 0.5em;
  background: #e07f1d;
  border-radius: 50%;
  /* 1行目の中央に持ってくるための調整 */
  margin-top: calc((1.5em - 0.5em) / 2);
  /* ↑ (line-height - ドットの高さ) / 2 */
}

.renewRitasu-list ul > li + li {
  margin-top: 20px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-list ul > li + li {
    margin-top: 10px;
  }
}

.renewRitasu-arrow {
  margin-top: 15px;
}

.renewRitasu-arrow .icon {
  display: flex;
  justify-content: center;
  margin-bottom: 15px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-arrow .icon img {
    display: block;
    width: 130px;
  }
}

.renewRitasu-arrow ul {
  max-width: 728px;
  margin-inline: auto;
}

.renewRitasu-arrow ul li {
  background: url(../img/img-renew/bg01.webp) center center repeat;
  background-size: 50px;
  height: 67px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  border-radius: 50px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-arrow ul li {
    height: inherit;
    min-height: 65px;
    padding: 15px 25px;
    font-size: 1.7rem;
    text-align: center;
  }
}

.renewRitasu-arrow ul li + li {
  margin-top: 15px;
}

.renewRitasu-ttl {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  padding-bottom: 35px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-ttl {
    margin-left: -10px;
    align-items: flex-end;
    gap: 5px;
  }
}

.renewRitasu-ttl::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 20px;
  margin: auto;
  aspect-ratio: 143 / 30;
  width: 143px;
  background: url(../img/img-renew/line_renew.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .renewRitasu-ttl::after {
    width: 100px;
    left: 10px;
  }
}

.renewRitasu-ttl .no {
  width: 80px;
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .renewRitasu-ttl .no {
    width: 60px;
    justify-content: flex-start;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-ttl .txt {
    width: calc(100% - 60px);
  }
}

.renewRitasu-ttl .txt .t1 {
  color: #e07f1d;
  font-size: 2.5rem;
  font-family: "RocknRoll One", sans-serif;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .renewRitasu-ttl .txt .t1 {
    font-size: 1.7rem;
  }
}

.renewRitasu-ttl .txt .t2 {
  font-size: 4.4rem;
  font-weight: 700;
  color: #5e3b18;
  line-height: 1.4;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 991px) {
  .renewRitasu-ttl .txt .t2 {
    font-size: 2.8rem;
    letter-spacing: 0.05em;
  }
}

.renewRitasu-txt p {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2;
}

@media screen and (max-width: 1200px) {
  .renewRitasu-txt p {
    font-size: 1.6666666666666667vw;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-txt p {
    font-size: 1.6rem;
  }
}

.renewRitasu-txt p > span {
  background: linear-gradient(transparent 0%, #fff 0%);
  font-weight: 700;
}

.renewRitasu-txt p b {
  font-weight: 700;
}

.renewRitasu-txt p + p {
  margin-top: 15px;
}

.renewRitasu-info {
  position: relative;
  z-index: 2;
  margin-top: -30px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info {
    margin-top: 50px;
  }
}

.renewRitasu-info .flex {
  display: flex;
  justify-content: space-between;
  gap: 63px;
  max-width: 1163px;
  margin-inline: auto;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .flex {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }
}

.renewRitasu-info .item {
  width: 50%;
  max-width: 550px;
  border: 2px solid #83582c;
  border-radius: 30px;
  position: relative;
  padding: 0 24px 26px;
}

@media screen and (min-width: 992px) {
  .renewRitasu-info .item::after {
    content: "";
    position: absolute;
    top: -15px;
    right: -732px;
    margin: auto;
    aspect-ratio: 722 / 542;
    width: 722px;
    background: url(../img/img-renew/bg_flyer.webp) left center no-repeat;
    background-size: contain;
  }
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item {
    padding: 0 14px 19px;
    width: 100%;
  }
}

.renewRitasu-info .item .icon {
  position: absolute;
  left: -29px;
  top: -29px;
  width: 90px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item .icon {
    left: -14px;
    width: 71px;
  }
}

.renewRitasu-info .item dl dt {
  color: #83582c;
  font-size: 2.4rem;
  font-weight: 900;
  padding: 15px 0;
  letter-spacing: 0.02em;
  text-align: center;
  border-bottom: 2px dotted #83582c;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item dl dt {
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: 0.02em;
    padding: 10px 0;
  }
}

.renewRitasu-info .item dl dd {
  padding-top: 40px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item dl dd {
    padding-top: 20px;
  }
}

.renewRitasu-info .item dl dd .image {
  display: block;
}

.renewRitasu-info .item dl dd .image img {
  display: block;
  width: 100%;
}

.renewRitasu-info .item dl dd .txt .t1 {
  color: #c0a874;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.625;
  letter-spacing: 0.02em;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item dl dd .txt .t1 {
    font-size: 1.3rem;
    line-height: 1.385;
    letter-spacing: 0.01em;
  }
}

.renewRitasu-info .item dl dd .txt .t2 {
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.777;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item dl dd .txt .t2 {
    font-size: 1.4rem;
    line-height: 1.571;
    letter-spacing: 0.08em;
  }
}

.renewRitasu-info .item:nth-child(1) dl dd .image {
  width: 323px;
  margin: 0 auto;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item:nth-child(1) dl dd .image {
    width: 217px;
  }
}

.renewRitasu-info .item:nth-child(1) dl dd .txt {
  margin-top: 14px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item:nth-child(1) dl dd .txt {
    margin-top: 10px;
  }
}

.renewRitasu-info .item:nth-child(1) dl dd .txt .t1 {
  text-align: center;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item:nth-child(2) dl dt {
    padding-left: 30px;
  }
}

.renewRitasu-info .item:nth-child(2) dl dd {
  display: grid;
  grid-template-columns: 172px 271px;
  justify-content: center;
  gap: 0 23px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item:nth-child(2) dl dd {
    grid-template-columns: 117px 162px;
    gap: 0 14px;
  }
}

.renewRitasu-info .item:nth-child(2) dl dd .image {
  width: 172px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item:nth-child(2) dl dd .image {
    width: 117px;
  }
}

.renewRitasu-info .item:nth-child(2) dl dd .txt .t1 {
  margin-top: 25px;
}

@media screen and (max-width: 991px) {
  .renewRitasu-info .item:nth-child(2) dl dd .txt .t1 {
    margin-top: 15px;
  }
}

/* 会社案内 */
.companyConcept {
  padding: 90px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .companyConcept {
    padding: 60px 0 calc(75px + 15vw);
  }
}

.companyConcept-box {
  position: relative;
  padding-top: 100px;
}

@media screen and (min-width: 992px) {
  .companyConcept-box {
    min-height: 1225px;
  }
}

@media screen and (max-width: 991px) {
  .companyConcept-box {
    padding-top: 0;
  }
}

@media screen and (min-width: 992px) {
  .companyConcept-box::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url(../img/img-company/bg_concept.webp);
    aspect-ratio: 1236 / 1225;
    width: 1236px;
  }
}

@media screen and (max-width: 991px) {
  .companyConcept-box .bg-top {
    background: url(../img/img-equipment/bg_reason_top.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 678 / 178;
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .companyConcept-box .bg-bottom {
    background: url(../img/img-equipment/bg_reason_bottom.webp) left bottom no-repeat;
    background-size: 100%;
    aspect-ratio: 676 / 190;
    width: 100%;
    margin-top: -21px;
  }
}

.companyConcept-box .flex {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin-inline: auto;
  display: grid;
}

@media screen and (min-width: 992px) {
  .companyConcept-box .flex {
    grid-template-columns: 40% 1fr;
    place-items: start left;
    gap: 70px;
  }
}

@media screen and (max-width: 991px) {
  .companyConcept-box .flex {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
}

.companyConcept-box .flex .item {
  height: 100%;
  width: 100%;
}

.companyConcept-box .flex .item .txt .t1 {
  font-size: 1.8rem;
  color: #008641;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .companyConcept-box .flex .item .txt .t1 {
    font-size: 1.6rem;
  }
}

.companyConcept-box .flex .item .txt .t2 {
  margin-top: 30px;
  font-size: 1.8rem;
  color: #5e3b18;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .companyConcept-box .flex .item .txt .t2 {
    font-size: 1.6rem;
    margin-top: 20px;
  }
}

@media screen and (max-width: 991px) {
  .companyConcept-box-wrap {
    position: relative;
    padding: 0 30px;
    margin-top: -21px;
  }
  .companyConcept-box-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: calc(100% - 40px);
    background: #faffea;
  }
}

.companyConcept-ttl {
  height: 100%;
}

.companyConcept-ttl .t1 span {
  font-size: 2rem;
  font-weight: 700;
  padding-bottom: 10px;
  background-image: linear-gradient(to right, #666666 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

@media screen and (max-width: 991px) {
  .companyConcept-ttl .t1 span {
    font-size: 1.6rem;
  }
}

.companyConcept-ttl .t2 {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding-top: 40px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .companyConcept-ttl .t2 {
    display: table;
    margin-inline: auto;
    width: 90%;
    padding-top: 25px;
  }
}

.companyConcept-ttl .t2::after {
  content: "";
  position: absolute;
  bottom: 30px;
  left: 0;
  right: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  width: 180px;
  background: url(../img/img-company/cross.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .companyConcept-ttl .t2::after {
    width: 90px;
    right: inherit;
    left: 50px;
  }
}

.companyConcept-ttl .t2 > span {
  font-size: 9rem;
  font-family: "RocknRoll One", sans-serif;
  line-height: 1;
  position: relative;
  z-index: 2;
  letter-spacing: 0.4em;
  white-space: nowrap;
}

@media screen and (max-width: 991px) {
  .companyConcept-ttl .t2 > span {
    font-size: 6.4rem;
    letter-spacing: 0.3em;
    display: block;
  }
}

.companyConcept-ttl .t2 > span:nth-child(1) {
  color: #008741;
}

.companyConcept-ttl .t2 > span:nth-child(2) {
  margin-top: auto;
  padding-left: 1.6em;
  color: #5e3b18;
  padding-top: 85px;
}

@media screen and (max-width: 991px) {
  .companyConcept-ttl .t2 > span:nth-child(2) {
    padding-left: 0;
    margin-left: auto;
    padding-top: 35px;
    text-align: right;
  }
}

.companyConcept-movie {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin: 60px auto 0;
  width: 100%;
  aspect-ratio: 1000 / 570;
}

@media screen and (min-width: 992px) {
  .companyConcept-movie {
    position: absolute;
    bottom: -640px;
    left: 0;
    right: 0;
  }
}

@media screen and (max-width: 991px) {
  .companyConcept-movie {
    margin-top: 25px;
  }
}

.companyConcept-movie video {
  width: 100%;
  height: 100%;
}

.companyOmoi {
  position: relative;
  padding: 90px 0 calc(140px + 15vw);
  position: relative;
  margin-top: -15vw;
}

@media screen and (max-width: 991px) {
  .companyOmoi {
    padding: 60px 0 calc(75px + 15vw);
  }
}

.companyOmoi::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background-color: #faffea;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.companyOmoi::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background-color: #faffea;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

.companyOmoi .inner {
  max-width: 1260px;
}

@media screen and (min-width: 992px) {
  .companyOmoi-lead .flex {
    display: grid;
    grid-template-columns: 1fr 239px;
    gap: 60px;
    place-items: start left;
  }
}

.companyOmoi-lead .flex .item p {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2;
  padding-top: 15px;
}

@media screen and (max-width: 991px) {
  .companyOmoi-lead .flex .item p {
    font-size: 1.6rem;
    padding-top: 0;
    line-height: 1.8;
  }
}

.companyOmoi-lead .flex .item .image .txt {
  padding-top: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

@media screen and (max-width: 991px) {
  .companyOmoi-lead .flex .item .image .txt {
    gap: 10px;
  }
}

.companyOmoi-lead .flex .item .image .txt > span {
  font-weight: 700;
  font-size: 1.6rem;
}

@media screen and (max-width: 991px) {
  .companyOmoi-lead .flex .item .image .txt > span {
    font-size: 1.3rem;
  }
}

.companyOmoi-lead .flex .item .image .txt > b {
  font-weight: 500;
  font-size: 2rem;
}

@media screen and (max-width: 991px) {
  .companyOmoi-lead .flex .item .image .txt > b {
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 991px) {
  .companyOmoi-lead .flex .item .spflex {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 50%;
    place-items: start left;
    padding-bottom: 15px;
  }
}

.companyOmoi-list {
  margin-top: 55px;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .companyOmoi-list {
    margin-top: 35px;
  }
}

.companyOmoi-list dl {
  border: 1px dashed #5e3b18;
  border-radius: 40px;
  max-width: 1160px;
  margin-inline: auto;
  padding: 30px 64px 46px;
}

@media screen and (max-width: 991px) {
  .companyOmoi-list dl {
    padding: 30px 30px 40px;
  }
}

.companyOmoi-list dl dt {
  text-align: center;
  color: #5e3b18;
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 15px;
}

@media screen and (max-width: 991px) {
  .companyOmoi-list dl dt {
    font-size: 1.7rem;
  }
}

.companyOmoi-list dl dd ul {
  display: grid;
}

@media screen and (min-width: 992px) {
  .companyOmoi-list dl dd ul {
    grid-template-columns: repeat(3, 1fr);
    gap: 0 33px;
  }
}

@media screen and (max-width: 991px) {
  .companyOmoi-list dl dd ul {
    gap: 14px;
  }
}

.companyOmoi-list dl dd ul li {
  background: #eeeade;
  border-radius: 20px;
  min-height: 79px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #5e3b18;
  font-size: 1.8rem;
  font-weight: 700;
  padding: 10px 15px;
}

@media screen and (max-width: 991px) {
  .companyOmoi-list dl dd ul li {
    min-height: inherit;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.8px;
    padding: 6px 15px;
    min-height: 63px;
  }
}

.companyOmoi-txt {
  padding-top: 40px;
}

.companyOmoi-txt p {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2;
}

@media screen and (max-width: 991px) {
  .companyOmoi-txt p {
    font-size: 1.6rem;
    line-height: 1.8;
  }
}

.companyOmoi-txt p > b {
  color: #016b34;
}

.companyOmoi-txt p + p {
  margin-top: 25px;
}

.companyOmoi-rinen {
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .companyOmoi-rinen {
    margin-top: 30px;
  }
}

.companyOmoi-rinen-wrap {
  position: relative;
}

@media screen and (min-width: 992px) {
  .companyOmoi-rinen-wrap {
    min-height: 639px;
    padding-top: 70px;
  }
}

@media screen and (max-width: 991px) {
  .companyOmoi-rinen-wrap {
    padding-top: 0;
    border: 1px solid #97d3b0;
    padding: 25px;
    border-radius: 40px;
  }
}

@media screen and (min-width: 992px) {
  .companyOmoi-rinen-wrap::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url(../img/img-company/bg_rinen.webp);
    aspect-ratio: 1236 / 639;
    width: 1236px;
  }
}

.companyOmoi-rinen-wrap .ttl-dot {
  margin-bottom: 0;
}

.companyOmoi-rinen-wrap .flex {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 30px;
  margin: -40px auto 0;
  max-width: 1100px;
}

@media screen and (max-width: 991px) {
  .companyOmoi-rinen-wrap .flex {
    margin: 25px 0 0;
    flex-direction: column;
    gap: 0;
  }
}

@media screen and (min-width: 992px) {
  .companyOmoi-rinen-wrap .flex .item:nth-child(2) {
    width: 60%;
    max-width: 600px;
  }
}

.companyOmoi-rinen-wrap .flex .item p {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.5;
}

@media screen and (max-width: 991px) {
  .companyOmoi-rinen-wrap .flex .item p {
    font-size: 1.6rem;
    line-height: 1.8;
  }
}

.companyOmoi-rinen-wrap .flex .item p .t1 {
  font-size: 3.8rem;
  font-weight: 400;
  color: #2da94b;
  font-family: "RocknRoll One", sans-serif;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .companyOmoi-rinen-wrap .flex .item p .t1 {
    font-size: 3rem;
  }
}

.companyOmoi-rinen-wrap .flex .item p .t2 {
  font-size: 3.8rem;
  font-weight: 400;
  color: #783b22;
  font-family: "RocknRoll One", sans-serif;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .companyOmoi-rinen-wrap .flex .item p .t2 {
    font-size: 3rem;
  }
}

@media screen and (max-width: 991px) {
  .companyOmoi-rinen-wrap .flex .item img {
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -40vw;
    margin-right: -45vw;
    width: 85vw;
    display: block;
    max-width: inherit;
  }
}

.companyValued {
  padding: 120px 0 calc(80px + 15vw);
}

@media screen and (max-width: 991px) {
  .companyValued {
    padding: 60px 0 calc(75px + 15vw);
  }
}

.companyValued .inner {
  max-width: 1260px;
}

.companyValued .leadtxt p {
  color: #fff;
  text-align: left;
  font-weight: 500;
  display: table;
  margin-inline: auto;
}

.companyValued-box {
  position: relative;
  padding-top: 95px;
  margin-top: 45px;
}

@media screen and (min-width: 992px) {
  .companyValued-box {
    min-height: 862px;
  }
}

@media screen and (max-width: 991px) {
  .companyValued-box {
    padding-top: 0;
  }
}

@media screen and (min-width: 992px) {
  .companyValued-box::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url(../img/img-company/bg_guidelines.webp);
    aspect-ratio: 1236 / 862;
    width: 1236px;
  }
}

@media screen and (max-width: 991px) {
  .companyValued-box .bg-top {
    background: url(../img/img-equipment/bg_reason_top.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 678 / 178;
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .companyValued-box .bg-bottom {
    background: url(../img/img-equipment/bg_reason_bottom.webp) left bottom no-repeat;
    background-size: 100%;
    aspect-ratio: 676 / 190;
    width: 100%;
    margin-top: -21px;
  }
}

.companyValued-box .ttl-dot {
  margin-bottom: 50px;
}

@media screen and (max-width: 991px) {
  .companyValued-box .ttl-dot {
    margin-bottom: 30px;
  }
}

.companyValued-box-wrap {
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .companyValued-box-wrap {
    position: relative;
    padding: 0 25px;
    margin-top: -21px;
  }
  .companyValued-box-wrap > * {
    position: relative;
    z-index: 2;
  }
  .companyValued-box-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: calc(100% - 40px);
    background: #faffea;
  }
}

.companyValued-box-wrap ul {
  margin-inline: auto;
  display: table;
}

.companyValued-box-wrap ul li {
  position: relative;
  font-size: 2rem;
  font-weight: 700;
  padding-left: 70px;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .companyValued-box-wrap ul li {
    font-size: 1.6rem;
    padding-left: 40px;
  }
}

.companyValued-box-wrap ul li + li {
  margin-top: 25px;
}

@media screen and (max-width: 991px) {
  .companyValued-box-wrap ul li + li {
    margin-top: 20px;
  }
}

.companyValued-box-wrap ul li::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  width: 42px;
  background-position: left center;
  background-repeat: no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .companyValued-box-wrap ul li::before {
    bottom: inherit;
    width: 25px;
  }
}

.companyValued-box-wrap ul li:nth-child(1)::before {
  background-image: url(../img/img-company/no01.svg);
}

.companyValued-box-wrap ul li:nth-child(2)::before {
  background-image: url(../img/img-company/no02.svg);
}

.companyValued-box-wrap ul li:nth-child(3)::before {
  background-image: url(../img/img-company/no03.svg);
}

.companyValued-box-wrap ul li:nth-child(4)::before {
  background-image: url(../img/img-company/no04.svg);
}

.companyValued-box-wrap ul li:nth-child(5)::before {
  background-image: url(../img/img-company/no05.svg);
}

.companyValued-box-wrap .images {
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .companyValued-box-wrap .images {
    margin-top: 25px;
  }
}

.companyValued-bottom {
  margin: 50px auto 0;
  background-image: linear-gradient(to right, #fff 2px, transparent 2px), linear-gradient(to right, #fff 2px, transparent 2px);
  background-size: 5px 2px, 5px 2px;
  background-repeat: repeat-x, repeat-x;
  background-position: left bottom, left top;
  padding: 25px;
  max-width: 1115px;
}

@media screen and (max-width: 991px) {
  .companyValued-bottom {
    padding: 30px 0;
  }
}

.companyValued-bottom .flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1000px;
  margin-inline: auto;
}

@media screen and (max-width: 991px) {
  .companyValued-bottom .flex {
    display: grid;
    grid-template-columns: 45% 1fr;
    gap: 20px;
    place-items: start left;
  }
}

@media screen and (max-width: 991px) {
  .companyValued-bottom .flex .item {
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .companyValued-bottom .flex .image > img {
    width: 100%;
    display: block;
  }
}

.companyValued-bottom .flex p {
  color: #fff;
}

.companyValued-bottom .flex .t1 {
  font-size: 2rem;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .companyValued-bottom .flex .t1 {
    font-size: 1.6rem;
  }
}

.companyValued-bottom .flex .t2 {
  padding-top: 30px;
  font-size: 1.6rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .companyValued-bottom .flex .t2 {
    font-size: 1.5rem;
    padding-top: 20px;
  }
}

.companyInfo {
  padding: 120px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .companyInfo {
    padding: 60px 0 calc(75px + 15vw);
  }
}

.companyInfo-box {
  position: relative;
  padding-top: 90px;
}

@media screen and (min-width: 992px) {
  .companyInfo-box {
    min-height: 1467px;
  }
}

@media screen and (max-width: 991px) {
  .companyInfo-box {
    padding-top: 0;
  }
}

@media screen and (min-width: 992px) {
  .companyInfo-box::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url(../img/img-company/bg_info.webp);
    aspect-ratio: 1266 / 1467;
    width: 1266px;
  }
}

@media screen and (max-width: 991px) {
  .companyInfo-box .bg-top {
    background: url(../img/img-equipment/bg_reason_top.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 678 / 178;
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .companyInfo-box .bg-bottom {
    background: url(../img/img-equipment/bg_reason_bottom.webp) left bottom no-repeat;
    background-size: 100%;
    aspect-ratio: 676 / 190;
    width: 100%;
    margin-top: -21px;
  }
}

.companyInfo-box .flex {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin-inline: auto;
  display: grid;
}

@media screen and (min-width: 992px) {
  .companyInfo-box .flex {
    grid-template-columns: 40% 1fr;
    place-items: start left;
    gap: 70px;
  }
}

@media screen and (max-width: 991px) {
  .companyInfo-box .flex {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }
}

.companyInfo-box .flex .item {
  height: 100%;
  width: 100%;
}

.companyInfo-box .flex .item .txt .t1 {
  font-size: 1.8rem;
  color: #008641;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .companyInfo-box .flex .item .txt .t1 {
    font-size: 1.6rem;
  }
}

.companyInfo-box .flex .item .txt .t2 {
  margin-top: 30px;
  font-size: 1.8rem;
  color: #5e3b18;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .companyInfo-box .flex .item .txt .t2 {
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 991px) {
  .companyInfo-box-wrap {
    position: relative;
    padding: 0 25px;
    margin-top: -21px;
  }
  .companyInfo-box-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: calc(100% - 40px);
    background: #faffea;
  }
}

.companyInfo-tbl {
  max-width: 1050px;
  margin-inline: auto;
  position: relative;
  z-index: 2;
  padding: 0px;
  width: 100%;
  table-layout: fixed;
  word-wrap: break-word;
  white-space: normal;
}

.companyInfo-tbl th,
.companyInfo-tbl td {
  font-size: 1.8rem;
  font-weight: 500;
  vertical-align: middle;
  text-align: left;
  background-image: linear-gradient(to right, #008741 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
  padding: 35px 15px;
}

@media screen and (max-width: 991px) {
  .companyInfo-tbl th,
  .companyInfo-tbl td {
    padding: 25px 5px;
    font-size: 1.5rem;
  }
}

.companyInfo-tbl th {
  font-weight: 700;
  width: 190px;
  color: #008641;
}

@media screen and (max-width: 991px) {
  .companyInfo-tbl th {
    width: 6em;
    padding: 0 10px 0 0;
  }
}

.companyInfo-tbl td a {
  text-decoration: underline !important;
}

@media screen and (min-width: 992px) {
  .companyInfo-tbl td a {
    text-decoration: none;
  }
}

.companyBalloon {
  padding: 120px 0 80px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .companyBalloon {
    padding: 60px 0 35px;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon .inner {
    padding: 0 5%;
  }
}

@keyframes balloonFloatY {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-14px);
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon .ttl-dot {
    font-size: 2.6rem;
  }
}

.companyBalloon .baloon01,
.companyBalloon .baloon02,
.companyBalloon .baloon03,
.companyBalloon .baloon04,
.companyBalloon .baloon05 {
  position: absolute;
  animation-name: balloonFloatY;
  animation-duration: 3.6s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  will-change: transform;
}

.companyBalloon .baloon01 {
  animation-delay: 0s;
}

@media screen and (min-width: 992px) {
  .companyBalloon .baloon01 {
    left: 87px;
    top: -100px;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon .baloon01 {
    width: 55px;
    right: 0;
    top: -30px;
  }
}

.companyBalloon .baloon02 {
  animation-delay: 0.5s;
}

@media screen and (min-width: 992px) {
  .companyBalloon .baloon02 {
    left: 0;
    top: 160px;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon .baloon02 {
    width: 50px;
    left: calc(50% + 60px);
    bottom: 40px;
  }
}

.companyBalloon .baloon03 {
  animation-delay: 1s;
}

@media screen and (min-width: 992px) {
  .companyBalloon .baloon03 {
    right: 90px;
    top: -100px;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon .baloon03 {
    width: 60px;
    right: calc(50% + 50px);
    bottom: 15px;
  }
}

.companyBalloon .baloon04 {
  animation-delay: 1.5s;
}

@media screen and (min-width: 992px) {
  .companyBalloon .baloon04 {
    right: -40px;
    top: 130px;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon .baloon04 {
    width: 40px;
    left: 20px;
    top: 100px;
  }
}

.companyBalloon .baloon05 {
  animation-delay: 2s;
}

@media screen and (min-width: 992px) {
  .companyBalloon .baloon05 {
    right: 70px;
    bottom: 0;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon .baloon05 {
    width: 53px;
    right: calc(50% - 30px);
    bottom: -20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .companyBalloon .baloon01,
  .companyBalloon .baloon02,
  .companyBalloon .baloon03,
  .companyBalloon .baloon04,
  .companyBalloon .baloon05 {
    animation: none;
  }
}

.companyBalloon-txt {
  position: relative;
}

@media screen and (max-width: 991px) {
  .companyBalloon-txt {
    padding-bottom: 180px;
  }
}

.companyBalloon-txt p {
  font-size: 2rem;
  text-align: center;
  color: #203237;
  line-height: 2.8;
}

@media screen and (max-width: 991px) {
  .companyBalloon-txt p {
    font-size: 1.6rem;
    line-height: 2;
  }
}

.companyBalloon-txt p b {
  font-size: 2.2rem;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .companyBalloon-txt p b {
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon-txt p + .spflex,
  .companyBalloon-txt p + p {
    margin-top: 25px;
  }
}

@media screen and (max-width: 991px) {
  .companyBalloon-txt .spflex {
    position: relative;
  }
  .companyBalloon-txt .spflex + p {
    margin-top: 25px;
  }
  .companyBalloon-txt .spflex.t1 {
    padding-right: 105px;
  }
  .companyBalloon-txt .spflex.t2 {
    padding-left: 95px;
    padding-right: 20px;
  }
}

/* 木の遊具 */
.equipmentReason {
  position: relative;
  padding: 90px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .equipmentReason {
    padding: 60px 0 calc(75px + 15vw);
  }
}

@media screen and (max-width: 1376px) and (min-width: 992px) {
  .equipmentReason .inner {
    padding: 0;
  }
}

.equipmentReason .bg01 {
  position: absolute;
  right: 0;
  top: 0;
  background: url(../img/img-equipment/bg01.webp) right top no-repeat;
  background-size: contain;
  aspect-ratio: 648 / 549;
  width: 648px;
  z-index: 1;
  mix-blend-mode: multiply;
}

.equipmentReason .circle {
  position: absolute;
  left: -500px;
  top: 120px;
  aspect-ratio: 1 / 1;
  width: 1030px;
  background: url(../img/img-common/circle01.webp) left center no-repeat;
  background-size: contain;
  z-index: 2;
}

.equipmentReason::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background: url(../img/img-common/bg_brown.webp) left center repeat;
  background-size: 100px;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.equipmentReason::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: url(../img/img-common/bg_brown.webp) left center repeat;
  background-size: 100px;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

@media screen and (max-width: 991px) {
  .equipmentReason::after {
    background-size: 50px;
  }
}

.equipmentReason-box {
  position: relative;
  padding-top: 80px;
}

@media screen and (max-width: 991px) {
  .equipmentReason-box {
    padding-top: 0;
  }
}

@media screen and (min-width: 992px) {
  .equipmentReason-box::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
  }
}

@media screen and (min-width: 992px) {
  .equipmentReason-box.--no01 {
    min-height: 657px;
  }
  .equipmentReason-box.--no01::after {
    background-image: url(../img/img-equipment/bg_reason01.webp);
    aspect-ratio: 1376 / 657;
    width: 1376px;
  }
  .equipmentReason-box.--no01 .image img {
    width: 110%;
    max-width: inherit;
    margin-left: -10%;
  }
}

@media screen and (max-width: 991px) {
  .equipmentReason-box.--no01 .flex {
    flex-direction: column-reverse;
  }
  .equipmentReason-box.--no01 .image {
    margin-top: 25px;
  }
}

@media screen and (min-width: 992px) {
  .equipmentReason-box.--no02 {
    min-height: 718px;
  }
  .equipmentReason-box.--no02::after {
    background-image: url(../img/img-equipment/bg_reason02.webp);
    aspect-ratio: 1408 / 718;
    width: 1408px;
  }
  .equipmentReason-box.--no02 .flex {
    grid-template-columns: 50% 1fr;
  }
  .equipmentReason-box.--no02 .image img {
    width: 110%;
    max-width: inherit;
    margin-left: -10%;
  }
}

@media screen and (min-width: 992px) {
  .equipmentReason-box.--no03 {
    min-height: 709px;
  }
  .equipmentReason-box.--no03::after {
    background-image: url(../img/img-equipment/bg_reason03.webp);
    aspect-ratio: 1432 / 709;
    width: 1432px;
  }
  .equipmentReason-box.--no03 .image img {
    width: 105%;
    max-width: inherit;
    margin-left: -5%;
    margin-top: -105px;
  }
}

@media screen and (max-width: 991px) {
  .equipmentReason-box.--no03 .image {
    margin-top: 25px;
  }
}

.equipmentReason-box + .equipmentReason-box {
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .equipmentReason-box + .equipmentReason-box {
    margin-top: 20px;
  }
}

@media screen and (max-width: 991px) {
  .equipmentReason-box .bg-top {
    background: url(../img/img-equipment/bg_reason_top.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 678 / 178;
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .equipmentReason-box .bg-bottom {
    background: url(../img/img-equipment/bg_reason_bottom.webp) left bottom no-repeat;
    background-size: 100%;
    aspect-ratio: 676 / 190;
    width: 100%;
    margin-top: -21px;
  }
}

.equipmentReason-box .flex {
  position: relative;
  z-index: 2;
  padding: 0 30px 0 45px;
  display: grid;
}

@media screen and (min-width: 992px) {
  .equipmentReason-box .flex {
    grid-template-columns: 60% 1fr;
    place-items: start left;
  }
}

@media screen and (max-width: 991px) {
  .equipmentReason-box .flex {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0 30px;
    margin-top: -21px;
  }
  .equipmentReason-box .flex::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: calc(100% - 40px);
    background: #faffea;
  }
  .equipmentReason-box .flex .item {
    position: relative;
    z-index: 2;
  }
}

.equipmentReason-ttl {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  padding-bottom: 35px;
}

@media screen and (max-width: 991px) {
  .equipmentReason-ttl {
    margin-left: -10px;
    gap: 5px;
  }
}

.equipmentReason-ttl::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  margin: auto;
  aspect-ratio: 180 / 20;
  width: 180px;
  background: url(../img/img-equipment/line_reason.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .equipmentReason-ttl::after {
    width: 150px;
    left: 10px;
  }
}

.equipmentReason-ttl .no {
  width: 80px;
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .equipmentReason-ttl .no {
    width: 60px;
    justify-content: flex-start;
  }
}

@media screen and (max-width: 991px) {
  .equipmentReason-ttl .txt {
    width: calc(100% - 60px);
  }
}

.equipmentReason-ttl .txt .t1 {
  color: #5e3b18;
  font-size: 2.5rem;
  font-family: "RocknRoll One", sans-serif;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .equipmentReason-ttl .txt .t1 {
    font-size: 1.7rem;
  }
}

.equipmentReason-ttl .txt .t2 {
  font-size: 4.6rem;
  font-weight: 700;
  color: #008741;
  line-height: 1.4;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 991px) {
  .equipmentReason-ttl .txt .t2 {
    font-size: 2.8rem;
    letter-spacing: 0.1em;
  }
}

.equipmentReason-txt {
  padding-top: 40px;
  padding-left: 20px;
}

@media screen and (max-width: 991px) {
  .equipmentReason-txt {
    padding-left: 0;
    padding-top: 25px;
  }
}

.equipmentReason-txt p {
  font-size: 2rem;
  font-weight: 500;
  line-height: 2;
}

@media screen and (max-width: 1200px) {
  .equipmentReason-txt p {
    font-size: 1.6666666666666667vw;
  }
}

@media screen and (max-width: 991px) {
  .equipmentReason-txt p {
    font-size: 1.6rem;
  }
}

.equipmentReason-txt p > span {
  background: linear-gradient(transparent 0%, #fff 0%);
  font-weight: 700;
}

.equipmentReason-txt p b {
  font-weight: 700;
}

.equipmentReason-txt p + p {
  margin-top: 15px;
}

.equipmentFeature {
  position: relative;
  padding: 90px 0 calc(140px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .equipmentFeature {
    padding: 60px 0 calc(75px + 15vw);
  }
}

.equipmentFeature .circle {
  position: absolute;
  left: -500px;
  bottom: 0;
  aspect-ratio: 1 / 1;
  width: 1030px;
  background: url(../img/img-common/circle01.webp) left center no-repeat;
  background-size: contain;
  z-index: 2;
}

.equipmentFeature::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background-color: #faffea;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.equipmentFeature::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background-color: #faffea;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

.equipmentFeature .flex {
  display: grid;
  position: relative;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .equipmentFeature .flex {
    grid-template-columns: repeat(3, 1fr);
    gap: 35px;
    margin-top: 80px;
  }
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex {
    gap: 40px;
    margin-top: 30px;
  }
}

.equipmentFeature .flex .item {
  position: relative;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 6px 0 #83582c;
  min-height: 498px;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item {
    min-height: auto;
    box-shadow: 0 7px 0 #83582c;
  }
}

.equipmentFeature .flex .item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 6px;
  border-radius: 100px;
  background: #83582c;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item::before {
    top: 18px;
    left: 0;
    transform: none;
    width: 5px;
    height: 65px;
  }
}

.equipmentFeature .flex .item dl {
  padding: 30px 35px 30px;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item dl {
    padding: 16px 22px 24px;
  }
}

.equipmentFeature .flex .item dl dt {
  position: relative;
  padding-bottom: 18px;
  margin-bottom: 25px;
  background-image: linear-gradient(to right, #b08f6f 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item dl dt {
    padding-left: 0;
    padding-bottom: 15px;
    margin-bottom: 18px;
  }
}

.equipmentFeature .flex .item dl dt .t1 {
  color: #444;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  position: relative;
  display: flex;
  align-items: flex-start;
  /* 上端（1行目）に合わせる */
  gap: 0.7em;
  /* ドットとテキストの距離 */
  line-height: 1.5em;
}

.equipmentFeature .flex .item dl dt .t1::before {
  content: "";
  flex-shrink: 0;
  /* ドットが潰れないように固定 */
  width: 0.5em;
  height: 0.5em;
  background: #e07f1d;
  border-radius: 50%;
  /* 1行目の中央に持ってくるための調整 */
  margin-top: calc((1.5em - 0.5em) / 2);
  /* ↑ (line-height - ドットの高さ) / 2 */
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item dl dt .t1 {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
  }
}

.equipmentFeature .flex .item dl dt .t2 {
  color: #865a2e;
  font-size: 3.5rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.4;
  margin-top: 2px;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item dl dt .t2 {
    font-size: 2.8rem;
    letter-spacing: 0.08em;
    line-height: 1.5;
  }
}

.equipmentFeature .flex .item dl dd .image {
  margin-bottom: 20px;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item dl dd .image {
    margin-bottom: 16px;
  }
}

.equipmentFeature .flex .item dl dd .image img {
  width: 100%;
  border-radius: 10px;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item dl dd .image img {
    border-radius: 8px;
  }
}

.equipmentFeature .flex .item dl dd .txt p {
  font-size: 1.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .equipmentFeature .flex .item dl dd .txt p {
    font-size: 1.5rem;
    line-height: 1.67;
    letter-spacing: 0.05em;
  }
}

.equipmentCase {
  padding: 90px 0 60px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .equipmentCase {
    padding: 60px 0 30px;
  }
}

.equipmentCase::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

@media screen and (max-width: 991px) {
  .equipmentCase::before {
    background-size: 50px;
  }
}

.equipmentCase::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

@media screen and (max-width: 991px) {
  .equipmentCase::after {
    background-size: 50px;
  }
}

.equipmentCase .leadtxt p {
  color: #fff;
}

@media screen and (max-width: 991px) {
  .equipmentCase .leadtxt p {
    text-align: center !important;
  }
}

.equipmentCase .inner {
  max-width: 1560px;
}

.equipmentCase .flex {
  display: grid;
  position: relative;
  z-index: 2;
  gap: 50px;
  margin-top: 85px;
}

@media screen and (min-width: 992px) {
  .equipmentCase .flex {
    grid-template-columns: repeat(4, 1fr);
    align-items: start;
  }
}

@media screen and (max-width: 991px) {
  .equipmentCase .flex {
    gap: 50px;
    margin: 35px auto 0;
    justify-content: center;
    width: 90%;
  }
}

.equipmentCase .flex .bgtxt {
  position: absolute;
  right: 0;
  top: -125px;
  width: 25vw;
  max-width: 365px;
}

@media screen and (min-width: 992px) {
  .equipmentCase .flex .item:nth-child(odd) {
    margin-top: 88px;
  }
}

@media screen and (max-width: 991px) {
  .equipmentCase .flex .item {
    width: 290px;
    margin: 0 auto;
  }
}

.equipmentCase .flex .item .image {
  border-radius: 20px;
  overflow: hidden;
}

.equipmentCase .flex .item .image img {
  width: 100%;
  display: block;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.equipmentCase .flex .item dl {
  margin-top: 15px;
}

@media screen and (max-width: 991px) {
  .equipmentCase .flex .item dl {
    margin-top: 20px;
  }
}

.equipmentCase .flex .item dl dt {
  color: #fff;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding-bottom: 30px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .equipmentCase .flex .item dl dt {
    font-size: 2.2rem;
    text-align: center;
    letter-spacing: 0.08em;
    padding-bottom: 28px;
  }
}

.equipmentCase .flex .item dl dt::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  aspect-ratio: 125 / 14;
  width: 125px;
  background: url(../img/img-equipment/line_case.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .equipmentCase .flex .item dl dt::after {
    right: 0;
    margin-inline: auto;
  }
}

.equipmentCase .flex .item dl dd {
  margin-top: 25px;
}

@media screen and (max-width: 991px) {
  .equipmentCase .flex .item dl dd {
    margin-top: 20px;
  }
}

.equipmentCase .flex .item dl dd .name {
  color: #c8e6c5;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: right;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 991px) {
  .equipmentCase .flex .item dl dd .name {
    font-size: 1.4rem;
    line-height: 1.6;
    text-align: center;
  }
}

.equipmentCase-btn {
  margin-top: 25px;
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .equipmentCase-btn {
    margin-top: 20px;
  }
}

.equipmentCase-btn > div {
  width: 100%;
  max-width: 215px;
  height: 50px;
  border-radius: 10px;
  background: #fff;
  color: #008741;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 2rem;
  font-weight: 700;
  padding-right: 10px;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .equipmentCase-btn > div {
    width: 162px;
    height: 38px;
    font-size: 1.5rem;
  }
}

.equipmentCase-btn > div::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  width: 15px;
  height: 9px;
  background: url(../img/img-common/arrow_right.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .equipmentCase-btn > div::after {
    right: 13px;
    width: 12px;
    height: 7px;
  }
}

.equipmentCase-btn > div > span {
  padding-right: 28px;
}

@media screen and (max-width: 991px) {
  .equipmentCase-btn > div > span {
    padding-right: 18px;
  }
}

/* 園庭安心パートナー */
.partnerLead {
  --arc-progress: 0;
  padding: 200px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .partnerLead {
    padding: 60px 0 calc(75px + 15vw);
  }
}

.partnerLead::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% - 15vw);
  bottom: 100%;
  transform: translateX(-50%);
  width: 130%;
  height: calc(15vw * var(--arc-progress));
  background: #faffea;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: center top;
}

.partnerLead::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: #faffea;
  height: calc(100% + 1px);
  width: 100%;
}

@media screen and (min-width: 992px) {
  .partnerLead .bg01 {
    position: absolute;
    right: 0;
    top: 0;
    background: url(../img/img-partner/bg01.webp) right top no-repeat;
    background-size: contain;
    aspect-ratio: 648 / 549;
    width: 648px;
    z-index: 1;
    mix-blend-mode: multiply;
  }
}

.partnerLead-ttl {
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 40px;
  letter-spacing: 0.05em;
  color: #008741;
  display: flex;
  justify-content: center;
  margin-top: -8vw;
}

@media screen and (max-width: 991px) {
  .partnerLead-ttl {
    font-size: 2rem;
    letter-spacing: 0em;
    margin-bottom: 30px;
  }
}

.partnerLead-ttl > span {
  position: relative;
  text-align: center;
  padding: 0 80px 5px;
}

@media screen and (max-width: 991px) {
  .partnerLead-ttl > span {
    padding: 0 0 0;
    width: 100%;
  }
}

.partnerLead-ttl > span::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(../img/img-common/line_left.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 39 / 44;
  width: 39px;
}

@media screen and (max-width: 991px) {
  .partnerLead-ttl > span::before {
    width: 24px;
    bottom: 5px;
  }
}

.partnerLead-ttl > span::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  background: url(../img/img-common/line_right.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 39 / 44;
  width: 39px;
}

@media screen and (max-width: 991px) {
  .partnerLead-ttl > span::after {
    width: 24px;
    bottom: 5px;
  }
}

.partnerLead .flex {
  display: grid;
}

@media screen and (min-width: 992px) {
  .partnerLead .flex {
    grid-template-columns: repeat(3, 1fr);
    gap: 35px;
    place-content: center;
    margin-bottom: 40px;
  }
}

@media screen and (max-width: 991px) {
  .partnerLead .flex {
    gap: 30px;
  }
}

.partnerLead .flex .item {
  border-radius: 20px;
  border: 3px solid #a3c9b6;
  box-shadow: 0 4px 0 0 #a3c9b6;
  padding: 25px;
  background: #fff;
}

@media screen and (max-width: 991px) {
  .partnerLead .flex .item {
    padding: 20px;
    border-width: 2px;
  }
}

.partnerLead .flex .item dl {
  margin-top: 15px;
  position: relative;
}

.partnerLead .flex .item dl::after {
  content: "";
  position: absolute;
  bottom: -50px;
  right: 0;
  left: 0;
  margin: auto;
  background: url(../img/img-partner/arrow_bottom.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 1 / 1;
  width: 40px;
}

@media screen and (max-width: 991px) {
  .partnerLead .flex .item dl::after {
    top: inherit;
    width: 30px;
    bottom: -40px;
  }
}

.partnerLead .flex .item dl dt {
  font-size: 3rem;
  font-weight: 700;
  color: #5e3b18;
  line-height: 1.5;
  margin-bottom: 5px;
  text-align: center;
}

@media screen and (max-width: 991px) {
  .partnerLead .flex .item dl dt {
    font-size: 2.4rem;
    text-align: center;
  }
}

.partnerLead .flex .item dl dd p {
  font-weight: 500;
  text-align: center;
}

.partnerLead .kusabanaBnr {
  margin-top: 75px;
}

@media screen and (max-width: 991px) {
  .partnerLead .kusabanaBnr {
    margin-top: 40px;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -48vw;
    margin-right: -48vw;
    width: 96vw;
  }
}

.partnerSelection {
  padding: 90px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .partnerSelection {
    padding: 60px 0 calc(75px + 15vw);
  }
}

@media screen and (min-width: 992px) {
  .partnerSelection .bg02 {
    position: fixed;
    left: 0;
    top: 90px;
    background: url(../img/img-partner/bg02.webp) right top no-repeat;
    background-size: contain;
    aspect-ratio: 424 / 856;
    width: 424px;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 1;
  }
}

@media screen and (min-width: 992px) {
  .partnerSelection.is-bg02-fixed .bg02 {
    opacity: 1;
    visibility: visible;
  }
}

.partnerSelection::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

@media screen and (max-width: 991px) {
  .partnerSelection::before {
    background-size: 50px;
  }
}

.partnerSelection::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

@media screen and (max-width: 991px) {
  .partnerSelection::after {
    background-size: 50px;
  }
}

.partnerSelection::before, .partnerSelection::after {
  opacity: 0;
  -webkit-transition: opacity 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53);
  transition: opacity 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53);
}

.partnerSelection.is-active::before, .partnerSelection.is-active::after {
  opacity: 1;
}

.partnerSelection-item {
  background: #faffea;
  padding: 30px 0 0 0;
  min-height: 465px;
  position: relative;
  border-radius: 20px;
}

@media screen and (max-width: 991px) {
  .partnerSelection-item {
    padding: 20px 25px 35px 0;
  }
}

.partnerSelection-item + .partnerSelection-item {
  margin-top: 50px;
}

@media screen and (max-width: 991px) {
  .partnerSelection-item + .partnerSelection-item {
    margin-top: 45px;
  }
}

@media screen and (min-width: 992px) {
  .partnerSelection-item .image {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 30px;
    margin: auto;
    display: flex;
    align-items: center;
  }
}

@media screen and (max-width: 991px) {
  .partnerSelection-item .image {
    margin-left: 25px;
    margin-bottom: 20px;
  }
}

.partnerSelection-ttl, .partnerSelection-txt {
  padding-left: 70px;
  width: 45%;
}

@media screen and (max-width: 991px) {
  .partnerSelection-ttl, .partnerSelection-txt {
    padding-left: 25px;
    width: 100%;
  }
}

.partnerSelection-ttl {
  margin-bottom: 40px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .partnerSelection-ttl {
    margin-bottom: 20px;
  }
}

.partnerSelection-ttl::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  height: 90%;
  width: 5px;
  background: #83582c;
  border-radius: 20px;
}

.partnerSelection-ttl .t1 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #444;
  position: relative;
  padding-left: 20px;
}

@media screen and (max-width: 991px) {
  .partnerSelection-ttl .t1 {
    font-size: 1.6rem;
    padding-left: 17px;
  }
}

.partnerSelection-ttl .t1::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  width: 11px;
  background: #e07f1d;
  border-radius: 50%;
}

@media screen and (max-width: 991px) {
  .partnerSelection-ttl .t1::before {
    width: 8px;
  }
}

.partnerSelection-ttl .t2 {
  color: #865a2e;
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  padding-bottom: 10px;
  background-image: linear-gradient(to right, #5e3b18 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

@media screen and (max-width: 991px) {
  .partnerSelection-ttl .t2 {
    font-size: 2.8rem;
  }
}

.partnerSelection-txt p {
  font-weight: 500;
  font-size: 1.7rem;
}

@media screen and (max-width: 991px) {
  .partnerSelection-txt p {
    font-size: 1.5rem;
  }
}

.partnerSelection-schedule {
  display: flex;
  justify-content: center;
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .partnerSelection-schedule {
    margin-top: 55px;
  }
}

.partnerSelection-schedule dl {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  padding: 30px 0;
  background-image: linear-gradient(to right, #fff 2px, transparent 2px), linear-gradient(to right, #fff 2px, transparent 2px);
  background-size: 5px 2px, 5px 2px;
  background-repeat: repeat-x, repeat-x;
  background-position: left top, left bottom;
}

@media screen and (max-width: 991px) {
  .partnerSelection-schedule dl {
    flex-direction: column;
    align-items: center;
    padding: 20px 10px 25px;
    gap: 15px;
  }
}

.partnerSelection-schedule dl dt {
  font-size: 1.9rem;
  font-weight: 500;
  color: #fff;
}

@media screen and (max-width: 991px) {
  .partnerSelection-schedule dl dt {
    font-size: 1.7rem;
  }
}

@media screen and (min-width: 992px) {
  .partnerSelection-schedule dl dd {
    width: 366px;
  }
}

@media screen and (max-width: 991px) {
  .partnerSelection-schedule dl dd {
    width: 100%;
  }
}

.partnerMaintenance {
  padding: 140px 0 calc(80px + 15vw);
  position: relative;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance {
    padding: 60px 0 calc(75px + 15vw);
  }
}

.partnerMaintenance::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% - 15vw);
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background: #faffea;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: center top;
}

.partnerMaintenance::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: #faffea;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

@media screen and (min-width: 992px) {
  .partnerMaintenance .bg03 {
    position: absolute;
    left: 0;
    top: -60px;
    background: url(../img/img-partner/bg03.webp) right top no-repeat;
    background-size: contain;
    aspect-ratio: 692 / 1107;
    width: 692px;
    z-index: 1;
  }
}

.partnerMaintenance-items {
  display: grid;
}

@media screen and (min-width: 992px) {
  .partnerMaintenance-items {
    grid-template-columns: 1fr 1fr;
    gap: 48px;
  }
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-items {
    gap: 35px;
  }
}

.partnerMaintenance-items .bgbox {
  border-radius: 20px;
  padding: 50px 15px;
  position: relative;
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-items .bgbox {
    padding: 25px;
  }
}

@media screen and (min-width: 992px) {
  .partnerMaintenance-items .bgbox .flex {
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 40px;
  }
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-items .bgbox .flex .spflex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}

.partnerMaintenance-items .bgbox .flex .image {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-items .bgbox .flex .image {
    gap: 7px;
  }
}

.partnerMaintenance-items .bgbox .flex .image > div {
  width: 80%;
  color: #fff;
  text-align: center;
  padding: 5px;
  border: 1px solid #fff;
  line-height: 1;
  font-size: 1.8rem;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-items .bgbox .flex .image > div {
    width: 100%;
    font-size: 1.4rem;
  }
}

.partnerMaintenance-txt {
  padding: 0 30px;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-txt {
    padding: 0;
  }
}

.partnerMaintenance-ttl {
  margin-bottom: 40px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-ttl {
    margin-bottom: 20px;
  }
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-ttl::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -25px;
    margin: auto;
    height: 90%;
    width: 5px;
    background: #83582c;
    border-radius: 20px;
  }
}

.partnerMaintenance-ttl .t1 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  position: relative;
  padding-left: 20px;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-ttl .t1 {
    font-size: 1.6rem;
    padding-left: 17px;
  }
}

.partnerMaintenance-ttl .t1::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  width: 11px;
  background: #e07f1d;
  border-radius: 50%;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-ttl .t1::before {
    width: 8px;
  }
}

.partnerMaintenance-ttl .t2 {
  color: #fff;
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  padding-bottom: 10px;
  background-image: linear-gradient(to right, #fff 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-ttl .t2 {
    font-size: 2.8rem;
  }
}

.partnerMaintenance-txt p {
  font-weight: 500;
  font-size: 1.7rem;
  color: #fff;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-txt p {
    font-size: 1.5rem;
  }
}

.partnerMaintenance-image {
  margin-top: auto;
  padding-top: 30px;
}

@media screen and (max-width: 991px) {
  .partnerMaintenance-image {
    padding-top: 15px;
  }
}

.partnerSupport {
  padding: 150px 0 80px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .partnerSupport {
    padding: 60px 0 75px;
  }
}

@media screen and (min-width: 992px) {
  .partnerSupport .bg04 {
    position: fixed;
    right: 0;
    top: 90px;
    background: url(../img/img-partner/bg04.webp) right top no-repeat;
    background-size: contain;
    aspect-ratio: 454 / 846;
    width: 454px;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 1;
  }
}

@media screen and (min-width: 992px) {
  .partnerSupport.is-bg04-fixed .bg04 {
    opacity: 1;
    visibility: visible;
  }
}

.partnerSupport::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

@media screen and (max-width: 991px) {
  .partnerSupport::before {
    background-size: 50px;
  }
}

.partnerSupport::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

@media screen and (max-width: 991px) {
  .partnerSupport::after {
    background-size: 50px;
  }
}

.partnerSupport::before, .partnerSupport::after {
  opacity: 0;
  -webkit-transition: opacity 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53);
  transition: opacity 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53);
}

.partnerSupport.is-active::before, .partnerSupport.is-active::after {
  opacity: 1;
}

.partnerSupport .bgbox {
  background: #faffea;
  padding: 30px 0 65px 0;
  min-height: 465px;
  position: relative;
  border-radius: 20px;
}

@media screen and (max-width: 991px) {
  .partnerSupport .bgbox {
    padding: 20px 25px 35px 0;
    margin-bottom: 80px;
  }
}

.partnerSupport .bgbox + .partnerSelection-item {
  margin-top: 50px;
}

@media screen and (max-width: 991px) {
  .partnerSupport .bgbox + .partnerSelection-item {
    margin-top: 45px;
  }
}

@media screen and (min-width: 992px) {
  .partnerSupport .bgbox .image {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 30px;
    margin: auto;
    display: flex;
    align-items: center;
  }
}

@media screen and (max-width: 991px) {
  .partnerSupport .bgbox .image {
    margin-left: 25px;
    margin-bottom: 20px;
  }
}

.partnerSupport-ttl, .partnerSupport-txt, .partnerSupport-btns {
  padding-left: 70px;
  width: 45%;
}

@media screen and (max-width: 991px) {
  .partnerSupport-ttl, .partnerSupport-txt, .partnerSupport-btns {
    padding-left: 25px;
    width: 100%;
  }
}

.partnerSupport-ttl {
  margin-bottom: 40px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .partnerSupport-ttl {
    margin-bottom: 20px;
  }
}

.partnerSupport-ttl::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  height: 90%;
  width: 5px;
  background: #83582c;
  border-radius: 20px;
}

.partnerSupport-ttl .t1 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #444;
  position: relative;
  padding-left: 20px;
}

@media screen and (max-width: 991px) {
  .partnerSupport-ttl .t1 {
    font-size: 1.6rem;
    padding-left: 17px;
  }
}

.partnerSupport-ttl .t1::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  width: 11px;
  background: #e07f1d;
  border-radius: 50%;
}

@media screen and (max-width: 991px) {
  .partnerSupport-ttl .t1::before {
    width: 8px;
  }
}

.partnerSupport-ttl .t2 {
  color: #865a2e;
  font-size: 3.8rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  padding-bottom: 10px;
  background-image: linear-gradient(to right, #5e3b18 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
}

@media screen and (max-width: 991px) {
  .partnerSupport-ttl .t2 {
    font-size: 2.8rem;
  }
}

.partnerSupport-txt p {
  font-weight: 500;
  font-size: 1.7rem;
}

@media screen and (max-width: 991px) {
  .partnerSupport-txt p {
    font-size: 1.5rem;
  }
}

.partnerSupport-txt p + p {
  margin-top: 25px;
}

@media screen and (max-width: 991px) {
  .partnerSupport-txt p + p {
    margin-top: 20px;
  }
}

.partnerSupport-btns {
  margin-top: 45px;
}

@media screen and (max-width: 991px) {
  .partnerSupport-btns {
    margin-top: 25px;
  }
}

.partnerSupport-btns ul {
  display: flex;
  gap: 40px;
}

@media screen and (max-width: 991px) {
  .partnerSupport-btns ul {
    flex-direction: column;
    gap: 15px;
  }
}

.partnerSupport-btns ul li a {
  width: 300px;
}

@media screen and (max-width: 991px) {
  .partnerSupport-btns ul li a {
    width: 100%;
  }
}

.partnerSupport .kusabanaBnr {
  margin-top: 90px;
}

@media screen and (max-width: 991px) {
  .partnerSupport .kusabanaBnr {
    margin-top: 50px;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -48vw;
    margin-right: -48vw;
    width: 96vw;
  }
}

/* 園長先生のまなざし */
.voiceLead {
  position: relative;
  padding: 250px 0 calc(80px + 15vw);
  margin-top: -250px;
}

@media screen and (max-width: 991px) {
  .voiceLead {
    padding: 40vw 0 calc(75px + 15vw);
    margin-top: -50vw;
  }
}

.voiceLead::after {
  content: "";
  position: absolute;
  top: -2vw;
  left: 0;
  right: 0;
  margin: auto;
  height: 100%;
  width: 100%;
  background: url(../img/img-voice/bg_slide.webp) center top no-repeat;
  background-size: cover;
}

@media screen and (max-width: 991px) {
  .voiceLead::after {
    background-image: url(../img/img-voice/bg_slide_sp.webp);
    background-size: cover;
  }
}

.voiceLead-txt {
  margin-bottom: 25px;
}

.voiceLead-txt p {
  text-align: center;
  font-size: 2rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .voiceLead-txt p {
    font-size: 1.6rem;
  }
}

.voiceLead-slider {
  display: flex;
  gap: 35px;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .voiceLead-slider {
    height: 250px;
  }
}

.voiceLead-slider .item {
  padding: 0 17px;
}

@media screen and (max-width: 991px) {
  .voiceLead-slider .item {
    width: 80vw;
    padding: 0 0;
  }
}

@media screen and (min-width: 992px) {
  .voiceLead-slider img {
    width: auto;
  }
}

.voiceContents {
  margin-top: -15vw;
  padding: 140px 0 150px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .voiceContents {
    padding: 60px 0 50px;
  }
}

.voiceContents::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% - 15vw);
  transform: translateX(-50%);
  width: 130%;
  height: 15vw;
  background: #f8faf2;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: center top;
}

.voiceContents::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: #f8faf2;
  height: calc(100% - 15vw + 1px);
  width: 100%;
}

.voiceContents-wrapper {
  display: grid;
}

@media screen and (min-width: 992px) {
  .voiceContents-wrapper {
    grid-template-columns: 300px 1fr;
    gap: 50px;
    place-items: start left;
  }
}

@media screen and (max-width: 991px) {
  .voiceContents-wrapper {
    gap: 20px;
  }
}

.voiceContents-side {
  position: sticky;
  left: 0;
  top: 120px;
}

@media screen and (max-width: 991px) {
  .voiceContents-side {
    display: none;
  }
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl {
    display: flex;
    width: 94%;
    margin-inline: auto;
    display: grid;
    grid-template-columns: 9em 1fr;
    place-items: center left;
    height: 100%;
  }
}

.voiceContents-side dl dt {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 35px;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dt {
    color: #fff;
    font-size: 1.4rem;
    margin-bottom: 0;
    line-height: 1;
    padding: 0 0 0 1em;
    letter-spacing: 0.01em;
    height: 100%;
    display: flex;
    align-items: center;
  }
}

.voiceContents-side dl dt a {
  display: block;
  width: 100%;
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dt a {
    color: #fff;
  }
}

.voiceContents-side dl dd {
  border-left: 1px solid #bbbbbb;
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dd {
    width: 100%;
    border: none;
    height: 100%;
    display: flex;
    align-items: center;
    position: relative;
  }
  .voiceContents-side dl dd::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 1px;
    height: 1.5em;
    border-left: 1px dashed #fff;
  }
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dd ul {
    padding-left: 0.5em;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    place-items: center center;
    width: 100%;
    height: 100%;
  }
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dd ul li {
    text-align: center;
    height: 100%;
    display: flex;
    align-items: center;
  }
}

.voiceContents-side dl dd ul li a {
  font-weight: 500;
  padding-left: 20px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dd ul li a {
    padding-left: 0;
    color: #e2f0ce;
    font-size: 2rem;
    line-height: 1;
    height: 100%;
    display: flex;
    align-items: center;
    padding-bottom: 0.1em;
  }
}

@media screen and (min-width: 992px) {
  .voiceContents-side dl dd ul li a::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -4px;
    margin: auto;
    width: 7px;
    height: 100%;
    background: #008741;
    border-radius: 100px;
    opacity: 0;
    -webkit-transition: opacity 0.4s ease;
    transition: opacity 0.4s ease;
  }
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dd ul li a::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin-inline: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 8px solid transparent;
    border-left: 8px solid transparent;
    border-bottom: 8px solid #e2f0ce;
    border-top: 0;
    opacity: 0;
  }
}

@media screen and (min-width: 992px) {
  .voiceContents-side dl dd ul li a:hover::before {
    opacity: 1;
  }
}

@media screen and (max-width: 991px) {
  .voiceContents-side dl dd ul li.active a {
    color: #fff;
  }
}

.voiceContents-side dl dd ul li.active a::before {
  opacity: 1;
}

@media screen and (min-width: 992px) {
  .voiceContents-side dl dd ul li + li {
    margin-top: 20px;
  }
}

.voiceContents-section:nth-child(1) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no01.svg);
}

.voiceContents-section:nth-child(2) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no02.svg);
}

.voiceContents-section:nth-child(3) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no03.svg);
}

.voiceContents-section:nth-child(4) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no04.svg);
}

.voiceContents-section:nth-child(5) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no05.svg);
}

.voiceContents-section:nth-child(6) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no06.svg);
}

.voiceContents-section:nth-child(7) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no07.svg);
}

.voiceContents-section:nth-child(8) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no08.svg);
}

.voiceContents-section:nth-child(9) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no09.svg);
}

.voiceContents-section:nth-child(10) .voiceContents-ttl::after {
  background-image: url(../img/img-voice/no10.svg);
}

.voiceContents-section + .voiceContents-section {
  margin-top: 120px;
}

@media screen and (max-width: 991px) {
  .voiceContents-section + .voiceContents-section {
    margin-top: 70px;
  }
}

.voiceContents-ttl {
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1.5;
  color: #008741;
  padding-bottom: 30px;
  background-image: linear-gradient(to right, #008741 2px, transparent 2px);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-position: left bottom;
  position: relative;
}

@media screen and (max-width: 991px) {
  .voiceContents-ttl {
    font-size: 2.6rem;
    padding: 0 10px 30px;
  }
}

.voiceContents-ttl::after {
  content: "";
  position: absolute;
  bottom: 1px;
  right: 28px;
  margin: auto;
  width: 100%;
  height: 58px;
  background-image: url(../img/img-voice/no01.svg);
  background-position: right bottom;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: -1;
}

.voiceContents-info {
  font-size: 2rem;
  display: flex;
  justify-content: flex-end;
  padding-top: 15px;
  margin-bottom: 30px;
  gap: 15px;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .voiceContents-info {
    font-size: 1.6rem;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
  }
}

.voiceContents-item {
  padding-left: 35px;
}

@media screen and (max-width: 991px) {
  .voiceContents-item {
    padding-left: 0;
  }
}

.voiceContents-item + .voiceContents-item {
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .voiceContents-item + .voiceContents-item {
    margin-top: 50px;
  }
}

.voiceContents-item h3 {
  font-size: 2.4rem;
  font-weight: 700;
  color: #8e9871;
  margin-bottom: 25px;
  position: relative;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .voiceContents-item h3 {
    padding-left: 30px;
    font-size: 2rem;
    margin-bottom: 20px;
  }
}

.voiceContents-item h3::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: -35px;
  margin: auto;
  width: 25px;
  height: 3px;
  background: #8e9871;
}

@media screen and (max-width: 991px) {
  .voiceContents-item h3::before {
    left: 0;
    width: 20px;
  }
}

.voiceContents-item .txt p {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 2;
}

@media screen and (max-width: 991px) {
  .voiceContents-item .txt p {
    font-size: 1.6rem;
  }
}

.voiceContents-item .txt + .image {
  margin-top: 35px;
}

@media screen and (max-width: 991px) {
  .voiceContents-item .image img {
    display: block;
    width: 90%;
    margin-inline: auto;
  }
}

.voiceContents-item .flex {
  display: flex;
  gap: 50px;
}

@media screen and (min-width: 992px) {
  .voiceContents-item .flex.--reverse {
    flex-direction: row-reverse;
  }
}

@media screen and (max-width: 991px) {
  .voiceContents-item .flex {
    flex-direction: column;
    gap: 25px;
  }
}

.voiceContents-item .flex + .flex {
  margin-top: 60px;
}

@media screen and (min-width: 992px) {
  .voiceContents-item .flex .item:nth-child(1) {
    width: calc(100% - 350px);
  }
  .voiceContents-item .flex .item:nth-child(2) {
    width: 350px;
  }
}

.voiceNav {
  display: none;
}

@media screen and (max-width: 991px) {
  .voiceNav {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 10px;
    z-index: 999;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  .voiceNav-inner {
    width: 96%;
    margin-inline: auto;
    height: 45px;
    background: #008741;
    border-radius: 100px;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 10px;
    padding: 0 0 0 20px;
  }
  .voiceNav-title {
    position: relative;
  }
  .voiceNav-title div {
    color: #fff;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
  }
  .voiceNav-main {
    display: grid;
    grid-template-columns: 1fr 40px;
    align-items: center;
    gap: 10px;
    min-width: 0;
    height: 100%;
  }
  .voiceNav-arrow {
    width: 40px;
    height: 45px;
    border: none;
    background: transparent;
    position: relative;
    cursor: pointer;
    padding: 0;
  }
  .voiceNav-arrow span {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 5px;
    margin: auto;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
  }
  .voiceNav-arrow.--prev span {
    border-left: 2px solid #fff;
    transform: rotate(-45deg);
  }
  .voiceNav-arrow.--next span {
    border-right: 2px solid #fff;
    transform: rotate(45deg);
  }
  .voiceNav-arrow.--next::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 1px;
    height: 1.5em;
    border-left: 1px dashed #fff;
  }
  .voiceNav-arrow.is-disabled > span {
    opacity: 0.35;
  }
  .voiceNav-trackWrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    min-width: 0;
    height: 100%;
    position: relative;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
  }
  .voiceNav-trackWrap::-webkit-scrollbar {
    display: none;
  }
  .voiceNav-track {
    list-style: none;
    display: flex;
    gap: 0;
    margin: 0;
    padding: 0;
    min-width: max-content;
    height: 100%;
    position: relative;
  }
  .voiceNav-track li {
    flex: 0 0 40px;
    scroll-snap-align: start;
  }
  .voiceNav-track a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 24px;
    color: #e2f0ce;
    font-size: 2rem;
    line-height: 1;
    font-weight: 500;
    position: relative;
    padding-bottom: 0.1em;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    -webkit-font-smoothing: antialiased;
  }
  .voiceNav-track a::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin-inline: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 7px solid transparent;
    border-left: 7px solid transparent;
    border-bottom: 7px solid #e2f0ce;
    border-top: 0;
    opacity: 0;
  }
  .voiceNav-track li.active a {
    color: #fff;
  }
  .voiceNav-track li.active a::before {
    opacity: 1;
  }
}

/* トップページ */
.topMv {
  position: relative;
  background: url(../img/img-index/mv_bg.webp) center center no-repeat;
  background-size: cover;
  min-height: 100vh;
  z-index: inherit !important;
  padding-top: 95px;
}

@media screen and (max-width: 991px) {
  .topMv {
    padding-top: 60px;
    background-image: url(../img/img-index/mv_bg_sp.webp);
  }
}

.topMv-ttl {
  display: flex;
  justify-content: flex-end;
  padding-top: 80px;
  z-index: 3;
}

@media screen and (max-width: 991px) {
  .topMv-ttl {
    padding-top: 50px;
  }
}

.topMv-ttl > div {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-family: "Zen Kurenaido", sans-serif;
  font-size: 9rem;
  color: #17884e;
  line-height: 1.6;
  letter-spacing: 0.2em;
}

@media screen and (max-width: 991px) {
  .topMv-ttl > div {
    font-size: 4.2rem;
    line-height: 1.5;
    text-shadow: 1px 1px 1px #ffffff, -1px 1px 1px #ffffff, 1px -1px 1px #ffffff, -1px -1px 1px #ffffff, 1px 0px 1px #ffffff, 0px 1px 1px #ffffff, -1px 0px 1px #ffffff, 0px -1px 1px #ffffff;
  }
}

.topLead {
  padding: 280px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .topLead {
    padding: 90px 0;
  }
}

.topLead-ttl {
  font-size: 3.4rem;
  font-weight: 900;
  text-align: center;
  color: #fff;
  margin-bottom: 55px;
}

@media screen and (max-width: 991px) {
  .topLead-ttl {
    font-size: 2.2rem;
    margin-bottom: 30px;
    letter-spacing: 0.03em;
    white-space: nowrap;
  }
}

.topLead-txt {
  margin-bottom: 60px;
}

@media screen and (max-width: 991px) {
  .topLead-txt {
    width: 90%;
    margin: 0 auto 20px;
  }
}

.topLead-txt p {
  text-align: center;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2;
}

@media screen and (max-width: 991px) {
  .topLead-txt p {
    font-size: 1.6rem;
    text-align: left;
  }
}

.topLead-btn {
  display: flex;
  justify-content: center;
}

.topLead-btn a.btn-arrow {
  max-width: 380px;
}

.topLead-btn a.btn-arrow > span {
  padding-right: 1em;
}

.topCase {
  position: relative;
  padding: 0 0 280px;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .topCase {
    padding: 0 0 55vw;
  }
}

.topCase .js_case_slider .item {
  margin: 0 4vw;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  position: relative;
}

@media screen and (max-width: 991px) {
  .topCase .js_case_slider .item {
    margin: 0 2vw;
  }
}

.topCase .js_case_slider .item .image {
  position: relative;
}

.topCase .js_case_slider .item .image .tag {
  position: absolute;
  right: 20px;
  bottom: 20px;
  display: flex;
  align-items: center;
  height: 30px;
  padding: 0 15px;
  line-height: 1;
  color: #1f9c5c;
  background: #fff;
  border: 1px solid #1f9c5c;
  border-radius: 50px;
  font-size: 1.5rem;
  font-weight: 700;
}

.topCase .js_case_slider .item dl {
  padding-top: 15px;
}

.topCase .js_case_slider .item dl dt {
  text-align: left;
  color: #fff;
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.5;
  display: table;
  margin-inline: auto;
}

.topCase .js_case_slider .item dl dd {
  padding-top: 10px;
  font-size: 1.7rem;
  font-weight: 500;
  color: #fff;
  text-align: center;
}

.topCase-ttl {
  display: flex;
  align-items: center;
}

@media screen and (max-width: 991px) {
  .topCase-ttl {
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
  }
}

.topCase-ttl b {
  font-size: 4.2rem;
  font-weight: 900;
  color: #fff;
  line-height: 1;
}

@media screen and (max-width: 991px) {
  .topCase-ttl b {
    align-self: center;
    font-size: 3rem;
  }
}

.topCase-ttl span {
  position: relative;
  padding-left: 40px;
  margin-left: 20px;
  color: #fff;
  font-size: 3.4rem;
  font-weight: 500;
  line-height: 1;
}

@media screen and (max-width: 991px) {
  .topCase-ttl span {
    margin-left: 0;
    font-size: 1.8rem;
  }
}

.topCase-ttl span::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 20px;
  height: 2px;
  background: #fff;
}

.topCase-slider {
  position: relative;
  padding-top: 80px;
  margin-top: -30px;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .topCase-slider {
    padding-top: 35px;
    margin-top: 0;
  }
}

.topCase-slider .slider_nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

@media screen and (min-width: 992px) {
  .topCase-slider .slider_nav {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    margin: auto;
    max-width: 1380px;
    padding: 0 50px;
  }
}

@media screen and (max-width: 991px) {
  .topCase-slider .slider_nav {
    padding: 0 3%;
    margin-top: 20px;
  }
}

.topCase-slider .slider_no {
  display: flex;
  align-items: center;
  margin-right: 25px;
  color: #fff;
}

.topCase-slider .slider_no .current {
  font-weight: bold;
  position: relative;
  padding-right: 22px;
  margin-right: 10px;
}

.topCase-slider .slider_no .current::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 12px;
  height: 1px;
  background: #fff;
}

.topCase-slider .slick-arrow {
  width: 50px;
  height: 50px;
  position: relative;
  color: transparent;
  border: none;
  outline: none;
  background: transparent;
  background-color: #fff;
  border-radius: 50%;
  cursor: pointer;
  background: none;
}

.topCase-slider .slick-arrow:before {
  content: "" !important;
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  top: 0;
  left: 0;
}

.topCase-slider .slick-prev:before {
  background: url(../img/img-index/arrow_left.svg) !important;
  background-size: contain !important;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.topCase-slider .slick-next {
  margin-left: 25px;
}

@media screen and (max-width: 991px) {
  .topCase-slider .slick-next {
    margin-left: 12px;
  }
}

.topCase-slider .slick-next:before {
  background: url(../img/img-index/arrow_right.svg) !important;
  background-size: contain !important;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.topCase-btn {
  margin-top: 60px;
}

@media screen and (max-width: 991px) {
  .topCase-btn {
    margin-top: 30px;
  }
}

.topCase-btn a.btn-arrow {
  max-width: 340px;
}

.topVoice {
  position: relative;
  padding: 280px 0;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .topVoice {
    padding: calc(90px + 15vw) 0 50vw;
    margin-top: -30vw;
  }
}

.topVoice .inner {
  max-width: 1900px;
}

.topVoice .flex {
  display: flex;
  justify-content: center;
  gap: 20px;
}

@media screen and (max-width: 991px) {
  .topVoice .flex {
    flex-direction: column;
    gap: 10px;
  }
}

.topVoice-btn {
  margin-top: 50px;
}

@media screen and (max-width: 991px) {
  .topVoice-btn {
    margin-top: 25px;
  }
}

.topVoice-btn a.btn-arrow {
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
}

.topFaq {
  padding: 100px 0 0;
  position: relative;
  z-index: 4 !important;
}

@media screen and (max-width: 991px) {
  .topFaq {
    padding: 0 0 0;
  }
}

.topFaq::before {
  content: "";
  position: absolute;
  top: -200px;
  left: -10%;
  width: 120%;
  height: calc(100% + 400px);
  background: url(../img/img-index/bg_sky.webp) center top no-repeat;
  background-size: cover;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 90%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 90%, transparent 100%);
  z-index: 2;
  animation: yurayura 2s ease-in-out infinite alternate;
}

@media screen and (max-width: 991px) {
  .topFaq::before {
    background-image: url(../img/img-index/bg_sky_sp.webp);
    top: -50vw;
    height: calc(100% + 50vw);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 20vw, #000 90%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0, #000 20vw, #000 90%, transparent 100%);
  }
}

.topFaq .inner {
  position: relative;
  z-index: 2;
}

.topFaq .bg-bottom {
  position: relative;
  aspect-ratio: 1919 / 395;
  z-index: 1;
  min-width: 1919px;
  width: 100%;
  background: url(../img/img-index/bg_sky_bottom.webp) center bottom no-repeat;
  background-size: cover;
  margin-top: -25vw;
}

@media screen and (min-width: 1500px) {
  .topFaq .bg-bottom {
    margin-top: -20vw;
  }
}

@media screen and (max-width: 991px) {
  .topFaq .bg-bottom {
    margin-top: -15vw;
    aspect-ratio: 780 / 400;
    min-width: 100%;
    background-image: url(../img/img-index/bg_sky_bottom_sp.webp);
  }
}

.topFaq .ttl-bold {
  margin-bottom: 80px;
}

@media screen and (max-width: 991px) {
  .topFaq .ttl-bold {
    margin-bottom: 40px;
  }
}

.topFaq-item {
  background: #fff;
  border: 1px solid #1f9c5c;
  border-radius: 20px;
  max-width: 1000px;
  margin-inline: auto;
}

@media screen and (max-width: 991px) {
  .topFaq-item {
    border-radius: 10px;
  }
}

.topFaq-item + .topFaq-item {
  margin-top: 30px;
}

@media screen and (max-width: 991px) {
  .topFaq-item + .topFaq-item {
    margin-top: 20px;
  }
}

.topFaq-item dl dt.js_ac {
  position: relative;
  cursor: pointer;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: #333;
  padding: 30px 95px 30px 48px;
}

@media screen and (max-width: 991px) {
  .topFaq-item dl dt.js_ac {
    font-size: 1.6rem;
    line-height: 1.625;
    padding: 14px 55px 14px 20px;
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }
}

.topFaq-item dl dt.js_ac::after {
  content: "";
  position: absolute;
  right: 30px;
  top: 25px;
  width: 50px;
  transform: rotate(0);
  transition: transform 0.4s ease;
  aspect-ratio: 1 / 1;
  background: url(../img/img-index/arrow_faq.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .topFaq-item dl dt.js_ac::after {
    width: 36px;
    right: 15px;
    top: 22px;
  }
}

.topFaq-item dl dt.js_ac.is_open::after {
  transform: rotate(-180deg);
}

.topFaq-item dl dd.js_ac_box .js_ac_inner {
  padding: 0 46px 38px;
}

@media screen and (max-width: 991px) {
  .topFaq-item dl dd.js_ac_box .js_ac_inner {
    padding: 0 22px 30px;
  }
}

.topFaq-item dl dd.js_ac_box .txt {
  position: relative;
  padding-top: 32px;
}

@media screen and (max-width: 991px) {
  .topFaq-item dl dd.js_ac_box .txt {
    padding-top: 24px;
  }
}

.topFaq-item dl dd.js_ac_box .txt::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 2px;
  background-image: linear-gradient(to right, #8ddfc0 3px, transparent 3px);
  background-size: 8px 2px;
  background-repeat: repeat-x;
}

.topFaq-item dl dd.js_ac_box .txt p {
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 2.222;
  letter-spacing: 0.08em;
  color: #333;
}

@media screen and (max-width: 991px) {
  .topFaq-item dl dd.js_ac_box .txt p {
    font-size: 1.5rem;
    line-height: 1.733;
    letter-spacing: 0.1em;
  }
}

.topFaq-item dl dd.js_ac_box .txt p + p {
  margin-top: 25px;
}

.topFaq-item dl dd.js_ac_box .txt p a {
  text-decoration: underline;
}

@media screen and (min-width: 992px) {
  .topFaq-item dl dd.js_ac_box .txt p a:hover {
    text-decoration: none;
  }
}

.topFaq-item dl dd.js_ac_box .topFaq-btn {
  margin-top: 28px;
  display: flex;
  justify-content: flex-end;
}

@media screen and (max-width: 991px) {
  .topFaq-item dl dd.js_ac_box .topFaq-btn {
    margin-top: 30px;
  }
}

.topFaq-item dl dd.js_ac_box .topFaq-btn .btn-arrow {
  width: 236px;
  max-width: none;
  height: 50px;
  font-size: 1.6rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin: 0;
  padding: 0 48px 0 24px;
}

@media screen and (max-width: 991px) {
  .topFaq-item dl dd.js_ac_box .topFaq-btn .btn-arrow {
    width: 100%;
    max-width: 250px;
    font-size: 1.7rem;
  }
}

.topFaq-item dl dd.js_ac_box .topFaq-btn .btn-arrow::before {
  right: 22px;
}

.topFaq-btn {
  margin-top: 75px;
}

@media screen and (max-width: 991px) {
  .topFaq-btn {
    margin-top: 50px;
  }
}

.pageTitle + .topFaq {
  padding-top: 35px;
}

@media screen and (min-width: 992px) {
  .pageTitle + .topFaq::before {
    height: calc(100% + 300px);
  }
}

@media screen and (max-width: 991px) {
  .pageTitle + .topFaq {
    padding-top: 0;
  }
  .pageTitle + .topFaq::before {
    top: -40vw;
    height: calc(100% + 30vw);
  }
}

.faqContact {
  background: #faffea;
  z-index: 2;
  padding: 150px 0 80px;
}

@media screen and (max-width: 991px) {
  .faqContact {
    margin-top: -25vw;
    padding: 18vw 0 60px;
  }
}

.faqContact .inner {
  position: relative;
  z-index: 5;
  margin-top: -50px;
}

.faqContact-ttl {
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 35px;
  text-align: center;
}

@media screen and (max-width: 991px) {
  .faqContact-ttl {
    font-size: 1.8rem;
  }
}

.faqContact-btn {
  display: flex;
  justify-content: center;
}

.faqContact-btn a {
  height: 75px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 75px;
  background-color: #e07f1d;
  border: 1px solid #e07f1d;
  color: #fff;
  border-radius: 50px;
  font-size: 2.4rem;
  line-height: 1.4;
  padding: 0 30px;
  letter-spacing: 0.03em;
  margin: auto;
  width: 100%;
  max-width: 420px;
  text-align: center;
  position: relative;
  font-family: "RocknRoll One", sans-serif;
  background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><filter id="noiseFilter"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23noiseFilter)" opacity="0.5"/></svg>');
  background-blend-mode: multiply;
}

@media screen and (max-width: 991px) {
  .faqContact-btn a {
    font-size: 1.8rem;
    height: 65px;
  }
}

.faqContact-btn a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  background: url(../img/img-common/arrow_right_w.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 15 / 9;
  width: 25px;
}

.faqContact-btn a > span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-right: 30px;
}

@media screen and (min-width: 992px) {
  .faqContact-btn a {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .faqContact-btn a::before {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .faqContact-btn a:hover {
    background-color: #fff;
    color: #e07f1d;
    background-image: none;
  }
  .faqContact-btn a:hover::before {
    background-image: url(../img/img-common/arrow_right_choco.svg);
  }
}

.topInsta {
  padding: 280px 0;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .topInsta {
    margin-top: -25vw;
    padding: 35vw 0;
  }
}

.topInsta-ttl {
  font-size: 4.5rem;
  font-weight: 900;
  text-align: center;
  color: #fff;
  position: relative;
  padding-top: 60px;
}

@media screen and (max-width: 991px) {
  .topInsta-ttl {
    font-size: 3.2rem;
    padding-top: 44px;
  }
}

.topInsta-ttl::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  background: url(../img/img-index/icon_insta.webp) left center no-repeat;
  background-size: contain;
  width: 58px;
}

@media screen and (max-width: 991px) {
  .topInsta-ttl::before {
    width: 42px;
  }
}

.topInsta-box {
  margin-top: 150px;
  max-width: 1280px;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

@media screen and (max-width: 991px) {
  .topInsta-box {
    margin-top: 25px;
  }
}

@media screen and (min-width: 992px) {
  .topInsta-box::after {
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    width: 1280px;
    background: url(../img/img-index/bg_insta.webp) center center no-repeat;
    background-size: contain;
    aspect-ratio: 1280 / 649;
  }
}

@media screen and (max-width: 991px) {
  .topInsta-box .bg-top {
    background: url(../img/img-index/bg_insta_top_sp.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 678 / 200;
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .topInsta-box .bg-bottom {
    background: url(../img/img-index/bg_insta_bottom_sp.webp) left top no-repeat;
    background-size: 100%;
    aspect-ratio: 676 / 190;
    width: 100%;
    margin-top: -5vw;
  }
}

.topInsta-box .flex {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 2;
  width: 80%;
  margin-inline: auto;
}

@media screen and (max-width: 1350px) {
  .topInsta-box .flex {
    width: 100%;
  }
}

@media screen and (max-width: 991px) {
  .topInsta-box .flex {
    flex-direction: column;
    padding: 0 25px;
    gap: 35px;
    margin: -1px 0;
    min-width: 100%;
    background: url(../img/img-index/bg_insta_sp.webp) left center repeat-y;
    background-size: 100%;
    top: -5vw;
  }
}

.topInsta-box dl dt {
  margin-bottom: 25px;
}

@media screen and (max-width: 991px) {
  .topInsta-box dl dt {
    margin-bottom: 15px;
  }
}

.topInsta-box dl dt .t1 {
  font-family: "RocknRoll One", sans-serif;
  font-size: 2.4rem;
  text-align: center;
}

@media screen and (max-width: 991px) {
  .topInsta-box dl dt .t1 {
    font-size: 1.6rem;
  }
}

.topInsta-box dl dt a {
  display: flex;
  justify-content: center;
}

.topInsta-box dl dt a .ins_tit_sub {
  color: #555555;
  font-size: 2rem;
  font-weight: 500;
}

@media screen and (max-width: 991px) {
  .topInsta-box dl dt a .ins_tit_sub {
    font-size: 1.4rem;
  }
}

@media screen and (min-width: 992px) {
  .topInsta-box .item {
    width: 48%;
  }
}

.topInsta-box .item:nth-child(1) dl dt .t1 {
  color: #008741;
}

.topInsta-box .item:nth-child(2) dl dt .t1 {
  color: #d27213;
}

.topInsta-link {
  display: flex;
  justify-content: center;
  margin-top: 22px;
}

@media screen and (max-width: 991px) {
  .topInsta-link {
    margin-top: 15px;
  }
}

.topInsta-link a {
  position: relative;
  padding-right: 25px;
  color: #555;
  font-weight: 700;
}

.topInsta-link a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  aspect-ratio: 15 / 9;
  width: 15px;
  background: url(../img/img-index/arrow_insta.svg) left center no-repeat;
  background-size: contain;
}

.topInsta-link a > span {
  text-decoration: underline;
}

.topInsta-link a:hover > span {
  text-decoration: none;
}

.topInsta-bnr {
  margin-top: 160px;
  display: flex;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .topInsta-bnr {
    margin-top: 40px;
  }
}

.topBook {
  margin-top: -125px;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .topBook {
    margin-top: -15vw;
  }
}

.topBook .bg-top {
  position: relative;
  aspect-ratio: 1918 / 125;
  z-index: 2;
  min-width: 1918px;
  background: url(../img/img-index/bg_book_top.webp) left top no-repeat;
  background-size: 100%;
}

@media screen and (max-width: 991px) {
  .topBook .bg-top {
    min-width: 100%;
    aspect-ratio: 780 / 160;
    background-image: url(../img/img-index/bg_book_top_sp.webp);
  }
}

.topBook .bg-bottom {
  position: relative;
  aspect-ratio: 1918 / 125;
  z-index: 2;
  min-width: 1918px;
  background: url(../img/img-index/bg_book_bottom.webp) left bottom no-repeat;
  background-size: 100%;
}

@media screen and (max-width: 991px) {
  .topBook .bg-bottom {
    margin-top: -1px;
    min-width: 100%;
    aspect-ratio: 780 / 160;
    background-image: url(../img/img-index/bg_book_bottom_sp.webp);
  }
}

.topBook-wrap {
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
  padding: 20px 0 50px;
}

@media screen and (max-width: 991px) {
  .topBook-wrap {
    padding: 10px 0 25px;
    margin-top: -1px;
    background-size: 50px;
  }
}

.topBook .inner {
  max-width: 1360px;
}

.topBook-box {
  border: 2px solid #fff;
  border-radius: 30px;
  position: relative;
  overflow: hidden;
  padding: 0 36px 36px;
}

@media screen and (max-width: 991px) {
  .topBook-box {
    border-radius: 25px;
    padding: 0 8px 30px;
  }
}

.topBook-bar {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-left: -36px;
}

@media screen and (max-width: 991px) {
  .topBook-bar {
    margin: 0 -8px;
    gap: 22px;
    flex-direction: column;
    align-items: flex-start;
  }
}

.topBook-ttl {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 85px;
  padding: 0 62px;
  border-bottom-right-radius: 10px;
  background: #efebe5;
  color: #008741;
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 991px) {
  .topBook-ttl {
    min-height: 65px;
    padding: 0 26px;
    font-size: 2.4rem;
    letter-spacing: 0.08em;
  }
}

@media screen and (max-width: 991px) {
  .topBook-note {
    align-self: center;
  }
}

.topBook-note p {
  color: #fff;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.647;
  letter-spacing: 0.08em;
  text-align: center;
}

@media screen and (max-width: 991px) {
  .topBook-note p {
    font-size: 1.4rem;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }
}

.topBook-list {
  margin-top: 45px;
}

@media screen and (max-width: 991px) {
  .topBook-list {
    margin-top: 33px;
  }
}

.topBook-list .grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 56px;
  row-gap: 30px;
  position: relative;
}

@media screen and (max-width: 991px) {
  .topBook-list .grid {
    grid-template-columns: 1fr;
    row-gap: 24px;
  }
}

.topBook-list .grid::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  border-left: 1px dashed rgba(255, 255, 255, 0.7);
}

@media screen and (max-width: 991px) {
  .topBook-list .grid::before {
    display: none;
  }
}

@media screen and (max-width: 991px) {
  .topBook-list .grid .item {
    padding: 0 10px;
  }
}

@media screen and (max-width: 991px) {
  .topBook-list .grid .item:not(:first-child) {
    border-top: 1px dashed rgba(255, 255, 255, 0.7);
    padding-top: 24px;
  }
}

.topBook-list .grid .item dl {
  display: grid;
  grid-template-columns: 194px 1fr;
  column-gap: 24px;
  height: 100%;
}

@media screen and (max-width: 991px) {
  .topBook-list .grid .item dl {
    grid-template-columns: 40% 1fr;
    column-gap: 24px;
    align-items: start;
  }
}

.topBook-list .grid .item dl dt .image img {
  width: 100%;
  display: block;
}

.topBook-list .grid .item dl dd {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 100%;
}

.topBook-sub {
  color: #9bebc2;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

@media screen and (max-width: 991px) {
  .topBook-sub {
    font-size: 1.3rem;
    line-height: 1.4;
  }
}

.topBook-name {
  color: #fff;
  font-size: 2.4rem;
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.1em;
  margin-top: 4px;
}

@media screen and (max-width: 991px) {
  .topBook-name {
    font-size: 1.8rem;
    margin-top: 4px;
  }
}

.topBook .txt {
  margin-top: 20px;
}

@media screen and (max-width: 991px) {
  .topBook .txt {
    margin-top: 10px;
  }
}

.topBook .txt p {
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.625;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .topBook .txt p {
    font-size: 1.4rem;
    line-height: 1.64;
    letter-spacing: 0.05em;
  }
}

.topBook-btn {
  align-self: flex-end;
  margin-top: auto;
  padding-top: 30px;
}

@media screen and (max-width: 991px) {
  .topBook-btn {
    padding-top: 14px;
  }
}

.topBook-btn a {
  display: inline-flex;
  width: 156px;
}

@media screen and (max-width: 991px) {
  .topBook-btn a {
    width: 131px;
  }
}

.topBook-btn a img {
  width: 100%;
  display: block;
}

.topBook-pdf {
  margin-top: 50px;
}

@media screen and (max-width: 991px) {
  .topBook-pdf {
    margin-top: 50px;
  }
}

.topBook-pdf .flex {
  display: grid;
  gap: 45px;
}

@media screen and (min-width: 992px) {
  .topBook-pdf .flex {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 991px) {
  .topBook-pdf .flex {
    gap: 20px;
  }
}

.topBook-pdf .flex .item {
  background: #f8faf2;
  border-radius: 30px;
  padding: 34px 60px 34px;
  display: grid;
  grid-template-columns: 133px 1fr;
  column-gap: 24px;
}

@media screen and (max-width: 991px) {
  .topBook-pdf .flex .item {
    grid-template-columns: 95px 1fr;
    column-gap: 14px;
  }
}

@media screen and (max-width: 991px) {
  .topBook-pdf .flex .item {
    border-radius: 20px;
    padding: 16px 18px 18px;
  }
}

@media screen and (max-width: 991px) {
  .topBook-pdf .flex .item dl dt {
    align-self: center;
  }
}

.topBook-pdf .flex .item dl dd {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: auto;
}

@media screen and (max-width: 991px) {
  .topBook-pdf .flex .item dl dd {
    justify-content: flex-start;
  }
}

.topBook-pdf .flex .item dl .image {
  grid-column: 1;
  grid-row: 1 / 3;
}

@media screen and (max-width: 991px) {
  .topBook-pdf .flex .item dl .image {
    align-self: center;
  }
}

.topBook-pdf .flex .item dl .image img {
  display: block;
  width: 100%;
}

.topBook-pdfttl {
  color: #008741;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

@media screen and (max-width: 991px) {
  .topBook-pdfttl {
    font-size: 1.6rem;
    line-height: 1.4;
  }
}

.topBook-pdftxt {
  margin-top: 10px;
}

@media screen and (max-width: 991px) {
  .topBook-pdftxt {
    margin-top: 8px;
  }
}

.topBook-pdftxt p {
  color: #555;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.58;
  letter-spacing: 0.08em;
}

@media screen and (max-width: 991px) {
  .topBook-pdftxt p {
    font-size: 1.2rem;
    line-height: 1.5;
  }
}

.topBook-pdfbtn {
  margin-top: 15px;
}

@media screen and (max-width: 991px) {
  .topBook-pdfbtn {
    margin-top: 15px;
    width: 100%;
  }
}

.topBook-pdfbtn a {
  position: relative;
  width: 269px;
  height: 43px;
  border: 1px solid #666;
  border-radius: 200px;
  background: #fff;
  color: #555;
  display: flex;
  align-items: center;
  padding: 0 56px 0 20px;
}

@media screen and (max-width: 991px) {
  .topBook-pdfbtn a {
    width: 100%;
    max-width: 230px;
    height: 40px;
    padding: 0 48px 0 16px;
  }
}

.topBook-pdfbtn a > span {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.625;
  letter-spacing: 0.04em;
}

@media screen and (max-width: 991px) {
  .topBook-pdfbtn a > span {
    font-size: 1.4rem;
    line-height: 1.5;
  }
}

.topBook-pdfbtn a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 23px;
  margin: auto;
  width: 27px;
  height: 28px;
  background: url(../img/img-index/icon_pdf.svg) center center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .topBook-pdfbtn a::after {
    right: 16px;
    width: 24px;
    height: 25px;
  }
}

.topBook-pdfsize {
  margin-top: 6px;
  color: #555;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  width: 269px;
  text-align: right;
}

@media screen and (max-width: 991px) {
  .topBook-pdfsize {
    font-size: 1.2rem;
    line-height: 1.5;
    margin-top: 4px;
    width: 100%;
  }
}

.topBook-bnr {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}

.topMovies {
  padding: 100px 0;
  position: relative;
  z-index: 3 !important;
}

@media screen and (max-width: 991px) {
  .topMovies {
    padding: 100px 0 0;
  }
}

.topMovies::before {
  content: "";
  position: absolute;
  /* 動いた時に隙間ができないよう、親要素より一回り大きくする（上下左右-5%など） */
  top: -20%;
  left: -10%;
  width: 120%;
  height: 140%;
  background: url(../img/img-index/bg_kirameki.webp) center top no-repeat;
  background-size: cover;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 90%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 90%, transparent 100%);
  z-index: -1;
  animation: yurayura 2s ease-in-out infinite alternate;
}

@media screen and (max-width: 991px) {
  .topMovies::before {
    background-image: url(../img/img-index/bg_kirameki_sp.webp);
    top: -50vw;
    height: calc(100% + 50vw);
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 95%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 95%, transparent 100%);
  }
}

.topMovies-box {
  position: relative;
  width: 100%;
  max-width: 1600px;
  z-index: 2;
  margin: auto;
}

@media screen and (max-width: 991px) {
  .topMovies-box {
    margin-top: -25vw;
    padding-bottom: 35vw;
  }
}

.topMovies-ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: auto;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-size: 4rem;
  font-weight: 700;
  color: #d27213;
  letter-spacing: 0.2em;
  white-space: nowrap;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .topMovies-ttl {
    top: 300px;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
  }
}

@media screen and (max-width: 991px) {
  .topMovies-ttl {
    font-size: 2.6rem;
    line-height: 2.4;
    padding-bottom: 0;
    position: absolute;
    top: 75vw;
    left: 0;
    right: 0;
    margin: auto;
  }
}

.topMovies-list {
  display: flex;
  flex-wrap: wrap;
}

@media screen and (max-width: 991px) {
  .topMovies-list {
    flex-direction: column;
    gap: 25px;
  }
}

@media screen and (min-width: 992px) {
  .topMovies .video-item {
    display: flex;
    align-items: flex-start;
    width: 50%;
  }
  .topMovies .video-item:nth-child(odd) {
    justify-content: flex-end;
  }
  .topMovies .video-item:nth-child(even) {
    justify-content: flex-start;
  }
  .topMovies .video-item:nth-child(1) .video-wrap {
    left: -140px;
  }
  .topMovies .video-item:nth-child(2) {
    padding-top: 50px;
  }
  .topMovies .video-item:nth-child(2) .video-wrap {
    right: -160px;
  }
  .topMovies .video-item:nth-child(3) {
    padding-top: 40px;
  }
  .topMovies .video-item:nth-child(3) .video-wrap {
    left: -160px;
  }
  .topMovies .video-item:nth-child(4) {
    padding-top: 68px;
  }
  .topMovies .video-item:nth-child(4) .video-wrap {
    right: -200px;
  }
  .topMovies .video-item:nth-child(5) {
    margin-top: -25px;
  }
}

.topMovies .video-item .video-wrap {
  position: relative;
  cursor: pointer;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .topMovies .video-item .video-wrap:hover::after {
    opacity: 1;
  }
}

.topMovies .video-item .video-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  aspect-ratio: 1 / 1;
  width: 117px;
  background: url(../img/img-index/icon_movie.svg) left center no-repeat;
  background-size: contain;
  opacity: 0;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}

@media screen and (max-width: 991px) {
  .topMovies .video-item.--video01 {
    order: 2;
    margin-top: 75vw;
  }
}

.topMovies .video-item.--video01 .video-wrap {
  clip-path: url(#movie-clip01);
  -webkit-clip-path: url(#movie-clip01);
  aspect-ratio: 595 / 348;
  width: 595px;
}

@media screen and (max-width: 991px) {
  .topMovies .video-item.--video01 .video-wrap {
    width: 100vw;
    left: -10vw;
  }
}

@media screen and (max-width: 991px) {
  .topMovies .video-item.--video02 {
    order: 1;
  }
}

.topMovies .video-item.--video02 .video-wrap {
  clip-path: url(#movie-clip02);
  -webkit-clip-path: url(#movie-clip02);
  aspect-ratio: 593 / 379;
  width: 593px;
}

@media screen and (max-width: 991px) {
  .topMovies .video-item.--video02 .video-wrap {
    width: 100vw;
    right: -10vw;
  }
}

.topMovies .video-item.--video03 .video-wrap {
  clip-path: url(#movie-clip03);
  -webkit-clip-path: url(#movie-clip03);
  aspect-ratio: 610 / 356;
  width: 610px;
}

.topMovies .video-item.--video04 .video-wrap {
  clip-path: url(#movie-clip04);
  -webkit-clip-path: url(#movie-clip04);
  aspect-ratio: 604 / 412;
  width: 604px;
}

.topMovies .video-item.--video05 .video-wrap {
  clip-path: url(#movie-clip05);
  -webkit-clip-path: url(#movie-clip05);
  aspect-ratio: 593 / 379;
  width: 563px;
}

.topMovies .video-item.--txt {
  padding-top: 80px;
  padding-left: 80px;
  max-width: 600px;
}

@media screen and (max-width: 991px) {
  .topMovies .video-item.--txt {
    order: 3;
    padding: 0 8%;
  }
}

.topMovies .video-item.--txt p {
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 2;
}

@media screen and (max-width: 991px) {
  .topMovies .video-item.--txt p {
    font-size: 1.6rem;
  }
}

.topMovies .video-item video,
.topMovies .video-item iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@keyframes yurayura {
  0% {
    transform: translate(-5%, 0);
  }
  100% {
    transform: translate(0, 0);
  }
}

/* 共通 */
#modal-overlay-movie {
  z-index: 9999;
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.75);
}

#modal-overlay-movie .modal-wrap {
  width: 100%;
  height: 100%;
  max-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

#modal-overlay-movie .modal-content {
  width: 100%;
  max-width: 800px;
  margin: auto;
  position: relative;
}

@media screen and (max-width: 991px) {
  #modal-overlay-movie .modal-content {
    width: 90%;
  }
}

#modal-overlay-movie .modal-movie {
  aspect-ratio: 16/9;
}

#modal-overlay-movie .modal-movie iframe {
  display: block;
  width: 100%;
  height: 100%;
}

#modal-overlay-movie .modal_close {
  background: #999999;
  width: 35px;
  height: 35px;
  display: block;
  position: absolute;
  top: -45px;
  right: 0;
  border-radius: 50%;
  z-index: 99999999;
  cursor: pointer;
}

#modal-overlay-movie .modal_close > span::before, #modal-overlay-movie .modal_close > span::after {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  right: 16px;
  margin: auto;
  bottom: 0;
  width: 2px;
  height: 18px;
  background: #fff;
}

#modal-overlay-movie .modal_close > span::before {
  transform: rotate(-45deg);
}

#modal-overlay-movie .modal_close > span::after {
  transform: rotate(45deg);
}

.js_ac_box {
  height: 0;
  -webkit-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
  visibility: hidden;
  overflow: hidden;
}

.is_open + .js_ac_box {
  height: auto;
  opacity: 1;
  visibility: visible;
}

.btn-arrow {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 50px;
  background-color: #fff;
  border: 1px solid #008741;
  color: #008741;
  border-radius: 10px;
  font-size: 1.6rem;
  line-height: 1.4;
  padding: 0 30px;
  margin: auto;
  width: 90%;
  max-width: 366px;
  font-weight: bold;
  text-align: center;
  position: relative;
}

.btn-arrow.--bg {
  background-color: #1f9c5c;
  border-color: #1f9c5c;
  color: #fff;
  height: 70px;
  font-size: 2rem;
  max-width: 340px;
  justify-content: center;
}

@media screen and (max-width: 991px) {
  .btn-arrow.--bg {
    font-size: 1.6rem;
    height: 60px;
  }
}

.btn-arrow.--bg::before {
  background-image: url(../img/img-common/arrow_right_w.svg);
}

@media screen and (min-width: 992px) {
  .btn-arrow.--bg:hover {
    background-color: #fff;
    color: #1f9c5c;
  }
  .btn-arrow.--bg:hover::before {
    background-image: url(../img/img-partner/arrow_right.svg);
  }
}

@media screen and (max-width: 991px) {
  .btn-arrow {
    font-size: 1.7rem;
    padding: 0 20px;
  }
}

.btn-arrow::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  background: url(../img/img-common/arrow_right.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 15 / 9;
  width: 15px;
}

.btn-arrow > span {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

@media screen and (min-width: 992px) {
  .btn-arrow {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .btn-arrow::before {
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
  }
  .btn-arrow:hover {
    background-color: #008741;
    color: #fff;
  }
  .btn-arrow:hover::before {
    background-image: url(../img/img-partner/arrow_right_w.svg);
  }
}

.bg-noise {
  background: url(../img/img-common/bg_green.webp) left center repeat;
  background-size: 100px;
}

@media screen and (max-width: 991px) {
  .bg-noise {
    background-size: 50px;
  }
}

.kusabanaBnr {
  display: flex;
  justify-content: center;
}

.kusabanaBnr.--txt a {
  position: relative;
  padding-top: 5%;
}

.kusabanaBnr.--txt a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 145px;
  margin: auto;
  background: url(../img/img-partner/txt_bnr.svg) left center no-repeat;
  background-size: contain;
  aspect-ratio: 280 / 105;
  width: 280px;
  margin-top: -40px;
}

@media screen and (max-width: 991px) {
  .kusabanaBnr.--txt a::before {
    background-image: url(../img/img-partner/txt_bnr_sp.svg);
    aspect-ratio: 200 / 69;
    width: 64%;
    left: 18%;
    margin-top: -50px;
  }
}

.ttl-bold {
  text-align: center;
  font-size: 4.2rem;
  font-weight: 900;
  color: #1f9c5c;
  letter-spacing: 0.1em;
  line-height: 1.6;
}

@media screen and (max-width: 991px) {
  .ttl-bold {
    font-size: 3rem;
  }
}

.ttl-bold.--w {
  color: #fff;
}

.ttl-bold.--w + .leadtxt p {
  color: #fff;
  line-height: 1.6;
}

.ttl-bold + .leadtxt {
  margin-top: 45px;
}

@media screen and (max-width: 991px) {
  .ttl-bold + .leadtxt {
    margin-top: 30px;
  }
}

.ttl-bold + .leadtxt p {
  color: #1f9c5c;
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
}

@media screen and (max-width: 991px) {
  .ttl-bold + .leadtxt p {
    font-size: 1.6rem;
  }
}

.ttl-dot {
  font-size: 4.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #008641;
  position: relative;
  padding-bottom: 40px;
  margin-bottom: 80px;
  text-align: center;
}

@media screen and (max-width: 991px) {
  .ttl-dot {
    font-size: 3rem;
    margin-bottom: 35px;
    padding-bottom: 20px;
  }
}

.ttl-dot::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: url(../img/img-common/ttl_line02.svg) center bottom no-repeat;
  background-size: contain;
  aspect-ratio: 192 / 12;
  width: 192px;
}

@media screen and (max-width: 991px) {
  .ttl-dot::after {
    width: 140px;
  }
}

.ttl-dot .t1 {
  font-family: "RocknRoll One", sans-serif;
  font-size: 2.5rem;
  display: block;
  text-align: center;
  font-weight: 400;
}

.ttl-dot .t1 > sup {
  vertical-align: super;
}

.ttl-dot.--w {
  color: #fff;
}

.ttl-dot.--w::after {
  background-image: url(../img/img-common/ttl_line01.svg);
}

.ttl-dot.--brown {
  color: #5e3b18;
}

.ttl-dot.--brown::after {
  background-image: url(../img/img-common/ttl_line03.svg);
}

.ttl-dot.--sky {
  color: #27a2be;
}

.ttl-dot.--sky::after {
  background-image: url(../img/img-common/ttl_line04.svg);
}

.ttl-dot.--txt {
  padding-bottom: 0;
}

.ttl-dot.--txt::after {
  content: none;
}

.ttl-dot.--txt > div {
  display: flex;
  justify-content: center;
  padding-top: 25px;
}

@media screen and (max-width: 991px) {
  .ttl-dot.--txt > div {
    padding-top: 20px;
  }
}

.ttl-dot.--txt > div > span {
  position: relative;
  font-size: 2.1rem;
  color: #444;
}

@media screen and (max-width: 991px) {
  .ttl-dot.--txt > div > span {
    font-size: 1.9rem;
  }
}

.ttl-dot.--txt > div > span::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -88px;
  margin: auto;
  aspect-ratio: 68 / 10;
  width: 68px;
  background: url(../img/img-common/ttl_line_left.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .ttl-dot.--txt > div > span::before {
    width: 50px;
    left: -60px;
  }
}

.ttl-dot.--txt > div > span::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -86px;
  margin: auto;
  aspect-ratio: 66 / 9;
  width: 66px;
  background: url(../img/img-common/ttl_line_right.svg) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .ttl-dot.--txt > div > span::after {
    width: 50px;
    right: -60px;
  }
}

.ttl-dot.--txt.--w > div > span {
  color: #fff;
}

.ttl-dot.--txt.--w > div > span::before {
  background-image: url(../img/img-common/ttl_line_left_w.svg);
}

.ttl-dot.--txt.--w > div > span::after {
  background-image: url(../img/img-common/ttl_line_right_w.svg);
}

.ttl-dot.--s {
  font-size: 4.4rem;
}

@media screen and (min-width: 992px) {
  .ttl-dot.--s {
    padding-bottom: 30px;
  }
}

@media screen and (max-width: 991px) {
  .ttl-dot.--s {
    font-size: 2.8rem;
  }
}

.ttl-dot + .leadtxt {
  margin-top: -25px;
}

@media screen and (max-width: 991px) {
  .ttl-dot + .leadtxt {
    margin: 0 auto 0;
    display: table;
    width: 90%;
  }
  .ttl-dot + .leadtxt p {
    text-align: left;
  }
}

.ttl-dot + .leadtxt p {
  margin-bottom: 0;
}

/* アニメーション */
/* フェード */
.fade {
  opacity: 0;
}

.fade.is-active {
  animation: fadeIn 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* 下からふわっと */
.fade_b {
  opacity: 0;
}

.fade_b.is-active {
  animation: fadeIn_b 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

@keyframes fadeIn_b {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 下からふわっと */
.fade_left {
  opacity: 0;
}

.fade_left.is-active {
  animation: fadeIn_left 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

@keyframes fadeIn_left {
  0% {
    opacity: 0;
    transform: translateX(-10px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.fuwafuwa {
  animation: fuwafuwa 2s linear infinite;
}

@keyframes fuwafuwa {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-30%);
  }
  100% {
    transform: translateY(0);
  }
}

/* 縮小 */
.shrink {
  overflow: hidden;
}

.shrink {
  opacity: 0;
}

.shrink.is-active {
  animation: Shrink 1.5s ease forwards;
}

@keyframes Shrink {
  0% {
    opacity: 0;
    transform: scale(1.2, 1.2);
  }
  100% {
    opacity: 1;
    transform: scale(1, 1);
  }
}

.txt_fadeup span {
  display: inline-block;
  /* Transformを効かせるために必要 */
  opacity: 0;
  transform: translateY(20px);
  /* 下に20pxずらしておく */
  will-change: transform, opacity;
}

.txt_fadeup.is-active span {
  animation: txtfadeUp 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* キーフレーム定義 */
@keyframes txtfadeUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 設定値 */
/* 想定する最大文字数 */
/* 1文字ごとの遅延時間 */
.txt_fadeup.is-active span {
  /* ループ処理 */
}

.txt_fadeup.is-active span:nth-child(1) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0s;
}

.txt_fadeup.is-active span:nth-child(2) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.1s;
}

.txt_fadeup.is-active span:nth-child(3) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.2s;
}

.txt_fadeup.is-active span:nth-child(4) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.3s;
}

.txt_fadeup.is-active span:nth-child(5) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.4s;
}

.txt_fadeup.is-active span:nth-child(6) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.5s;
}

.txt_fadeup.is-active span:nth-child(7) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.6s;
}

.txt_fadeup.is-active span:nth-child(8) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.7s;
}

.txt_fadeup.is-active span:nth-child(9) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.8s;
}

.txt_fadeup.is-active span:nth-child(10) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 0.9s;
}

.txt_fadeup.is-active span:nth-child(11) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1s;
}

.txt_fadeup.is-active span:nth-child(12) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.1s;
}

.txt_fadeup.is-active span:nth-child(13) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.2s;
}

.txt_fadeup.is-active span:nth-child(14) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.3s;
}

.txt_fadeup.is-active span:nth-child(15) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.4s;
}

.txt_fadeup.is-active span:nth-child(16) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.5s;
}

.txt_fadeup.is-active span:nth-child(17) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.6s;
}

.txt_fadeup.is-active span:nth-child(18) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.7s;
}

.txt_fadeup.is-active span:nth-child(19) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.8s;
}

.txt_fadeup.is-active span:nth-child(20) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 1.9s;
}

.txt_fadeup.is-active span:nth-child(21) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2s;
}

.txt_fadeup.is-active span:nth-child(22) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.1s;
}

.txt_fadeup.is-active span:nth-child(23) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.2s;
}

.txt_fadeup.is-active span:nth-child(24) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.3s;
}

.txt_fadeup.is-active span:nth-child(25) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.4s;
}

.txt_fadeup.is-active span:nth-child(26) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.5s;
}

.txt_fadeup.is-active span:nth-child(27) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.6s;
}

.txt_fadeup.is-active span:nth-child(28) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.7s;
}

.txt_fadeup.is-active span:nth-child(29) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.8s;
}

.txt_fadeup.is-active span:nth-child(30) {
  /* (インデックス - 1) * 遅延時間 で計算 */
  /* 1文字目: 0s, 2文字目: 0.1s, 3文字目: 0.2s ... となります */
  animation-delay: 2.9s;
}

/* 下からふわっと */
.fade_blur {
  opacity: 0;
  -webkit-filter: blur(1rem);
  filter: blur(1rem);
}

.fade_blur.is-active {
  animation: fadeIn_blur 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

@keyframes fadeIn_blur {
  0% {
    opacity: 0;
    -webkit-filter: blur(1rem);
    filter: blur(1rem);
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(0);
    filter: blur(0);
    transform: translateY(0);
  }
}

/* 左からふわっと */
.fade_blur_left {
  opacity: 0;
  -webkit-filter: blur(1rem);
  filter: blur(1rem);
}

.fade_blur_left.is-active {
  animation: fadeIn_blur_left 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

@keyframes fadeIn_blur_left {
  0% {
    opacity: 0;
    -webkit-filter: blur(1rem);
    filter: blur(1rem);
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(0);
    filter: blur(0);
    transform: translateX(0);
  }
}

/* 右からふわっと */
.fade_blur_right {
  opacity: 0;
  -webkit-filter: blur(1rem);
  filter: blur(1rem);
}

.fade_blur_right.is-active {
  animation: fadeIn_blur_right 0.6s cubic-bezier(0.55, 0.085, 0.68, 0.53) forwards;
}

@keyframes fadeIn_blur_right {
  0% {
    opacity: 0;
    -webkit-filter: blur(1rem);
    filter: blur(1rem);
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    -webkit-filter: blur(0);
    filter: blur(0);
    transform: translateX(0);
  }
}

/* Instagram */
.sb_instagram {
  padding: 0;
  text-align: center;
}

.sb_instagram .insta_ttl {
  margin-bottom: 15px;
}

.sb_instagram .insta_ttl a {
  text-decoration: none;
  line-height: 1;
}

.sb_instagram .insta_ttl .ins_tit {
  width: 65px;
  display: block;
  margin: 0 auto;
}

.sb_instagram .insta_ttl .ins_tit_sub {
  display: block;
  margin: 5px 0 0;
}

.sb_instagram .insta_ttl .t1,
.sb_instagram .insta_ttl .t2 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 5px;
}

.sb_instagram .insta_ttl .t1 {
  color: #754527;
}

.sb_instagram .insta_ttl .t2 {
  color: #429018;
}

#sb_instagram #sbi_images {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0;
}

#sb_instagram #sbi_images .sbi_item {
  margin: 10px 0 0;
}

.sb_instagram .btn_more .btn {
  margin-top: 10px;
  position: relative;
  display: flex;
  justify-content: center;
  margin: 15px auto 0;
  max-width: 260px;
  width: 80%;
  font-size: 1.4rem;
  font-family: "Atkinson Hyperlegible", sans-serif;
  letter-spacing: 0.1em;
  text-align: center;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  text-decoration: none;
  cursor: pointer;
  z-index: 2;
}

.sb_instagram .btn_more .btn::before {
  width: 100%;
  height: 100%;
  content: "";
  position: absolute;
  top: 5px;
  left: 5px;
  border: 2px solid #bca591;
  z-index: -1;
}

.sb_instagram .btn_more .btn > div {
  width: 100%;
  height: 100%;
  background: #3b3023;
  z-index: -1;
  color: #fff !important;
  padding: 15px 0;
  position: relative;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

.sb_instagram .btn_more .btn > div::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: -4px;
  right: 10px;
  margin: auto;
  width: 10px;
  height: 1px;
  background: #3b3023;
}

.sb_instagram .btn_more .btn > div::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 0 10px;
  border-color: transparent transparent transparent #3b3023;
}

.sb_instagram .btn_more .btn > span {
  padding-right: 25px;
  margin-right: -17px;
}

.sb_instagram .btn_more .btn > div {
  padding: 0;
  background: no-repeat;
  color: #3b3023 !important;
}

.sb_instagram .btn > div::before {
  background: #3b3023;
}

.sb_instagram .btn > div::after {
  border-color: transparent transparent transparent #3b3023;
}

.sb_instagram .btn::before {
  display: none;
}

.sb_instagram .btn span {
  border-bottom: 2px solid #3b3023;
  position: relative;
  top: -2px;
}

@media screen and (min-width: 992px) {
  .sb_instagram .sbi_images .sbi_item a:hover {
    opacity: 0.7;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
  }
  .sb_instagram .btn:hover span {
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
    border-bottom: none;
  }
}

@media screen and (max-width: 991px) {
  #sb_instagram {
    padding-left: 3%;
  }
  .sb_instagram .insta_ttl {
    margin-bottom: 15px;
  }
  .sb_instagram .insta_ttl .ins_tit {
    width: 45px;
  }
  .sb_instagram {
    padding: 10px 0 0;
  }
  .sb_instagram + .sb_instagram {
    padding: 20px 0 50px;
  }
  .sb_instagram .insta_ttl .ins_tit {
    font-size: 2rem;
  }
  #sb_instagram #sbi_images .sbi_item {
    padding: 5px !important;
  }
  .sb_instagram .btn_more .btn > div {
    width: 100%;
    font-size: 1.2rem;
  }
  .sb_instagram .btn_more .btn {
    margin-top: 15px;
  }
  .index_blk04 .staffblog {
    width: 90%;
    margin: 0 auto 35px;
  }
  .sb_instagram .btn_more .btn {
    max-width: 100%;
  }
  .sb_instagram .insta_ttl .t1,
  .sb_instagram .insta_ttl .t2 {
    font-size: 1.6rem;
    margin-bottom: 5px;
  }
  .sb_instagram .insta_ttl a {
    line-height: 1;
  }
}

.bg-top-movie {
  position: fixed;
  width: 100%;
  bottom: 0;
  height: 100%;
  left: 0;
  overflow: hidden;
  z-index: 1;
  pointer-events: none;
}

@media screen and (max-width: 991px) {
  .bg-top-movie {
    bottom: 0;
    width: 120%;
    left: -10%;
  }
}

.bg-top-movie.active .bg-top-movie-inner::after {
  opacity: 1;
}

.bg-top-movie-inner {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  clip-path: url(#movie-clip-top);
  -webkit-clip-path: url(#movie-clip-top);
}

.bg-top-movie-inner::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.bg-top-movie video {
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.mfp-wrap {
  z-index: 999999 !important;
}

#sb_instagram #sbi_images img {
  object-fit: cover;
}

/*===================================
  
  事例詳細

===================================*/
.works_detail {
  border-radius: 20px;
  padding: 160px 0 80px;
  position: relative;
  z-index: 2;
  width: 100%;
  box-sizing: border-box;
}

@media screen and (max-width: 991px) {
  .works_detail {
    padding: 60px 0 40px;
  }
}

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

.works_detail_txt {
  margin: 65px auto 0;
  max-width: 860px;
}

@media screen and (min-width: 992px) {
  .works_detail_txt {
    line-height: 2;
  }
}

@media screen and (min-width: 992px) {
  .works_detail_txt p {
    line-height: 2;
    font-size: 1.7rem;
    letter-spacing: 0.05em;
  }
}

.works_detail_txt p + p {
  margin-top: 15px;
}

.works_detail_txt iframe {
  margin-bottom: 30px;
}

.works_detail_ttl {
  font-size: 3rem;
  font-weight: 400;
  margin-bottom: 45px;
  line-height: 1.4;
  position: relative;
  padding-left: 80px;
  padding-top: 30px;
  padding-bottom: 30px;
  letter-spacing: 0.05em;
  font-family: "RocknRoll One", sans-serif;
}

@media screen and (min-width: 992px) {
  .works_detail_ttl {
    margin-top: 33px;
  }
}

.works_detail_ttl::after {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  background: url(../img/img-works/dot_line_l.webp) bottom center no-repeat;
  background-size: cover;
  width: 100%;
  height: 2px;
}

.works_detail_ttl::before {
  content: "";
  position: absolute;
  background: url(../img/img-works/illust_leaf.webp) left center no-repeat;
  background-size: contain;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 61px;
  height: 55px;
}

.works_detail_info {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  margin-bottom: 30px;
}

.works_detail_info li:not(:last-child) {
  margin-bottom: 20px;
}

.works_detail_spot {
  font-weight: bold;
  font-size: 1.5rem;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 991px) {
  .works_detail_spot {
    font-size: 1.6rem;
  }
}

.works_detail_date {
  position: relative;
  padding-left: 30px;
  font-size: 1.4rem;
  letter-spacing: 0.05em;
}

.works_detail_date::before {
  content: "";
  position: absolute;
  background: url(../img/img-works/icon_calendar.webp) left center no-repeat;
  background-size: contain;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 20px;
  height: 18px;
}

.works_detail_imglist {
  padding-top: 20px;
  display: flex;
  flex-wrap: wrap;
}

.works_detail_img {
  width: 33%;
}

.works_detail_img:nth-child(3n-1) {
  margin: 0 0.5%;
}

.works_detail_img:nth-child(n + 4) {
  margin-top: 0.5%;
}

.works_detail_caption {
  padding: 5px 0 10px;
  text-align: center;
}

.works_detail_wrap {
  position: relative;
  z-index: 2;
  max-width: 960px;
  margin: auto;
}

@media screen and (max-width: 991px) {
  .works_detail_txt {
    width: 100%;
    padding: 0 10%;
    box-sizing: border-box;
    margin-top: 30px;
  }
  .works_detail_txt p {
    font-size: 1.5rem;
  }
  .works_detail_txt iframe {
    margin-bottom: 25px;
  }
  .works_detail_ttl {
    font-size: 1.9rem;
    margin-top: 0;
    margin-bottom: 25px;
    padding-left: 45px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .works_detail_ttl::after {
    position: absolute;
    content: "";
    background: url(../img/img-works/dot_line_l_sp.webp) bottom center no-repeat;
    background-size: cover;
    width: 100%;
    height: 2px;
  }
  .works_detail_ttl::before {
    width: 35px;
    height: 30px;
  }
  .works_detail_info {
    flex-direction: column;
    align-items: flex-end;
    margin-bottom: 15px;
  }
  .works_detail_info li {
    margin-left: auto;
    font-size: 1.3rem;
  }
  .works_detail_info li:not(:last-child) {
    margin: 0 0 5px 0;
  }
  .works_detail_date {
    position: relative;
    padding-left: 25px;
    font-size: 1.1rem;
  }
  .works_detail_date::before {
    background-size: contain;
    width: 18px;
    height: 14px;
  }
  .works_detail_wrap {
    display: flex;
    flex-direction: column;
  }
  .works_detail_imglist {
    padding-top: 0;
    margin-bottom: 20px;
  }
  .works_detail_img {
    width: 48.5%;
  }
  .works_detail_img:nth-child(3n-1) {
    margin: 0;
  }
  .works_detail_img:nth-child(2n) {
    margin-left: 1%;
  }
  .works_detail_img:nth-child(n + 3) {
    margin-top: 0.5%;
  }
  .works_detail_caption {
    font-size: 1rem;
    padding: 5px 0 10px;
    text-align: center;
    line-height: 1.4;
  }
  /*--------------------------------------------------------------------
  2021-12-24
  施工事例詳細ページ 上部イラスト変更に伴う追加CSS
  --------------------------------------------------------------------*/
  .single-works .mv_illust {
    top: 60px;
    left: -70px;
  }
  .movie_wrap {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
  }
  .movie_wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

.single-works .mv {
  position: relative;
}

.single-works .mv::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 100%;
  height: 300px;
  background: #fff;
}

@media screen and (max-width: 991px) {
  .single-works .mv::before {
    height: 50vw;
  }
}

.single-works .mv .mv_lead {
  z-index: 2;
}

.works_detail .inner {
  max-width: 1640px;
}

@media screen and (max-width: 991px) {
  .works_detail .inner {
    padding: 0;
  }
}

.works_detail_lead .flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
}

.works_detail_lead .flex::before {
  content: "";
  position: absolute;
  bottom: -100px;
  left: 70px;
  margin: auto;
  background: url(../img/img-works/bg_mv.webp) left center no-repeat;
  background-size: contain;
  width: 646px;
  height: 508px;
  pointer-events: none;
}

@media screen and (max-width: 991px) {
  .works_detail_lead .flex::before {
    background-image: url(../img/img-works/bg_mv_sp.webp);
    width: 100vw;
    left: 0;
    right: 0;
    height: 100%;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_lead .flex {
    flex-direction: column-reverse;
  }
}

.works_detail_lead .flex .item:nth-child(1) {
  position: relative;
  padding-bottom: 80px;
  padding-top: 100px;
}

@media screen and (max-width: 991px) {
  .works_detail_lead .flex .item:nth-child(1) {
    padding: 0;
  }
}

.works_detail_lead .flex .item:nth-child(2) {
  position: relative;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .works_detail_lead .flex .item:nth-child(1) {
    width: 35%;
    padding-right: 50px;
  }
  .works_detail_lead .flex .item:nth-child(2) {
    width: 65%;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_lead .flex .item {
    width: 92%;
    margin: auto;
  }
  .works_detail_lead .flex .item:nth-child(1) {
    margin-top: 15px;
    width: 88%;
  }
}

.works_detail_lead .flex .item .image {
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 560/315;
}

.works_detail_lead .flex .item .image {
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 970/620;
}

.works_detail_lead .flex .item .image.--movie {
  aspect-ratio: 560/315;
}

.works_detail_lead .flex .item .image img,
.works_detail_lead .flex .item .image iframe {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.works_detail_lead .flex .item .txt {
  position: relative;
  z-index: 2;
}

.works_detail_images {
  margin-top: 85px;
}

@media screen and (max-width: 991px) {
  .works_detail_images {
    margin-top: 40px;
  }
}

.works_detail_item .image {
  display: flex;
  justify-content: center;
  position: relative;
}

.works_detail_item .image::before {
  content: "";
  position: absolute;
  height: 100%;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .works_detail_item .image::before {
    width: 100% !important;
    left: 0;
    right: 0;
  }
}

.works_detail_item .image img {
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .works_detail_item .image img {
    width: 88%;
    margin: auto;
  }
}

.works_detail_item .image.--vertical img {
  max-width: 563px;
}

@media screen and (max-width: 991px) {
  .works_detail_item .image.--vertical img {
    width: 65%;
    margin: auto;
  }
}

.works_detail_item .txt {
  max-width: 860px;
  margin: 40px auto 0;
  box-sizing: border-box;
  font-size: 1.6rem;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 991px) {
  .works_detail_item .txt {
    margin-top: 20px;
    width: 100%;
    padding: 0 10%;
  }
}

@media screen and (min-width: 992px) {
  .works_detail_item .txt p {
    line-height: 2;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_item .txt p {
    font-size: 1.5rem;
  }
}

.works_detail_item:nth-child(1) .image::before,
.works_detail_item:nth-child(5) .image::before {
  width: 569px;
  background-image: url(../img/img-works/bg_img01.webp);
  background-position: right bottom;
}

@media screen and (min-width: 992px) {
  .works_detail_item:nth-child(1) .image::before,
  .works_detail_item:nth-child(5) .image::before {
    bottom: -60px;
    right: -230px;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_item:nth-child(1) .image::before,
  .works_detail_item:nth-child(5) .image::before {
    background-image: url(../img/img-works/bg_img01_sp.webp);
    bottom: 0;
  }
}

.works_detail_item:nth-child(2) .image::before,
.works_detail_item:nth-child(6) .image::before {
  width: 564px;
  background-image: url(../img/img-works/bg_img02.webp);
  background-position: left bottom;
}

@media screen and (min-width: 992px) {
  .works_detail_item:nth-child(2) .image::before,
  .works_detail_item:nth-child(6) .image::before {
    bottom: -80px;
    left: -95px;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_item:nth-child(2) .image::before,
  .works_detail_item:nth-child(6) .image::before {
    background-image: url(../img/img-works/bg_img02_sp.webp);
    bottom: 0;
  }
}

.works_detail_item:nth-child(3) .image::before,
.works_detail_item:nth-child(7) .image::before {
  width: 564px;
  background-image: url(../img/img-works/bg_img03.webp);
  background-position: right top;
}

@media screen and (min-width: 992px) {
  .works_detail_item:nth-child(3) .image::before,
  .works_detail_item:nth-child(7) .image::before {
    top: 0;
    right: -150px;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_item:nth-child(3) .image::before,
  .works_detail_item:nth-child(7) .image::before {
    background-image: url(../img/img-works/bg_img03_sp.webp);
    top: 30px;
  }
}

.works_detail_item:nth-child(4) .image::before,
.works_detail_item:nth-child(8) .image::before {
  width: 519px;
  background-image: url(../img/img-works/bg_img04.webp);
  background-position: left bottom;
}

@media screen and (min-width: 992px) {
  .works_detail_item:nth-child(4) .image::before,
  .works_detail_item:nth-child(8) .image::before {
    bottom: 0;
    left: -200px;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_item:nth-child(4) .image::before,
  .works_detail_item:nth-child(8) .image::before {
    background-image: url(../img/img-works/bg_img04_sp.webp);
    top: 0;
    background-position: left top;
  }
}

.works_detail_item + .works_detail_item {
  margin-top: 90px;
}

@media screen and (max-width: 991px) {
  .works_detail_item + .works_detail_item {
    margin-top: 35px;
  }
}

.works_detail_point {
  position: relative;
  padding: 230px 0 120px;
}

@media screen and (max-width: 991px) {
  .works_detail_point {
    padding: 90px 0 90px;
    margin-top: 35px;
  }
}

.works_detail_point::before {
  content: "";
  position: absolute;
  background: url(../img/img-works/bg_point_top.webp) center center no-repeat;
  background-size: cover;
  width: 100%;
  height: 314px;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
}

@media screen and (max-width: 991px) {
  .works_detail_point::before {
    background-image: url(../img/img-works/bg_point_top_sp.webp);
    height: 138px;
  }
}

.works_detail_point::after {
  content: "";
  position: absolute;
  background: url(../img/img-works/bg_point_bottom.webp) center center no-repeat;
  background-size: cover;
  width: 100%;
  height: 193px;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

@media screen and (max-width: 991px) {
  .works_detail_point::after {
    background-image: url(../img/img-works/bg_point_bottom_sp.webp);
    height: 97px;
  }
}

.works_detail_point .illust01 {
  position: absolute;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .works_detail_point .illust01 {
    top: 88px;
    left: calc(50vw - 385px);
  }
}

@media screen and (max-width: 991px) {
  .works_detail_point .illust01 {
    top: 15px;
    left: 6%;
    width: 25%;
  }
}

.works_detail_point .illust02 {
  position: absolute;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .works_detail_point .illust02 {
    top: 66px;
    right: calc(50vw - 388px);
  }
}

@media screen and (max-width: 991px) {
  .works_detail_point .illust02 {
    top: 0;
    right: 3%;
    width: 45%;
  }
}

.works_detail_point .illust03 {
  position: absolute;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .works_detail_point .illust03 {
    bottom: 28px;
    left: calc(50vw - 560px);
  }
}

@media screen and (max-width: 991px) {
  .works_detail_point .illust03 {
    bottom: 0;
    left: 6%;
    width: 30%;
  }
}

.works_detail_point_wrap {
  background: url(../img/img-works/bg_point.webp) center center repeat;
  background-size: 80px;
}

.works_detail_point .inner {
  max-width: 1210px;
}

@media screen and (max-width: 991px) {
  .works_detail_point .inner {
    padding: 0 10%;
  }
}

.works_detail_point dl {
  position: relative;
  z-index: 2;
}

.works_detail_point dt {
  display: flex;
  justify-content: center;
  margin-bottom: 35px;
}

@media screen and (max-width: 991px) {
  .works_detail_point dt {
    margin-bottom: 15px;
  }
}

.works_detail_point dt > span {
  position: relative;
}

.works_detail_point dt > span::before {
  content: "";
  position: absolute;
  top: -30px;
  left: -20px;
  width: 50px;
  height: 100%;
  pointer-events: none;
  background: url(../img/img-works/illust_point_ttl.webp) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .works_detail_point dt > span::before {
    width: 25px;
    top: -25px;
    left: -10px;
  }
}

.works_detail_point dd .txt {
  padding-bottom: 50px;
  max-width: 860px;
  margin: auto;
}

.works_detail_point .flex {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
}

.works_detail_point .flex .item .image img {
  width: 100%;
  box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.2);
  border-radius: 0;
}

@media screen and (max-width: 991px) {
  .works_detail_point .flex {
    flex-wrap: wrap;
    flex-direction: column-reverse;
  }
}

@media screen and (min-width: 992px) {
  .works_detail_point .flex .item:nth-child(1) {
    width: 60%;
    padding-right: 50px;
  }
  .works_detail_point .flex .item:nth-child(2) {
    width: 40%;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_point .flex .item {
    width: 100%;
  }
  .works_detail_point .flex .item:not(:last-child) {
    margin-top: 20px;
  }
}

@media screen and (min-width: 992px) {
  .works_detail_point .flex .item p {
    line-height: 2;
    font-size: 1.6rem;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_point .flex .item p,
  .works_detail_point dd .txt p {
    font-size: 1.5rem;
  }
}

.works_detail_voice .inner {
  max-width: 1210px;
}

@media screen and (max-width: 991px) {
  .works_detail_voice .inner {
    padding: 0 6%;
  }
}

.works_detail_voice dl dt {
  margin-bottom: 40px;
}

@media screen and (max-width: 991px) {
  .works_detail_voice dl dt {
    margin-bottom: 15px;
  }
}

@media screen and (min-width: 992px) {
  .works_detail_voice dl dd p {
    line-height: 2;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_voice dl dd p {
    font-size: 1.5rem;
  }
}

.works_detail_voice dl dd .bgbox {
  position: relative;
  background: #f4efec;
  padding: 35px 150px 60px 70px;
  border-radius: 10px;
}

@media screen and (max-width: 991px) {
  .works_detail_voice dl dd .bgbox {
    padding: 20px 80px 50px 20px;
  }
  .works_detail_voice dl dd .bgbox p {
    font-size: 1.5rem !important;
  }
}

.works_detail_voice dl dd .bgbox .illust01 {
  position: absolute;
  top: -95px;
  left: calc(50% - 320px);
}

@media screen and (max-width: 991px) {
  .works_detail_voice dl dd .bgbox .illust01 {
    width: 54px;
    left: 30px;
    top: -60px;
  }
}

.works_detail_voice dl dd .bgbox .illust02 {
  position: absolute;
  top: -35px;
  right: calc(50% - 320px);
}

@media screen and (max-width: 991px) {
  .works_detail_voice dl dd .bgbox .illust02 {
    width: 32px;
    right: 30px;
    top: -10px;
  }
}

.works_detail_voice dl dd .bgbox .illust03 {
  position: absolute;
  bottom: -25px;
  left: 30px;
}

@media screen and (max-width: 991px) {
  .works_detail_voice dl dd .bgbox .illust03 {
    width: 40px;
    left: 30px;
    bottom: -10px;
  }
}

.works_detail_voice dl dd .bgbox .illust04 {
  position: absolute;
  bottom: -35px;
  right: -30px;
}

@media screen and (max-width: 991px) {
  .works_detail_voice dl dd .bgbox .illust04 {
    width: 77px;
    right: 7px;
    bottom: -15px;
  }
}

.works_detail_data {
  margin-top: 80px;
  position: relative;
  z-index: 2;
  padding: 100px 0 104px;
}

@media screen and (max-width: 991px) {
  .works_detail_data {
    padding: 49px 0 45px;
  }
}

.works_detail_data::before {
  content: "";
  position: absolute;
  background: url(../img/img-works/bg_data_top.webp) center center no-repeat;
  background-size: cover;
  width: 100%;
  height: 170px;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
}

@media screen and (max-width: 991px) {
  .works_detail_data::before {
    background-image: url(../img/img-works/bg_data_top_sp.webp);
    height: 49px;
  }
}

.works_detail_data::after {
  content: "";
  position: absolute;
  background: url(../img/img-works/bg_data_bottom.webp) center center no-repeat;
  background-size: cover;
  width: 100%;
  height: 104px;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

@media screen and (max-width: 991px) {
  .works_detail_data::after {
    background-image: url(../img/img-works/bg_data_bottom_sp.webp);
    height: 45px;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_data .inner {
    padding: 0 6%;
  }
}

.works_detail_data_wrap {
  background: url(../img/img-works/bg_data.webp) center center repeat;
  background-size: 80px;
  padding: 0 0 50px;
}

@media screen and (max-width: 991px) {
  .works_detail_data_wrap {
    padding: 0 0 25px;
  }
}

.works_detail_data .works_ttl_s {
  position: relative;
  z-index: 2;
  margin-bottom: 30px;
}

@media screen and (max-width: 991px) {
  .works_detail_data .works_ttl_s {
    margin-bottom: 20px;
  }
}

.works_detail_data table {
  margin: auto;
  padding: 0px;
  width: 100%;
  table-layout: fixed;
  word-wrap: break-word;
  white-space: normal;
  max-width: 750px;
  position: relative;
  z-index: 2;
}

.works_detail_data table th,
.works_detail_data table td {
  vertical-align: top;
  border-bottom: 2px dotted #ccc;
  padding: 20px 15px;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 991px) {
  .works_detail_data table th,
  .works_detail_data table td {
    font-size: 1.5rem;
    padding: 15px 5px;
  }
}

.works_detail_data table th {
  width: 20%;
}

@media screen and (max-width: 991px) {
  .works_detail_data table th {
    width: 25%;
    font-weight: 400;
  }
}

.works_detail_data table td {
  padding-left: 20px;
  font-weight: 700;
}

.works_detail_relation {
  padding: 30px 0 90px;
}

@media screen and (max-width: 991px) {
  .works_detail_relation {
    padding: 30px 0 50px;
  }
}

.works_detail_relation .inner {
  max-width: 830px;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .inner {
    padding: 0 10%;
  }
}

.works_detail_relation .works_ttl_s {
  display: flex;
  justify-content: center;
}

@media screen and (min-width: 992px) {
  .works_detail_relation .works_ttl_s > span {
    position: relative;
  }
  .works_detail_relation .works_ttl_s > span::after {
    content: "";
    position: absolute;
    top: -35px;
    right: -135px;
    margin: auto;
    background: url(../img/img-works/illust_relation01.webp) left center no-repeat;
    background-size: contain;
    width: 72px;
    height: 54px;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_relation .works_ttl_s {
    margin-bottom: 20px;
  }
}

.works_detail_relation .wbox {
  border: 1px solid #846959;
  border-radius: 10px;
  padding: 10px;
  display: block;
  text-decoration: none;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .wbox {
    padding: 7px;
  }
}

.works_detail_relation .wbox + .wbox {
  margin-top: 20px;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .wbox + .wbox {
    margin-top: 15px;
  }
}

@media screen and (min-width: 992px) {
  .works_detail_relation .wbox {
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
  }
}

.works_detail_relation .wbox .flex {
  display: flex;
  justify-content: space-between;
}

.works_detail_relation .wbox .flex .item:nth-child(1) {
  width: 160px;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .wbox .flex .item:nth-child(1) {
    width: 100px;
  }
}

.works_detail_relation .wbox .flex .item:nth-child(2) {
  width: calc(100% - 160px);
  padding-left: 30px;
  display: flex;
  flex-direction: column;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .wbox .flex .item:nth-child(2) {
    width: calc(100% - 100px);
    padding-left: 12px;
  }
}

.works_detail_relation .wbox .flex .item .image {
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 160/102;
}

.works_detail_relation .wbox .flex .item .image img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.works_detail_relation .wbox .flex .item .t1 {
  font-size: 1.5rem;
  text-decoration: underline;
  font-weight: 700;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .wbox .flex .item .t1 {
    font-size: 1rem;
  }
}

.works_detail_relation .wbox .t2 {
  margin-top: auto;
  font-size: 1.3rem;
  text-align: right;
  position: relative;
  padding-right: 35px;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .wbox .t2 {
    padding-right: 25px;
    font-size: 0.8rem;
    margin-top: 7px;
  }
}

.works_detail_relation .wbox .t2::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 33px;
  height: 13px;
  background: url(../img/img-works/arrow.webp) left center no-repeat;
  background-size: contain;
}

@media screen and (max-width: 991px) {
  .works_detail_relation .wbox .t2::after {
    width: 20px;
    height: 7.789px;
  }
}

.works_detail_other {
  padding: 50px 0;
}

@media screen and (max-width: 991px) {
  .works_detail_other {
    padding: 35px 0 25px;
  }
}

.works_detail_other .inner {
  max-width: 1210px;
}

@media screen and (max-width: 991px) {
  .works_detail_other .inner {
    padding: 0;
  }
}

.works_detail_other dl {
  position: relative;
}

.works_detail_other dl::after {
  content: "";
  position: absolute;
  top: -125px;
  left: 129px;
  margin: auto;
  background: url(../img/img-works/bg_other.webp) left center no-repeat;
  background-size: contain;
  width: 461px;
  height: 386px;
  pointer-events: none;
}

@media screen and (max-width: 991px) {
  .works_detail_other dl::after {
    width: 100%;
    height: 100%;
    top: -35px;
    left: 0;
    background-image: url(../img/img-works/bg_other_sp.webp);
    background-position: left top;
  }
}

.works_detail_other dl dt,
.works_detail_other dl dd {
  position: relative;
  z-index: 2;
}

@media screen and (min-width: 992px) {
  .works_detail_other .flex {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
}

@media screen and (max-width: 991px) {
  .works_detail_other .flex {
    padding-top: 5px;
  }
}

.works_detail_other .flex .item {
  text-decoration: none;
}

@media screen and (max-width: 991px) {
  .works_detail_other .flex .item {
    margin: 0 7px;
  }
}

.works_detail_other .flex .item .image {
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 265/200;
}

.works_detail_other .flex .item .image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.works_detail_other .flex .item .txt {
  width: 90%;
  margin: 15px auto 0;
  color: #57331c;
  font-size: 1.5rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 991px) {
  .works_detail_other .flex .item .txt {
    width: 100%;
    font-size: 1.4rem;
  }
}

.works_detail_wrap + .works_detail_relation,
.works_detail_wrap + .works_detail_voice {
  margin-top: 120px;
}

@media screen and (max-width: 991px) {
  .works_detail_wrap + .works_detail_relation,
  .works_detail_wrap + .works_detail_voice {
    margin-top: 35px;
  }
}

.works_detail_relation + .works_detail_data {
  margin-top: 0;
}

.works_ttl_s {
  font-weight: bold;
  color: #57331c;
  font-size: 2.4rem;
  margin-bottom: 40px;
  text-align: center;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 991px) {
  .works_ttl_s {
    font-size: 1.6rem;
    margin-bottom: 15px;
  }
}

.works_ttl_s > span {
  display: block;
  font-size: 2.6rem;
  letter-spacing: 0.1em;
}

@media screen and (max-width: 991px) {
  .works_ttl_s > span {
    font-size: 1.7rem;
  }
}

.works_pager {
  padding-bottom: 120px;
}

.works_pager.--blog {
  padding: 100px 0 0;
}

@media screen and (max-width: 991px) {
  .works_pager.--blog {
    padding: 50px 0 0;
  }
}

@media screen and (max-width: 991px) {
  .works_pager {
    padding-bottom: 60px;
  }
}

.works_pager .nav_beforeafter {
  margin: 0 auto;
}

.nav_beforeafter {
  width: 60%;
  margin: 80px auto 50px;
  border-radius: 50px;
}

@media screen and (max-width: 991px) {
  .nav_beforeafter {
    width: 100%;
    margin: 40px auto 20px;
  }
}

.nav_beforeafter ul {
  display: flex;
  justify-content: center;
}

.nav_beforeafter ul li {
  width: 32.5%;
  line-height: 1.6;
}

.nav_beforeafter ul li.to_list {
  width: 35%;
  position: relative;
}

.nav_beforeafter ul li.to_list::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  height: 50%;
  width: 1px;
  border-left: 1px dotted #000;
}

.nav_beforeafter ul li.to_list::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  height: 50%;
  width: 1px;
  border-right: 1px dotted #000;
}

.nav_beforeafter ul li.to_list a > span {
  padding-right: 40px;
  position: relative;
  display: inline-block;
  background: url(../img/img-common/icon_list.webp) no-repeat right center;
  background-size: 20px auto;
}

@media screen and (max-width: 991px) {
  .nav_beforeafter ul li.to_list a > span {
    padding-right: 30px;
    background-size: 15px auto;
  }
}

.nav_beforeafter ul li a {
  display: flex;
  justify-content: center;
  color: #4a4138;
  font-size: 1.8rem;
  color: #242413;
  font-weight: bold;
  text-decoration: none;
  padding: 22px 0;
}

@media screen and (max-width: 991px) {
  .nav_beforeafter ul li a {
    font-size: 1.4rem;
    padding: 15px 0;
  }
}

.nav_beforeafter ul li a:hover {
  text-decoration: underline;
}

.nav_beforeafter ul li a.prev > span {
  padding-left: 50px;
  position: relative;
  display: inline-block;
}

@media screen and (max-width: 991px) {
  .nav_beforeafter ul li a.prev > span {
    padding-left: 20px;
  }
}

.nav_beforeafter ul li a.prev > span::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 10px;
  height: 10px;
  border-top: 3px solid #9c7140;
  border-right: 3px solid #9c7140;
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}

@media screen and (max-width: 991px) {
  .nav_beforeafter ul li a.prev > span::after {
    width: 7px;
    height: 7px;
    border-width: 2px;
  }
}

.nav_beforeafter ul li a.next > span {
  padding-right: 50px;
  position: relative;
  display: inline-block;
}

@media screen and (max-width: 991px) {
  .nav_beforeafter ul li a.next > span {
    padding-right: 30px;
  }
}

.nav_beforeafter ul li a.next > span::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 10px;
  height: 10px;
  border-top: 3px solid #9c7140;
  border-right: 3px solid #9c7140;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

@media screen and (max-width: 991px) {
  .nav_beforeafter ul li a.next > span::after {
    width: 7px;
    height: 7px;
    border-width: 2px;
  }
}

/*--------------------------------------------------------- 
 contact
--------------------------------------------------------- */
.contact {
  position: relative;
  z-index: 2;
  padding: 120px 0 80px;
}

@media screen and (max-width: 991px) {
  .contact {
    padding: 60px 0 40px;
  }
}

.contact .inner {
  max-width: 980px;
}

.contact .mw_wp_form {
  position: relative;
  z-index: 2;
}

.doc .contact p {
  padding: 0;
}

.contact .contact_privacy {
  margin-top: 80px;
  text-align: right;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
}

.contact .contact_privacy a {
  margin-top: 10px;
  margin-right: 0.5em;
  display: table;
  margin-left: auto;
}

.mw_wp_form_confirm + .contact_privacy,
.mw_wp_form_complete + .contact_privacy {
  display: none;
}

@media screen and (max-width: 991px) {
  .contact .contact_privacy {
    width: 90%;
    margin: 50px auto 0;
    text-align: left;
    font-size: 1.1rem;
  }
  .contact .contact_privacy a {
    margin-top: 5px;
  }
}

.contact .contact_ttl {
  font-size: 3.2rem;
  text-align: center;
  color: #3f1f00;
  padding-top: 20px;
  margin-bottom: 50px;
}

@media screen and (max-width: 991px) {
  .contact .contact_ttl {
    font-size: 1.6rem;
    text-align: left;
    color: #3f1f00;
    padding: 15px;
    margin-bottom: 25px;
    background-color: #f8f9e4;
  }
}

.contact .contact_btnarea {
  display: flex;
  justify-content: center;
  margin-top: 35px;
  gap: 20px;
}

@media screen and (max-width: 991px) {
  .contact .contact_btnarea {
    gap: 15px;
  }
}

.contact input.confbtn,
.contact input.modifybtn {
  position: relative;
  cursor: pointer;
  display: block;
  width: 285px;
  height: 70px;
  border: 2px solid #e07f1d;
  border-radius: 50px;
  background-color: #fff;
  color: #e07f1d;
  font-size: 2.4rem;
  font-weight: 500;
  font-family: "RocknRoll One", "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0.03em;
  line-height: 1.4;
  text-align: center;
  text-indent: 0;
  padding: 0 50px 0 35px;
  background: url(../img/img-common/arrow_right_choco.svg) right 20px center no-repeat;
  background-size: 25px;
}

@media screen and (max-width: 991px) {
  .contact input.confbtn,
  .contact input.modifybtn {
    font-size: 1.8rem;
    background-size: 20px;
    background-position: right 10px center;
  }
}

.contact input.modifybtn {
  padding: 0 35px 0 50px;
  background-image: url(../img/img-common/arrow_left_gray.svg);
  background-position: left 20px center;
  border-color: #968e86;
  color: #968e86;
}

@media screen and (max-width: 991px) {
  .contact input.modifybtn {
    background-position: left 10px center;
  }
}

@media screen and (min-width: 992px) {
  .contact input.modifybtn,
  .contact input.confbtn {
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
  }
  .contact input.confbtn:hover {
    background-color: #e07f1d;
    color: #fff;
    background-image: url(../img/img-common/arrow_right_w.svg);
  }
  .contact input.modifybtn:hover {
    background-color: #968e86;
    color: #fff;
    background-image: url(../img/img-common/arrow_left_w.svg);
  }
}

@media screen and (max-width: 991px) {
  .contact .contact_btnarea {
    margin-top: 20px;
  }
  .contact input.modifybtn,
  .contact input.confbtn {
    width: 50%;
    height: 50px;
  }
}

.contact_thanks {
  display: table;
  margin: auto;
}

@media screen and (max-width: 991px) {
  .contact_thanks {
    padding: 0 15px !important;
  }
}

.privacy_main .create_text01,
.doc .privacy_main p {
  font-size: 1.6rem;
}

@media screen and (max-width: 991px) {
  .privacy_main .create_text01,
  .doc .privacy_main p {
    font-size: 1.1rem;
  }
}

/* お問い合わせ */
/*-----------------　フォーム　 --------------*/
.tb_contact {
  width: 100%;
  border-collapse: collapse;
  font-size: 85%;
}

@media screen and (max-width: 991px) {
  .tb_contact {
    border-top: 1px solid #b9b9b9;
  }
}

.tb_contact + .tb_contact {
  margin-top: 30px;
}

.tb_contact .top_box {
  width: 64.5%;
  height: auto;
  float: left;
  border-style: solid;
  border-top-width: 0px;
  border-left-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-color: #c0c1bc;
  margin-right: 5px;
}

.tb_contact th {
  width: 35%;
  padding: 20px 15px;
  text-align: left;
  vertical-align: top;
  color: #333;
  background-color: #fbf2d8;
  border: 1px solid #b9b9b9;
  border-right: none;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  box-sizing: border-box;
  vertical-align: middle;
}

@media screen and (max-width: 991px) {
  .tb_contact th {
    display: block;
    width: 100%;
    border-top: none;
    border-bottom: none;
    border-right: 1px solid #b9b9b9;
    padding: 10px 15px;
    font-size: 1.2rem !important;
    position: relative;
  }
}

.tb_contact th > div {
  font-size: 1.4rem;
  font-weight: normal;
  padding-top: 5px;
  line-height: 1.5;
}

@media screen and (max-width: 991px) {
  .tb_contact th > div {
    font-size: 1rem;
  }
}

.tb_contact th .hisu {
  background: #ff8000;
  display: inline-block;
  padding: 5px 3px;
  line-height: 1;
  color: #fff;
  margin-left: 10px;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
}

@media screen and (max-width: 991px) {
  .tb_contact th .hisu {
    font-size: 1rem;
    position: absolute;
    right: 15px;
  }
}

.tb_contact td {
  padding: 20px 25px;
  background-color: #fff;
  border: 1px solid #b9b9b9;
  border-left: none;
  box-sizing: border-box;
}

@media screen and (max-width: 991px) {
  .tb_contact td {
    display: block;
    width: 100%;
    border-left: 1px solid #b9b9b9;
    border-top: none;
  }
}

.tb_contact td input[type="text"] {
  height: 35px;
  width: 70%;
  box-sizing: border-box;
  padding: 5px;
}

@media screen and (max-width: 991px) {
  .tb_contact td input[type="text"] {
    width: 100%;
    font-size: 16px !important;
  }
}

.tb_contact td textarea {
  height: 200px;
  width: 100%;
  box-sizing: border-box;
  padding: 5px;
}

@media screen and (max-width: 991px) {
  .tb_contact td textarea {
    width: 100%;
    font-size: 16px !important;
  }
}

.tb_contact .chk_list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.tb_contact .chk_list > span {
  width: 48%;
  margin-left: 0 !important;
}

@media screen and (min-width: 992px) {
  .tb_contact .chk_list > span:nth-child(n + 3) {
    margin-top: 10px;
  }
}

@media screen and (max-width: 991px) {
  .tb_contact .chk_list > span {
    width: 100%;
    font-size: 1.2rem;
  }
  .tb_contact .chk_list > span + span {
    margin-top: 5px;
  }
}

.tb_contact_place dl {
  display: flex;
  align-items: center;
}

@media screen and (max-width: 991px) {
  .tb_contact_place dl:first-child dt {
    padding-bottom: 2em;
  }
}

.tb_contact_place dl + dl {
  margin-top: 15px;
}

.tb_contact_place dl dt {
  width: 5em;
  font-weight: bold;
}

.tb_contact_place dl dd {
  width: calc(100% - 5em);
}

.tb_contact_zip {
  display: flex;
  align-items: center;
}

@media screen and (max-width: 991px) {
  .tb_contact_zip {
    flex-wrap: wrap;
    justify-content: space-between;
    padding-bottom: 2em;
    position: relative;
  }
}

.tb_contact_zip > input {
  width: 35% !important;
}

@media screen and (max-width: 991px) {
  .tb_contact_zip > input {
    width: 57% !important;
  }
}

.tb_contact_zip > button {
  font-size: 1.4rem;
  height: 35px;
  padding: 0 10px;
  margin-left: 10px;
  border-radius: 4px;
  border: 1px solid #999;
  background-image: linear-gradient(rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.1));
  cursor: pointer;
  color: #333 !important;
}

@media screen and (max-width: 991px) {
  .tb_contact_zip > button {
    font-size: 1rem;
    line-height: 1.3;
    width: 40%;
    margin-left: 0;
  }
}

.tb_contact_caution {
  font-size: 1.2rem;
  padding-left: 10px;
}

@media screen and (max-width: 991px) {
  .tb_contact_caution {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding-left: 0;
    font-size: 1rem;
    position: absolute;
    bottom: 0;
    left: 0;
  }
}

.tb_contact .select {
  position: relative;
  border: 1px solid #858585;
  overflow: hidden;
  width: 40%;
  height: 35px;
  text-align: left;
}

@media screen and (max-width: 991px) {
  .tb_contact .select {
    width: 100%;
  }
}

.tb_contact .select::after {
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  right: 0.9em;
  width: 0;
  height: 0;
  padding: 0;
  content: "";
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #ff8000;
  pointer-events: none;
}

.tb_contact .select > select {
  width: 100%;
  height: 100%;
  padding-right: 1em;
  cursor: pointer;
  text-indent: 0.01px;
  text-overflow: ellipsis;
  border: none;
  outline: none;
  background: transparent;
  background-image: none;
  -webkit-appearance: none;
  appearance: none;
  padding: 8px 38px 8px 5px;
  text-align: left;
  color: #333;
}

@media screen and (max-width: 991px) {
  .tb_contact .select > select {
    font-size: 16px;
  }
}

.mw_wp_form.mw_wp_form_confirm .select {
  text-align: left;
  border: none;
  height: auto;
  width: auto;
}

.mw_wp_form.mw_wp_form_confirm .zipcloud_search,
.mw_wp_form.mw_wp_form_confirm .select::after,
.mw_wp_form.mw_wp_form_confirm .tb_contact_caution {
  display: none !important;
}

.main-title {
  padding: 30px 0 25px 0;
  font-size: 2.3em;
  font-weight: 500;
  line-height: 1.3em;
  color: #414444;
  border-top: 0px solid #936d53;
  text-align: left;
  text-justify: distribute-all-lines;
}

.article_list .a_title {
  font-size: 2.8rem;
  font-weight: bolder;
  border-bottom: 2px dotted #666;
  padding: 0 0 22px;
  margin-bottom: 15px;
  line-height: 1;
}

.article_list .article_list_detail li {
  padding: 30px 0;
  border-top: 1px solid #ccc;
}

.article_list .article_list_detail li:first-child {
  border-top: none;
}

.article_list .article_list_detail li a,
.article_list .article_list_detail li i,
.article_list .article_list_detail li span {
  display: block;
  font-style: normal;
  text-decoration: none !important;
}

.article_list .article_list_detail li a:hover {
  opacity: 0.7;
}

.article_list .article_list_detail li a {
  display: flex;
  flex-wrap: wrap;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
  position: relative;
}

.article_list .article_list_detail li .img_block {
  width: 25%;
  margin: 0 3% 0 0;
  overflow: hidden;
}

.article_list .article_list_detail li a:hover .img_block:not(.no_img) .main_img {
  transform: scale(1.1);
  transition-duration: 0.3s;
  z-index: 0;
}

.article_list .article_list_detail li .img_block .main_img {
  width: 100%;
  height: auto;
  background-size: cover;
  background-position: center;
  opacity: 1;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  height: auto;
  padding-top: 66.67%;
  background-color: #ccc;
  position: relative;
}

.article_list .article_list_detail li .img_block.no_img .main_img::after {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  content: "No Image";
  display: block;
  font-weight: bolder;
}

.article_list .article_list_detail li .txt_block {
  width: 72%;
}

.article_list .article_list_detail li .blog_list_content {
  display: block;
  margin: 15px auto 0;
}

.article_list .article_list_detail li .txt_block .blog_list_main em {
  color: #333;
  font-weight: bolder;
}

@media screen and (max-width: 1240px) {
  .article_list .box00 {
    max-width: none;
    width: auto;
    padding: 0 4%;
  }
}

@media screen and (max-width: 991px) {
  .article_list .a_title {
    font-size: 1.8rem;
    padding: 0 0 15px;
  }
  .article_list .article_list_detail li {
    padding: 20px 0;
  }
  .article_list .article_list_detail li .blog_list_date {
    margin: 0;
  }
  .article_list .article_list_detail li .blog_list_content {
    font-size: 1.1rem;
    margin: 3px auto 0;
    line-height: 1.6;
  }
  .article_list .blog_list_main b {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 0.8rem;
    padding: 5px 10px 3px;
    line-height: 1;
  }
  .article_list .article_list_detail li .img_block.no_img .main_img::after {
    font-size: 0.8rem;
  }
  .article_list .article_list_detail li .img_block {
    width: 32%;
  }
  .article_list .article_list_detail li .txt_block {
    width: 65%;
  }
  .btn_illust.return {
    margin: 60px auto 0;
    max-width: 230px;
  }
  .bef_aft {
    margin: 50px 0 -30px;
  }
}

.blog_list_date {
  display: block;
  font-size: 1.4rem;
  font-weight: bold;
  color: #7ba74b;
  margin-bottom: 10px;
}

.single .txt_block .blog_list_date {
  font-style: normal;
  padding: 0px 0px 0px 20px;
  margin: 0;
  font-size: 1.6rem;
}

.single .main-title {
  padding: 0px 0 15px 10px;
  margin-top: 0;
}

.box00 {
  max-width: 1200px;
  margin: 0 auto;
}

.doc {
  padding: 0 20px;
  text-align: left;
}

@media screen and (max-width: 991px) {
  .doc {
    padding: 0;
  }
}

.doc p {
  padding: 0.5em 1em;
}

.create_back {
  padding: 27px 0 27px 25px;
  margin-top: 45px;
  font-size: 150%;
  background-repeat: no-repeat;
  color: #008741;
  font-weight: bold;
  background-color: #f8f9e4;
}

@media screen and (max-width: 991px) {
  .create_back {
    padding: 27px 0 27px 15px;
    margin-top: 45px;
    font-size: 100%;
    color: #008741;
    font-weight: bold;
    background-color: #f8f9e4;
  }
}

.privacy_main .create_text01,
.doc .privacy_main p {
  font-size: 1.6rem;
}

@media screen and (max-width: 991px) {
  .privacy_main .create_text01,
  .doc .privacy_main p {
    font-size: 1.4rem;
  }
}

.hr {
  border-bottom-style: dotted;
  border-bottom-width: 0.5px;
  border-bottom-color: #efe5b4;
  padding: 5px 0px;
  width: 99%;
}
