@charset "UTF-8";
/*
Theme Name: HAS A HEART オリジナルテンプレート
Author: ikuko aoki
Description: HAS A HEART用オリジナルテンプレート
Version: 1.0
*/
/* module
-------------------------------------------------------------- */
html, body, div, span, applet, object, iframe, 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-size: 100%;
  vertical-align: baseline;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

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

td, th {
  vertical-align: middle;
}

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

a:focus {
  outline: none;
}

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

audio, canvas, video {
  display: inline-block;
}

img {
  border: 0;
  -ms-interpolation-mode: bicubic;
}

hr {
  display: block;
  margin: 0;
  border: none;
  border-top: 1px solid;
}

address {
  font-style: normal;
}

/* layout
-------------------------------------------------------------- */
/* setting
-------------------------------------------------------------- */
* {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  font-size: clamp(14px, 1.1111111111vw, 16px);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
  font-style: normal;
}

body,
html {
  margin: 0;
  padding: 0;
}

img {
  max-width: 100%;
  height: auto;
  text-indent: 100%;
  border: none;
  display: block;
  image-rendering: -webkit-optimize-contrast;
}

a {
  color: #000000;
  text-decoration: none;
}

a:hover {
  opacity: 0.7;
  cursor: pointer;
}

li {
  list-style: none;
}

button,
input,
select,
textarea {
  background: none;
  border-radius: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  cursor: pointer;
}

::placeholder {
  color: #bbb;
}

button {
  cursor: pointer;
}

/* layout
-------------------------------------------------------------- */
#container {
  background: url(./images/img_wrap.png);
  background-size: cover;
}

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

.l-mainContents {
  width: 100%;
  margin: 17.6vw auto 0;
  padding: 0 4.2666666667vw;
}
@media only screen and (min-width: 768px) {
  .l-mainContents {
    max-width: 85.7142857143vw;
    margin-top: 4.7142857143vw;
    padding: 0 1.7142857143vw;
  }
}

.contents-01 {
  margin-bottom: 33.3333333333vw;
}
@media only screen and (min-width: 768px) {
  .contents-01 {
    margin-bottom: 8.9285714286vw;
  }
}

.contents-02 {
  margin-bottom: 53.3333333333vw;
}
@media only screen and (min-width: 768px) {
  .contents-02 {
    margin-bottom: 14.2857142857vw;
  }
}

.contents-03 {
  margin-bottom: 40vw;
}
@media only screen and (min-width: 768px) {
  .contents-03 {
    margin-bottom: 10.7142857143vw;
  }
}

.contents-04 {
  margin-bottom: 53.3333333333vw;
}
@media only screen and (min-width: 768px) {
  .contents-04 {
    margin-bottom: 14.2857142857vw;
  }
}

.contents-05 {
  margin-bottom: 53.3333333333vw;
}
@media only screen and (min-width: 768px) {
  .contents-05 {
    margin-bottom: 14.2857142857vw;
  }
}

.contents-06 {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: 13.3333333333vw;
}
@media only screen and (min-width: 768px) {
  .contents-06 {
    margin-bottom: 7.1428571429vw;
  }
}
.contents-06 img {
  transform-origin: center;
}
@media only screen and (max-width: 767px) {
  .contents-06 img {
    width: 250%;
    max-width: initial;
  }
}

/* Header
-------------------------------------------------------------- */
.l-header {
  display: flex;
  width: 100%;
  margin: 0 auto;
  padding: 3.2vw 6.4vw;
}
@media only screen and (min-width: 768px) {
  .l-header {
    padding: 1.7142857143vw 2.2857142857vw;
  }
}
.l-header img {
  display: block;
  width: 100%;
  height: 6.4vw;
}
@media only screen and (min-width: 768px) {
  .l-header img {
    height: 2.5714285714vw;
  }
}

/* Footer
-------------------------------------------------------------- */
.l-footer {
  padding: 2.1333333333vw;
  color: #fff;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .l-footer {
    padding: 0.5714285714vw;
  }
}
.l-footer img {
  display: block;
  width: 100%;
  height: 4.2666666667vw;
}
@media only screen and (min-width: 768px) {
  .l-footer img {
    height: 1.7142857143vw;
  }
}
.l-footer-link {
  margin-bottom: 5.3333333333vw;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .l-footer-link {
    margin-bottom: 1.4285714286vw;
  }
}
.l-footer-link a {
  font-family: "Poppins", sans-serif;
  font-style: normal;
  color: #fff;
  text-decoration: underline;
}

/* compornents
-------------------------------------------------------------- */
/* cta
-------------------------------------------------------------- */
.cta01,
.cta02 {
  position: relative;
}

.cta-btn01 {
  position: absolute;
  width: 67.7333333333vw;
  height: 13.6vw;
  bottom: 8vw;
  left: 0;
  transition: transform 0.3s ease-in-out;
}
@media only screen and (min-width: 768px) {
  .cta-btn01 {
    width: 18.1428571429vw;
    height: 3.6428571429vw;
    bottom: 2.1428571429vw;
  }
}

.cta-btn02 {
  position: absolute;
  width: 138.1333333333vw;
  height: 13.6vw;
  bottom: 7.2vw;
  left: 50%;
  transform: translateX(-50%);
  transition: transform 0.3s ease-in-out;
}
@media only screen and (min-width: 768px) {
  .cta-btn02 {
    width: 37vw;
    height: 3.6428571429vw;
    bottom: 1.9285714286vw;
  }
}

.cta-btn02 img {
  transition: transform 0.3s ease-in-out;
}

.cta-btn01:hover {
  transform: scale(1.03);
}

.cta-btn02 img:hover {
  transform: scale(1.03);
}

/* お問い合わせフォーム
-------------------------------------------------------------- */
.c-contact {
  margin-bottom: 26.6666666667vw;
}
@media only screen and (min-width: 768px) {
  .c-contact {
    margin-bottom: 14.2857142857vw;
  }
}
.c-contact-title {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: 13.3333333333vw;
}
@media only screen and (min-width: 768px) {
  .c-contact-title {
    margin-bottom: 3.5714285714vw;
  }
}
.c-contact-title img {
  transform-origin: center;
}
@media only screen and (max-width: 767px) {
  .c-contact-title img {
    width: 250%;
    max-width: initial;
  }
}
.c-contact-inner {
  padding: 8vw 4.2666666667vw;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(1.6px);
}
@media only screen and (min-width: 768px) {
  .c-contact-inner {
    width: calc(100% - 14.2857142857vw);
    margin: 0 7.1428571429vw;
    padding: 3.5714285714vw 0;
  }
}
.c-contact dl {
  width: 100%;
  margin: 0 auto 5.3333333333vw;
  font-size: 4.2666666667vw;
}
@media only screen and (min-width: 768px) {
  .c-contact dl {
    display: flex;
    align-items: center;
    width: 39.2857142857vw;
    margin-bottom: 1.4285714286vw;
  }
}
.c-contact dt {
  color: #fff;
  font-weight: 700;
  font-family: "Poppins", sans-serif;
  font-style: normal;
}
@media only screen and (max-width: 767px) {
  .c-contact dt {
    margin-bottom: 4.2666666667vw;
  }
}
@media only screen and (min-width: 768px) {
  .c-contact dt {
    flex-shrink: 0;
    width: 10.7142857143vw;
    font-size: 1.1428571429vw;
  }
}
.c-contact dd {
  width: 100%;
  font-size: 4.8vw;
}
@media only screen and (min-width: 768px) {
  .c-contact dd {
    font-size: 1.2857142857vw;
  }
}
.c-contact input[type=text],
.c-contact textarea {
  width: 100%;
  height: 10.6666666667vw;
  padding: 2.1333333333vw 3.2vw;
  background-color: #fff;
  color: #000;
  font-size: 4.8vw;
}
@media only screen and (min-width: 768px) {
  .c-contact input[type=text],
  .c-contact textarea {
    height: 2.8571428571vw;
    padding: 0.5714285714vw 0.8571428571vw;
    font-size: 1.2857142857vw;
  }
}
.c-contact .c-contact-button {
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .c-contact .c-contact-button {
    margin-top: 3.5714285714vw;
  }
}
.c-contact .wpcf7-submit {
  width: 67.2vw;
  height: 13.0666666667vw;
  margin: 0 auto;
}
@media only screen and (min-width: 768px) {
  .c-contact .wpcf7-submit {
    width: 18vw;
    height: 3.5vw;
  }
}
.c-contact-thanks {
  line-height: 2.5;
  color: #fff;
  font-size: 1.4285714286vw;
  text-align: center;
}

.wpcf7-not-valid-tip {
  margin-top: 5px;
  font-size: 12px;
}

.wpcf7-response-output {
  border: none;
  color: #f00;
  text-align: center;
  margin-top: 10px;
}

.submitButton {
  width: 200px;
  height: 40px;
  background-image: url("./images/contactButton02.png");
  background-size: cover;
}

/* プライバシーポリシー
-------------------------------------------------------------- */
.c-privacy {
  margin-bottom: 26.6666666667vw;
}
@media only screen and (min-width: 768px) {
  .c-privacy {
    margin-bottom: 14.2857142857vw;
  }
}
.c-privacy-title {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: 13.3333333333vw;
}
@media only screen and (min-width: 768px) {
  .c-privacy-title {
    margin-bottom: 3.5714285714vw;
  }
}
.c-privacy-title img {
  transform-origin: center;
}
@media only screen and (max-width: 767px) {
  .c-privacy-title img {
    width: 250%;
    max-width: initial;
  }
}
.c-privacy-inner {
  padding: 8vw 4.2666666667vw;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(1.6px);
}
@media only screen and (min-width: 768px) {
  .c-privacy-inner {
    width: calc(100% - 14.2857142857vw);
    margin: 0 7.1428571429vw;
    padding: 3.5714285714vw;
  }
}
.c-privacy dl {
  width: 100%;
  margin: 0 auto 8.5333333333vw;
  color: #fff;
  font-size: 4.2666666667vw;
}
@media only screen and (min-width: 768px) {
  .c-privacy dl {
    margin-bottom: 2.2857142857vw;
    font-size: 1.1428571429vw;
  }
}
.c-privacy dt {
  margin-bottom: 4.2666666667vw;
  font-weight: bold;
}
@media only screen and (min-width: 768px) {
  .c-privacy dt {
    margin-bottom: 1.1428571429vw;
  }
}

.privacypolicy_title {
  padding-bottom: 2.1333333333vw;
  margin-bottom: 4.2666666667vw;
  border-bottom: 1px solid #fff;
  color: #fff;
  font-size: 4.8vw;
  font-weight: bold;
}
@media only screen and (min-width: 768px) {
  .privacypolicy_title {
    padding-bottom: 0.5714285714vw;
    margin-bottom: 1.1428571429vw;
    font-size: 1.2857142857vw;
  }
}
.privacypolicy_item {
  margin-bottom: 8.5333333333vw;
  color: #fff;
  line-height: 1.5;
}
@media only screen and (min-width: 768px) {
  .privacypolicy_item {
    margin-bottom: 2.2857142857vw;
  }
}
.privacypolicy_item ul {
  list-style: none;
  padding: 0;
  margin: 40px 0 0;
}
.privacypolicy_item ul li::before {
  content: "・";
  display: inline-block;
}
.privacypolicy_sub_title {
  margin: 6.4vw 0 4.2666666667vw;
  font-weight: bold;
}
@media only screen and (min-width: 768px) {
  .privacypolicy_sub_title {
    margin: 1.7142857143vw 0 1.1428571429vw;
  }
}
.privacypolicy_text + .privacypolicy_text {
  margin-top: 8.5333333333vw;
}
@media only screen and (min-width: 768px) {
  .privacypolicy_text + .privacypolicy_text {
    margin-top: 2.2857142857vw;
  }
}
.privacypolicy_table {
  width: 100%;
  margin-bottom: 8.5333333333vw;
}
@media only screen and (min-width: 768px) {
  .privacypolicy_table {
    margin-bottom: 2.2857142857vw;
  }
}
.privacypolicy_table table {
  border: 1px solid #fff;
}
.privacypolicy_table table thead th {
  border: 1px solid #fff;
  padding: 2.1333333333vw 4vw;
  text-align: center;
}
.privacypolicy_table table thead th:not(:first-child) {
  width: 45%;
}
@media only screen and (min-width: 768px) {
  .privacypolicy_table table thead th {
    padding: 0.5714285714vw 1.0714285714vw;
  }
}
.privacypolicy_table table tbody td {
  padding: 2.1333333333vw 4vw;
  border: 1px solid #fff;
}
@media only screen and (min-width: 768px) {
  .privacypolicy_table table tbody td {
    padding: 0.5714285714vw 1.0714285714vw;
  }
  .privacypolicy_table table tbody td:first-child {
    vertical-align: middle;
  }
}

/* 基本的な設定
-------------------------------------------------------------- */
.Uppercase {
  text-transform: uppercase;
}