@charset "UTF-8";
/*!
Theme Name: sanwakiki
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: LICENSE
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

stylecreates is based on Underscores https://underscores.me/, (C) 2012-2017 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/**
 * ViewportScale v0.2.2
 * Copyright (c) 2018 Kite
 * MIT License
 */
/*
 .hoge {
  z-index: map-get($layer, "header");
}
*/
* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html,
body,
div,
span,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  background: transparent;
  border: 0;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html{
  overflow-x: hidden;
}

body {
  line-height: 1;
}

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

ul {
  list-style: none;
}

input,
button,
select,
textarea {
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  margin: 0;
  padding: 0;
}

a {
  background: transparent;
  color: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  text-decoration: none;
  vertical-align: baseline;
}

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

input,
select {
  vertical-align: middle;
}

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

main {
  display: block;
}

:root {
  --space-xxxs: .4rem;
  --space-xxs: 1rem;
  --space-xs: 1.6rem;
  --space-sm: 2rem;
  --space-md: 2.4rem;
  --space-lg: 3.2rem;
  --space-xl: 4rem;
  --space-xxl: 8rem;
  --space-xxxl: 10rem;
  --space-10: .8rem;
  --space-20: 1.2rem;
  --space-30: 2rem;
  --space-40: 3.2rem;
  --space-50: 4rem;
  --space-60: 5rem;
  --space-70: 6rem;
  --space-80: 7rem;
  --space-90: 8rem;
  --space-100: 8rem;
  --space-200: 10rem;
  --space-240: 12rem;
  --space-8: .6rem;
  --space-12: .7rem;
  --space-14: .8rem;
  --space-16: 1rem;
  --space-24: 1.6rem;
  --space-32: 2.4rem;
  --space-36: 2.8rem;
  --space-44: 3.6rem;
  --space-48: 4rem;
  --space-56: 4.8rem;
  --space-64: 5.4rem;
  --space-72: 6.4rem;
}
@media screen and (min-width: 768px) {
  :root {
    --space-xxxs: .8rem;
    --space-xxs: 1.6rem;
    --space-xs: 2.4rem;
    --space-sm: 3.2rem;
    --space-md: 4rem;
    --space-lg: 5.6rem;
    --space-xl: 6.4rem;
    --space-xxl: 10rem;
    --space-xxxl: 12.8rem;
    --space-10: 1rem;
    --space-20: 2rem;
    --space-30: 3rem;
    --space-36: 3.6rem;
    --space-40: 4rem;
    --space-50: 5rem;
    --space-60: 6rem;
    --space-70: 7rem;
    --space-80: 8rem;
    --space-90: 9rem;
    --space-100: 10rem;
    --space-200: 20rem;
    --space-240: 24rem;
    --space-8: .8rem;
    --space-12: 1.2rem;
    --space-14: 1.4rem;
    --space-16: 1.6rem;
    --space-24: 2.4rem;
    --space-32: 3.2rem;
    --space-40: 4rem;
    --space-44: 4.4rem;
    --space-48: 4.8rem;
    --space-56: 5.6rem;
    --space-64: 6.4rem;
    --space-72: 7.2rem;
  }
}

@font-face {
  font-display: swap;
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: url("assets/fonts/webfonts/noto-sans-jp-v52-japanese-regular.woff2") format("woff2");
}
/* noto-sans-jp-700 - japanese */
@font-face {
  font-display: swap;
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  src: url("assets/fonts/webfonts/noto-sans-jp-v52-japanese-700.woff2") format("woff2");
}
html {
  color: #121212;
  font-size: 62.5%;
}

body:not(br) {
  color: #121212;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.8rem;
  font-stretch: normal;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-height: 1.71;
}
@media screen and (min-width: 768px) {
  body:not(br) {
    line-height: 1.75;
  }
}

.l-content {
  margin-left: auto;
  margin-right: auto;
  max-width: 1168px;
  padding-left: 1.6rem;
  padding-right: 1.6rem;
  width: 100%;
}
/*@media screen and (min-width: 992px) {
  .l-content {
    padding-left: 5rem;
    padding-right: 5rem;
  }
}*/
.l-content--sm {
  --content-width: 856px;
}
.l-content--lg {
  --content-width: 1044px;
}
.l-content--has-column {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-bottom: 6.4rem;
}
@media screen and (min-width: 768px) {
  .l-content--has-column {
    flex-direction: row;
    padding-bottom: 10rem;
  }
}

.l-content__main.l-main {
  flex: 1;
  margin-top: 0;
}

.l-content__side {
  flex: 0 0 min(272px, 24%);
  padding-top: 6.4rem;
}
@media screen and (min-width: 768px) {
  .l-content__side {
    margin-left: 7%;
    padding-top: 0;
  }
}


/* =========================================================
   ヘッダーエリア
========================================================= */
.l-header {
  background: rgba(255, 255, 255, 0.6);
  height: 64px;
  position: fixed;
  transition-duration: 0.4s;
  width: 100%;
  z-index: 120;
}
@media screen and (min-width: 1236px) {
  .l-header {
    height: 80px;
  }
}

.l-header__inner {
  align-items: center;
  column-gap: 2.4rem;
  display: flex;
  height: 100%;
  justify-content: space-between;
  padding-left: 1.6rem;
}
@media screen and (min-width: 992px) {
  .l-header__inner {
    padding-left: 5rem;
  }
}

.l-header__logo {
  width: 140px;
}
@media screen and (min-width: 768px) {
  .l-header__logo {
    width: 168px;
  }
}
.l-header__logo img {
  display: block;
  width: 156px;
  height: auto;
  max-width: 100%;
}

.l-header__navs {
  display: none;
}
@media screen and (min-width: 1236px) {
  .l-header__navs {
    display: flex;
    flex-direction: column;
    row-gap: 1.2rem;
  }
}

.c-drawer {
  background: #fff;
  bottom: 0;
  display: none;
  height: 100%;
  overflow-y: scroll;
  padding: 8.6rem 0;
  position: fixed;
  right: 0;
  width: 100%;
  z-index: 40;
}
.c-drawer__list {
  display: flex;
  flex-wrap: wrap;
}
.c-drawer__item {
  align-items: center;
  display: flex;
  flex-direction: column;
  font-size: 1.8rem;
  font-weight: bold;
  padding: 1rem 1rem;
  width: 100%;
}
.c-drawer__item-title {
  display: block;
  padding-bottom: 0.8rem;
}
.c-drawer__child-list {
  margin: -0.6rem -1rem;
  padding-top: 0.8rem;
}
.c-drawer__child-item {
  font-size: max(1.2rem, min(1.0113207547rem + 0.3144654088vw, 1.4rem));
  font-size: clamp(1.2rem, 1.0113207547rem + 0.3144654088vw, 1.4rem);
  font-weight: normal;
  padding: 0.6rem 1rem;
}
.c-drawer .c-sns-nav {
  justify-content: center;
  padding-top: 4rem;
}
.c-drawer__item .service-tab-nav a{
    display: grid;
    font-size: 1.6rem;
    font-weight: normal;
}

.c-mobile-nav {
  bottom: 0;
  display: flex;
  height: 60px;
  justify-content: space-between;
  left: 0;
  position: fixed;
  width: 100%;
  z-index: 30;
}
@media screen and (min-width: 1236px) {
  .c-mobile-nav {
    display: none !important;
  }
}

.c-mobile-nav__tab {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-weight: bold;
  gap: 0.8rem;
  height: 100%;
  justify-content: center;
  padding: 0.4rem;
}
.c-mobile-nav__tab--phone {
  background-color: #1D9688;
  color: #fff;
  flex: 1 0 50%;
  font-size: 1.8rem;
  line-height: 1.2;
}
.c-mobile-nav__tab--contact {
  background-color: #fff;
  color: #1D9688;
  flex: 1 0 50%;
  font-size: 1.6rem;
}
.c-mobile-nav__tab i {
  font-size: 2rem;
}

@media screen and (min-width: 1236px) {
  .c-gnav {
    align-items: center;
    column-gap: 2.4rem;
    display: flex;
    height: 100%;
  }
}

.c-gnav__list {
  display: flex;
  gap: 3.2rem;
}

.c-gnav__item > a {
  font-size: 1.6rem;
  font-weight: bold;
}

.c-gnav__item a {
  color: #000;
  text-decoration: none;
  transition: color 0.3s ease;
}

.c-gnav__item a:hover {
  color: #1488CC;
}

.c-gnav__button--wrap{
  display: grid;
  grid-template-columns: repeat(2, 80px);
}
.c-gnav__button {
  display: grid;
  color: #fff;
  min-width: 80px;
  min-height: 80px;
  text-align: center;
}
.c-gnav__button i {
  font-size: 2.1rem;
}
.c-gnav__button .c-button__label {
  font-size: 1.2rem;
  font-weight: bold;
  text-align: center;
}
/*.c-gnav__button--insta{
  background-color: #06275F;
}
.c-gnav__button--mail {
  background-color: #1488CC;
}
.c-gnav__button--insta:hover,
.c-gnav__button--mail:hover,
.p-f-overview__inner .c-button:hover {
  background: linear-gradient(90deg, #1488CC, #020766, #1488CC);
  background-size: 200% 100%;
  animation: slide-bg 2s ease infinite;
  color: #fff;
}*/


/* ヘッダー　instagramとお問い合わせボタン */
.grad-btn{
  position: relative;
  color: #fff;
  background: #06275F;
  cursor: pointer;
  overflow: hidden;
  line-height: 1;
  transition: transform 300ms ease-out;
}

.c-gnav__button--wrap li:nth-last-of-type(1) .grad-btn{
   background: #1488CC;
}

.grad-btn > span{
  position: relative;
  z-index: 2;
  pointer-events: none;
  margin-bottom: 4px;
}

.grad-btn::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, #1488CC 0%, #020766 100%);
  opacity: 0;
  transition: opacity 300ms ease-out;
  transform: scale(1.02);
}

.grad-btn:hover::before,
.grad-btn:focus::before{
  opacity: 1;
}

.grad-btn:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(20,136,204,0.18);
}

.grad-btn:active{
  transform: scale(0.99);
}

.c-gnav__button--phone .c-button__label {
  font-size: 2rem;
}

.p-f-overview__inner .c-button {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-f-overview__inner .c-button {
    align-items: center;
    border: none;
    cursor: pointer;
    display: inline-flex;
    justify-content: center;
    text-decoration: none;
  }
  .c-button__icon{
    display: grid;
    align-items: flex-end;
  }
}

.c-sns-nav {
  align-items: center;
  column-gap: 2.4rem;
  display: flex;
  justify-content: flex-end;
}
@media screen and (min-width: 1236px) {
  .c-sns-nav {
    column-gap: 1.6rem;
  }
}
.c-sns-nav img {
  display: block;
  height: auto;
  width: 18px;
}


/*----------------------------------------
  ハンバーガーメニュー
----------------------------------------*/
.c-hamburger {
   background: linear-gradient(90deg,rgba(20, 136, 204, 1) 0%, rgba(2, 7, 102, 1) 100%);
  box-shadow: 0 0 2rem transparent;
  display: block;
  height: 64px;
  outline: none;
  transition: all 0.3s ease-in-out;
  width: 64px;
  z-index: 100;
}
@media screen and (min-width: 1236px) {
  .c-hamburger {
    display: none;
  }
}
.c-hamburger__bar {
  display: block;
  background-color: #fff;
  height: 2px;
  position: relative;
  transition: inherit;
  width: 24px;
  margin: 0 auto;
}
.c-hamburger__bar:before, .c-hamburger__bar:after {
  background-color: #fff;
  content: "";
  display: block;
  height: 2px;
  position: absolute;
  transition: inherit;
  width: 24px;
}
.c-hamburger__bar:before {
  top: -12px;
}
.c-hamburger__bar:after {
  top: 12px;
}
.c-hamburger[aria-expanded=true] > .c-hamburger__bar {
  background-color: transparent;
}
.c-hamburger[aria-expanded=true] > .c-hamburger__bar:before, .c-hamburger[aria-expanded=true] > .c-hamburger__bar:after {
  background-color: #fff;
  top: 0;
}
.c-hamburger[aria-expanded=true] > .c-hamburger__bar:before {
  transform: rotate(45deg);
}
.c-hamburger[aria-expanded=true] > .c-hamburger__bar:after {
  transform: rotate(-45deg);
}


/*----------------------------------------
  ページトップボタン
----------------------------------------*/
.c-scroll-button {
  background-color: #1488CC;
  border: 1px solid #fff;
  bottom: 114px;
  cursor: pointer;
  height: 32px;
  position: fixed;
  right: 16px;
  width: 32px;
  z-index: 30;
}
@media screen and (min-width: 768px) {
  .c-scroll-button {
    bottom: 65px;
    height: 50px;
    right: 50px;
    width: 50px;
  }
}
@media screen and (min-width: 1236px) {
  .c-scroll-button {
    bottom: 40px;
    right: 50px;
  }
}
.c-scroll-button a {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  pointer-events: none;
  width: 100%;
}
.c-scroll-button::after {
  -webkit-transform: rotate(45deg);
  border-left: 1px solid #fff;
  border-top: 1px solid #fff;
  content: "";
  display: block;
  height: 14px;
  left: 8px;
  position: absolute;
  top: 12px;
  transform: rotate(45deg);
  width: 14px;
}
@media screen and (min-width: 768px) {
  .c-scroll-button::after {
    height: 20px;
    left: 14px;
    top: 18px;
    width: 20px;
  }
}

/* =========================================================
   コンテンツ
========================================================= */
/*----------------------------------------
   共通
----------------------------------------*/
/*========= 見出し ==========*/
.l-content h2.c-heading{
  display: grid;
  text-align: center;
  justify-content: left;
  color: #06275F;
  font-size: clamp(2.4rem, calc(1.197rem + 1.57vw), 3.2rem);
  font-weight: bold;
}
.l-content h2.c-heading span.-en{
  color: #B0E7FE;
  font-size: clamp(6.4rem, calc(1.92rem + 5.86vw), 10rem);
  font-family: "Heebo", sans-serif;;
  font-weight: 700;
  line-height: 1;
  margin-top: 8px;
}
@media screen and (min-width: 768px) {
  .l-content h2.c-heading span.-en{
    margin-top: 12px;
  }
}

.c-level2-heading {
  align-items: center;
  color: #06275F;
  display: flex;
  flex-direction: column;
  margin-bottom: 3.2rem;
}
@media screen and (min-width: 768px) {
  .c-level2-heading {
    margin: 5rem 0 4rem;
  }
}
.c-level2-heading .main {
    font-size: 2.8rem;
    font-weight: bold;
    text-align: center;
}
@media screen and (min-width: 768px) {
  .c-level2-heading .main {
    font-size: 4rem;
  }
}
.c-level2-heading .sub {
  font-size: 1.2rem;
  font-weight: normal;
}
@media screen and (min-width: 768px) {
  .c-level2-heading .sub {
    font-size: 1.4rem;
  }
}
.c-level2-heading::after {
  background-color: #1488CC;
  content: "";
  display: block;
  height: 4px;
  margin-top: 0.8rem;
  width: 56px;
}


/* =========================================================
   トップ
========================================================= */
/*----------------------------------------
   共通
----------------------------------------*/
#top-cnt_about,
#top-cnt_services,
#top-cnt_mfr,
#top-cnt_recruit{
  margin-bottom: 60px;
}
@media screen and (min-width: 768px) {
#top-cnt_services,
#top-cnt_mfr{
  margin-bottom: 120px;
}
}

#top-cnt_about h2.c-heading,
#top-cnt_services h2.c-heading,
#top-cnt_access h2.c-heading{
  display: grid;
  text-align: center;
  justify-content: left;
}

/*----------------------------------------
   メインビジュアル  
----------------------------------------*/
.p-top-mv{
  position: relative;
  width: 100%;
}

.p-top-mv__img-wrapper{
  position: relative;
  width: 100%;
}

.p-top-mv .p-top-nv__copy{
  position: absolute;
  font-size: clamp(2.4rem, 3vw, 4rem);
  font-weight: bold;
  color: #fff;
  top: 50%;
  left: 15%;
  transform: translateY(-50%);
  z-index: 1;
}

.p-top-mv__img{
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 768px) {
  .p-top-mv .p-top-nv__copy{
    top: 50%;
    left: calc(-1.74% + 14%);
  }
  .p-top-mv__img-wrapper{
    padding-left: 8.26%;
  }
}

@media screen and (min-width: 1513px) {
  .p-top-mv .p-top-nv__copy{
    position: absolute;
    font-size: clamp(2.4rem, 3vw, 5rem);
    font-weight: bold;
    color: #fff;
    transform: translateY(-50%);
    z-index: 1;
  }
}

/*----------------------------------------
   三和機器とは（about）
----------------------------------------*/
#top-cnt_about{
  display: grid;
  gap: 25px;
  grid-template-columns: 1fr;
  position: relative;
  z-index: 0;
}

@media screen and (min-width: 768px) {
  #top-cnt_about{
    gap: 30px;
    margin-top: 11.6rem;
    grid-template-columns: 1fr minmax(300px, 656px);
    align-items: flex-start;
  }
    #top-cnt_about .top-cnt_about__inr p{
    font-size: 2rem;
  }
}

@media screen and (min-width: 1025px) {
  #top-cnt_about{
  gap: initial;
  grid-template-columns: 1fr 656px;
  align-items: flex-end;
  }
}

/*----------------------------------------
   事業内容（services）
----------------------------------------*/
#top-cnt_services h2.c-heading{
  margin-bottom: 20px;
}
#top-cnt_services .top-cnt_services__cnt{
  display: grid;
  gap: 15px;
  margin-bottom: 0;
}
#top-cnt_services .top-cnt_services__inr{
  display: grid;
  gap: 15px;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 768px) {
  #top-cnt_services .top-cnt_services__inr{
    gap: 15px;
    grid-template-columns: 1fr 1fr;
  }
  #top-cnt_services .top-cnt_services__inr p:nth-of-type(2){
    font-size: 2rem;
  }
}

/*----------------------------------------
   取り扱いメーカー（mfr）
----------------------------------------*/
#top-cnt_mfr{
  color: #06275F;
  border-radius: 24px;
  background: url(assets/img/bg_maker_01.jpg) no-repeat center / cover;
  margin-bottom: 64px;
}
#top-cnt_mfr .top-cnt_mfr__inr{
  max-width: 360px;
  margin: 0 auto;
}
#top-cnt_mfr h2.h_mfr{
  display: block;
  text-align: center;
  font-size: 1.8rem;
}
#top-cnt_mfr h2.h_mfr span.-en{
  display: block;
  color: #06275F;
  font-size: 4.8rem;
}
#top-cnt_mfr .more-link_cnt{
  padding-left: 11rem;
  padding-top: 25px;
}
@media screen and (min-width: 768px) {
  #top-cnt_mfr{
    margin-bottom: 120px;
  }
  #top-cnt_mfr h2.h_mfr{
    font-size: 2.4rem;
  }
  #top-cnt_mfr h2.h_mfr span.-en{
    font-size: 6.4rem;
    margin-bottom: 15px;
  }
}

/*----------------------------------------
   採用情報（recruit）
----------------------------------------*/
#top-cnt_recruit{
  margin-bottom: 64px;
}
.top-cnt_recruit__inr{
  display: grid;
  grid-template-columns: 1fr;
}
#top-cnt_recruit .top-cnt_recruit__inr .services__txt{
  background: #fff;
  border-radius: 24px;
  padding: 20px;
  overflow: hidden;
  width: 85%;
  margin: -50px auto;
}
#top-cnt_recruit h2.h_recruit{
  display: block;
  text-align: center;
  font-size: 1.8rem;
  margin-bottom: 20px;
}
#top-cnt_recruit h2.h_recruit span.-en{
  display: block;
  color: #B0E7FE;
  font-size: 4.8rem;
}
#top-cnt_recruit .top-cnt_recruit__inr .more-link_cnt{
  width: fit-content;
  padding: 24px 50px;
}
@media (min-width: 768px) {
  #top-cnt_recruit{
    margin-bottom: 120px;
  }

  .top-cnt_recruit__inr{
    display: grid;
    grid-template-columns: minmax(240px, 45%) 1fr;
    gap: 0;
    align-items: center;
  }

  #top-cnt_recruit .top-cnt_recruit__inr .services__txt{
    margin: 0 -24px 0 0;
  }

  .top-cnt_recruit__inr .services__txt { order: 1; }
  .top-cnt_recruit__inr .services__img { order: 2; }

  #top-cnt_recruit .top-cnt_recruit__inr .services__txt{
    width: auto;
    margin: 0 -50px 0 0;
    padding: 32px 36px;
    z-index: 1;
  }

  .top-cnt_recruit__inr .services__img{
    border-radius: 32px;
    overflow: hidden;
  }
  .top-cnt_recruit__inr .services__img img{
    display: block;
    width: 100%;
    height: auto;
  }

  #top-cnt_recruit h2.h_recruit{
    font-size: clamp(2rem, 1.6vw, 2.4rem);
    margin-bottom: 16px;
  }
  #top-cnt_recruit h2.h_recruit span.-en{
    font-size: clamp(3rem, 5vw, 6.4rem);
    line-height: 1;
  }

  #top-cnt_recruit .top-cnt_recruit__inr .more-link_cnt{
    margin-left: 7rem;
  }

  #top-cnt_recruit .top-cnt_recruit__inr .services__txt p{
    font-size: 2rem;
  }
}

@media (min-width: 1025px) {
  .top-cnt_recruit__inr{
    grid-template-columns: 380px 1fr;
  }
  
  #top-cnt_recruit .top-cnt_recruit__inr .services__txt{
    margin: 0 -50px 0 0;
  }
}

/*========= エントリーフォーム ==========*/
.l-recruit p{
  font-size: 1.8rem;
  margin-bottom: 20px;
}
.l-recruit .smf-form .smf-item{
  margin-bottom: 20px;
}
.l-recruit .smf-form .smf-item__col{
  margin-bottom: 5px;
}
.l-recruit .smf-form .smf-text-control__control,
.l-recruit .smf-form .smf-textarea-control__control{
  width: 100%;
  border: 1px solid #A0A0A0;
  border-radius: 0;
}
.l-recruit .smf-item__description{
  color: #115FFB;
  font-size: 1.6rem;
}
.l-recruit .smf-checkbox-control__control{
  border: 1px solid #121212;
  border-radius: 0;
}
.l-recruit button.smf-button-control__control{
  display: block;
  border: 0;
  border-radius: 8px;
  min-width: 243px;
  margin: 0 auto;
  background: #1488CC;
  padding: 10px 5px;
  color: #fff;
}

.l-recruit button.smf-button-control__control[data-action="confirm"] {
  position: relative;
  z-index: 1;
  color: #fff;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
  line-height: 1;
  transition: transform 300ms ease-out;
  padding: 12px 12px 14px;
}
.l-recruit button.smf-button-control__control[data-action="confirm"]::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: #1488CC;
  transition: opacity 300ms ease-out;
}
.l-recruit button.smf-button-control__control[data-action="confirm"]::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, #1488CC 0%, #020766 100%);
  opacity: 0;
  transition: opacity 300ms ease-out;
  transform: scale(1.02);
}
.l-recruit button.smf-button-control__control[data-action="confirm"]:hover {
  opacity: 0.9;
}
.l-recruit button.smf-button-control__control[data-action="confirm"]:hover::before,
.l-recruit button.smf-button-control__control[data-action="confirm"]:focus::before {
  opacity: 1;
}
.l-recruit button.smf-button-control__control[data-action="confirm"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(20,136,204,0.18);
}
.l-recruit button.smf-button-control__control[data-action="confirm"]:active {
  transform: scale(0.99);
}

.l-recruit .smf-action{
  margin-top: 40px;
}
.wp-block-snow-monkey-forms-item.required .smf-item__label__text::after {
  background-color: #021DA5;
  color: #fff;
  content: "必須";
  display: inline-block;
  font-size: 1.4rem;
  padding: 0 1rem;
  margin-left: 4px;
}
.l-recruit .entry-form h3{
  color: #3788c9;
  text-align: center;
  font-size: 2.4rem;
  margin-bottom: 10px;
}
@media (min-width: 768px) {
  .l-recruit .snow-monkey-form{
    max-width: 752px;
    margin: 0 auto;
  }
}

/*----------------------------------------
   アクセス（access）
----------------------------------------*/
#top-cnt_access{
  margin-bottom: 80px;
}
.top-cnt_access_inr{
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;  
}
.top-cnt_access_inr p{
  font-size: 1.8rem;
}
#top-cnt_access h2.c-heading{
  margin-bottom: 20px;
}
.top-cnt_access_inr .access-map iframe{
  max-height: 260px;
  border-radius: 24px;
}
.p-media-map__dt {
  font-size: 1.8rem;
  margin-bottom: 0.8rem;
}
.p-media-map__drow + .p-media-map__drow {
    margin-top: 4rem;
}

@media screen and (min-width: 768px) {
  .top-cnt_access_inr{
    gap: clamp(24px, 4vw, 60px);
    grid-template-columns: 
      minmax(280px, 57.75%)
      minmax(260px, 40%);
  }
  .top-cnt_access_inr p{
    font-size: 2rem;
  }
  .top-cnt_access_inr .access-map iframe{
    max-height: 495px;
    border-radius: 32px;
  }
  .p-media-map__dt {
    font-size: 2rem;
  }
}


/* =========================================================
   下層
========================================================= */
/*----------------------------------------
   メインビジュアル
----------------------------------------*/
.p-low-mv{
  position: relative;
  background-position: center;
  background-size: cover;
  text-align: center;
}

.-company-mv{
  background-image: url(assets/img/img_company.jpg);
}

.-recruit-mv{
  background-image: url(assets/img/img_top-recruit_01.jpg);
}

.-company-mv,.-recruit-mv{
  margin-bottom: 20px;
}

.p-low-mv__img-wrapper{
  width: 100%;
  min-height: 420px; 
  background-color: rgba(4, 66, 103, 0.2);
}
.p-low-mv .p-low-mv__img-wrapper .p-low-nv__copy{
  width: 100%;
  position: absolute;
  color: #fff;
  font-family: "Heebo", sans-serif;;
  font-size: clamp(6.4rem, calc(3.854rem + 6.79vw), 12rem);
  font-weight: 700;
  text-align: center;
  line-height: 0.7;
  top: 40%;
}
.p-low-mv .p-low-mv__img-wrapper .p-low-nv__copy span.-ja{
  font-size: 2.4rem;
}
@media screen and (min-width: 768px) {
  .p-low-mv__img-wrapper{
    min-height: 720px;
  }
  .p-low-mv{
    background-position: 0 70%;
  }
  .p-low-mv.-no-mv{
    padding: 64px 0 25px;
  }
  .p-low-mv .p-low-mv__img-wrapper .p-low-nv__copy{
    line-height: 0.5;
  }
}

/* 見出し（二行）*/
.p-low-mv__img-wrapper.two-line {
  width: 100%;
  min-height: 420px;
  height: auto; 
  background-color: rgba(4, 66, 103, 0.2);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 90px 0 20px;
  box-sizing: border-box;
}

.p-low-mv__img-wrapper.two-line .p-low-nv__copy {
  width: 70%;
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  color: #fff;
  font-family: "Heebo", sans-serif;
  font-size: clamp(6.4rem, calc(3.854rem + 6.79vw), 12rem);
  font-weight: 700;
  text-align: left;
  line-height: 1;
  margin: 0 auto;
}

.p-low-mv__img-wrapper.two-line .p-low-nv__copy span.-ja {
  font-size: 2.4rem;
  display: block;
  margin-top: 4px;
  line-height: 1.5;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-low-mv__img-wrapper.two-line {
    min-height: 720px;
    display: block; 
    position: initial;
    padding: 0;
  }

  .p-low-mv__img-wrapper.two-line .p-low-nv__copy {
    width: 100%;
    position: absolute;
    top: 40%;
    line-height: 0.5;
    text-align: center;
  }

  .p-low-mv__img-wrapper.two-line .p-low-nv__copy span.-ja{
    margin-top: 40px;
  }
}

/*----------------------------------------
   共通
----------------------------------------*/
#lower-philoso-phy,
#lower-greeting,
#lower-company{
  margin-bottom: 7rem;
}
#lower-philoso-phy h2.c-heading,
#lower-greeting h2.c-heading,
#lower-company h2.c-heading,
#lower-contact h2.c-heading{
  margin-bottom: 20px;
}
#lower-greeting h2{
  justify-content: right;
}
.l-company #top-cnt_access h2.c-heading{
  justify-content: left;
}
@media screen and (min-width: 768px) {
  #lower-philoso-phy,
  #lower-greeting,
  #lower-company{
    margin-bottom: 12rem;
  }
  #lower-contact h2.c-heading{
    margin-bottom: 32px;
  }
  .l-company #top-cnt_access h2.c-heading{
    justify-content: right;
  }

  #lower-mfr p{
    font-size: 2rem;
  }
}

.bg-wave{
  display: grid;
  margin-left: calc(((100vw - 100%) / 2) * -1);
  margin-right: calc(((100vw - 100%) / 2) * -1);
  margin-top: 32px;
  margin-bottom: 48px;
}
.bg-wave img{
  width: 100%;
}
@media screen and (min-width: 768px) {
  .bg-wave{
    margin-top: 77px;
    margin-bottom: 80px;
  }
}

/*========= パンくず ==========*/
.c-breadcrumbs {
  margin: 0 0 20px;
  font-size: 1.4rem;
}
.c-breadcrumbs a{
  color: #115FFB;
}
@media screen and (min-width: 768px) {
  .c-breadcrumbs {
    margin: 0 0 30px;
  }
}

/*========= MV無しver ==========*/
.-no-mv .p-low-mv__img-wrapper {
  width: 100%;
  min-height: 220px;
  background-color: initial;
}
.-no-mv .p-low-mv__img-wrapper .p-low-nv__copy{
  color: #06275F;
}




/*========= 見出し ==========*/
.c-sec__ttl {
  align-items: center;
  color: #06275F;
  display: flex;
  flex-direction: column;
  margin-bottom: 3.2rem;
  font-size: clamp(3.2rem, 2.5vw, 4rem);
}
.c-sec__ttl::after {
  background-color: #1488CC;
  content: "";
  display: block;
  height: 4px;
  margin-top: 0.8rem;
  width: 48px;
}
@media screen and (min-width: 768px) {
  .c-sec__ttl {
    margin-bottom: 4rem;
  }
}

.c-sec__s-ttl{
  background: #1488CC;
  color: #fff;
  font-size: clamp(1.8rem, 1.5vw, 2rem);
  font-weight: bold;
  padding: 20px 10px;
}

/*----------------------------------------
   会社概要
----------------------------------------*/
#lower-company .p-horizontal-separate-table__inner {
  font-size: 1.6rem;
  width: 100%;
}
#lower-company .p-horizontal-separate-table__header {
  margin: 1px 0;
}

.president-sign{
  margin-top: 25px;
  text-align: right;
}
.c-name{
  display: block;
  font-size: 1.8rem;
  margin-bottom: 5px;
}
.c-post{
  font-size: 1.6rem;
  margin-right: 15px;
}
.c-pres-name{
  font-size: 2rem;
}
  #lower-philoso-phy p:nth-of-type(1){
  margin-bottom: 8px;
  }
@media (min-width: 768px) {
  #lower-company .p-horizontal-separate-table__inner {
    font-size: 1.8rem;
    display: block;
    border-collapse: collapse;
  }
  #lower-company .p-horizontal-separate-table__inner tbody {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-flow: column;
    grid-template-rows: repeat(5, auto);
  }
  #lower-company .p-horizontal-separate-table__row {
    display: flex;
    width: 100%;
  }
  #lower-company .p-horizontal-separate-table__header {
    min-width: 176px;
    padding: 16px 12px;
    display: flex;
    flex: 0 0 120px;
    align-items: center;
    justify-content: center;
  }
  #lower-company .p-horizontal-separate-table__text {
    display: flex;
    align-items: center;
    padding: 10px 12px 10px 16px;
    flex: 1;
  }

  #lower-philoso-phy p:nth-of-type(1){
    font-size: 2.4rem;
    margin-bottom: 16px;
  }
  #lower-philoso-phy p:nth-of-type(2),
  #lower-greeting p{
    font-size: 2rem;
  }
  #lower-company table th,
  #lower-company table td{
    font-size: 1.8rem;
  }
}
@media (min-width: 994px) {
  .president-sign{
    margin-top: 0;
  }
}

/*----------------------------------------
   事業内容
----------------------------------------*/
.l-service__mv{
  margin: 30px 0;
}

.p-tabs {
  display: flex;
  gap: 1rem;
  margin-inline: auto;
  max-width: 1236px;
  padding-left: 1.6rem;
  padding-right: 1.6rem;
}
@media screen and (min-width: 992px) {
  .p-tabs {
    gap: 1.4rem;
    padding-left: 5rem;
    padding-right: 5rem;
  }
}

.p-tabs__wrapper {
  border-bottom: 1px solid #808080;
}

.p-tabs__item {
  flex-grow: 1;
  width: 30%;
}
.p-tabs__item.is-current {
  margin-bottom: -1px;
}
.p-tabs__item.is-current .p-tabs__link {
  background-color: #fff;
  border: 1px solid #A0A0A0;
  border-bottom: 1px solid #fff;
  color: #000000;
}

.p-tabs__link {
  align-items: center;
  background-color: #A0A0A0;
  border-radius: 8px 8px 0 0;
  color: #fff;
  display: flex;
  font-weight: bold;
  height: 100%;
  justify-content: center;
  padding: 0.8rem 1rem;
  position: relative;
  text-align: center; 
}

.p-tabs__contents {
  display: none;
}
.p-tabs__contents.is-current {
  display: flex;
}
.l-service .service_corp_wrap p{
  font-size: 1.8rem;
}
@media screen and (min-width: 768px) {
  .l-service__mv img{
    width: 100%;
    object-fit: cover;
    max-height: 500px;
    border-radius: 24px;
  }

  .l-service .tab_content_description .c-txtsp p,
  .l-service .tab_content_description .constr_sec .item-txt p,
  .l-service .service_corp_wrap p{
    font-size: 2rem;
  }

  .p-tabs__link {
    border-radius: 8px 8px 0 0;
    padding: 1rem;
    font-size: 1.8rem;
  }
}


/*========= 販売事業 ==========*/
.l-service .c-txtsp{
  margin: 20px 0 40px;
}
@media screen and (min-width: 768px) {
  .l-service .c-txtsp{
    margin: 35px 0 40px;
  }
}

.l-service .service_parts-sales_wrap{
  display: grid;
  gap: 20px 10px;
  grid-template-columns: repeat(auto-fit, minmax(272px, 1fr));
  margin: 20px 0 0;
}
.l-service .service_parts-sales_wrap .parts-sec img{
  border-radius: 8px;
  margin-bottom: 10px;
}

.l-service .corp_inr{
  display: grid;
  gap: 30px;
  margin-bottom: 35px;
}
.l-service .corp_inr ._inr{
  position: relative;
  font-size: 1.8rem;
  font-weight: bold;
  background-color: #fff;
  border-radius: 16px;
  box-shadow: 0 0 16px rgba(24, 174, 238, 0.25);
  padding: 30px;
  display: flex;
  gap: 15px;
  align-items: center;
}

@media screen and (min-width: 768px) {
  .l-service .service_parts-sales_wrap{
    gap: 30px 10px;
  }

  .l-service .corp_inr{
    grid-template-columns: 2fr minmax(50%, 2fr);
    margin-bottom: 70px;
  }
}

/*========= 工事事業 ==========*/
.constr_sec{
  display: grid;
  gap: 15px;
  grid-template-columns: 1fr;
  margin-top: 50px;
}
.constr_sec .item-img{
  text-align: center;
} 
.constr_sec .item-img img{
  max-width: 120px;
}
.constr_sec h3{
  font-size: clamp(2rem, 2vw, 2.4rem);
  font-weight: bold;
  color: #1488CC;
}
.l-service h2.c-heading{
  margin-bottom: 20px;
}
@media screen and (min-width: 768px) {
  .constr_sec .item-img{
    text-align: center;
  }
  .constr_sec .item-img img{
    max-width: 176px;
  }
  .l-service h2.c-heading{
    margin-bottom: 35px;
  }
  .constr_sec{
    grid-template-columns: 2fr minmax(82.7%, 2fr);
  }
}

/*----------------------------------------
   事業内容
----------------------------------------*/
/*----------------------------------------
   取り扱いメーカー
----------------------------------------*/
.l-mfr #lower-mfr h2.c-heading{
  margin-bottom: 32px;
}

#lower-mfr .mfr-cat_wrap{
  margin-bottom: 46px;
}
@media screen and (min-width: 768px) {
  #lower-mfr .mfr-cat_wrap{
    margin-bottom: 64px;
  }
}

#lower-mfr ul.mfr-cat{
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
  margin: 20px 0 50px;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  grid-auto-rows: minmax(10%, auto);
}
#lower-mfr ul.mfr-cat li{
  display: flex;
  align-items: stretch;
  justify-content: center;
}
#lower-mfr ul.mfr-cat li a{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border: 1px solid #595959;
  border-radius: 6px;
  color: #717171;
  padding: 11px 6px;
  text-align: center;
}
#lower-mfr ul.mfr-cat li a.current{
  background: #1488CC;
  color: #fff;
  border: none;
}
@media screen and (min-width: 768px) {
  #lower-mfr ul.mfr-cat{
    grid-template-columns: repeat(4, 1fr);
    margin: 42px 0 50px;
  }
  #lower-mfr ul.mfr-cat li a{
    transition: color 0.3s ease;
  }
  #lower-mfr ul.mfr-cat li a:hover{
    background: #1488CC;
    color: #fff;
    border: 1px solid #1488CC;
  }
}

#lower-mfr .mfr-cat_wrap h3{
  background: #1488CC;
  color: #fff;
  font-size: 2rem;
  font-weight: bold;
  padding: 15px 25px;
  border-radius: 8px;
  margin-bottom: 20px;
}
@media screen and (min-width: 768px) {
  #lower-mfr .mfr-cat_wrap h3{
    font-size: 2.4rem;
  }
}

#lower-mfr .mfr-cat_wrap .mfr-cat__inr{
  margin-bottom: 30px;
}
#lower-mfr .mfr-cat_wrap .mfr-cat__inr h4{
  font-size: 1.8rem;
  font-weight: bold;
  border-bottom: 1px solid #18AEEE;
  padding-bottom: 5px;
  margin-bottom: 15px;
}
@media screen and (min-width: 768px) {
  #lower-mfr .mfr-cat_wrap .mfr-cat__inr h4{
    font-size: 2rem;
  }
}

.mfr-cat_wrap .mfr-cat__inr ul.mfr-list{
  display: grid;
  gap: 8px 20px;
  grid-template-columns: repeat(auto-fit, minmax(157px, 1fr));
}
.mfr-cat_wrap .mfr-cat__inr ul.mfr-list a{
  color: #115FFB;
  text-decoration: underline;
  transition: color 0.3s ease;
}
@media screen and (min-width: 768px) {
  .mfr-cat_wrap .mfr-cat__inr ul.mfr-list{
    font-size: 2rem;
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

/*----------------------------------------
   採用情報
----------------------------------------*/
.l-recruit h2.c-heading{
  margin-bottom: 20px;
}

#lower-msg,#lower-mhlm{
  margin-bottom: 70px;
}
@media screen and (min-width: 768px) {
  .l-recruit h2.c-heading{
    margin-bottom: 40px;
  }
  #lower-msg,#lower-mhlm{
    margin-bottom: 120px;
  }
  #lower-msg p{
    font-size: 2rem;
  }
  #lower-msg .lower-msg_inr .mod-1{
    margin-bottom: 30px;
  }
}
/*========= 福利厚生 ==========*/
#lower-mhlm .mhlm_wrap{
  display: grid;
  gap: 30px 15px;
  grid-template-columns: repeat(2, 50%);
  margin: 20px 0 0;
  text-align: center;
}
#lower-mhlm .mhlm_wrap .mhlm-sec img{
  border-radius: 8px;
  margin-bottom: 10px;
}

#lower-mhlm .mhlm_wrap .mhlm-sec p{
  margin-bottom: 4px;
}

#lower-mhlm .workflow_sec{
  display: block;
}
.workflow_img{
  margin: 25px 0 70px;
}
@media screen and (min-width: 768px) {
  #lower-mhlm .mhlm_wrap{
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  }
  .l-recruit .workflow_sec{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    position: relative;
  }
  #lower-mhlm h2.c-heading{
    justify-content: right;
    margin-bottom: 40px;
  }
  #lower-mhlm .mhlm-sec p:nth-of-type(1){
    font-size: 2rem;
  }
  #lower-mhlm .mhlm-sec p:nth-of-type(2){
    font-size: 1.8rem;
  }
  .l-recruit #lower-workflow .workflow_sec .l-inner{
    width: 55%;
    padding-right: 0;
    flex: 1;
    min-width: 0;
  }
  
  /* テーブルセルの比率設定 */
  .l-recruit #lower-workflow table th{
    width: 272px;
  }

  .l-recruit #lower-workflow .workflow_sec table th{
    width: 142px;
  }

  .l-recruit #lower-workflow table th,.l-recruit #lower-workflow table td{
    font-size: 2rem;
  }
  
  .l-recruit #lower-workflow .p-horizontal-separate-table{
    margin-bottom: 120px;
  }
  .l-recruit #lower-workflow .p-horizontal-separate-table__text{
    padding: 1.6rem 2rem 1.6rem 1.5rem;
  }
  .workflow_img{
    margin: 0 0 120px;
  }
  .l-recruit .workflow_img{
    /* flex: 0 1 57.4%; */
    /* margin-right: calc((100vw - 1136px) * -1 / 2); */
    /* max-width: 652px; */
    max-width: 43%;
  }
  .l-recruit .workflow_img img{
    /* display: block; */
    /* height: auto; */
    /* width: 100%; */
    /* max-width: 100%; */
  }
}

/* ブラウザ幅が1136px以下の場合の追加調整 */
@media screen and (min-width: 768px) and (max-width: 1136px) {
  .l-recruit .workflow_img{
    margin-right: 0;
  }
}

/*----------------------------------------
   お問い合わせ
----------------------------------------*/
.l-contact p{
  font-size: 1.8rem;
  margin-bottom: 20px;
}
.l-contact .smf-form .smf-item{
  margin-bottom: 20px;
}
.l-contact .smf-form .smf-item__col{
  margin-bottom: 5px;
}
.l-contact .smf-form .smf-text-control__control,
.l-contact .smf-form .smf-textarea-control__control{
  width: 100%;
  border: 1px solid #A0A0A0;
  border-radius: 0;
}
.l-contact .smf-item__description{
  color: #115FFB;
  font-size: 1.6rem;
}
.l-contact .smf-checkbox-control__control{
  border: 1px solid #121212;
  border-radius: 0;
}
.l-contact button.smf-button-control__control{
  display: block;
  border: 0;
  border-radius: 8px;
  min-width: 243px;
  margin: 0 auto;
  background: #1488CC;
  padding: 10px 5px;
  color: #fff;
}

.l-contact button.smf-button-control__control[data-action="confirm"] {
  position: relative;
  z-index: 1;
  color: #fff;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
  line-height: 1;
  transition: transform 300ms ease-out;
  padding: 12px 12px 14px;
}
.l-contact button.smf-button-control__control[data-action="confirm"]::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: #1488CC;
  transition: opacity 300ms ease-out;
}
.l-contact button.smf-button-control__control[data-action="confirm"]::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, #1488CC 0%, #020766 100%);
  opacity: 0;
  transition: opacity 300ms ease-out;
  transform: scale(1.02);
}
.l-contact button.smf-button-control__control[data-action="confirm"]:hover {
  opacity: 0.9;
}
.l-contact button.smf-button-control__control[data-action="confirm"]:hover::before,
.l-contact button.smf-button-control__control[data-action="confirm"]:focus::before {
  opacity: 1;
}
.l-contact button.smf-button-control__control[data-action="confirm"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(20,136,204,0.18);
}
.l-contact button.smf-button-control__control[data-action="confirm"]:active {
  transform: scale(0.99);
}


.p-f-overvies__button {
  background-color: #1488CC;
  position: relative;
  overflow: hidden;
  transition: transform 300ms ease-out;
}
.p-f-overvies__button::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, #1488CC 0%, #020766 100%);
  opacity: 0;
  transition: opacity 300ms ease-out;
  transform: scale(1.02);
}
.p-f-overvies__button > span{
  position: relative;
  z-index: 2;
  pointer-events: none;
}
.p-f-overvies__button:hover::before,
.p-f-overvies__button:focus::before{
  opacity: 1;
}
.p-f-overvies__button:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(20,136,204,0.18);
}
.p-f-overvies__button:active{
  transform: scale(0.99);
}


.l-contact .smf-action{
  margin-top: 40px;
}
.wp-block-snow-monkey-forms-item.required .smf-item__label__text::after {
  background-color: #021DA5;
  color: #fff;
  content: "必須";
  display: inline-block;
  font-size: 1.4rem;
  padding: 0 1rem;
  margin-left: 4px;
}
.l-contact #lower-contact h3{
  color: #3788c9;
  text-align: center;
  font-size: 2.4rem;
  margin-bottom: 10px;
}

/* お問い合わせ： 写真を選択 */
.select_photo_cnt{
  max-width: 330px;
}
.select_photo_cnt .smf-item__label__text{
  font-size: 1.6rem;
}
.select_photo_cnt .sel_photo_col{
  gap: initial;
  align-items: center !important;
  margin-bottom: 16px;
}
.select_photo_cnt .sel_photo_col .wp-block-column:nth-of-type(1),
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{
  flex-basis: auto !important;
}
.select_photo_cnt .sel_photo_col .wp-block-column:nth-of-type(2){
  display: flex;
  justify-content: flex-end;
}
.select_photo_cnt .sel_photo_col p,
.select_photo_cnt .sel_photo_col span{
  font-size: 1.4rem;
  margin-bottom: initial;
}
.select_photo_cnt .sel_photo_col .smf-file-control__label{
  background: #F5F5F5;
}
.sel_photo_col .smf-form .sel_photo_col .smf-file-control label{
  flex-wrap: nowrap;
}
@media screen and (min-width: 768px) {

  .l-contact p{
    margin-bottom: 40px;
  }
  .l-contact .snow-monkey-form{
    max-width: 752px;
    margin: 0 auto;
  }
}

/*----------------------------------------
   個人情報保護方針
----------------------------------------*/
#lower-privacy-policy .pp_wrap{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 45px 0;
}
#lower-privacy-policy .pp_wrap .pp_sec h2{
  color: #1488CC;
  font-size: clamp(2rem, 1.5vw, 2.4rem);
  margin-bottom: 10px;
}

#lower-privacy-policy .pp_wrap .contact-info{
  display: grid;
  gap: 15px;
  border: 2px solid #717171;
  padding: 20px;
}
#lower-privacy-policy .pp_wrap .contact-info h3{
  font-size: clamp(1.8rem, 1.5vw, 2rem);
}
#lower-privacy-policy .pp_wrap .contact-info p:nth-of-type(1){
  margin-bottom: 15px;
}

@media screen and (min-width: 768px) {
  #lower-privacy-policy .pp_wrap{
    grid-template-columns: 1fr 1fr;
    gap: 40px 20px;
  }
}


/* =========================================================
   CTAエリア
========================================================= */
.p-cta {
  background: #1488CC;
  border-radius: 32px 32px 0 0;
  padding: 40px 25px 32px;
  margin-top: 70px;
}
.p-cta h2.c-heading,
.p-cta h2.c-heading span.-en{
  display: block;
  color: #fff;
}
.p-cta h2.c-heading{
  font-size: 1.8rem;
  text-align: center;
  margin-bottom: 12px;
}
.p-cta h2.c-heading span.-en{
  line-height: 1;
  font-size: 4.8rem;
  margin-top: 12px;
}
.p-cta__cards.p-cards {
  display: grid;
  row-gap: 2rem;
  gap: 20px;
}

@media screen and (min-width: 768px) {
  .p-cta {
    border-radius: 64px 64px 0 0;
    padding: 60px 30px 64px;
    margin-top: 120px;
  }

  .p-cta h2.c-heading{
    font-size: 2.4rem;
  }
  .p-cta h2.c-heading span.-en{
    font-size: 6.4rem;
  }
}

.p-cards--col1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media screen and (min-width: 768px) {
  .p-cards--col1{
    display: grid;
    padding: 5rem 0 0 0;
    gap: 15px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.p-cta__item {
  align-items: center;
  border-radius: 16px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.25);
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  height: 100%;
  justify-content: space-between;
  padding: 2.4rem 1rem;
}
@media screen and (min-width: 768px) {
  .p-cta__item {
    padding: 3.2rem 1rem;
  }
  .p-cards__card{
    background-color: #fff;
    border-radius: 16px;
    transition: background 0.5s ease, color 0.3s ease;
  }
  .p-cards__card:hover{
    background: #E5EDFF
  }
}
.p-cta__item--mail .p-cta__note {
  font-size: 1.6rem;
}
@media screen and (min-width: 768px) {
  .p-cta__item--mail .p-cta__note {
    font-size: 1.8rem;
  }
}
.p-cta__item--phone i {
  font-size: 3.6rem;
}
@media screen and (min-width: 768px) {
  .p-cta__item--phone i {
    font-size: 4rem;
  }
}
.p-cta__item--mail i {
  font-size: 4rem;
}

.p-cta__item-title {
  font-size: 1.6rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-cta__item-title {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-cta__item {
    background: #fff;
  }
}

.p-cta__body {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 0.8rem;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-cta__body {
    gap: 1rem;
  }
}

.p-cta__contents {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  align-items: center;
  color: #06275F;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  flex-direction: column;
  gap: 0.4rem 2.4rem;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .p-cta__contents {
    gap: 0.4rem 3.2rem;
  }
}
.p-cta__contents .num {
  font-size: 3.2rem;
  font-weight: bold;
}

.p-cta__contents .wrap {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2.4rem;
}
@media screen and (min-width: 768px) {
  .p-cta__contents .wrap {
    gap: 3.2rem;
  }
}
.p-cta__contents .text {
  font-size: 2.8rem;
  font-weight: bold;
}
.p-cta__contents .arrow-wrap {
  position: relative;
}
.p-cta__contents .arrow {
  display: block;
  height: 40px;
  position: relative;
  width: 40px;
  z-index: 1;
}
.p-cta__contents .arrow-wrap::after {
  -webkit-transition-duration: 0.2s;
  background-color: #1488CC;
  border-radius: 50%;
  content: "";
  display: block;
  height: 40px;
  left: 0;
  position: absolute;
  top: 0;
  transition-duration: 0.2s;
  width: 40px;
}
.p-cta__contents:hover .arrow-wrap::after {
  -webkit-transform: scale(1.5);
  transform: scale(1.5);
}

@container (min-width: 320px) {
  .p-cta__contents {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    gap: 3.2rem;
  }
}
.p-cta__note {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-column-gap: 1em;
  -moz-column-gap: 1em;
  -ms-flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  align-items: center;
  column-gap: 1em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap;
  font-size: 1.4rem;
  justify-content: center;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-cta__note {
    font-size: 1.6rem;
  }
}


/* =========================================================
   ページ下（固定）ボタン　mobile only
========================================================= */
.c-mobile-nav__tab {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-weight: bold;
  gap: 0.8rem;
  height: 100%;
  justify-content: center;
  padding: 0.4rem;
}
.c-mobile-nav__tab--phone {
  background-color: #06275F;
  color: #fff;
  flex: 1 0 50%;
  font-size: 1.8rem;
  line-height: 1.2;
}
.c-mobile-nav__tab--contact {
  background-color: #1488CC;
  color: #fff;
  flex: 1 0 50%;
  font-size: 1.6rem;
}
.c-mobile-nav__tab i {
  font-size: 2rem;
}
@media screen and (min-width: 768px) {
  .c-mobile-nav__tab{
    display: none;
  }
}

/* =========================================================
   フッターエリア
========================================================= */
.p-footer {
  margin-bottom: 60px;
}
@media screen and (min-width: 768px) {
  .p-footer {
    margin-bottom: 0;
  }
}

.p-footer__wave img {
  display: block;
  width: 100%;
}

/*----------------------------------------
   コピーライト
----------------------------------------*/
.p-footer__copyright {
  background: #1488CC;
  color: #fff;
  display: block;
  font-size: 1.2rem;
  line-height: 1.4;
  padding: 0.4rem 1.6rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-footer__copyright {
    font-size: 1.4rem;
  }
}

/*----------------------------------------
   メニューリンク
----------------------------------------*/
.p-f-map {
  background: #1488CC;
  background: linear-gradient(90deg,rgba(20, 136, 204, 1) 0%, rgba(2, 7, 102, 1) 50%);
  padding-bottom: 3.2rem;
  padding-top: 3.2rem;
  color: #fff;
}
@media screen and (min-width: 768px) {
  .p-f-map {
    padding-bottom: 5.6rem;
    padding-top: 4.8rem;
  }
}

.p-f-map h2.p-f-map__title{
  font-size: 2rem;
  margin-bottom: 20px;
}

.p-f-map__list {
  column-gap: 1.4rem;
  display: -ms-grid;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  position: relative;
  row-gap: 2.4rem;
  width: 100%;
}
@media screen and (min-width: 544px) {
  .p-f-map__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (min-width: 768px) {
  .p-f-map h2.p-f-map__title{
    font-size: 2.4rem;
  }
  .p-f-map__list {
    column-gap: 1.5rem;
    grid-template-columns: repeat(4, 1fr);
    row-gap: 3.2rem;
  }
}
@media screen and (min-width: 994px) {
  .p-f-map__list {
    grid-template-columns: repeat(7, 1fr);
  }
}

.p-f-map__item {
  overflow: hidden;
  position: relative;
}

.p-f-map__item-title {
  border-bottom: 1px solid #fff;
  display: block;
  font-weight: bold;
  margin-bottom: 1rem;
  padding-bottom: 0.8rem;
}
@media screen and (min-width: 768px) {
  .p-f-map__item-title {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
  }
}

.p-f-map__item-title,
.p-f-map__child-item{
  transition: color 0.3s ease;
}
a.p-f-map__item-title:hover,
.p-f-map__child-item:hover {
  color: #3CC9F8;
  opacity: 0.7;
}

.p-f-map__child-item {
  font-size: 1.4rem;
}

.p-f-map__child-item + .p-f-map__child-item {
  margin-top: 1rem;
}
@media screen and (min-width: 768px) {
  .p-f-map__child-item + .p-f-map__child-item {
    margin-top: 0.8rem;
  }
}

/*----------------------------------------
   アドレスエリア
----------------------------------------*/
.p-f-overview {
  padding-bottom: 2.4rem;
  padding-top: 2.4rem;
  margin-bottom: 32px;
}
@media screen and (min-width: 992px) {
  .p-f-overview {
    padding-bottom: 0;
    padding-top: 4rem;
    margin-bottom: 44px;
  }
}

.p-f-overview__inner {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  justify-content: center;
}
@media screen and (min-width: 992px) {
  .p-f-overview__inner {
    flex-direction: row;
    gap: 2rem;
    justify-content: space-between;
  }
}
@media screen and (min-width: 1236px) {
  .p-f-overview__inner {
    gap: 4.4rem;
  }
}

.p-f-overview__logo {
  display: block;
}
.p-f-overview__logo img {
  display: block;
  width: 272px;
  height: auto;
  max-width: 100%;
}

.p-f-overview__info {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
@media screen and (max-width: 991px) {
  .p-f-overview__info {
    align-items: center;
  }
}


.p-f-overview__info-title {
  font-size: 1.8rem;
  margin-bottom: 0.8rem;
  text-align: center;
}
@media screen and (min-width: 992px) {
  .p-f-overview__info-title {
    text-align-last: left;
  }
}

@media screen and (max-width: 991px) {
  .p-f-overvies__button {
    display: none;
  }
}


.c-button--icon-left {
  background-color: #1488CC;
  color: #fff;
  gap: 1.6rem;
  padding: 1.6rem 3.65rem;
}


/* =========================================================
  汎用性class
========================================================= */
/*========= 切り替え ==========*/
.u-sp {
  display: block;
}
.u-pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-sp {
    display: none;
  }
  .u-pc {
    display: block;
  }
}

/*========= レイアウト調整 ==========*/
.center{
  text-align: center;
}

.left{
  text-align: left;
}

.right{
  text-align: right;
}

/*========= テーブル ==========*/
.p-horizontal-separate-table__inner {
  border-collapse: separate;
  border-spacing: 0 0.2rem;
  width: 100%;
  margin-bottom: 40px;
}
.p-horizontal-separate-table__header {
  background-color: #CEF0FF;
  color: #121212;
  font-weight: normal;
  padding: 1rem 0.4rem;
  text-align: center;
  vertical-align: middle;
  width: 100px;
}
tr.is-heading-row .p-horizontal-separate-table__header {
  background: #1488CC;
  color: #fff;
  font-size: clamp(1.8rem, 1.5vw, 2rem);
  font-weight: bold;
  padding: 20px 10px;
  text-align: left; 
}
.p-horizontal-separate-table__text {
  background-color: #fff;
  padding: 1rem;
}
@media screen and (min-width: 768px) {
  .p-horizontal-separate-table__inner {
    margin-bottom: 60px;
  }
  .p-horizontal-separate-table__header {
    width: 272px;
    /*padding: 2rem 0.4rem;*/
  }
  .p-horizontal-separate-table__text{
    padding: 2rem 0.4rem 2rem 1.5rem;
  }
}

/*========= リンク設定 ==========*/
a,a:link{
  cursor: pointer;
}

.c-link{
  color: #115FFB;
}
.c-link--underline{
  text-decoration: underline;
}

.more-link_01{
  display: inline-block;
  font-size: 2rem;
  font-weight: bold;
  color: #06275F;
  position: relative;
}
.more-link_01::after{
  display: block;
  content: "";
  position: absolute;
  top: 5px;
  right: -40px;
  width: 24px;
  height: 24px;
  background: url(assets/img/i-arrow_01.svg) no-repeat center / contain;
}

.more-link_02{
    display: block;
    font-size: 1.6rem;
    font-weight: bold;
    color: #06275F;
    position: relative;
    padding: 40px 0;
}
.more-link_cnt .more-link-arrw{
    position: relative;
}
.more-link_02 .more-link-arrw::after{
    display: block;
    content: "";
    position: absolute;
    top: -15px;
    right: -70px;
    width: 56px;
    height: 56px;
    background: url(assets/img/i-arrow_02.svg) no-repeat center / contain;
}
.more-link_02:hover{
    border-radius: 16px;
    background: #00D2FF;
    background: linear-gradient(90deg,rgba(0, 210, 255, 0.5) 0%, rgba(58, 123, 213, 0.5) 100%);
    mix-blend-mode: multiply;
    border-radius: 24px;
}

.more-link_03{
  display: inline-block;
  font-size: 1.6rem;
  font-weight: bold;
  color: #06275F;
  position: relative;
}
.more-link_03::after{
  display: block;
  content: "";
  position: absolute;
  top: -15px;
  right: -70px;
  width: 56px;
  height: 56px;
  background: url(assets/img/i-arrow_03.svg) no-repeat center / contain;
  transition: background 0.5s ease, color 0.3s ease;
}

.u-hidden {
  clip: rect(0 0 0 0);
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

@media screen and (min-width: 768px) {
  .more-link_01{
    font-size: 2.4rem;
    margin-bottom: 10px;
  }
  .more-link_01::after{
    top: 10px;
  }
  .more-link_01{
    transition: color 0.3s ease;
  }
  .more-link_01:hover{
    color: #1488CC;
  }

  .more-link_02{
    padding: 60px 0;
  }
  .more-link_02 .more-link_cnt{
    color: #fff;
    transition: background 0.5s ease, color 0.3s ease;
  }
  .more-link_02:hover .more-link_cnt{
    color: #06275F;
  }
  .more-link_02:hover .more-link-arrw::after{
      display: block;
      content: "";
      position: absolute;
      top: -15px;
      right: -70px;
      width: 56px;
      height: 56px;
      background: url(assets/img/i-arrow_02_on.svg) no-repeat center / contain;
  }

  .more-link_03:hover::after{
    display: block;
    content: "";
    position: absolute;
    top: -15px;
    right: -70px;
    width: 56px;
    height: 56px;
    background: url(assets/img/i-arrow_03_on.svg) no-repeat center / contain;
  }
}