@charset "UTF-8";
:root {
  --themeColor:#ef4d63;
  --themeColor-lt:#fcf1ed;
  --pointColor:#e70096;
  --linkColor:#87eaf9;
  --bgColor:#f7f7f7;
  --fontColor: #000;
  --w:882px;
  --side: calc((100% - (var(--w) - calc(var(--w) * 0.05))) / 2);
  --widthXL:982px;
  --widthLG:980px;
  --widthTab:768px;
  --font-go-base: "soleil","source-han-sans-japanese" ,"Hiragino Kaku Gothic Pro" ,"游ゴシック体", "Yu Gothic Medium" , "Yu Gothic", Meiryo ,sans-serif;
  --font-mi-base: "Hiragino Mincho ProN", "Yu Mincho","YuMincho", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  --font-soleil: "soleil",var(--font-go-base);
}

html {
  color: #000;
  background: #FFF;
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td, select, main, address, span {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  line-height: 140%;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, main {
  display: block;
  box-sizing: border-box;
}

a, span, details, summary {
  box-sizing: border-box;
}

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

fieldset, img {
  border: 0;
}

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

strong {
  font-style: normal;
}

ul li {
  list-style: none;
}

caption, th {
  text-align: left;
}

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

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

abbr, acronym {
  border: 0;
  font-variant: normal;
}

sup {
  vertical-align: text-bottom;
}

sub {
  vertical-align: text-top;
}

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

input, textarea, select {
  font-size: 100%;
}

legend {
  color: #000;
}

figure {
  margin: 0;
}

img {
  backface-visibility: hidden;
}

html:has(.is-android) {
  font-size: 90%;
}

body {
  font-size: 0.875rem;
  color: var(--fontColor);
  font-family: var(--font-go-base);
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
  font-weight: bold;
}

@media (max-width: 767px) {
  .for-pc {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .for-sp {
    display: none !important;
  }
}

.clearfix:after {
  content: "";
  clear: both;
  display: block;
}

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

a {
  text-decoration: none;
  transition: all 0.3s;
}
a img {
  opacity: 1;
  transition: all 0.3s;
}
@media (min-width: 768px) {
  a:hover img {
    opacity: 0.8;
  }
}
@media (max-width: 767px) {
  a:active img {
    opacity: 0.8;
  }
}

p {
  line-height: 190%;
}
p + p {
  margin-top: 0.75rem;
}
@media (min-width: 768px) {
  p a:hover {
    color: var(--linkColor);
  }
}
@media (max-width: 767px) {
  p a:active {
    color: var(--linkColor);
  }
}

ol {
  padding-left: 1.25rem;
}

ruby rt {
  font-size: 40%;
}

em {
  color: #e13838;
}

input[type=text],
input[type=tel],
input[type=email],
textarea {
  appearance: none;
  padding: 8px 10px;
  border: 1px solid #b7b7b7;
}
@media (max-width: 767px) {
  input[type=text],
  input[type=tel],
  input[type=email],
  textarea {
    font-size: 1rem;
  }
}

select {
  height: 40px;
  padding: 8px 10px;
  border: 1px solid #b7b7b7;
  background: #fff;
  border-radius: 4px;
  color: var(--fontColor);
}
@media (max-width: 767px) {
  select {
    font-size: 1rem;
  }
}

textarea {
  width: 100%;
  height: 200px;
}

.btn-square {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 60px;
  border: 1px solid #000;
  border-radius: 8px;
  background: #fff;
  padding: 10px 20px 10px 80px;
  color: #000;
  font-weight: bold;
  opacity: 0.9;
}
@media (hover: hover) {
  .btn-square:hover {
    background: #f2f2f2;
  }
}
.btn-square:before {
  content: "";
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0;
  width: 60px;
  height: 100%;
  border-right: 1px dotted #000;
  background: url(../img/common/icon-arrow.png) center center/18px 12px no-repeat;
  z-index: 1;
}

.btn-round {
  position: relative;
  display: inline-flex;
  justify-content: center;
  min-width: 290px;
  padding: 20px 60px 20px 40px;
  background: #fff;
  border-radius: 30px;
  border: 0.5px solid #000;
  color: #000;
}
.btn-round::before {
  content: "";
  display: inline-block;
  position: absolute;
  right: 17px;
  top: calc(50% - 13px);
  width: 26px;
  height: 26px;
  background: url(../img/common/icon-arrow-r-circle.png) center center/contain no-repeat;
}
@media (hover: hover) {
  .btn-round:hover {
    background: #f2f2f2;
  }
}

.btn-more {
  display: inline-flex;
  flex-direction: column;
  gap: 3px 0;
  font-weight: bold;
  color: #000;
  font-size: 0.8125rem;
}
.btn-more::after {
  content: "";
  display: inline-block;
  width: 102px;
  height: 15px;
  background: url(../img/common/icon-arrow-curve.png) center center/contain no-repeat;
}
@media (hover: hover) {
  .btn-more:hover {
    opacity: 0.6;
  }
}

.btn-simple {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  border-radius: 10px;
  padding: 10px 40px;
  background: #000;
  color: #fff;
  font-weight: bold;
}
.btn-simple::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 10px;
  margin-right: 10px;
  background: url(../img/common/icon-arrow-r-white.png) center center/contain no-repeat;
}
.btn-simple.is-outline {
  border: 1px solid #000;
  background: transparent;
  color: #000;
}
.btn-simple.is-outline::before {
  background: url(../img/common/icon-arrow.png) center center/contain no-repeat;
}

.btn-big {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 370px;
  height: 85px;
  background: #14cad5;
  border: none;
  color: #fff;
  font-weight: bold;
  font-size: 1rem;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s;
}
@media (hover: hover) {
  .btn-big:hover {
    opacity: 0.8;
  }
}
@media (max-width: 767px) {
  .btn-big {
    width: 80%;
    height: 40px;
  }
}

.col {
  display: flex;
  flex-flow: row wrap;
}
@media (max-width: 767px) {
  .col {
    display: block;
  }
}
@media (max-width: 767px) {
  .col.is-sp-flex {
    display: flex;
  }
}
.col.is-oneline {
  flex-wrap: nowrap;
  justify-content: space-between;
}
.col-contents {
  width: 100%;
}
@media (max-width: 767px) {
  .col-contents {
    max-width: 100%;
  }
  .col:not(.is-sp-flex) .col-contents + .col:not(.is-sp-flex) .col-contents {
    margin-top: 10px;
  }
}
.is-oneline .col-contents {
  margin-bottom: 0;
}
.is-oneline .col-contents + .col-contents {
  margin-left: 2%;
}
@media (max-width: 767px) {
  .is-oneline:not(.is-sp-flex) .col-contents {
    max-width: 100%;
    margin: auto;
  }
  .is-oneline:not(.is-sp-flex) .col-contents + .col-contents {
    margin-top: 30px;
  }
}
.is-2 .col-contents {
  max-width: 48%;
}
.is-2 .col-contents:nth-child(even) {
  margin-left: calc(4% - 1px);
}
.is-2 .col-contents:nth-child(n+3) {
  margin-top: 30px;
}
@media (max-width: 767px) {
  .is-2 .col-contents:nth-child(n+3) {
    margin-top: 30px;
  }
}
@media (max-width: 767px) {
  .is-2:not(.is-sp-flex) .col-contents {
    max-width: 100%;
    margin: auto;
  }
  .is-2:not(.is-sp-flex) .col-contents + .col-contents {
    margin-top: 30px;
  }
}
.is-3 .col-contents {
  max-width: 32%;
}
.is-3 .col-contents:not(:nth-child(3n+1)) {
  margin-left: calc(2% - 1px);
}
.is-3 .col-contents:nth-child(n+4) {
  margin-top: 30px;
}
@media (max-width: 767px) {
  .is-3 .col-contents:nth-child(n+4) {
    margin-top: 10px;
  }
}
@media (max-width: 767px) {
  .is-3:not(.is-sp-flex) .col-contents {
    max-width: 100%;
    margin: auto;
  }
  .is-3:not(.is-sp-flex) .col-contents + .col-contents {
    margin-top: 30px;
  }
}
.is-4 .col-contents {
  max-width: 23%;
}
.is-4 .col-contents:not(:nth-child(4n+1)) {
  margin-left: calc(2.6% - 1px);
}
.is-4 .col-contents:nth-child(n+5) {
  margin-top: 30px;
}
@media (max-width: 767px) {
  .is-4 .col-contents:nth-child(n+5) {
    margin-top: 10px;
  }
}
@media (max-width: 767px) {
  .is-4:not(.is-sp-flex) .col-contents {
    max-width: 100%;
    margin: auto;
  }
  .is-4:not(.is-sp-flex) .col-contents + .col-contents {
    margin-top: 30px;
  }
}
.col-contents-title {
  margin-bottom: 5px;
}
.col-contents-text {
  margin-top: 5px;
}

.flImgContents-img {
  max-width: 37%;
  width: 100%;
}
@media (max-width: 767px) {
  .flImgContents-img {
    max-width: 100%;
  }
}
.flImgContents-img.is-s {
  max-width: 200px;
}
@media (max-width: 767px) {
  .flImgContents-img.is-s {
    max-width: 100%;
  }
}
.flImgContents-img.is-ss {
  max-width: 100px;
}
@media (max-width: 767px) {
  .flImgContents-img.is-ss {
    max-width: 70%;
    margin-right: auto;
    margin-left: auto;
  }
}
.flImgContents-img.is-l {
  max-width: 47%;
}
@media (max-width: 767px) {
  .flImgContents-img.is-l {
    max-width: 100%;
  }
}
.flImgContents-img.is-fr {
  float: right;
  margin: 0 0 20px 40px;
}
@media (max-width: 767px) {
  .flImgContents-img.is-fr {
    margin: 0 auto 20px;
  }
  .flImgContents-img.is-fr:not(.is-sp-float) {
    float: none;
  }
  .flImgContents-img.is-fr.is-sp-float {
    width: 35%;
    margin: 0 0 10px 10px;
  }
}
.flImgContents-img.is-fl {
  float: left;
  margin: 0 40px 20px 0;
}
@media (max-width: 767px) {
  .flImgContents-img.is-fl {
    margin: 0 auto 20px;
  }
  .flImgContents-img.is-fl:not(.is-sp-float) {
    float: none;
  }
  .flImgContents-img.is-fl.is-sp-float {
    width: 35%;
    margin: 0 10px 10px 0;
  }
}

.text-s {
  font-size: 85%;
}

.text-l {
  font-size: 120%;
}

.cl-red {
  color: #ff0000;
}

.list-normal > li {
  margin: 0 0 10px;
  text-indent: -1.6rem;
  padding-left: 1.6rem;
}
.list-normal > li::before {
  content: "●";
  margin-right: 5px;
  font-size: 10px;
  font-family: sans-serif;
  color: var(--themeColor);
}

.list-number {
  padding: 0 0 0 25px;
}
.list-number > li {
  list-style: decimal;
  margin: 0 0 10px;
}

.list-numbold {
  counter-reset: li;
  list-style: none;
  padding-left: 2.5rem;
}
.list-numbold > li::before {
  margin: 0 5px 0 -2rem;
  width: 2.5rem;
  content: counter(li) ". ";
  counter-increment: li;
  font-weight: bold;
}

.al-r {
  text-align: right;
}

.al-c {
  text-align: center;
}

.full {
  width: 100%;
}

.size-30 {
  width: 30%;
}
@media (max-width: 767px) {
  .size-30 {
    width: 70%;
  }
}

.size-60 {
  width: 60%;
}
@media (max-width: 767px) {
  .size-60 {
    width: 100%;
  }
}

.indent {
  width: 97%;
  margin: 0 0 0 auto;
}

.outlink::after {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  background: url(../img/common/icon-outlink-black.png) center center/contain no-repeat;
  margin-left: 5px;
}

.section-small {
  margin-top: 20px;
  margin-bottom: 20px;
}

.section-1 {
  margin-top: 30px;
  margin-bottom: 40px;
}
.section-1:first-child {
  margin-top: 0;
}

.section-2 {
  margin-top: 40px;
  margin-bottom: 70px;
}
.section-2:first-child {
  margin-top: 0;
}

.section-3 {
  margin-top: 40px;
  margin-bottom: 100px;
}
.section-3:first-child {
  margin-top: 0;
}

.section-center {
  max-width: var(--w);
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 768px) and (max-width: 981px) {
  .section-center {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 767px) {
  .section-center-sp {
    width: 90% !important;
    margin-left: auto;
    margin-right: auto;
  }
}

.nowrap {
  white-space: nowrap;
}

.table-1 {
  border-collapse: collapse;
}
.table-1 th, .table-1 td {
  padding: 30px 12px 15px;
}
@media (max-width: 767px) {
  .table-1 th, .table-1 td {
    font-size: 0.8125rem;
  }
}
.table-1 th {
  position: relative;
  font-weight: bold;
}
.table-1 th::after {
  content: "";
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: calc(100% - 15px);
  border-bottom: 1px solid #000;
}
.table-1 td {
  border-bottom: 1px solid #999;
}
.table-1 a {
  color: var(--linkColor);
}
@media (max-width: 767px) {
  .table-1.is-sideTitle th {
    padding: 10px 0;
  }
  .table-1.is-sideTitle td {
    padding: 20px 0;
  }
}

@media (max-width: 767px) {
  .is-sideTitle tr {
    display: block;
  }
  .is-sideTitle th, .is-sideTitle td {
    display: block;
    width: 100%;
    padding: 0;
  }
  .is-sideTitle th {
    margin-bottom: 5px;
    font-weight: bold;
  }
}

.wfix {
  table-layout: fixed;
}

@media (max-width: 767px) {
  .tableScrollWrap {
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch;
    margin-right: -5vw;
    padding-right: 5vw;
  }
}

.title-bold {
  margin-bottom: 5px;
  font-size: 1.6rem;
  font-weight: bold;
}

#container {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
}

.contents {
  overflow: hidden;
}

.footer-btnlogo {
  text-align: center;
  margin: 40px 0 50px;
}

.footerLogo {
  text-align: center;
  margin-bottom: 50px;
}

.gPolicy {
  display: block;
  font-size: 1rem;
  text-align: right;
  margin-right: 5%;
  padding-bottom: 5px;
  font-size: 0.625rem;
  font-weight: normal;
}
.gPolicy a {
  color: var(--fontColor);
  text-decoration: underline;
}

.grecaptcha-badge {
  visibility: hidden;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  grid-template: "logoArea gNavi" auto/1fr 1fr;
  gap: 3%;
  width: 100%;
  padding: 20px 5% 0;
  z-index: 2;
  transition: all 0.3s;
  will-change: background-color, box-shadow, transform;
}
@media (min-width: 768px) {
  .header {
    display: grid;
  }
}
@media (max-width: 767px) {
  .header {
    z-index: 6;
    padding-top: 0;
    height: 54px;
  }
}
@media (min-width: 768px) {
  .is-scroll .header {
    background: rgb(255, 255, 255);
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
    transform: translateY(30px);
    width: 90%;
    left: 5%;
    height: 70px;
    padding: 0 3%;
    border-radius: 60px;
  }
}
@media (max-width: 767px) {
  .is-scroll .header {
    background: #fff;
  }
}
.header-logoArea {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0 30px;
}
@media (min-width: 768px) {
  .header-logoArea {
    grid-area: logoArea;
  }
}
@media (max-width: 767px) {
  .header-logoArea {
    height: 100%;
  }
}
.header-logoArea-logo {
  width: 160px;
}
@media (max-width: 767px) {
  .header-logoArea-logo {
    width: auto;
  }
}
.header-logoArea-logo a {
  display: flex;
  align-items: center;
  gap: 20px;
}
.header-logoArea-logo img.is-first {
  display: none;
}
@media (max-width: 767px) {
  .header-logoArea-logo img.is-first {
    width: 140px;
  }
}
.is-scroll .header-logoArea-logo img.is-first {
  display: block;
}
@media (max-width: 767px) {
  .header-logoArea-logo img.is-switchLab {
    width: 140px;
  }
}
.is-scroll .header-logoArea-logo img.is-switchLab {
  display: none;
}
.header-logoArea-text {
  margin-top: 4px;
  font-size: 1.2rem;
  font-weight: bold;
}
@media (max-width: 767px) {
  .header-logoArea-text {
    display: none;
  }
}
.is-scroll .header-logoArea-text {
  display: none;
}

@media (min-width: 768px) {
  .gNavi {
    grid-area: gNavi;
  }
}
@media (max-width: 767px) {
  .gNavi {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    overscroll-behavior: contain;
    padding: 20% 10% 80px;
    background: rgba(53, 53, 53, 0.95);
    transform: translateX(-100%);
    z-index: 4;
    transition: all 0.4s;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    opacity: 0;
  }
  .dwMenu-active .gNavi {
    transform: translateX(0);
    opacity: 1;
  }
  .gNavi:focus-within {
    transform: translateX(0);
    opacity: 1;
  }
}
.gNavi-inner {
  display: flex;
  align-items: center;
  gap: 40px;
}
@media (max-width: 767px) {
  .gNavi-inner {
    flex-direction: column;
  }
}
@media (min-width: 768px) {
  .is-scroll .gNavi-inner {
    height: 100%;
  }
}
@media (min-width: 768px) and (max-width: 981px) {
  .is-scroll .gNavi-inner {
    padding-top: 8px;
  }
}
.gNavi-ul {
  display: flex;
  justify-content: flex-end;
}
@media (min-width: 768px) {
  .is-scroll .gNavi-ul {
    height: 100%;
  }
}
@media (max-width: 767px) {
  .gNavi-ul {
    display: block;
    width: 100%;
  }
}
.gNavi-ul-li {
  display: flex;
  align-items: center;
}
@media (min-width: 768px) and (max-width: 979px) {
  .gNavi-ul-li {
    padding: 10px 0;
  }
}
@media (max-width: 767px) {
  .gNavi-ul-li {
    color: #fff;
    font-size: 0.9375rem;
    text-align: center;
  }
}
.gNavi-ul-li a {
  display: block;
  padding: 20px;
  font-weight: bold;
  color: #000;
}
@media (hover: hover) {
  .gNavi-ul-li a:hover {
    color: var(--pointColor);
  }
}
@media (min-width: 768px) and (max-width: 981px) {
  .gNavi-ul-li a {
    padding: 12px;
  }
}
@media (max-width: 767px) {
  .gNavi-ul-li a {
    width: 100%;
    padding: 10px 0;
    color: #fff;
  }
}
@media (min-width: 768px) {
  .gNavi-ul-li:last-child a {
    padding-right: 0;
  }
}
@media (min-width: 768px) {
  .gNavi-ul-li + .gNavi-ul-li::before {
    content: "/";
  }
}
.gNavi-contact a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  height: 38px;
  border: 1px solid #000;
  background: #fff;
  border-radius: 30px;
  padding: 5px 20px;
  color: #000;
}
@media (hover: hover) {
  .gNavi-contact a:hover {
    background: #000;
    color: #fff;
  }
}

.filter {
  position: fixed;
  width: 100%;
  height: 120%;
  bottom: 0;
  left: 0;
  pointer-events: none;
  transition: all 0.3s;
  z-index: 1;
}
.dwMenu-active .filter {
  background: rgba(0, 0, 0, 0.4);
  pointer-events: auto;
}

.contact {
  position: relative;
  padding-bottom: 100px;
}
@media (max-width: 767px) {
  .contact {
    padding-bottom: 60px;
  }
}

.contactSection {
  background: #eaf2f6;
  border-radius: 40px;
  padding: 140px 0;
}
@media (max-width: 979px) {
  .contactSection {
    padding: 60px 5%;
  }
}
.contactSection.bg-pink {
  background: #fdf2f5;
}
.contactSection + .contactSection {
  margin-top: 140px;
}
@media (max-width: 767px) {
  .contactSection + .contactSection {
    margin-top: 20px;
  }
}
.contactSection-inner {
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--w) + 10%);
  width: 100%;
  padding-inline: 5%;
}
.contactSection-title {
  display: flex;
  align-items: flex-end;
  margin-bottom: 60px;
  font-weight: bold;
  gap: 20px;
}
@media (min-width: 768px) and (max-width: 979px) {
  .contactSection-title {
    flex-wrap: wrap;
  }
}
@media (max-width: 767px) {
  .contactSection-title {
    flex-direction: column;
    align-items: flex-start;
  }
}
.contactSection-title-main {
  font-size: 1.875rem;
  line-height: 1;
}
.contactSection-title-en {
  margin-right: 60px;
}
.contactSection-text {
  margin-bottom: 40px;
  font-size: 0.8125rem;
}
.contactSection-text a {
  color: #000;
  text-decoration: underline;
  text-underline-offset: 6px;
}

.contactForm table {
  width: 100%;
}
.contactForm table th {
  width: 200px;
  line-height: 2;
}
@media (max-width: 767px) {
  .contactForm table th {
    width: 100%;
  }
}
.contactForm input, .contactForm textarea {
  border: none;
  border-radius: 4px;
}
.contactForm input {
  height: 40px;
}
.contactForm-flex {
  display: flex;
  gap: 10px 30px;
}
@media (max-width: 979px) {
  .contactForm-flex {
    flex-direction: column;
  }
}
.contactForm-flex-item {
  display: flex;
  gap: 6px;
  align-items: center;
  font-weight: normal;
}
.contactForm-flex-item input {
  width: fit-content;
  height: fit-content;
}
.contactForm-address input:nth-child(1) {
  margin-right: 20px;
}
@media (max-width: 767px) {
  .contactForm-address input:nth-child(1) {
    margin-bottom: 10px;
  }
}
.contactForm .p-postal-code {
  width: 120px;
  margin-right: 10px;
}

.tableBottomNote {
  margin-top: 20px;
  font-weight: bold;
  font-size: 0.8125rem;
}

.privacyCheack {
  text-align: center;
  font-weight: bold;
}
@media (max-width: 767px) {
  .privacyCheack {
    margin-top: 20px;
    text-align: left;
    text-indent: -2em;
    padding-left: 4em;
    line-height: 1.8;
  }
}
.privacyCheack label {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 767px) {
  .privacyCheack label {
    display: inline;
    justify-content: flex-start;
  }
}
.privacyCheack label input {
  margin-right: 10px;
}
@media (max-width: 767px) {
  .privacyCheack label input {
    height: fit-content;
  }
}
.privacyCheack label a {
  color: #000;
  text-decoration: underline;
  text-underline-offset: 6px;
}
@media (hover: hover) {
  .privacyCheack label a:hover {
    color: var(--linkColor);
  }
}

.sendBtn {
  contain: size;
  text-align: center;
  margin: 40px 0 -100px;
}
@media (max-width: 767px) {
  .sendBtn {
    contain: content;
    margin: 40px 0 0;
  }
}

.privacy {
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--w) + 10%);
  width: 100%;
  padding-inline: 5%;
  margin-top: 200px;
  margin-bottom: 200px;
}
@media (max-width: 767px) {
  .privacy {
    margin-left: auto;
    margin-right: auto;
    max-width: 90%;
    width: 90%;
    margin-block: 100px;
  }
}
.privacy .title-bold {
  margin-bottom: 20px;
}
.privacy ol {
  margin-block: 10px;
}
.privacy ol > li > ol {
  list-style: lower-alpha;
}
.privacy ol > li > ol > li > ol {
  list-style: disc;
}
.privacy li {
  line-height: 1.8;
}
.privacy li + li {
  margin-top: 8px;
}

.dwMenu {
  appearance: none;
  position: fixed;
  top: 0;
  right: 0;
  border: none;
  background: none;
  padding: 0;
  z-index: 10;
}
@media (min-width: 768px) {
  .dwMenu {
    display: none;
  }
}

svg {
  height: 54px;
  position: absolute;
  left: 0;
  top: 0;
  width: 54px;
  cursor: pointer;
  /*   border: 1px solid black; */
}

.plate {
  display: block;
  height: 54px;
  width: 54px;
}

.x {
  transform: scale(0);
  transition: transform 400ms;
}

.line {
  fill: none;
  stroke: red;
  stroke-width: 6px;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform-origin: 50%;
  transition: stroke-dasharray 500ms 200ms, stroke-dashoffset 500ms 200ms, transform 500ms 200ms;
}

.x .line {
  stroke-width: 5.5px;
}

/* Common Css must add end */
.plate1 .line2 {
  stroke-dasharray: 40 200;
  stroke-dashoffset: 0px;
}

.plate1 .line3 {
  stroke-dasharray: 40 179;
  stroke-dashoffset: 0px;
}

.dwMenu-active .line {
  transition: stroke-dasharray 500ms, stroke-dashoffset 500ms, transform 500ms;
}

.dwMenu-active .plate1 .line1 {
  transform: scale(0, 1);
  transition: transform 500ms 100ms;
}

.dwMenu-active .plate1 .line2 {
  stroke-dasharray: 5px 200;
  stroke-dashoffset: -164px;
}

.dwMenu-active .plate1 .line3 {
  stroke-dasharray: 5px 179;
  stroke-dashoffset: -142px;
}

.dwMenu-active .x {
  transform: scale(1);
  transition: transform 400ms 350ms;
}

.mv {
  position: relative;
  width: 100%;
  height: 100vh;
}
.mv video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mvContents {
  position: absolute;
  top: 45%;
  left: 0;
  width: 100%;
  text-align: center;
}
@media (max-width: 767px) {
  .mvContents {
    top: 30%;
  }
}
.mvContents-copy {
  font-size: 2.5rem;
  margin-bottom: 20px;
}
@media (max-width: 767px) {
  .mvContents-copy {
    font-size: 6vw;
  }
}
.mvContents-switch {
  width: 205px;
  height: 40px;
  margin-inline: auto;
}
.mvContents-switch canvas {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature {
  position: relative;
  background: #fde100;
  padding: 30px 0 200px;
}
@media (max-width: 767px) {
  .feature {
    padding: 10vw 0 30vw;
  }
}
.feature::before {
  content: "";
  display: inline-block;
  width: 116%;
  height: 509px;
  position: absolute;
  top: -159px;
  left: -12%;
  background: url(../img/top/shape-yellow.svg) center top/100% 100% no-repeat;
}
@media (min-width: 768px) and (max-width: 981px) {
  .feature::before {
    top: -12vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}
@media (max-width: 767px) {
  .feature::before {
    top: -13vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}

.featureContents {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--w) + 10%);
  width: 100%;
  padding-inline: 5%;
  display: grid;
  grid-template: "title text" auto "lead text" 1fr/45% 1fr;
  gap: 0 5%;
  z-index: 1;
}
@media (max-width: 767px) {
  .featureContents {
    grid-template: "title" auto "lead" auto "text" auto/1fr;
  }
}
.featureContents-title {
  grid-area: title;
  margin-bottom: 40px;
  font-size: 2rem;
  font-weight: bold;
}
@media (max-width: 767px) {
  .featureContents-title {
    font-size: 1.25rem;
    margin-bottom: 20px;
  }
}
.featureContents-lead {
  grid-area: lead;
  font-size: 1.875rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .featureContents-lead {
    font-size: 1.25rem;
    margin-bottom: 40px;
  }
}
.featureContents-lead-l {
  font-size: 2.875rem;
}
@media (max-width: 767px) {
  .featureContents-lead-l {
    font-size: 2rem;
  }
}
.featureContents-text {
  grid-area: text;
}
.featureContents-text p {
  line-height: 2.2;
}

.service {
  position: relative;
  background: #fff;
  padding: 50px 0;
}
.service::before {
  content: "";
  display: inline-block;
  width: 116%;
  height: 509px;
  position: absolute;
  top: -159px;
  left: -12%;
  background: url(../img/top/shape-white.svg) center top/100% 100% no-repeat;
}
@media (min-width: 768px) and (max-width: 981px) {
  .service::before {
    top: -12vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}
@media (max-width: 767px) {
  .service::before {
    top: -14vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}
.service::after {
  content: "";
  display: inline-block;
  width: 115%;
  height: 509px;
  position: absolute;
  bottom: -159px;
  left: -12%;
  background: url(../img/top/shape-white-b.svg) center top/100% 100% no-repeat;
}
@media (min-width: 768px) and (max-width: 981px) {
  .service::after {
    bottom: -16vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}
@media (max-width: 767px) {
  .service::after {
    bottom: -14vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}
.service-inner {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--w) + 10%);
  width: 100%;
  padding-inline: 5%;
  z-index: 1;
}
.service-title {
  display: flex;
  justify-content: space-between;
  margin-bottom: 30px;
  font-weight: bold;
}
@media (max-width: 767px) {
  .service-title {
    flex-wrap: wrap;
    gap: 10px;
  }
}
.service-title-main {
  font-size: 2.25rem;
}
@media (max-width: 767px) {
  .service-title-main {
    font-size: 1.25rem;
  }
}
.service-title-en {
  font-size: 2.8125rem;
}
.service-text {
  grid-area: text;
}
.service-text p {
  line-height: 2.2;
}
.service-lead {
  margin-bottom: 60px;
}

.nanimo {
  width: 404px;
  max-width: 100%;
}
.nanimo-url {
  width: 100%;
  text-align: right;
  font-weight: normal;
  margin: 5px 0 20px;
}
.nanimo-title {
  line-height: 1.8;
}

.company {
  position: relative;
  background: #38aaf9;
  margin-bottom: 120px;
  padding: 280px 0 200px;
}
@media (max-width: 767px) {
  .company {
    margin-bottom: 0px;
    padding: 20vw 0 40vw;
  }
}
.company::before {
  content: "";
  display: inline-block;
  width: 116%;
  height: 509px;
  position: absolute;
  bottom: -370px;
  left: -12%;
  background: url(../img/top/shape-white.svg) center top/100% 100% no-repeat;
}
@media (min-width: 768px) and (max-width: 981px) {
  .company::before {
    bottom: -28vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}
@media (max-width: 767px) {
  .company::before {
    bottom: -14vw;
    aspect-ratio: 2.73;
    height: auto;
  }
}

.companyContents {
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--w) + 10%);
  width: 100%;
  padding-inline: 5%;
  display: grid;
  grid-template: "title title" auto "text img" auto "table table" 1fr/55% 1fr;
  gap: 0 5%;
  color: #fff;
}
@media (max-width: 767px) {
  .companyContents {
    grid-template: "title" auto "text" auto "img" auto "table" 1fr/1fr;
  }
}
.companyContents-title {
  grid-area: title;
  margin-bottom: 40px;
  font-size: 2.8125rem;
  font-weight: bold;
}
.companyContents-text {
  grid-area: text;
}
@media (max-width: 767px) {
  .companyContents-text {
    margin-bottom: 40px;
  }
}
.companyContents-text p {
  line-height: 2.2;
}
.companyContents-img {
  grid-area: img;
  text-align: center;
}
@media (max-width: 767px) {
  .companyContents-img {
    margin-bottom: 30px;
  }
}
@media (max-width: 767px) {
  .companyContents-img-pre {
    width: 60%;
    margin-inline: auto;
  }
}
.companyContents-img-cap {
  margin-top: 10px;
}
.companyContents-img-name {
  margin-top: 10px;
}

.companyTable {
  grid-area: table;
  width: 100%;
}
.companyTable tbody td {
  border-color: rgba(255, 255, 255, 0.3607843137);
}
.companyTable tbody th {
  width: 180px;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .companyTable tbody th {
    width: 8em;
  }
}
.companyTable tbody th::after {
  border-color: #fff;
}

.thanksPage {
  height: 100%;
  padding-top: 230px;
}