@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Noto+Sans+JP:wght@100..900&display=swap');

/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*/
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}
strong {
  font-weight: var(--bold);
}
html {
  line-height: 1;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}
q, blockquote {
  quotes: none;
}
q:before, q:after, blockquote:before, blockquote:after {
  content: '';
  content: none;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}
a img {
  border: none;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}
*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
  word-break: break-word;
}
html, body {
  font-family: var(--font-ja);
  line-height: 1.5;
  font-size: 10px;
  font-weight: var(--regular);
  color: var(--color-txt);
}
a {
  display: inline-block;
  color: var(--color-txt);
  cursor: pointer;
}
a, a:hover {
  text-decoration: none;
}
button {
  border: none;
  outline: none;
  box-shadow: none;
  padding: 0;
}
img {
  display: block;
  width: 100%;
  height: auto;
}
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  letter-spacing: 0;
}
body {
  position: relative;
  margin: auto;
}
small {
  font-size: 70%;
}
li {
  list-style: none;
}
::placeholder {
  color: #8e8e8e;
}
input,
textarea,
select,
option,
button {
  font-family: var(--font-ja);
  font-weight: var(--medium);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
option:focus-visible {
  outline: none;
}
@media screen and (max-width: 1300px) {
  html, body {
    font-size: calc(1000vw / 1300);
  }
}
@media screen and (max-width: 767px) {
  html, body {
    font-size: calc(1000vw / 375);
  }
}
.sp {
  display: block !important;
}
@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}
.pc {
  display: none !important;
}
@media screen and (min-width: 768px) {
  .pc {
    display: block !important;
  }
}
body {
  counter-reset: sections boxesd;
  background-color: #F8F7F1;
}
body.anime.fadeIn.active {
  animation: fadeIn .5s .2s ease-out forwards;
}

/* ----------------------------------
common
---------------------------------- */
:root {
  --color-black: #000;
  --color-white: #fff;
  --color-orange: #ED6C00;
  --color-green: #58BE4A;
  --color-blue: #23A8D9;
  --color-bage: #EFECDF;
  --color-pink: #EA6392;
  --color-yellow: #FFF502;
  --color-gray: #ededed;
  --color-txt: #3B3938;
  --light: 300;
  --regular: 400;
  --medium: 500;
  --bold: 700;
  --black: 900;
  --font-ja: "Barlow", 'Noto Sans JP', sans-serif;
}
a {
  transition: .3s;
}
.en {
  font-family: var(--font-en);
}
body.fixed {
  width: 100%;
  height: 100%;
  position: fixed;
}
main {
  overflow: hidden;
}
.is-hide {
  display: none !important;
}
.df-ttl {
  margin-bottom: 2.1rem;
  padding-bottom: 4.8rem;
  background: url(../img/ttl-h2_bg.png) center bottom/83.9rem auto no-repeat;
  text-align: center;
}
.df-ttl .ttl-h2 {
  font-size: 4.5rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
}
.df-ttl .ttl-sub {
  max-width: max-content;
  margin: 0 auto;
  padding-bottom: 2.7rem;
  font-size: 2.3rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
}
.df-ttl .ttl-h2 span {
  color: var(--color-orange);
}
.df-ttl .ttl-h2 strong {
  font-size: 7.5rem;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--color-orange);
  line-height: 0.6;
}
.ttl-lead {
  position: relative;
  padding: 1.1rem 4rem 1.4rem;
  margin: -0.6rem auto 0;
  width: max-content;
  min-width: 80rem;
  background-color: var(--color-orange);
  border-radius: 1.3rem;
  color: var(--color-white);
  font-size: 2.5rem;
  letter-spacing: 0.05em;
  text-align: center;
}
.ttl-lead::after {
  position: absolute;
  left: 50%;
  bottom: -1.4rem;
  content: "";
  display: block;
  width: 4.9rem;
  height: 2.2rem;
  background: url(../img/fukidashi-orange.png) center/contain no-repeat;
  transform: translateX(-50%);
}
.ttl-lead span {
  font-weight: var(--bold);
  color: var(--color-yellow);
}
.txt {
  font-size: 1.8rem;
  line-height: 1.66;
  letter-spacing: 0.05em;
}
.in {
  max-width: 120rem;
  margin: 0 auto;
}
input:not([type="checkbox"]),
textarea {
  width: 100%;
  padding: 1.6rem 3.8rem;
  background: #f9f9f9;
  box-shadow: inset 0 0 0.6rem rgba(0, 0, 0, 0.23);
  border-radius: 1rem;
  border: none;
  font-size: 2rem;
  line-height: 1.7;
}
textarea {
  resize: vertical;
  min-height: 26.2rem;
}
input[type="checkbox"] {
  position: relative;
  width: 2.8rem;
  height: 2.8rem;
  box-shadow: inset 0 0 0.6rem rgba(0, 0, 0, 0.23);
  border-radius: 0.5rem;
  margin: 0 1.2rem 0 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: 0.2s;
  cursor: pointer;
}
input[type="checkbox"]:checked {
  background-color: var(--color-orange);
  box-shadow: none;
}
input[type="checkbox"]:checked:before {
  position: absolute;
  content: '';
  top: 50%;
  left: 50%;
  width: 0.7rem;
  height: 1rem;
  border-right: 0.2rem solid #ffffff;
  border-bottom: 0.2rem solid #ffffff;
  transform: translate(-50%, -50%) rotate(50deg);
}
.button {
  display: block;
  width: 62.9rem;
  padding: 2.1rem 0 3.3rem;
  background: var(--color-blue) url(../img/button-arrow.png) left bottom 1.82rem / 60.3rem auto no-repeat;
  border-radius: 0.6rem;
  border: 2px solid var(--color-white);
  box-shadow: 0 0.6rem 0 #125972;
  font-size: 2.7rem;
  font-weight: var(--bold);
  letter-spacing: 0.15em;
  color: var(--color-white);
  text-align: center;
  line-height: 1.556;
}
.button span {
  position: relative;
  padding-left: 6.7rem;
}
.button span::before {
  position: absolute;
  left: 0;
  top: 50%;
  width: 4.4rem;
  height: 3.9rem;
  content: "";
  display: block;
  background: url(../img/icon-map.png) center/contain no-repeat;
  transform: translateY(-50%);
}
@media screen and (min-width: 768px) {
  
  .button:hover {
    box-shadow: none;
    transform: translateY(0.6rem);
  }
}
@media screen and (max-width: 767px) {
  .in {
    padding: 0 1.5rem;
  }
  .df-ttl {
    margin-bottom: 1.1rem;
    padding-bottom: 3rem;
    background-size: 30rem auto;
  }
  .df-ttl .ttl-h2 {
    font-size: 2.5rem;
    line-height: 1.52;
  }
  .df-ttl .ttl-h2 strong {
    font-size: 4.5rem;
    line-height: 1;
  }
  .df-ttl .ttl-sub {
    font-size: 2rem;
    padding-bottom: 0;
  }
  .txt {
    font-size: 1.7rem;
    line-height: 1.76;
  }
  .button {
    max-width: 33.5rem;
    padding: 1.3rem 0 1.5rem;
    font-size: 1.7rem;
    background: var(--color-blue) url(../img/button-arrow_sp.png) right 1.1rem bottom 0.7rem/auto 1.1rem no-repeat;
  }
  .button span {
    padding-left: 3.9rem;
  }
  .button span::before {
    width: 2.8rem;
    height: 2.5rem;
    background-image: url(../img/icon_map_sp.png);
  }
  .ttl-lead {
    width: auto;
    min-width: auto;
    padding: 0.6rem 0;
    margin: 0 1.5rem 2.8rem;
    font-size: 1.7rem;
  }
  .ttl-lead::after {
    bottom: -0.8rem;;
    width: 4.3rem;
    height: 1.9rem;
  }
}

/* ----------------------------------
header
---------------------------------- */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: var(--color-white);
  z-index: 10;
  box-shadow: 0 0.3rem 0.6rem rgb(0 0 0 / 0.1);
}
header .in {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 142.2rem;
  height: 9rem;
}
header .in .logo {
  margin-left: 5.7rem;
  width: 33.7rem;
}
header .in .button {
  width: 48.9rem;
  padding: 1.3rem 0 2.1rem;
  box-shadow: 0 0.4rem 0 #125972;
  font-size: 2.2rem;
  background-position: right 1.9rem bottom 1.4rem;
}
header .in .button span {
  padding-left: 5.3rem;
}
header .in .button span::before {
  width: 3.4rem;
  height: 3rem;
}
@media screen and (min-width: 768px) {
  header .in .button:hover {
    box-shadow: none;
    transform: translateY(0.4rem);
  }
}
@media screen and (max-width: 767px) {
  header .in {
    height: 5rem;
    justify-content: center;
  }
  header .in .logo {
    width: 16.7rem;
    margin: 0;
  }
  header .in .button {
    opacity: 0;
    pointer-events: none;
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    width: 10rem;
    padding: 4rem 0 2rem;
    font-size: 1.5rem;
    letter-spacing: 0;
    border-radius: 1rem;
    background: var(--color-blue) url(../img/button-arrow_sp.png) right 1rem bottom 1rem/auto 0.8rem no-repeat;
    z-index: 10;
    transition: .3s;
  }
  header .in .button.is-show {
    opacity: 1;
    pointer-events: auto;
  }
  header .in .button span {
    padding: 0;
  }
  header .in .button strong {
    display: none;
  }
  header .in .button span::before {
    left: 50%;
    top: -3.3rem;
    width: 3rem;
    height: 3rem;
    transform: translateX(-50%);
  }
}

/* ----------------------------------
mv
---------------------------------- */
#mv .in {
  position: relative;
  display: flex;
  align-items: center;
  height: 108rem;
  max-width: calc(147.4rem + 5rem);
  padding: 0 2.5rem;
}
#mv .txt-wrap {
  position: relative;
  z-index: 2;
  max-width: 75.1rem;
  margin: 0rem 0 0 auto;
}
#mv .lead {
  font-size: 3rem;
  font-weight: var(--bold);
  letter-spacing: 0.075em;
  line-height: 1.4;
  text-align: center;
  background-color: #EFECDF;
  padding: 1vw 0;
  border-radius: 20px;
  margin-top: -2.08vw;
}
#mv .lead span {
  color: var(--color-orange);
  font-size: 3.9rem;
  background: linear-gradient(transparent 50%, var(--color-yellow) 50%);
}
#mv h1 {
  width: 70.7rem;
  /* margin-bottom: 2.73rem; */
  margin-left: 3rem;
  margin-top: 1rem;
}
#mv .mv_title {
  width: 100%;
  margin-bottom: 1rem;
}
#mv .list {
  display: flex;
  justify-content: space-between;
  gap: 1.89rem;
}
#mv .list li {
  width: 23.8rem;
}
#mv .fukidashi {
  position: absolute;
  top: -13.6rem;
  left: -30rem;
  width: 47.2rem;
}
#mv .note {
  margin-top: 1.2rem;
  text-align: right;
  font-size: 1.4rem;
  letter-spacing: 0.05em;
}
#mv .note span {
  padding-left: 4rem;
}
#mv .img-wrap {
  position: absolute;
  top: -0.53vw;
  left: -62.1rem;
  width: 140rem;
  height: 95.7rem;
  border-radius: 47.9rem;
  overflow: hidden;
  box-shadow: 3.4rem 4rem 0 var(--color-bage);
}
#mv .img-wrap img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#mv .button {
  margin: 2rem auto 0;
}
@media screen and (max-width: 767px) {
  #mv .in {
    display: block;
    height: auto;
    padding: 7.8rem 0rem 2.5rem;
  }
  #mv .txt-wrap {
    margin: 0;
  }
  #mv .fukidashi {
    top: -7.8rem;
    right: -1.6rem;
    left: auto;
    width: 14.4rem;
  }
  #mv .lead {
    font-size: 1.5rem;
    text-align: center;
    line-height: 1.2;
    padding-top: 2.3rem;
    padding-bottom: 1rem;
    margin-top: -10.69vw;
  }
  #mv .img-wrap img {
    left: 0;
  }
  #mv .lead span {
    font-size: 1.8rem;
  }
  #mv h1 {
    width: calc(90% + 3rem);
    margin: 0.4rem -1.5rem 0.5rem;
    margin: 0 auto;
  }
  #mv .list {
    width: 90%;
    margin: 0 auto;
    margin-top: 40vw;
  }
  #mv .list li {
    width: 11.2rem;
  }
  /* #mv .list li + li {
    margin-top: -2.4rem;
  } */
  #mv .note {
    margin-top: .5rem;
    text-align: right;
    font-size: 1rem;
  }
  #mv .note span {
    padding: 0 1.9rem 0 0;
  }
  #mv .button {
    margin-top: .2rem;
  }
  #mv .mv_title {
    width: 90%;
    margin: 0 auto;
    margin-top: -1rem;
  }
  #mv .img-wrap {
    top: 24.5rem;
    left: -8%;
    transform: translateX(-1%);
    -webkit-transform: translateX(-1%);
    -ms-transform: translateX(-1%);
    width: 120%;
    height: 48.28vw;
    box-shadow: 0rem 2rem 0 var(--color-bage);
  }
}
/* ----------------------------------
consider
---------------------------------- */
#consider {
  position: relative;
  border-radius: 10rem;
  padding: 15rem 0 10rem;
  background: var(--color-bage);
}
#consider .ttl-h2{
  font-size: 3rem;
}
#consider .marker{
  font-size: 4rem;
  background-color: #FFF505;
  padding: .5rem .4rem .5rem .5rem;
  border-radius: 5px;
}
#consider .df-ttl .ttl-sub {
  position: relative;
  padding-left: 4rem;
  padding-right: 4rem;
}
#consider .df-ttl .ttl-sub::before,
#consider .df-ttl .ttl-sub::after {
  position: absolute;
  top: 40%;
  content: "";
  display: block;
  width: 3.1rem;
  height: 5.25rem;
  transform: translateY(-50%);
}
#consider .df-ttl .ttl-sub::before {
  left: 0;
  background: url(../img/ttl-h2-left.png) center/contain no-repeat;
}
#consider .df-ttl .ttl-sub::after {
  right: 0;
  background: url(../img/ttl-h2-right.png) center/contain no-repeat;
}
#consider  .flex {
  display: flex;
  justify-content: center;
  max-width: 120rem;
  margin: 0 auto;
}
#consider .item {
  margin-right: 3rem;
  width: 40rem;
}
#consider .item.__03{
  margin-right: 0;
}
#consider .hukidashi {
  display: flex;
  background-color: #58BE4A;
  padding: 1rem 2rem;
  border-radius: 50px;
  position: relative;
  justify-content: center;
}
#consider .hukidashi.__01{
  padding: 2.34rem 2rem;
}
#consider .hukidashi::after {
  content: '';
  position: absolute;
  bottom: -22px; 
  left: 50%; 
  transform: translateX(-50%);
  border-width: 12px;
  border-style: solid;
  border-color: #58BE4A transparent transparent transparent;
}
#consider .hukidashi_img {
  width: 1.1vw;
  margin-right: .5rem;
  margin-top: .7rem;
}
#consider .hukidashi_img.__01{
  margin-top: 0;
}
#consider .hukidashi p{
  color: white;
  font-size: 1.9rem;
  font-weight: var(--bold);
}
#consider .item_in{
  background-color: white;
  border-radius: 20px;
  margin-top: -1.3vw;
}
#consider .item_in .item_in_img{
  width: 85%;
  margin: 0 auto;
  padding-top: 5.5rem;
}
#consider .item_in .item_in_img img{
  width: 100%;
}
#consider .item_in p {
  width: 85%;
  margin: 0 auto;
  font-size: 1.8rem;
  margin-top: 2rem;
  letter-spacing: 0.075em;
  line-height: 1.6;
  padding-bottom: 5rem;
}
#consider .item_in.__01 p{
  padding-bottom: 16.5rem;
}
#consider .item_in.__03 p{
  padding-bottom: 19.39rem;
}
#consider .item_in span {
  color: #ED6C00;
  font-weight: var(--bold);
}
#consider .dott {
  width: 0.57vw;
  margin: 5rem auto;
}
#consider .summary{
  width: 100rem;
  margin: 0 auto;
}
#consider .summary_in{
  display: flex;
  background-image: url(../img/consider_back.png);
  justify-content: center;
  align-items: center;
  padding-top: 1rem;
}
#consider .summary_in img {
  width: 5.99vw;
  margin-top: 5rem;
}
#consider .summary_in p{
  width: 75%;
  font-size: 1.8rem;
  line-height: 1.4;
  letter-spacing: 0.075rem;
}
#consider .summary_in span{
  color: #ED6C00;
  font-weight: var(--bold);
  background-color: #FFFA80;
}

@media screen and (max-width: 767px) {
  #consider {
    padding: 5rem 0 3rem;
    border-radius: 4rem;
  }
  #consider .df-ttl .ttl-sub {
    font-size: 1.4rem;
    padding-left: 1.8rem;
    padding-right: 1.8rem;
    margin-bottom: 2rem;
  }
  #consider .df-ttl .ttl-sub::before, #consider .df-ttl .ttl-sub::after {
    width: 1.5rem;
    height: 2.2rem;
    top: 55%;
  }
  #consider .df-ttl .marker {
    padding-bottom: 0.2rem;
  }
  #consider .df-ttl .ttl-h2 {
    font-size: 2rem;
  }
  #consider .df-ttl .marker{
    font-size: 3rem;
  }
  #consider .flex {
    display: block;
    width: 90%;
    margin: 0 auto;
  }
  #consider .item {
    margin: 0;
    margin-top: 2rem;
    width: 33.8rem;
  }
  #consider .hukidashi-2-wp{
    width: 89%;
  }
  #consider .hukidashi p {
    font-size: 1.7rem;
  }
  #consider .hukidashi-2-in p{
    font-size: 1.7rem;
  }
  #consider .hukidashi_img{
    width: 5.5vw;
  }
  #consider .item_in p {
    font-size: 1.7rem;
  }
  #consider .item_in.__01 p{
    padding-bottom: 5rem;
  }
  #consider .item_in.__03 p{
    padding-bottom: 5rem;
  }
  #consider_sp .dott{
    width: 1.5vw;
    margin: 0 auto;
    margin-bottom: 0;
    margin-top: -1.8rem;
  }
  #consider_sp .summary{
    width: 100%;
    margin-top: 2rem;
  }
  #consider_sp .summary_img{
    width: 90%;
    margin: 0 auto;
    z-index: 100;
  }
  #consider_sp .summary_img.__end{
    margin-bottom: 5rem;
  }
  #consider_sp .summary_in {
    background-image: url(../img/consider_back_sp.png);
    width: 90%;
    margin: 0 auto;
    padding-top: 0;
    display: block;
  }
  #consider_sp .summary_in p {
    font-size: 1.7rem;
    padding-top: 2rem;
    width: 90%;
    margin: 0 auto;
    line-height: 1.6;
  }
  #consider_sp .summary_in img {
    margin-top: -4rem;
    width: 15vw;
  }
  #consider_sp .summary_in span{
    color: #ED6C00;
    font-weight: var(--bold);
    background-color: #FFFA80;
  }
  #consider_sp .consider_ilust {
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: flex-end;
  }
  #consider .item_in .item_in_img{
    padding-top: 3rem;
  }
  
}


.shops {
  display: flex;
  flex-wrap: wrap;
  gap: 1.7rem 3.5rem;
}
.shops dt {
  width: 15rem;
  padding: 1.3rem 1.5rem;
  background: #d7d2cb;
  border-radius: 0.3rem;
  font-weight: var(--bold);
  font-size: 1.8rem;
}
.shops dd {
  display: flex;
  align-items: center;
  width: calc(100% - 15rem - 3.5rem);
}
.shops dd div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.8rem 2rem;
}
.shops dd a {
  position: relative;
  width: 11rem;
  padding: 0 2rem 0 1.5rem;
  border-radius: 3rem;
  background: var(--color-white);
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, .16);
  font-size: 1.6rem;
  font-weight: var(--bold);
  line-height: 3.6rem;
}
.shops dd a::after {
  position: absolute;
  top: 50%;
  right: 1rem;
  content: "";
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-top: 1px solid var(--color-orange);
  border-right: 1px solid var(--color-orange);
  transform: translateY(-50%) rotate(45deg);
  transition: .3s;
}
.shops dd a:hover {
  opacity: 1;
  background: var(--color-orange);
  color: var(--color-white);
}
.shops dd a:hover::after {
  border-color: var(--color-white);
}
.shops dd a[disabled] {
  color: rgb(51 51 51 / 0.5);
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .shops {
    display: block;
  }
  .shops dt {
    position: relative;
    width: 100%;
    padding: 1.2rem 3.2rem 1.2rem 1.4rem;
    background: none;
    border-bottom: 1px solid #d7d2cb;
    font-size: 1.6rem;
  }
  .shops dt::before,
  .shops dt::after {
    position: absolute;
    top: 50%;
    right: 1.5rem;
    content: "";
    display: block;
    width: 1.5rem;
    height: 0.2rem;
    border-radius: 2rem;
    background: var(--color-orange);
    transform: translateY(-50%);
    transition: .3s;
  }
  .shops dt::after {
    transform: translateY(-50%) rotate(90deg);
  }
  .shops dt.open::after {
    opacity: 0;
    transform: translateY(-50%) rotate(0deg);
  }
  .shops dd {
    display: none;
    width: 100%;
    padding: 2rem 1.1rem;
    gap: 2rem;
  }
  .shops dd a {
    width: calc(50% - 1rem);
  }
}


/* ----------------------------------
subsidy
---------------------------------- */
#subsidy {
  position: relative;
  background: var(--color-white);
  border-radius: 10rem;
  padding: 10rem 0 7.3rem;
}
#subsidy::after {
  position: absolute;
  bottom: -6.2rem;
  left: 50%;
  content: "";
  display: block;
  width: 25.2rem;
  height: 12.4rem;
  background: url(../img/fukidashi-white.png) center/contain no-repeat;
  transform: translateX(-50%);
}
#subsidy .flex {
  display: flex;
  justify-content: space-between;
  max-width: 100rem;
  margin: 0 auto;
}
#subsidy .flex .item {
  width: 48rem;
}
#subsidy .flex .item .img-wrap {
  position: relative;
  width: 44rem;
  margin: 0 auto;
  padding: 5.7rem 0 4.2rem;
  border-radius: 17.3rem;
  background: #F8FFF7;
  border: 0.4rem solid var(--color-green);
  text-align: center;
}
#subsidy .flex .item .img-wrap .ttl-h3 {
  width: max-content;
  padding-bottom: 1.6rem;
  margin: 0 auto 1.5rem;
  background: url(../img/border-green.png) left bottom/auto 0.3rem repeat-x;
  font-size: 2.5rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
  color: var(--color-green);
}
#subsidy .flex .item .txt-wrap {
  min-height: 38.4rem;
  margin-top: -17.2rem;
  padding: 14.9rem 2.7rem 3.3rem;
  background: #F8F7F1;
  border-radius: 2rem;
}
#subsidy .flex .item .txt-wrap .ttl {
  position: relative;
  width: max-content;
  padding: 0.45rem 3.3rem 0.45rem 4rem;
  margin-bottom: 1.2rem;
  background: var(--color-green);
  border-radius: 3rem;
  font-size: 2.3rem;
  font-weight: var(--medium);
  color: var(--color-white);
  letter-spacing: 0.1em;
}
#subsidy .flex .item .img-wrap img {
  margin: 0 auto;
  width: 29.237rem;
}
#subsidy .flex .item:nth-of-type(2) .img-wrap {
  border-color: var(--color-pink);
  background: #FFF8FB;
} 
#subsidy .flex .item:nth-of-type(2) .img-wrap .ttl-h3 {
  color: var(--color-pink);
  background-image: url(../img/border-pink.png);
}
#subsidy .flex .item:nth-of-type(2) .img-wrap img {
  width: 21.936rem;
}
#subsidy .flex .item:nth-of-type(2) .txt-wrap .ttl {
  background: var(--color-pink);
}
#subsidy .notes {
  max-width: 100rem;
  margin: 1rem auto 0;
}
#subsidy .notes li {
  text-indent: -2em;
  padding-left: 2em;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  line-height: 1.64;
  color: #A3A3A3;
}
#subsidy .notes li + li {
  margin-top: 1.3rem;
}
#subsidy .otoku {
  width: 60.8rem;
  padding: 0.3rem 0 1.3rem;
  margin: 4.3rem auto 0;
  border-radius: 5rem;
  background-size: auto auto;
  background-color: rgba(237, 108, 0, 1);
  background-image: repeating-linear-gradient(135deg, transparent, transparent 6px, rgba(238, 122, 24, 1) 6px, rgba(238, 122, 24, 1) 12px );
  font-size: 2.5rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--color-white);
}
#subsidy .otoku span {
  display: inline-block;
  padding: 0 0.5rem;
  font-size: 6.5rem;
  letter-spacing: 0.025em;
  color: var(--color-yellow);
  line-height: 1;
  transform: translateY(0.3rem);
}
#subsidy .onayami {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4.9rem;
  padding: 5.5rem 0 7.9rem;
  margin: 4.3rem auto 2.9rem;
}
#subsidy .onayami .img {
  position: relative;
  width: 18.3rem;
}
#subsidy .onayami .list {
  position: relative;
}
#subsidy .onayami .list li {
  padding: 0 0 2rem 3.9rem;
  background: url(../img/icon_check.png) top 0.5rem left/2.8rem auto no-repeat, url(../img/border-white.png) left bottom/auto 0.3rem repeat-x;
  font-size: 2.3rem;
  font-weight: var(--medium);
  letter-spacing: 0.05em;
  color: var(--color-white);
}
#subsidy .onayami .list li + li {
  margin-top: 1rem;
}
#subsidy .onayami::before {
  position: absolute;
  left: 50%;
  top: 50%;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 100%;
  background: #9F987A;
  transform: translate(-50%,-50%);
}
#subsidy .onayami::after {
  position: absolute;
  left: 50%;
  bottom: 2rem;
  content: "";
  display: block;
  width: 0.854rem;
  height: 5.4rem;
  background: url(../img/dott-white.png) center/contain no-repeat;
  transform: translateX(-50%);
}
#subsidy .lead {
  font-size: 2.3rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
  text-align: center;
  line-height: 2.4;
}
#subsidy .lead span {
  display: inline-block;
  padding: 0.1rem 0.5rem 0.1rem 1rem;
  margin-right: 1rem;
  background: var(--color-yellow);
  border-radius: 1rem;
  font-size: 3rem;
  letter-spacing: 0.1em;
  color: var(--color-orange);
  line-height: 1.5;
}
#subsidy .df-ttl .ttl-sub {
  position: relative;
  padding-left: 4rem;
  padding-right: 4rem;
}
#subsidy .df-ttl .ttl-sub::before,
#subsidy .df-ttl .ttl-sub::after {
  position: absolute;
  top: 40%;
  content: "";
  display: block;
  width: 3.1rem;
  height: 5.25rem;
  transform: translateY(-50%);
}
#subsidy .df-ttl .ttl-sub::before {
  left: 0;
  background: url(../img/ttl-h2-left.png) center/contain no-repeat;
}
#subsidy .df-ttl .ttl-sub::after {
  right: 0;
  background: url(../img/ttl-h2-right.png) center/contain no-repeat;
}
#subsidy .df-ttl .marker {
  padding-bottom: 0.5rem;
  background: url(../img/ttl-h2-marker.png) left bottom/contain no-repeat;
}
@media screen and (max-width: 767px) {
  #subsidy {
    padding: 5rem 0 3rem;
    border-radius: 4rem;
  }
  #subsidy .df-ttl .ttl-sub {
    font-size: 1.4rem;
    padding-left: 1.8rem;
    padding-right: 1.8rem;
  }
  #subsidy .df-ttl .ttl-sub::before, #subsidy .df-ttl .ttl-sub::after {
    width: 1.5rem;
    height: 2.2rem;
    top: 55%;
  }
  #subsidy .df-ttl .marker {
    padding-bottom: 0.2rem;
  }
  #subsidy .flex {
    gap: 3.68rem;
    flex-wrap: wrap;
  }
  #subsidy .flex .item {
    width: 100%;
  }
  #subsidy .flex .item .img-wrap {
    width: 100%;
    padding: 6rem 0 4.5rem;
  }
  #subsidy .flex .item .img-wrap .ttl-h3 {
    padding-bottom: 1.1rem;
    margin-bottom: 2rem;
    font-size: 2.2rem;
    line-height: 1.45;
  }
  #subsidy .flex .item .img-wrap img {
    width: 17.4rem;
  }
  #subsidy .flex .item:nth-of-type(2) .img-wrap img {
    width: 19.9rem;
  }
  #subsidy .flex .item .txt-wrap {
    margin-top: -18.6rem;
    padding: 16.3rem 1.5rem 3.9rem;
  }
  #subsidy .flex .item .txt-wrap .ttl {
    margin-bottom: 1.5rem;
    padding: 0.4rem 3.6rem;
    font-size: 1.7rem;
  }
  #subsidy .notes li {
    font-size: 1.3rem;
  }
  #subsidy .notes li + li {
    margin-top: 1rem;
  }
  #subsidy .otoku {
    width: 31.5rem;
    margin-top: 3.4rem;
    padding: 1.8rem 0 1.1rem;
    background-image: repeating-linear-gradient(125deg, transparent, transparent 6px, rgba(238, 122, 24, 1) 6px, rgba(238, 122, 24, 1) 12px );
    font-size: 2.2rem;
    letter-spacing: 0.05em;
    line-height: 0.6;
  }
  #subsidy .otoku span {
    font-size: 4.5rem;
    padding: 0;
  }
  #subsidy .onayami {
    margin: 2rem 0 2.5rem;
    padding: 0 1.5rem 6.4rem;
    gap: 1.7rem;
    flex-direction: column;
  }
  #subsidy .onayami .img {
    width: 13.8rem;
  }
  #subsidy .onayami .list li {
    background: url(../img/icon_check.png) top 0.4rem left/2rem auto no-repeat, url(../img/border-white.png) left bottom/auto 0.2rem repeat-x;
    padding: 0 0 0.85rem 3rem;
    font-size: 1.7rem;
    line-height: 1.52;
  }
  #subsidy .onayami::after {
    width: 0.6rem;
    height: 3.8rem;
    bottom: 1.2rem;
  }
  #subsidy .onayami::before {
    top: auto;
    bottom: 0;
    width: 50.2rem;
    height: 22.6rem;
    transform: translateX(-50%);
  }
  #subsidy .lead {
    font-size: 2rem;
    line-height: 1.7;
  }
  #subsidy .lead span {
    padding: 0.1rem 1.5rem 0.1rem 2rem;
    margin-right: 0.5rem;
    border-radius: 2rem;
    font-size: 2rem;
  }
  #subsidy::after {
    bottom: -2.7rem;
    width: 9.5rem;
    height: 4.5rem;
  }
}


/* ----------------------------------
cv
---------------------------------- */
.cv {
  padding: 8rem 0 6.8rem;
  background: var(--color-orange) url(../img/cv_bg.png) center bottom/100% auto no-repeat;
  border-radius: 10rem;
}
.cv .in {
  max-width: 88rem;
}
.cv .in .ttl-h2 {
  margin-bottom: 3rem;
  font-size: 3.5rem;
  font-weight: var(--bold);
  letter-spacing: 0.05em;
  text-align: right;
  color: var(--color-white);
}
.cv .in .button {
  margin-left: auto;
}
#consider + .cv,
#subsidy + .cv,
#voice + .cv,
#support + .cv {
  border-radius: 0;
  margin-top: -10.8rem;
  padding-top: 21.2rem;
}
.cv .in .ttl-h2 span {
  padding-top: 1rem;
  background: url(../img/cv_dot.png) center top/14.9rem auto no-repeat;
}
@media screen and (max-width: 1599px) {
  .cv {
    background-size: 125% auto;
  }
}
@media screen and (max-width: 767px) {
  .cv {
    padding: 6rem 0 4.7rem; 
    border-radius: 4rem;
    background: var(--color-orange) url(../img/cv_bg_sp.png) center bottom -1.5rem/100% auto no-repeat;
  }
  .cv .in {
    padding: 0 2rem;
  }
  .cv .in .ttl-h2 {
    margin-bottom: 8rem;
    font-size: 2rem;
    line-height: 1.5;
  }
  .cv .in .ttl-h2 span {
    padding-top: 0.7rem;
    background: url(../img/cv_dot.png) center top/8.6rem auto no-repeat;
  }
  #subsidy + .cv,
  #voice + .cv,
  #support + .cv {
    margin-top: -4.5rem;
    padding-top: 9.5rem;
  }
}


/* ----------------------------------
reason
---------------------------------- */
#reason {
  padding: 10rem 0 0;
}
#reason .df-ttl {
  margin-bottom: 4.9rem;
}
#reason .list {
  display: flex;
  justify-content: center;
  gap: 6.9rem;
}
#reason .list li {
  position: relative;
  width: 34.5rem;
  padding: 19.6rem 2.5rem 3.3rem;
  border-radius: 2rem;
  background-color: var(--color-white);
}
#reason .list .img-wrap {
  position: absolute;
  top: -3.7rem;
  left: -2.7rem;
  overflow: hidden;
  width: 33.5rem;
  height: 19.6rem;
  border-radius: 40rem;
  box-shadow: 0.7rem 0.7rem 0 var(--color-orange);
}
#reason .list li:nth-of-type(2) .img-wrap {
  box-shadow: 0.7rem 0.7rem 0 var(--color-green);
}
#reason .list .img-wrap img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#reason .list .img-wrap .ttl {
  position: absolute;
  left: 5.3rem;
  bottom: 3rem;
  font-size: 2.3rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
  color: var(--color-white);
  text-shadow: 0 0 0.3rem rgb(0 0 0 / 0.5);
}
#reason .list .txt span {
  font-weight: var(--bold);
  color: var(--color-orange);
}
#reason .contents {
  margin-top: -7.6rem;
  padding: 16.4rem 0 10rem;
  border-radius: 10rem;
  background: #FDF1E5;
}
#reason .reason .ttl-h3 {
  position: relative;
  padding: 1.5rem 0;
  margin-bottom: 2.7rem;
  font-size: 2.8rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
  color: var(--color-white);
  z-index: 2;
}
#reason .reason:nth-of-type(even) .ttl-h3 {
  text-align: right;
}
#reason .reason .ttl-h3::after {
  position: absolute;
  top: 50%;
  content: "";
  display: block;
  height: 100%;
  width: 100vw;
  transform: translateY(-50%);
  z-index: -1;
}
#reason .reason .ttl-h3 small {
  position: absolute;
  top: -3.3rem;
  font-size: 3rem;
  font-weight: var(--bold);
  letter-spacing: 0.05em;
}
#reason .reason .ttl-h3 span:not(.small) {
  color: var(--color-yellow);
}
#reason .in {
  max-width: 100rem;
}
#reason .reason:nth-of-type(odd) .ttl-h3::after {
  margin-left: calc(100% - 100vw);
  background: var(--color-orange);
  border-top-right-radius: 5rem;
  border-bottom-right-radius: 5rem;
}
#reason .reason:nth-of-type(odd) .ttl-h3 small {
  color: var(--color-orange);
}
#reason .reason:nth-of-type(even) .ttl-h3::after {
  margin-right: calc(100% - 50vw);
  background: var(--color-green);
  border-top-left-radius: 5rem;
  border-bottom-left-radius: 5rem;
}
#reason .reason:nth-of-type(even) .ttl-h3 small {
  right: 0;
  color: var(--color-green);
}
#reason .reason > .txt {
  padding: 0 5rem;
}
#reason .reason > .txt span {
  background: rgba(255 245 2 / 0.5);
  font-weight: var(--bold);
  color: var(--color-orange);
}
#reason .reason:nth-of-type(1) .jisseki {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem 1.7rem;
  margin: 2.9rem auto 0;
}
#reason .reason:nth-of-type(1) .jisseki li {
  width: calc(25% - (1.7rem * 3 / 4));
}
#reason .reason:nth-of-type(1) .jisseki .img {
  position: relative;
  width: 100%;
  height: 13.6rem;
  border-radius: 1rem;
  overflow: hidden;
}
#reason .reason:nth-of-type(1) .jisseki .img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#reason .reason:nth-of-type(1) .jisseki .txt {
  position: relative;
  width: 18.1rem;
  padding: 0.3rem 0;
  margin: -1.6rem auto 0;
  border-radius: 2rem;
  text-align: center;
  font-size: 1.6rem;
  letter-spacing: 0.05em;
  background: var(--color-orange);
  color: var(--color-white);
}
#reason .reason:nth-of-type(2) {
  padding-top: 13rem;
}
#reason .reason:nth-of-type(2) .contents-wrap {
  margin: -6.6rem -10rem 0;
  padding: 6.8rem 5rem 5.7rem;
  background: var(--color-white);
  border-radius: 2rem;
}
#reason .reason:nth-of-type(2) .contents-wrap .txt {
  max-width: 90rem;
  margin: 0 auto 3.6rem;
}
#reason .reason:nth-of-type(2) .contents-wrap .txt span {
  color: var(--color-green);
  background: rgba(255 245 2 / 0.5);
  font-weight: var(--bold);
}
#reason .reason:nth-of-type(3) {
  padding-top: 13rem;
}
#reason .reason:nth-of-type(3) .service {
  display: flex;
  gap: 1.3rem;
  margin: 3rem 0 0;
}
#reason .reason:nth-of-type(3) .service li {
  width: 32.5rem;
}
#reason .reason:nth-of-type(3) .service .img {
  position: relative;
  width: 28.5rem;
  height: 15rem;
  margin: 0 auto;
  border-radius: 40rem;
  overflow: hidden;
}
#reason .reason:nth-of-type(3) .service .img img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  object-fit: cover;
}
#reason .reason:nth-of-type(3) .service .txt-wrap {
  margin-top: -9rem;
  padding: 10.4rem 2.5rem 3.1rem 1.5rem;
  background: var(--color-white);
  border-radius: 2rem;
  min-height: 34rem;
  height: calc(100% - 6.5rem);
}
#reason .reason:nth-of-type(3) .service .txt-wrap .ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.8rem;
  margin-bottom: 1.5rem;
  text-align: center;
  font-size: 2.1rem;
  letter-spacing: 0.05em;
  line-height: 1.33;
}
#reason .reason:nth-of-type(3) .service .txt-wrap .ttl span span {
  font-weight: var(--bold);
  color: var(--color-orange);
}
#reason .reason:nth-of-type(3) .service .txt-wrap .txt span {
  background: #FDF1E5;
}
@media screen and (max-width: 767px) {
  #reason {
    padding-top: 5rem;
  }
  #reason .df-ttl {
    margin-bottom: 3.8rem;
  }
  #reason .list {
    flex-direction: column;
    gap: 5.7rem;
  }
  #reason .list li {
    width: auto;
    margin: 0 1.5rem;
    padding: 19.5rem 1.5rem 2rem;
  }
  #reason .list .img-wrap {
    top: -2.7rem;
    left: -10.5rem;
    height: 20rem;
    width: 43.5rem;
  }
  #reason .list .img-wrap .ttl {
    left: 12rem;
    bottom: 1rem;
    font-size: 2rem;
  }
  #reason .list li:nth-of-type(2) .img-wrap {
    left: auto;
    right: -10.5rem;
  }
  #reason .list li:nth-of-type(2) .img-wrap .ttl {
    left: auto;
    right: 12rem;
  }
  #reason .reason:nth-of-type(2) .contents-wrap {
    padding: 6.3rem 3rem 5.5rem;
    margin: -6.2rem -1.5rem 0;
  }
  #reason .contents {
    margin-top: -9.2rem;
    padding: 15.4rem 0 5rem;
    border-radius: 4rem;
  }
  #reason .reason .ttl-h3 {
    padding: 0.7rem 1.5rem 0.8rem;
    margin-bottom: 2.5rem;
    font-size: 2.2rem;
    line-height: 1.27;
    letter-spacing: 0.05em;
  }
  #reason .reason .ttl-h3 small {
    top: -2.1rem;
    font-size: 2.2rem;
  }
  #reason .reason:nth-of-type(odd) .ttl-h3 small {
    left: 0;
  }
  #reason .reason:nth-of-type(even) .ttl-h3 {
    padding: 2.2rem 1.5rem 2.3rem 0;
  }
  #reason .reason > .txt {
    padding: 0 1.5rem;
  }
  #reason .reason:nth-of-type(1) .jisseki {
    margin: 2.5rem auto 0;
    gap: 1rem 1.1rem;
  }
  #reason .reason:nth-of-type(1) .jisseki li {
    width: calc(50% - 0.55rem);
  }
  #reason .reason:nth-of-type(1) .jisseki .img {
    height: 8.7rem;
  }
  #reason .reason:nth-of-type(1) .jisseki .txt {
    width: 11.6rem;
    margin-top: -1.2rem;
    padding: 0;
    font-size: 1.4rem;
  }
  #reason .reason:nth-of-type(2) {
    padding-top: 5.2rem;
  }
  #reason .reason:nth-of-type(3) {
    padding-top: 5.2rem;
  }
  #reason .reason .ttl-h3 span.small {
    font-size: 1.8rem;
  }
  #reason .reason:nth-of-type(3) .service {
    flex-direction: column;
    gap: 2rem;
  }
  #reason .reason:nth-of-type(3) .service li {
    width: 100%;
  }
  #reason .reason:nth-of-type(3) .service .img {
    width: 31.5rem;
  }
  #reason .reason:nth-of-type(3) .service .txt-wrap {
    margin-top: -7.5rem;
    padding: 9rem 1.5rem 2.3rem;
    min-height: auto;
    height: auto;
  }
  #reason .reason:nth-of-type(3) .service .txt-wrap .ttl {
    min-height: auto;
    margin-bottom: 1.1rem;
  }
  #reason .reason:nth-of-type(3) .service .txt-wrap .txt {
    font-size: 1.5rem;
  }
}


/* ----------------------------------
point
---------------------------------- */
#point {
  padding: 10rem 0 9.7rem;
}
#point .df-ttl {
  margin-bottom: 7.2rem;
}
#point .list {
  display: flex;
  gap: 4.2rem;
}
#point .list li {
  position: relative;
  width: 37.2rem;
  padding: 6.9rem 2.8rem 3.4rem;
  background: var(--color-white);
  border-radius: 2rem;
}
#point .list li .ttl-h3 {
  position: absolute;
  top: -4rem;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin: 0 -2.8rem;
  padding-left: 1.5rem;
  font-size: 2.5rem;
  font-weight: var(--bold);
  letter-spacing: 0.1em;
  line-height: 1.28;
  color: var(--color-green);
}
#point .list li .ttl-h3 span {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 6.9rem;
  height: 8rem;
  border-radius: 17.3rem;
  background: var(--color-green);
  color: var(--color-white);
  font-size: 3.8rem;
  font-weight: var(--bold);
  line-height: 1;
}
#point .list li .txt {
  margin-top: 2.7rem;
}
#point .list li .txt span {
  font-weight: var(--bold);
  color: var(--color-green);
}
#point .list li .ttl-h3 span small {
  font-size: 1.6rem;
  letter-spacing: 0.1em;
}
#point .list li:nth-of-type(2) .ttl-h3,
#point .list li:nth-of-type(2) .txt span {
  color: var(--color-orange);
}
#point .list li:nth-of-type(2) .ttl-h3 span {
  background: var(--color-orange);
}
#point .list li .note {
  position: absolute;
  width: 100%;
  right: 0;
  bottom: -2.8rem;
  font-size: 1.4rem;
  letter-spacing: 0.05em;
  text-align: right;
  color: #A3A3A3;
}
#point .list li:nth-of-type(1) img {
  width: 21rem;
  margin: 0 auto;
}
#point .list li:nth-of-type(2) img {
  width: 19rem;
  margin: 0 auto;
}
#point .list li:nth-of-type(3) img {
  width: 27.9rem;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  #point {
    padding: 5rem 0;
  }
  #point .df-ttl {
    margin-bottom: 5.1rem;
  }
  #point .list {
    flex-direction: column;
    gap: 7rem;
  }
  #point .list li {
    width: 100%;
    padding: 5.5rem 1.5rem 2.7rem;
  }
  #point .list li .ttl-h3 {
    gap: 1.7rem;
    padding-left: 3rem;
    font-size: 2.2rem;
  }
  #point .list li:nth-of-type(1) {
    margin-bottom: 2.5rem;
  }
  #point .list li:nth-of-type(1) img {
    width: 21.8rem;
  }
  #point .list li .note {
    font-size: 1.3rem;
  }
}


/* ----------------------------------
case
---------------------------------- */
#case {
  padding: 10rem 0;
}
#case .in {
  max-width: 100rem;
}
#case .tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 1.8rem 3.4rem;
  max-width: 77rem;
  margin: 0 auto 3rem;
}
#case .tabs li {
  width: calc(25% - (3.4rem * 3 / 4));
}
#case .tabs li a {
  display: block;
  padding: 0.7rem 0;
  background: var(--color-white);
  border-radius: 2.5rem;
  box-shadow: 0 0.3rem 0 #EFECDF;
  font-size: 1.7rem;
  font-weight: var(--medium);
  letter-spacing: 0.1em;
  text-align: center;
  color: #C7C2AA;
  cursor: pointer;
}
#case .tabs li a.current {
  background: var(--color-green);
  color: var(--color-white);
  box-shadow: 0 0.3rem 0 #3E8934;
}
#case .in .category {
  position: relative;
  padding: 2.7rem 2.4rem;
}
#case .in .category::before,
#case .in .category::after {
  position: absolute;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 0.7rem;
  border-radius: 5rem;
  background: var(--color-green);
  background: linear-gradient(45deg, var(--color-green) 0%, var(--color-green) 50%, #3E8934 50%, #3E8934 100%);
}
#case .in .category::before {
  top: 0;
}
#case .in .category::after {
  bottom: 0;
}
#case .in .category .contents {
  position: absolute;
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  opacity: 0;
}
#case .in .category .contents.is-first,
#case .in .category .contents.is-show {
  position: static;
  display: flex;
  opacity: 1;
  transition: 0.3s;
  justify-content: center;
}
#case .in .category .contents .card {
  position: relative;
  padding: 2.5rem 2.5rem 2.1rem;
  width: calc(75% - (3rem *  1 / 2));
  background: var(--color-white);
  border-radius: 2rem;
}
#case .in .category .contents {
  counter-reset: case;
}
/* #case .in .category .contents .card::after {
  position: absolute;
  right: 3.2rem;
  bottom: 1.6rem;
  font-weight: var(--bold);
  font-size: 12.2rem;
  line-height: 1;
  color: #FDF1E5;
  counter-increment: case;
  content: "0" counter(case);
} */
#case .in .category .contents .card .place {
  font-size: 1.7rem;
  letter-spacing: 0.05em;
}
#case .in .category .contents .card .ttl {
  margin-bottom: 0.85rem;
  font-size: 2.5rem;
  font-weight: var(--bold);
  color: var(--color-orange);
  letter-spacing: 0.1em;
  line-height: 1.28;
}
#case .in .category .contents .card dl {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-top: 1.2rem;
}
#case .in .category .contents .card dl dt {
  padding: 0.5rem 0;
  width: 15.8rem;
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
  background: var(--color-orange);
  color: var(--color-white);
  font-weight: var(--medium);
  font-size: 1.6rem;
  text-align: center;
  letter-spacing: 0.05em;
}
#case .in .category .contents .card dl dd {
  width: calc(100% - 0.3rem - 15.8rem);
  padding: 0.5rem 0;
  border: 1px solid var(--color-orange);
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
  font-size: 1.6rem;
  font-weight: var(--medium);
  text-align: center;
  letter-spacing: 0.05em;
}
#case .in .category .contents .card .txt {
  position: relative;
  margin-top: 1.2rem;
  font-size: 1.6rem;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  #case {
    padding: 5rem 0;
  }
  #case .tabs {
    gap: 1.1rem;
    margin-bottom: 1.8rem;
  }
  #case .tabs li {
    width: calc(50% - (1.1rem * 1 / 2));
  }
  #case .in .category {
    padding: 2.2rem 0;
  }
  #case .in .category .contents {
    flex-direction: column;
    overflow: hidden;
  }
  #case .in .category .contents .card {
    width: 100%;
    padding: 2.1rem 1.5rem 2.6rem;
  }
  #case .in .category .contents .card .place {
    font-size: 1.5rem;
  }
  #case .in .category .contents .card .ttl {
    margin-top: 0.8rem;
    margin-bottom: 1.35rem;
    font-size: 2.2rem;
  }
  #case .in .category .contents .card img {
    margin: 0 -2.5rem 0 -5.4rem;
    width: calc(100% + 8.9rem);
  }
  #case .in .category .contents .card dl {
    margin-top: 2rem;
  }
  #case .in .category .contents .card dl dt,
  #case .in .category .contents .card dl dd {
    font-size: 1.3rem;
  }
  #case .in .category .contents .card dl dt {
    width: 11.9rem;
  }
  #case .in .category .contents .card dl dd {
    width: calc(100% - 0.3rem - 11.9rem);
  }
  #case .in .category .contents .card .txt {
    margin-top: 2rem;
    font-size: 1.5rem;
  }
  #case .in .category .contents .card::after {
    right: 2.7rem;
    font-size: 11.2rem;
  }
}


/* ----------------------------------
voice
---------------------------------- */
#voice {
  position: relative;
  border-radius: 10rem;
  padding: 15rem 0 10rem;
  background: var(--color-bage);
}
#voice .df-ttl {
  padding-top: 1rem;
}
#voice .ttl-lead {
  margin-bottom: 3.4rem;
}
#voice .swiper {
  overflow: visible;
  align-items: stretch;
}
#voice .swiper-slide {
  width: 80rem;
  padding: 3rem 4.5rem 3.3rem;
  background: var(--color-white);
  border-radius: 2rem;
  margin: 0 4rem;
  height: 100%;
}
#voice .swiper-slide .ttl-flex {
  display: flex;
  gap: 1.6rem;
  align-items: center;
}
#voice .swiper-slide .ttl-flex img {
  width: 7.7rem;
}
#voice .swiper-slide .ttl-flex .data {
  font-size: 1.6rem;
  letter-spacing: 0.05em;
}
#voice .swiper-slide .ttl-flex .data span {
  display: inline-block;
  margin-left: 1.6rem;
  min-width: 20.9rem;
  border-radius: 1.6rem;
  background: var(--color-orange);
  color: var(--color-white);
  text-align: center;
}
#voice .swiper-slide .ttl-flex .ttl-h3 {
  margin-top: 0.85rem;
  font-size: 2.5rem;
  font-weight: var(--bold);
  letter-spacing: 0.05em;
}
#voice .swiper-slide .flex {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin: 1.7rem 0 0;
}
#voice .swiper-slide .flex .img {
  position: relative;
  overflow: hidden;
  width: 31.5rem;
  height: 22.1rem;
  border-radius: 1rem;
}
#voice .swiper-slide .flex .img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#voice .swiper-slide .flex .txt {
  width: calc(100% - 2rem - 31.5rem);
  font-weight: var(--medium);
  letter-spacing: 0.025em;
}
#voice .swiper-button-prev,
#voice .swiper-button-next {
  width: 4.1rem;
  height: auto;
  transform: translateY(-50%);
}
#voice .swiper-button-prev {
  left: 13.9rem;
}
#voice .swiper-button-next {
  right: 13.9rem;
}
#voice .swiper-button-prev::after,
#voice .swiper-button-next::after {
  content: none;
}
#voice .swiper-pagination {
  position: static;
  margin-top: 2rem;
}
#voice .swiper-pagination-bullet {
  margin: 0 0.65rem;
  width: 1.5rem;
  height: 1.5rem;
  background: var(--color-white);
  border: 1px solid var(--color-green);
  opacity: 1;
}
#voice .swiper-pagination-bullet-active {
  background: var(--color-green);
}
@media screen and (max-width: 767px) {
  #voice {
    padding: 5rem 0;
    border-radius: 4rem;
  }
  #voice .df-ttl {
    padding-top: 0;
  }
  #voice .swiper-slide {
    width: 100%;
    padding: 1.3rem 1.5rem 4rem;
  }
  #voice .swiper-slide .flex {
    flex-direction: column;
    gap: 1.1rem;
  }
  #voice .swiper-slide .flex .img {
    width: 100%;
    height: 16.4rem;
  }
  #voice .swiper-slide .flex .txt {
    width: 100%;
    font-size: 1.5rem;
  }
  #voice .swiper-slide .ttl-flex {
    position: relative;
    display: block;
  }
  #voice .swiper-slide .ttl-flex .ttl-h3 {
    margin-top: 1.3rem;
    font-size: 2rem;
  }
  #voice .swiper-slide .ttl-flex .data {
    width: 22.8rem;
    margin-left: auto;
    font-size: 1.4rem;
  }
  #voice .swiper-slide .ttl-flex .data span {
    display: block;
    min-width: auto;
    padding: 0.2rem 0;
    margin: 0.2rem 0 0;
    font-size: 1.4rem;
  }
  #voice .swiper-slide .ttl-flex img {
    position: absolute;
    left: 0;
    top: -2.5rem;
  }
  #voice .swiper-pagination {
    margin: 0;
    width: auto;
  }
  #voice .swiper-pagination-bullet {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0 0.5rem;
  }
  .swiper-control {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0.9rem 0 0;
  }
  #voice .swiper-button-prev,
  #voice .swiper-button-next {
    width: 8.6rem;
    position: static;
    transform: unset;
    margin: 0;
  }
}


/* ----------------------------------
flow
---------------------------------- */
#flow {
  padding: 15rem 0;
}
#flow .df-ttl {
  padding-top: 1rem;
}
#flow .ttl-lead {
  margin-bottom: 5.8rem;
}
#flow .list {
  counter-reset: flow;
}
#flow .list li {
  position: relative;
  display: flex;
  align-items: center;
  height: 17.6rem;
  padding: 0 0 0 18.3rem;
  margin-left: auto;
  max-width: 91.2rem;
  background: var(--color-bage);
  border-radius: 2rem;
}
#flow .list li + li::before {
  position: absolute;
  left: calc(50% - 14.4rem);
  top: -3.1rem;
  content: "";
  display: block;
  width: 2rem;
  height: 2rem;
  border-radius: 100%;
  background-color: var(--color-bage);
  transform: translateX(-50%);
}
#flow .list li + li:nth-of-type(odd)::before {
  left: calc(50% - 14.4rem + 10rem);
}
#flow .list li::after {
  position: absolute;
  right: 3.9rem;
  top: 50%;
  counter-increment: flow;
  content: "0"counter(flow);
  line-height: 1;
  font-size: 10rem;
  font-weight: var(--bold);
  color: #F8F7F1;
  transform: translateY(-50%);
}
#flow .list li + li {
  margin-top: 4.3rem;
}
#flow .list li:nth-of-type(odd) {
  margin-right: 10rem;
}
#flow .list li .ttl-h3 {
  position: relative;
  z-index: 2;
  margin-bottom: 1.5rem;
  font-size: 2.5rem;
  font-weight: var(--bold);
  color: var(--color-orange);
}
#flow .list li .ttl-h3 img {
  height: 3rem;
  width: auto;
}
#flow .list li .txt {
  position: relative;
  z-index: 2;
}
#flow .list li .img-wrap {
  position: absolute;
  top: -1.5rem;
  left: -18rem;
  width: 33.1rem;
  height: 16.4rem;
  border-radius: 30rem;
  box-shadow: 0.8rem -0.8rem 0 var(--color-bage);
  overflow: hidden;
}
#flow .list li .img-wrap img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  #flow {
    padding: 5rem 0;
  }
  #flow .df-ttl {
    padding-top: 0;
  }
  #flow .ttl-lead {
    margin-bottom: 8.3rem;
  }
  #flow .list li {
    width: auto;
    height: auto;
    padding: 2.7rem 1.6rem 2rem;
    margin-left: 1.5rem !important;
    margin-right: -1.5rem !important;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  #flow .list li + li {
    margin-top: 9.9rem;
  }
  #flow .list li .ttl-h3 {
    margin-bottom: 0.5rem;
    font-size: 2rem;
  }
  #flow .list li .ttl-h3 img {
    height: 2.41rem;
  }
  #flow .list li .txt {
    font-size: 1.5rem;
  }
  #flow .list li .img-wrap {
    left: -1.5rem;
    top: -5.9rem;
    width: 21.4rem;
    height: 10.6rem;
    box-shadow: 0.5rem -0.5rem 0 var(--color-bage);
  }
  #flow .list li::after {
    right: 3rem;
    top: 0;
    transform: unset;
    font-size: 5.2rem;
    line-height: 1.3;
  }
  #flow .list li + li::before {
    top: -8.9rem;
    left: 50% !important;
  }
}


/* ----------------------------------
support
---------------------------------- */
#support {
  position: relative;
  padding: 15rem 0 12.2rem;
  background: var(--color-white);
  border-radius: 10rem;
}
#support .df-ttl {
  padding-top: 1rem;
  margin: 0;
}
#support .flex {
  display: flex;
  align-items: center;
  gap: 4.1rem;
  margin-top: -1.8rem;
}
#support .flex .txt-wrap {
  width: 56.7rem;
}
#support .flex .txt-wrap .ttl-h3 {
  padding-bottom: 2.6rem;
  margin-bottom: 2.4rem;
  background: url(../img/border-orange.png) left bottom/auto 0.3rem no-repeat;
  font-size: 2.5rem;
  font-weight: var(--bold);
  color: var(--color-orange);
  letter-spacing: 0.05em;
}
#support .flex .txt-wrap .txt span {
  font-weight: var(--bold);
  color: var(--color-orange);
  background: rgba(255 245 2 / 0.5);
}
#support .flex .img-wrap {
  width: calc(100% - 56.7rem - 4.1rem);
}
#support .flex .img-wrap .img {
  position: relative;
  overflow: hidden;
  height: 41.7rem;
  width: calc(50% + 50vw);
  border-top-left-radius: 30rem;
  border-bottom-left-radius: 30rem;
  box-shadow: -1.3rem 2.2rem 0 var(--color-green);
}
#support .flex .img-wrap .img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  #support {
    padding: 5rem 0 2rem;
    border-radius: 4rem;
  }
  #support .df-ttl {
    padding-top: 0;
  }
  #support .flex {
    flex-direction: column-reverse;
    gap: 2.3rem;
    margin: 1rem 1.5rem 0;
  }
  #support .flex .img-wrap {
    width: 100%;
  }
  #support .flex .img-wrap .img {
    width: 44.6rem;
    height: 17.6rem;
    box-shadow: -0.7rem 0.7rem 0 var(--color-green);
  }
  #support .flex .txt-wrap {
    width: 100%;
  }
  #support .flex .txt-wrap .ttl-h3 {
    width: 23rem;
    margin: 0 auto 1.6rem;
    padding-bottom: 1.6rem;
    text-align: center;
    font-size: 2.1rem;
  }
}


/* ----------------------------------
search
---------------------------------- */
#search {
  padding: 15rem 0 12rem;
}
#search .df-ttl {
  padding-top: 1rem;
}
#search .contents {
  padding: 4.5rem 5rem 5rem;
  border-radius: 1.2rem;
  background: var(--color-white);
}
#search .contents .ttl-h3 {
  margin-bottom: 4.3rem;
  text-align: center;
  font-weight: var(--bold);
  font-size: 2.8rem;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 767px) {
  #search {
    padding: 5rem 0;
  }
  #search .df-ttl {
    padding-top: 0;
  }
  #search .contents {
    padding: 3.6rem 1.5rem 4.6rem;
  }
  #search .contents .ttl-h3 {
    margin-bottom: 3.2rem;
    font-size: 2rem;
  }
}


/* ----------------------------------
footer
---------------------------------- */
footer {
  position: relative;
  background: #505050;
  color: var(--color-white);
  text-align: center;
}
footer .txt {
  padding: 5.3rem 0 5.8rem;
  font-size: 1.4rem;
}
footer .bottom {
  border-top: 1px solid #707070;
  padding: 3.3rem 0 3rem;
  font-size: 1.4rem;
  line-height: 1.66;
}
.page-top {
  position: absolute;
  right: 2.8rem;
  top: -2.4rem;
  display: block;
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 100%;
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, .16);
  background: var(--color-white);
  transition: .3s;
}
.page-top::before {
  position: absolute;
  top: 55%;
  left: 50%;
  content: "";
  display: block;
  width: 1rem;
  height: 1rem;
  border-top: 0.2rem solid #505050;
  border-right: 0.2rem solid #505050;
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media screen and (min-width: 768px) {
  .page-top:hover {
    opacity: 0.68;
  }
}
@media screen and (max-width: 767px) {
  footer .txt {
    padding: 5.2rem 0 3.6rem;
    font-size: 1.2rem;
  }
  footer .bottom {
    padding: 3.2rem 0 4.6rem;
    font-size: 1.2rem;
  }
  .page-top {
    right: 1rem;
  }
}

/* アニメーション */
.anime.slideUp,
.anime.fadeIn,
.fadeLoad {
  opacity: 0;
}
.fadeLoad {
  animation: fadeIn 1s .3s ease-out forwards;
}
.anime.slideUp.active {
  animation: slideUp .5s .05s ease-out forwards;
}
.anime.fadeIn.active {
  animation: fadeIn 1s .3s ease-out forwards;
}
@keyframes slideUp {
  0% {
    opacity: 0;
    transform: translateY(2rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}