@charset "UTF-8"; 

/* ==========================================================================
   parts
   ========================================================================== */

/* header
   ========================================================================== */

header.mobile nav.main .nav.logo { flex: 1 0 160px; }
header.mobile nav.main .nav.logo a { width: 160px; height: 22px; }
header.mobile nav.main .nav.logo a.replace::after { background-image: url(/media/consulting/logo_header.svg); }



/* footer
   ========================================================================== */

footer { border-top: 1px solid #ea5504; margin-top: 50px; }



/* nav highlighting
   ========================================================================== */

body.column nav ul li.column a span,
body.news nav ul li.news a span,
body.access nav ul li.access a span { color: #ea5504; font-weight: 500; }



/* general
   ========================================================================== */

a.button.index span { background-image: url(/media/consulting/icon_index.svg); padding-right: 20px; }

.index-list ul { border-top: none; }
.index-list ul li { border-bottom-color: #e0dfdf; }
.index-list ul li a .heading { background-image: url(/media/consulting/arrow_next.svg); background-size: auto 11px; }



/* article
   ========================================================================== */

.article-header { background: linear-gradient(to bottom, #fdb105 0%, #ea5504 100%); margin-bottom: 30px; }

.article-header h1 { height: auto; min-height: 100px; background: none; padding: 0; flex-direction: column; justify-content: center; }

.article-header h1 > svg { width: 20px; height: 30px; flex: none; fill: none; stroke: #fff; margin: 0 0 10px; }
.article-header h1 > .text { margin-bottom: 10px; }
body.consulting .article-header h1 > .text > .heading { color: #fff; font-family: 'Noto Sans CJK JP', sans-serif; font-size: 1.7rem; font-weight: 100; line-height: 1.2; text-align: center; }
body.consulting .article-header h1 > .text > .sub { color: #fff; font-family: 'Noto Sans CJK JP', sans-serif; font-size: .9rem; font-weight: 350; line-height: 1; text-align: center; margin-top: 3px; }

.article-header.sub { background: none; border-bottom: 1px solid #e0dfdf; padding-bottom: 20px; margin-bottom: 0; }
.article-header.sub h1 { min-height: auto; }
.article-header.sub h1 > svg { stroke: #707070; flex: none; }
body.consulting .article-header.sub h1 > .text > .heading,
body.consulting .article-header.sub h1 > .text > .sub { color: #595757; }

.article-header:not(.billboard) h1::before { content: url(/media/consulting/mobile/arrow_down_w.svg); display: inline-block; margin: 5px 0; }
.article-header.sub h1::before { content: url(/media/consulting/mobile/arrow_down.svg); margin: 20px 0 10px; }

.article-header ~ .article-header { margin-top: -10px; }

body.consulting .article-header.billboard { background-color: transparent; background-position: center center; background-size: cover; }
body.consulting .article-header.billboard::before { content: ''; display: block; width: 100%; height: 100%; background: linear-gradient(to bottom, #fdb105 0%, #ea5504 50%, #fdb105 100%); position: absolute; top: 0; left: 0; z-index: -1; }
body.consulting .article-header.billboard,
body.consulting .article-header.billboard::before { height: 235px; }
body.consulting .article-header.billboard,
body.consulting .article-header.billboard h1 { min-height: auto; }
body.consulting .article-header.billboard h1 > .text { margin-bottom: 0; }
body.consulting .article-header.billboard h1 > .text > .heading { font-family: 'Noto Serif CJK JP', serif; font-size: 2.8rem; font-weight: 700; line-height: 1.8; }

body.consulting .article-body.styled { width: 100%; }
article > .article-body > h1 { border-bottom: 1px solid #e0dfdf; padding: 0 16px 30px; margin: 0 auto 30px; }
article > .article-body > h1 .text,
article > .article-body > h1 .text > span { display: block; }
article > .article-body > h1 .text > .heading { font-size: 1.4rem; font-weight: 700; line-height: 1.6; }
article > .article-body > h1 .text > .extras { display: flex; align-items: center; margin-bottom: 5px; }
article > .article-body > h1 .text .date { font-size: 1.1rem; font-weight: 350; margin-right: 10px; }

.article-body .buttons { text-align: center; }
article > .article-body div.image { width: calc(100% - 32px); margin: 0 auto 20px; }
article > .article-body figure img { max-width: 100%; height: auto; }

article > .article-footer { text-align: center; border-top: 1px solid #e0dfdf; padding: 40px 0 0; }



/* top page
   ========================================================================== */

body.top main { background: none; padding-bottom: 0; }

body.top article { margin-bottom: 40px; }

body.top #top .billboard { margin-bottom: 0; }
body.top #top .article-header.billboard,
body.top #top .billboard::before { height: 570px; }
body.top #top .billboard { background-image: url(/media/consulting/bg_top_header.png); }

body.top #top .article-header.billboard h1 { padding-top: 20px; }
body.top #top .article-header.billboard h1 > .text > .heading { font-size: 2rem; line-height: 1.2; }
body.top #top .article-header.billboard h2 { font-family: 'Noto Serif CJK JP', serif; color: #595757; font-size: 1.6rem; font-weight: 700; line-height: 1; margin-bottom: 4px; }
body.top #top .article-header.billboard p { font-family: 'Noto Sans CJK JP', sans-serif; color: #595757; font-size: 1rem; font-weight: 350; line-height: 1.3; margin-bottom: 8px; }
body.top #top .article-header.billboard .extras { width: 155px; position: absolute; left: calc(50% - 80px); top: 105px; }

body.top #top > .article-body { text-align: center; margin-top: 50px; }
body.top #top > .article-body p { font-family: 'Noto Serif CJK JP', serif; color: #ea5504; font-size: 1.3rem; font-weight: 400; line-height: 2; margin-top: 10px; text-align: left; }
body.top #top > .article-body p br { display: none; }
body.top #top > .article-body p.enlarged { font-weight: 700; text-align: center; }
body.top #top > .article-body p:first-child { margin-top: 0; }
body.top #top > .article-body p.decorated { position: relative; margin-top: 30px; }
body.top #top > .article-body p.decorated::before,
body.top #top > .article-body p.decorated::after { content: ''; background-color: #ea5504; width: 1px; height: 28px; position: absolute; }
body.top #top > .article-body p.decorated::before { transform: translate(-15px, 0) rotate(-30deg); }
body.top #top > .article-body p.decorated::after { transform: translate(15px, 0) rotate(30deg); }
body.top #top > .article-body img { width: 300px; height: auto; margin: 10px 0 0; }

body.top #column .article-header.sub h1::before { content: none; }
body.top #column .article-header.sub { border-bottom: none; padding-bottom: 0; }
body.top #column .article-header.sub h1 { min-height: auto; background-color: #e30303; padding: 10px 0; }
body.top #column .article-header.sub h1 > .text { margin-bottom: 0; }
body.top #column .article-header.sub h1 .heading { color: #fff; font-family: 'Noto Serif CJK JP', serif; font-size: 1.8rem; font-weight: 700; }
body.top #column .index-list { text-align: left; }
body.top #column .index-list ul li { border-bottom: 1px solid #e30303; }
body.top #column .index-list ul li:last-child { border-bottom-width: 5px; }
body.top #column .index-list ul li a:hover .heading { color: #e30303; }
body.top #column .index-list ul li .heading { font-size: 1.2rem; font-weight: 700; }

body.top #service nav.services ul { display: flex; flex-direction: column; justify-content: center; }
body.top #service nav.services li,
body.top #service nav.services li a { height: 60px; box-sizing: border-box; position: relative; }
body.top #service nav.services li { border-bottom: 1px solid #e0dfdf; }
body.top #service nav.services li a { display: flex; justify-content: center; align-items: center; font-family: 'Noto Serif CJK JP', serif; font-size: 1.4rem; font-weight: 500; line-height: 1; padding: 0 16px; }
body.top #service nav.services li:last-child a { font-size: 1.3rem; }
body.top #service nav.services li a > span { display: block; width: 100%; text-align: center; background: url(/media/consulting/arrow_next.svg) no-repeat right center transparent; background-size: auto 11px; padding-right: 22px; }

body.top #access { border-bottom: 1px solid #e0dfdf; }
body.top #access a { display: block; width: 100%; height: 160px; position: relative; }
body.top #access a::after { content: ''; display: block; width: 100%; height: 160px; background: url(/media/consulting/icon_access.svg) no-repeat center center rgba(89, 87, 87, .6); background-size: 60px 65px; position: absolute; top: 0; left: 0; opacity: .5; }
body.top #access a img { width: 100%; height: 160px; object-fit: cover; }



/* service
   ========================================================================== */

body.service .billboard { background-image: url(/media/consulting/bg_service_header.png); }

body.consulting.service .article-header.billboard h1 { position: absolute; left: calc(50% - 75px); top: 85px; margin-bottom: 0; }
body.consulting.service .article-header.billboard h1 > .text > .heading { color: #ea5504; font-size: 1.3rem; }

body.service .bordered ul li .block {
max-height: 2000px;
padding: 0 10px;
margin: 0 auto;
position: relative;
overflow: hidden;
opacity: 1;
z-index: 2;
}

body.service .bordered ul { perspective: 1000px; }
body.service .bordered ul li { border-bottom: 1px solid #e0dfdf; position: relative; }

body.service .bordered ul li i {
position: absolute;
right: 15px;
top: 20px;
}
body.service .bordered ul li i::before,
body.service .bordered ul li i::after {
content: '';
position: absolute;
background-color: #ea5504;
width: 1px;
height: 12px;
}
body.service .bordered ul li i::before { transform: translate(-4px, 0) rotate(45deg); }
body.service .bordered ul li i::after { transform: translate(4px, 0) rotate(-45deg); }
body.service .bordered ul li input[type=checkbox]:checked ~ i::before { transform: translate(4px, 0) rotate(45deg); }
body.service .bordered ul li input[type=checkbox]:checked ~ i::after { transform: translate(-4px, 0) rotate(-45deg); }

body.service .bordered ul li input[type=checkbox] {
position: absolute;
cursor: pointer;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0;
}
body.service .bordered ul li input[type=checkbox]:checked ~ div {
margin-top: 0;
max-height: 0;
opacity: 0;
transform: translate(0, 50%);
}

body.service .bordered ul li .block,
body.service .bordered ul li i::before,
body.service .bordered ul li i::after { transition: all .25s ease-in-out; }

body.service .bordered h2 { font-family: 'Noto Serif CJK JP', serif; color: #595757; font-size: 1.4rem; font-weight: 500; text-align: center; cursor: pointer; padding: 20px 20px 20px 0; }
body.service .bordered ul li:last-child h2 { font-size: 1.3rem; }

body.service .bordered h4 { color: #ea5504; font-size: 1.4rem; font-weight: 700; }
body.service .bordered h5 { color: #ea5504; font-family: 'Noto Serif CJK JP', serif; font-size: 1.3rem; font-weight: 700; }
body.service .bordered h5 ~ h4 { margin-top: 45px; }
body.service .bordered h5::before { content: '◯'; }
body.service .bordered p { font-family: 'Noto Serif CJK JP', serif; font-size: 1.3rem; font-feature-settings: 'palt'; }

body.service .bordered .block > h5:last-child,
body.service .bordered .block > p:last-child { margin-bottom: 40px; }
body.service .bordered .block::before { content: url(/media/consulting/mobile/arrow_down.svg); display: block; width: 18px; margin: 0 auto 20px; }
body.service .bordered #service-01 .block::before { content: none; }
body.service .bordered .block > img { display: block; width: 100%; height: auto; margin: 0 auto 30px; }



/* column
   ========================================================================== */

body.column .billboard { background-image: url(/media/consulting/bg_news_header.png); margin-bottom: 0; }
body.consulting.column .article-header.billboard h1 { position: absolute; left: calc(50% - 135px); bottom: 25px; }
body.consulting.column .article-header.billboard h1 > .text > .heading { font-size: 2rem; line-height: 1; text-align: left; }

body.column .article-header.sub h1 > .text { margin-bottom: 0; }
body.column .article-header.sub h1 > .text > .heading,
body.column.leaf .article-header h1 .heading { font-family: 'Noto Serif CJK JP', serif; font-size: 1.8rem; font-weight: 700; }
body.column .article-header.sub h1 > .text > .heading { color: #ea5504; }

body.column p { font-feature-settings: 'palt'; }

body.consulting h1 .decorated { position: relative; }
body.consulting h1 .decorated::before,
body.consulting h1 .decorated::after { content: ''; background-color: #fff; width: 1px; height: 28px; position: absolute; bottom: -3px; }
body.consulting h1 .decorated::before { transform: translate(-25px, 0) rotate(-30deg); }
body.consulting h1 .decorated::after { transform: translate(25px, 0) rotate(30deg); }
body.column .article-header.sub h1 .decorated::before,
body.column .article-header.sub h1 .decorated::after { background-color: #ea5504; }

body.column .article-footer .banner { display: block; width: calc(100% - 32px); margin: 0 auto 30px; }
body.column .article-footer .banner img { width: 100%; height: auto; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2); }



/* news
   ========================================================================== */

body.consulting.news .article-header h1 { display: flex; }
body.consulting.news .billboard { background-image: url(/media/consulting/bg_news_header.png); }

body.consulting.news .article-header.billboard h1 { position: absolute; left: 10px; bottom: 10px; }
body.consulting.news .article-header.billboard h1 > .text > .heading { font-size: 1.3rem; text-align: left; }

body.consulting.news.leaf article > .article-body > h1 { padding: 0 16px 30px; }

body.consulting.news p { font-feature-settings: 'palt'; }



/* access
   ========================================================================== */

body.access .billboard { background-image: url(/media/consulting/bg_access_header.jpg); }

body.access .styled table th,
body.access .styled table td,
body.access .styled table tr:first-child th,
body.access .styled table tr:first-child td { border: none; }

body.access .styled table { width: calc(100% - 20px); margin: 20px auto; }
body.access .styled table th,
body.access .styled table td { display: table-cell;  padding: 5px 0; }
body.access .styled table th { font-size: 1.4rem; }
body.access .styled table th .sub { font-size: .9rem; }
body.access .styled table td { font-size: 1.2rem; }

body.access .styled table.overview th { width: 34%; }
body.access .styled table.overview td { width: 66%; }
body.access .styled table.overview td > span { display: block; margin-top: 7px; }
body.access .styled table.overview td > span:first-child { margin-top: 0; }
body.access .styled table.overview td > span > span { display: inline-block; vertical-align: top; margin-right: 5px; }

body.access .styled table hr { height: 1px; border-top: 1px solid #e0dfdf; margin-top: 10px; }



