/*
Theme Name: Nikkojusetsu Theme
Theme URI: https://nikkojusetsu.co.jp
Author: Brueno Design
Author URI: https://brueno.jp
Description: This is "Nikkojusetsu" theme.
*/

/*
	 1: reset
	 2: common
	 3: header
	 4: footer
	 5: main
*/



/* --------------------------------------------------------------
    1: reset
-------------------------------------------------------------- */
html {
    font-family: sans-serif;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

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

audio, canvas, progress, video {
    display: inline-block;
    vertical-align: baseline
}

audio:not([controls]) {
    display: none;
    height: 0
}

[hidden], template {
    display: none
}

a {
    background-color: transparent
}

.pc a:active, a:hover {
    outline: 0
}

abbr[title] {
    border-bottom: 1px dotted
}

b, strong {
    font-weight: 700
}

dfn {
    font-style: italic
}

mark {
    background: #ff0;
    color: #000
}

small {
    font-size: 80%
}

sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative
}

sup {
    top: -.5em
}

sub {
    bottom: -.25em
}

svg:not(:root) {
    overflow: hidden
}

hr {
    box-sizing: content-box
}

pre {
    overflow: auto
}

code, kbd, pre, samp {
    font-family: monospace, monospace;
    font-size: 1em
}

button, input, optgroup, select, textarea {
    color: inherit;
    font: inherit;
    margin: 0
}

button {
    overflow: visible
}

button, select {
    text-transform: none
}

button, html input[type="button"], input[type="reset"], input[type="submit"] {
    -webkit-appearance: button;
    cursor: pointer
}

button[disabled], html input[disabled] {
    cursor: default
}

button::-moz-focus-inner, input::-moz-focus-inner {
    border: 0;
    padding: 0
}

input {
    line-height: normal
}

input[type="checkbox"], input[type="radio"] {
    box-sizing: border-box;
    padding: 0
}

input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
    height: auto
}

input[type="search"] {
    -webkit-appearance: textfield;
    box-sizing: content-box
}

input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none
}

fieldset {
    border: 1px solid silver
}

textarea {
    overflow: auto
}

optgroup {
    font-weight: 700
}

html {
    overflow-y: scroll
}

html, body, div, span {
    
}

html, body, div, span, object, article, section {
    margin: 0;
    padding: 0;
    outline: 0;
    border: 0
}

iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite,
code, del, dfn, em, img, ins, kbd, q, samp, 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, dialog, figure, footer,
header, hgroup, menu, nav, section, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%;
    font-weight: 400
}

ul li {
    list-style: none
}

object, embed {
    border: 0;
    vertical-align: bottom;
    outline: none
}

blockquote, q {
    quotes: none
}

blockquote:before, blockquote:after, q:before, q:after {
    content: '';
    content: none
}

a {
    margin: 0;
    padding: 0;
    border: 0;
    background: 0 0;
    outline: 0
}

a img {
    border: none;
    text-decoration: none;
    outline: 0
}

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

caption, th {
    text-align: left
}

sup {
    vertical-align: text-top
}

sub {
    vertical-align: text-bottom
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0
}

input, select {
    vertical-align: middle
}

label {
    cursor: pointer
}

img {
    width: 100%;
    height: auto;
    border: none;
    vertical-align: bottom;
	touch-callout: none;
	-moz-user-select: none; /* These user-select properties are inheritable, used to prevent text selection */
    -webkit-user-select: none;
    -ms-user-select: none; /* From IE10 only */
    user-select: none; /* Not valid CSS yet, as of July 2012 */
    -webkit-user-drag: none; /* Prevents dragging of images/divs etc */
    user-drag: none;
	pointer-events: none;
}



/* --------------------------------------------------------------
    2: common
-------------------------------------------------------------- */

@font-face {
    font-family:"notosans_m";
    src:url("common/font/notosans_m.eot?#iefix");
    src:url("common/font/notosans_m.eot?#iefix") format("eot"),
    url("common/font/notosans_m.woff") format("woff"),
    url("common/font/notosans_m.ttf") format("truetype");
}

:root {
    --font-size: 16px;
    --font-size-h2: 1.8rem;
    --font-size-h3: 1.5rem;
    --font-size-h4: 1.1rem;
    --font-size-lead: 1.3rem;
    --font-size-cap: 0.75rem;
    --font-size-sup: 0.65rem;
    --line-height-h2: 1.3;
    --line-height-h3: 1.3;
    --space-l: 200px;
    --space-m: 60px;
    --space-s: 40px;
    --space-ss: 30px;
    --ease: cubic-bezier(.4, 0, .2, 1);
}

@media only screen and (max-width: 1300px) {
    :root {
        --font-size: 15px;
    }
}

@media only screen and (max-width: 800px) {
    :root {
        --font-size: 15px;
    }
}

html {
}

body {
    -webkit-text-size-adjust: 100%;
	font-family: 'notosans_m',"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size: var(--font-size);
    line-height: 2;
	letter-spacing: 0.05em;
    color: #000;
    min-height: 100vh;
    padding-bottom: 340px; /*footer + 80px*/
	background: #fff;
}

input, textarea {
   font-family: 'notosans_m',"Helvetica Neue",Helvetica,Arial,sans-serif;
}

* html body, * html input, * html textarea {
    font-family: 'notosans_m',"Helvetica Neue",Helvetica,Arial,sans-serif;
}

a:link {
    position: relative;
    color: #000;
    text-decoration: none;
    transition: all 0.5s 0s ease;
}

a:visited {
    color: #000;
}

.pc a:hover {
    color: #000;
    opacity: 0.3;
}

a:active {
    color: #000;
}

main a::after {
	position: absolute;
    bottom: -4px;
	left: 0;
	content: '';
	width: 100%;
	height: 1px;
	background-color: #676767;
}

.pc main a:hover::after {
}

::selection {
    background: rgba(0, 0, 0, 0.1);
}

* {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -ms-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased
}

@media only screen and (max-width: 800px) {
    body {
        padding-bottom: 280px;
    }
}



/* --------------------------------------------------------------
    3: header
-------------------------------------------------------------- */

header {
    position: relative;
    padding-left: 5vw;
    padding-right: 5vw;
    font-size: 0.87rem;
    z-index: 100;
    /* background: #f1eee9; */
}

header a.underline:link {
    position: relative;
    text-decoration: none;
}

.pc header a.underline:hover {
    opacity: 1;
}

header a.underline::after {
	position: absolute;
	bottom: 2px;
	left: 0;
	content: '';
	width: 0;
	height: 2px;
	background-color: #676767;
	transition: .4s;
}

.pc header a.underline:hover::after {
	width: 100%;
}

a.noUnderline::after {
    display: none;
}

header .underline {
    position: relative;
}

header .underline::after {
	position: absolute;
	bottom: -6px;
	left: 0;
	content: '';
	width: 100%;
	height: 2px;
	background-color: #676767;
}


/* nav.pc */
header nav.pc {
    height: 10px;
}

header nav.pc h1 {
	position: absolute;
	top: 30px;
	left: 5vw;
	z-index: 10;
}

header nav.pc h1 a {
	display: block;
	width: 180px;
	height: 31px;
	text-indent: -9999px;
	background: url(common/img/header_logo.svg) no-repeat;
    background-size: contain;
	transition: all 0.5s 0s ease;
}

.pc header nav.pc h1 a:hover {
	opacity: 0.5;
}

header nav.pc ul.gNav {
	position: absolute;
	top: 33px;
	right: 5vw;
	line-height: 2.2;
	z-index: 10;
	transition: all 0.5s 0s ease;
}

header nav.pc ul.gNav li {
    display: inline;
    margin-left: 25px;
}

header nav.pc ul.gNav li a {
    display: inline-block;
    height: 30px;
    line-height: 30px;
    transition: all 0.5s 0s ease;
}

header nav.pc ul.gNav li.contact {
    margin-left: 30px;
}

header nav.pc ul.gNav li.contact a {
    padding: 0 12px;
    color: #fff;
	background: #444444;
}

.pc header nav.pc ul.gNav li.contact a:hover {
    background: #728b3f;
    opacity: 1;
}

header nav.pc ul.gNav li.fb {
    margin-left: 0;
	text-indent: -9999px;
}

header nav.pc ul.gNav li.fb a {
    position: absolute;
    top: 100px;
    right: 0;
	display: block;
	width: 18px;
	height: 18px;
	margin-top: 8px;
	background: url(common/img/header_fb.svg) no-repeat;
}
/* nav.pc */


/* nav.sp */
header nav.sp {
	display: none;
    height: 10px;
}


header nav.sp h1 {
	position: absolute;
	top: 20px;
	left: 5vw;
	z-index: 20;
    transition: all 0.5s 0s ease;
}

header nav.sp.on h1 {
    position: fixed;
    top: 30px;
    left: 60px;
}

header nav.sp h1 a {
	display: block;
	width: 160px;
	height: 27px;
	text-indent: -9999px;
	background: url(common/img/header_logo.svg) no-repeat;
    background-size: contain;
	transition: all 0.5s 0s ease;
}

.pc header nav.sp h1 a:hover {
	opacity: 0.5;
}

header nav.sp .menu {
    position: fixed;
    display: block;
    top: 20px;
    right: 5vw;
    width: 24px;
    height: 24px;
    border: none;
    outline: none;
    background-color: transparent;
    /*background-color: #eee:*/
    z-index: 20;
}

header nav.sp .menu:before {
    content: "";
    position: absolute;
    top: 7px;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background-color: #676767;
    transition: 0.4s;
}

header nav.sp.on .menu:before {
    top: 11px;
    transform: rotate(45deg);
}

header nav.sp .menu:after {
    content: "";
    position: absolute;
    bottom: 7px;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background-color: #676767;
    transition: 0.4s;
}

header nav.sp.on .menu:after {
    bottom: 11px;
    transform: rotate(-45deg);
}

header nav.sp ul.gNav {
	position: fixed;
	left: -100px;
    transform: translate(0, -50%);
    top: 50%;
    font-size: var(--font-size-h4);
	line-height: 1.6;
    opacity: 0;
	z-index: 20;
	transition: all 0.5s 0s ease;
    pointer-events: none;
}

header nav.sp.on ul.gNav {
	left: 60px;
    opacity: 1;
    pointer-events: auto;
}

header nav.sp ul.gNav .headList {
    margin-bottom: 15px;
}

header nav.sp ul.gNav .headList li {
    font-size: 13px;
    line-height: 1.9;
}

header nav.sp ul.gNav .headList li a {
    color: #555;
}

header nav.sp ul.gNav li.fb a {
    position: absolute;
    bottom: calc(-50vh + 160px);
	display: block;
	width: 25px;
	height: 25px;
    text-indent: -9999px;
	background: url(common/img/header_fb.svg) no-repeat;
    background-size: contain;
}

header nav.sp .base {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: #fff;
	opacity: 0;
	z-index: 10;
}
/* nav.sp */

/*
header nav.pc ul.gNav a:link,
header nav.sp ul.gNav a:link {
    color: #000;
    text-decoration: none;
	transition: all 0.3s 0s ease;
}

header nav.pc ul.gNav a:visited,
header nav.sp ul.gNav a:visited {
    color: #000;
}

.pc header nav.pc ul.gNav a:hover {
    color: #000;
    text-decoration: none;
	opacity: 0.3;
}

header nav.pc ul.gNav a:active,
header nav.sp ul.gNav a:active {
    color: #000;
}
*/

@media only screen and (max-width: 980px) {
    header nav.pc ul.gNav li {
        margin-left: 20px;
    }
    header nav.pc ul.gNav li.contact {
        position: absolute;
        top: 40px;
        right: 0;
    }
}

@media only screen and (max-width: 800px) {
	header nav.pc {
		display: none;
	}
	header nav.sp {
		display: block;
	}
    header nav.sp .base {
        background: #f1eee9;
    }
}

@media only screen and (max-width: 600px) {
	header nav.sp h1 {
	}
}

@media only screen and (min-width: 800px) and (max-height: 650px) {
	header nav.pc {
		display: none;
	}
	header nav.pc h1 {
		display: none;
	}
	header nav.pc ul.gNav {
		left: -100px;
	}
	header nav.sp {
		display: block;
	}
}



/* --------------------------------------------------------------
    5: main
-------------------------------------------------------------- */

.conts {
    position: relative;
    margin-top: 120px;
    margin-bottom: 120px;
    padding-top: 80px;
    padding-left: calc( (100vw - 1200px) / 2 );
    padding-right: calc( (100vw - 1200px) / 2 );
}

.contsBox {
    position: relative;
    margin-top: calc(var(--space-m) - 25px);
}

.partition {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.partition .contsBlock1 {
    width: 100%;
    margin-top: 20px;
}

.partition .contsBlock2 {
    width: calc(50% - 10px);
    margin-top: 20px;
}

.partition .contsBlock3 {
    width: calc(33% - 13px);
    margin-top: 20px;
}

.partition .contsBlock4 {
    width: calc(25% - 15px);
    margin-top: 20px;
}

.conts h2 {
    font-size: var(--font-size-h2);
    line-height: var(--line-height-h2);
    margin-bottom: calc(var(--space-m) - 15px);
}

.conts h2 .sepa {
    display: inline-block;
    width: 1.5em;
    margin-bottom: 10px;
    margin-left: 20px;
    margin-right: 20px;
    border-bottom: 1px solid #000;
}

.conts h3 {
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
    margin-bottom: calc(var(--space-m) - 5px);
    padding-bottom: 12px;
    border-bottom: 1px solid #676767;
}

.conts h4 {
    font-size: var(--font-size-h4);
    line-height: var(--line-height-h4);
    margin-bottom: calc(var(--space-ss) - 15px);
    /* margin-top: -9px; */
}

.conts p {
    margin-bottom: calc(var(--space-s) - 15px);
}

.conts p:last-of-type {
    margin-bottom: 0;
}

.conts .lead {
    font-size: var(--font-size-lead);
    margin-bottom: calc(var(--space-m) - 15px);
}

.conts .caption {
    font-size: var(--font-size-cap);
    margin-bottom: calc(var(--space-s) - 15px);
}

.conts .grafCaption {
    position: relative;
    margin-top: 3px;
    font-size: var(--font-size-sup);
}

.conts .grafCaption span.right {
    position: absolute;
    right: 0;
}

.conts .sup {
    font-size: var(--font-size-sup);
    vertical-align: top;
    margin-left: -12px;
}

.conts p.headStamp {
    display: inline-block;
    height: 23px;
    padding: 0 14px;
    margin-bottom: 12px;
    font-size: 12px;
    line-height: 23px;
    color: #fff;
    border-radius: 30px;
    background: #444444;
}

dl.contsList {
    display: flex;
    flex-wrap: wrap;
    line-height: 1.4;
}

dl.contsList dt {
    width: 6em;
    margin-bottom: 8px;
}

dl.contsList dd {
    width: calc(100% - 6em);
    margin-bottom: 8px;
}

dl.contsList dt:last-of-type,
dl.contsList dd:last-of-type {
   margin-bottom: 0;
}

ul.contsList li {
    line-height: 1.4;
    margin-bottom: 8px;
}

span.unWrap {
    display: inline-block;
}

img.graf {
    border: 1px solid #676767;
}

.conts ul.pNav {
    margin-top: calc(var(--space-m) - 10px);
    margin-bottom: calc(var(--space-m) - 10px);
    padding: 10px 0;
    border-top: 1px solid #676767;
    border-bottom: 1px solid #676767;
	transition: all 0.5s 0s ease;
}

.conts ul.pNav li {
    display: inline;
    margin-right: 25px;
}

.conts ul.pNav li:last-of-type {
    margin-right: 0;
}

.conts ul.pNav a {
    display: inline-block;
    height: 30px;
    line-height: 30px;
    padding-right: 32px;
    background: url(common/img/icon_arrow_right.svg) no-repeat;
    background-position: calc(100% - 5px) 9px;
    background-size: 18px 13px;
    transition: all 0.3s 0s ease;
}

.pc .conts ul.pNav a:hover {
    background-position: calc(100%) 9px;
    opacity: 0.6;
}

.conts ul.pNav a::after {
    display: none;
}

.conts ul.pNav li.separator {
    position: relative;
    display: inline-block;
    width: 30px;
    margin-right: 30px;
    text-indent: -9999px;
}

.conts ul.pNav li.separator::after {
    content: '';
    position: absolute;
    top: 15px;
    display: block;
    width: 100%;
    height: 1px;
    background: #676767;
}

.onPC {
    display: block;
}

.onSP {
    display: none;
}

@media only screen and (max-width: 1300px) {
	.conts {
        padding-left: 5vw;
        padding-right: 5vw;
    }
}

@media only screen and (max-width: 800px) {
    .conts {
        margin-top: 70px;
        margin-bottom: 70px;
    }
	.partition .contsBlock2 {
        width: 100%;
    }
    .partition .contsBlock4 {
        width: calc(50% - 10px);
    }
    .onPC {
        display: none;
    }
    .onSP {
        display: block;
    }
}

@media only screen and (max-width: 450px) {
    .partition .contsBlock4 {
        width: 100%
    }
}


/* top */
body.top #news.conts,
body.top #business.conts,
body.top #case.conts,
body.top #whfs.conts {
    padding-top: 20px;
}

body.top .conts h3 {
    margin-bottom: calc(var(--space-m) - 25px);
}

body.top #head.conts h2.phrase {
    max-width: 680px;
    margin-bottom: calc(var(--space-m) + 5px);
    font-size: 
}

body.top #head.conts p {
    margin-bottom: calc(var(--space-s) - 20px);
}

body.top #head.conts img.image {
    position: absolute;
    bottom: 9px;
    right: 5vw;
    right: calc( (100vw - 1200px) / 2 );
    width: 300px;
}

body.top #visual.conts {
    padding-top: 0; 
    padding-left: 0;
    padding-right: 0;
}

body.top #visual.conts #visualArea {
    aspect-ratio: 150/64;
}

body.top ul.newsList {
    margin-bottom: calc(var(--space-s) - 10px);
}

ul.newsList li {
    position: relative;
    line-height: 1.4;
    margin-bottom: 15px;
    padding-right: 12em;
}

ul.newsList li a {
    display: block;
    width: 100%;
}

ul.newsList li a::after {
    display: none;
}

ul.newsList li .title {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

ul.newsList li .date {
    position: absolute;
    top: 2px;
    right: 8em;
    font-size: var(--font-size-cap);
}

ul.newsList li .category {
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    width: 5em;
    height: 20px;
}

ul.newsList li .category a {
    display: block;
    width: 100%;
    height: 20px;
    font-size: var(--font-size-sup);
    line-height: 20px;
    text-align: center;
    color: #fff;
    border-radius: 30px;
    background: #444444;
}

.pc ul.newsList li .category a:hover {
    background: #728b3f;
    opacity: 1;
}

body.top .partition .contsBlock2 {
    width: calc(55%);
    margin-top: 0;
}

body.top .partition .contsBlock2:last-of-type {
    width: calc(45% - 60px);
}

body.top .partition .contsBlock2 img {
    margin-top: 8px;
}

body.top .rink a {
    display: inline-block;
    height: 38px;
    line-height: 38px;
    padding-left: 28px;
    padding-right: 52px;
    font-size: 13px;
    border: 1px solid #676767;
    background: url(common/img/icon_arrow_right.svg) no-repeat;
    background-position: calc(100% - 20px) 12px;
    background-size: 18px 13px;
    transition: all 0.3s 0s ease;
}

body.pc.top .rink a:hover {
    background-position: calc(100% - 10px) 12px;
    opacity: 0.6;
}

body.pc.top .rink a::after {
    display: none;
}

@media only screen and (max-width: 1300px) {
    body.top #head.conts img.image {
        right: 5vw;
    }
}

@media only screen and (max-width: 950px) {
    body.top .partition .contsBlock2 {
        width: calc(50% - 25px);
    }
    body.top .partition .contsBlock2:last-of-type {
        width: calc(50% - 25px);
    }
}

@media only screen and (max-width: 800px) {
    body.top #head.conts h2.phrase {
        max-width: 480px;
    }
    body.top #head.conts br.onPC {
        display: inherit;
    }
    body.top #head.conts img.image {
        position: relative;
        bottom: auto;
        right: auto;
        margin-top: calc(var(--space-s) - 20px);
    }
    body.top #news.conts {
        position: relative;
        padding-bottom: 40px;
    }
    ul.newsList li .date {
        right: 7.5em;
    }
    body.top .partition {
        position: relative;
        padding-bottom: 75px;
    }
    body.top .rink {
        position: absolute;
        bottom: 0;
    }
    body.top .partition .contsBlock2 {
        width: 100%;
    }
    body.top .partition .contsBlock2:last-of-type {
        width: 100%;
    }
}

@media only screen and (max-width: 615px) {
    body.top #head.conts br.onPC {
        display: none;
    }
    ul.newsList li {
        padding-right: 6em;
    }
    ul.newsList li .date {
        display: none;
    }
}
/* top */


/* business */
body.business .conts ul.pNav:last-of-type {
    margin-top: calc(var(--space-m) * -1 + 9px);
    border-top: none;
}

body.business .conts#structure,
body.business .conts#consultant {
    position: relative;
    margin-top: 120px;
    margin-bottom: 0;
    padding-top: 80px;
}

body.business .conts#feature,
body.business .conts#flow,
body.business .conts#contents {
    margin-top: 0;
    margin-bottom: 40px;
}

body.business .conts#contents {
    margin-bottom: 120px; /*最下部は元のマージン*/
}

body.business .conts .contsBox {
    margin-top: 80px;
}

body.business .conts p.headStamp {
    display: inline-block;
    margin-right: 15px;
    transform: translateY(-4px);
}

body.business .conts .contsBox h4 {
    display: inline-block;
    font-size: var(--font-size-h3);
    line-height: 1.4;
    margin-top: -5px;
    margin-bottom: calc(var(--space-m) - 25px);
}

body.business .conts#feature .partition .contsBlock2a,
body.business .conts#contents .partition .contsBlock2a {
    width: 50%;
}
body.business .conts#feature .partition .contsBlock2b,
body.business .conts#contents .partition .contsBlock2b {
    width: calc(50% - 80px);
}

body.business .conts#flow .partition .contsBlock2a {
    width: calc(45%);
}
body.business .conts#flow .partition .contsBlock2b {
    width: calc(55%);
    padding-top: 74px;
}

@media only screen and (max-width: 1100px) {
    body.business .conts#flow .partition .contsBlock2a {
        width: calc(41% - 10px);
    }
    body.business .conts#flow .partition .contsBlock2b {
        width: calc(59%);
    }
}

@media only screen and (max-width: 1000px) {
    body.business .conts#feature .partition .contsBlock2a,
    body.business .conts#contents .partition .contsBlock2a {
        width: 50;
    }
    body.business .conts#feature .partition .contsBlock2b,
    body.business .conts#contents .partition .contsBlock2b {
        width: calc(50% - 50px);
    }
}

@media only screen and (max-width: 900px) {
    body.business .conts#flow .partition .contsBlock2a {
        width: 100%;
        margin-bottom: 20px;
    }
    body.business .conts#flow .partition .contsBlock2b {
        width: 100%;
        padding-top: 0;
    }
}

@media only screen and (max-width: 800px) {
    body.business .conts#structure,
    body.business .conts#consultant {
        margin-top: 70px;
    }
    body.business .conts .contsBox h4 {
        margin-bottom: calc(var(--space-m) - 40px);
    }
    body.business .conts#feature .partition .contsBlock2a,
    body.business .conts#contents .partition .contsBlock2a {
        width: 100%;
        margin-bottom: 20px;
    }
    body.business .conts#feature .partition .contsBlock2b,
    body.business .conts#contents .partition .contsBlock2b {
        width: 100%;
    }
}

/* business */


/* case */
body.case h3.truss,
body.case h3.ssf,
body.case h3.hrb,
body.case h3.tjtfc,
body.case h3.whf {
    position: relative;
}

body.case h3.truss::after,
body.case h3.ssf::after,
body.case h3.hrb::after,
body.case h3.tjtfc::after,
body.case h3.whf::after {
    content: '';
    display: block;
    width: 32px;
    height: 32px;
    position: absolute;
    top: 0;
    right: 0;
}

body.case h3.truss::after {
    background: url(common/img/icon_case_truss.svg) no-repeat;
}

body.case h3.ssf::after {
    background: url(common/img/icon_case_ssf.svg) no-repeat;
}

body.case h3.hrb::after {
    background: url(common/img/icon_case_hrb.svg) no-repeat;
}

body.case h3.tjtfc::after {
    background: url(common/img/icon_case_tjtfc.svg) no-repeat;
}

body.case h3.whf::after {
    background: url(common/img/icon_case_whf.svg) no-repeat;
}

body.case .partition {
    margin-top: 0;
}

body.case .partition .contsBlock3 {
    width: calc(33% - 60px);
}

body.case .partition .contsBlock3 a::after {
    display: none;
}

body.case .partition .block {
    margin-top: calc(var(--space-m) + 20px);
}

body.case .partition .block.dummy {
    margin-top: 0;
}

body.case .partition .block a {
    position: relative;
    display: block;
    transition: all 0.5s 0s ease;
}

body.pc.case .partition .block a:hover {
    opacity: 0.5;
}

body.case .partition .block .categoryBox {
    position: absolute;
    top: -2px;
    right: 0;
}

body.case .categoryBox .category {
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-left: 3px;
    margin-bottom: 0;
    text-indent: -9999px;
}

body.case #contents .categoryBox .category {
    margin-left: 0;
    margin-right: 3px;
}

body.case .categoryBox .category.truss {
    background: url(common/img/icon_case_truss.svg) no-repeat;
}

body.case .categoryBox .category.ssf {
    background: url(common/img/icon_case_ssf.svg) no-repeat;
}

body.case .categoryBox .category.hrb {
    background: url(common/img/icon_case_hrb.svg) no-repeat;
}

body.case .categoryBox .category.tjtfc {
    background: url(common/img/icon_case_tjtfc.svg) no-repeat;
}

body.case .categoryBox .category.whf {
    background: url(common/img/icon_case_whf.svg) no-repeat;
}

body.case .partition .block h4 {
    margin-bottom: 20px;
    font-size: var(--font-size-cap);
    line-height: 1.4;
}

body.case .partition .block h4.cat1 {
    width: calc(100% - 25px * 1)
}

body.case .partition .block h4.cat2 {
    width: calc(100% - 25px * 2)
}

body.case .partition .block img {
}

body.case .photoBox {
    margin-top: 40px;
}

body.case .photoBox img {
    margin-top: 20px;
}

body.case .photoBox img:first-of-type {
    margin-bottom: 50px;
}

@media only screen and (max-width: 850px) {
    body.case .partition .contsBlock3 {
        width: calc(33% - 50px);
    }
}

@media only screen and (max-width: 800px) {
    body.case .partition .contsBlock3 {
        width: calc(50% - 40px);
    }
}
/* case */


/* whfs */
body.whfs #head img.visual {
    display: block;
    margin-top: calc(var(--space-m) + 5px)
}

body.whfs #point5 .partitionWH5 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: calc(var(--space-m) - 5px);
    margin-bottom: calc(var(--space-m) - 5px);
    padding: 20px;
    border: 1px solid #676767;
}

body.whfs #point5 .partitionWH5 .contsBlockWH5a {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    width: calc(45% - 20px);
}

body.whfs #point5 .partitionWH5 .contsBlockWH5b {
    width: 1px;
    background: #676767;
}

body.whfs #point5 .partitionWH5 .contsBlockWH5c {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    width: calc(55% - 20px);
}

body.whfs #point5 .partitionWH5 .contsBlockWH5a img {
    width: calc(55% - 10px);
    margin-top: 10px;
}

body.whfs #point5 .partitionWH5 .contsBlockWH5a p {
    width: calc(45% - 10px);
}

body.whfs #point5 .partitionWH5 .contsBlockWH5c img {
    width: calc(45% - 10px);
    margin-top: 10px;
}

body.whfs #point5 .partitionWH5 .contsBlockWH5c p {
    width: calc(55% - 10px);
}



body.whfs #case dl.contsList dt {
    width: 9em;
    margin-bottom: 8px;
}

body.whfs #case dl.contsList dd {
    width: calc(100% - 9em);
    margin-bottom: 8px;
}

body.whfs #case .contsBlock1 img {
    margin-top: 20px;
}

body.whfs #case .contsBlock1 img:first-of-type {
    margin-top: 0;
}



body.whfs .contsBox h3 {
    margin-bottom: calc(var(--space-ss) - 12px);
    padding-bottom: 0;
    border-bottom: none;
}

body.whfs .partition .contsBlock2WH {
    width: calc(50% - 25px);
    margin-top: 20px;
}

body.whfs .partition .contsBlock2WH img {
    margin-top: 30px;
}


body.whfs #partner .partition {
    flex-direction:row-reverse;
}

body.whfs #partner .contsBlock2 {
    position: relative;
    width: calc(50% - 25px);
}

body.whfs .partnerBox {
    position: relative;
    padding: 20px 0;
    border-bottom: 1px solid #676767;
    transition: all 0.5s 0s ease;
}

body.whfs .partnerBox.on {
    background: #f9f7f3;
}

body.whfs .partnerBox:first-of-type {
    border-top: 1px solid #676767;
}

body.whfs .partnerBox h5 {
    font-size: 1rem;
    line-height: 1.4;
    margin-bottom: 5px;
}

body.whfs .partnerBox p {
    font-size: var(--font-size-cap);
    line-height: 1.4;
    margin-bottom: 5px;
}

body.whfs .partnerBox p.rink {
    margin-bottom: 0;
}

body.whfs .partnerBox p.rink a {
    display: inline-block;
    padding-right: 28px;
    background: url(common/img/icon_arrow_rink_ext.svg) no-repeat;
    background-position: calc(100% - 5px) center;
    background-size: 14px 12px;
    transition: all 0.3s 0s ease;
}

body.pc.whfs .partnerBox p.rink a:hover {
    background-position: right center;
}

body.whfs .partnerBox p.rink a::after {
    display: none;
}

body.whfs .partnerBox .areaBox {
    position: absolute;
    top: 15px;
    right: 0;
}

body.whfs .partnerBox .areaBox .area {
    display: inline-block;
    width: 60px;
    height: 21px;
    margin-right: 3px;
    margin-bottom: 5px;
    font-size: 12px;
    font-size: var(--font-size-cap);
    line-height: 21px;
    text-align: center;
    color: #fff;
    border-radius: 30px;
    background: #444;
}

body.whfs .partnerBox .areaBox .area:last-of-type {
    margin-right: 0;
}



body.whfs #mapArea {
    position: sticky;
    top: 0;
    display: block;
	width: 100%;
	height: 850px;
    margin: 0;
    overflow: hidden;
}

body.whfs #googleMapPC {
    display: block;
	width: 100%;
	height: 850px;
    margin: 0;
}

body.whfs #googleMapPC .gm-ui-hover-effect {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
}

@media only screen and (max-width: 1120px) {
    body.whfs .partnerBox .areaBox {
        width: 60px;
    }
    body.whfs .partnerBox .areaBox .area {
        display: block;
        margin-right: 0;
    }
}

@media only screen and (max-width: 1000px) {
    body.whfs #point5 .partitionWH5 .contsBlockWH5a {
        width: calc(42% - 20px);
    }
    body.whfs #point5 .partitionWH5 .contsBlockWH5c {
        width: calc(58 20px);
    }
    body.whfs #point5 .partitionWH5 .contsBlockWH5a img,
    body.whfs #point5 .partitionWH5 .contsBlockWH5c img {
        width: 220px;
        margin-top: 0;
        margin-left: auto;
        margin-right: auto;
    }
    body.whfs #point5 .partitionWH5 .contsBlockWH5a p,
    body.whfs #point5 .partitionWH5 .contsBlockWH5c p {
        width: 100%;
        margin-top: 10px;
    }
    
    body.whfs #partner .partition .contsBlock2 {
        width: 100%;
    }
    body.whfs .partnerBox .areaBox {
        width: auto;
    }
    body.whfs .partnerBox .areaBox .area {
        display: inline-block;
        margin-right: 3px;
    }
}

@media only screen and (max-width: 800px) {
    body.whfs #point5 .partitionWH5 .contsBlockWH5a,
    body.whfs #point5 .partitionWH5 .contsBlockWH5b, 
    body.whfs #point5 .partitionWH5 .contsBlockWH5c {
        width: 100%;
    }
    body.whfs #point5 .partitionWH5 .contsBlockWH5b {
        height: 1px;
        margin-top: 20px;
        margin-bottom: 20px;
    }
    body.whfs #point5 .partitionWH5 .contsBlockWH5a img,
    body.whfs #point5 .partitionWH5 .contsBlockWH5c img {
        width: 200px;
        margin-top: 5px;
        margin-left: 0;
        margin-right: 20px;
    }
    body.whfs #point5 .partitionWH5 .contsBlockWH5a p,
    body.whfs #point5 .partitionWH5 .contsBlockWH5c p {
        width: calc(100% - 220px);
        margin-top: 0;
    }
    body.whfs .partition .contsBlock2WH {
        width: 100%;
        margin-top: calc(var(--space-m) - 5px)
    }
    body.whfs .partition .contsBlock2WH:first-of-type {
        margin-top: 0;
    }
}

@media only screen and (max-width: 600px) {
    body.whfs #point5 .partitionWH5 .contsBlockWH5a img,
    body.whfs #point5 .partitionWH5 .contsBlockWH5c img {
        width: calc(40% - 10px);
    }
    body.whfs #point5 .partitionWH5 .contsBlockWH5a p,
    body.whfs #point5 .partitionWH5 .contsBlockWH5c p {
        width: calc(60% - 10px);
    }
    
    body.whfs .partnerBox .areaBox {
        width: 60px;
    }
    body.whfs .partnerBox .areaBox .area {
        display: block;
        margin-right: 0;
    }
}
/* whfs */


/* whfs form */
#orderForm {
    margin-top: 40px;
}

#orderForm dl {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}

#orderForm dl dt {
    width: 10em;
    padding-bottom: 2px;
    margin-bottom: 20px;
}

#orderForm dl dd {
    width: calc(100% - 10em);
    margin-bottom: 20px;
    padding-bottom: 2px;
    border-bottom: 1px solid #676767;
}

#orderForm dl dd.last {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

@media only screen and (max-width: 600px) {
    #orderForm dl {
        display: block;
    }
    #orderForm dl dt {
        width: 100%;
        padding-bottom: 0;
        margin-bottom: 0;
    }
    #orderForm dl dd {
        width: 100%;
    }
}

#orderForm input {
	width: 100%;
	border: none;
	padding-bottom: 0px;
    background: none;
    transform: translateY(-2px);
}

#orderForm label {
	display: inline-block;
	width: 100%;
}

#orderForm textarea {
	width: 100%;
	height: 120px;
	border: none;
	padding-bottom: 0;
	margin-top: 0;
    background: none;
    transform: translateY(-2px);
}

#orderForm input[type='text']:focus,
#orderForm input[type='email']:focus,
#orderForm textarea:focus {
	outline: none;
}

#orderForm input[type='text']:focus::after,
#orderForm input[type='email']:focus::after,
#orderForm textarea:focus::after {
	outline: none;
}

:placeholder-shown {
    color: #aaa;
	transition: all 0.4s 0s ease;
}
::-webkit-input-placeholder {
    color: #aaa;
	transition: all 0.4s 0s ease;
}

#orderForm input[type='text']:focus:placeholder-shown,
#orderForm input[type='email']:focus:placeholder-shown,
#orderForm textarea:focus:placeholder-shown {
	color: #959595;
}

#orderForm input[type='text']:focus::-webkit-input-placeholder,
#orderForm input[type='email']:focus::-webkit-input-placeholder,
#orderForm textarea:focus::-webkit-input-placeholder {
	color: #959595;
}

#orderForm input[type="submit"] {
    max-width: 100px;
    height: 30px;
	margin-top: 10px;
    font-size: 13px;
    line-height: 26px;
	color: #fff;
    background: #444;
	transition: 0.4s 0s ease;
}

body.pc #orderForm input[type="submit"]:hover {
    background: #728b3f;
}

.wpcf7 p {
    display: inline;
}

div.wpcf7-validation-errors {
	border: none !important;
}

div.wpcf7-mail-sent-ok {
	border: none !important;
}

div.wpcf7-response-output {
	margin: 2em 0 0 0 !important;
	padding: 0 !important;
}

#orderForm #estimate {
	height: 0;
	font-size: 0.8em;
	margin-top: 0;
	overflow: hidden;
	transition: all 0.5s 0s ease;
}

#orderForm #estimate.on {
	height: auto;
	margin-top: 100px;
	overflow: auto;
}

#orderForm #estimate input {
	width: 100%;
	padding: 10px 10px;
	text-align: right;
	pointer-events: none;
	background: none;
}

#orderForm span {
    display: inline;
}

#orderForm span.wpcf7-list-item {
	display: inline;
	margin: 0;
}

#orderForm div.wpcf7-response-output {
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.sent .wpcf7-response-output
{
	border: none !important;
    color: #728b3f !important;
}

.wpcf7-not-valid-tip {
	color: #728b3f !important;
}
/* whfs form */


/* company */
body.company #head.conts p.headline {
    margin-bottom: 12px;
}

body.company #profile.conts dl.contsList dt {
    width: 6em;
}

body.company #profile.conts dl.contsList dd {
    width: calc(100% - 6em);
}

body.company #employees img {
    margin-bottom: 5px;
}

body.company #googleMap {
	width: 100%;
	height: 500px;
	margin-top: 30px;
}
/* company */


/* news */
body.news ul.newsList {
    margin-top: calc(var(--space-m) - 5px);
    padding-top: 20px;
    border-top: 1px solid #676767;
}

body.news ul.newsList li {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #676767;
}

body.news .photoBox {
    margin-top: 40px;
}

body.news .photoBox img {
    margin-top: 20px;
}

body.news #contents.conts p.headStamp {
    display: inline;
    height: auto;
    padding: 0;
    margin-bottom: 0;
    color: inherit;
    border-radius: 0;
    background: none;
}

body.news #contents.conts p.headStamp a {
    display: inline-block;
    height: 23px;
    padding: 0 14px;
    margin-bottom: 12px;
    font-size: 12px;
    line-height: 23px;
    color: #fff;
    border-radius: 30px;
    background: #444444;
}

body.news #contents.conts p.headStamp a:hover {
    background: #728b3f;
    opacity: 1;
}

body.news #contents.conts p.headStamp a::after {
    display: none;
}

body.news #contents.conts p.date {
    display: inline;
    margin-left: 20px;
    font-size: 12px;
    line-height: 23px;
}
/* news */


/* --------------------------------------------------------------
    6: footer
-------------------------------------------------------------- */

footer {
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 260px;
    padding-left: 5vw;
    padding-right: 5vw;
    font-size: 0.87rem;
    background: #f1eee9;
}

footer nav {
    height: 210px;
}

footer nav h1 {
	position: absolute;
	top: 30px;
	left: 5vw;
	z-index: 10;
}

footer nav h1 a {
	display: block;
	width: 180px;
	height: 31px;
	text-indent: -9999px;
	background: url(common/img/header_logo.svg) no-repeat;
    background-size: contain;
	transition: all 0.5s 0s ease;
}

footer nav h1 a:hover {
	opacity: 0.5;
}

footer nav ul.gNav {
	position: absolute;
	top: 33px;
	right: 5vw;
	/* line-height: 2.2; */
	z-index: 10;
	transition: all 0.5s 0s ease;
}

footer nav ul.gNav li {
    display: inline;
    margin-left: 12px;
}

footer nav ul.gNav li a {
    display: inline-block;
    height: 30px;
    line-height: 30px;
}

footer nav ul.gNav li ul.footList {
    display: inline-block;
    width: 100px;
    vertical-align: top;
}

footer nav ul.gNav li ul.footList li {
    display: block;
    margin-left: 0;
    font-size: 11px;
    line-height: 1.2;
}

footer nav ul.gNav li ul.footList li a {
    height: 20px;
    line-height: 20px;
    opacity: 0.7;
}

footer nav ul.gNav li.whfs ul.footList {
    width: 170px;
}

/*
footer nav ul.gNav li.recruit {
    margin-left: 30px;
}

footer nav ul.gNav li.recruit a {
    padding: 0 12px;
    color: #fff;
	background: #000;
}
*/

footer nav ul.gNav li.fb {
    margin-left: 0;
	text-indent: -9999px;
}

footer nav ul.gNav li.fb a {
    position: absolute;
    bottom: -66px;
    right: 0;
	display: block;
	width: 22px;
	height: 22px;
	margin-top: 4px;
	background: url(common/img/header_fb.svg) no-repeat;
}

footer nav ul.gNav a:link {
    color: #000;
    text-decoration: none;
	transition: all 0.3s 0s ease;
}

footer nav ul.gNav a:visited {
    color: #000;
}

.pc footer nav ul.gNav a:hover {
    color: #000;
    text-decoration: none;
	opacity: 0.3;
}

.pc footer nav ul.gNav li.recruit a:hover {
    color: #000;
	background: #ccc;
    opacity: 1;
}

footer nav ul.gNav a:active {
    color: #000;
}

footer p#copy {
    font-size: 11px;
}

@media only screen and (max-width: 1080px) {
    footer nav ul.gNav li.news,
    footer nav ul.gNav li.contact {
        margin-left: 0;
    }
    footer nav ul.gNav li.company ul.footList {
        width: auto;
    }
    footer nav ul.gNav li.news ul.footList {
        width: 0;
    }
    footer nav ul.gNav li.news ul.footList li {
        display: none;
    }
    footer nav ul.gNav li.news a {
        position: absolute;
        bottom: -72px;
        right: 190px;
    }
    footer nav ul.gNav li.contact a {
        position: absolute;
        bottom: -72px;
        right: 62px;
    }
    footer nav ul.gNav li.fb a {
        width: 18px;
        height: 18px;
    }
}

@media only screen and (max-width: 800px) {
    footer {
        height: 190px;
    }
    footer nav {
        height: 152px;
    }
    footer nav h1 {
        top: 72px;
    }
    footer nav h1 a {
        width: 160px;
        height: 27px;
    }
    footer nav ul.gNav {
        display: none;
    }
	footer p#copy {
        position: absolute;
        top: 105px;
    }
}

@media only screen and (max-width: 450px) {
    footer nav h1 {
        top: 30px;
    }
    footer p#copy {
        text-align: left;
    }
}

/* reCAPTCHAマーク消去 */
.grecaptcha-badge {
    visibility: hidden;
}








