@charset "utf-8";
/* CSS Document */

html {scroll-behavior: smooth;}
:target { scroll-margin-top: 7.1354vw; }

body {
	color:#000; font-size:calc(18 * 0.052vw); line-height: 1.9; letter-spacing: 0.05em;
	font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
	font-weight:400;
	margin: 0 auto; height: 100%; overflow-x:hidden;
	background-color:#F5F5F5;
}

*, *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box;-o-box-sizing: border-box;  -ms-box-sizing: border-box;box-sizing: border-box;}

.lime { font-family: "Limelight", serif; font-weight: 400; font-style: normal; }

.rl { -ms-writing-mode: tb-rl; writing-mode: vertical-rl;}

button,input,textarea,select { appearance: none; -webkit-appearance: none; border:none; font-family: inherit; font-size: inherit; font-weight:600; letter-spacing: 0.1vw; }

strong { font-weight:600; }


.fs12vw { font-size:calc(12 * 0.052vw); }
.fs13vw { font-size:calc(13 * 0.052vw); }
.fs14vw { font-size:calc(14 * 0.052vw); }
.fs15vw { font-size:calc(15 * 0.052vw); }
.fs16vw { font-size:calc(16 * 0.052vw); }
.fs17vw { font-size:calc(17 * 0.052vw); }
.fs18vw { font-size:calc(18 * 0.052vw); }
.fs20vw { font-size:calc(20 * 0.052vw); }
.fs21vw { font-size:calc(21 * 0.052vw); }
.fs22vw { font-size:calc(22 * 0.052vw); }
.fs23vw { font-size:calc(23 * 0.052vw); }
.fs24vw { font-size:calc(24 * 0.052vw); }
.fs25vw { font-size:calc(25 * 0.052vw); }
.fs26vw { font-size:calc(26 * 0.052vw); }
.fs27vw { font-size:calc(27 * 0.052vw); }
.fs28vw { font-size:calc(28 * 0.052vw); }
.fs29vw { font-size:calc(29 * 0.052vw); }
.fs30vw { font-size:calc(30 * 0.052vw); }
.fs31vw { font-size:calc(31 * 0.052vw); }
.fs32vw { font-size:calc(32 * 0.052vw); }
.fs33vw { font-size:calc(33 * 0.052vw); }
.fs34vw { font-size:calc(34 * 0.052vw); }
.fs35vw { font-size:calc(35 * 0.052vw); }
.fs36vw { font-size:calc(36 * 0.052vw); }
.fs37vw { font-size:calc(37 * 0.052vw); }
.fs38vw { font-size:calc(38 * 0.052vw); }
.fs40vw { font-size:calc(40 * 0.052vw); }
.fs42vw { font-size:calc(42 * 0.052vw); }
.fs45vw { font-size:calc(45 * 0.052vw); }
.fs48vw { font-size:calc(48 * 0.052vw); }
.fs50vw { font-size:calc(50 * 0.052vw); }
.fs52vw { font-size:calc(52 * 0.052vw); }
.fs53vw { font-size:calc(53 * 0.052vw); }
.fs54vw { font-size:calc(54 * 0.052vw); }
.fs55vw { font-size:calc(55 * 0.052vw); }
.fs56vw { font-size:calc(56 * 0.052vw); }
.fs60vw { font-size:calc(60 * 0.052vw); }
.fs62vw { font-size:calc(62 * 0.052vw); }
.fs64vw { font-size:calc(64 * 0.052vw); }
.fs65vw { font-size:calc(65 * 0.052vw); }
.fs66vw { font-size:calc(66 * 0.052vw); }
.fs68vw { font-size:calc(68 * 0.052vw); }
.fs70vw { font-size:calc(70 * 0.052vw); }
.fs72vw { font-size:calc(72 * 0.052vw); }
.fs80vw { font-size:calc(80 * 0.052vw); }
.fs84vw { font-size:calc(84 * 0.052vw); }
.fs100vw { font-size:calc(100 * 0.052vw); }
.fs110vw { font-size:calc(100 * 0.052vw); }
.fs174vw { font-size:calc(174 * 0.052vw); }

.serif {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;	
}
.cormorant-garamond {
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-style: normal;
}

img { border: none; vertical-align: middle; }

img.top { vertical-align: top; }
img.bottom { vertical-align: bottom; }
img.banner { border: solid 1px #DDD; }

address, em { font-style: normal; }

a { color: #111111; text-decoration: none; }

/*a:hover,input[type="submit"]:hover, input[type="reset"]:hover {opacity: 0.9; filter: alpha(opacity=90); -ms-filter: "alpha( opacity=90 )";}*/

.position_r { position:relative; z-index:1; }
.position_a { position:absolute; z-index:2; }
.position_f { position:fixed; z-index:3; }

/*********** class ****************************************/

/********** float ************/
.c-both { clear: both; }
.clearfix::after { content: ""; clear: both; display: block; }
.left { float: left; }
.right { float: right; }
.center { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.txt_right { margin-left:auto; margin-right:0; text-align:right; }

/******* flex box ***********/
.flex {display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex;justify-content: space-between;}
.height {justify-content: space-evenly; flex-wrap: wrap; align-items: stretch;}

/* image parent cover *******/
.fit { object-fit: cover; font-family: 'object-fit: cover;'; max-width: 100%; }

/****** layout ********/
.inner {width: 94%; max-width: calc(1640vw /19.2); margin: 0 auto;}
.middle_inner {width: 94%; max-width: calc(1520vw /19.2); margin: 0 auto;;}
.low_inner {width: 94%; max-width: calc(1300vw /19.2); margin: 0 auto;}

.heading { width: 100%; }

.w93 {width: 97%; max-width:calc(1780vw /19.2);}
.w90 {width: 97%; max-width:calc(1720vw /19.2);}
.w57 {width:calc(1090vw /19.2);}
.w56 {width:calc(1080vw /19.2);}
.w48 {width:calc(920vw /19.2);}
.w40 {width:calc(780vw /19.2);}
.w32 {width:calc(620vw /19.2);}
.w30 {width:calc(570vw /19.2);}
.w27 {width:calc(520vw /19.2);}
.w25_5 {width:calc(490vw /19.2);}

/* image parent cover *******/
.fit { object-fit: cover; font-family: 'object-fit: cover;'; max-width: 100%; }

dl.table { display:table; width:100%; }
dl.table dt,dl.table dd { display:table-cell; }

/****** display ********/
.pc { display: unset; }
.sp { display: none; }
.grid { display: grid; }

/****** color ********/
.black { color:#212121; }
.white { color:#FFF; }
.red {color:#E0121B;}

.bg_white {background-color:#FFF;}
.bg_navy {background-color:#002040;}
.bg_red {background-color:#E1121C}
.bg_gray {background-color:#F5F5F5;}

.gradient_w50l {background: linear-gradient(to right, #FFF 50%, transparent 50%,transparent);}
.gradient_w50r {background: linear-gradient(to right, transparent 50%, #FFF 50%, #FFF);}
.gradient_w56l {background: linear-gradient(to right, #FFF 56%, transparent 56%,transparent);}
.gradient_w56r {background: linear-gradient(to right, transparent 44%, #FFF 44%, #FFF);}
.gradient_w90l {background: linear-gradient(to right, #FFF 89.58333%, transparent 89.58333%,transparent);}
.gradient_w90r {background: linear-gradient(to right, transparent 10.41666%, #FFF 10.41666%, #FFF);}
.gradient_w100 {background: linear-gradient(to right, #FFF, #FFF);}
.gradient_w90_navy {background: linear-gradient(to right, #002040 89.58333%, transparent 89.58333%,transparent);}
.gradient_w50r.container {padding:4.5em 0 8em 0;}

.v-writing {writing-mode: vertical-rl;}
span.slash {transform: rotate(10deg); display: inline-block;}

/****** ttl ********/
.ttl {margin-top:1.5em; letter-spacing: 0.05em;}
.ttl.serif {font-weight:600;}
.ttl.under_bar {position: relative; margin-bottom: 1.75em;}
.ttl.under_bar::after {content:"―";position: absolute; color:#02214D; left:0.25em; bottom:-1.6em; transform: scale(1.4,0.85);}
.white .ttl.under_bar::after {color:#FFF;}
.ttl.under_bar.center::after {left:calc(50% - 0.5em);}

.ttl span.slash {margin-right:0.5em;}

.sub_ttl.cormorant-garamond {line-height: 1.2; margin-bottom: 0.5em;}
.sub_ttl.slash {position: relative; margin-left:0.5em;}
.sub_ttl.slash.center {margin-left:auto;}
.sub_ttl.slash::before {content:"/"; color:#E0121B; font-weight: 100; transform: rotate(10deg); display: inline-block; position: absolute; left:-0.5em;}
.sub_ttl.slash.center::before {position: relative; left: -0.25em;}
.sub_ttl.v-writing.slash {margin: 0; padding-top: 1em;} 
.sub_ttl.v-writing.slash::before { transform: rotate(135deg); top: 0.35em; left:0;}

.ttl span.ttl2 {display: inline-block; margin-left:1.05em;}

/****** btn ********/
.more {padding: 0.2em 0.75em; width:50%; max-width: 280px; box-sizing: border-box; display: block; margin-top:2em; position: relative; left:0; }
.more::after {content:"―"; margin-left:0.25em;margin-left: 0.5em; transform: scale(1.65,0.75); display: inline-block; transition-property: all; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
.more:hover::after {margin-left: 1.25em; transform: scale(3.3,0.75);}

.text_link {display: inline-block;}
a.under_line {text-decoration: underline;}

a.red{transition-property: color; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
a.red:hover {color:#F04D55;}

/*********** header ****************************************/
header#header {width:100%;}
header#header .inner {width:98%; max-width: calc(1880vw / 19.2);}
header#header .logo {width: calc(240vw / 19.2); margin-top: 0.5em; display:block;}
header#header p.logo {margin-top:1em;}
header#header .logo .logo_img {max-width: 100%; transition-property: all; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
header#header .logo .logo_img:hover {filter: brightness(1.3);}

header#header .zdo_drawer_nav {margin-top:6em; margin-bottom: 6em;}
header#header .zdo_drawer_nav {min-height: 70vh; padding: 3.5em 0;}
ul.header_nav {width: 94%; max-width: calc(1000vw /19.2); margin: 0em auto; padding-left: 0;}
ul.header_nav li {float:left; width:48%; margin-bottom: 1.75em;border-bottom: 1px solid #AAAAAA; padding-bottom: 0.85em;
 opacity: 1; transition-property: opacity; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
ul.header_nav li a {display: block; width: 100%; transition-property: color; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
ul.header_nav li:nth-of-type(2n) {float:right;}
ul.header_nav .ttl, ul.header_nav .sub_ttl {display: block; position: relative; left:0; transition-property: all; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
ul.header_nav li a:hover .ttl {color:#E0121B; left:0.5em;}
ul.header_nav .ttl {margin-top:0.2em;}
ul.header_nav .sub_ttl {margin-bottom: 0;}
ul.header_nav .ttl .circle.arrow {display: inline-block; font-size: 0.625em; margin-left: 0.5em;}

/*********** top ****************************************/
section#fv {height: calc(1040vw / 19.2); background-image: url(../img/top/fv.jpg); background-size: cover; background-position: top center;}
section#fv .catch {top: calc(320vw / 19.2);}
section#fv .catch .text, .page_header .catch .text {display:table; margin-bottom:0.15em; padding:0 0.35em; line-height: 1.4;}
.page_header .catch .text {padding:0.15em 0.65em 0.15em 0.35em}

section#purpose {padding:5em 0 3em 0;}

section#top_business {padding:0.5em 0 10em 0; background-image: url(../img/top/top02.jpg); background-size: 100% auto; background-position: top center; background-repeat: no-repeat;}
section#top_business .flex.cards {margin-top:7.25vw;}
section#top_business .middle_inner {max-width: calc(1780vw /19.2);}
.flex.cards {justify-content: space-between;}
.flex.cards .card {width: 24%; display: block;}
.flex.cards .card .card_img {max-width: 100%;}
.flex.cards .card figcaption {bottom:-1.5em; right:0; width:94.8%;box-sizing: border-box;padding: 0.65em 0.75em; font-weight: 500; min-height: 5em;}
.circle.arrow {width:2.25em; height:2.25em; border-radius: 100vmax; text-align: center; display: block; line-height: 2.25em;}
.flex.cards .card figcaption .circle.arrow {right: -0.5em; bottom: -0.5em; transition-property: right; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
.flex.cards .card:hover figcaption .circle.arrow {right: -1em;}
.flex.cards .card figcaption .ttl2 {display: inline-block; margin-left:0.8em;}

section#footer_info {background-image: url(../img/footer_img.jpg); background-size: 100% auto; background-position: bottom center; padding-bottom: calc(390vw / 19.2); background-repeat: no-repeat;}
section#footer_info .company_info {padding: calc(30vw / 19.2) 0;}
section#footer_info .company_info .sub_ttl.v-writing {margin-top: 0.5em;margin-right: calc(40vw / 19.2);}
section#footer_info .company_info .tel_num {margin-right:1.5em;}
section#footer_info .footer_info_img {width:53.29%;}
 
/*********** contents_page ****************************************/
.page_header {height: calc(530vw / 19.2); background-size: cover; background-position: top center;}
.page_header .catch {top: calc(275vw / 19.2);}

.breadcrumbs {list-style: none; padding:1.125em 0;}
.breadcrumbs li {display: inline-block;}
.breadcrumbs li.gt {margin-left:0.35em; margin-right: 0.35em;}
.breadcrumbs li a {text-decoration: underline; transition-property: color; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
.breadcrumbs li a:hover {color:#4C4C4C;}

section.f_menu .low_inner {margin: 0 auto; z-index:1; padding-top: 6em; max-width: 1300px;}
section.f_menu .gradient_w90_navy {width:100%; height: calc(400vw / 19.2); min-height: 320px; z-index: 0;}
section.f_menu .flex.cards .card {width: 47.69%; display: block;}

section.f_menu .flex.cards .card figcaption {width:73.38%;}

.flex.cards .card_img_container {display: block; overflow: hidden; width:100%; height: auto; aspect-ratio:620 / 400;}
.flex.cards .card .card_img {object-fit: cover; transition-property: all; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
.flex.cards .card:hover .card_img {transform: scale(1.2,1.2);}

section#top_business .flex.cards .card_img_container {aspect-ratio:480 / 400;}

/*********** company ****************************************/
section#company_fv {background-image: url(../img/company/page_header.jpg);}

section#company_profile, section#about_us {padding:4em 0; margin:4em 0 0 0;}
section#company_profile .company_profile,section#business #corporate_group .group_company_profile {border-bottom: 1px solid #AAAAAA; padding-bottom: 0.75em;}
section#company_profile .company_profile:first-of-type {margin-top:4.5em;}
section#company_profile .company_profile dt, section#business #corporate_group .group_company_profile dt {font-weight: 500; margin-bottom: 0.25em;}
section#company_profile .company_profile dd, section#business #corporate_group .group_company_profile dd {margin-left:1em;}
section#company_profile .company_profile dd .tel_num, section#business #corporate_group .group_company_profile dd .tel {margin-right:2em;}
section#business #corporate_group .group_company_profile dd .office {font-weight: 500;}
section#company_profile_map {padding:3em 0;}
section#company_profile_map .g_map {height:480px;}

section#group .group_company, section#business .business_content {margin:5.5em 0 5.5em 0; padding-bottom: 3em;}
section#group .group_company1, section#business .business_content1 {margin-top:7.5em; margin-bottom: 0;}
section#group .group_company2, section#business .business_content3 {margin-bottom:8em;}
section#business .business_content4 {margin-left:auto; margin-right:auto;}

section#group .group_company .group_company_img, section#business .business_content .business_img {margin-top:-2.5em;}
section#group .group_company .group_company_text, section#business .business_content .business_text {padding: 3.5em 0 0 0;}

.ones_logo_img {width: calc(133vw / 19.2); max-width: 100%;}
.james_logo_img {width: calc(230vw / 19.2); max-width: 100%;}

.group_company_text .ttl {margin-top: 0.75em;}
.group_company_text dl.item:first-of-type {margin-top:3.5em;}
.group_company_text dl.item dt {font-weight: 500;}
.group_company_text dl.item dt .boxed {padding: 0.05em 0.5em;}
.group_company_text dl.item dd {margin-left: 0;}
.group_company_text dl.item dd .office {display: inline-block; margin: 0.25em 0 0 0; font-weight: 500;}
.group_company_text dl.item dd .explanation {display: block; margin-top: 0.5em;}

/*********** about ****************************************/
section#about_fv {background-image: url(../img/about/page_header.jpg);}

section#business .business_content .business_text .large_num {margin: 0; top: -1em; transform: skewX(-10deg); display: inline-block;}

section#business #corporate_group {padding:1.25em 0 5em 0;}
section#business #corporate_group .ttl {margin-top:0.5em;}
section#business #corporate_group .group_comapny {width:47.56%; margin-top: 1em;}
section#business #corporate_group .group_company_profile:first-of-type {border-top: 1px solid #AAAAAA; padding-top: 1em;}

/*********** privacy_policy ****************************************/
section#privacy_fv {background-image: url(../img/privacy/page_header.jpg);}

section#privacy_policy {padding:1.5em 0 4em 0; margin:2em 0 6em 0;}
section#privacy_policy hr.border {border: 1px solid #AAA; margin: 3em auto;}
section#privacy_policy dl.clause dt {font-weight:600; margin-top: 1.25em; margin-left: 1.5em; text-indent: -1.5em;}
section#privacy_policy dl.clause dd {margin-left:0; margin-top: 0.5em;}
section#privacy_policy dl.clause dd ul {margin-top:1em; padding-left: 2em;}
section#privacy_policy dl.clause dd .tel {margin-top:0.75em; display: block;}

/*********** error_404 ****************************************/
section.error404 .container {margin: 2em auto; padding:2em 0 4em 0;}

/*********** footer ****************************************/
footer#footer {padding: 2.5em 0 0.75em 0;}
footer#footer .f_logo {display: block; width:calc(155vw /19.2);}
footer#footer .f_logo .f_logo_img {max-width: 100%; opacity: 1; transition-property: opacity; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
footer#footer .f_logo .f_logo_img:hover {opacity: 0.8;}
footer#footer .f_nav {margin:2.25em auto 2.75em auto; padding-left: 0;}
footer#footer .f_nav li {display: inline-block; margin:0 1.25em;}
footer#footer .f_nav li a {transition-property: color; transition-duration: 0.5s; transition-timing-function: ease-in-out;}
footer#footer .f_nav li a:hover {color:#CCD2D9;}

footer#footer .copy {font-weight: 600;}


@media screen and (max-width: 1024px) {
	
}
