@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital@0;1&family=Spectral&family=Lusitana:wght@400;700&Noto+Sans+JP:wght@400;500;600;700&family=Zen+Old+Mincho:wght@400;600');

:root {
	
	--mainColor: #E1452D;
	--fontColor: #000;
	--fontColor-pale: #4D545A;
	--fontColor-200: #222;
	--fontColor-500: #555;
	--link: #024A79;
  --color-red: #9F1519;
	
	--btnColor: var(--mainColor);
	--btnColor-crr: #c7311a;
	--btnColor2: #000;
	--btnColor2-crr: #555;
	
	--bg-gray: #F2F0F0;
	--bg-gray2: #F2EDEC;
	--bg-gray3: #E2E2E2;
	
	--border: #DDD solid 1px;
	--rm: linear-gradient(90deg,#ad181d 0%, rgba(86, 15, 18, 1) 100%);
	--rm-icon: #9F1519;
  --rm-bg: #AD181D;
  --rm-bg-crr: #871216;
	--dd: linear-gradient(90deg,rgba(14, 90, 145, 1) 0%, rgba(1, 47, 77, 1) 100%);
	--dd-icon: rgba(1, 47, 77, 1);
	--se: linear-gradient(90deg,rgba(169, 110, 63, 1) 0%, rgba(85, 55, 32, 1) 100%);
	--se-icon: rgba(85, 55, 32, 1);
	--em: linear-gradient(90deg,rgba(0, 114, 84, 1) 0%, rgba(0, 57, 42, 1) 100%);
	--em-icon: rgba(0, 57, 42, 1);
	
  --input-border: #b9b9b9 solid 1px;
  --input-shadow: 2px 1px 3px rgba(38, 49, 49, 0.08);
  --shadow: -2px -1px 3px rgba(38, 49, 49, 0.08);
  --width: 1440px;
	
	--font-en: "Lusitana", serif;
	--font-zen: "Zen Old Mincho", serif;
	--font-noto: "Noto Sans JP", sans-serif;
	--font-hanken: "Hanken Grotesk", sans-serif;
	
	--ease: cubic-bezier(0.87, 0, 0.13, 1);
}

/* Fonts
--------------------------------------------- */

@font-face {
	font-family: "Lusitana", serif;
	font-style: normal;
	font-weight: 400;
}
@font-face {
	font-family: "Zen Old Mincho", serif;
	font-style: normal;
	font-weight: 400;
}
@font-face {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 400;
}
@font-face {
	font-family: "Hanken Grotesk", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 400;
}
html {
	font-size: 100%;
	line-height: 1.5;
	scroll-behavior: smooth;
}
body {
	margin: 0;
	padding: 0;
	letter-spacing: 0.05em;
}
main {
	display: block;
}
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}


/* Grouping content
	 ========================================================================== */

hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */
a {
	background-color: transparent;
}
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}
b,
strong {
	font-weight: bolder;
}
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}
small {
	font-size: 80%;
}
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
img {
	border-style: none;
}
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}
button,
input {
	overflow: visible;
}
button,
select {
	text-transform: none;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}
fieldset {
	padding: 0.35em 0.75em 0.625em;
}
textarea {
	overflow: auto;
}
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}
details {
	display: block;
}
summary {
	display: list-item;
}
template {
	display: none;
}
[hidden] {
	display: none;
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	font-family: inherit;
	font-size: 1rem;
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: #000000;
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	font-family: inherit;
	font-size: 1rem;
	color: #000;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}
select {
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	font-family: inherit;
	font-size: 1rem;
	border: 1px solid #ccc;
}
textarea {
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	font-family: inherit;
	font-size: 1rem;
	width: 100%;
}
table{
  border-collapse:collapse;
  border:none;
  border-spacing:0;
}
th,td{
  border: 0;
  text-align:left;
}
caption{
  text-align:left;
}
/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
*,
*::before,
*::after {
	box-sizing: inherit;
}
html {
	box-sizing: border-box;
}
/* Typography
--------------------------------------------- */
@media (min-width:768px){ /* 768px以上全て */
	html{
		font-size: 100%;
		scroll-padding-top: 130px;
	}
}
@media screen and (min-width:768px) and (max-width:1499px) {
 /* for 幅狭PC＆TAB */
	html{
		font-size: clamp(14px, 1.454545vw, 100%);
	}
}
@media screen and (max-width: 767px) { /* for SP */
	html{
		font-size: 3.6vw;
		scroll-padding-top: 20vw;
	}
}

body{
	color: #000000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 100%;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
  margin: 0;
  padding: 0;
}
*, *:after, *:before {
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
p {
	margin-bottom: 1.5em;
}
dfn,
cite,
em,
i {
	font-style: italic;
}
blockquote {
	margin: 0 1.5em;
}
address {
	margin: 0 0 1.5em;
}
pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}
code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}
abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}
mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: #fff;
}
hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}
p {
  margin: 0;
  padding: 0;
}
ul, ol, li {
  list-style: none;
  padding: 0;
  margin: 0;
}
dt {
	font-weight: 700;
}
dd {
	margin: 0 1.5em 1.5em;
}
embed,
iframe,
object {
	max-width: 100%;
}
img {
	height: auto;
	max-width: 100%;
}
figure {
	margin: 1em 0;
}
table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
a {
  color: #000000;
  text-decoration: none;
  transition: all 0.3s ease;
}
a:hover {
  color: #000000;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: block;
}
.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}
.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}
.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}
.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}
.main-navigation ul ul a {
	width: 200px;
}
.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}
.main-navigation li {
	position: relative;
}
.main-navigation a {
	display: block;
	text-decoration: none;
}
.main-navigation .current-menu-item a{
  
}
@media screen and (min-width: 37.5em) {
	.main-navigation ul {
		display: flex;
	}
}
.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}
.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}
.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}
.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}
.post,
.page:not(body) {
	margin: 0 0 1.5em;
}
.updated:not(.published) {
	display: none;
}
.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}
.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

:where(.is-layout-flex){
	gap: 1em;
}

/* clear
--------------------------------------------- */
@media (min-width:768px){ /* 768px以上全て */
  .spclear {
    display: none;
  }
}
@media screen and (max-width: 767px) { /* for SP */
  .pcclear {
    display: none;
  }
}
/*--------------------------------------------------------------
# header
--------------------------------------------------------------*/
header.site-header{
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 107px;
	background: rgba(255,255,255,0.9);
	backdrop-filter: blur(10px);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 5;
	transition: height 0.3s ease;
}
.header--inner{
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
	align-items: center;
	width: 100%;
	max-width: var(--width);
	padding-top: 1px;
	transition: margin 0.3s ease;
}
.site-title a{
	display: block;
	aspect-ratio: 120/ 59;
	max-height: 59px;
}
.site-title img{
	display: block;
	transition: width 0.3s ease;
}
#site-navigation{
	display: flex;
	margin-left: auto;
}
#site-navigation ul{
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
	align-content: center;
	gap: 12px 24px;
	letter-spacing: 0.08em;
	font-size: 0.875rem;
}
#site-navigation ul a{
	position: relative;
}
#site-navigation .sub-menu{
	padding: 20px;
	background: #FFF;
	width: 320px;
}
#site-navigation .sub-menu a{
	display: block;
	width: 100%;
}
#header--langChange{
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
	align-items: center;
	gap: 1.4em;
	margin-left: 90px;
	letter-spacing: 0;
	font-size: 0.875rem;
	position: relative;
}
#header--langChange::before{
	content: "/";
	font-size: 0.625rem;
	color: #DDD;
	position: absolute;
	top: 0.3em;
	left: 2.45em;
}
#header--langChange a{
	position: relative;
}
#site-navigation a::before,
#header--langChange a::before{
	content: "";
	display: block;
	width: 0%;
	height: 1px;
	background: var(--fontColor);
	position: absolute;
	left: 0;
	bottom: -2px;
}
header.site-header hr{
	display: block;
	width: 1px;
	height: 1em;
	margin: 0 24px;
	border: none;
	border-right: var(--border);
	background: none;
}
#header--searchKey{
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	background: var(--bg-gray3);
	border: none;
	border-radius: 50%;
	cursor: pointer;
}
#header--searchKey svg{
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;
}
#header--menuKey{
	display: flex;
	flex-flow: column wrap;
	justify-content: center;
	align-items: center;
	gap: 5px;
	padding: 20px 0;
	background: none;
	border: none;
	cursor: pointer;
}
#header--menuKey span{
	display: block;
	width: 64px;
	height: 1px;
	background: var(--fontColor);
}
#header--contactBtn{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 123px;
	margin-left: 24px;
	padding: 8px;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: #FFF;
	background: var(--btnColor);
	border-radius: 50px;
}
#site-navigation .current-menu-item a::before{
	width: 100%;
}
@media (min-width:768px){ /* 768px以上全て */
	#site-navigation a:hover::before,
	#header--langChange a:hover::before{
		width: 100%;
		transition: width 0.3s ease;
	}
  #site-navigation .our_services.current-menu-item a::before {
    width: 0%;
  }
  #site-navigation .our_services.current-menu-item a:hover::before {
    width: 100%;
		transition: width 0.3s ease;
  }
	#header--langChange .crr a::before{
		width: 100%;
	}
	#header--menuKey:hover span{
		background-color: var(--btnColor);
		transition: background-color 0.3s ease;
	}
	#header--contactBtn:hover{
		background-color: var(--btnColor-crr);
		transition: background-color 0.3s ease;
	}
	#header--searchKey:hover{
		background-color: #CCC;
		transition: background-color 0.3s ease;
	}
	/* slim */
	header.site-header.slim{
		height: 70px;
		transition: height 0.3s ease;
	}
	header.site-header.slim .header--inner{
		transition: margin 0.3s ease;
	}
	header.site-header.slim .site-title img{
		width: 80px;
		transition: width 0.3s ease;
	}
}
@media screen and (min-width:768px) and (max-width:1499px) {
 /* for 幅狭PC＆TAB */
	header.site-header{
		padding-left: 2vw;
		padding-right: 2vw;
	}
	.site-title img{
		max-width: 10vw;
	}
	#site-navigation ul{
		gap: 12px 1.6vw;
	}
	#header--langChange{
		margin-left: 2vw;
	}
	header.site-header hr{
		margin: 0 1.7vw;
	}
	#header--menuKey{
		margin-left: 1.7vw;
	}
	#header--menuKey span{
		width: 4vw;
	}
	#header--contactBtn{
		margin-left: 1.8vw;
		max-width: 14vw;
	}
}
@media screen and (max-width: 767px) { /* for SP */
	header.site-header{
		padding-left: 3vw;
		padding-right: 3vw;
		height: 16vw;
	}
	.header--inner{
		padding-top: 0;
	}
	.site-title a{
		width: 18vw;
	}
	#site-navigation{
		display: none;
		visibility: hidden;
	}
	#header--langChange{
		font-size: 1rem;
		margin-left: auto;
	}
  #header--langChange .crr a::before {
    width: 100%;
  }
	header.site-header hr{
		display: none
	}
	#header--searchKey{
		width: 2.5em;
		height: 2.5em;
		margin-left: 7vw;
	}
	#header--menuKey{
		margin-left: 6vw;
		padding: 0.7em 0;
	}
	#header--menuKey span{
		width: 11vw;
	}
	#header--contactBtn{
		display: none;
	}
}

/*--------------------------------------------------------------
# header--searchForm
--------------------------------------------------------------*/
#header--searchForm{
	display: grid;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.4);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 8;
}
#header--searchForm:not(.active){
	opacity: 0;
	pointer-events: none;
}
#header--searchForm .searchFormCont{
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: stretch;
	gap: 10px;
	justify-self: center;
	align-self: center;
	width: 100%;
	max-width: 400px;
	padding: 30px 20px;
	background: #FFF;
	box-shadow: var(--input-shadow);
}
#header--searchForm .searchFormCont .attentionText{
	display: block;
	text-align: center;
	width: 100%;
	margin-bottom: 5px;
	font-size: 0.875rem;
}
#header--searchForm .searchFormCont form{
	display: flex;
  flex-wrap: wrap;
	justify-content: center;
	gap: 0.5em;
}
#header--searchForm .search-form input{
	height: 42px;
}
#header--searchForm .search-form input[type="search"]{
	padding: 0.5em 1em;
	border: var(--border);
	font-size: 1em;
  width: calc(100% - 5em);
}
#header--searchForm .search-form button{
	border: none;
	color: #FFF;
	font-family: var(--font-noto);
	background: var(--btnColor);
	font-weight: 500;
	cursor: pointer;
  width: 4.5em;
}
#header--searchForm .header--searchFormClose{
	border: none;
	background: none;
	font-size: 0.875rem;
	margin-top: 10px;
	margin-left: auto;
	margin-right: auto;
	position: relative;
	cursor: pointer;
}
@media (min-width:768px){ /* 768px以上全て */
  #header--searchForm .search-form button{
    height: 42px;
  }
	#header--searchForm .search-form button[type="submit"]:hover{
		background-color: var(--btnColor-crr);
		transition: background-color 0.3s ease;
	}
	#header--searchForm .header--searchFormClose::before{
		content: "";
		display: block;
		width: 0%;
		height: 1px;
		background: var(--fontColor-pale);
		position: absolute;
		left: 0;
		bottom: -2px;
		transition: width 0.3s ease;
	}
	#header--searchForm .header--searchFormClose:hover::before{
		width: 100%;
	}
}
@media screen and (min-width:768px) and (max-width:1499px) {
 /* for 幅狭PC＆TAB */
}
@media screen and (max-width: 767px) { /* for SP */
	
	#header--searchForm .searchFormCont{
		gap: 0.5em;
		max-width: 90vw;
		padding: 6vw 4vw;
	}
	#header--searchForm .searchFormCont p{
		margin-bottom: 3vw;
		font-size: 1rem;
	}
	#header--searchForm .search-form input{
		height: 3em;
	}
	#header--searchForm .search-form input[type="search"]{
		font-size: 1.125rem;
    
	}
	#header--searchForm .search-form button[type="submit"]{
		font-size: 1.125rem;
	}
	#header--searchForm .header--searchFormClose{
		font-size: 1rem;
		margin-top: 3vw;
	}
}

/*--------------------------------------------------------------
# drawerMenu
--------------------------------------------------------------*/
#drawerMenu{
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
	width: 100vw;
	height: 100dvh;
	padding-top: 3dvh;
	padding-bottom: 3dvh;
	background: #121212;
	font-family: var(--font-noto);
	font-size: 1.25rem;
	text-align: justify;
	color: #FFF;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	transition: all 0.3s ease;
}
#drawerMenu:not(.active){
	opacity: 0;
	pointer-events: none;
}
#drawer-menu-en{
	display: grid;
	grid-template-columns: repeat( 3, auto);
	grid-template-areas:
		"top company btn1"
		"service company mini1"
    "service company mini2";
	gap: 0.3em 3em;
	color: #FFF;
}
#drawer-menu-en .top{
	grid-area: top;
}
#drawer-menu-en .company{
	grid-area: company;
}
#drawer-menu-en .buisiness{
	grid-area: buisiness;
}
#drawer-menu-en .service{
	grid-area: service;
}
#drawer-menu-en .contact{
	grid-area: btn1;
}
#drawer-menu-en .privacy{
	grid-area: mini1;
}
#drawer-menu-en .sitepolicy	{
	grid-area: mini2;
}
#drawer-menu-en a{
	color: #FFF;
	position: relative;
}
#drawer-menu-en .top{
	font-family: var(--font-en);
	grid-area: top;
}
#drawer-menu-en .service{
  font-family: var(--font-en);
}
#drawer-menu-en .title{
	display: block;
	margin-bottom: 20px;
}
#drawer-menu-en .title > a{
	display: block;
	width: 100%;
	border-bottom: rgba(255,255,255,0.2) solid 1px;
	font-family: var(--font-en);
	letter-spacing: 0.1em;
	margin-bottom: 0.7em;
	padding-bottom: 0.4em;
}
#drawer-menu-en .sub-menu{
	margin-top: 0.5em;
	font-size: 0.875rem;
}
#drawer-menu-en .sub-menu li{
	margin-bottom: 0.8em;
}
#drawer-menu-en .sub-menu li::before{
	content: "-";
	margin-right: 0.5em;
}
#drawer-menu-en .mini a{
	font-size: 0.8125rem;
	color: #EEE;
}
#drawer-menu-en .entry a,
#drawer-menu-en .contact a{
	display: block;
	width: 200px;
	padding: 16px 24px;
	font-size: 1rem;
	font-weight: 500;
	background: #CCC;
	border-radius: 50px;
	align-self: start;
	position: relative;
}
#drawer-menu-en .entry a::after,
#drawer-menu-en .contact a::after{
	content: "";
	display: block;
	width: 36px;
	height: 24px;
	border-radius: 30px;
	background: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2010%209%22%20fill%3D%22%23000%22%3E%3Cpolygon%20points%3D%225.82%200%205%201%208%204%200%204%200%205%208%205%205%208%205.82%209%205.82%209%2010%204.5%205.82%200%22%2F%3E%3C%2Fsvg%3E') no-repeat #FFF center center / 10px 9px;
	position: absolute;
	top: 16px;
	right: 24px;
}
#drawer-menu-en .entry a{
	color: #000;
}
#drawer-menu-en .contact a{
	background: var(--btnColor);
}
#drawer-menu-en .privacy,
#drawer-menu-en .sitepolicy {
  line-height: 1.2;
}
#drawerMenu .menu-toggle{
	display: block;
	width: 70px;
	height: 70px;
	padding: 0;
	background: none;
	border: none;
	position: fixed;
	top: 5dvh;
	right: 50px;
	cursor: pointer;
}
#drawerMenu .menu-toggle span{
	width: 100%;
	height: 1px;
	background: #FFF;
	position: absolute;
	top: 35px;
	left: 0;
}
#drawerMenu .menu-toggle span:nth-child(1){
	transform: rotate(45deg);
}
#drawerMenu .menu-toggle span:nth-child(2){
	transform: rotate(-45deg);
}
@media (min-width:768px){ /* 768px以上全て */
  #drawer-menu-en .privacy {
    margin-top: 1em;
  }
	#drawer-menu-en li:not(.contact) a::before{
		content: "";
		width: 0%;
		height: 1px;
		background: #FFF;
		position: absolute;
		left: 0;
		bottom: -2px;
	}
	#drawer-menu-en li:not(.contact) a:hover::before{
		width: 100%;
		transition: width 0.3s ease;
	}
	#drawer-menu-en .entry a:hover{
		background-color: rgba(255,255,255,0.7);
		transition: background-color 0.3s ease;
	}
	#drawer-menu-en .contact a:hover{
		background-color: var(--btnColor-crr);
		transition: background-color 0.3s ease;
	}
}
@media screen and (min-width:768px) and (max-width:1499px) {
 /* for 幅狭PC＆TAB */
	#drawerMenu{
		padding-left: 3vw;
		padding-right: 3vw;
	}
	#drawer-menu-en{
		grid-template-columns: repeat( 2, 1fr);
		grid-template-areas:
			"top top"
      "company company"
      "buisiness buisiness"
			"service service"
      "mini1 mini2"
			"btn1 btn1";
		gap: 0.3em 1.5em;
	}
	#drawer-menu-en .top{
		margin-bottom: 20px;
	}
  #drawer-menu-en .privacy,
  #drawer-menu-en .sitepolicy  {
    margin-top: 2em;
  }
	#drawer-menu-en .entry a,
	#drawer-menu-en .contact a{
		width: 100%;
		margin-top: 50px;
	}
}
@media screen and (max-width: 767px) { /* for SP */
	#drawerMenu{
		padding: 22vw 3vw 10vw 3vw;
		font-size: 1rem;
	}
	#drawer-menu-en{
		grid-template-columns: repeat( 2, 1fr);
		grid-template-areas:
			"top top"
      "company company"
      "buisiness buisiness"
			"service service"
      "mini1 mini2"
			"btn1 btn1";
		width: 90vw;
		max-height: 85dvh;
		padding-bottom: 20vw;
		overflow-y: auto;
	}
	#drawer-menu-en{
		gap: 0.3em 1.5em;
	}
	#drawer-menu-en .top{
		margin-bottom: 3vw;
	}
	#drawer-menu-en .title{
		display: block;
		margin-bottom: 3vw;
	}
	#drawer-menu-en .title > a{
		font-size: 1rem;
	}
	#drawer-menu-en .sub-menu{
		margin-top: 0.5em;
		font-size: 0.875rem;
	}
	#drawer-menu-en .sub-menu li{
		font-size: 0.9375rem;
	}
	#drawer-menu-en .mini a{
		font-size: 0.9375rem;
	}
	#drawer-menu-en .entry a,
	#drawer-menu-en .contact a{
		width: 100%;
		margin-top: 8vw;
		padding-left: 1em;
		padding-right: 1em;
	}
	#drawer-menu-en .entry a::after,
	#drawer-menu-en .contact a::after{
		width: 2.3em;
		height: 1.4em;
		top: 3vw;
		right: 1em;
	}
  #drawer-menu-en .privacy,
  #drawer-menu-en .sitepolicy  {
    margin-top: 2em;
  }
	#drawerMenu .menu-toggle{
		width: 14vw;
		height: 14vw;
		top: 5vw;
		right: 5vw;
	}
	#drawerMenu .menu-toggle span{
		top: 7vw;
	}
}

/*--------------------------------------------------------------
# main
--------------------------------------------------------------*/
main{
	padding-top: 107px;
}
@media (min-width:768px){ /* 768px以上全て */
}
@media screen and (min-width:768px) and (max-width:1499px) {
 /* for 幅狭PC＆TAB */
}
@media screen and (max-width: 767px) { /* for SP */
	main{
		padding-top: 20vw;
	}
}

/*--------------------------------------------------------------
# footer
--------------------------------------------------------------*/

footer.site-footer{
	display: block;
	text-align: justify;
	width: 100%;
	padding-top: 78px;
	background: #fafafa;
}
footer.site-footer .foot-inner{
	width: 100%;
	max-width: var(--width);
	margin-left: auto;
	margin-right: auto;
}
.footer--body{
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 56px;
}
.footer--body .parts-left a{
	display: block;
	margin-bottom: 44px;
}
.foot--name{
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-bottom: 12px;
}
.foot--address{
	font-size: 0.8125rem;
	line-height: 2;
	letter-spacing: 0.1em;
	color: var(--fontColor-pale);
}
.footer--body .parts-right{
	display: grid;
	grid-template-columns:  repeat(3,1fr);
	gap: 80px;
	width: 100%;
	max-width: 940px;
	padding-top: 8px;
	letter-spacing: 0.1em;
}
.footer--body .parts-right h3{
	display: block;
	padding-bottom: 16px;
	margin-bottom: 16px;
	font-size: 1.125rem;
	font-family: var(--font-en);
	font-weight: normal;
	letter-spacing: 0.07em;
	line-height: 1;
	border-bottom: var(--border);
}
.footer--body .parts-right li{
	margin-bottom: 16px;
	letter-spacing: 0.1em;
	font-size: 0.8125rem;
}
.footer--body .parts-right li a{
	color: var(--fontColor-200);
}
.footer--btns{
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 15px;
	margin-bottom: 50px;
}
.footer--btns a{
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1em;
	width: 100%;
	max-width: 211px;
	padding: 16px 24px 16px 32px;
	border-radius: 50px;
	color: #FFF;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	transition: all 0.3s ease;
}
.footer--btns a.entry{
	background-color: var(--btnColor2);
}
.footer--btns a.contact{
	background-color: var(--btnColor);
}
.footer--btns a i{
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
	width: 36px;
	height: 20px;
	padding-top: 1px;
	color: #000;
	background: #FFF;
	border-radius: 25px;
}
.footer--btns a i svg{
	display: block;
	width: 10px;
	height: 9px;
	fill: currentColor;
}
.footer--bottom{
	display:flex;
	flex-flow: row wrap;
	justify-content: space-between;
	padding-top: 32px;
	padding-bottom: 32px;
	border-top: var(--border);
	color: var(--fontColor-pale);
	font-size: 0.75rem;
}
.footer--privacyNav{
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
	align-items: center;
	gap: 56px;
	letter-spacing: 0;
}
#footer--copy{
	font-family: inherit;
	letter-spacing: 0.1em;
}
@media (min-width:768px){ /* 768px以上全て */
	.footer--body .parts-right li a,
	.footer--privacyNav a{
		position: relative;
	}
	.footer--body .parts-right li a::before,
	.footer--privacyNav a::before{
		content: "";
		display: block;
		width: 0%;
		height: 1px;
		background: var(--fontColor);
		position: absolute;
		left: 0;
		bottom: -2px;
		transition: width 0.3s ease;
	}
	.footer--body .parts-right li a:hover::before,
	.footer--privacyNav a:hover::before{
		width: 100%;
	}
	.footer--body .parts-right h3:not(:first-child){
		margin-top: 46px;
	}
	.footer--btns a{
		transition: background-color 0.3s ease;
	}
	.footer--btns a.entry:hover{
		background-color: var(--btnColor2-crr);
	}
	.footer--btns a.contact:hover{
		background-color: var(--btnColor-crr);
	}
}
@media screen and (min-width:768px) and (max-width:1499px) {
 /* for 幅狭PC＆TAB */
	footer.site-footer{
		padding-left: 2vw;
		padding-right: 2vw;
	}
	.footer--body .parts-left{
		max-width: 30vw;
	}
	.footer--body .parts-left img{
		max-width: 20vw;
	}
	.footer--body .parts-right{
		grid-template-columns: repeat(2,1fr);
		max-width: calc(100% - 32vw);
		gap: 1.5em 3vw;
	}
	.footer--body .parts-right div:last-child h3{
		grid-row: 1;
	}
	.footer--privacyNav{
		gap: 3vw;
	}
}
@media screen and (max-width: 767px) { /* for SP */
	footer.site-footer{
		padding-top: 6dvh;
		padding-left: 3vw;
		padding-right: 3vw;
	}
	.footer--body{
		justify-content: flex-start;
		margin-bottom: 6dvh;
	}
	.footer--body .parts-left{
		order: 2;
	}
	.footer--body .parts-left a{
		margin-bottom: 5vw;
	}
	.footer--body .parts-left img{
		max-width: 28vw;
	}
	.foot--name{
		margin-bottom: 3vw;
	}
	.foot--address{
		font-size: 1rem;
	}
	.footer--body .parts-right{
		order: 1;
		grid-template-columns:  repeat(1,1fr);
		gap: 8vw 0;
		padding-top: 0;
		margin-bottom: 14vw;
	}
	.footer--body .parts-right h3{
		padding-bottom: 0.8em;
		margin-bottom: 1em;
		font-size: 1.375rem;
	}
	.footer--body .parts-right li{
		margin-bottom: 1em;
		font-size: 1rem;
	}
	.footer--body .parts-right h3:not(:first-child){
		margin-top: 8vw;
	}
	.footer--btns{
		flex-flow: row nowrap;
		justify-content: center;
		gap: 3vw;
		margin-bottom: 12vw;
	}
	.footer--btns a{
		gap: 0.3em;
		font-size: 1.125rem;
		max-width: calc((100% - 3vw) / 2);
		padding: 1.2em 4vw 1.2em 6vw;
	}
	.footer--btns a i{
		width: 9vw;
		height: 5vw;
	}
	.footer--btns a i svg{
		width: 2.5vw;
		height: 2.5vw;
	}
	.footer--bottom{
		flex-flow: column nowrap;
		justify-content: flex-start;
		gap: 5vw;
		padding-top: 8vw;
		padding-bottom: 12vw;
	}
	.footer--privacyNav{
		flex-flow: column wrap;
		justify-content: flex-start;
		align-items: flex-start;
		font-size: 0.875rem;
		gap: 5vw;
	}
}
@media print {
  @page {
    size: A4; /* A4に固定 */
  }
  html {
    transform: scale(0.7); 
    transform-origin: top left;
  }
  body {
    width: 1480px !important; 
    max-width: none !important;
  }
  header.site-header {
    display: none;
  }
  main {
    padding-top: 0 !important;
  }
}
