@charset "UTF-8";
@import "https://fonts.googleapis.com/css2?family=Montserrat&family=Noto+Sans+JP:wght@400;500&display=swap";
:root { font-family: "Noto Sans JP",sans-serif; --text:#032a41; --text-footer:#c8c8c8; --blue:#4e95ce; --point:#f2a200; --text-link:#165477; --text-hover:#1a638d; --bluegray:#b1c8d6; --light-blue:#edf6fb; --light-bluegray:#dae0e3; --attention:#d92525; --light-blue:#f6f9fc; --white:#fff; --gray:#585960; --black:#1b1b1b; --bg-sec:#fcf8f8; --text-hover:var(--blue-500); --border-color:var(--light-bluegray); --ff-eng:"Montserrat", "Noto Sans JP", sans-serif; --ff-sans:"Noto Sans JP", sans-serif; --lh-normal:1.8; --lh-narrow:1.5; --container:850px; --container-wide:1150px; --outline:2px solid var(--blue); --ol-offset:1px; --ul-offset:.25em; }

@supports (-webkit-touch-callout: none) and (font: -apple-system-body) { :root { font: -apple-system-body; } }
* { box-sizing: border-box; }
*::before, *::after { box-sizing: border-box; }

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; }

ul[role=list], ol[role=list] { list-style: none; }

html:focus-within { scroll-behavior: smooth; }

body { min-height: 100vh; text-rendering: optimizeSpeed; line-height: 1.5; }

a:not([class]) { -webkit-text-decoration-skip: ink; text-decoration-skip-ink: auto; }

img, picture { max-width: 100%; display: block; }

input, button, textarea, select { font: inherit; }

* { min-width: 0; min-height: 0; }

html { scroll-behavior: smooth; }

body { position: relative; display: grid; grid-template: "header" auto "main" 1fr "footer" auto/1fr; min-height: 100vh; background-color: #fff; color: var(--text); font-size: .9375rem; line-height: var(--lh-normal); -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; text-size-adjust: 100%; }

a { text-decoration: none; }

p a:not([class]):-moz-any-link { color: var(--text-link); text-decoration: underline; text-decoration-thickness: from-font; text-underline-offset: var(--ul-offset); }
p a:not([class]):any-link { color: var(--text-link); text-decoration: underline; transition: color .3s, text-decoration .3s; text-decoration-thickness: from-font; text-underline-offset: var(--ul-offset); }

h1, h2, h3, h4, h5, li, td, th { line-height: var(--lh-narrow); }

ul, ol { margin: 0; }

img, picture, video, canvas, svg { display: inline-block; max-width: 100%; height: auto; vertical-align: bottom; }

b { color: var(--red-500); font-weight: normal; }

summary::-webkit-details-marker { display: none; }

form { margin: 0; }

input, button, textarea, select { font: inherit; }

input[type=text] { display: block; width: 100%; padding: .5em; border: 1px solid var(--border-color); border-radius: 4px; background-color: var(--white); color: inherit; font-size: 1rem; line-height: var(--lh-narrow); -webkit-appearance: none; -moz-appearance: none; appearance: none; }
input[type=email] { display: block; width: 100%; padding: .5em; border: 1px solid var(--border-color); border-radius: 4px; background-color: var(--white); color: inherit; font-size: 1rem; line-height: var(--lh-narrow); -webkit-appearance: none; -moz-appearance: none; appearance: none; }
input[type=tel] { display: block; width: 100%; padding: .5em; border: 1px solid var(--border-color); border-radius: 4px; background-color: var(--white); color: inherit; font-size: 1rem; line-height: var(--lh-narrow); -webkit-appearance: none; -moz-appearance: none; appearance: none; }

textarea { display: block; width: 100%; padding: .5em; border: 1px solid var(--border-color); border-radius: 4px; background-color: var(--white); color: inherit; font-size: 1rem; line-height: var(--lh-narrow); -webkit-appearance: none; -moz-appearance: none; appearance: none; height: 8em; }

input[type=checkbox], input[type=radio] { width: 1em; height: 1em; }

select { display: block; width: 100%; padding: .5em; padding: .5em 3em .5em .5em; -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: var(--white); background-image: url('data:image/svg+xml;charset=UTF-8,<svg width="13" height="9" viewBox="0 0 13 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.5 9L0.870835 -1.06691e-07L12.1292 8.77544e-07L6.5 9Z" fill="%23585960"/></svg>'); background-position: right .875em center; background-repeat: no-repeat; border: 1px solid var(--border-color); border-radius: 4px; color: inherit; font-size: 1rem; line-height: var(--lh-narrow); }

button { -webkit-appearance: none; -moz-appearance: none; appearance: none; margin: 0; padding: 0; border: none; border-radius: 0; background-color: rgba(0, 0, 0, 0); color: inherit; cursor: pointer; }

svg { fill: currentColor; }

:focus-visible { outline: var(--outline); outline-offset: var(--ol-offset); }

.container { max-width: var(--container); margin-inline: auto; padding-inline: 25px; }

.container__wide { max-width: var(--container-wide); margin-inline: auto; padding-inline: 25px; }

.btn { display: inline-flex; justify-content: center; align-items: center; gap: 10px; min-width: 254px; padding: 15px 0 15px 8px; color: var(--text); font-size: 1rem; line-height: var(--lh-narrow); text-align: center; }
@media (min-width: 48em) { .btn { font-size: px2rem(18); } }
@media (any-hover: hover) { .btn .btn_icon-r { transition: transform .3s ease-out; }
  .btn:hover .btn_icon-r { transform: translateX(10px); transition: transform .3s ease-in; } }

.btn-primary { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 15px 20px; border: 1px solid var(--text-link); border-radius: 3px; color: var(--text); font-size: 1.25rem; line-height: var(--lh-narrow); text-align: center; }
@media (min-width: 48em) { .btn-primary { display: inline-flex; min-width: 315px; padding: 17px 20px; font-size: 1.25rem; } }
@media (any-hover: hover) { .btn-primary:hover { background-color: var(--text-link); color: #fff; transition: background-color .2s ease-out, color .3s ease-out; } }
.btn-primary span { flex-grow: 1; text-align: center; padding-left: 24px; }

.link-pill { display: inline-block; padding: .5em .92em; border: 1px solid #b9b9b9; border-radius: 100px; background-color: var(--white); color: var(--text); line-height: 1.2; }

.open-menu .main-nav_toggle-open { display: none; }
.open-menu .main-nav_toggle-close { display: block; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; -webkit-clip-path: polygon(0 0, 0 0, 0 0, 0 0); clip-path: polygon(0 0, 0 0, 0 0, 0 0); border: 0; }

@media (any-hover: hover) { a:not([class]):-moz-any-link { -moz-transition: color .3s,background-image .3s; transition: color .3s,background-image .3s; }
  a:not([class]):any-link { transition: color .3s,background-image .3s; }
  a:not([class]):any-link:hover { text-decoration-color: transparent; }
  .btn .btn_icon-r { transition: transform .3s ease-out; }
  .btn :hover .btn_icon-r { transform: translateX(10px); transition: transform .3s ease-in; }
  .btn-primary:hover { background-color: var(--text-link); color: #fff; transition: background-color .2s ease-out,color .3s ease-out; }
  .link-pill { transition: background-color .3s ease-in,border-color .3s ease-in; }
  .link-pill:hover { background-color: var(--light-blue); border-color: var(--text); }
  .home-comm a:hover { border-color: var(--text-link); transition: border-color .3s ease-in; } }
@media (prefers-reduced-motion: reduce) { html:focus-within { scroll-behavior: auto; }
  * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
/**** 見出し ****/
h2 { font-size: 1.375rem; font-weight: 500; }
@media (min-width: 768px) { h2 { font-size: 1.625rem; } }

h3 { font-size: 1.125rem; font-weight: 500; }
@media (min-width: 768px) { h3 { font-size: 1.375rem; } }

h4 { font-size: 1rem; font-weight: 400; }
@media (min-width: 768px) { h4 { font-size: 1.125rem; } }

h5 { font-size: .8125rem; font-weight: 400; }
@media (min-width: 768px) { h5 { font-size: .9375rem; } }

p { font-size: .8125rem; }
@media (min-width: 48em) { p { font-size: .9375rem; } }

/**** シングルページの共通パーツ****/
.container.single { display: flex; flex-direction: column; gap: 30px; }
@media (min-width: 48em) { .container.single { flex-direction: row; max-width: 1132px; width: 100%; gap: calc(82 / 1132 * 100%); } }
.container.single section:not(:first-of-type) { margin-top: 50px; }
@media (min-width: 48em) { .container.single section:not(:first-of-type) { margin-top: 120px; } }

@media (min-width: 48em) { .single-sidebar { width: calc(120 / 1082 * 100%); } }

@media (min-width: 48em) { .single-main { width: calc(880 / 1082 * 100%); } }

.single_heading { margin-bottom: 15px; }
@media (min-width: 48em) { .single_heading { margin-bottom: 30px; } }

.single_subheading { margin-bottom: 30px; }
@media (min-width: 48em) { .single_subheading { margin-bottom: 45px; } }

/**** サイドメニュー ****/
.sidebar_list { display: flex; flex-direction: row; gap: calc(35 / 325 * 100%); padding: 0; flex-wrap: wrap; }
@media (min-width: 48em) { .sidebar_list { flex-direction: column; position: sticky; top: 20px; gap: 1em; } }

.sidebar_item { list-style: none; }

.sidebar_link { color: var(--text); font-size: .75rem; text-decoration: underline; }
@media (min-width: 48em) { .sidebar_link.active { position: relative; }
  .sidebar_link.active::before { content: ""; position: absolute; top: 50%; transform: translateY(-50%); left: -1em; width: 5px; height: 8px; background: url(../images/arrow-orange.svg) no-repeat center center/contain; } }
@media (min-width: 48em) and (min-width: 48em) { .sidebar_link { text-decoration: none; font-size: .9375rem; } }

/**** 404ページ ****/
.notfound { padding-bottom: 112px; }
.notfound h1 { font-size: 1.25rem; font-weight: 500; text-align: center; text-transform: uppercase; }
@media (min-width: 48em) { .notfound h1 { color: var(--gray); font-size: 2.5rem; font-weight: 700; } }
.notfound h1 strong { font-weight: 500; }
@media (min-width: 48em) { .notfound h1 strong { font-size: 6.25rem; font-weight: 700; letter-spacing: .2em; } }
.notfound p { margin-top: 22px; text-align: center; }
@media (min-width: 48em) { .notfound p { margin-top: 35px; } }
.notfound .btn { margin-top: 67px; width: 100%; }
@media (min-width: 48em) { .notfound .btn { margin-top: 50px; } }

.site-header { background-color: var(--white); }

.site-header_container { max-width: 1150px; margin-inline: auto; padding-inline: 25px; display: flex; align-items: center; justify-content: space-between; height: 54px; }

.header-logo { width: 60px; }

@keyframes fadein { 0% { display: block; opacity: 0; }
  100% { opacity: 1; } }
.main-menu { list-style-type: none; -webkit-padding-start: 0; padding-inline-start: 0; }
.main-menu a { color: var(--text); }
.main-menu a:-moz-any-link, .main-menu a:any-link { color: var(--text); text-decoration: none; }

@media (min-width: 48em) { .site-header_container { gap: 32px; height: 64px; }
  .header-logo { width: 82px; }
  .main-menu { display: flex; flex-wrap: wrap; gap: 0 1rem; }
  .main-menu a { position: relative; display: block; padding: 0 7px; line-height: var(--lh-narrow); font-size: .875rem; }
  .main-menu a::after { content: ""; position: absolute; bottom: 0; left: 0; display: block; width: 100%; height: 1px; background-color: var(--text); transform: scaleX(0); transform-origin: 0 0; transition: transform 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  [class*=main-nav_toggle] { display: none; } }
@media (min-width: 48em) and (any-hover: hover) { .main-menu a:hover::after { transform: scaleX(1); } }
@media not all and (min-width: 48em) { .main-nav { position: absolute; z-index: 100; overflow: hidden; top: 54px; left: 0; width: 100%; min-height: 100vh; min-height: 100dvh; background-color: rgba(255, 255, 255, 0.97); padding-bottom: 100px; opacity: 0; }
  .main-nav[aria-hidden=true] { display: none; }
  .main-nav[aria-hidden=false] { animation: fadein .3s ease-out forwards; }
  .main-menu { border-bottom: 1px solid var(--light-bluegray); }
  .main-menu li { border-top: 1px solid var(--light-bluegray); }
  .main-menu a { display: block; padding: 15px 25px; background-image: url('data:image/svg+xml;charset=UTF-8,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.13828 5.86269C8.2987 5.70228 8.50287 5.62207 8.75078 5.62207C8.9987 5.62207 9.20286 5.70228 9.36328 5.86269L13.3883 9.8877C13.4758 9.9752 13.5376 10.07 13.5738 10.1721C13.6099 10.2742 13.6283 10.3835 13.6289 10.5002C13.6289 10.6169 13.607 10.73 13.5633 10.8397C13.5195 10.9494 13.4612 11.0404 13.3883 11.1127L9.36328 15.1377C9.20286 15.2981 8.9987 15.3783 8.75078 15.3783C8.50286 15.3783 8.2987 15.2981 8.13828 15.1377C7.97786 14.9773 7.89766 14.7731 7.89766 14.5252C7.89766 14.2773 7.97786 14.0731 8.13828 13.9127L11.5508 10.5002L8.13828 7.0877C7.97787 6.92728 7.89766 6.72311 7.89766 6.47519C7.89766 6.22728 7.97787 6.02311 8.13828 5.86269Z" fill="%23165477"/></svg>'); background-position: right center; background-repeat: no-repeat; font-size: .875rem; } }
@media (min-width: 48em) { .service { max-width: 1097px; } }
.service section { margin-top: 50px; }
@media (min-width: 48em) { .service section { margin-top: 80px; } }

.service_heading { margin-top: 20px; font-size: 1.25rem; }
@media (min-width: 48em) { .service_heading { margin-top: 50px; font-size: 2.0625rem; text-align: center; } }

.service_exp { margin-top: 15px; }
@media (min-width: 48em) { .service_exp { margin-top: 27px; text-align: center; } }

.service-content_text h3, .service-content_text h4 { margin-bottom: 15px; }
@media (min-width: 48em) { .service-content_text { width: calc(483 / 1047 * 100%); }
  .service-content_text h3 { margin-bottom: 25px; }
  .service-content_text p { margin-top: 20px; } }

.service-content_box { display: flex; flex-direction: column; gap: 30px; }
.service-content_box:not(:first-of-type) { margin-top: 35px; }
@media (min-width: 48em) { .service-content_box:not(:first-of-type) { margin-top: 72px; } }
.service-content_box:nth-of-type(odd) .service-content_image { padding-right: calc(55 / 325 * 100%); }
@media (min-width: 48em) { .service-content_box:nth-of-type(odd) .service-content_image { padding-right: calc(88 / 1047 * 100%); } }
.service-content_box:nth-of-type(odd) .service-content_image::before { right: 0; }
@media (min-width: 48em) { .service-content_box:nth-of-type(even) { flex-direction: row-reverse; } }
.service-content_box:nth-of-type(even) .service-content_image { padding-left: calc(55 / 325 * 100%); }
@media (min-width: 48em) { .service-content_box:nth-of-type(even) .service-content_image { padding-left: calc(88 / 1047 * 100%); } }
.service-content_box:nth-of-type(even) .service-content_image::before { left: 0; }
@media (min-width: 48em) { .service-content_box { flex-direction: row; gap: calc(90 / 1047 * 100%); } }

.service-content_image { position: relative; padding-bottom: 27px; }
@media (min-width: 48em) { .service-content_image { padding-bottom: 45px; width: calc(524 / 1047 * 100%); margin-top: 164px; } }
.service-content_image::before { content: ''; position: absolute; bottom: 0; width: calc(228 / 325 * 100%); height: 88px; background-color: #EBF2F9; z-index: -1; }
@media (min-width: 48em) { .service-content_image::before { width: calc(367 / 524 * 100%); height: 142px; } }

.case-study_cards { display: flex; flex-direction: column; margin-top: 50px; gap: 20px; }
@media (min-width: 48em) { .case-study_cards { flex-direction: row; flex-wrap: wrap; gap: 20px; } }

.case-study_card { padding: 15px 10px; border: 1px solid var(--light-bluegray); border-radius: 3px; }
@media (min-width: 48em) { .case-study_card { width: 100%; padding-left: 20px; padding-right: 20px; } }

.case-study_card-title { margin-bottom: 5px; display: flex; align-items: center; gap: 10px; }
.case-study_card-title h3 { font-size: .9375rem; font-weight: 500; }
@media (min-width: 48em) { .case-study_card-title h3 { font-size: 1.125rem; } }
.case-study_card-title img { display: block; width: 40px; }

.case-study_card-link { text-align: right; }
.case-study_card-link .btn { padding: 15px 0 0px 8px; }

.case-study_card-box { display: flex; flex-direction: column; gap: 35px; }
@media (min-width: 48em) { .case-study_card-box { flex-direction: row; gap: calc(58 / 1100 * 100%); } }

.example_box { display: flex; flex-direction: column; gap: 1em; }
.example_box:not(:first-of-type) { margin-top: 50px; }
@media (min-width: 48em) { .example_box { flex-direction: row; gap: 26px; } }

@media (min-width: 48em) { .example_box-title { font-size: 1.125rem; } }

@media (min-width: 48em) { .example_box-img { width: 240px; } }

@media (min-width: 48em) { .example_box-text { width: calc(100% - 266px); } }

.example_box-img img { width: 100%; }

.example_box-name { color: var(--gray); }

.example_box-label { color: var(--black); border: 1px solid #B9B9B9; border-radius: 20px; padding: 8px; display: inline-block; margin-top: 10px; line-height: 1; font-size: 12px; }
@media (min-width: 48em) { .example_box-label { margin-top: 20px; padding: 8px 12px; } }

.bnr-box { margin: 96px auto 0; max-width: 375px; }
@media (min-width: 48em) { .bnr-box { max-width: 800px; margin: 150px auto 0; } }

.bnr { display: block; border: 1px solid var(--light-bluegray); border-radius: 3px; transition: border 0.3s ease 0s; }
.bnr:hover { border: 1px solid var(--text-link); }

.message_box { display: flex; flex-direction: column; gap: 20px; border: 1px solid var(--light-bluegray); padding: 20px 15px; box-shadow: 5px 4px 4px #F5F5F5; border-radius: 3px; }
.message_box:not(:first-of-type) { margin-top: 28px; }
@media (min-width: 48em) { .message_box:not(:first-of-type) { margin-top: 20px; } }
@media (min-width: 48em) { .message_box { flex-direction: row; justify-content: space-between; gap: 0; padding: 30px; } }

.message_title { text-align: center; }
.message_title h2 { font-size: 1.25rem; }
@media (min-width: 48em) { .message_title h2 { font-size: 1.625rem; } }
.message_title p { font-size: .75rem; color: var(--point); }
@media (min-width: 48em) { .message_title { text-align: left; }
  .message_title .btn { min-width: auto; padding: 0; text-align: left; margin-top: 30px; } }

.message_text h3 { margin-bottom: 15px; }
@media (min-width: 48em) { .message_text { width: calc(520 / 740 * 100%); } }

.thought { margin-top: 50px; background-color: var(--light-blue); margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding: 20px 25px 68px; }
@media (min-width: 48em) { .thought { margin-top: 100px; padding: 50px calc(50vw - 50%); } }

.thought_heading { font-size: 1.25rem; padding-left: 27px; position: relative; display: block; width: fit-content; margin-bottom: 15px; }
.thought_heading::before { content: ''; position: absolute; top: 50%; transform: translateY(-50%); left: 0; width: 18px; height: 5px; background-color: var(--blue); }
@media (min-width: 48em) { .thought_heading::before { width: 28px; } }
@media (min-width: 48em) { .thought_heading { padding-left: 44px; margin: 0 0 20px 0; font-size: 1.625rem; } }

.thought_label { background-color: var(--light-bluegray); padding: 5px 10px; font-size: .75rem; display: inline-block; }

.thought_subheading { margin-top: 10px; font-weight: 400; }

.thought_box { margin-top: 20px; display: flex; flex-direction: row-reverse; gap: 16px; }
.thought_box .thought_exp { width: calc(215 / 325 * 100%); }
@media (min-width: 48em) { .thought_box .thought_exp { width: calc(615 / 800 * 100%); } }
@media (min-width: 48em) { .thought_box { flex-direction: row; justify-content: space-between; margin-top: 30px; gap: 0; } }

.thought_img { width: calc(94 / 325 * 100%); }
@media (min-width: 48em) { .thought_img { width: 168px; margin-top: -90px; } }

.thought_img img { width: 100%; }

.thought_exp:last-of-type { margin-top: 15px; }
@media (min-width: 48em) { .thought_exp:last-of-type { margin-top: 0; } }

.bnr-cards { margin-top: 158px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.bnr-cards .bnr { max-width: 323px; }
@media (min-width: 48em) { .bnr-cards { margin-top: 140px; flex-direction: row; flex-wrap: wrap; gap: 45px; }
  .bnr-cards .bnr { max-width: 100%; width: calc((100% - 46px) / 2); } }

@media (min-width: 48em) { .container.mission { max-width: 1148px; } }

@media (min-width: 48em) { .mission-content_title { display: block; margin: 0 auto; width: fit-content; } }

.mission-content_box { margin-top: 15px; }
@media (min-width: 48em) { .mission-content_box { margin-top: 50px; display: flex; gap: calc(58 / 1098 * 100%); } }

@media (min-width: 48em) { .mission-content_text { width: calc((100% - 58px) / 2); } }
.mission-content_text > * + * { margin-top: 20px; }

.mission-content_signature { text-align: right; }
.mission-content_signature img { display: inline-block; margin-top: 10px; }

.mission-members { padding-left: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 45px; margin-top: 50px; justify-content: center; }
@media (min-width: 48em) { .mission-members { margin-top: 100px; gap: 60px; } }

.mission-member { width: calc((100% - 45px) / 2); }
@media (min-width: 48em) { .mission-member { width: 140px; } }

.mission-member_img img { display: block; margin: 0 auto; }

.mission-member_name { text-align: center; margin-top: 12px; }
.mission-member_name span { font-size: .75rem; }
@media (min-width: 48em) { .mission-member_name span { font-size: .8125rem; } }

@media (min-width: 48em) { .mission .bnr-cards { max-width: 860px; margin-inline: auto; } }

.vision-content_titleBox { border: 1px solid var(--light-bluegray); border-radius: 3px; padding: 15px 20px; }
@media (min-width: 48em) { .vision-content_titleBox { padding: 30px 0; text-align: center; } }

.vision-content_title { font-size: 1rem; font-weight: 500; line-height: 2; }
@media (min-width: 48em) { .vision-content_title { font-size: 1.25rem; line-height: 2.2; } }

.vision-content_text { margin-top: 20px; }

.corevalue-content blockquote { background-color: #F0F4F5; padding: 30px 16px 15px; position: relative; margin-top: 20px; }
.corevalue-content blockquote::before { content: ''; position: absolute; top: .5em; left: .5em; background: url(../images/quote.svg) no-repeat center center/contain; width: 24px; height: 24px; }
@media (min-width: 48em) { .corevalue-content blockquote { padding: 16px 40px; } }
.corevalue-content blockquote cite { font-size: .8125rem; margin-top: 10px; text-align: right; color: var(--gray); display: inherit; }
@media (min-width: 48em) { .corevalue-content blockquote cite { font-size: .9375rem; } }

.corevalue-content_heading { font-size: 1.25rem; font-weight: 500; margin-top: 50px; }
@media (min-width: 48em) { .corevalue-content_heading { font-size: 1.625rem; } }

.corevalue-content_heading + .corevalue-content_subheading { margin-top: 10px; }
@media (min-width: 48em) { .corevalue-content_heading + .corevalue-content_subheading { margin-top: 15px; } }

.corevalue-content_subheading { font-size: 1.125rem; font-weight: 500; position: relative; padding-left: 30px; margin-top: 30px; }
@media (min-width: 48em) { .corevalue-content_subheading { font-size: 1.375rem; margin-top: 50px; } }
.corevalue-content_subheading::before { content: ''; position: absolute; top: .65em; left: 0; width: 18px; height: 5px; background-color: var(--blue); }

.corevalue-content_subheading + .corevalue-content_text { margin-top: 10px; }
@media (min-width: 48em) { .corevalue-content_subheading + .corevalue-content_text { margin-top: 15px; } }

.corevalue-content_text { margin-top: 20px; }

.home .site-header { position: relative; z-index: 1; }
.home .site-main { margin-top: -54px; }
.home .blog-list { margin-block: 35px; }

.home-mv { overflow: hidden; position: relative; padding: 160px 0 100px; }

.home-mv_txt { margin-top: 72px; text-align: center; }

.home-catch { font-size: 1.875rem; font-weight: 700; line-height: var(--lh-narrow); text-align: center; text-shadow: 1px 1px 0px #fff,-1px -1px 0px #fff,-1px 1px 0px #fff,1px -1px 0px #fff,1px 0px 0px #fff,-1px 0px 0px #fff,0px 1px 0px #fff,0px -1px 0px #fff; letter-spacing: .09em; }

.home-catch-en { -webkit-margin-before: 23px; margin-block-start: 23px; font-family: var(--ff-eng); font-size: 1rem; line-height: 1.375; text-align: center; text-shadow: 1px 1px 0px #fff,-1px -1px 0px #fff,-1px 1px 0px #fff,1px -1px 0px #fff,1px 0px 0px #fff,-1px 0px 0px #fff,0px 1px 0px #fff,0px -1px 0px #fff; letter-spacing: .02em; }

.home-deco1, .home-deco2, .home-deco3 { position: absolute; z-index: -1; }

.home-deco1 { top: -20px; left: -20px; width: 380px; animation: deco1sp 10s linear infinite; }

@keyframes deco1sp { 0% { transform: translate(0, 0); }
  20% { transform: translate(120px, 70px) rotate(30deg); }
  60% { transform: translate(0, 0) rotate(150deg); }
  90% { transform: translate(-50px, -10px); } }
@keyframes deco1pc { 0% { transform: translate(0, 0) rotate(0); }
  20% { transform: translate(240px, 70px) rotate(120deg); }
  50% { transform: translate(80px, -80px) rotate(60deg); }
  90% { transform: translate(20px, 30px) rotate(90deg); } }
.home-deco2 { width: 300px; left: -170px; top: 0px; animation: deco2sp 6s linear infinite; }

@keyframes deco2sp { 0% { transform: translate(0, 0); }
  40% { transform: translate(60px, 80px) scaleY(0.7); }
  60% { transform: translate(0, 0) scaleX(1); }
  90% { transform: translate(-10px, -30px); } }
@keyframes deco2pc { 0% { transform: translate(0, 0); }
  40% { transform: translate(100px, -100px); }
  60% { transform: translate(200px, 0); }
  90% { transform: translate(-100px, 60px); } }
.home-deco3 { top: -60px; right: -50px; animation: deco3 .5s ease-out forwards; }

@keyframes deco3 { 0% { transform: translate(50px, 50px); }
  100% { transform: translate(0, 0); } }
.home-sec { padding: 200px 0 100px; }
.home-sec .home-sec_heading::before { content: ""; position: absolute; top: -100px; left: 50%; display: block; width: 1px; height: 80px; background-color: var(--gray); transform-origin: center top; }
.home-sec .home-sec_heading[data-emergence=hidden]::before { transform: scaleY(0); }
.home-sec .home-sec_heading[data-emergence=visible]::before { transform: scaleY(1); transition: transform 1s linear(0, 1.32, 0.87, 1.05, 0.98, 1.01, 1, 1); }

.home-sec2 { padding-block: 50px; background-color: var(--light-blue); }

.home-sec_heading { position: relative; margin-bottom: .4em; font-size: 1.375rem; font-weight: 500; line-height: 2; text-align: center; letter-spacing: .05em; }

.home-sec_sub-heading { margin-block: 50px 15px; font-size: 1.125rem; font-weight: 400; text-align: center; }

.home-sec_exp { max-width: -moz-fit-content; max-width: fit-content; margin-inline: auto; margin-bottom: 15px; }

.home-business { list-style-type: none; display: grid; grid-template-columns: 129px 21px 129px; grid-template-rows: 108px 42px 66px 42px; max-inline-size: 280px; margin: 0 auto 35px; -webkit-padding-start: 0; padding-inline-start: 0; }
.home-business li { display: grid; align-items: center; width: 150px; height: 150px; border-radius: 50%; border: 1px solid #dae0e3; box-shadow: 5px 4px 4px #f5f5f5; background-color: var(--white); font-size: 1.125rem; text-align: center; }
.home-business li:nth-child(1) { grid-column: 1/3; grid-row: 1/3; }
.home-business li:nth-child(2) { grid-column: 2/4; grid-row: 2/4; }
.home-business li:nth-child(3) { grid-column: 1/3; grid-row: 4/6; }

.home-tag-list { list-style-type: none; display: flex; flex-wrap: wrap; gap: 15px; margin-block: 15px 25px; -webkit-padding-start: 0; padding-inline-start: 0; }
.home-tag-list a { max-width: -moz-fit-content; max-width: fit-content; }

.home-recruit { overflow: hidden; position: relative; padding-block: 50px; background: var(--light-blue); }
.home-recruit::before { content: url(../images/home-recruit-bg01.svg); position: absolute; left: calc(50% - 150px); top: 103px; display: block; width: 68px; height: 275px; }
.home-recruit::after { content: ""; position: absolute; top: 50px; left: calc(50% + 72px); display: block; width: 225px; height: 150px; background-image: url(../images/home-recruit-bg02.svg); background-size: contain; background-repeat: no-repeat; }
.home-recruit[data-emergence=hidden]::before, .home-recruit[data-emergence=hidden]::after, .home-recruit[data-emergence=hidden] .home-recruit-images::before { opacity: 0; transform: translateY(20px); }
.home-recruit[data-emergence=visible]::before, .home-recruit[data-emergence=visible]::after { opacity: 1; transform: translateY(0); }
.home-recruit[data-emergence=visible]::before { transition: transform .8s .7s ease-out,opacity .8s .7s ease-out; }
.home-recruit[data-emergence=visible]::after { transition: transform .8s 1s ease-out,opacity .8s 1s ease-out; }
.home-recruit[data-emergence=visible] .home-recruit-images::before { transition: transform .8s .7s ease-out,opacity .8s .7s ease-out; }

.home-recruit-images { position: relative; z-index: 1; width: 257px; height: 205px; margin: 0 auto 10px; }
.home-recruit-images > picture { position: absolute; overflow: hidden; border-radius: 50%; }

.home-recruit-image1 { top: 0; right: 0; width: 183px; height: 183px; }
.home-recruit-image1[data-emergence=visible] { transition: transform .6s ease-out,opacity .6s ease-out; }

.home-recruit-image2 { bottom: 0; left: 0; width: 123px; height: 123px; }
.home-recruit-image2[data-emergence=visible] { transition: transform .5s .2s ease-out,opacity .5s .2s ease-in; }

.home-recruit-image1[data-emergence=hidden], .home-recruit-image2[data-emergence=hidden] { opacity: 0; transform: translateY(50px); }

.home-recruit-image1[data-emergence=visible], .home-recruit-image2[data-emergence=visible] { opacity: 1; transform: translateY(0); }

.home-recruit-btn { text-align: center; }
.home-recruit-btn .btn { -webkit-margin-start: 24px; margin-inline-start: 24px; }

.home-comm { display: flex; gap: 13px; max-width: 313px; margin: 37px auto 0; }
.home-comm a { border: 1px solid var(--light-bluegray); }

.hp_inline-block { display: inline-block; }

.hp_pb0 { -webkit-padding-after: 0 !important; padding-block-end: 0 !important; }

.hp_mt_m { -webkit-margin-before: 1rem; margin-block-start: 1rem; }

.hp_text-center { text-align: center !important; }

.hp_centered-block { max-width: -moz-fit-content; max-width: fit-content; margin-inline: auto; }

@media (min-width: 48em) { .home .site-header { background-color: rgba(0, 0, 0, 0); }
  .home .site-main { margin-top: -64px; }
  .home .blog-list { margin-block: 40px 55px; }
  .home-mv { padding: 176px 0 100px; }
  .home-mv_txt { font-size: 1.125rem; line-height: 2.2222222222; }
  .home-catch { font-size: 2.1875rem; }
  .home-catch-en { font-size: 1.28125rem; }
  .home-deco1 { top: 70px; left: 100px; width: 616px; animation: deco1pc 10s linear infinite; }
  .home-deco2 { top: 95px; left: -240px; width: 530px; animation: deco2pc 10s linear infinite; }
  .home-deco3 { top: 0px; right: -70px; }
  .home-sec2 { padding-block: 87px 62px; }
  .home-sec_heading { font-size: 1.875rem; }
  .home-sec_sub-heading { -webkit-margin-before: 45px; margin-block-start: 45px; }
  .home-sec_exp { margin-bottom: 44px; }
  .home-business { display: flex; justify-content: space-between; max-inline-size: 100%; -webkit-margin-after: 20px; margin-block-end: 20px; }
  .home-business li { width: 240px; height: 240px; font-size: 1.25rem; font-weight: 500; }
  .home-tag-list { margin-block: 24px 35px; }
  .home-recruit::before { content: ""; display: none; }
  .home-recruit::after { top: 246px; left: calc(50% + 286px); width: 298px; height: 209px; }
  .home-recruit .container { display: grid; grid-template: "heading img" auto "btn img" 1fr/auto 1fr; }
  .home-recruit .home-sec_heading { grid-area: heading; margin-top: 143px; text-align: left; }
  .home-recruit-images { grid-area: img; width: 441px; height: 352px; }
  .home-recruit-images::before { content: url(../images/home-recruit-bg01_pc.svg); position: absolute; top: 16px; left: 36px; width: 93px; height: 116px; }
  .home-recruit-image1 { width: 314px; height: 314px; }
  .home-recruit-image2 { width: 212px; height: 212px; }
  .home-recruit-btn { text-align: left; }
  .home-recruit-btn .btn { justify-content: flex-start; -webkit-margin-start: 0; margin-inline-start: 0; -webkit-padding-start: 0; padding-inline-start: 0; }
  .home-comm { gap: 52px; max-width: 592px; margin: 56px auto 0; } }
@media (min-width: 48em) and (any-hover: hover) { .home-comm a:hover { border-color: var(--text-link); transition: border-color .3s ease-in; } }

.blog-list { display: grid; grid-template-columns: 1fr; gap: 35px 25px; padding: 0; }
.blog-list .post-details, .blog-list .post-details + p { color: var(--gray); font-size: 0.75rem; }

.blog-list_item { display: flex; width: 100%; gap: 12px; }
.blog-list_item a { display: grid; grid-template: "thumb title" auto "thumb prop" 1fr/0.4fr 1fr; gap: 5px 12px; width: 100%; color: var(--text); }
.blog-list_item a:any-link { color: var(--text); text-decoration: none; }
.blog-list_item .blog-thumb { grid-area: thumb; border: 1px solid transparent; transition: border .3s ease-out; text-align: center; }
.blog-list_item .blog-thumb img { width: auto; height: 145px; object-fit: contain; }
.blog-list_item .blog-title { grid-area: title; font-size: .9375rem; line-height: 1.4; color: var(--text); font-weight: 400; }
.blog-list_item .blog-prop { grid-area: prop; display: flex; gap: 5px 1.2em; color: #585960; font-size: .75rem; }
.blog-list_item .blog-date { flex-basis: 6em; }

@media (min-width: 48em) { .blog-list { justify-content: flex-start; grid-template-columns: repeat(3, minmax(220px, 1fr)); }
  .blog-list_item a { display: block; width: 100%; }
  .blog-list_item .blog-title { margin-block: 1em .5em; }
  .blog-thumb { border: 1px solid rgba(0, 0, 0, 0); transition: border .3s ease-out; }
  .blog-list_item a:hover .blog-thumb { border-color: var(--text); } }
.blog-copy { color: var(--text); font-size: 0.75rem; letter-spacing: 0.12em; font-weight: 400; }

.blog-index-banner { max-width: 365px; width: 100%; margin: 0 auto; display: block; }
.blog-index-banner img { width: 100%; }

.blog-index-banner-container { display: flex; flex-direction: column; gap: 20px; padding-bottom: 140px; }
.blog-index-banner-container img { border: 1px solid var(--light-bluegray); }

.blog-pagination { display: flex; justify-content: center; gap: 14px; margin: 80px auto 120px; padding: 0; list-style: none; }
.blog-pagination__item { border: solid 1px #9e9e9e; width: 44px; height: 44px; font-weight: bold; display: flex; justify-content: center; align-items: center; }
.blog-pagination__item a { align-items: center; justify-content: center; display: flex; font-weight: normal; width: 100%; height: 100%; color: var(--gray); }
.blog-pagination__item.active { border: solid 1px transparent; }

.page-body.blog-index { padding-bottom: 0; }

.blog-index .blog-date, .blog-index .blog-date + span { font-size: 0.75rem; flex-shrink: 0; }

.blog-index .blog-list_item .blog-prop { align-items: baseline; gap: 5px 0; }

@media (min-width: 48em) { .blog-copy { display: inline-block; margin-top: 22px; font-size: 0.8125rem; letter-spacing: 0.13em; }
  .blog-index-banner-container { flex-direction: row; justify-content: space-between; padding-bottom: 100px; }
  .blog-index-banner-container img { box-sizing: border-box; margin-bottom: 0; transition: border .3s; }
  .blog-index-banner-container img:hover { border-color: var(--text); }
  .blog-index-banner-container .blog-index-banner { gap: 20px; }
  .blog-pagination { margin: 40px auto 100px; }
  .blog-pagination__item { transition: border .3s; }
  .blog-pagination__item:hover { border-color: var(--text); }
  .blog-list_item a:hover .blog-thumb { border-color: var(--text); } }
/* ブログ詳細ページ -------------------------*/
.post-details { margin-top: 32px; }
@media (min-width: 48em) { .post-details { margin-top: 20px; } }
.post-details .post-date { color: var(--gray); font-size: .75rem; }
.post-details + h2 { font-size: 1.125rem; }
@media (min-width: 48em) { .post-details + h2 { font-size: 1.75rem; } }

.blog-post .post-meta { display: flex; justify-content: space-between; align-items: flex-end; }

.post-details { display: flex; flex-wrap: wrap; gap: 10px; padding-left: 0 !important; }
.post-details .blog-filter { border: 1px solid var(--light-bluegray); border-radius: 3px; display: inline-block; padding: 0 8px 2px; transition: background-color .3s ease-in,border-color .3s ease-in; margin: 0 !important; }
.post-details .blog-filter:hover { background-color: var(--light-blue); border-color: var(--text); }
.post-details .blog-filter a { font-size: .75rem; color: var(--text) !important; text-decoration: none !important; line-height: 1; }

.post-author { display: flex; align-items: center; gap: .5em; }
.post-author img { width: 14px; height: 14px; }
.post-author span { font-size: 14px; color: var(--gray); }

.post-content { padding: 0 0 46px; }
.post-content > * { margin-top: 15px; }
@media (min-width: 48em) { .post-content > * { margin-top: 20px; } }
.post-content p > img { margin-bottom: 25px; }
.post-content h1 { font-size: 1rem; font-weight: 500; }
@media (min-width: 48em) { .post-content h1 { font-size: 1.375rem; } }
.post-content h2:not([class]) { font-size: 1rem; font-weight: 500; border-bottom: 1px solid var(--light-bluegray); padding-bottom: 6px; margin-top: 45px; }
@media (min-width: 48em) { .post-content h2:not([class]) { font-size: 1.375rem; margin-top: 80px; padding-bottom: 15px; } }
.post-content h3:not([class]) { margin-top: 40px; padding-left: 18px; border-left: 4px solid var(--blue); font-size: 1rem; }
@media (min-width: 48em) { .post-content h3:not([class]) { font-size: 1.25rem; padding-left: 20px; margin-top: 50px; } }
.post-content h4 { font-weight: 500; font-size: 1rem; }
@media (min-width: 48em) { .post-content h4 { font-size: 1.25rem; } }
.post-content iframe { width: 100%; max-width: 558px; height: calc(182 / 375 * 100vw); max-height: 323px; margin-block: 40px; margin-inline: auto; display: block; }
.post-content ul, .post-content ol { padding-left: 1.5em; line-height: 2.1; }
.post-content ul li, .post-content ol li { line-height: var(--lh-normal); font-size: .8125rem; margin-block: 15px; }
@media (min-width: 48em) { .post-content ul li, .post-content ol li { font-size: .9375rem; } }
.post-content mark { background: linear-gradient(transparent 60%, rgba(78, 149, 206, 0.3) 0%); }
.post-content pre { padding: 10px; overflow: auto; line-height: 1.3; }
.post-content blockquote { background-color: #F0F4F5; padding: 30px 16px 15px; position: relative; }
.post-content blockquote::before { content: ''; position: absolute; top: .5em; left: .5em; background: url(../images/quote.svg) no-repeat center center/contain; width: 24px; height: 24px; }
@media (min-width: 48em) { .post-content blockquote { padding: 16px 40px; } }
.post-content blockquote cite { font-size: .8125rem; margin-top: 10px; text-align: right; color: var(--gray); display: inherit; }
@media (min-width: 48em) { .post-content blockquote cite { font-size: .9375rem; } }
.post-content img.float-left { display: block; margin: 0 16px 16px 0; float: left; }
.post-content img.float-right { display: block; margin: 0 0 16px 16px; float: right; }
.post-content .clearfix::after { content: ""; display: block; clear: both; }
.post-content .blog-navigation { display: flex; flex-direction: column; gap: 10px; }
@media (min-width: 48em) { .post-content .blog-navigation { flex-direction: row; gap: 0; } }
.post-content .blog-navigation a { border: 1px solid var(--light-bluegray); color: var(--text); padding: 12px 15px; position: relative; }
@media (min-width: 48em) { .post-content .blog-navigation a { display: grid; place-content: center; width: 50%; } }
.post-content .blog-navigation a::before { content: ''; position: absolute; top: 50%; border-left: 2px solid var(--text); border-bottom: 2px solid var(--text); width: .7em; height: .7em; transition: transform 0.3s ease 0s; }
.post-content .blog-navigation a.prev { padding-left: 32px; border-radius: 3px 0 0 3px; }
.post-content .blog-navigation a.prev:hover::before { transform: translateX(-3px) translateY(-50%) rotate(45deg); }
.post-content .blog-navigation a.prev::before { left: 15px; transform: translateY(-50%) rotate(45deg); }
.post-content .blog-navigation a.next { padding-right: 32px; border-radius: 0 3px 3px 0; margin-left: -1px; }
.post-content .blog-navigation a.next:hover::before { transform: translateX(3px) translateY(-50%) rotate(-135deg); }
.post-content .blog-navigation a.next::before { right: 15px; transform: translateY(-50%) rotate(-135deg); }
.post-content .blog-heading { font-size: 1.125rem; padding-bottom: 10px; border-bottom: 3px solid var(--blue); }
.post-content .container { margin-top: 40px; padding: 0; }
@media (min-width: 48em) { .post-content .container { margin-top: 100px; } }

.md-img-left, .md-img-right { clear: both; }

.md-img-left + p img, .md-img-right + p img { width: 300px; margin-bottom: 20px; }
@media screen and (max-width: 1068px) { .md-img-left + p img, .md-img-right + p img { position: relative; width: auto !important; margin-left: 0 !important; float: none !important; width: 100% !important; } }

.md-img-left.--has-vertical + p img, .md-img-right.--has-vertical + p img { width: 30%; }

.md-img-left + p img { float: left; margin-right: 30px; }

.md-img-right + p img { float: right; margin-left: 30px; }

.form-exp { -webkit-margin-after: 30px; margin-block-end: 30px; }

.form-item { display: grid; grid-template: "name" auto "control" auto/1fr; }
.form-item + .form-item { margin-top: 23px; }

.form-name { grid-area: name; display: flex; align-items: flex-start; gap: 13px; -webkit-margin-after: 8px; margin-block-end: 8px; }
.form-name .badge-required { margin-top: 3px; }

.form-label { font-size: .875rem; line-height: var(--lh-narrow); }

.form-control { grid-area: control; }

.error { border-color: #feaeae !important; }
.error + .error-msg { display: block; }

.error-msg { display: none; color: var(--attention); font-size: .75rem; }

.form-privacy { max-width: -moz-fit-content; max-width: fit-content; margin: 15px auto; font-size: .75rem; }

.form-btn { display: flex; flex-flow: column; justify-content: center; gap: 30px; -webkit-margin-before: 30px; margin-block-start: 30px; }

.badge-required { display: inline-block; padding: 0 1em; background-color: var(--attention); border-radius: 2px; color: var(--white); font-size: .625rem; line-height: 1.6; }

@media (min-width: 48em) { .form-exp { -webkit-margin-after: 40px; margin-block-end: 40px; }
  .form-item { grid-template: "name control" auto/176px 1fr; gap: 0 24px; }
  .form-item + .form-item { margin-top: 25px; }
  .form-btn { flex-flow: row; flex-wrap: wrap; align-items: center; -webkit-margin-before: 50px; margin-block-start: 50px; } }
.success-text { margin-bottom: 35px; padding: 20px; border-radius: 4px; border: 1px solid var(--light-bluegray, #DAE0E3); }

@media (min-width: 48em) { .success-text { max-width: 650px; width: 100%; margin: 0 auto 35px; padding: 40px 20px; text-align: center; } }
[class*=main-nav_toggle] { width: 45px; height: 45px; transform: translateX(9px); }

.main-nav-bar { position: relative; display: block; width: 27px; height: 1px; margin-inline: auto; background-color: var(--text); }
.main-nav-bar::before, .main-nav-bar::after { content: ""; position: absolute; left: 0; display: block; width: 27px; height: 1px; background-color: var(--text); }
.main-nav-bar::before { top: -9px; }
.main-nav-bar::after { top: 9px; }

.main-nav_toggle-close { display: none; }
.main-nav_toggle-close .main-nav-bar { background-color: rgba(0, 0, 0, 0); }
.main-nav_toggle-close .main-nav-bar::before, .main-nav_toggle-close .main-nav-bar::after { top: 0; width: 26px; }
.main-nav_toggle-close .main-nav-bar::before { transform: rotate(45deg); transform-origin: center; }
.main-nav_toggle-close .main-nav-bar::after { transform: rotate(-45deg); transform-origin: center; }

.site-footer { background: var(--text); color: var(--text-footer); font-size: .75rem; }
.site-footer a:-moz-any-link { color: var(--white); text-decoration: none; }
.site-footer a:any-link { color: var(--white); text-decoration: none; }
.site-footer a[target=_blank]::after { content: ""; display: inline-block; width: .75em; height: .75em; -webkit-margin-start: .5em; margin-inline-start: .5em; background-image: url('data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 9 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.5 0V1H7.295L2.38 5.915L3.085 6.62L8 1.705V3.5H9V0M8 8H1V1H4.5V0H1C0.734784 0 0.48043 0.105357 0.292893 0.292893C0.105357 0.48043 0 0.734784 0 1V8C0 8.26522 0.105357 8.51957 0.292893 8.70711C0.48043 8.89464 0.734784 9 1 9H8C8.26522 9 8.51957 8.89464 8.70711 8.70711C8.89464 8.51957 9 8.26522 9 8V4.5H8V8Z" fill="white"/></svg>'); background-size: 100% auto; }

.site-footer_cont { max-width: 1150px; margin-inline: auto; padding-inline: 25px; padding-block: 40px 16px; }

.site-footer_info { flex-shrink: 0; }
.site-footer_info p { font-size: .75rem; }

.site-footer_nav > div { padding: 20px 12px; -webkit-border-after: 1px solid var(--text-footer); border-block-end: 1px solid var(--text-footer); }

.site-footer_links { max-width: 1150px; margin-inline: auto; padding-inline: 25px; list-style-type: none; display: flex; gap: 2.25em; justify-content: center; -webkit-padding-start: 0; padding-inline-start: 0; }

.footer-logo { display: block; width: 80px; margin-bottom: 1.5rem; }

.footer-map { display: inline-block; margin-top: 8px; }

.footer-heading { -webkit-margin-after: 1em; margin-block-end: 1em; font-family: var(--ff-eng); font-size: .875rem; font-weight: 300; text-transform: uppercase; }

.footer-menu { list-style-type: none; display: grid; gap: 1.5em; -webkit-padding-start: 0; padding-inline-start: 0; }
.footer-menu li { display: flex; }
.footer-menu li::before { content: "－"; -webkit-margin-end: 1em; margin-inline-end: 1em; }

.cr { padding: 38px 0; text-align: center; }

@media (min-width: 48em) { .site-footer_cont { display: flex; flex-wrap: wrap; gap: 20px 56px; padding-block: 64px 16px; }
  .site-footer_nav { display: flex; flex-grow: 1; justify-content: space-between; padding: 12px 0 0; }
  .site-footer_nav > div { border: none; padding: 0 10px; }
  .site-footer_nav > div:first-child { -webkit-padding-start: 0; padding-inline-start: 0; }
  .site-footer_links { justify-content: end; }
  .cr { padding: 10px 0 16px; } }
@media not all and (min-width: 48em) { .site-footer_nav { -webkit-margin-before: 30px; margin-block-start: 30px; -webkit-border-before: 1px solid var(--text-footer); border-block-start: 1px solid var(--text-footer); }
  .hp_display-sm { display: none; } }
@media (any-hover: hover) { .site-footer a:hover { color: var(--bluegray); } }
.privacy h2 { text-align: left; padding-bottom: 15px; border-bottom: 1px solid #DAE0E3; }
.privacy h2 + p { margin-top: 30px; }
.privacy h3 { margin-top: 50px; }
.privacy h3 + p { margin-top: 15px; }
.privacy h4 { margin-top: 40px; }
.privacy h5 { margin-top: 36px; margin-bottom: 0; }
.privacy h5:first-of-type { margin-top: 10px; }
.privacy ul { margin-top: 8px; margin-bottom: 0; padding-left: 20px; }
.privacy ul li { line-height: var(--lh-normal); }
.privacy a { text-decoration: none; color: var(--text-link); }

@media (min-width: 48em) { .company-sidebar { width: calc(120 / 1082 * 100%); } }

@media (min-width: 48em) { .company-main { width: calc(880 / 1082 * 100%); } }

.company_heading { margin-bottom: 15px; }
@media (min-width: 48em) { .company_heading { margin-bottom: 30px; } }

.access_map { aspect-ratio: 368 / 426; }
@media (min-width: 48em) { .access_map { aspect-ratio: 880 / 418; } }
.access_map iframe { width: 100%; height: 100%; }

.access_link { display: block; margin-top: 20px; color: var(--text-link); text-decoration: underline; font-size: .75rem; }
@media (min-width: 48em) { .access_link { text-align: right; font-size: .9375rem; } }

/**** 共通スタイル ****/
.page-desc { display: flex; gap: calc(17 / 325 * 100%); }
@media (min-width: 48em) { .page-desc { gap: calc(41 / 880 * 100%); } }
.page-desc:not(:first-of-type) { margin-top: 14px; }

.page-desc.--border { padding: 20px 0; border-top: 1px solid #DAE0E3; gap: calc(19 / 325 * 100%); }
@media (min-width: 48em) { .page-desc.--border { padding: 22px 1em; gap: calc(56 / 880 * 100%); } }
.page-desc.--border:last-of-type { border-bottom: 1px solid #DAE0E3; }
.page-desc.--border:not(:first-of-type) { margin-top: 0; }
.page-desc.--border .page-label { width: 52px; font-size: .8125rem; }
@media (min-width: 48em) { .page-desc.--border .page-label { font-size: .9375rem; width: 75px; } }
.page-desc.--border .page-value { padding-top: 0; width: calc(254 / 325 * 100%); }
@media (min-width: 48em) { .page-desc.--border .page-value { font-size: .9375rem; width: calc(733 / 880 * 100%); } }

.page-label { width: 40px; white-space: nowrap; font-size: 1.125rem; }

.page-value { width: calc(261 / 325 * 100%); font-size: .8125rem; padding-top: 5px; }
@media (min-width: 48em) { .page-value { padding-top: 3px; font-size: .9375rem; width: calc(787 / 880 * 100%); } }
.page-value ul { padding-left: 1em; }
.page-value ul li { line-height: 2; }
.page-value a { color: var(--text-link); }
.page-value .badge-required { margin-top: 5px; font-weight: 700; }
.page-value .badge-required.--gray { background-color: #828282; margin-top: 24px; }

@media (min-width: 48em) { .display-pc { display: none; } }

/**** 採用情報 ****/
@media (min-width: 48em) { .recruit.container { gap: calc(53 / 1132 * 100%); } }
@media (min-width: 48em) { .recruit.container .single-sidebar { width: calc(150 / 1082 * 100%); } }
@media (min-width: 48em) { .recruit.container .recruit_card-text { text-align: center; } }

.recruit_frame { aspect-ratio: 840 / 470; }
.recruit_frame iframe { width: 100%; height: 100%; }

.faq_desc { border: 1px solid var(--light-bluegray); padding: 15px; margin-top: -1px; }
@media (min-width: 48em) { .faq_desc { padding: 18px; } }

.faq_label { font-weight: 500; font-size: 1rem; padding-left: 26px; position: relative; }
.faq_label::before { content: 'q'; position: absolute; top: 8%; left: 0; text-transform: uppercase; background-color: var(--text); color: white; border-radius: 50%; width: 21px; height: 21px; text-align: center; line-height: 18px; font-weight: 400; }
@media (min-width: 48em) { .faq_label { font-size: 1.125rem; font-weight: 700; padding-left: 39px; }
  .faq_label::before { top: 50%; transform: translateY(-50%); width: 29px; height: 29px; line-height: 24px; } }

.faq_value { margin-top: 5px; }
.faq_value a { color: var(--text-link); }

/**** 新卒採用 ****/
@media (min-width: 48em) { .newgrads.container { gap: calc(65 / 1132 * 100%); } }
@media (min-width: 48em) { .newgrads.container .single-sidebar { width: calc(134 / 1082 * 100%); } }

.recruit .page-desc.--border { flex-direction: column; }
@media (min-width: 48em) { .recruit .page-desc.--border { flex-direction: row; } }
.recruit .page-desc.--border .page-label { font-weight: 500; font-size: .9375rem; margin-bottom: 5px; }
.recruit .page-desc.--border .page-value { width: 100%; }
.recruit .page-desc.--border .page-value ul { padding-left: 2em; }
.recruit .page-desc.--border .page-value p { margin-top: 15px; }
.recruit .page-desc.--border .page-value .annotation { margin-top: 9px; font-size: .75rem; line-height: var(--lh-narrow); }

.recruit_box { display: flex; flex-direction: column; padding: 15px 20px; border: 1px solid var(--light-bluegray); box-shadow: 5px 4px 4px #F5F5F5; border-radius: 3px; }
.recruit_box:not(:first-of-type) { margin-top: 20px; }
@media (min-width: 48em) { .recruit_box { flex-direction: row; align-items: center; gap: 12px; padding: 30px; } }

.recruit_box-title { padding-bottom: 16px; border-bottom: 1px solid var(--light-bluegray); font-weight: 500; }
@media (min-width: 48em) { .recruit_box-title { padding-bottom: 0; border-bottom: none; width: 274px; text-align: center; } }

.recruit_box-text { margin-top: 10px; }
@media (min-width: 48em) { .recruit_box-text { width: calc(100% - 286px); margin-top: 0; } }

.feature_sub { margin-top: 35px; }
@media (min-width: 48em) { .feature_sub { margin-top: 55px; } }
.feature_sub h3 { margin-bottom: 35px; }
@media (min-width: 48em) { .feature_sub h3 { margin-bottom: 40px; } }
.feature_sub .recruit_cards .recruit_card:first-of-type { border-radius: 3px 0 0 0; }
.feature_sub .recruit_cards .recruit_card:nth-of-type(2) { border-radius: 0 3px 0 0; }
.feature_sub .recruit_cards .recruit_card:nth-of-type(3) { border-radius: 0 0 3px 0; }
.feature_sub .recruit_cards .recruit_card:nth-of-type(4) { border-radius: 0 0 0 3px; }

.recruit_list { padding: 0; list-style: none; }

.recruit_list-item { display: flex; flex-direction: column; gap: 22px; padding: 22px 15px 10px; border: 1px solid var(--light-bluegray); border-radius: 3px; }
.recruit_list-item:not(:last-of-type) { position: relative; }
.recruit_list-item:not(:last-of-type)::after { content: ""; position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-style: solid; border-width: 22px 56.5px 0 56.5px; border-color: var(--light-bluegray) transparent transparent transparent; }
.recruit_list-item:not(:first-of-type) { margin-top: 36px; }
@media (min-width: 48em) { .recruit_list-item { padding: 40px; flex-direction: row; align-items: center; gap: 16px; } }

.recruit_list-meta { display: flex; gap: 20px; align-items: center; }
@media (min-width: 48em) { .recruit_list-meta { width: 200px; } }

.recruit_list-num { font-size: 1.875rem; font-weight: 700; color: var(--blue); position: relative; }
.recruit_list-num::before { content: 'step'; position: absolute; top: -12px; left: 50%; transform: translateX(-50%); text-transform: uppercase; font-size: 14px; font-weight: 700; color: var(--gray); }

.recruit_list-title { font-weight: 500; }

@media (min-width: 48em) { .recruit_list-text { width: calc(100% - 216px); } }

/**** 共通パーツ ****/
.display-sp { display: none; }
@media (min-width: 48em) { .display-sp { display: block; } }

.recruit_cards { display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 48em) { .recruit_cards { flex-direction: row; flex-wrap: wrap; gap: 0; } }
.recruit_cards .recruit_card { display: flex; flex-direction: column; padding: 15px 20px; border: 1px solid var(--light-bluegray); box-shadow: 5px 4px 4px #F5F5F5; border-radius: 3px; }
.recruit_cards .recruit_card > p:not(:first-of-type) { margin-top: 15px; }
@media (min-width: 48em) { .recruit_cards .recruit_card { width: 50%; box-shadow: none; border-radius: 0; margin-bottom: -1px; margin-right: -1px; }
  .recruit_cards .recruit_card > p:not(:first-of-type) { margin-top: 20px; }
  .recruit_cards .recruit_card .btn { margin-top: 40px; } }
.recruit_cards .recruit_card-title { padding-bottom: 16px; font-weight: 500; padding-left: 27px; position: relative; }
.recruit_cards .recruit_card-title::before { content: ''; position: absolute; top: 35%; transform: translateY(-50%); left: 0; width: 18px; height: 5px; background-color: var(--blue); }
@media (min-width: 48em) { .recruit_cards .recruit_card-title::before { width: 28px; } }
@media (min-width: 48em) { .recruit_cards .recruit_card-title { padding-left: 44px; width: fit-content; margin: 0 auto; } }
.recruit_cards .recruit_card-text { border-top: 1px solid var(--light-bluegray); padding-top: 10px; }
@media (min-width: 48em) { .recruit_cards .recruit_card-text { padding-top: 18px; } }
.recruit_cards .recruit_card-text span.annotation { font-size: .75rem; line-height: var(--lh-narrow); }

.recruit-list_box { display: flex; flex-direction: column; gap: 20px; border: 1px solid var(--light-bluegray); padding: 20px 15px; box-shadow: 5px 4px 4px #F5F5F5; border-radius: 3px; }
.recruit-list_box:not(:first-of-type) { margin-top: 28px; }
@media (min-width: 48em) { .recruit-list_box:not(:first-of-type) { margin-top: 20px; } }
@media (min-width: 48em) { .recruit-list_box { flex-direction: row; justify-content: space-between; gap: 0; padding: 30px; } }

.recruit-list_title { text-align: center; }
.recruit-list_title h2 { font-size: 1.25rem; }
.recruit-list_title p { font-size: .75rem; color: var(--point); }
@media (min-width: 48em) { .recruit-list_title { text-align: left; }
  .recruit-list_title .btn { min-width: auto; padding: 0; text-align: left; margin-top: 30px; } }

.recruit-list_text h3 { margin-bottom: 15px; }
@media (min-width: 48em) { .recruit-list_text { width: calc(520 / 740 * 100%); } }

.page-header { position: relative; overflow: hidden; width: 100%; height: 161px; display: flex; flex-flow: column; justify-content: center; padding-inline: 25px; }
.page-header .deco1, .page-header .deco2, .page-header .deco3 { position: absolute; z-index: -1; }
.page-header .deco1 img, .page-header .deco2 img, .page-header .deco3 img { width: 100%; }
.page-header .deco1 { left: -100px; top: -30px; width: 349px; animation: lower_deco1sp 20s linear; animation-fill-mode: forwards; }
.page-header .deco2 { top: -152px; right: -120px; width: 311px; animation: lower_deco2sp 8s linear 2; }
.page-header .deco3 { top: 8px; right: -220px; width: 335px; animation: lower_deco3sp 9s linear 2; }

@keyframes lower_deco1sp { 0% { transform: translate(0, 0) rotate(0) scale(0.8); }
  10% { transform: translate(-50px, 0px) rotate(2deg) scale(0.9); }
  20% { transform: translate(-10px, -60px) rotate(15deg) scale(1); }
  30% { transform: translate(0, -90px) rotate(3deg); }
  50% { transform: translate(-60px, -20px) rotate(6deg); }
  60% { transform: translate(-40px, -50px) rotate(0deg); }
  80% { transform: translate(0, 0) rotate(-6deg); }
  100% { transform: translate(-86px, -56px) rotate(0); } }
@keyframes lower_deco1pc { 0% { transform: translate(20px, -20px) rotate(2deg) scale(0.8); }
  10% { transform: translate(-50px, 0px) rotate(2deg) scale(0.9); }
  20% { transform: translate(10px, -80px) rotate(15deg) scale(1); }
  30% { transform: translate(0, -200px) rotate(3deg); }
  50% { transform: translate(-20px, -160px) rotate(6deg); }
  60% { transform: translate(-40px, -30px) rotate(0deg); }
  80% { transform: translate(-20px, -140px) rotate(-6deg); }
  100% { transform: translate(-130px, -50px) rotate(0); } }
@keyframes lower_deco2sp { 0% { transform: translate(0, 0); }
  15% { transform: translate(40px, 30px) rotate(90deg); }
  45% { transform: translate(70px, -50px) scale(1.3); }
  60% { transform: translate(10px, -20px) scale(0.9) rotate(270deg); }
  85% { transform: translate(-30px, 30px) scale(1) rotate(0); } }
@keyframes lower_deco2pc { 0% { transform: translate(0, 0); }
  15% { transform: translate(-480px, 30px) rotate(-90deg); }
  45% { transform: translate(-40px, -150px) scale(1.3); }
  60% { transform: translate(-150px, -20px) scale(0.9) rotate(-270deg); }
  85% { transform: translate(-30px, 30px) scale(1) rotate(0); } }
@keyframes lower_deco3sp { 0% { transform: translate(0, 0); }
  20% { transform: translate(-50px, -30px) scale(1.1); }
  40% { transform: translate(-200px, -300px); }
  60% { transform: translate(-80px, -150px) scale(0.9); }
  85% { transform: translate(-30px, 30px) scale(1); } }
@keyframes lower_deco3pc { 0% { transform: translate(0, 0); }
  20% { transform: translate(-50px, -30px) scale(1.1); }
  40% { transform: translate(-120px, -300px); }
  60% { transform: translate(-60px, -150px) scale(0.9); }
  85% { transform: translate(10px, 30px) scale(1); } }
.page-title { font-size: 1.5rem; font-weight: 700; letter-spacing: .2em; }

.page-title-en { color: #a4a4a4; font-size: .9375rem; letter-spacing: .1em; }

.page-body { padding: 30px 0 100px; }

.badge-required { display: inline-block; padding: 0 1em; background-color: var(--attention); border-radius: 2px; color: var(--white); font-size: .625rem; line-height: 1.6; }

@media (min-width: 48em) { .page-header { height: 254px; text-align: center; }
  .page-header .deco1 { left: 0; top: -50px; width: 576px; animation: lower_deco1pc 20s linear; animation-fill-mode: forwards; }
  .page-header .deco2 { top: -200px; right: -50px; width: 497px; animation: deco2pc 8s linear 2; }
  .page-header .deco3 { top: 50px; width: 541px; animation: lower_deco3pc 9s linear 2; }
  .page-title { -webkit-margin-after: 17px; margin-block-end: 17px; font-size: 2.1875rem; font-weight: 500; }
  .page-title-en { font-weight: 700; }
  .page-body { padding: 50px 0 200px; } }
