@charset "utf-8";

/*
-----------------------------------------------
RESET CSS by PMX.HN
▼ PARAMIX RYUKYU 2023.5
----------------------------------------------- */

* {
box-sizing:border-box;
outline:0;
font-style:normal;
line-break:strict;
font-synthesis:none;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
}

*:before,
*:after {
box-sizing:inherit;
}


/*
-----------------------------------------------
▼yokohan追加
----------------------------------------------- */
/*! Yaku Han JP v3.2.0 (OFL-1.1 AND MIT) by Qrac */
/*! Type:YakuHanJPs - Based on Noto Sans CJK JP */
@font-face {
font-family:"YakuHanJPs";
font-style:normal;
font-weight:400;
src:url("../../fonts/YakuHanJPs/YakuHanJPs-Regular.woff2") format("woff2"), url("../../fonts/YakuHanJPs/YakuHanJPs-Regular.woff") format("woff");
}

@font-face {
font-family:"YakuHanJPs";
font-style:normal;
font-weight:700;
src:url("../../fonts/YakuHanJPs/YakuHanJPs-Bold.woff2") format("woff2"), url("../../fonts/YakuHanJPs/YakuHanJPs-Bold.woff") format("woff");
}

/* lato-regular - latin */
@font-face {
font-family:'Lato';
font-style:normal;
font-weight:400;
src:local('Lato Regular'), local('Lato-Regular'),
url('../fonts/lato-v16-latin-regular.woff2') format('woff2'),
url('../fonts/lato-v16-latin-regular.woff') format('woff');
}

@font-face {
font-family:'Lato';
font-style:normal;
font-weight:700;
src:local('Lato Bold'), local('Lato-Bold'),
url('../fonts/lato-v16-latin-700.woff2') format('woff2'),
url('../fonts/lato-v16-latin-700.woff') format('woff');
}

@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap');

body, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, p, blockquote, figure, form, fieldset, input, legend, pre, abbr, button {
margin:0;
padding:0;
}

fieldset, iframe, img {
border:0;
}

body {
-webkit-text-size-adjust:100%;
min-height:100vh;
scroll-behavior:smooth;
font-family:YakuHanJPs, 'Hiragino Sans', 'Yu Gothic Medium', 'Yu Gothic', Meiryo, sans-serif;
font-weight:300;
font-size:16px;
line-height:1.7;
color:#404040;
background:#f6f6f6;
}

_:lang(x)::-ms-backdrop, body {
font-family:YakuHanJPs, Meiryo, sans-serif;
}

article,aside,figure,footer,header,main,nav,section {
display:block;
}

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

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

input,button,select,textarea {
font:inherit;
vertical-align:middle;
}

ul,ol {
list-style:none;
}

h1,h2,h3,h4,h5,h6,strong {
font-family:'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
font-weight:600;
font-feature-settings:"palt";
}

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

a {
color:#07c;
text-decoration:none;
}

a:hover,a:active {
text-decoration:underline;
}

a img {
transition:opacity 0.5s ease-in-out;
}

a:hover img {
opacity:0.8;
}

/* clearfix */
.cf:after {
display:block;
content:"";
clear:both;
}

/* ▼iPhoneX対応 */
#wrapper {
padding-right:env(safe-area-inset-right);
padding-left:env(safe-area-inset-left);
padding-top:env(safe-area-inset-top);
padding-bottom:env(safe-area-inset-bottom);
}

.sponly {display:none;}
.txtL {text-align:left;}
.txtR {text-align:right;}
.center {text-align:center;}
.soroe {text-align:justify;}
.nowrap {white-space:nowrap;}
.imgL {float:left; margin:0 16px 0 0;}
.imgR {float:right; margin:0 0 0 16px;}
.hidden {overflow:hidden;}
.btm8 {margin-bottom:8px;}
.btm16 {margin-bottom:16px;}
.btm24 {margin-bottom:24px;}
.btm32 {margin-bottom:32px;}
.btm48 {margin-bottom:48px;}
.btm64 {margin-bottom:64px;}
.btm160 {margin-bottom:160px;}
.inL {display:inline-block;}
.kome {
padding-left:1em;
text-indent:-1em;
}
.usu {color:#888;}
.f24 {font-size:24px;}
.f18 {font-size:18px;}
.f14 {font-size:14px;}
.f12 {font-size:12px;}

.lato {
font-family:'Lato', sans-serif;
}


@media (max-width:500px) and (orientation:portrait) {
.imgL {float:none; margin:0 0 12px;}
.imgR {float:none; margin:0 0 12px;}
}


/*
-----------------------------------------------
▼ fbox設定
----------------------------------------------- */
.fbox {
margin-left:-16px;
margin-right:-16px;
display:flex;
flex-wrap:wrap;
}

.col {
padding:0 16px 32px;
vertical-align:top;
}

.col2 .col {
width:50%;
}

.col3 .col {
width:33.333%;
}

.col4 .col {
width:25%;
}

.col5 .col {
width:20%;
}

.fbox img {
max-width:100%;
height:auto;
}

@media (max-width:896px) {
.fbox.col3,
.fbox.col4,
.fbox.col5 {
margin-left:-8px;
margin-right:-8px;
}

.col3 .col,
.col4 .col,
.col5 .col {
padding:0 8px 32px;
}

.col4 .col,
.col5 .col {
width:33.3333%;
}

.fbox img {
display:block;
margin-right:auto;
margin-left:auto;
}

}

@media (max-width:500px) and (orientation:portrait) {
.col2 .col,
.col3 .col {
width:100%;
}

.col4 .col,
.col5 .col {
width:50%;
}

}

/*
-----------------------------------------------
▼スマホ基本
----------------------------------------------- */
@media (max-width:896px){
body {
font-family:YakuHanJPs, sans-serif;
overflow-x:hidden;
}

.pconly {display:none;}
.sponly {display:block;}

}


/*
-----------------------------------------------
▼ 共通
----------------------------------------------- */
#wrapper {
overflow:hidden;
}

.bread {
background:#ea5514;
color:#fff;
padding:4px 0;
font-size:14px;
}

.bread a {
color:#fff;
font-weight:600;
}

.bread-in {
margin:0 auto;
max-width:1056px;
padding:0 16px;
}

#header {
max-width:1432px;
margin-left:auto;
margin-right:auto;
padding:16px 16px;
}

.logo {
float:left;
width:224px;
}

nav {
text-align:right;
}

#nav {
margin-left:50px;
padding-top:0;
}

#nav li {
display:inline-block;
font-family:'Lato', sans-serif;
font-weight:700;
font-size:18px;
margin-left:30px;
position:relative;
}

#nav li a {
display:block;
color:#666;
}

#nav li a:hover {
color:#ea5514;
color:#000;
text-decoration:none;
}

.sub {
display:none;
background:rgba(200,200,200,0.9);
position:absolute; 
min-width:220px;
z-index:10;
border:solid #999 1px;
box-shadow:2px 2px 8px rgba(0, 0, 0, .3);
}

#nav .sub li {
display:block;
font-family:'Hiragino Sans', 'Yu Gothic', Meiryo, sans-serif;
font-weight:600;
font-size:14px;
text-align:left;
line-height:32px;
margin-left:0;
}

.sub li img {
position:relative;
width:16px;
top:0px;
left:10px;
}

#nav .sub li:first-child {
line-height:24px;
}

#nav .sub li a:hover {
background-color:#ea5514;
background-color:#666;
color:#fff;
}

.sub li a {
display:block;
text-indent:10px;
}


/*
-----------------------------------------------
▼バーガーメニュー
----------------------------------------------- */
#spmenu {
display:none;
}

/* ▼スマホ用ナビ設定 */
@media (max-width:896px) {
#spmenu {
display:block;
position:fixed;
top:0;
right:0;
z-index:70;
width:52px;
}

#spmenu.on {
background:url(../img/spmenu_on.png) no-repeat 0 0;
background-size:52px auto;
}

#spmenu.on img {
opacity:0;
}

#spmenu a img {
transition:opacity 0.5s ease-in-out;
opacity:0.7;
}

#spmenu a:hover img {
opacity:1;
}

#spmenu.on a:hover img {
opacity:0;
}

nav {
text-align:left;
}

#nav {
display:none;
position:fixed;
top:0;
left:0;
margin:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.4);
z-index:60;
overflow-y:scroll;
-webkit-overflow-scrolling:touch;
}

#nav li {
display:block;
font-size:16px;
margin:0;
color:#fff;
}

#nav li a {
display:block;
padding:10px 60px 10px 16px;
background:rgba(0,0,0,0.7);
color:#fff;
border-bottom:solid #ccc 1px;
}

#nav li a:hover {
color:#fff;
background:rgba(0,0,0,1);
text-decoration:none;
}

}

/*
-----------------------------------------------
▼ トップページ
----------------------------------------------- */
#topimg {
margin-bottom:140px;
}

#topimg img {
width:100%;
}

#topimg h1 {
font-size:32px;
color:#fff;
margin:-80px auto 80px;
max-width:1056px;
text-shadow:0 0 8px #000,0 0 12px #000;
padding:0 16px;
}

.blk {
margin:0 auto 128px;
max-width:1056px;
padding:0 16px;
}

h2 {
font-size:64px;
font-weight:300;
line-height:1.2;
color:#888;
text-align:center;
margin-bottom:16px;
}

.newsdl {
margin-top:-8px;
}

.newsdl dt {
float:left;
width:6em;
padding:8px 0;
}

.newsdl dd {
padding:8px 0 8px 6.5em;
border-bottom:solid #ddd 1px;
}

.sol_ul .in {
border:solid #ccc 1px;
background:#f0f0f0;
height:100%;
padding:12px;
}

.fadeInUp {
margin-top:-128px;
padding-top:128px;
opacity:0;
transform:translateY(128px);
transition:all 2s ease;
}

.fadeInUp.active {
opacity:1;
transform:translateY(0);
}


@media (max-width:896px) {
.logo {
float:left;
width:180px;
}

#topimg {
margin-bottom:64px;
}

#topimg h1 {
font-size:20px;
color:#333;
margin:8px auto 0;
max-width:1056px;
text-shadow:none;
}

.blk {
margin:0 auto 68px;
}

h2 {
font-size:48px;
}

.sol_ul.fbox.col3 {
margin-left:16px;
margin-right:16px;
}

.sol_ul .in {
border:solid #ccc 1px;
background:#f0f0f0;
height:100%;
padding:12px;
}

.fadeInUp {
margin-top:-64px;
padding-top:64px;
transform:translateY(64px);
}

.comp_ul.fadeInUp,
.service-blk.fadeInUp,
.blk.fadeInUp {
margin:-64px auto 64px;
}

.newsdl {
margin-top:0;
}

.newsdl dt {
float:none;
width:auto;
padding:0;
font-weight:600;
}

.newsdl dd {
padding:0 0 14px;
margin-bottom:14px;
}

}


/*
-----------------------------------------------
▼ About us
----------------------------------------------- */
.message-txt {
background:#fff;
padding:64px 90px;
border-radius:24px;
border:solid #ccc 1px;
}

.comp_ul dt {
float:left;
padding:8px 0 8px 8px;
width:10em;
font-weight:600;
}

.comp_ul dd {
padding:8px 8px 8px 11em;
border-bottom:solid #ccc 1px;
}

#map_custmomize3 {
border:solid #ccc 1px;
width:600px;
height:450px;
margin-bottom:8px;
}


@media (max-width:896px) {
.comp_ul dt {
float:none;
padding:2px 12px;
width:auto;
background:#666;
color:#fff;
}

.comp_ul dd {
padding:4px 0 16px;
border-bottom:none;
}

#map_custmomize3 {
width:100%;
height:360px;
}

}


/*
-----------------------------------------------
▼ Service
----------------------------------------------- */
.h2b {
font-size:48px;
font-weight:300;
line-height:1.2;
color:#888;
text-align:center;
margin-bottom:16px;
}

.h3a {
font-size:38px;
font-weight:300;
line-height:1.2;
color:#333;
text-align:center;
margin-bottom:24px;
}

.readcopy {
font-weight:600;
}

.bigimg img {
width:100%;
}

.blk02 {
margin-left:auto;
margin-right:auto;
max-width:948px;
padding:0 16px;
}

.h3b {
font-size:28px;
font-weight:600;
line-height:1.2;
color:#ea5514;
margin-bottom:16px;
}

.h4a {
font-size:24px;
font-weight:600;
line-height:1.2;
color:#333;
margin-bottom:16px;
}

.h4b {
font-size:24px;
font-weight:600;
line-height:1.2;
color:#333;
margin-bottom:16px;
}

.service-blk {
margin-left:48px;
margin-right:48px;
}

.kakomi01 {
display:inline-block;
font-size:18px;
font-weight:600;
color:#ea5514;
border:solid #ea5514 2px;
margin:0 0 24px 16px;
padding:2px 16px;
}

.indt {
padding-left:1em;
}

.triangle {
margin:12px 0 12px 80px;
width:0;
height:0;
border-style:solid;
border-width:24px 40px 0 40px;
border-color:#ea5514 transparent transparent transparent;
}

.ser-ul01 li {
padding-left:1em;
text-indent:-1em;
margin-bottom:.5em;
}

.ser-ol {
counter-reset:numb;
}

.ser-ol li {
line-height:1.4;
margin-bottom:1em;
padding-left:2em;
}

.ser-ol li:before {
counter-increment:numb;
content: counter(numb);
background:#ea5514;
display:inline-block;
font-weight:600;
width:1.5em;
height:1.5em;
text-align:center;
border-radius:50%;
color:#fff;
margin-left:-2em;
margin-right:.5em;
}

/* ▼ add */
.flex {
display:flex;
}

.flex-center {
align-items:center;
}

.row-reverse {
flex-direction:row-reverse;
}

.privacy_section_mark_image-isms {
width:200px;
}

.privacy_section_mark_image-isms img {
border:solid #ccc 1px;
}

.privacy_section_mark_text {
/* width:100%; */
flex:1;
margin-left:32px;
}

.row-reverse .privacy_section_mark_text {
margin-left:0;
margin-right:32px;
}

figcaption {
font-size:12px;
text-align:center;
}

.privacy_section {
border-bottom:solid #ccc 1px;
padding-bottom:32px;
}

.privacy_section + * {
margin-top:64px;
}

.bold {
font-weight:600;
}

.ul li {
position:relative;
padding-left:1.25em;
}

.ul li + li {
margin-top:.25em;
}

.ul li::before {
content:'';
position:absolute;
top:.65em;
left:.25em;
width:.5em;
height:.5em;
background:#999;
border-radius:50%;
}


@media (max-width:896px) {
.h2b {
font-size:32px;
}

.h3a {
font-size:24px;
}

.h3b {
font-size:24px;
}

.h4a {
font-size:18px;
}

.h4b {
font-size:18px;
}

.readcopy.center {
text-align:justify;
}

.service-blk {
margin-left:0;
margin-right:0;
}

}


/*
-----------------------------------------------
▼ Recruit
----------------------------------------------- */
.mov-blk {
max-width:640px;
margin-left:auto;
margin-right:auto;
margin-bottom:160px;
}

.yt {
position:relative;
padding-bottom:56.25%;
height:0;
overflow:hidden;
}

.yt iframe {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
}

@media (max-width:896px) {
.mov-blk {
margin-bottom:64px;
}

.mov-blk .btm64 {
margin-bottom:48px;
}

}


/*
-----------------------------------------------
▼ Contact
----------------------------------------------- */
.contact {
font-size:24px;
font-weight:bold;
background:url(../img/arrow.png) no-repeat 0 50%;
background-size:24px auto;
padding-left:32px;
}

.contact a {
color:#000;
}

@media (max-width:500px) and (orientation:portrait) {
.contact {
font-size:20px;
background-size:20px auto;
padding-left:28px;
}

}


/*
-----------------------------------------------
▼ footer
----------------------------------------------- */
#footer {
background:#333;
color:#fff;
padding:32px 0;
}

#footer a {
color:#fff;
}

#footer .blk {
margin:0 auto;
padding:0 16px;
}

.footlogo {
width:220px;
}

.foot-ul li {
display:inline-block;
font-family:'Lato', sans-serif;
font-weight:700;
margin-right:32px;
}

.copyright {
font-size:14px;
font-family:'Lato', sans-serif;
}

@media (max-width:640px) {
.foot-ul {
display:none;
}

.footlogo {
width:160px;
}

}


/*
---------------------------
▼pagetop
--------------------------- */
#pagetop {
width:64px;
height:64px;
position:fixed;
z-index:100;
right:16px;
bottom:-64px;
}

#pagetop a img {
opacity:0.7;
}

#pagetop a:hover img {
display:block;
opacity:1;
}

@media (max-width:500px) and (orientation:portrait) {
#pagetop {
right:12px;
bottom:-64px;
}
}


@media (print), (prefers-reduced-motion:reduce) {
* {
animation:none !important;
transition:none !important;
}
}


/* css_end */
