/* ================================
top
================================ */


/* ================================
WP / Admin bar 設定
================================ */
.ly_wrapper {
  background-color: oklch(98% 0.006 70);
  min-width: calc(900 / 16 * 1rem);
}
.ly_header .header_height_with_adminbar {
    min-height: var(--header_height_with_adminbar, 0px);
  }
.ly_header .header_inner {
    top: var(--wpadminbar_height, 0px);
    min-height: calc(50 / 16 * 1rem);
    padding: 0 calc(20 / 16 * 1rem);
  }
.ly_header .header_hamburger {
    top: var(--wpadminbar_height, 0px);
  }

/* SP調整 ------------------ */
@media screen and (max-width:781.999px) {
  .ly_wrapper {
    min-width: calc(320 / 16 * 1rem);
  }
  .ly_footer #wpadminbar {
    position: fixed;
    top: 0;
  }
}


/* ================================
header_hamburger
================================ */
.header_hamburger {
  display: block;
  position: fixed;
  top: 0;
  right: 0;
  width: calc(50 / 16 * 1rem);
  height: calc(50 / 16 * 1rem);
  border: none;
  background: var(--color_base);
  cursor: pointer;
  z-index: 999;
  outline-offset: calc(-2 / 16 * 1rem);
  -webkit-tap-highlight-color: transparent;
}
.header_hamburger_line {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  width: calc(30 / 16 * 1rem);
  height: calc(2 / 16 * 1rem);
  margin: auto;
  background-color: #fff;
  transition: transform .3s;
}
.header_hamburger_line:nth-of-type(1) {
  transform: translateY(calc(-6 / 16 * 1rem));
}
.header_hamburger_line:nth-of-type(2) {
  transform: translateY(calc(6 / 16 * 1rem));
}
.is_menu_open .header_hamburger_line {
  transform-origin: center center;
}
.is_menu_open [data-menu-open] .header_hamburger_line:nth-of-type(1) {
  transform: translateY(0px) rotate(45deg);
}
.is_menu_open [data-menu-open] .header_hamburger_line:nth-of-type(2) {
  transform: translateY(0px) rotate(-45deg);
}
.header_menu[open] .header_hamburger_line:nth-of-type(1) {
  animation: menuOpenLeft 0.3s ease forwards;
}
.header_menu[open] .header_hamburger_line:nth-of-type(2) {
  animation: menuOpenRight 0.3s ease forwards;
}
@keyframes menuOpenLeft {
  from { transform: translateY(calc(-6 / 16 * 1rem)); }
  to { transform: translateY(0px) rotate(45deg); }
}
@keyframes menuOpenRight {
  from { transform: translateY(calc(6 / 16 * 1rem)); }
  to { transform: translateY(0px) rotate(-45deg); }
}


/* ===============================
header_menu
=============================== */
[data-menu]::backdrop {
  display: none;
}
.header_menu {
  position: fixed;
  inset: 0;
  padding: 0 calc(15 / 16 * 1rem) calc(80 / 16 * 1rem);
  background-color: oklch(88% 0.0086 67);
  transition: opacity 0.3s ease;
  z-index: 1000;
  opacity: 0;
}
[data-menu][open] .header_hamburger {
  z-index: 1100;
}
[data-menu][open].is_visible {
  opacity: 1;
  pointer-events: auto;
}
body.is_menu_animation {
  padding-right: var(--scrollbar-width);
}
.header_nav_lists {
  width: fit-content;
  margin: 0 auto;
  padding: calc(100 / 16 * 1rem) 0 calc(40 / 16 * 1rem);
  line-height: 2;
  font-size: calc(18 / 16 * 1rem);
}


/* ===============================
form wrap
=============================== */
.form_wrap {
  max-width: calc(860 / 16 * 1rem);
  margin: 0 auto;
  padding: 0 0 calc(100 / 16 * 1rem);
}
.form_contents {
  margin-bottom: calc(40 / 16 * 1rem);
}
.form_item {
	display: flex;
	align-items: flex-start;
  padding: calc(20 / 16 * 1rem) 0;
}
.form_cat {
  position: relative;
	width: calc(210 / 16 * 1rem);
  margin-right: calc(50 / 16 * 1rem);
  padding: calc(9 / 16 * 1rem) calc(55 / 16 * 1rem) 0 0;
}
.form_required,
.form_optional {
  position: absolute;
  top: calc(11 / 16 * 1rem);
  right: 0;
  font-size: calc(13 / 16 * 1rem);
  line-height: 1.6;
  padding: 1px calc(8 / 16 * 1rem);
  text-align: center;
  border-radius: calc(3 / 16 * 1rem);
  letter-spacing: 0;
}
.form_required {
  background-color: #ba2102;
  color: #fff;
  font-weight: 700;
}
.form_optional {
  background-color: #e7dbd0;
}
.form_input {
	flex: 1;
  min-width: 0;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .form_wrap {
    max-width: initial;
    margin: 0;
    padding: 0 4.6vw calc(50 / 16 * 1rem);
    font-size: calc(16 / 16 * 1rem);
  }
  .form_item {
    display: block;
    padding: .3em 0 .5em;
  }
  .form_cat {
    position: relative;
    width: auto;
    margin: 0;
    padding: calc(10 / 16 * 1rem) 0 calc(5 / 16 * 1rem) calc(48 / 16 * 1rem);
    font-weight: bold;
  }
  .form_required,
  .form_optional {
    position: absolute;
    top: calc(14 / 16 * 1rem);
    left: 0;
    right: auto;
    padding: 1px calc(6 / 16 * 1rem) 0;
    font-size: calc(13 / 16 * 1rem);
    font-weight: normal;
  }
}


/* ===============================
ContactForm7 form_privacy
=============================== */
.form_privacy_text {
  margin-bottom: .5em;
  text-align: center;
}
.form_privacy_text a {
    text-decoration: underline;
  }
.form_privacy_button {
  width: fit-content;
  margin: 0 auto calc(30 / 16 * 1rem);
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .form_privacy_text {
    margin-bottom: 0;
  }
  .form_privacy_button {
    margin: calc(10 / 16 * 1rem) auto calc(15 / 16 * 1rem);
  }
}


/* ===============================
SSGform submit
=============================== */
.form_submit {
  position: relative;
  width: fit-content;
  margin: 0 auto;
}
.form_submit .form_button_submit {
  min-width: calc(300 / 16 * 1rem);
  min-height: calc(50 / 16 * 1rem);
  color: #fff;
  text-align: center;
}
.form_submit .form_button_submit:disabled {
  opacity: .3;
  pointer-events: none;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .form_submit .form_button_submit {
    min-width: calc(220 / 16 * 1rem);
  }
}


/* ===============================
Other
=============================== */

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .form_input .wpcf7-file {
    margin-top: calc(10 / 16 * 1rem);
  }
}


/* ===============================
pg / parts
=============================== */
.pg_header {
  margin: 0 auto;
  padding: calc(120 / 16 * 1rem) 0 calc(50 / 16 * 1rem);
  text-align: center;
  max-width: calc(870 / 16 * 1rem);
}
.pg_title {
  margin-bottom: 0.4em;
  font-size: calc(28 / 16 * 1rem);
  font-weight: 700;
}
.pg_text_link {
  text-align: right;
}
.pg_description {
  padding: calc(130 / 16 * 1rem) 2em;
  font-size: calc(15 / 16 * 1rem);
  box-shadow: inset 0 calc(6 / 16 * 1rem) calc(9 / 16 * 1rem) calc(-10 / 16 * 1rem) oklch(55% 0.1 240);
  background-color: oklch(93% 0.007 220);
  color: oklch(31.949% 0.0106 285.743);
}
.pg_description a {
    text-decoration: underline;
  }
.pg_description_inner {
  max-width: calc(740 / 16 * 1rem);
  margin: 0 auto;
  padding-bottom: 1em;
  letter-spacing: 0.05em;
}
.pg_description_item:not(:first-child) {
  padding-top: 1em;
}
.pg_description_item p {
  padding: 0 1em;
}
.pg_cat {
  margin-bottom: 1em;
  padding: .2em 1em;
  background-color: oklch(55% 0.1 240);
  border-radius: calc(3 / 16 * 1rem);
  color: #fff;
  font-size: calc(14 / 16 * 1rem);
  font-weight: bold;
}
.pg_cat_sub {
  margin: 1.5em 1em 0.8em;
  border-bottom: 1px solid oklch(80% 0.00009 220);
  font-size: calc(14 / 16 * 1rem);
  font-weight: bold;
}
.pg_cat_sub:first-child {
  margin-top: 1em;
}
.pg_list {
  list-style-type: inherit;
  margin-bottom: 1em;
  margin-left: 1em;
  padding: 0 1em;
}
.pg_list.__nolist {
    list-style-type: none;
    margin-left: 0;
  }
.pg_postcode {
  max-width: 10em;
}
.pg_img_1 {
  display: block;
  margin-top: 2em;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_header {
    padding: calc(30 / 16 * 1rem) 4.6vw calc(20 / 16 * 1rem);
  }
  .pg_title {
    margin-bottom: 0;
    font-size: calc(20 / 16 * 1rem);
    text-align: left;
  }
  .pg_description {
    overflow: hidden;
    width: 100%;
    padding: calc(60 / 16 * 1rem) 4.6vw;
  }
  main {
    width: 100%;
    overflow: hidden;
  }
}