@charset "UTF-8";
/* =========================
   Base / Reset / Variables
========================= */
/* init */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, 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, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main, summary, time, mark, audio, video, a, input, textarea {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  background: transparent;
  box-sizing: border-box;
}

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

ul li {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

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

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

img {
  border: 0;
}

address, caption, cite, code, dfn, em, th, var {
  font-style: normal;
  font-weight: normal;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
  text-box: trim-both cap alphabetic;
}

sup {
  vertical-align: text-top;
  font-size: 75%;
}

sub {
  vertical-align: text-bottom;
  font-size: 75%;
}

input, textarea, select {
  z-index: auto;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  vertical-align: middle;
}

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

time {
  display: inline;
}

[hidden] {
  display: none;
}

input::-ms-clear, input::-ms-reveal, input:focus::-ms-clear, input:focus::-ms-reveal {
  visibility: hidden;
  display: none;
}

button::-moz-focus-inner, input[type=reset]::-moz-focus-inner, input[type=button]::-moz-focus-inner, input[type=submit]::-moz-focus-inner, input[type=file] > input[type=button]::-moz-focus-inner {
  padding: 0;
  border: 0;
}

input {
  outline: none;
}

button,
input[type=submit],
input[type=button],
input[type=reset] {
  cursor: pointer;
}

small {
  font-size: 85%;
}

i, em {
  font-weight: normal;
  font-style: normal;
}

b {
  font-weight: 500;
}

html {
  scroll-behavior: smooth;
  font-size: 62.5%;
}

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

/* --- Breakpoints --- */
/* --- Colors --- */
/* base-width */
/* anchor */
a {
  color: #000000;
  text-decoration: none;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  a:hover {
    color: #999;
    text-decoration: none;
  }
}
a.inline {
  color: #0942ff;
  text-decoration: underline;
}
@media (hover: hover) {
  a.inline:hover {
    text-decoration: none;
  }
}

a i.icn {
  width: 1em;
  height: 1em;
  display: inline-block;
  margin-left: 0.25em;
}

/* --- Radius --- */
/* --- Font Base Settings --- */
body, input, button, select, textarea {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  line-height: 1;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.6rem;
  color: #000000;
  line-height: 1;
}

input, button, select, textarea {
  color: #000000;
}

/* --- img --- */
img {
  max-width: 100%;
  height: auto;
}

/* --- Force alignment --- */
.aCt {
  text-align: center;
}

.aLt {
  text-align: left;
}

.aRt {
  text-align: right;
}

/* --- Force display propaty --- */
@media (max-width: 768px) {
  .pc-only {
    display: none;
  }
  .spBr {
    display: inline;
  }
  .pcBr {
    display: none;
  }
}
@media (min-width: 769px) {
  .sp-only {
    display: none;
  }
  .spBr {
    display: none;
  }
}
html {
  scroll-padding-top: 150px;
}
@media (max-width: 768px) {
  html {
    scroll-padding-top: 60px;
  }
  html:has(.localNav) {
    scroll-padding-top: 80px;
  }
}

/* =========================
   Component
========================= */
/* 全体のコンテナ */
.pageWrapper {
  min-width: 0;
  margin: 0 auto;
  clear: both;
  line-height: 1.5;
  padding-top: 80px;
}
@media (max-width: 768px) {
  .pageWrapper {
    padding-top: 60px;
    overflow: hidden;
  }
}

body:has(.localNav) .pageWrapper {
  padding-top: 130px;
}
body:has(.localNav).is-scroll .pageWrapper {
  padding-top: 100px;
}
body:has(.localNav).is-scroll .localNav {
  top: 60px;
}
body:has(.localNav).is-scroll .localNav nav {
  height: 40px;
}
body:has(.localNav).is-scroll .localNav nav header {
  font-size: 1.6rem;
}
@media (max-width: 768px) {
  body:has(.localNav) .pageWrapper {
    padding-top: 100px;
  }
}

/* ===== ヘッダ（基礎） ===== */
.siteHeader {
  width: 100%;
  height: 80px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  background-color: #fff;
  border-bottom: 1px #dddddd solid;
  transition: all 0.3s ease;
}
.siteHeader header {
  padding: 20px;
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  transition: all 0.3s ease;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.siteHeader header .siteLogo {
  width: 260px;
  height: auto;
  transition: all 0.3s ease;
}
.siteHeader header .siteLogo img {
  display: block;
  width: 100%;
  height: auto;
  transition: all 0.3s ease;
}
.siteHeader header .toggleNav {
  display: none;
}
.siteHeader header .groupLink {
  width: 100px;
  transition: all 0.3s ease;
}
.siteHeader header .groupLink a {
  display: block;
  transition: all 0.3s ease;
}
.siteHeader header .groupLink a img {
  display: block;
  width: 100%;
  height: auto;
  transition: all 0.3s ease;
}
.siteHeader header nav.globalNav {
  padding: 0 0 0 20px;
  width: calc(100% - 360px);
  transition: all 0.3s ease;
}
.siteHeader header nav.globalNav ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.siteHeader header nav.globalNav ul li {
  font-weight: 700;
  font-size: 1.4rem;
  margin: 0 1.5em;
}
.siteHeader header nav.globalNav ul li a {
  display: block;
}
@media (max-width: 768px) {
  .siteHeader {
    height: 60px;
  }
  .siteHeader header {
    padding: 10px 10px 10px 20px;
    height: 100%;
  }
  .siteHeader header .siteLogo {
    width: 180px;
  }
  .siteHeader header .toggleNav {
    display: block;
    width: 40px;
    height: 40px;
    position: relative;
  }
  .siteHeader header .toggleNav::before {
    content: "";
    position: absolute;
    width: 24px;
    height: 2px;
    background-color: #000000;
    transition: all 0.3s ease;
    left: 8px;
    top: calc(50% - 1px);
  }
  .siteHeader header .toggleNav button {
    width: 100%;
    height: 100%;
    background: none;
    border: none;
    position: relative;
    cursor: pointer;
    padding: 0;
    margin: 0;
    display: block;
  }
  .siteHeader header .toggleNav button span {
    position: relative;
    width: 100%;
    height: 100%;
    display: block;
    text-indent: -9999px;
  }
  .siteHeader header .toggleNav button span::before, .siteHeader header .toggleNav button span::after {
    content: "";
    position: absolute;
    width: 24px;
    height: 2px;
    background-color: #000000;
    transition: all 0.3s ease;
    left: 8px;
    top: calc(50% - 1px);
  }
  .siteHeader header .toggleNav button span::before {
    top: calc(50% - 8px);
  }
  .siteHeader header .toggleNav button span::after {
    top: calc(50% + 6px);
  }
  .siteHeader header .toggleNav button.open {
    background-color: #fff;
  }
  .siteHeader header .toggleNav button.open span::before {
    transform: rotate(45deg) translate(5px, 5px);
  }
  .siteHeader header .toggleNav button.open span::after {
    transform: rotate(-45deg) translate(5px, -5px);
  }
  .siteHeader header .groupLink {
    display: none;
  }
  .siteHeader header nav.globalNav {
    padding: 0;
    width: 100%;
    position: absolute;
    left: 0;
    top: 60px;
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(10px);
    height: calc(100dvh - 60px);
    overflow-y: auto;
    overflow-x: hidden;
    display: none;
    z-index: 10;
  }
  .siteHeader header nav.globalNav ul {
    display: block;
    background: #333333;
    transition: all 0.5s ease 0.2s;
    position: absolute;
    top: 0;
    right: -100%;
    width: 80vw;
    height: auto;
  }
  .siteHeader header nav.globalNav ul li {
    margin: 0;
    border-bottom: 1px #dddddd solid;
  }
  .siteHeader header nav.globalNav ul li a {
    display: block;
    padding: 15px 20px;
    color: #fff;
    position: relative;
  }
  .siteHeader header nav.globalNav ul li a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(-45deg);
    width: 6px;
    height: 6px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
  }
  .siteHeader header nav.globalNav ul.open {
    right: 0;
  }
}

body.is-scroll .siteHeader {
  height: 60px;
}
body.is-scroll .siteHeader header {
  padding: 10px 20px;
}
body.is-scroll .siteHeader header .siteLogo {
  width: 200px;
}
body.is-scroll .siteHeader header nav.globalNav {
  padding: 0 0 0 30px;
  width: calc(100% - 270px);
}
body.is-scroll .siteHeader header .groupLink {
  width: 70px;
}

body.ctgCorp .siteHeader header nav.globalNav ul li a.corp,
body.ctgBusiness .siteHeader header nav.globalNav ul li a.business,
body.ctgSustainability .siteHeader header nav.globalNav ul li a.sustainability,
body.ctgRecruit .siteHeader header nav.globalNav ul li a.recruit,
body.ctgContact .siteHeader header nav.globalNav ul li a.contact {
  color: #aaaaaa;
}

/* ==== ローカルナビ ==== */
.localNav {
  border-bottom: 1px #dddddd solid;
  position: fixed;
  top: 80px;
  left: 0;
  width: 100%;
  background-color: #fff;
  z-index: 8;
  transition: all 0.3s ease;
}
.localNav nav {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 40px;
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  height: 50px;
  transition: all 0.3s ease;
}
.localNav nav header {
  font-size: 1.8rem;
  font-weight: bold;
}
.localNav nav ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
  margin-top: 3px;
}
.localNav nav ul li {
  font-size: 1.4rem;
  line-height: 1.4;
  font-weight: 700;
}
.localNav nav ul li.index {
  display: none;
}
.localNav nav ul li a {
  display: block;
  padding: 3px 2px 2px 2px;
  border-bottom: 1px transparent solid;
}
@media (max-width: 768px) {
  .localNav {
    top: 60px;
    height: auto;
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(10px);
    overflow-y: hidden;
    overflow-x: scroll;
    border-bottom: 0;
  }
  .localNav nav {
    display: block;
    height: auto;
    padding: 0;
    background: #dddddd;
  }
  .localNav nav header {
    border-bottom: 1px #fff solid;
    font-size: 1.4rem;
    height: 40px;
  }
  .localNav nav header a {
    padding: 0 20px;
    display: flex;
    align-items: center;
    position: relative;
    height: 100%;
  }
  .localNav nav header a::after {
    content: "";
    position: absolute;
    top: 45%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid #000000;
    border-bottom: 2px solid #000000;
    transition: all 0.3s ease;
  }
  .localNav nav header a.open::after {
    transform: translateY(-50%) rotate(-135deg);
    top: 55%;
  }
  .localNav nav ul {
    display: block;
    display: none;
  }
  .localNav nav ul li {
    border-bottom: 1px #fff solid;
  }
  .localNav nav ul li.index {
    display: block;
  }
  .localNav nav ul li a {
    padding: 10px 35px;
    display: block;
    position: relative;
    border: 0 none !important;
  }
  .localNav nav ul li a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 35px;
    transform: translateY(-50%) rotate(-45deg);
    width: 6px;
    height: 6px;
    border-right: 2px solid #000000;
    border-bottom: 2px solid #000000;
  }
  .localNav.open {
    height: calc(100dvh - 60px);
  }
}

body.ctgRecruit.fresh .localNav nav ul li a.fresh,
body.ctgRecruit.career .localNav nav ul li a.career,
body.ctgRecruit.works .localNav nav ul li a.works,
body.ctgRecruit.welfare .localNav nav ul li a.welfare,
body.ctgRecruit.interviews .localNav nav ul li a.interviews {
  border-bottom: 1px #fb0000 solid;
}

/* ==== ボトムナビ ==== */
.bottomNav {
  background: #dddddd;
  padding: 40px 0;
  margin-bottom: 80px;
}
.bottomNav nav {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
}
.bottomNav nav header {
  font-size: 2.4rem;
  text-align: center;
  margin-bottom: 20px;
}
.bottomNav nav ul.subNavigation {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .bottomNav {
    padding: 20px 0;
  }
  .bottomNav nav header {
    font-size: 2rem;
    margin-bottom: 10px;
  }
  .bottomNav nav ul.subNavigation li {
    border: 0;
    width: auto;
    padding: 0 1em;
    margin: 0.5em 0;
  }
  .bottomNav nav ul.subNavigation li a {
    padding: 0;
  }
}

/* ==== ページアンカー ==== */
ul.pageAnchor {
  border: 1px #dddddd solid;
  border-width: 1px 0;
  margin: 60px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  justify-content: center;
  align-items: center;
}
ul.pageAnchor li {
  padding: 0.5em 1em;
  margin: 0;
  position: relative;
  font-size: 1.6rem;
}
ul.pageAnchor li::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1px;
  height: 1em;
  background-color: #656766;
}
ul.pageAnchor li:last-child::after {
  display: none;
}
@media (hover: hover) {
  ul.pageAnchor li a:hover {
    text-decoration: underline;
  }
}
@media (max-width: 768px) {
  ul.pageAnchor {
    margin: 30px 0;
    padding: 0.5em 15px;
  }
  ul.pageAnchor li {
    padding: 0.5em 1em;
    font-size: 1.4rem;
  }
}

/* ===== フッタ ===== */
.siteFooter footer {
  border-top: 1px #dddddd solid;
}
.siteFooter footer ul.utils {
  padding: 15px 40px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.siteFooter footer ul.utils li {
  margin: 0 20px;
  font-size: 1.4rem;
}
.siteFooter footer ul.utils li a:hover {
  text-decoration: underline;
}
.siteFooter footer .siteMap {
  background-color: #333333;
  padding: 30px 0;
  color: #fff;
}
.siteFooter footer .siteMap .head {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  font-size: 1.6rem;
  margin-bottom: 20px;
}
.siteFooter footer .siteMap .head a {
  color: #fff;
  text-decoration: none;
}
.siteFooter footer .siteMap .head a:hover {
  text-decoration: underline;
}
.siteFooter footer .siteMap ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  margin: 0 auto;
}
.siteFooter footer .siteMap ul li {
  font-size: 1.4rem;
  margin: 0 6rem 20px 0;
  font-size: 1.4rem;
}
.siteFooter footer .siteMap ul li a {
  color: #fff;
  text-decoration: none;
}
.siteFooter footer .siteMap ul li a:hover {
  color: #fff;
  text-decoration: underline;
}
.siteFooter footer .bottom {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  padding: 20px 40px;
}
.siteFooter footer .bottom .copyright {
  font-size: 1.2rem;
  color: #000000;
  text-align: center;
}
.siteFooter footer .bottom .groupLink {
  display: none;
}
@media (max-width: 768px) {
  .siteFooter footer ul.utils {
    padding: 10px 5px;
    flex-wrap: wrap;
  }
  .siteFooter footer ul.utils li {
    margin: 5px 10px;
    font-size: 1.2rem;
  }
  .siteFooter footer .siteMap {
    display: none;
  }
  .siteFooter footer .bottom {
    padding: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px #dddddd solid;
  }
  .siteFooter footer .bottom .copyright {
    font-size: 1rem;
    text-align: left;
  }
  .siteFooter footer .bottom .groupLink {
    display: block;
    width: 70px;
  }
  .siteFooter footer .bottom .groupLink a {
    display: block;
  }
  .siteFooter footer .bottom .groupLink a img {
    display: block;
    width: 100%;
    height: auto;
  }
}

/* ===== Page top ===== */
.pageTop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  transition: all 0.3s ease;
  z-index: 10;
  cursor: pointer;
  display: none;
  background-color: #333333;
  border-radius: 50%;
}
.pageTop:hover {
  opacity: 0.6;
}
@media (max-width: 768px) {
  .pageTop {
    width: 40px;
    height: 40px;
    bottom: 15px;
    right: 15px;
  }
}

/* ===== Animated class ===== */
.js-inview {
  opacity: 0;
  transform: translateY(60px);
  transition: opacity 1s ease, transform 0.75s ease;
}
.js-inview.is-inview {
  opacity: 1;
  transform: translateY(0);
}

dl.newsList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  line-height: 1.5;
}
dl.newsList dt {
  width: 10em;
  padding: 1em 0;
  font-size: 1.6rem;
}
dl.newsList dd {
  width: calc(100% - 10em);
  padding: 1em 0;
  font-size: 1.6rem;
}
dl.newsList dd a {
  display: block;
  color: #0942ff;
  text-decoration: underline;
}
dl.newsList dd a:hover {
  border-color: #0942ff;
}
@media (max-width: 768px) {
  dl.newsList {
    display: block;
  }
  dl.newsList dt {
    width: auto;
    padding: 0.75em 0 0;
    border-top: 1px dotted #dddddd;
    font-size: 1.4rem;
  }
  dl.newsList dd {
    width: auto;
    padding: 0 0 0.75em 0;
    font-size: 1.4rem;
  }
}

a.btn,
button.btn {
  display: block;
  padding: 0.75em 1.5em;
  background-color: #fff;
  color: #000000;
  border-radius: 6px;
  border: 1px #656766 solid;
  transition: background-color 0.3s ease;
  text-align: center;
  transition: all 0.3s ease;
  max-width: 340px;
  margin: 0 auto;
  font-size: 1.6rem;
  font-weight: 700;
}
@media (hover: hover) {
  a.btn:hover,
  button.btn:hover {
    background-color: #656766;
    color: #fff;
  }
}
@media (max-width: 768px) {
  a.btn,
  button.btn {
    padding: 0.5em 1em;
    max-width: none;
    width: 100%;
  }
}

header.regular {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  padding-top: 60px;
  padding-bottom: 60px;
}
header.regular h1 {
  font-size: 3.6rem;
  line-height: 1.4;
}
@media (max-width: 768px) {
  header.regular {
    padding: 30px 15px;
  }
  header.regular h1 {
    font-size: 2.8rem;
  }
}

.mainVisual {
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
  margin-bottom: 60px;
}
.mainVisual img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  .mainVisual {
    aspect-ratio: 2/1;
    margin-bottom: 30px;
  }
  .mainVisual img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

article {
  padding-bottom: 80px;
}
article h2 {
  text-align: center;
  font-size: 2.4rem;
  line-height: 1.4;
  margin-bottom: 60px;
}
article h2.aLt {
  text-align: left;
}
article h2 + p {
  margin-top: -20px;
}
article h2 + p.catch {
  margin-top: -20px;
}
article h3 {
  font-size: 2.4rem;
  line-height: 1.4;
  margin: 80px 0 40px;
  font-weight: 700;
}
article h3:first-child {
  margin-top: 0;
}
article h3.tiny {
  font-size: 1.8rem;
  font-weight: normal;
  margin-bottom: 1.5em;
}
article h4 {
  font-weight: bold;
  font-size: 2rem;
  margin: 50px 0 20px;
}
article h4:first-child {
  margin-top: 0;
}
article p {
  font-size: 1.6rem;
  line-height: 1.75;
  margin-bottom: 1.5em;
}
article p:last-child {
  margin-bottom: 0;
}
article p.signature {
  text-align: right;
}
article p.signature b {
  font-size: 140%;
  font-weight: 700;
}
article p.catch {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  font-size: 2rem;
}
article p.lead {
  font-size: 2rem;
  font-weight: 700;
}
article section {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  padding-top: 60px;
  padding-bottom: 60px;
}
article section p.catch {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
article section:last-child {
  padding-bottom: 0;
}
article p.catch + section {
  margin-top: 60px;
}
article .imgContainer img {
  display: block;
  width: 100%;
  height: auto;
}
article .imgContainer .caption {
  font-size: 1.4rem;
  margin: 0.5em 0 0 0;
}
article .mc {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 40px;
}
article .mc.rev {
  flex-direction: row-reverse;
}
article .mc.duo .col {
  width: calc(50% - 20px);
}
article .mc.trio .col {
  width: calc((100% - 80px) / 3);
}
article .mc.trio .col.double {
  width: calc((100% - 80px) / 3 * 2 + 20px);
}
@media (max-width: 768px) {
  article .mc.duo, article .mc.trio {
    display: block;
  }
  article .mc.duo .col,
  article .mc.duo .col.double, article .mc.trio .col,
  article .mc.trio .col.double {
    width: auto;
    margin-bottom: 30px;
  }
}
article .narrow {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
article table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 60px;
  border-top: 1px #dddddd solid;
}
article table th, article table td {
  border-bottom: 1px #dddddd solid;
  padding: 20px;
  text-align: left;
  font-size: 1.6rem;
  line-height: 1.5;
}
article table th {
  background-color: #f2f2f2;
  font-weight: 700;
}
article ul, article ol {
  margin: 0 0 40px 0;
}
article ul li, article ol li {
  font-size: 1.6rem;
  line-height: 1.5;
  margin-bottom: 0.75em;
}
article ul li:last-child, article ol li:last-child {
  margin-bottom: 0;
}
article ul li ul, article ul li ol, article ol li ul, article ol li ol {
  margin: 1em 0;
}
@media (max-width: 768px) {
  article ul, article ol {
    margin: 0 0 30px 0;
  }
  article ul li, article ol li {
    font-size: 1.6rem;
  }
}
article ul.regular {
  margin-left: 1.5em;
}
article ul.regular li {
  list-style: disc;
}
article ol.parenthesis {
  list-style: none;
  counter-reset: parenthesis;
}
article ol.parenthesis li {
  position: relative;
  padding-left: 30px;
  text-indent: -2em;
  padding-left: 2em;
}
article ol.parenthesis li::before {
  content: "(" counter(parenthesis) ")";
  counter-increment: parenthesis;
  display: inline-block;
  width: 2em;
  text-indent: 0;
}
@media (max-width: 768px) {
  article h2 {
    font-size: 2.2rem;
    margin-bottom: 30px;
  }
  article h3 {
    font-size: 1.8rem;
    margin: 40px 0 20px;
  }
  article h3.tiny {
    font-size: 1.86rem;
  }
  article h4 {
    margin-bottom: 15px;
    font-size: 1.6rem;
  }
  article p {
    font-size: 1.6rem;
  }
  article p.catch {
    font-size: 1.8rem;
  }
  article p.lead {
    font-size: 1.8rem;
  }
  article section {
    padding: 40px 15px;
  }
  article .mc {
    gap: 30px;
  }
  article .mc.duo {
    display: block;
  }
  article .mc.duo .col {
    width: auto;
    margin-bottom: 30px;
  }
  article table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 60px;
    border-top: 1px #dddddd solid;
  }
  article table:last-child {
    margin-bottom: 0;
  }
  article table th, article table td {
    border-bottom: 1px #dddddd solid;
    padding: 20px;
    text-align: left;
    font-size: 1.8rem;
    line-height: 1.5;
  }
  article table th {
    background-color: #f2f2f2;
    font-weight: 700;
  }
}
@media (max-width: 768px) and (max-width: 768px) {
  article table th, article table td {
    font-size: 1.5rem;
    padding: 10px;
  }
  article table.stack {
    display: block;
  }
  article table.stack tr, article table.stack th, article table.stack td, article table.stack tbody, article table.stack thead, article table.stack tfoot {
    display: block;
  }
  article table.stack th {
    border-bottom: 0;
  }
  article table.stack td {
    padding: 10px 0 25px 0;
  }
}
article .btnSpace {
  margin: 60px 0;
  text-align: center;
}

ul.subNavigation {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  justify-content: center;
  align-items: center;
  margin-bottom: 60px;
}
ul.subNavigation li {
  padding: 0.5em 1em;
  margin: 0;
  position: relative;
}
ul.subNavigation li::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1px;
  height: 1em;
  background-color: #000000;
}
ul.subNavigation li:last-child::after {
  display: none;
}
@media (hover: hover) {
  ul.subNavigation li a:hover {
    text-decoration: underline;
  }
}
@media (max-width: 768px) {
  ul.subNavigation {
    padding: 0;
    margin-bottom: 40px;
    flex-wrap: wrap;
    border-top: 1px #dddddd solid;
  }
  ul.subNavigation li {
    padding: 0;
    width: 50%;
    border-bottom: 1px #dddddd solid;
    font-size: 1.4rem;
  }
  ul.subNavigation li::after {
    display: none;
  }
  ul.subNavigation li:nth-child(odd) {
    border-right: 1px #dddddd solid;
  }
  ul.subNavigation li a {
    display: block;
    padding: 0.75em 0;
    text-align: center;
  }
}

main.isTop {
  overflow: hidden;
}
main.isTop h1 {
  font-size: 3.6rem;
  text-align: center;
  padding: 40px;
  line-height: 1.4;
}
@media (max-width: 768px) {
  main.isTop h1 {
    font-size: 2.2rem;
    padding: 24px;
  }
}
main.isTop .mainVisual {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  margin-bottom: 0;
}
main.isTop .mainVisual video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 768px) {
  main.isTop .mainVisual {
    aspect-ratio: 1/1;
  }
}
main.isTop .catch {
  font-size: 2rem;
  text-align: center;
  padding: 40px 20px;
}
@media (max-width: 768px) {
  main.isTop .catch {
    font-size: 1.6rem;
    padding: 24px 15px;
    text-align: left;
  }
}
main.isTop section {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  padding-top: 80px;
  padding-bottom: 80px;
  position: relative;
}
main.isTop section h2 {
  font-size: 3rem;
  margin-bottom: 40px;
  text-align: center;
  line-height: 1.4;
}
main.isTop section p {
  font-size: 1.8rem;
  line-height: 1.5;
}
main.isTop section::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 1px;
  background-color: #dddddd;
}
main.isTop section .menuImg {
  margin-bottom: 60px;
}
main.isTop section .menuImg img {
  width: 100%;
  height: auto;
}
main.isTop section:last-of-type::after {
  display: none;
}
@media (max-width: 768px) {
  main.isTop section {
    padding: 40px 0;
  }
  main.isTop section h2 {
    font-size: 2rem;
    margin-bottom: 24px;
    padding: 0 15px;
  }
  main.isTop section p {
    padding: 0 15px;
    font-size: 1.6rem;
  }
  main.isTop section dl.newsList {
    padding: 0 15px;
  }
}
main.isTop section .menuImg {
  margin-bottom: 40px;
}
main.isTop section .menuImg img {
  width: 100%;
  height: auto;
}
@media (max-width: 768px) {
  main.isTop section .menuImg {
    margin-bottom: 24px;
  }
}

/* =========================
   Miscellaneous
========================= */
article figure.mission {
  width: 500px;
  margin: 40px auto 0;
}
@media (max-width: 768px) {
  article figure.mission {
    width: 100%;
    max-width: 380px;
  }
}
article figure.dicastImage {
  max-width: 740px;
  margin: 0 auto 60px;
}
article ul.imgArray {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 20px;
  margin: 20px auto;
}
article ul.imgArray li {
  width: calc((100% - 60px) / 4);
}
article ul.imgArray li img {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 10px;
  border: 1px #fb0000 solid;
}
article ul.imgArray li p {
  font-size: 1.6rem;
  line-height: 1.4;
  margin: 0;
  line-height: 1.4;
}
@media (max-width: 768px) {
  article ul.imgArray {
    -moz-column-gap: 10px;
         column-gap: 10px;
    row-gap: 20px;
  }
  article ul.imgArray li {
    width: calc(50% - 5px);
  }
  article ul.imgArray li p {
    font-size: 1.4rem;
  }
}
article .mc.aluminumFeatures {
  align-items: stretch;
  margin: 60px auto 0;
}
article .mc.aluminumFeatures .col {
  border: 1px #656766 solid;
  padding: 40px 30px;
}
article .mc.aluminumFeatures .col h3 {
  margin-bottom: 20px;
}
article .mc.aluminumFeatures .col span {
  display: block;
  width: 200px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  article .mc.aluminumFeatures {
    margin: 30px auto 0;
  }
  article .mc.aluminumFeatures .col {
    margin-bottom: 30px;
    padding: 30px 20px;
  }
  article .mc.aluminumFeatures .col h3 {
    font-size: 1.8rem;
  }
  article .mc.aluminumFeatures .col span {
    width: 124px;
  }
}
article dl.dicastProcess dt {
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.4;
}
article dl.dicastProcess dd {
  font-size: 1.8rem;
  line-height: 1.75;
  margin-bottom: 40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 40px;
}
article dl.dicastProcess dd img {
  width: 360px;
}
article dl.dicastProcess dd p {
  width: calc(100% - 400px);
}
article dl.dicastProcess dd:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  article dl.dicastProcess dt {
    font-size: 1.8rem;
    margin-bottom: 10px;
  }
  article dl.dicastProcess dd {
    display: block;
  }
  article dl.dicastProcess dd img {
    width: auto;
  }
  article dl.dicastProcess dd p {
    width: auto;
  }
}
article ol.environmentPolicies {
  max-width: 900px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  article ol.environmentPolicies {
    padding: 0 15px;
    margin: 0 0 30px 15px;
  }
}
article .mc.qualityInspections {
  margin-top: 60px;
}
article .mc.qualityInspections h3 {
  margin-bottom: 20px;
}
article .mc.qualityInspections .col span:has(img) {
  display: block;
  margin-bottom: 15px;
}

article .recruitContents {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  padding-top: 60px;
  padding-bottom: 60px;
}
article .recruitContents ul {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: flex-start;
  align-items: flex-start;
  margin: 0;
}
article .recruitContents ul li {
  width: calc((100% - 60px) / 4);
  text-align: center;
}
article .recruitContents ul li a {
  display: block;
  color: #0942ff;
  text-decoration: underline;
  font-size: 1.6rem;
}
article .recruitContents ul li a .img {
  overflow: hidden;
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px #dddddd solid;
}
article .recruitContents ul li a .img img {
  display: block;
  transition: all 0.3s ease;
}
@media (hover: hover) {
  article .recruitContents ul li a:hover {
    text-decoration: none;
  }
  article .recruitContents ul li a:hover .img img {
    transform: scale(1.05);
  }
}
@media (max-width: 768px) {
  article .recruitContents {
    padding: 30px 15px;
  }
  article .recruitContents ul {
    gap: 10px;
  }
  article .recruitContents ul li {
    width: calc(50% - 5px);
  }
  article .recruitContents ul li a {
    font-size: 1.4rem;
  }
  article .recruitContents ul li a .img {
    margin-bottom: 8px;
  }
}
article .recruitContact {
  max-width: 800px;
  margin: 0 auto;
  border: 1px #656766 solid;
  padding: 30px 40px;
}
article .recruitContact dl {
  line-height: 1.5;
  margin-bottom: 20px;
}
article .recruitContact dl dt {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 10px;
}
article .recruitContact dl dd {
  font-size: 1.6rem;
}
@media (max-width: 768px) {
  article .recruitContact {
    padding: 20px;
    margin: 0 15px;
  }
  article .recruitContact dl dt {
    font-size: 1.8rem;
    margin-bottom: 5px;
  }
  article .recruitContact dl dd {
    font-size: 1.4rem;
  }
}
article p.banner {
  margin-top: 60px;
}
article .worksTitleGroup h2 {
  margin-bottom: 40px;
}
article .worksTitleGroup h3 {
  margin-top: 40px;
  margin-bottom: 30px;
}
@media (max-width: 768px) {
  article .worksTitleGroup h3 {
    margin-top: 20px;
    margin-bottom: 20px;
  }
}
article .workDetails h4 {
  margin-bottom: 10px;
  margin-top: 25px;
}
article .workDetails p {
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  article .workDetails h4 {
    margin-bottom: 8px;
  }
  article .workDetails p {
    margin-bottom: 15px;
    font-size: 1.4rem;
  }
}
article .voices {
  -moz-columns: 2;
       columns: 2;
  gap: 20px;
}
article .voices .voice {
  border: 4px #dddddd solid;
  padding: 30px 30px 30px 180px;
  border-radius: 20px;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  margin-bottom: 20px;
  position: relative;
  min-height: 200px;
}
article .voices .voice img {
  position: absolute;
  left: 30px;
  top: 40px;
  width: 130px;
  height: auto;
  display: block;
}
article .voices .voice p {
  font-size: 1.6rem;
  line-height: 1.75;
  margin-bottom: 1em;
}
article .voices .voice p:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  article .voices {
    -moz-columns: 1;
         columns: 1;
  }
  article .voices .voice {
    padding: 20px;
    margin: 0 0 20px;
    min-height: 0;
    border-width: 3px;
  }
  article .voices .voice img {
    position: relative;
    width: 24vw;
    left: auto;
    top: auto;
    height: auto;
    margin: 0 10px 5px 0;
    float: left;
  }
  article .voices .voice p {
    font-size: 1.4rem;
  }
}
article ul.interviewAnchor {
  max-width: 1200px;
  padding: 0 20px;
  margin: 0 auto;
  padding-top: 60px;
  padding-bottom: 60px;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: flex-start;
  align-items: flex-start;
}
article ul.interviewAnchor li {
  width: calc((100% - 80px) / 5);
}
article ul.interviewAnchor li a {
  display: block;
}
article ul.interviewAnchor li a p {
  font-size: 1.6rem;
  margin: 0;
  line-height: 1.4;
}
article ul.interviewAnchor li a span {
  display: block;
  font-size: 1.4rem;
  margin-top: 0.5em;
}
article ul.interviewAnchor li a .img {
  overflow: hidden;
  margin-bottom: 10px;
  overflow: hidden;
  border: 1px #dddddd solid;
}
article ul.interviewAnchor li a .img img {
  display: block;
  transition: all 0.3s ease;
}
@media (hover: hover) {
  article ul.interviewAnchor li a:hover {
    text-decoration: none;
  }
  article ul.interviewAnchor li a:hover .img img {
    transform: scale(1.05);
  }
}
@media (max-width: 768px) {
  article ul.interviewAnchor {
    padding: 30px 15px;
    display: block;
  }
  article ul.interviewAnchor li {
    width: auto;
    margin-bottom: 0;
  }
  article ul.interviewAnchor li a {
    padding: 10px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  article ul.interviewAnchor li a p {
    width: calc(100% - 90px);
    font-size: 1.4rem;
  }
  article ul.interviewAnchor li a span {
    font-size: 1.2rem;
  }
  article ul.interviewAnchor li a .img {
    margin-bottom: 0;
    width: 80px;
  }
}
article .interviewItem h2 {
  margin-bottom: 30px;
}
article .interviewItem h3 {
  margin-top: 20px;
}
article .interviewItem .imgContainer img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 20px 0;
}
article .interviewItem dl {
  margin-bottom: 40px;
}
article .interviewItem dl dt {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 10px;
}
article .interviewItem dl dd {
  font-size: 1.6rem;
  line-height: 1.75;
  margin-bottom: 30px;
  text-indent: -1.5em;
  padding-left: 1.5em;
}
article .interviewItem dl dd b {
  text-indent: 0;
  width: 1.5em;
  display: inline-block;
}
article .interviewItem dl dd:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  article .interviewItem h2 {
    margin-bottom: 20px;
  }
  article .interviewItem h3 {
    margin-top: 15px;
  }
  article .interviewItem .imgContainer {
    display: flex;
    justify-content: space-between;
    margin: 0 -15px 20px -15px;
  }
  article .interviewItem .imgContainer img {
    width: calc(50% - 1px);
    height: auto;
    margin: 0;
    display: block;
  }
  article .interviewItem dl dt {
    font-size: 1.6rem;
    margin-bottom: 8px;
  }
  article .interviewItem dl dd {
    font-size: 1.4rem;
    margin-bottom: 20px;
  }
}

.contactBlock {
  max-width: 800px;
  margin: 0 auto 80px;
  border: 1px #656766 solid;
  padding: 30px 40px;
}
.contactBlock dl {
  line-height: 1.5;
}
.contactBlock dl dt {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 20px;
}
.contactBlock dl dd {
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .contactBlock {
    padding: 20px;
    margin: 0 0 40px;
  }
  .contactBlock dl dt {
    font-size: 2rem;
    margin-bottom: 10px;
  }
  .contactBlock dl dd {
    font-size: 1.4rem;
  }
}/*# sourceMappingURL=styles.css.map */