/*
  Theme Name: AH-Corporation
  Author: Shion.S
  Author URI: https://ah-corporation.jp/
  Description: AH-Corporation のオリジナルテーマです
  Version: 1.0.0
  Text Domain: 
*/


/* common
-------------------------------------------------- */
.half_box > * {
  width: 50%;
}
.try_box > * {
  width: 33%;
}


/* element
-------------------------------------------------- */
html {
  font-family: var( --font-serif-jp );
	font-size: 62.5%;
	-webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
	color: #333;
	font-size: 1.6rem;
  font-weight: 500;
  border-top: 2rem solid var( --main-color );
  /* background: url( './assets/imgs/common/bg.png' ) fixed; */
}

a { transition: .6s; }
a:hover { opacity: .5; }
a, a:hover { text-decoration: none; }

ul { list-style: none; }
img {
	max-width: 100%;
	vertical-align: bottom;
}


/* flex-box
-------------------------------------------------- */
.dp_f {
  display: flex;
  display: -ms-flexbox;
  display: -webkit-flex;
}


/* nav
-------------------------------------------------- */
#ac_menu {
  display: none;
}
#ac_menu+label,
#ac_menu+label span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}
#ac_menu+label {
  position: fixed;
  width: 40px;
  height: 30px;
  top: 30px;
  right: 30px;
  background: none;
  border: none;
  appearance: none;
  cursor: pointer;
  z-index: 9;
}
#ac_menu+label span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #777;
  border-radius: 3px;
}
#ac_menu+label span:nth-of-type(1) {
  top: 0;
}
#ac_menu+label span:nth-of-type(2) {
  top: 14px;
}
#ac_menu+label span:nth-of-type(3) {
  bottom: 0;
}

#ac_menu.is_active+label span:nth-of-type(1) {
  transform: translateY( 9px ) rotate( -45deg );
}
#ac_menu.is_active+label span:nth-of-type(2) {
  left: 50%;
  opacity: 0;
  animation: active_menu_bar .8s forwards;
}
@keyframes active_menu_bar {
  100% {
    height: 0;
  }
}
#ac_menu.is_active+label span:nth-of-type(3) {
  transform: translateY( -18px ) rotate( 45deg );
}
#ac_menu:checked ~ .nav_list_full {
  right: 0;
}
.nav_list_full {
  position: fixed;
  padding: 5rem;
  top: 0;
  right: -120%;
  width: 30%;
  height: 100vh;
  background:#333;
  transition: all 0.6s;
  box-shadow: 0px 3px 15px rgba( 0, 0, 0, 0.4 );
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 8;
}

.nav_list_full {
  position: fixed;
  padding: 5rem;
  top: 0;
  right: -120%;
  width: 30%;
  height: 100vh;
  transition: all 0.6s;
  background-color: #333;
  box-shadow: 0px 3px 15px rgba( 0, 0, 0, 0.4 );
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 8;
}


/* header
-------------------------------------------------- */


/* main
-------------------------------------------------- */
.ttl_main {
  position: relative;
  margin: 4rem 3rem;
  font-size: 2.4rem;
  font-family: var( --font-type-main );
  font-weight: 500;
  text-align: center;
  letter-spacing: .1em;
  z-index: 2;
}
.ttl_main > span {
  position: absolute;
  top: -15%;
  left: 50%;
  transform: translate( -50%, -50% );
  font-size: 6rem;
  font-family: var( --font-anta );
  font-weight: 600;
  letter-spacing: 0em;
  opacity: .15;
  z-index: 1;
}

.main_visual {
  display: flex;
  margin: 5rem auto 0;
  height: 800px;
}
/*.main_visual > .logo,*/ .main_visual > .list_nav {
  width: 10%;
}

.main_visual .main_catch_txt {
  position: absolute;
  top: 50%;
  right: 9rem;
  transform: translateY( -50% );
  color: #fff;
  z-index: 3;
}
.main_visual .main_catch_txt > p:first-of-type {
  margin-bottom: 1.5rem;
  font-family: var( --font-type-main );
  font-weight: 400;
  font-size: 3.6rem;
  letter-spacing: .2em;
}
.main_visual .main_catch_txt > p:first-of-type br {
  display: none;
}
.main_visual .main_catch_txt > p:last-of-type {
  padding-left: 3rem;
  font-family: var( --font-zen-maru-gothic );
  font-size: 2.1rem;
  line-height: 1.6;
  letter-spacing: .1em;
}

.main_visual > .main_slider {
  position: relative;
  width: 90%;
  height: 100%;
  background-image: url( './assets/imgs/top/main_slider_img01.jpg' );
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.main_visual > .main_slider::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba( 0, 0, 0, .2 );
  background-image: radial-gradient( #111 30%, transparent 31%), radial-gradient(#111 30%, transparent 31% );
  background-size: 4px 4px;
  background-position: 0 0, 2px 2px;
  z-index: 1;
}

.main_slider > .logo img {
  margin: 3rem 2rem;
  width: 300px;
  height: auto;
}
.main_slider > .logo a {
  position: relative;
  display: block;
  width: fit-content;
  z-index: 9;
}

.main_visual > .list_nav {
  padding-bottom: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.main_visual > .list_nav > li:not(:last-child) {
  margin-bottom: 5rem;
}
.main_visual > .list_nav > li:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin-bottom: auto;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  font-family: var( --font-anta );
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.2;
  color: #fff;
  background-color: var( --main-color );
}
.main_visual > .list_nav > li:first-child::before {
  display: block;
  content: '\f550';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}

.main_visual > .list_nav > li:not(:first-child) a {
  writing-mode: vertical-rl;
  font-family: var( --font-type-main );
  font-size: 1.8rem;
  font-weight: 500;
  color: var( --main-color );
  letter-spacing: 5px;
}
.main_visual > .list_nav > li:not(:first-child) a:hover {
  color: var( --sub-color );
  opacity: 1;
}

.main_visual > .list_nav > li:last-of-type a {
  padding: 3rem .5rem;
  color: #fff;
  background-color: var( --sub-color );
  border-radius: 50vh;
}
.main_visual > .list_nav > li:last-of-type a:hover {
  color: #fff;
  background-color: var( --main-color );
}

.production_box {
  padding: 5rem 2rem;
}

.flow_box {
  padding: 5rem 2rem;
  /* background-color: rgba( 243, 243, 242, 1 ); */
  background-color: #fbfaf5;
}

.contact_box {
  padding: 5rem 2rem;
  background-color: var( --main-color );
}
.contact_box h2.ttl_main {
  color: #fff;
}


.list_production {
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto 10rem;
  padding: 0 2rem;
  gap: 2%;
  max-width: 1280px;
}
.list_production > li {
  cursor: pointer;
  margin-bottom: 2%;
  width: 32%;
}
.list_production > li div {
  position: relative;
  padding: 3rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: url( './assets/imgs/top/main_slider_img01.jpg' );
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.list_production > li:nth-child(1) div { background-image: url( './assets/imgs/top/product_img01.jpg' ); }
.list_production > li:nth-child(2) div { background-image: url( './assets/imgs/top/product_img02.jpg' ); }
.list_production > li:nth-child(3) div:first-of-type { background-image: url( './assets/imgs/top/product_img03.jpg' ); }
.list_production > li:nth-child(3) div:last-of-type { background-image: url( './assets/imgs/top/product_img04.jpg' ); }
.list_production > li:nth-child(4) div { background-image: url( './assets/imgs/top/product_img05.jpg' ); }
.list_production > li:nth-child(5) div { background-image: url( './assets/imgs/top/product_img06.jpg' ); }

.list_production > li div::before, .list_production > li div::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: all ease .6s;
}
.list_production > li div::before {
  backdrop-filter: grayscale(1);
  z-index: 1;
}
.list_production > li div::after {
  background-color: rgba( 0, 0, 0, .2 );
  background-image: radial-gradient( #111 30%, transparent 31%), radial-gradient(#111 30%, transparent 31% );
  background-size: 4px 4px;
  background-position: 0 0, 2px 2px;
  opacity: .8;
  z-index: 2;
}
.list_production > li div:hover::before {
  backdrop-filter: grayscale(0);
}
.list_production > li:nth-child(1) div,
.list_production > li:nth-child(2) div {
  height: 100%;
}
.list_production > li:nth-child(3) {
  flex-direction: column;
}
.list_production > li:nth-child(3) div {
  min-height: 250px;
}
.list_production > li:nth-child(3) div:first-of-type {
  margin-bottom: 6%;
}

.list_production > li:nth-child(4),
.list_production > li:nth-child(5) {
  margin-bottom: 0;
  width: 49%;
}
.list_production > li:nth-child(4) div,
.list_production > li:nth-child(5) div {
  min-height: 230px;
}
.list_production > li h3 {
  position: relative;
  color: #fff;
  font-size: 2rem;
  font-family: var( --font-type-main );
  font-weight: 500;
  text-align: center;
  z-index: 3;
}
.list_production > li h3 > span {
  display: block;
  font-family: var( --font-anta );
  font-weight: 600;
  font-size: 3rem;
}


.company_box {
  padding: 5rem 2rem;
  background-color: rgba( 243, 243, 242, 1 );
}

.tbl_company table {
  margin: 3rem auto;
  max-width: 980px;
  width: 100%;
}


.tbl_company table tr td {
  padding: 1.5rem;
  font-size: 1.8rem;
  border-bottom: 1px dashed #333;
}
.tbl_company table tr td:first-of-type {
  width: 20%;
  font-weight: bold;
}
.tbl_company table tr td:last-of-type {
  width: 80%;
}

/* モーダル - modal
-------------------------------------------------- */
/* モーダルと背景の指定 */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  padding: 10rem 2rem;
  width: 100%;
  height: 100%;
  text-align: center;
  background: rgba( 0, 0, 0, 50% );
  overflow: auto;
  opacity: 0;
  visibility: hidden;
  transition: .3s;
  box-sizing: border-box;
  z-index: 999;
}

/* モーダルの擬似要素の指定 */
.modal:before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  margin-left: -0.2em;
}

/* クラスが追加された時の指定 */
.modal.is-active {
  opacity: 1;
  visibility: visible;
}

/* モーダル内側の指定 */
.modal-container {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  max-width: 1080px;
  width: 100%;
}

/* モーダルを閉じるボタンの指定 */
.modal-close {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: -20px;
  right: -20px;
  width: 40px;
  height: 40px;
  color: #fff;
  background: var( --main-color );
  border-radius: 50%;
  cursor: pointer;
  z-index: 1;
}

/* モーダルのコンテンツ部分の指定 */
.modal-content {
  padding: 5rem;
  /* background-image: url( './assets/imgs/washi.jpg' ); */
  /* background-repeat: repeat;
  background-size: contain; */
  background-color: #fff;
  text-align: center;
  line-height: 1.8;
}

/* モーダルのコンテンツ部分のテキストの指定 */
.modal-content > .txt_contents > p {
  margin: 1em 0;
  color: #333;
  text-align: left !important;
}


.modal-content > figure.wp-block-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
}
.modal-content > figure.wp-block-gallery > figure {
  margin-bottom: 2%;
  width: 32%;
}
.modal-content > figure.wp-block-gallery > figure img {
  height: 100%;
  object-fit: cover;
}

.flow_list {
  margin: 3rem auto;
  max-width: 1280px;
  display: flex;
  justify-content: space-between;
}
.flow_list > li {
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 2rem 2rem 5rem;
  width: 32%;
  background-color: #fff;
}
.flow_list > li h3 {
  margin-bottom: .5rem;
  font-family: var( --font-anta );
  font-size: 3.6rem;
}
.flow_list > li h3 span {
  margin-left: 1rem;
  font-size: 5rem;
  color: var( --sub-color );
}
.flow_list > li img {
  height: 90px;
}
.flow_list > li p {
  margin-top: 3rem;
  text-align: center;
}

.flow_list_other {
  display: flex;
  margin: 0 auto 3rem;
  padding: 2rem;
  max-width: 1280px;
  background-color: #fff;
}
.flow_list_other > li {
  padding: 2rem 3rem;
  width: 50%;
}
.flow_list_other > li:not(:last-child) {
  border-right: 1px solid #ddd;
}
.flow_list_other > li:first-child h3 {
  margin-bottom: 1rem;
  padding: 0 1rem 1rem;
  font-family: var( --font-type-main );
  font-weight: 400;
  font-size: 2.1rem;
  border-bottom: 1px solid #333;
}
.flow_list_other > li:first-child p {
  padding: 1rem;
  line-height: 2;
}
.flow_list_other > li:first-child p span {
  background: linear-gradient( transparent 60%, #fffd9d 40% );
}
.flow_list_other > li:first-child h3::before {
  content: '\f1ec';
  font-weight: 900;
  font-family: 'Font Awesome 5 Free';
  margin-right: 1rem;
  color: var( --main-color );
}
.flow_list_other > li:last-child {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.flow_list_other > li:last-child p {
  color: #00B900;
  font-family: var( --font-type-main );
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 1.25;
}
.flow_list_other > li:last-child p span {
  color: #c0c6c9;
  font-family: var( --font-serif-jp );
  font-size: 1.4rem;
}
.flow_list_other > li:last-child img {
  width: 150px;
}


.contact_info {
  color: #fff;
  text-align: center;
}
.contact_info small {
  display: block;
  margin: 0 auto;
  width: fit-content;
  color: #fff;
  border-bottom: 1px solid #fff;
}
.contact_info small span {
  color: var( --sub-color );
}

.ah_contact_form {
  margin: 5rem auto;
  display: flex;
  flex-wrap: wrap;
  max-width: 980px;
}
.ah_contact_form dt {
  margin-bottom: 1rem;
  padding: 1rem 1.5rem;
  width: 25%;
  color: #fff;
}
.ah_contact_form dt i {
  margin-right: .5rem;
  color: var( --sub-color );
}
.ah_contact_form dd {
  margin-bottom: 1rem;
  width: 75%;
}
.ah_contact_form.h-adr dt:last-of-type, .ah_contact_form.h-adr dd:last-of-type {
  margin-top: 2rem;
}
.ah_contact_form dd input[type='text'], .ah_contact_form dd input[type='number'],
.ah_contact_form dd input[type='tel'], .ah_contact_form dd input[type='email'],
.ah_contact_form dd input[type='date'], .ah_contact_form dd textarea {
  padding: 1rem 1.5rem;
  width: 100%;
  font-size: 1.6rem;
  color: #fff;
  background-color: transparent;
  border: none;
  border-bottom: 1px solid #fff;
  transition: all ease .6s;
}
.ah_contact_form dd textarea {
  min-height: 300px;
  transition: none;
}
.ah_contact_form dd input:focus, .ah_contact_form dd textarea:focus {
  outline: none;
  background-color: rgba( 255, 255, 255, .1 );
}
.ah_contact_form dd input::placeholder, .ah_contact_form dd textarea::placeholder {
  color: rgba( 255, 255, 255, .6 );
}
.ah_contact_form dd textarea {
  resize: vertical;
}

.wpcf7-form-control-wrap .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
}
.wpcf7-form-control-wrap .wpcf7-checkbox > span {
  margin-left: 0;
  width: 33.3%;
}
.wpcf7-form-control-wrap .wpcf7-checkbox > span .wpcf7-list-item-label {
  display: block;
  cursor: pointer;
  padding: 1rem;
  text-align: center;
  color: rgba( 173, 173, 173, 1 );
  background-color: rgba( 220, 220, 220, 1 );
  border: 1px solid rgba( 173, 173, 173, 1 );
  transition: all ease .3s;
}
.wpcf7-form-control-wrap .wpcf7-checkbox > span .wpcf7-list-item-label::before {
  content: '\f058';
  margin-right: .5rem;
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}
.wpcf7-form-control-wrap .wpcf7-checkbox > span input {
  display: none;
}
.wpcf7-form-control-wrap .wpcf7-checkbox > span input:checked + .wpcf7-list-item-label {
  color: var( --main-color );
  background-color: var( --sub-color );
}


.btn_submit {
  position: relative;
  cursor: pointer;
  display: flex;
  margin: 0 auto;
  padding: 1rem 10rem;
  color: var( --main-color );
  font-size: 1.8rem;
  font-weight: 900;
  background-color: #fff;
  border-radius: 50vh;
  border: none;
  transition: all ease .6s;
}
.btn_submit:hover {
  background-color: var( --sub-color );
}

.wpcf7-spinner {
  margin: 2rem auto;
  display: block;
}

.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  color: #fff;
  text-align: center;
  border-radius: 50vh;
}
.wpcf7 form.sent .wpcf7-response-output {
  background-color: #46b450;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  background-color: #ffb900;
}

.salon_course, .event_course,
.other_course, .salon_location,
.event_location, .other_location {
  display: none;
}

.salon_course.is_active, .event_course.is_active,
.other_course.is_active, .salon_location.is_active,
.event_location.is_active, .other_location.is_active {
  display: block;
}

.wpcf7 form .wpcf7-response-output {
  margin: 0 auto;
  padding: 0 2rem;
  max-width: 1080px;
}



.contact_options {
  margin: 0 auto;
  padding: 1rem 2rem;
  max-width: 980px;
  text-align: center;
  color: #fff;
  border-bottom: 1px dashed #fff;
}
.contact_options span {
  color: var( --sub-color );
}


/* footer
-------------------------------------------------- */
.copy {
  padding: 1rem;
  width: 100%;
  text-align: center;
  background-color: #333;
}
.copy a {
  font-family: var( --font-anta );
  font-size: 1.4rem;
  font-weight: bold;
  color: #fff;
}
.copy a::before {
  margin-right: .5rem;
  content: '\f1f9';
  font-family: 'Font Awesome 5 Free';
  font-weight: 500;
}

