@charset "UTF-8";@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");

*,
*::before,
*::after {
  box-sizing: border-box;
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}
input,
button,
textarea,
select {
  font: inherit;
}
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}
#root,
#__next {
  isolation: isolate;
}
:root {
  --color_white: #ffffff;
  --color_black: #000000;
  --color_base: #f4efef;
  --color_red: #ef7443;
  --color_red_dark: #f33e5d;
  --color_red_light: #fa6773;
  --color_blue: #6ea6ff;
  --color_blue_dark: #5077ff;
  --color_blue_light: #7386fe;
  --color_green: #55d3a9;
  --color_green_dark: #2cc552;
  --color_green_light: #a1d936;
  --color_green_lightest: #d2f1c9;
  --color_green_lightest_light: #f4fff0;
  --color_violet: #ae0082;
  --color_violet_dark: #860064;
  --color_gray: #d4d3d4;
  --color_gray_dark: #484848;
  --color_gray_light: #a69ba2;
  --color_realoom: #b699f4;
  --font_noto_sans_jp: Noto Sans JP, sans-serif;
}
@view-transition {
  navigation: auto;
}
html {
  box-sizing: border-box;
  font-size: 62.5%;
}
html.works-detail-open {
  height: 100%;
  overflow: hidden;
}
html.realoom-modal-open {
  height: 100%;
  overflow: hidden;
}
*,
*::before,
*::after {
  box-sizing: inherit;
}
body {
  background-color: var(--color_white);
  color: var(--color_black);
  font-weight: 400;
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.8;
  font-family: var(--font_noto_sans_jp);
  font-optical-sizing: auto;
  -webkit-text-size-adjust: 100%;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.header-nav-open {
  overflow: hidden;
}
.works-detail-open body {
  position: fixed;
  top: var(--lock-top, 0px);
  right: 0;
  left: 0;
  width: 100%;
  height: calc(100% - var(--lock-top, 0px));
  overflow: hidden;
}
.realoom-modal-open body {
  position: fixed;
  top: var(--lock-realoom-top, 0px);
  right: 0;
  left: 0;
  width: 100%;
  height: calc(100% - var(--lock-realoom-top, 0px));
  overflow: hidden;
}
.pc-br {
  display: block;
}
.sp-br {
  display: none;
}
.tb-br {
  display: none;
}
/* HEADER */
header {
  z-index: 200;
  position: relative;
  height: 90px;
  background-color: var(--color_violet);
  color: var(--color_white);
}
.header-inner {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: space-between;
}
.header-logo {
  width: 283px;
  margin-left: 20px;
  padding-top: 10px;
  line-height: 1;
}
.header-logo img {
  display: block;
}
.header-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 90px;
  gap: 40px;
}
.header-nav-list ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 40px;
  list-style: none;
}
.header-nav-list ul li.sp-menu {
  display: none;
}
.header-nav-list ul li a,
.header-nav-list ul li label {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 90px;
  padding-right: 23px;
  color: var(--color_white, #fff);
  font-weight: 700;
  font-size: 1.6rem;
  text-decoration: none;
  cursor: pointer;
}
.header-nav-list ul li a {
  background-image: url("../images/ico-aw-km-cw.svg");
  background-position: right 2px center;
  background-size: 13px auto;
  background-repeat: no-repeat;
  transition: background-position 0.3s linear;
}
.header-nav-list ul li a:hover {
  background-position: right 0px center;
}
.header-nav-list ul li label {
  position: relative;
  background-image: url("../images/ico-aw-km-db-cw.svg");
  background-position: 100% center;
  background-size: 13px auto;
  background-repeat: no-repeat;
}
.header-nav-list ul li label span {
  display: none;
  position: absolute;
  top: 50%;
  right: 10px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
}
.header-nav-list ul li label span::before {
  position: absolute;
  top: 50%;
  right: 0px;
  width: 14px;
  height: 2px;
  transform: translateY(-50%);
  border-radius: 1px;
  background-color: var(--color_white);
  content: "";
}
.header-nav-list ul li label span::after {
  position: absolute;
  top: 0;
  right: calc(50% - 1px);
  width: 2px;
  height: 14px;
  border-radius: 1px;
  background-color: var(--color_white);
  content: "";
  opacity: 1;
  transition: opacity 0.3s linear, transform 0.3s linear;
}
.header-sub-menu {
  display: flex;
  visibility: hidden;
  position: absolute;
  top: 90px;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 0;
  overflow: hidden;
  background-color: var(--color_violet_dark);
  pointer-events: none;
  transition: height 0.3s ease-in-out;
}
.header-sub-menu ul {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  gap: 40px;
}
.header-sub-menu ul li {
  height: 64px;
}
.header-sub-menu ul a {
  height: 64px !important;
}
#toggle-mn1:checked ~ .header-sub-menu {
  visibility: visible !important;
  height: 64px;
  pointer-events: auto;
}
#toggle-mn1:checked ~ label span::after {
  transform: rotate(90deg);
  opacity: 0;
}
#toggle-mn2:checked ~ .header-sub-menu {
  visibility: visible !important;
  height: 64px;
  pointer-events: auto;
}
#toggle-mn2:checked ~ label span::after {
  transform: rotate(90deg);
  opacity: 0;
}
.header-nav-contact {
  width: 139px;
  height: 90px;
  background-color: var(--color_white);
}
.header-nav-contact a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--color_violet);
  font-weight: 700;
  font-size: 1.4rem;
  text-decoration: none;
  transition: all 0.3s linear;
}
.header-nav-contact a span {
  display: block;
  padding-top: 27px;
  background-image: url("../images/ico-contact.svg");
  background-position: center 0;
  background-size: 32px auto;
  background-repeat: no-repeat;
  line-height: 1.7;
}
.header-nav-contact a:hover {
  background-color: var(--color_violet_dark);
  color: var(--color_white);
}
.header-nav-contact a:hover span {
  background-image: url("../images/ico-contact-cw.svg");
}
.sp-nav-toggle {
  display: none;
}
.sp-nav-toggle .burger {
  position: relative;
  width: 100%;
  height: 2px;
  border-radius: 1px;
  background-color: var(--color_white);
}
.sp-nav-toggle .burger:before, .sp-nav-toggle .burger:after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 1px;
  background: var(--color_white);
  content: "";
  transition: top 300ms 350ms ease, transform 300ms 50ms ease;
}
.sp-nav-toggle .burger:before {
  top: -9px;
}
.sp-nav-toggle .burger:after {
  top: 9px;
}
.sp-menu-active .sp-nav-toggle .burger {
  background: transparent;
}
.sp-menu-active .sp-nav-toggle .burger:after, .sp-menu-active .sp-nav-toggle .burger:before {
  top: 0;
  transition: top 300ms 50ms ease, transform 300ms 350ms ease;
}
.sp-menu-active .sp-nav-toggle .burger:before {
  transform: rotate(45deg);
}
.sp-menu-active .sp-nav-toggle .burger:after {
  transform: rotate(-45deg);
}
#toggle-spmenu:checked ~ .header-inner .burger {
  background: transparent;
}
#toggle-spmenu:checked ~ .header-inner .burger:after, #toggle-spmenu:checked ~ .header-inner .burger:before {
  top: 0;
  transition: top 300ms 50ms ease, transform 300ms 350ms ease;
}
#toggle-spmenu:checked ~ .header-inner .burger:before {
  transform: rotate(45deg);
}
#toggle-spmenu:checked ~ .header-inner .burger:after {
  transform: rotate(-45deg);
}
#toggle-spmenu:checked ~ .header-inner .header-nav-list {
  grid-template-rows: 1fr;
}
/* FOOTER */
footer {
  background-color: var(--color_violet);
  color: var(--color_white);
}
.footer-inner {
  display: grid;
  grid-template-columns: 28.9% 7.3% 63.8%;
  max-width: 1140px;
  margin: 0 auto;
  padding: 40px 20px 15px 20px;
}
.footer-company-info {
  padding: 0 0 25px 0;
}
.footer-company-info-ttl {
  padding-right: 5.9%;
}
.footer-company-info-ttl a {
  display: block;
  transition: opacity 0.3s linear;
}
.footer-company-info-ttl a img {
  width: 100%;
  height: auto;
}
.footer-company-info-ttl a:hover {
  opacity: 0.8;
}
.footer-company-info-data {
  position: relative;
  margin-top: 30px;
}
.footer-company-info-data-ttl {
  font-weight: 700;
  font-size: 1.6rem;
}
.footer-company-info-data-desc {
  margin: 10px 0;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.4;
}
.footer-company-info-data-desc.tel a {
  color: var(--color_white);
  text-decoration: none;
  pointer-events: none;
}
.footer-company-info-data-link a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  max-width: 160px;
  height: 35px;
  padding-left: 12.5%;
  border: 1px solid var(--color_white);
  border-radius: 9999px;
  background-image: url("../images/ico-aw-cw.svg");
  background-position: right 20px center;
  background-size: 8px auto;
  background-repeat: no-repeat;
  color: var(--color_white);
  text-decoration: none;
  transition: 0.3s linear;
}
.footer-company-info-data-link a span {
  color: var(--color_white);
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1;
}
.footer-company-info-data-link a:hover {
  background-image: url("../images/ico-aw-cv.svg");
  background-color: var(--color_white);
}
.footer-company-info-data-link a:hover span {
  color: var(--color_violet);
}
.footer-line {
  position: relative;
}
.footer-line::after {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 100%;
  transform: translateX(-50%);
  background-color: var(--color_white);
  content: "";
}
.footer-links-inner {
  display: flex;
  flex-wrap: nowrap;
  gap: 40px;
}
.footer-links-inner a {
  color: var(--color_white);
  text-decoration: none;
  transition: opacity 0.3s linear;
}
.footer-links-inner a:hover {
  opacity: 0.8;
}
.footer-links-cat-top {
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1;
}
.footer-links-list {
  display: flex;
  flex-direction: column;
  width: 180px;
  margin-top: 15px;
  gap: 15px;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1;
  list-style: none;
}
.footer-links-list li a {
  display: inline-block;
  position: relative;
  transition: 0.3s linear;
}
.footer-links-list li a::after {
  position: absolute;
  top: 50%;
  right: -16px;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  background-image: url("../images/ico-aw-cw.svg");
  background-position: right 0 center;
  background-size: 6px auto;
  background-repeat: no-repeat;
  content: "";
  transition: right 0.3s linear;
}
.footer-links-list li a:hover::after {
  right: -18px;
}
.footer-links-list li a.realoom {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.footer-links-list li a.realoom img {
  width: 120px;
  border-radius: 5px;
}
.footer-links-util {
  margin-top: 30px;
  line-height: 1;
}
.footer-links-util a {
  display: inline-block;
  position: relative;
  font-weight: 700;
  font-size: 1.8rem;
}
.footer-links-util a::after {
  position: absolute;
  top: 50%;
  right: -18px;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
  background-image: url("../images/ico-aw-cw.svg");
  background-position: right 0 center;
  background-size: 8px auto;
  background-repeat: no-repeat;
  content: "";
  transition: right 0.3s linear;
}
.footer-links-util a:hover::after {
  right: -20px;
}
.footer-links-other {
  margin-top: 30px;
}
.footer-links-links:first-child .footer-links-list {
  width: 150px;
  margin-top: 20px;
  gap: 20px;
}
.footer-links-links:last-child .footer-links-list {
  width: auto;
}
.footer-copyright {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  height: 74px;
  border-top: solid 1px var(--color_white);
}
.footer-copyright p {
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1;
  text-align: center;
}
.footer-copyright .but-go-top {
  position: absolute;
  right: 20px;
  bottom: 33px;
}
.footer-copyright .but-go-top a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.8);
  transition: background-color 0.3s linear;
}
.footer-copyright .but-go-top a svg {
  width: 26px;
  height: auto;
}
.footer-copyright .but-go-top a:hover {
  background-color: rgb(255, 255, 255);
}
.breadcrumb {
  display: flex;
  align-items: center;
  width: 100%;
  height: 40px;
  padding: 0 20px;
  overflow: auto;
  border-top: solid 1px var(--color_violet);
  background-color: var(--color_base);
  scrollbar-width: none;
}
.breadcrumb::-webkit-scrollbar {
  display: none;
}
.breadcrumb-list {
  display: flex;
  flex-wrap: nowrap;
  font-weight: 400;
  font-size: 1.2rem;
  line-height: 1;
  list-style: none;
}
.breadcrumb-list a {
  color: var(--color_violet);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.breadcrumb-list a:hover {
  text-decoration: none;
}
.breadcrumb-item {
  padding-left: 24px;
  background-image: url("../images/ico-breadcrumb-aw.svg");
  background-position: left 10px center;
  background-size: 4px auto;
  background-repeat: no-repeat;
  white-space: nowrap;
}
.breadcrumb-item:first-child {
  padding-left: 16px;
  background-image: url("../images/ico-home.svg");
  background-position: left center;
  background-size: 11px auto;
  background-repeat: no-repeat;
}
.document-header {
  padding-top: 70px;
  text-align: center;
}
.document-header-ttl h1 {
  display: inline-block;
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 20px;
  font-weight: 700;
  font-size: 4.8rem;
  line-height: 1;
  letter-spacing: 0.1em;
}
.document-header-ttl h1::after {
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  transform: translateX(-50%);
  background-color: var(--color_violet);
  content: "";
  animation: document-ttl 0.6s ease-in-out forwards 0.4s;
}
.document-header-ttl p {
  font-weight: 400;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: 0.04em;
}
@keyframes document-ttl {
  0% {
    width: 0%;
  }
  70% {
    width: 56%;
  }
  100% {
    width: 43.4%;
  }
}
/* 職種紹介リスト */
.works-desc-list {
  padding: 70px 0;
  background-color: var(--color_base);
}
.works-desc-list h2 {
  display: none;
}
.works-desc-list ul {
  height: auto;
  margin: 0 auto;
  list-style: none;
}
.works-desc-list ul.col2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 46vw;
  max-width: 645px;
  gap: clamp(10px, 1.78vw, 25px);
}
.works-desc-list ul.col3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  width: 70vw;
  max-width: 980px;
  gap: clamp(10px, 1.78vw, 25px);
}
.works-desc-item {
  display: block;
  position: relative;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 15px 0;
  text-decoration: none;
}
.works-desc-item .works-desc-item-cover {
  display: flex;
  z-index: 1;
  position: absolute;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  width: 100%;
  background-color: var(--color_white);
}
.works-desc-item .works-desc-item-cover .works-desc-item-ico {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  aspect-ratio: 198/174;
  width: 63.3%;
}
.works-desc-item .works-desc-item-cover .works-desc-item-ico img {
  width: 100%;
  height: auto;
}
.works-desc-item .works-desc-item-cover .works-desc-item-ttl {
  font-weight: 700;
  font-size: 2.4rem;
  font-size: clamp(1.6rem, 1.7vw, 2.4rem);
  line-height: 1.2;
  text-align: center;
}
.works-desc-item .works-desc-item-over {
  display: flex;
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  width: 100%;
  opacity: 0;
  transition: opacity 0.3s linear;
}
.works-desc-item .works-desc-item-over p {
  color: var(--color_white);
  font-weight: 900;
  font-size: 4.4rem;
  font-size: clamp(2.4rem, 3.1vw, 4.4rem);
  line-height: 1.2;
  letter-spacing: 0.09em;
  text-align: center;
}
.works-desc-item:hover .works-desc-item-over {
  opacity: 1;
}
.works-desc-item.c1 .works-desc-item-ttl {
  color: var(--color_red);
}
.works-desc-item.c1 .works-desc-item-over {
  background-color: var(--color_red);
}
.works-desc-item.c2 .works-desc-item-ttl {
  color: var(--color_blue);
}
.works-desc-item.c2 .works-desc-item-over {
  background-color: var(--color_blue);
}
.works-desc-item.c3 .works-desc-item-ttl {
  color: var(--color_green);
}
.works-desc-item.c3 .works-desc-item-over {
  background-color: var(--color_green);
}
.works-desc-item.sc1 .works-desc-item-ttl {
  color: var(--color_red_light);
}
.works-desc-item.sc1 .works-desc-item-over {
  background-color: var(--color_red_light);
}
.works-desc-item.sc2 .works-desc-item-ttl {
  color: var(--color_blue_light);
}
.works-desc-item.sc2 .works-desc-item-over {
  background-color: var(--color_blue_light);
}
.works-desc-item.sc3 .works-desc-item-ttl {
  color: var(--color_green_light);
}
.works-desc-item.sc3 .works-desc-item-over {
  background-color: var(--color_green_light);
}
.works-desc-category {
  display: block;
  position: relative;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 15px 0;
  text-decoration: none;
}
.works-desc-category .works-desc-category-cover {
  display: flex;
  z-index: 1;
  position: absolute;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  width: 100%;
  background-color: var(--color_white);
  transition: background-color 0.3s linear;
}
.works-desc-category .works-desc-category-cover .works-desc-category-ico {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  aspect-ratio: 198/174;
  width: 63.3%;
}
.works-desc-category .works-desc-category-cover .works-desc-category-ico img {
  width: 100%;
  height: auto;
}
.works-desc-category .works-desc-category-cover .works-desc-category-ttl {
  color: var(--color_white);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: clamp(1.6rem, 1.7vw, 2.4rem);
  line-height: 1.2;
  text-align: center;
}
.works-desc-category.c1 .works-desc-category-cover {
  background-color: var(--color_red_dark);
}
.works-desc-category.c2 .works-desc-category-cover {
  background-color: var(--color_blue_dark);
}
.works-desc-category.c3 .works-desc-category-cover {
  background-color: var(--color_green_dark);
}
/* 事業内容 回遊リンク */
.works-related-links {
  padding: 70px 0;
}
.works-related-links-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.works-related-links-item {
  aspect-ratio: 480/407;
  width: 34.2vw;
  max-width: 480px;
}
.works-related-links-item a {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  padding: 20px clamp(15px, 2.1vw, 30px);
  overflow: hidden;
  border-radius: 15px 0;
  color: var(--color_white);
  text-decoration: none;
}
.works-related-links-item a .works-related-links-item-ttl {
  width: 100%;
  color: var(--color_white);
  font-weight: 700;
  font-size: 3.6rem;
  font-size: clamp(2.2rem, 2.5vw, 3.6rem);
  line-height: 1.6;
  text-align: left;
}
.works-related-links-item a .works-related-links-item-ttl span {
  display: block;
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
}
.works-related-links-item a .works-related-links-item-pic {
  position: relative;
  aspect-ratio: 420/260;
  width: 100%;
  height: 100%;
  margin-top: 20px;
  overflow: hidden;
}
.works-related-links-item a .works-related-links-item-pic img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  position: absolute;
     object-fit: cover;
  transition: all 0.3s;
}
.works-related-links-item a .view-more {
  display: flex;
  position: absolute;
  bottom: 17px;
  left: 50%;
  align-items: center;
  justify-content: center;
  aspect-ratio: 320/83;
  width: 76.1%;
  gap: 8px;
  transform: translateX(-50%);
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-viewmore-aw.svg");
  background-position: right clamp(10px, 2.1vw, 30px) center;
  background-size: clamp(5px, 0.7vw, 10px) auto;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  color: var(--color_violet);
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1;
  letter-spacing: 0.04em;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.works-related-links-item a .view-more span {
  display: block;
  padding-right: 20px;
}
.works-related-links-item a:hover .works-related-links-item-pic img {
  transform: scale(1.03);
}
.works-related-links-item a:hover .view-more {
  background-image: url("../images/ico-viewmore-aw-cw.svg");
  background-color: var(--color_violet);
  color: var(--color_white);
}
.works-related-links-item.c1 a {
  background-color: var(--color_red);
}
.works-related-links-item.c2 a {
  background-color: var(--color_blue);
}
.works-related-links-item.c3 a {
  background-color: var(--color_green);
}
.view-more-button a {
  display: inline-flex;
  z-index: 3;
  align-items: center;
  justify-content: center;
  aspect-ratio: 320/83;
  width: 320px;
  gap: 8px;
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-viewmore-aw.svg");
  background-position: right clamp(20px, 2.1vw, 30px) center;
  background-size: clamp(7px, 0.7vw, 10px) auto;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  color: var(--color_violet);
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.view-more-button a span {
  display: block;
  padding-right: 20px;
}
.view-more-button a:hover {
  background-image: url("../images/ico-viewmore-aw-cw.svg");
  background-position: right clamp(20px, 2.1vw, 30px) center;
  background-size: clamp(7px, 0.7vw, 10px) auto;
  background-color: var(--color_violet);
  color: var(--color_white);
}
/* リアルーム モーダル */
.realoom-detail {
  display: none;
  z-index: 1000;
  position: fixed;
  top: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 20px 0 50px 0;
  overflow-y: auto;
  background-color: rgba(0, 0, 0, 0.5);
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.realoom-detail.lowheight {
  align-items: flex-start;
}
.realoom-modal-open .realoom-detail {
  display: flex;
}
.realoom-detail-main {
  position: relative;
  max-width: 800px;
  height: auto;
}
.realoom-detail-close {
  position: relative;
  width: 100%;
  height: 70px;
}
.realoom-detail-close-btn {
  z-index: 10;
  position: absolute;
  top: 0;
  right: 0;
  width: 70px;
  height: 70px;
  border: none;
  background-image: url("../images/ico-modal-close.svg");
  background-position: center center;
  background-size: 29px auto;
  background-repeat: no-repeat;
  background-color: transparent;
  cursor: pointer;
}
.realoom-detail-ttl-wrap {
  border-radius: 15px 15px 0 0;
  background-color: var(--color_violet);
}
.realoom-detail-ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 0 20px 0;
  color: var(--color_white);
  font-weight: 700;
  font-size: 6.8rem;
  line-height: 1;
}
.realoom-detail-ttl-desc {
  color: var(--color_white);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
  text-align: center;
}
.realoom-detail-btmr {
  position: relative;
  bottom: -1px;
}
.realoom-detail-btmr img {
  display: block;
  width: 100%;
  height: auto;
}
.realoom-detail-desc {
  padding: 40px 0 70px 0;
  border-radius: 0 0 15px 15px;
  background-color: var(--color_white);
}
.realoom-detail-desc-ttl {
  margin-bottom: 30px;
  text-align: center;
}
.realoom-detail-desc-ttl img {
  display: inline-block;
  width: 420px;
  height: auto;
}
.realoom-detail-desc-desc {
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
  text-align: center;
}
.realoom-detail-link {
  margin-top: 30px;
  text-align: center;
}
.realoom-detail-link a {
  display: inline-block;
  width: 280px;
  padding: 20px 45px 20px 20px;
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-aw-cv.svg");
  background-position: right 20px center;
  background-size: 8px auto;
  background-repeat: no-repeat;
  background-color: var(--color_white);
  color: var(--color_violet);
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
  text-align: center;
  text-decoration: none;
  transition: all 0.3s linear;
}
.realoom-detail-link a img {
  display: inline-block;
  width: 22px;
  height: auto;
  margin-right: 3px;
  vertical-align: text-bottom;
}
.realoom-detail-link a:hover {
  background-image: url("../images/ico-aw-cw.svg");
  background-color: var(--color_violet);
  color: var(--color_white);
}
.realoom-detail-article {
  display: none;
}
/* 回遊リンク */
.related-links {
  padding: 70px 0;
}
.related-links-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
}
.related-links-item {
  aspect-ratio: 538/342;
  width: 38.4vw;
  max-width: 538px;
}
.related-links-item a {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 15px 0;
  color: var(--color_white);
  text-decoration: none;
}
.related-links-item a .related-links-item-ttl {
  z-index: 2;
  position: absolute;
  top: clamp(20px, 1.7vw, 25px);
  left: clamp(24px, 2.8vw, 40px);
  width: 100%;
  color: var(--color_white);
  font-weight: 500;
  font-size: 7rem;
  font-size: clamp(4.4rem, 5vw, 7rem);
  line-height: 1;
  text-align: left;
}
.related-links-item a .related-links-item-ttl span {
  display: block;
  margin-top: 5px;
  font-weight: 400;
  font-size: 1.8rem;
  font-size: clamp(1rem, 1.2vw, 1.8rem);
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.related-links-item a .related-links-item-pic {
  z-index: 1;
  position: relative;
  aspect-ratio: 420/260;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.related-links-item a .related-links-item-pic img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  z-index: 1;
  position: absolute;
     object-fit: cover;
  transition: all 0.3s;
}
.related-links-item a .view-more {
  display: flex;
  z-index: 3;
  position: absolute;
  bottom: clamp(20px, 2.1vw, 30px);
  left: 50%;
  align-items: center;
  justify-content: center;
  aspect-ratio: 320/83;
  width: 59.4%;
  gap: 8px;
  transform: translateX(-50%);
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-viewmore-aw.svg");
  background-position: right clamp(10px, 2.1vw, 30px) center;
  background-size: clamp(5px, 0.7vw, 10px) auto;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  color: var(--color_violet);
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1;
  letter-spacing: 0.04em;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.related-links-item a .view-more span {
  display: block;
  padding-right: 20px;
}
.related-links-item a:hover .related-links-item-pic img {
  transform: scale(1.03);
}
.related-links-item a:hover .view-more {
  background-image: url("../images/ico-viewmore-aw-cw.svg");
  background-color: var(--color_violet);
  color: var(--color_white);
}
/* 事業内容 回遊リンク */
.works-related-links {
  padding: 70px 0;
}
.works-related-links-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.works-related-links-item {
  aspect-ratio: 480/407;
  width: 34.2vw;
  max-width: 480px;
}
.works-related-links-item a {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  padding: 20px clamp(15px, 2.1vw, 30px);
  overflow: hidden;
  border-radius: 15px 0;
  color: var(--color_white);
  text-decoration: none;
}
.works-related-links-item a .works-related-links-item-ttl {
  width: 100%;
  color: var(--color_white);
  font-weight: 700;
  font-size: 3.6rem;
  font-size: clamp(2.2rem, 2.5vw, 3.6rem);
  line-height: 1.6;
  text-align: left;
}
.works-related-links-item a .works-related-links-item-ttl span {
  display: block;
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
}
.works-related-links-item a .works-related-links-item-pic {
  position: relative;
  aspect-ratio: 420/260;
  width: 100%;
  height: 100%;
  margin-top: 20px;
  overflow: hidden;
}
.works-related-links-item a .works-related-links-item-pic img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  position: absolute;
     object-fit: cover;
  transition: all 0.3s;
}
.works-related-links-item a .view-more {
  display: flex;
  position: absolute;
  bottom: 17px;
  left: 50%;
  align-items: center;
  justify-content: center;
  aspect-ratio: 320/83;
  width: 76.1%;
  gap: 8px;
  transform: translateX(-50%);
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-viewmore-aw.svg");
  background-position: right clamp(10px, 2.1vw, 30px) center;
  background-size: clamp(5px, 0.7vw, 10px) auto;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  color: var(--color_violet);
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1;
  letter-spacing: 0.04em;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.works-related-links-item a .view-more span {
  display: block;
  padding-right: 20px;
}
.works-related-links-item a:hover .works-related-links-item-pic img {
  transform: scale(1.03);
}
.works-related-links-item a:hover .view-more {
  background-image: url("../images/ico-viewmore-aw-cw.svg");
  background-color: var(--color_violet);
  color: var(--color_white);
}
.works-related-links-item.c1 a {
  background-color: var(--color_red);
}
.works-related-links-item.c2 a {
  background-color: var(--color_blue);
}
.works-related-links-item.c3 a {
  background-color: var(--color_green);
}
@keyframes sv-mask-size {
  0% {
    -webkit-mask-size: 0% 100%;
            mask-size: 0% 100%;
    opacity: 0;
  }
  30% {
    opacity: 0.1;
  }
  45% {
    opacity: 1;
  }
  100% {
    -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
    opacity: 1;
  }
}
/* 事業内容 KV */
.works-kv {
  position: relative;
  aspect-ratio: 1400/560;
  overflow: hidden;
}
.works-kv .kv-bg {
  z-index: 1;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.works-kv .kv-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  position: absolute;
     object-fit: cover;
}
.works-kv .works-kv-inner {
  display: grid;
  z-index: 2;
  position: absolute;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  height: 100%;
}
.works-kv .works-kv-inner .works-kv-image {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  height: 100%;
}
.works-kv .works-kv-inner .works-kv-image .works-kv-image-inner {
  position: relative;
  aspect-ratio: 750/470;
  overflow: hidden;
  border-radius: 15px 0 0 15px;
  -webkit-mask-image: linear-gradient(#fff, #fff);
          mask-image: linear-gradient(#fff, #fff);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: 0 0;
          mask-position: 0 0;
  -webkit-mask-size: 0% 100%;
  animation: sv-mask-size 1.2s cubic-bezier(0.83, 0, 0.17, 1) forwards 0.2s;
          mask-size: 0% 100%;
  opacity: 0;
}
.works-kv .works-kv-inner .works-kv-image .works-kv-image-inner img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.works-kv .works-kv-inner .works-kv-ttl {
  padding-top: 4.2vw;
  padding-right: 2.1vw;
  padding-left: 10.7vw;
  color: var(--color_white);
}
.works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-ttl .main {
  display: block;
  font-weight: 700;
  font-size: 4.8rem;
  font-size: clamp(2.4rem, 3.1vw, 4.8rem);
  line-height: 1.1;
}
.works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-ttl .sub {
  display: block;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1.8;
}
.works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-desc {
  margin-top: 30px;
  color: rgba(255, 255, 255, 0.3);
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1.8;
}
.works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-desc span {
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.2s ease;
}
.works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-desc.is-active span {
  color: #ffffff;
}
.works-kv.c1 {
  background-color: var(--color_red);
}
.works-kv.c2 {
  background-color: var(--color_blue);
}
.works-kv.c3 {
  background-color: var(--color_green);
}
.works-kv .fade-text {
  background-image: linear-gradient(#fff, #fff);
  background-size: 0% 100%;
  background-repeat: no-repeat;
  color: rgba(255, 255, 255, 0.3);
  -webkit-background-clip: text;
  background-clip: text;
  transition: background-size 1s cubic-bezier(0.83, 0, 0.17, 1);
}
.works-kv .fade-text.is-active {
  background-size: 100% 100%;
}
.works-kv .fade-text2 {
  background-image: linear-gradient(#fff, #fff);
  background-size: 0% 100%;
  background-repeat: no-repeat;
  color: rgba(255, 255, 255, 0.3);
  -webkit-background-clip: text;
  background-clip: text;
  transition: background-size 0.8s ease-in-out;
}
.works-kv .fade-text2.is-active {
  background-size: 100% 100%;
}
.works-kv .kv-ticker {
  --h: clamp(60px, 8vw, 140px);
}
.works-kv .kv-ticker {
  /* JSがここに “1タイルの幅(px)” を入れる */
  --tile-w: 2117px;
}
.works-kv .kv-ticker.t1 {
  --tile-w: 1871px;
}
.works-kv .kv-ticker.t2 {
  --tile-w: 2117px;
}
.works-kv .kv-ticker.t3 {
  --tile-w: 1381px;
}
.works-kv .kv-ticker {
  z-index: 10;
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  height: var(--h);
  overflow: hidden;
}
.works-kv .kv-ticker .kv-ticker-track {
  display: flex;
  position: absolute;
  width: calc(var(--tile-w) * 2);
  height: 100%;
  inset: 0 auto 0 0;
  transform: translate3d(0, 0, 0);
  animation: tickerMove 20s linear infinite;
  will-change: transform;
}
.works-kv .kv-ticker .kv-ticker-tile {
  flex: 0 0 var(--tile-w);
  width: var(--tile-w);
  height: 100%;
  background-image: url("/assets/images/works/building-management/kv-ticker-text.svg");
  background-position: 0 50%;
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.works-kv .kv-ticker.t1 .kv-ticker-track {
  animation: tickerMove 25s linear infinite;
}
.works-kv .kv-ticker.t1 .kv-ticker-tile {
  background-image: url("/assets/images/works/asset-management/kv-ticker-text.svg");
}
.works-kv .kv-ticker.t2 .kv-ticker-track {
  animation: tickerMove 20s linear infinite;
}
.works-kv .kv-ticker.t2 .kv-ticker-tile {
  background-image: url("/assets/images/works/building-management/kv-ticker-text.svg");
}
.works-kv .kv-ticker.t3 .kv-ticker-track {
  animation: tickerMove 13s linear infinite;
}
.works-kv .kv-ticker.t3 .kv-ticker-tile {
  background-image: url("/assets/images/works/other-service/kv-ticker-text.svg");
}
@keyframes tickerMove {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
/* 業務内容モーダル */
.works-detail {
  display: none;
  z-index: 1000;
  position: fixed;
  top: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 20px 0 50px 0;
  overflow-y: auto;
  background-color: rgba(0, 0, 0, 0.5);
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.works-detail.lowheight {
  align-items: flex-start;
}
.works-detail-open .works-detail {
  display: flex;
}
.works-detail-main {
  position: relative;
  max-width: 800px;
  height: auto;
}
.works-detail-ttl-img {
  border-radius: 15px 15px 0 0;
  background-color: var(--color_base);
}
.c1 .works-detail-ttl-img {
  background-color: var(--color_red);
}
.c2 .works-detail-ttl-img {
  background-color: var(--color_blue);
}
.c3 .works-detail-ttl-img {
  background-color: var(--color_green);
}
.works-detail-close {
  position: relative;
  width: 100%;
  height: 70px;
}
.works-detail-close-btn {
  z-index: 10;
  position: absolute;
  top: 0;
  right: 0;
  width: 70px;
  height: 70px;
  background-image: url("../images/ico-modal-close.svg");
  background-position: center center;
  background-size: 29px auto;
  background-repeat: no-repeat;
  cursor: pointer;
}
.works-detail-ttl {
  display: flex;
  align-items: center;
  padding: 20px 50px;
  gap: 20px;
  color: var(--color_white);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 1.2;
}
.works-detail-ttl img {
  display: inline-block;
  width: auto;
  height: 60px;
}
.works-detail-img {
  position: relative;
  text-align: center;
}
.works-detail-img img {
  display: inline-block;
  width: auto;
  height: 360px;
}
.works-detail-swiper {
  width: 100%;
}
.works-detail-btmr {
  position: relative;
  bottom: -1px;
}
.works-detail-btmr svg {
  display: block;
  width: 100%;
  height: auto;
}
.c1 .works-detail-svg {
  fill: var(--color_red);
}
.c2 .works-detail-svg {
  fill: var(--color_blue);
}
.c3 .works-detail-svg {
  fill: var(--color_green);
}
.works-detail-desc {
  padding: 15px 60px 40px 60px;
  border-radius: 0 0 15px 15px;
  background-color: var(--color_base);
}
.works-detail-desc-ttl {
  margin-bottom: 20px;
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.4;
}
.works-detail-desc-desc {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.works-detail-link {
  margin-top: 20px;
  text-align: center;
}
.works-detail-link a {
  display: inline-block;
  padding: 20px 45px 20px 20px;
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-aw-cv.svg");
  background-position: right 20px center;
  background-size: 8px auto;
  background-repeat: no-repeat;
  background-color: var(--color_white);
  color: var(--color_violet);
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
  text-align: center;
  text-decoration: none;
  transition: all 0.3s linear;
}
.works-detail-link a img {
  display: inline-block;
  width: 22px;
  height: auto;
  margin-right: 3px;
  vertical-align: text-bottom;
}
.works-detail-link a:hover {
  background-image: url("../images/ico-aw-cw.svg");
  background-color: var(--color_violet);
  color: var(--color_white);
}
.works-detail-article {
  display: none;
}
.works-detail-swiper .swiper-button-next::after {
  content: "";
}
.works-detail-swiper .swiper-button-prev::after {
  content: "";
}
.works-detail-swiper .swiper-button-next,
.works-detail-swiper .swiper-button-prev {
  width: 50px;
  height: 50px;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}
/* 次へ */
.works-detail-swiper .swiper-button-next {
  right: 64px;
  background-image: url("../images/ico-works-slide-aw-next.svg");
}
/* 前へ */
.works-detail-swiper .swiper-button-prev {
  left: 64px;
  background-image: url("../images/ico-works-slide-aw-prev.svg");
}
.works-detail-swiper .swiper-navigation-icon {
  display: none;
}
/* TOP */
.top-kv {
  position: relative;
  aspect-ratio: 1400/836;
  overflow: hidden;
  background-color: var(--color_base);
}
.top-kv::after {
  z-index: 50;
  position: absolute;
  bottom: -1px;
  left: 0;
  aspect-ratio: 1400/78;
  width: 100%;
  height: auto;
  background-image: url("../images/top/kv-bottom.svg");
  background-position: bottom center;
  background-size: 102% auto;
  background-repeat: no-repeat;
  content: "";
}
.top-kv .top-kv-mask {
  display: flex;
  z-index: 20;
  position: absolute;
  top: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.top-kv .top-kv-mask-inner {
  position: absolute;
  aspect-ratio: 1/1;
  width: 300vw;
  height: auto;
  background-color: var(--color_violet);
  -webkit-mask-image: linear-gradient(#000, #000), url("../images/top/kv-mask.svg");
          mask-image: linear-gradient(#000, #000), url("../images/top/kv-mask.svg");
  -webkit-mask-repeat: no-repeat, no-repeat;
          mask-repeat: no-repeat, no-repeat;
  -webkit-mask-position: 0 0, center center;
          mask-position: 0 0, center center;
  -webkit-mask-size: 100% 100%, 100% auto;
          mask-size: 100% 100%, 100% auto;
  -webkit-mask-composite: xor;
  transform-origin: center center;
          mask-composite: exclude;
}
.top-kv.mask-on .top-kv-mask-inner {
  animation: kv-mask-move 1.5s ease-in-out forwards;
}
.top-kv.mask-off .top-kv-mask-inner {
  animation: kv-mask-move-off 1.5s ease-in-out forwards;
}
@keyframes kv-mask-move {
  0% {
    transform: rotate(60deg);
    opacity: 1;
    -webkit-mask-size: 100% 100%, 100% auto;
            mask-size: 100% 100%, 100% auto;
  }
  100% {
    transform: rotate(0deg);
    -webkit-mask-size: 100% 100%, 18% auto;
            mask-size: 100% 100%, 18% auto;
    opacity: 0.75;
  }
}
@keyframes kv-mask-move-sp {
  0% {
    transform: rotate(45deg);
    -webkit-mask-size: 100% 100%, 120% auto;
            mask-size: 100% 100%, 120% auto;
    opacity: 1;
  }
  100% {
    transform: rotate(0deg);
    -webkit-mask-size: 100% 100%, 36% auto;
            mask-size: 100% 100%, 36% auto;
    opacity: 0.75;
  }
}
@keyframes kv-mask-move-off {
  0% {
    transform: rotate(0deg);
    opacity: 0.75;
    -webkit-mask-size: 100% 100%, 18% auto;
            mask-size: 100% 100%, 18% auto;
  }
  100% {
    transform: rotate(60deg);
    opacity: 1;
    -webkit-mask-size: 100% 100%, 100% auto;
            mask-size: 100% 100%, 100% auto;
  }
}
@keyframes kv-mask-move-sp-off {
  0% {
    transform: rotate(0deg);
    -webkit-mask-size: 100% 100%, 36% auto;
            mask-size: 100% 100%, 36% auto;
    opacity: 0.75;
  }
  100% {
    transform: rotate(45deg);
    -webkit-mask-size: 100% 100%, 120% auto;
            mask-size: 100% 100%, 120% auto;
    opacity: 1;
  }
}
.top-kv-text {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.top-kv-text p {
  color: var(--color_white);
  font-weight: 700;
  font-size: 10rem;
  font-size: clamp(5rem, 7.1vw, 10rem);
  line-height: 1;
  letter-spacing: 0.1em;
}
.top-kv-text .ruby {
  margin-left: 1.6em;
  margin-left: 3.6vw;
  font-size: 3.6rem;
  font-size: clamp(1.8rem, 3vw, 3.6rem);
}
.top-kv-text .top-kv-text-inner {
  margin-top: -3.6rem;
  margin-top: clamp(-1.8rem, -3.2vw, -3.4rem);
  margin-top: -2.8vw;
}
.top-kv-text.t1 {
  z-index: 20;
  opacity: 0;
}
.top-kv-text.t2 {
  z-index: 19;
  opacity: 0;
}
.top-kv-text.t3 {
  z-index: 18;
  opacity: 0;
}
.as-1 .top-kv-text.t1 {
  opacity: 1;
}
.as-1 .top-kv-text.t2 {
  opacity: 0;
}
.as-1 .top-kv-text.t3 {
  opacity: 0;
}
.as-2 .top-kv-text.t1 {
  opacity: 1;
}
.as-2 .top-kv-text.t2 {
  opacity: 0;
}
.as-2 .top-kv-text.t3 {
  opacity: 0;
}
.as-3 .top-kv-text.t1 {
  opacity: 0;
}
.as-3 .top-kv-text.t2 {
  opacity: 1;
}
.as-3 .top-kv-text.t3 {
  opacity: 0;
}
.as-4 .top-kv-text.t1 {
  opacity: 0;
}
.as-4 .top-kv-text.t2 {
  opacity: 1;
}
.as-4 .top-kv-text.t3 {
  opacity: 0;
}
.as-5 .top-kv-text.t1 {
  opacity: 0;
}
.as-5 .top-kv-text.t2 {
  opacity: 0;
}
.as-5 .top-kv-text.t3 {
  opacity: 1;
}
.as-6 .top-kv-text.t1 {
  opacity: 0;
}
.as-6 .top-kv-text.t2 {
  opacity: 0;
}
.as-6 .top-kv-text.t3 {
  opacity: 1;
}
.as-7 .top-kv-text.t1 {
  opacity: 0;
}
.as-7 .top-kv-text.t2 {
  opacity: 0;
}
.as-7 .top-kv-text.t3 {
  opacity: 0;
}
.top-kv-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center;
  background-size: cover;
  transition: opacity 0.5s ease;
}
.top-kv-img.s1-1 {
  z-index: 10;
  background-image: url("../images/top/pc_mv_1_1.jpg");
  opacity: 1;
}
.top-kv-img.s1-2 {
  z-index: 9;
  background-image: url("../images/top/pc_mv_1_2.jpg");
  opacity: 1;
}
.top-kv-img.s2-1 {
  z-index: 8;
  background-image: url("../images/top/pc_mv_2_1.jpg");
  opacity: 1;
}
.top-kv-img.s2-2 {
  z-index: 7;
  background-image: url("../images/top/pc_mv_2_2.jpg");
  opacity: 1;
}
.top-kv-img.s3-1 {
  z-index: 6;
  background-image: url("../images/top/pc_mv_3_1.jpg");
  opacity: 1;
}
.top-kv-img.s3-2 {
  z-index: 5;
  background-image: url("../images/top/pc_mv_3_2.jpg");
  opacity: 1;
}
.top-kv-img.s4 {
  z-index: 4;
  background-image: url("../images/top/pc_mv_4.jpg");
  opacity: 1;
}
.as-2 .top-kv-img.s1-1 {
  opacity: 0;
}
.as-3 .top-kv-img.s1-1 {
  opacity: 0;
}
.as-3 .top-kv-img.s1-2 {
  opacity: 0;
}
.as-4 .top-kv-img.s1-1 {
  opacity: 0;
}
.as-4 .top-kv-img.s1-2 {
  opacity: 0;
}
.as-4 .top-kv-img.s2-1 {
  opacity: 0;
}
.as-5 .top-kv-img.s1-1 {
  opacity: 0;
}
.as-5 .top-kv-img.s1-2 {
  opacity: 0;
}
.as-5 .top-kv-img.s2-1 {
  opacity: 0;
}
.as-5 .top-kv-img.s2-2 {
  opacity: 0;
}
.as-6 .top-kv-img.s1-1 {
  opacity: 0;
}
.as-6 .top-kv-img.s1-2 {
  opacity: 0;
}
.as-6 .top-kv-img.s2-1 {
  opacity: 0;
}
.as-6 .top-kv-img.s2-2 {
  opacity: 0;
}
.as-6 .top-kv-img.s3-1 {
  opacity: 0;
}
.as-7 .top-kv-img {
  transition: opacity 2s ease;
}
.as-7 .top-kv-img.s1-1 {
  opacity: 0;
}
.as-7 .top-kv-img.s1-2 {
  opacity: 0;
}
.as-7 .top-kv-img.s2-1 {
  opacity: 0;
}
.as-7 .top-kv-img.s2-2 {
  opacity: 0;
}
.as-7 .top-kv-img.s3-1 {
  opacity: 0;
}
.as-7 .top-kv-img.s3-2 {
  opacity: 0;
}
.top-about {
  position: relative;
  padding: 70px 0 100px 0;
  background-color: var(--color_base);
  text-align: center;
}
.top-about::after {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  aspect-ratio: 1400/68;
  width: 100%;
  background-image: url("../images/top/about-bottom.svg");
  background-position: bottom center;
  background-size: 102% auto;
  background-repeat: no-repeat;
  content: "";
}
.top-about-inner {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  gap: 25px;
}
.top-about-ttl {
  width: 9rem;
}
.top-about-ttl-ttl {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0;
  padding-top: 1rem;
  gap: 20px;
}
.top-about-ttl-ttl > h2 {
  margin: 0;
  font-weight: 500;
  font-size: 9rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-orientation: mixed;
  writing-mode: vertical-rl;
}
.top-about-ttl-ttl > p {
  margin: 0;
  margin-left: 25%;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1;
  text-orientation: upright; /* 文字を正立（日本語はこれが安定） */
  writing-mode: vertical-rl;
}
.top-about-desc {
  display: none;
}
.top-about-works > .works-desc-list {
  padding: 0;
}
.top-about-links {
  margin-top: 40px;
}
.top-about-links ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  list-style: none;
}
.top-about-links ul li a {
  display: block;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 320/87;
  width: 100%;
  padding: 0 clamp(10px, 1.4vw, 20px);
  border: solid 1px var(--color_red);
  border-radius: 9999px;
  background-color: var(--color_white);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  text-decoration: none;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.top-about-links ul li a span {
  display: block;
  width: 100%;
  padding-right: clamp(10px, 1.4vw, 20px);
  background-image: url("../images/ico-aw-crr.svg");
  background-position: right center;
  background-size: 15px auto;
  background-repeat: no-repeat;
  color: var(--color_red);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1.4;
  text-align: center;
}
.top-about-links ul li a span i {
  display: block;
  font-weight: 400;
  font-size: 1.4rem;
  font-size: clamp(1rem, 1.2vw, 1.4rem);
}
.top-about-links ul li a:hover {
  border-color: var(--color_red);
  background-color: var(--color_red);
}
.top-about-links ul li a:hover span {
  background-image: url("../images/ico-aw-crw.svg");
  color: var(--color_white);
}
.top-about-links ul li a.c1 {
  border-color: var(--color_red);
}
.top-about-links ul li a.c1 span {
  background-image: url("../images/ico-aw-crr.svg");
  color: var(--color_red);
}
.top-about-links ul li a.c1:hover {
  border-color: var(--color_red);
  background-color: var(--color_red);
}
.top-about-links ul li a.c1:hover span {
  background-image: url("../images/ico-aw-crw.svg");
  color: var(--color_white);
}
.top-about-links ul li a.c2 {
  border-color: var(--color_blue);
}
.top-about-links ul li a.c2 span {
  background-image: url("../images/ico-aw-crb.svg");
  color: var(--color_blue);
}
.top-about-links ul li a.c2:hover {
  background-color: var(--color_blue);
}
.top-about-links ul li a.c2:hover span {
  background-image: url("../images/ico-aw-crw.svg");
  color: var(--color_white);
}
.top-about-links ul li a.c3 {
  border-color: var(--color_green);
}
.top-about-links ul li a.c3 span {
  background-image: url("../images/ico-aw-crg.svg");
  color: var(--color_green);
}
.top-about-links ul li a.c3:hover {
  background-color: var(--color_green);
}
.top-about-links ul li a.c3:hover span {
  background-image: url("../images/ico-aw-crw.svg");
  color: var(--color_white);
}
.top-recruit {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1400/520;
  background-image: url("../images/top/recruit.jpg");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--color_white);
}
.top-recruit .top-recruit-inner {
  width: 78.5%;
}
.top-recruit-ttl > h2 {
  font-weight: 500;
  font-size: 9rem;
  font-size: clamp(4rem, 6.4vw, 9rem);
  line-height: 1;
  letter-spacing: 0.04em;
}
.top-recruit-ttl > p {
  margin-top: 5px;
  padding-left: 0.2em;
  font-weight: 500;
  font-size: 1.8rem;
  font-size: clamp(1.2rem, 1.2vw, 1.8rem);
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.top-recruit-content {
  margin-top: clamp(40px, 5vw, 70px);
  text-align: center;
}
.top-recruit-content .top-recruit-desc {
  font-weight: 700;
  font-size: 4.8rem;
  font-size: clamp(2.4rem, 3.4vw, 4.8rem);
  line-height: 1;
}
.top-recruit-content .top-recruit-link {
  margin-top: clamp(30px, 4.2vw, 60px);
}
.top-recruit-content .top-recruit-link a {
  display: inline-flex;
  z-index: 3;
  align-items: center;
  justify-content: center;
  aspect-ratio: 320/83;
  width: 320px;
  gap: 8px;
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-viewmore-aw.svg");
  background-position: right clamp(20px, 2.1vw, 30px) center;
  background-size: clamp(7px, 0.7vw, 10px) auto;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  color: var(--color_violet);
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.top-recruit-content .top-recruit-link a span {
  display: block;
  padding-right: 20px;
}
.top-recruit-content .top-recruit-link a:hover {
  background-image: url("../images/ico-viewmore-aw-cw.svg");
  background-position: right clamp(20px, 2.1vw, 30px) center;
  background-size: clamp(7px, 0.7vw, 10px) auto;
  background-color: var(--color_violet);
  color: var(--color_white);
}
.top-news {
  padding: 70px 0;
  text-align: center;
}
.top-news-inner {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  width: 78.5%;
  gap: 25px;
}
.top-news-ttl {
  width: 9rem;
}
.top-news-ttl-ttl {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0;
  padding-top: 1rem;
  gap: 20px;
}
.top-news-ttl-ttl > h2 {
  margin: 0;
  font-weight: 500;
  font-size: 9rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-orientation: mixed;
  writing-mode: vertical-rl;
}
.top-news-ttl-ttl > p {
  margin: 0;
  margin-left: 25%;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1;
  text-orientation: upright; /* 文字を正立（日本語はこれが安定） */
  writing-mode: vertical-rl;
}
.top-news-list {
  width: 100%;
  text-align: left;
}
.top-news-list ul {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  list-style: none;
}
.top-news-list ul li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background-color: var(--color_base);
  font-size: 1.6rem;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: background-color 0.3s;
}
.top-news-list ul li a .date {
  width: calc(10rem + 40px);
  padding: 30px 0 30px 20px;
  color: var(--color_violet);
  font-weight: 700;
}
.top-news-list ul li a .title {
  width: 100%;
  padding: 30px 20px 30px 0;
  color: var(--color_black);
  font-weight: 400;
}
.top-news-list ul li a[target=_blank] .title::after {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 2px;
  background-image: url("/assets/images/ico-ow.svg");
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  content: "";
  vertical-align: middle;
}
.top-news-list ul li a:hover {
  background-color: var(--color_gray);
}
.top-news-link {
  margin-top: 55px;
  text-align: center;
}
.top-links {
  padding: 70px 0;
  background-color: var(--color_base);
}
.top-links .top-links-inner {
  width: 78.5%;
  margin: 0 auto;
}
.top-links .top-links-inner > ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  list-style: none;
}
.top-links .top-links-inner > ul li a {
  display: block;
  border: 1px solid var(--color_gray_light);
  background-color: var(--color_white);
}
.top-links .top-links-inner > ul li a img {
  display: block;
  width: 100%;
  height: auto;
  transition: opacity 0.3s;
}
.top-links .top-links-inner > ul li a:hover img {
  opacity: 0.7;
}
.top-environment {
  padding: 70px 0;
  background-color: var(--color_green_lightest);
}
.top-environment-desc {
  font-weight: 700;
  font-size: 3.6rem;
  font-size: clamp(1.8rem, 2.5vw, 3.6rem);
  line-height: 1.8;
  text-align: center;
}
.top-environment-list {
  width: 78.5%;
  margin: 40px auto 0 auto;
}
.top-environment-list ul {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 15px;
  list-style: none;
}
.top-environment-list ul li {
  display: flex;
  flex: 1;
  max-width: calc(25% - 7px);
}
.top-environment-list ul li a {
  display: grid;
  grid-template-rows: auto auto 1fr;
  flex: 1;
  height: 100%;
  gap: 10px;
  color: var(--color_black);
  text-decoration: none;
}
.top-environment-list ul li a .pic {
  display: block;
  position: relative;
  grid-row: 1;
  aspect-ratio: 197/160;
  width: 100%;
  height: 15.7vw;
  overflow: hidden;
}
.top-environment-list ul li a .pic img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  display: block;
  position: absolute;
     object-fit: cover;
  transform: scale(101%);
}
.top-environment-list ul li a .ttl {
  grid-row: 2;
  min-height: 0;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.top-environment-list ul li a .desc {
  grid-row: 3;
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.8;
}
.top-environment-list.is-align-ttl .ttl {
  min-height: 2.4em;
}
.top-environment-list-inner {
  position: relative;
  width: 100%;
}
.top-environment-list-inner .swiper-wrapper {
  display: flex;
  justify-content: flex-start;
  gap: 0;
}
.top-environment-list-inner .swiper-wrapper li {
  max-width: initial;
}
.top-environment-list-inner .swiper-slide {
  min-width: calc(25% - 16px) !important;
}
.slider-ui {
  display: inline-flex;
  position: relative;
  bottom: 0;
  left: 50%;
  align-items: center;
  justify-content: center;
  height: 50px;
  margin-top: 40px;
  gap: 0;
  transform: translateX(-50%);
}
.slider-ui.is-hidden {
  display: none;
}
.slider-ui .swiper-pagination {
  position: relative;
  top: 0 !important;
  right: initial;
  left: initial;
  margin: initial;
  text-align: center !important;
}
.slider-ui .swiper-pagination .swiper-pagination-bullet {
  background: var(--color_white);
  opacity: 1;
}
.slider-ui .swiper-pagination .swiper-pagination-bullet-active {
  background: var(--color_violet);
}
.slider-ui .swiper-button-prev {
  position: relative;
  top: initial;
  right: initial;
  left: initial;
  width: 50px;
  height: 50px;
  margin: initial;
}
.slider-ui .swiper-button-prev svg {
  display: none;
}
.slider-ui .swiper-button-prev {
  background-image: url("../images/ico-works-slide-aw-prev.svg");
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
}
.slider-ui .swiper-button-next {
  position: relative;
  top: initial;
  right: initial;
  left: initial;
  width: 50px;
  height: 50px;
  margin: initial;
}
.slider-ui .swiper-button-next svg {
  display: none;
}
.slider-ui .swiper-button-next {
  background-image: url("../images/ico-works-slide-aw-next.svg");
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
}
/* 企業理念 */
@keyframes textFade {
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.philosophy-kv {
  background-color: var(--color_white);
}
.philosophy-kv h1 {
  display: none;
}
.philosophy-kv .philosophy-kv-inner {
  position: relative;
  max-width: 1140px;
  margin: 0 auto;
  padding: 70px 20px 0 20px;
  text-align: center;
}
.philosophy-kv .philosophy-kv-catch {
  display: inline-flex;
  align-items: flex-end;
  transform: translateY(5px);
  color: var(--color_violet);
  font-weight: 700;
  font-size: 4.8rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-align: left;
  opacity: 0;
}
.philosophy-kv .philosophy-kv-catch .ruby {
  display: inline-flex;
  flex-direction: column-reverse;
}
.philosophy-kv .philosophy-kv-catch .ruby span {
  font-size: 1.6rem;
  text-align: center;
}
.philosophy-kv .philosophy-kv-catch.on {
  animation: textFade 1s ease-out forwards 0.2s;
}
.philosophy-kv .philosophy-kv-lead {
  display: flex;
  position: relative;
  top: 40px;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1100/114;
  margin-top: 20px;
  background-image: url("../images/philosophy/ttl-bg-text.svg");
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.6s ease-out 0.4s, top 0.7s ease-out 0.1s;
}
.philosophy-kv .philosophy-kv-lead.on {
  top: 0;
  opacity: 1;
}
.philosophy-kv .philosophy-kv-lead p {
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: 0.02em;
  opacity: 0;
}
.philosophy-kv .philosophy-kv-lead p.on {
  opacity: 1;
}
.philosophy-kv .philosophy-kv-lead p span {
  display: inline-block;
  transform: translateY(1px);
  animation: textFade 0.6s forwards;
  opacity: 0;
}
.philosophy-kv .philosophy-kv-img {
  position: relative;
}
.philosophy-kv .philosophy-kv-img img {
  display: block;
  width: 100%;
  height: auto;
}
.philosophy-kv .philosophy-kv-desc {
  margin-top: 40px;
}
.philosophy-kv .philosophy-kv-desc p {
  font-weight: 400;
  font-size: 1.8rem;
  line-height: 1.8;
  text-align: center;
}
.philosophy-description {
  margin: 0 20px;
  padding: 110px 0 100px 0;
}
.philosophy-description-inner {
  display: flex;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
  gap: 45px;
}
.philosophy-description-inner + .philosophy-description-inner {
  margin-top: 40px;
  padding-top: 40px;
  border-top: solid 1px var(--color_gray_light);
}
.philosophy-description-inner.reverse {
  flex-direction: row-reverse;
}
.philosophy-description-desc {
  width: 43.2%;
}
.philosophy-description-image {
  width: 52.7%;
}
.philosophy-description-image img {
  display: block;
  width: 100%;
  height: auto;
}
.philosophy-description-desc-ttl h2 {
  color: var(--color_violet);
  font-weight: 500;
  font-size: 6rem;
  line-height: 1;
}
.philosophy-description-desc-ttl p {
  margin-top: 38px;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1;
  letter-spacing: 0.02em;
}
.reverse .philosophy-description-desc-ttl h2 {
  text-align: right;
}
.reverse .philosophy-description-desc-ttl p {
  text-align: right;
}
.philosophy-description-desc-main {
  margin-top: 30px;
}
.philosophy-description-desc-main p {
  font-weight: 400;
  font-size: 1.8rem;
  line-height: 1.8;
}
.philosophy-description-desc-main p + p {
  margin-top: 30px;
}
.president-message {
  padding: 70px 0;
  background-color: var(--color_base);
}
.president-message-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.president-message-ttl {
  border-bottom: solid 1px var(--color_black);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 2;
}
.president-message-image {
  margin-top: 60px;
}
.president-message-image img {
  display: block;
  width: 61.8%;
  height: auto;
  margin: 0 auto;
}
.president-message-desc {
  margin-top: 40px;
}
.president-message-desc h3 {
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
}
.president-message-desc h3 + p {
  margin-top: 2em;
}
.president-message-desc p {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.president-message-desc p + p {
  margin-top: 30px;
}
.president-message-desc p.name {
  margin-top: 40px;
  font-weight: 700;
  text-align: right;
}
/* 企業情報 */
.information-links {
  margin-top: 70px;
  text-align: center;
}
.information-links-list {
  display: inline-block;
  padding: 20px 60px;
  border: solid 1px var(--color_violet);
  border-radius: 15px;
}
.information-links-list ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 60px;
  list-style: none;
}
.information-links-list ul li a {
  padding-right: 22px;
  background-image: url("../images/ico-aw-km-cv.svg");
  background-position: 100% center;
  background-size: 13px auto;
  background-repeat: no-repeat;
  color: var(--color_violet);
  font-weight: 700;
  font-size: 1.8rem;
  text-decoration: none;
  text-underline-offset: 2px;
  transition: text-underline-offset 0.3s;
}
.information-links-list ul li a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
/* 会社概要 */
.information-overview {
  padding: 70px 0;
}
.information-overview-ttl {
  margin-bottom: 40px;
  border-bottom: solid 1px var(--color_black);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 2;
}
.information-overview-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.information-overview-inner .spec {
  margin: 0;
}
.information-overview-inner .spec__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  -moz-column-gap: 32px;
       column-gap: 32px;
  padding: 20px 0;
  border-bottom: 1px solid var(--color_gray_light);
}
.information-overview-inner .spec__row + .spec__row {
  margin-top: 20px;
}
.information-overview-inner .spec__term {
  margin: 0;
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.information-overview-inner .spec__desc {
  margin: 0;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.information-overview-inner .spec__desc a {
  color: var(--color_black);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.information-overview-inner .spec__desc a.lbw::after {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-left: 4px;
  background-image: url("/assets/images/ico-ow.svg");
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  content: "";
  vertical-align: baseline;
}
/* 沿革 */
.information-history {
  padding: 70px 0;
  background-color: var(--color_base);
}
.information-history-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.information-history-ttl {
  margin-bottom: 40px;
  border-bottom: solid 1px var(--color_black);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 2;
}
.history-data {
  border-radius: 15px;
  background-color: var(--color_white);
}
.history-data + .history-data {
  margin-top: 20px;
}
.history-data-ttl label {
  display: block;
  position: relative;
  padding: 20px 40px;
  font-weight: 500;
  font-size: 2.4rem;
  line-height: 2;
  cursor: pointer;
}
.history-data-ttl label span {
  display: block;
  position: absolute;
  top: 50%;
  right: 47px;
  width: 27px;
  height: 27px;
  transform: translateY(-50%);
}
.history-data-ttl label span::before {
  display: block;
  position: absolute;
  top: 50%;
  right: 0px;
  width: 27px;
  height: 4px;
  transform: translateY(-50%);
  border-radius: 2px;
  background-color: var(--color_black);
  content: "";
}
.history-data-ttl label span::after {
  display: block;
  position: absolute;
  top: 0px;
  right: 50%;
  width: 4px;
  height: 27px;
  transform: translateX(50%);
  border-radius: 2px;
  background-color: var(--color_black);
  content: "";
  transition: opacity 0.3s linear, transform 0.3s linear;
}
.history-data-list {
  display: grid;
  position: relative;
  grid-template-rows: 0fr;
  grid-template-columns: 1fr;
  height: auto;
  transition: grid-template-rows 0.4s ease-out;
}
.history-data-list dl {
  margin: 0 40px;
  padding: 0 20px;
  overflow: hidden;
  border-top: none;
}
.history-data-list dl .history-data-row {
  display: grid;
  grid-template-columns: 100px 1fr;
  padding: 20px 0;
  gap: 80px;
  border-bottom: solid 1px var(--color_gray_light);
}
.history-data-list dl .history-data-row:last-child {
  border-bottom: none;
}
.history-data-list dl .history-data-row .history-data-year {
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
  text-align: right;
}
.history-data-list dl .history-data-row .history-data-desc {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
#toggle-showa:checked ~ .history-data-list {
  grid-template-rows: 1fr;
}
#toggle-showa:checked ~ .history-data-list dl {
  border-top: solid 1px var(--color_gray_light);
}
#toggle-showa:checked ~ .history-data-ttl label span::after {
  transform: rotate(90deg);
  opacity: 0;
}
#toggle-heisei:checked ~ .history-data-list {
  grid-template-rows: 1fr;
}
#toggle-heisei:checked ~ .history-data-list dl {
  border-top: solid 1px var(--color_gray_light);
}
#toggle-heisei:checked ~ .history-data-ttl label span::after {
  transform: rotate(90deg);
  opacity: 0;
}
#toggle-reiwa:checked ~ .history-data-list {
  grid-template-rows: 1fr;
}
#toggle-reiwa:checked ~ .history-data-list dl {
  border-top: solid 1px var(--color_gray_light);
}
#toggle-reiwa:checked ~ .history-data-ttl label span::after {
  transform: rotate(90deg);
  opacity: 0;
}
/* アクセス */
.information-access {
  padding: 70px 0;
}
.information-access-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.information-access-ttl {
  margin-bottom: 40px;
  border-bottom: solid 1px var(--color_black);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 2;
}
.information-access-data h3 {
  padding: 15px 20px;
  border-radius: 5px;
  background-color: var(--color_base);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1;
}
.information-access-data + .information-access-data {
  margin-top: 40px;
}
.information-access-data-inner {
  display: flex;
  margin-top: 20px;
  gap: 40px;
}
.information-access-map {
  width: 41.8%;
}
.information-access-map iframe {
  aspect-ratio: 1/1;
  width: 100%;
  height: 100%;
  border: none;
}
.information-access-desc {
  width: 52.7%;
}
.information-access-desc h4 {
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.information-access-desc .data {
  margin-top: 10px;
}
.information-access-desc .data .data__row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 10px;
}
.information-access-desc .data .data__row + .data__row {
  margin-top: 10px;
}
.information-access-desc .data .data__row .data__term {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.information-access-desc .data .data__row .data__term {
  width: 100%;
  height: 100%;
  padding: 5px 0;
  background-color: var(--color_base);
}
.information-access-desc .data .data__row .data__desc {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.6;
}
.information-access-desc .data .data__row .data__desc a {
  color: var(--color_black);
  text-decoration: none;
}
.information-access-desc .data .data__row .data__desc a[href^="tel:"] {
  display: inline;
  color: inherit;
  text-decoration: none;
}
.information-access-desc .data .data__row .data__desc.no-flex {
  display: block;
}
.information-access-desc .data + h4 {
  margin-top: 40px;
}
/* 組織図 */
.information-organigram {
  padding: 70px 0;
  background-color: var(--color_base);
}
.information-organigram-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.information-organigram-ttl {
  margin-bottom: 20px;
  border-bottom: solid 1px var(--color_black);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 2;
}
.information-organigram-fig img {
  display: block;
  width: 100%;
  height: auto;
}
/* 採用情報 */
.recruit-section {
  padding: 70px 0;
}
.recruit-section.bg-base {
  background-color: var(--color_base);
}
.recruit-section-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.recruit-section-inner + .recruit-section-inner {
  margin-top: 70px;
}
.recruit-section-inner .position {
  margin-bottom: 40px;
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 1.2;
  text-align: center;
}
.recruit-section-inner .position b {
  color: var(--color_violet);
  font-weight: 700;
}
.recruit-section-inner .position span {
  font-size: 2.4rem;
}
.recruit-section-inner .no-position {
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.2;
  text-align: center;
}
.recruit-section-ttl {
  margin-bottom: 40px;
  border-bottom: solid 1px var(--color_black);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 2;
}
.recruit-site-link a {
  display: block;
  position: relative;
  aspect-ratio: 2200/786;
  background-image: url("../images/recruit/recruit-link-pc.png");
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  color: var(--color_white);
  text-align: center;
  text-decoration: none;
}
.recruit-site-link a .recruit-site-link-text {
  padding-top: 40px;
  font-weight: 700;
  font-size: 4.8rem;
  font-size: clamp(2.4rem, 3.5vw, 4.8rem);
  line-height: 1.6;
}
.recruit-site-link a .recruit-site-link-text span {
  display: block;
  font-size: 1.8rem;
  font-size: clamp(1rem, 1.5vw, 1.8rem);
}
.recruit-site-link a .view-more {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  aspect-ratio: 320/83;
  width: 280px;
  margin: 5.7vw auto 0 auto;
  gap: 8px;
  border: solid 1px var(--color_violet);
  border-radius: 9999px;
  background-image: url("../images/ico-viewmore-aw.svg");
  background-position: right clamp(10px, 2.1vw, 30px) center;
  background-size: clamp(5px, 0.7vw, 10px) auto;
  background-repeat: no-repeat;
  background-color: rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  color: var(--color_violet);
  font-weight: 400;
  font-size: 2.4rem;
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  line-height: 1;
  letter-spacing: 0.04em;
  transition: background-color 0.3s linear, color 0.3s linear;
}
.recruit-site-link a .view-more span {
  display: block;
  padding-right: 20px;
}
.recruit-site-link a:hover .view-more {
  background-image: url("../images/ico-viewmore-aw-cw.svg");
  background-color: var(--color_violet);
  color: var(--color_white);
}
.job-data {
  border-radius: 15px;
  background-color: var(--color_white);
}
.job-data + .job-data {
  margin-top: 20px;
}
.job-data-ttl a {
  display: block;
  position: relative;
  padding: 20px 100px 20px 40px;
  color: var(--color_black);
  font-weight: 500;
  font-size: 2.4rem;
  line-height: 2;
  text-decoration: none;
}
.job-data-ttl a span {
  display: block;
  position: absolute;
  top: 50%;
  right: 47px;
  width: 27px;
  height: 27px;
  transform: translateY(-50%);
}
.job-data-ttl a span::before {
  display: block;
  position: absolute;
  top: 50%;
  right: 0px;
  width: 27px;
  height: 4px;
  transform: translateY(-50%);
  border-radius: 2px;
  background-color: var(--color_black);
  content: "";
}
.job-data-ttl a span::after {
  display: block;
  position: absolute;
  top: 0px;
  right: 50%;
  width: 4px;
  height: 27px;
  transform: translateX(50%);
  border-radius: 2px;
  background-color: var(--color_black);
  content: "";
  transition: opacity 0.3s linear, transform 0.3s linear;
}
.open .job-data-ttl a span::after {
  transform: rotate(90deg);
  opacity: 0;
}
.job-data-data {
  display: grid;
  position: relative;
  grid-template-rows: 0fr;
  grid-template-columns: 1fr;
  height: auto;
  margin: 0 40px;
  transition: grid-template-rows 0.4s ease-out;
}
.open .job-data-data {
  grid-template-rows: 1fr;
}
.job-data-data-inner {
  overflow: hidden;
}
.job-data-data-main {
  padding: 40px 20px 70px 20px;
  border-top: var(--color_gray_light) solid 1px;
}
.job-data-data-main h4 {
  margin-bottom: 10px;
  padding: 5px 20px;
  border-radius: 5px;
  background-color: var(--color_base);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.8;
}
.job-data-data-main dl {
  list-style: none;
}
.job-data-data-main dl + h4 {
  margin-top: 40px;
}
.job-data-data-main dl .job-data-row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 0;
}
.job-data-data-main dl .job-data-row + .job-data-row {
  margin-top: 0;
}
.job-data-data-main dl .job-data-row .job-data-ttl {
  padding: 20px;
  border-bottom: solid 1px var(--color_white);
  background-color: var(--color_base);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.job-data-data-main dl .job-data-row .job-data-desc {
  padding: 20px;
  border-right: solid 1px var(--color_base);
  border-bottom: solid 1px var(--color_base);
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.6;
}
.job-data-data-main dl .job-data-row:first-child .job-data-desc {
  border-top: solid 1px var(--color_base);
}
.job-data-data-main dl .job-data-row:last-child .job-data-ttl {
  border-bottom: solid 1px var(--color_base);
}
.job-data-data-main .how-to-apply {
  padding: 20px;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
  text-align: center;
}
.job-data-data-main .how-to-apply a {
  color: var(--color_violet);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.job-data-data-main .apply-form-link {
  margin-top: 30px;
  padding: 20px;
  background-color: var(--color_green_lightest);
  text-align: center;
}
.job-data-data-main .apply-form-link .apply-form-desc {
  color: var(--color_black);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.job-data-data-main .apply-form-link .apply-form-link-button {
  margin-top: 20px;
}
.job-data-data-main .how-to-apply-note {
  padding: 20px;
  background-color: var(--color_green_lightest_light);
}
.job-data-data-main .how-to-apply-note p {
  color: var(--color_black);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.8;
}
.job-data-data-main .how-to-apply-note p a {
  color: var(--color_violet);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
/* お知らせ */
.news-list {
  margin-top: 70px;
  margin-bottom: 70px;
}
.news-list .news-list-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.news-list ul {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  list-style: none;
}
.news-list ul li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background-color: var(--color_base);
  font-size: 1.6rem;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: background-color 0.3s;
}
.news-list ul li a .date {
  width: calc(10rem + 40px);
  padding: 30px 0 30px 20px;
  color: var(--color_violet);
  font-weight: 700;
}
.news-list ul li a .title {
  width: 100%;
  padding: 30px 20px 30px 0;
  color: var(--color_black);
  font-weight: 400;
}
.news-list ul li a[target=_blank] .title::after {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 2px;
  background-image: url("/assets/images/ico-ow.svg");
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  content: "";
  vertical-align: middle;
}
.news-list ul li a:hover {
  background-color: var(--color_gray);
}
.more-news {
  margin-top: 55px;
  text-align: center;
}
.more-news a.hide {
  display: none;
}
/* お知らせ記事 */
.news-header {
  margin-top: 70px;
  margin-right: 20px;
  margin-bottom: 40px;
  margin-left: 20px;
}
.news-header-ttl {
  max-width: 1100px;
  margin: 0 auto;
  padding-bottom: 10px;
  border-bottom: solid 1px var(--color_black);
}
.news-header-ttl .date {
  color: var(--color_violet);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: 0.1em;
}
.news-header-ttl h1 {
  margin-top: 10px;
  color: var(--color_black);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.8;
}
.news-article {
  margin-bottom: 70px;
}
.news-article .news-article-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.news-article-inner * + * {
  margin-top: 60px;
}
.news-article-inner h2 + *,
.news-article-inner h3 + *,
.news-article-inner h4 + *,
.news-article-inner h5 + *,
.news-article-inner h6 + * {
  margin-top: 20px;
}
.news-article-inner h2 {
  padding: 5px 20px;
  border-radius: 5px;
  background-color: var(--color_base);
  color: var(--color_black);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.8;
}
.news-article-inner h3 {
  padding: 0 20px;
  color: var(--color_black);
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
}
.news-article-inner h4 {
  padding: 0 20px;
  color: var(--color_black);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.news-article-inner h5 {
  padding: 0 20px;
  color: var(--color_black);
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1.8;
}
.news-article-inner h6 {
  padding: 0 20px;
  color: var(--color_black);
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.8;
}
.news-article-inner p {
  padding: 0 20px;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.news-article-inner p + p {
  margin-top: 30px;
}
.news-article-inner p a {
  color: var(--color_violet);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.news-article-inner p a[target=_blank]::after {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 2px;
  background-image: url("/assets/images/ico-ow-v.svg");
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  content: "";
  vertical-align: baseline;
}
.news-article-inner p b,
.news-article-inner p strong {
  font-weight: 700;
}
.news-article-inner p.center {
  text-align: center;
}
.news-article-inner p.right {
  text-align: right;
}
.news-article-inner p.figure {
  padding: 0 0;
  text-align: center;
}
.news-article-inner p.figure img {
  display: inline-block;
  width: 72.7%;
  height: auto;
}
/* お問い合わせ */
.inquiry-wrap {
  margin-top: 70px;
  padding-bottom: 70px;
}
.inquiry-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
/* プライバシーポリシー */
.privacy-policy-links {
  margin-top: 70px;
  text-align: center;
}
.privacy-policy-links-list {
  display: inline-block;
  padding: 20px 60px;
  border: solid 1px var(--color_violet);
  border-radius: 15px;
}
.privacy-policy-links-list ul {
  display: inline-block;
  list-style: none;
}
.privacy-policy-links-list ul li {
  display: inline-block;
}
.privacy-policy-links-list ul li.line-break {
  display: block;
  height: 20px;
}
.privacy-policy-links-list ul li + li:not(.line-break) {
  margin-left: 60px;
}
.privacy-policy-links-list ul li a {
  padding-right: 22px;
  background-image: url("../images/ico-aw-km-cv.svg");
  background-position: 100% center;
  background-size: 13px auto;
  background-repeat: no-repeat;
  color: var(--color_violet);
  font-weight: 700;
  font-size: 1.8rem;
  text-decoration: none;
  text-underline-offset: 2px;
  transition: text-underline-offset 0.3s;
}
.privacy-policy-links-list ul li a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.privacy-policy {
  margin-top: 70px;
  padding-bottom: 70px;
}
.privacy-policy-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.privacy-policy-article + .privacy-policy-article {
  margin-top: 70px;
}
.privacy-policy-article * + * {
  margin-top: 20px;
}
.privacy-policy-article h2 + * {
  margin-top: 40px;
}
.privacy-policy-article * + h3 {
  margin-top: 40px;
}
.privacy-policy-article * + table {
  margin-top: 40px;
}
.privacy-policy-article h2 {
  border-bottom: var(--color_black) solid 1px;
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 2;
}
.privacy-policy-article h3 {
  padding: 5px 20px;
  border-radius: 5px;
  background-color: var(--color_base);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.8;
}
.privacy-policy-article p {
  padding: 0 20px;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.privacy-policy-article p.right {
  text-align: right;
}
.privacy-policy-article p + ol {
  margin-top: 40px;
}
.privacy-policy-article p a {
  color: var(--color_black);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.privacy-policy-article p a[target=_blank]::after {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 2px;
  background-image: url("/assets/images/ico-ow.svg");
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  content: "";
  vertical-align: baseline;
}
.privacy-policy-article ol {
  padding: 0 20px 0 calc(20px + 1em);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.6;
}
.privacy-policy-article ol + p {
  margin-top: 40px;
}
.privacy-policy-article ol + .note {
  margin-top: 5px;
}
.privacy-policy-article ol li p {
  padding: 0;
  font-weight: 400;
}
.privacy-policy-article ol li a {
  color: var(--color_black);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.privacy-policy-article ol li a[target=_blank]::after {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 2px;
  background-image: url("/assets/images/ico-ow.svg");
  background-position: center center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  content: "";
  vertical-align: baseline;
}
.privacy-policy-article ol li ol {
  margin-top: 5px;
  padding: 0 20px 0 20px;
  font-weight: 400;
}
.privacy-policy-article ol li ol li {
  line-height: 1.8;
}
.privacy-policy-article ol li ol li ol li {
  position: relative;
  list-style-type: none;
}
.privacy-policy-article ol li ol li ol li::before {
  position: absolute;
  top: 0;
  left: -1.5em;
  content: counter(list-item) ")";
}
.privacy-policy-article ol li ol li + li {
  margin-top: 5px;
}
.privacy-policy-article table {
  width: calc(100% - 20px);
  margin-right: 10px;
  margin-left: 10px;
  border-top: solid 1px var(--color_base);
  border-right: solid 1px var(--color_base);
  border-collapse: collapse;
}
.privacy-policy-article table + * {
  margin-top: 40px;
}
.privacy-policy-article table th,
.privacy-policy-article table td {
  padding: 20px;
}
.privacy-policy-article table th {
  align-items: center;
  min-width: 160px;
  border-bottom: solid 1px var(--color_white);
  background-color: var(--color_base);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.privacy-policy-article table td {
  border-bottom: solid 1px var(--color_base);
  border-left: solid 1px var(--color_base);
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
/* アザーサービス 詳細 */
.works-detail-kv {
  position: relative;
  background-color: var(--color_green);
}
.works-detail-kv-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 40px 20px;
}
.works-detail-kv-ttl {
  color: var(--color_white);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 1;
}
.works-detail-kv-ttl img {
  display: inline-block;
  width: auto;
  height: 60px;
  margin-right: 20px;
  vertical-align: text-bottom;
}
.works-detail-kv-image {
  margin-top: 40px;
}
.works-detail-kv-image-inner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 20px;
}
.works-detail-kv-image-inner img {
  display: block;
  width: 29%;
  height: auto;
}
.works-detail-kv-bottom {
  position: relative;
}
.works-detail-kv-bottom img {
  display: block;
  width: 100%;
  height: auto;
}
.works-detail-description {
  padding-top: 70px;
  background-color: var(--color_base);
}
.works-detail-description-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.works-detail-description-inner h2 {
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.8;
}
.works-detail-description-inner p {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.works-detail-details {
  padding-top: 60px;
  padding-bottom: 70px;
  background-color: var(--color_base);
}
.works-detail-details-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.works-detail-details-ttl {
  padding: 5px 20px;
  border-radius: 5px;
  background-color: var(--color_green);
  color: var(--color_white);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.8;
}
.works-detail-details-wrap {
  margin-top: 20px;
  padding: 20px;
  background-color: var(--color_white);
}
.works-detail-details-wrap h3 {
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
}
.works-detail-details-wrap p {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.works-detail-details-wrap ul {
  padding-left: 1.5em;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
}
.works-detail-details-wrap * + h3 {
  margin-top: 1.8em;
}
.works-detail-details-wrap > .works-detail-link {
  margin-bottom: 20px;
}
.other-service-link {
  margin-top: 40px;
  text-align: center;
}
.other-service-link > .view-more-button a {
  border-color: var(--color_green);
  background-image: url("../images/ico-aw-cg.svg");
  color: var(--color_green);
  font-weight: 700;
  font-size: 1.8rem;
}
.other-service-link > .view-more-button a:hover {
  background-image: url("../images/ico-aw-cw.svg");
  background-color: var(--color_green);
  color: var(--color_white);
}
/* リアルーム */
.realoom-hero {
  padding-top: 70px;
  background-color: var(--color_realoom);
}
.realoom-hero-ttl {
  padding: 0 20px;
  line-height: 1;
  text-align: center;
}
.realoom-hero-ttl img {
  display: inline-block;
  width: 100%;
  max-width: 1100px;
}
.realoom-hero-bottom img {
  display: block;
  width: 100%;
  height: auto;
}
.realoom-desc-links {
  display: grid;
  grid-template-rows: 1fr 1fr;
  align-items: center;
  justify-content: center;
  margin-top: 70px;
  gap: 40px;
  text-align: center;
}
.realoom-links-list {
  display: inline-block;
  padding: 20px 60px;
  border: solid 1px var(--color_violet);
  border-radius: 15px;
}
.realoom-links-list ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px;
  list-style: none;
}
.realoom-links-list ul li a {
  padding-right: 22px;
  background-image: url("../images/ico-aw-km-cv.svg");
  background-position: 100% center;
  background-size: 13px auto;
  background-repeat: no-repeat;
  color: var(--color_violet);
  font-weight: 700;
  font-size: 1.8rem;
  text-decoration: none;
  text-underline-offset: 2px;
  transition: text-underline-offset 0.3s;
}
.realoom-links-list ul li a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.realoom-desc-desc {
  font-weight: 400;
  font-size: 2.4rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: center;
}
.realoom-desc-desc strong {
  font-weight: 700;
}
.realoom-type-detail {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.realoom-type-detail:last-child {
  padding-bottom: 70px;
}
.realoom-type-detail-inner {
  padding: 40px 0;
  border-bottom: solid 1px var(--color_gray_light);
}
.realoom-type-detail-ttl {
  width: 44.5%;
}
.realoom-type-detail-ttl img {
  display: block;
  width: 100%;
  height: auto;
}
.realoom-type-detail-head {
  display: flex;
  align-items: center;
  justify-content: center;
}
.realoom-type-detail-head:has(> :nth-child(2)) {
  justify-content: space-between;
}
.realoom-type-detail-image {
  width: 52.7%;
}
.realoom-type-detail-image img {
  display: block;
  width: 100%;
  height: auto;
}
.realoom-type-detail-ttl-info {
  width: 100%;
  margin-top: 30px;
  padding: 20px;
  border-radius: 15px 0;
  background-color: var(--color_base);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: center;
}
.realoom-type-detail-desc {
  margin-top: 40px;
}
.realoom-type-detail-desc p {
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.realoom-type-detail-desc p + p {
  margin-top: 1.8em;
}
.realoom-type-detail-desc p strong {
  font-weight: 700;
}
.realoom-type-detail-desc p .cv {
  color: var(--color_violet);
}
.realoom-type-detail-desc p .note {
  font-size: 1.4rem;
}
.realoom-type-detail-link {
  margin-top: 40px;
  text-align: center;
}
/* 404 */
.notfound-hero {
  padding-top: 40px;
  background-color: var(--color_base);
}
.notfound-hero-ttl {
  padding-bottom: 20px;
  color: var(--color_violet);
  font-weight: 700;
  font-size: 16rem;
  line-height: 1;
  letter-spacing: 0.04em;
  text-align: center;
}
.notfound-hero-ttl span {
  display: block;
  margin-top: 20px;
  color: var(--color_black);
  font-size: 4rem;
  line-height: 1.4;
}
.notfound-hero-bottom img {
  display: block;
  width: 100%;
  height: auto;
}
.notfound-detail {
  padding-top: 40px;
  text-align: center;
}
.notfound-detail-inner {
  padding: 0 20px;
}
.notfound-detail-inner p {
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.8;
}
.notfound-link {
  margin-top: 70px;
  padding-bottom: 70px;
}
.notfound-link-desc {
  padding: 0 20px;
}
.notfound-link-desc p {
  color: var(--color_violet);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: center;
}
.notfound-link-button {
  margin-top: 40px;
  text-align: center;
}
@media (max-width: 1099.98px){
  .footer-links-list {
    width: 150px;
  }
  .footer-links-links:first-child .footer-links-list {
    width: 120px;
  }
}
@media (max-width: 1049.98px){
  .header-nav {
    gap: 30px;
  }
  .header-nav-list ul {
    gap: 30px;
  }
}
@media (max-width: 1039.98px){
  .top-environment-list ul li a .ttl {
    font-size: 1.6rem;
  }
}
@media (max-width: 999.98px){
  .header-nav {
    gap: 25px;
  }
  .header-nav-list ul {
    gap: 25px;
  }
  .header-nav-list ul li a,
  .header-nav-list ul li label {
    font-size: 1.4rem;
  }
  .footer-links-links:first-child .footer-links-list {
    width: 80px;
  }
}
@media (max-width: 992.98px){
  .tb-br {
    display: block;
  }
  .philosophy-kv .philosophy-kv-lead p {
    line-height: 1.4;
  }
  .philosophy-description-desc-ttl h2 {
    font-size: 4.8rem;
  }
  .information-access-data-inner {
    gap: 25px;
  }
  .information-access-map {
    width: 50%;
  }
  .information-access-desc {
    width: 50%;
  }
}
@media (max-width: 949.98px){
  .header-nav {
    gap: 20px;
  }
  .header-nav-list ul {
    gap: 20px;
  }
  .header-nav-list ul li a,
  .header-nav-list ul li label {
    font-size: 1.3rem;
  }
  .top-about-links ul li a span {
    background-size: 10px auto;
  }
}
@media (max-width: 939.98px){
  .footer-links-inner {
    gap: 30px;
  }
  .footer-links-list {
    width: auto;
  }
  .footer-links-links:first-child .footer-links-list {
    width: auto;
  }
}
@media (max-width: 899.98px){
  .header-logo {
    width: 240px;
  }
  .footer-inner {
    grid-template-columns: 23% 4% 73%;
  }
  .top-environment-list ul li a .ttl {
    font-size: 1.5rem;
  }
}
@media (max-width: 849.98px){
  .header-nav {
    gap: 15px;
  }
  .header-nav-list ul {
    gap: 15px;
  }
}
@media (max-width: 839.98px){
  .realoom-detail-main {
    width: calc(100% - 20px);
  }
  .works-detail-main {
    width: calc(100% - 20px);
  }
  .works-detail-swiper .swiper-button-next {
    right: 3.4vw;
  }
  .works-detail-swiper .swiper-button-prev {
    left: 3.4vw;
  }
}
@media (max-width: 819.98px){
  .header-logo {
    width: 210px;
  }
}
@media (max-width: 767.98px){
  html.works-detail-open {
    height: 100%;
  }
  html.realoom-modal-open {
    height: 100%;
  }
  .pc-br {
    display: none;
  }
  .sp-br {
    display: block;
  }
  .pc-only {
    display: none;
  }
  header {
    height: 60px;
  }
  .header-inner {
    gap: 10px;
  }
  .header-logo {
    width: 58.1vw;
    max-width: 218px;
    margin-left: 10px;
    padding-top: 5px;
  }
  .header-nav {
    height: 60px;
    gap: clamp(15px, 5vw, 20px);
  }
  .header-nav-list {
    display: grid;
    z-index: 100;
    position: absolute;
    top: 60px;
    left: 0;
    grid-template-rows: 0fr;
    grid-template-columns: 1fr;
    width: 100%;
    background-color: var(--color_violet);
    transition: grid-template-rows 0.3s ease-out;
  }
  .header-nav-list ul {
    grid-template-columns: 1fr;
    overflow: hidden;
    gap: 0;
  }
  .header-nav-list ul li {
    border-top: solid 1px var(--color_white);
  }
  .header-nav-list ul li.sp-menu {
    display: block;
  }
  .header-nav-list ul li a,
  .header-nav-list ul li label {
    height: auto;
    padding-top: 30px;
    padding-right: 0;
    padding-bottom: 30px;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 1;
  }
  .header-nav-list ul li a {
    background-position: right 10px center;
  }
  .header-nav-list ul li a:hover {
    background-position: right 10px center;
  }
  .header-nav-list ul li label {
    background-image: none;
  }
  .header-nav-list ul li label span {
    display: block;
  }
  .header-nav-list ul li.drop-down:hover .header-sub-menu {
    height: auto;
  }
  .header-sub-menu {
    display: grid;
    visibility: visible !important;
    position: relative;
    top: 0;
    grid-template-rows: 0fr;
    grid-template-columns: 1fr;
    height: auto;
    transition: grid-template-rows 0.2s ease-out;
  }
  .header-sub-menu ul {
    display: block;
    width: 100%;
    height: auto;
    overflow: hidden;
  }
  .header-sub-menu ul li {
    height: auto;
    border-top: solid 1px var(--color_white);
  }
  .header-sub-menu ul a {
    display: block;
    width: 100% !important;
    height: auto !important;
    padding-top: 20px !important;
    padding-bottom: 20px !important;
    background-image: url("../images/ico-aw-km-cw.svg") !important;
    background-position: right 10px center !important;
    background-size: 13px auto;
    background-repeat: no-repeat;
    line-height: 1 !important;
  }
  #toggle-mn1:checked ~ .header-sub-menu {
    visibility: initial !important;
    grid-template-rows: 1fr;
    height: auto;
  }
  #toggle-mn2:checked ~ .header-sub-menu {
    visibility: initial !important;
    grid-template-rows: 1fr;
    height: auto;
  }
  .header-nav-contact {
    width: 8.5vw;
    max-width: 32px;
    background-color: transparent;
  }
  .header-nav-contact a span {
    width: 100%;
    height: 60px;
    padding-top: 0;
    overflow: hidden;
    background-image: url("../images/ico-contact-cw.svg");
    background-position: center center;
    background-size: 100% auto;
    background-repeat: no-repeat;
    line-height: 1;
    text-indent: -9999px;
  }
  .header-nav-contact a:hover {
    background-color: transparent;
    color: var(--color_violet);
  }
  .sp-nav-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 8vw;
    max-width: 30px;
    height: 60px;
    margin-right: 10px;
    overflow: hidden;
  }
  .footer-inner {
    display: block;
    padding: 30px 0 0 0;
  }
  .footer-company-info {
    padding: 0 0 0 0;
  }
  .footer-company-info-ttl {
    padding-right: 18px;
    padding-bottom: 18px;
    padding-left: 18px;
  }
  .footer-company-info-ttl a img {
    max-width: 275px;
    margin: 0 auto;
  }
  .footer-company-info-data-wrap {
    display: grid;
    position: relative;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    padding: 17px 18px 30px 18px;
    gap: 30px;
    border-top: solid 1px var(--color_white);
  }
  .footer-company-info-data-wrap::after {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 1.5px;
    height: 100%;
    transform: translateX(-50%);
    background-color: var(--color_white);
    content: "";
  }
  .footer-company-info-data {
    margin-top: 0;
    padding-bottom: 35px;
  }
  .footer-company-info-data-ttl {
    font-size: 1.4rem;
  }
  .footer-company-info-data-desc {
    margin: 0px 0 5px 0;
    font-size: 1.2rem;
  }
  .footer-company-info-data-desc::first-line {
    line-height: 2;
  }
  .footer-company-info-data-link {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
  }
  .footer-line {
    display: none;
  }
  .footer-links-inner {
    display: block;
  }
  .footer-links-inner a:hover {
    opacity: 1;
  }
  .footer-links-cat-top {
    padding-left: 18px;
    font-size: 1.4rem;
  }
  .footer-links-list {
    width: initial;
    padding: 0 18px 0 28px;
    gap: 15px;
    line-height: 1.4;
  }
  .footer-links-list li a:hover::after {
    right: -16px;
  }
  .footer-links-list + .footer-links-util {
    margin-top: 15px;
  }
  .footer-links-util {
    margin-top: 0;
    padding: 25px 18px 25px 18px;
    border-top: solid 1px var(--color_white);
  }
  .footer-links-util a {
    display: block;
    font-size: 1.4rem;
  }
  .footer-links-util a::after {
    right: 0;
    width: 8px;
  }
  .footer-links-util a:hover::after {
    right: 0px;
  }
  .footer-links-other {
    margin-top: 0;
    padding: 20px 18px 20px 0;
    border-top: solid 1px var(--color_white);
  }
  .footer-links-links {
    padding: 15px 0;
    border-top: solid 1px var(--color_white);
  }
  .footer-links-links:first-child .footer-links-list {
    width: auto;
    margin-top: 15px;
    gap: 15px;
    line-height: 1.4;
  }
  .footer-links-links:last-child {
    padding: 15px 0 0 0;
  }
  .footer-copyright p {
    font-size: 1.2rem;
  }
  .footer-copyright .but-go-top {
    right: 17px;
    bottom: 39px;
  }
  .footer-copyright .but-go-top a {
    width: 50px;
    height: 50px;
  }
  .footer-copyright .but-go-top a svg {
    width: 16px;
  }
  .breadcrumb {
    height: 35px;
    padding: 0 10px;
    border-top: none;
  }
  .breadcrumb-list {
    font-size: 1rem;
  }
  .breadcrumb-item {
    padding-left: 21px;
    background-position: left 8px center;
    background-size: 3px auto;
  }
  .document-header {
    padding-top: 40px;
  }
  .document-header-ttl h1 {
    margin-bottom: 10px;
    padding-bottom: 10px;
    font-size: 3.2rem;
  }
  .document-header-ttl p {
    font-size: 1.4rem;
  }
  .works-desc-list {
    padding: 30px 18px;
  }
  .works-desc-list ul.col2 {
    width: 60%;
    gap: 8px;
  }
  .works-desc-list ul.col3 {
    width: 100%;
    gap: 8px;
  }
  .works-desc-item .works-desc-item-cover {
    gap: 5px;
  }
  .works-desc-item .works-desc-item-cover .works-desc-item-ico {
    width: 64.8%;
  }
  .works-desc-item .works-desc-item-cover .works-desc-item-ttl {
    font-size: 1rem;
  }
  .works-desc-item .works-desc-item-over {
    display: none;
  }
  .works-desc-item:hover .works-desc-item-over {
    opacity: 0;
  }
  .works-desc-category .works-desc-category-cover {
    gap: 5px;
  }
  .works-desc-category .works-desc-category-cover .works-desc-category-ico {
    width: 64.8%;
  }
  .works-desc-category .works-desc-category-cover .works-desc-category-ttl {
    font-size: 1rem;
  }
  .works-related-links {
    padding: 40px 18px;
  }
  .works-related-links-inner {
    flex-direction: column;
    gap: 30px;
  }
  .works-related-links-item {
    width: 100%;
  }
  .works-related-links-item a .works-related-links-item-ttl {
    font-size: 2.4rem;
  }
  .works-related-links-item a .works-related-links-item-ttl span {
    font-size: 1.4rem;
  }
  .works-related-links-item a .view-more {
    background-position: right 19px center;
    background-size: 6px auto;
    font-size: 1.4rem;
  }
  .works-related-links-item a:hover .works-related-links-item-pic img {
    transform: scale(1);
  }
  .works-related-links-item a:hover .view-more {
    background-image: url("../images/ico-viewmore-aw.svg");
    background-color: rgba(255, 255, 255, 0.85);
    color: var(--color_violet);
  }
  .view-more-button a {
    bottom: clamp(15px, 1.4vw, 20px);
    aspect-ratio: 232/50;
    width: 79.4%;
    max-width: 300px;
    background-position: right 19px center;
    background-size: 6px auto;
    font-size: 1.4rem;
  }
  .view-more-button a:hover {
    background-image: url("../images/ico-viewmore-aw.svg");
    background-position: right 19px center;
    background-size: 6px auto;
    background-color: rgba(255, 255, 255, 0.85);
    color: var(--color_violet);
  }
  .realoom-detail {
    padding: 20px 0 30px 0;
  }
  .realoom-detail-main {
    width: calc(100% - 20px);
  }
  .realoom-detail-close {
    height: 50px;
  }
  .realoom-detail-close-btn {
    width: 50px;
    height: 50px;
    background-size: 25px auto;
  }
  .realoom-detail-ttl {
    padding: 40px 0 30px 0;
    font-size: 4rem;
  }
  .realoom-detail-ttl-desc {
    font-size: 1.4rem;
  }
  .realoom-detail-btmr {
    aspect-ratio: 320/30;
    overflow: hidden;
  }
  .realoom-detail-desc {
    padding: 20px 25px 40px 25px;
  }
  .realoom-detail-desc-ttl {
    margin-bottom: 20px;
  }
  .realoom-detail-desc-ttl img {
    width: 57.7%;
  }
  .realoom-detail-desc-desc {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .realoom-detail-link a {
    width: initial;
    min-width: 200px;
    padding: 20px 42px 20px 20px;
    background-position: right 18px center;
    background-size: 6px auto;
    font-size: 1.4rem;
    line-height: 1.4;
  }
  .realoom-detail-link a img {
    width: 16px;
    margin-right: 2px;
  }
  .realoom-detail-link a:hover {
    background-image: url("../images/ico-aw-cv.svg");
    background-color: var(--color_white);
    color: var(--color_violet);
  }
  .related-links {
    padding: 40px 18px;
  }
  .related-links-inner {
    flex-direction: column;
    gap: 20px;
  }
  .related-links-item {
    aspect-ratio: 340/213;
    width: 100%;
    max-width: initial;
  }
  .related-links-item a .related-links-item-ttl {
    top: clamp(15px, 4vw, 20px);
    left: clamp(20px, 5.3vw, 30px);
    font-size: 4rem;
    font-size: clamp(3rem, 10.6vw, 8rem);
  }
  .related-links-item a .related-links-item-ttl span {
    margin-top: 7px;
    font-size: 1.2rem;
    font-size: clamp(1rem, 3.2vw, 2.4rem);
  }
  .related-links-item a .view-more {
    bottom: clamp(15px, 1.4vw, 20px);
    aspect-ratio: 232/50;
    width: 79.4%;
    max-width: 300px;
    background-position: right 19px center;
    background-size: 6px auto;
    font-size: 1.4rem;
  }
  .related-links-item a:hover .related-links-item-pic img {
    transform: scale(1);
  }
  .related-links-item a:hover .view-more {
    background-image: url("../images/ico-viewmore-aw.svg");
    background-color: rgba(255, 255, 255, 0.85);
    color: var(--color_violet);
  }
  .works-related-links {
    padding: 40px 18px;
  }
  .works-related-links-inner {
    flex-direction: column;
    gap: 30px;
  }
  .works-related-links-item {
    width: 100%;
  }
  .works-related-links-item a .works-related-links-item-ttl {
    font-size: 2.4rem;
  }
  .works-related-links-item a .works-related-links-item-ttl span {
    font-size: 1.4rem;
  }
  .works-related-links-item a .view-more {
    background-position: right 19px center;
    background-size: 6px auto;
    font-size: 1.4rem;
  }
  .works-related-links-item a:hover .works-related-links-item-pic img {
    transform: scale(1);
  }
  .works-related-links-item a:hover .view-more {
    background-image: url("../images/ico-viewmore-aw.svg");
    background-color: rgba(255, 255, 255, 0.85);
    color: var(--color_violet);
  }
  .works-kv {
    aspect-ratio: initial;
    height: auto;
    padding-bottom: 40px;
  }
  .works-kv .works-kv-inner {
    display: block;
    position: relative;
  }
  .works-kv .works-kv-inner .works-kv-image {
    display: block;
    width: 100%;
    height: auto;
    padding-left: 20px;
  }
  .works-kv .works-kv-inner .works-kv-image .works-kv-image-inner {
    aspect-ratio: 375/240;
  }
  .works-kv .works-kv-inner .works-kv-ttl {
    padding: 30px 20px 34px 20px;
  }
  .works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-ttl .main {
    font-size: 3.2rem;
  }
  .works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-ttl .sub {
    font-size: 1.4rem;
  }
  .works-kv .works-kv-inner .works-kv-ttl .works-kv-ttl-desc {
    margin-top: 20px;
    font-size: 1.4rem;
  }
  .works-kv .kv-ticker {
    --h: clamp(55px, 15vw, 160px);
  }
  .works-detail {
    padding: 20px 0 30px 0;
  }
  .works-detail-main {
    width: calc(100% - 20px);
  }
  .works-detail-close {
    height: 50px;
  }
  .works-detail-close-btn {
    width: 50px;
    height: 50px;
    background-size: 25px auto;
  }
  .works-detail-ttl {
    padding: 10px 25px;
    gap: 10px;
    font-size: 1.8rem;
  }
  .works-detail-ttl img {
    height: 40px;
  }
  .works-detail-img img {
    height: 192px;
  }
  .works-detail-desc {
    padding: 20px 25px 20px 25px;
  }
  .works-detail-desc-ttl {
    margin-bottom: 12px;
    font-size: 1.4rem;
  }
  .works-detail-desc-desc {
    font-size: 1.2rem;
  }
  .works-detail-link a {
    padding: 20px 42px 20px 20px;
    background-position: right 18px center;
    background-size: 6px auto;
    font-size: 1.4rem;
    line-height: 1.4;
  }
  .works-detail-link a img {
    width: 16px;
    margin-right: 2px;
  }
  .works-detail-link a:hover {
    background-image: url("../images/ico-aw-cv.svg");
    background-color: var(--color_white);
    color: var(--color_violet);
  }
  .works-detail-swiper .swiper-button-next,
  .works-detail-swiper .swiper-button-prev {
    width: 34px;
    height: 34px;
  }
  .works-detail-swiper .swiper-button-next {
    right: 10px;
  }
  .works-detail-swiper .swiper-button-prev {
    left: 10px;
  }
  .top-kv {
    aspect-ratio: 375/622;
  }
  .top-kv::after {
    aspect-ratio: 375/42;
    background-image: url("../images/top/kv-bottom-sp.svg");
    background-size: 100% auto;
  }
  .top-kv .top-kv-mask-inner {
    -webkit-mask-size: 100% 100%, 120% auto;
            mask-size: 100% 100%, 120% auto;
  }
  .top-kv.mask-on .top-kv-mask-inner {
    animation: kv-mask-move-sp 1.5s ease-in-out forwards;
  }
  .top-kv.mask-off .top-kv-mask-inner {
    animation: kv-mask-move-sp-off 1.5s ease-in-out forwards;
  }
  .top-kv-text p {
    font-size: 5.6rem;
    font-size: clamp(2.8rem, 10vw, 5.6rem);
  }
  .top-kv-text .ruby {
    margin-left: 6.4vw;
    font-size: 1.6rem;
  }
  .top-kv-img.s1-1 {
    background-image: url("../images/top/sp_mv_1_1.jpg");
  }
  .top-kv-img.s1-2 {
    background-image: url("../images/top/sp_mv_1_2.jpg");
  }
  .top-kv-img.s2-1 {
    background-image: url("../images/top/sp_mv_2_1.jpg");
  }
  .top-kv-img.s2-2 {
    background-image: url("../images/top/sp_mv_2_2.jpg");
  }
  .top-kv-img.s3-1 {
    background-image: url("../images/top/sp_mv_3_1.jpg");
  }
  .top-kv-img.s3-2 {
    background-image: url("../images/top/sp_mv_3_2.jpg");
  }
  .top-kv-img.s4 {
    background-image: url("../images/top/sp_mv_4.jpg");
  }
  .top-about {
    padding: 40px 18px 80px 18px;
  }
  .top-about::after {
    aspect-ratio: 375/39;
    background-image: url("../images/top/about-bottom-sp.svg");
    background-size: 100% auto;
  }
  .top-about-inner {
    display: block;
  }
  .top-about-ttl {
    width: auto;
  }
  .top-about-ttl-ttl {
    display: block;
    text-align: left;
  }
  .top-about-ttl-ttl > h2 {
    font-size: 4rem;
    writing-mode: horizontal-tb;
  }
  .top-about-ttl-ttl > p {
    margin-top: 0.5rem;
    margin-left: 0;
    font-size: 1.2rem;
    text-orientation: mixed;
    writing-mode: horizontal-tb;
  }
  .top-about-desc {
    display: block;
    margin-top: 30px;
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.6;
    text-align: left;
  }
  .top-about-works {
    margin-top: 30px;
  }
  .top-about-links {
    margin-top: 30px;
  }
  .top-about-links ul {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .top-about-links ul li a {
    aspect-ratio: 234/60;
    max-width: 300px;
    margin: 0 auto;
    box-shadow: none;
  }
  .top-about-links ul li a span {
    background-size: 15px auto;
    font-size: 1.4rem;
    font-size: clamp(1.2rem, 3.7vw, 1.8rem);
  }
  .top-about-links ul li a span i {
    font-size: 1rem;
    font-size: clamp(0.8rem, 3.2vw, 1rem);
  }
  .top-about-links ul li a:hover {
    border-color: var(--color_red);
    background-color: var(--color_white);
  }
  .top-about-links ul li a:hover span {
    background-image: url("../images/ico-aw-crr.svg");
    color: var(--color_red);
  }
  .top-about-links ul li a.c1:hover {
    border-color: var(--color_red);
    background-color: var(--color_white);
  }
  .top-about-links ul li a.c1:hover span {
    background-image: url("../images/ico-aw-crr.svg");
    color: var(--color_red);
  }
  .top-about-links ul li a.c2:hover {
    border-color: var(--color_blue);
    background-color: var(--color_white);
  }
  .top-about-links ul li a.c2:hover span {
    background-image: url("../images/ico-aw-crb.svg");
    color: var(--color_blue);
  }
  .top-about-links ul li a.c3:hover {
    border-color: var(--color_green);
    background-color: var(--color_white);
  }
  .top-about-links ul li a.c3:hover span {
    background-image: url("../images/ico-aw-crg.svg");
    color: var(--color_green);
  }
  .top-recruit {
    aspect-ratio: 375/275;
    background-image: url("../images/top/recruit-sp.jpg");
    background-size: cover;
  }
  .top-recruit .top-recruit-inner {
    width: calc(100% - 36px);
  }
  .top-recruit-ttl > h2 {
    font-size: 4rem;
    font-size: clamp(4rem, 10.6vw, 8rem);
  }
  .top-recruit-ttl > p {
    margin-top: 7px;
    font-size: 1.2rem;
    font-size: clamp(1.2rem, 3.2vw, 1.8rem);
  }
  .top-recruit-content {
    margin-top: clamp(40px, 10.6vw, 80px);
  }
  .top-recruit-content .top-recruit-desc {
    font-size: 1.8rem;
    font-size: clamp(1.8rem, 4.8vw, 5.4rem);
  }
  .top-recruit-content .top-recruit-link a {
    bottom: clamp(15px, 1.4vw, 20px);
    aspect-ratio: 232/50;
    width: 79.4%;
    max-width: 300px;
    background-position: right 19px center;
    background-size: 6px auto;
    font-size: 1.4rem;
  }
  .top-recruit-content .top-recruit-link a:hover {
    background-image: url("../images/ico-viewmore-aw.svg");
    background-position: right 19px center;
    background-size: 6px auto;
    background-color: rgba(255, 255, 255, 0.85);
    color: var(--color_violet);
  }
  .top-news {
    padding: 40px 18px;
  }
  .top-news-inner {
    display: block;
    width: 100%;
  }
  .top-news-ttl {
    width: auto;
  }
  .top-news-ttl-ttl {
    display: block;
    text-align: left;
  }
  .top-news-ttl-ttl > h2 {
    font-size: 4rem;
    writing-mode: horizontal-tb;
  }
  .top-news-ttl-ttl > p {
    margin-top: 0.5rem;
    margin-left: 0;
    font-size: 1.2rem;
    text-orientation: mixed;
    writing-mode: horizontal-tb;
  }
  .top-news-list {
    margin-top: 30px;
  }
  .top-news-list ul li a {
    display: block;
    padding: 10px;
  }
  .top-news-list ul li a .date {
    padding: 0;
    font-size: 1.2rem;
  }
  .top-news-list ul li a .title {
    padding: 0;
    font-size: 1.4rem;
  }
  .top-news-list ul li a[target=_blank] .title::after {
    width: 14px;
    height: 14px;
  }
  .top-news-link {
    margin-top: 30px;
  }
  .top-links {
    padding: 40px 18px;
  }
  .top-links .top-links-inner {
    width: 100%;
  }
  .top-links .top-links-inner > ul {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .top-links .top-links-inner > ul li a:hover img {
    opacity: 1;
  }
  .top-environment {
    padding: 40px 0;
  }
  .top-environment-desc {
    font-size: 1.8rem;
    font-size: clamp(1.4rem, 4.8vw, 2.4rem);
    line-height: 1.6;
  }
  .top-environment-list {
    width: 100%;
    margin: 30px auto 0 auto;
    overflow: hidden;
  }
  .top-environment-list ul {
    justify-content: space-between;
    gap: 0;
  }
  .top-environment-list ul li {
    flex: none;
    width: calc(50% - 9px);
  }
  .top-environment-list ul li a {
    gap: 8px;
  }
  .top-environment-list ul li a .pic {
    aspect-ratio: 197/160;
    height: auto;
  }
  .top-environment-list ul li a .ttl {
    font-size: 1.4rem;
  }
  .top-environment-list ul li a .desc {
    font-size: 1.2rem;
  }
  .top-environment-list-inner .swiper-slide {
    min-width: initial !important;
  }
  .slider-ui {
    margin-top: 20px;
  }
  .slider-ui .swiper-button-prev {
    width: 40px;
    height: 32px;
    background-size: 100% auto;
  }
  .slider-ui .swiper-button-next {
    width: 40px;
    height: 32px;
    background-size: 100% auto;
  }
  .philosophy-kv .philosophy-kv-inner {
    max-width: initial;
    padding: 30px 18px 0 18px;
  }
  .philosophy-kv .philosophy-kv-catch {
    font-size: 3.2rem;
  }
  .philosophy-kv .philosophy-kv-catch .ruby span {
    font-size: 1.2rem;
  }
  .philosophy-kv .philosophy-kv-lead {
    aspect-ratio: 343/106;
    background-image: url("../images/philosophy/ttl-bg-text-sp.svg");
    background-size: contain;
  }
  .philosophy-kv .philosophy-kv-lead p {
    font-size: 1.2rem;
    line-height: 1.8;
  }
  .philosophy-kv .philosophy-kv-desc {
    margin-top: 20px;
  }
  .philosophy-kv .philosophy-kv-desc p {
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .philosophy-description {
    margin: 0;
    padding: 40px 18px 40px 18px;
  }
  .philosophy-description-inner {
    display: block;
  }
  .philosophy-description-desc {
    width: 100%;
  }
  .philosophy-description-image {
    width: 100%;
    margin-top: 18px;
  }
  .philosophy-description-desc-ttl h2 {
    font-size: 4rem;
  }
  .philosophy-description-desc-ttl p {
    margin-top: 10px;
    font-size: 1.4rem;
  }
  .philosophy-description-desc-main {
    margin-top: 20px;
  }
  .philosophy-description-desc-main p {
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .philosophy-description-desc-main p + p {
    margin-top: 20px;
  }
  .president-message {
    margin: 0;
    padding: 40px 18px 40px 18px;
  }
  .president-message-inner {
    padding: 0;
  }
  .president-message-ttl {
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .president-message-image {
    margin-top: 30px;
  }
  .president-message-image img {
    width: 100%;
  }
  .president-message-desc {
    margin-top: 30px;
  }
  .president-message-desc h3 {
    font-size: 1.4rem;
  }
  .president-message-desc p {
    font-size: 1.2rem;
  }
  .president-message-desc p + p {
    margin-top: 20px;
  }
  .president-message-desc p.name {
    margin-top: 30px;
  }
  .information-links {
    margin-top: 40px;
    padding: 0 18px;
  }
  .information-links-list {
    display: block;
    width: 100%;
    padding: 15px 20px;
  }
  .information-links-list ul {
    gap: 0;
  }
  .information-links-list ul li a {
    padding-right: 13px;
    background-size: 8px auto;
    font-size: 1.2rem;
  }
  .information-links-list ul li a:hover {
    text-decoration: none;
  }
  .information-overview {
    padding: 40px 18px;
  }
  .information-overview-ttl {
    margin-bottom: 20px;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .information-overview-inner {
    padding: 0;
  }
  .information-overview-inner .spec__row {
    padding: 5px 0 20px 0;
  }
  .information-overview-inner .spec__row + .spec__row {
    margin-top: 10px;
  }
  .information-overview-inner .spec__row {
    grid-template-columns: 1fr;
    row-gap: 0px;
  }
  .information-overview-inner .spec__term {
    font-size: 1.4rem;
  }
  .information-overview-inner .spec__desc {
    font-size: 1.2rem;
  }
  .information-overview-inner .spec__desc a.lbw::after {
    width: 14px;
    height: 14px;
    margin-left: 2px;
  }
  .information-history {
    padding: 40px 18px;
  }
  .information-history-inner {
    padding: 0;
  }
  .information-history-ttl {
    margin-bottom: 20px;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .history-data {
    border-radius: 5px;
  }
  .history-data + .history-data {
    margin-top: 10px;
  }
  .history-data-ttl label {
    padding: 10px 20px;
    font-size: 1.4rem;
  }
  .history-data-ttl label span {
    right: 20px;
    width: 15px;
    height: 15px;
  }
  .history-data-ttl label span::before {
    right: 0px;
    width: 15px;
    height: 2px;
    border-radius: 1px;
  }
  .history-data-ttl label span::after {
    width: 2px;
    height: 15px;
    border-radius: 1px;
  }
  .history-data-list dl {
    margin: 0 20px;
    padding: 0 0;
  }
  .history-data-list dl .history-data-row {
    grid-template-columns: 1fr;
    padding: 10px 0;
    gap: 5px;
  }
  .history-data-list dl .history-data-row .history-data-year {
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .history-data-list dl .history-data-row .history-data-year span {
    display: block;
    width: 5.2em;
    white-space: nowrap;
  }
  .history-data-list dl .history-data-row .history-data-desc {
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .information-access {
    padding: 40px 18px;
  }
  .information-access-inner {
    padding: 0;
  }
  .information-access-ttl {
    margin-bottom: 20px;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .information-access-data h3 {
    padding: 10px 20px;
    font-size: 1.4rem;
  }
  .information-access-data-inner {
    flex-direction: column;
    gap: 20px;
  }
  .information-access-map {
    width: 100%;
  }
  .information-access-map iframe {
    aspect-ratio: 340/260;
  }
  .information-access-desc {
    width: 100%;
  }
  .information-access-desc h4 {
    font-size: 1.4rem;
  }
  .information-access-desc .data .data__row .data__term {
    font-size: 1.2rem;
  }
  .information-access-desc .data .data__row .data__desc {
    font-size: 1.2rem;
  }
  .information-access-desc .data + h4 {
    margin-top: 20px;
  }
  .information-organigram {
    padding: 40px 18px;
  }
  .information-organigram-inner {
    padding: 0;
  }
  .information-organigram-ttl {
    margin-bottom: 30px;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .recruit-section {
    padding: 40px 18px;
  }
  .recruit-section-inner {
    padding: 0;
  }
  .recruit-section-inner + .recruit-section-inner {
    margin-top: 40px;
  }
  .recruit-section-inner .position {
    font-size: 1.8rem;
    line-height: 1.6;
  }
  .recruit-section-inner .position span {
    font-size: 1.2rem;
  }
  .recruit-section-inner .no-position {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .recruit-section-ttl {
    margin-bottom: 20px;
    font-size: 2.4rem;
    line-height: 1.6;
  }
  .recruit-site-link a {
    aspect-ratio: 678/400;
    background-image: url("../images/recruit/recruit-link-sp.png");
  }
  .recruit-site-link a .recruit-site-link-text {
    padding-top: 10vw;
    font-size: 1.8rem;
    font-size: clamp(1.8rem, 4.8vw, 3.6rem);
  }
  .recruit-site-link a .recruit-site-link-text span {
    font-size: 1rem;
    font-size: clamp(1rem, 2.6vw, 2rem);
  }
  .recruit-site-link a .view-more {
    position: absolute;
    bottom: 5vw;
    left: 50%;
    width: 200px;
    margin: 0;
    transform: translateX(-50%);
    background-position: right 19px center;
    background-size: 6px auto;
    font-size: 1.4rem;
  }
  .recruit-site-link a:hover .view-more {
    background-image: url("../images/ico-viewmore-aw.svg");
    background-color: rgba(255, 255, 255, 0.85);
    color: var(--color_violet);
  }
  .job-data {
    border-radius: 5px;
  }
  .job-data-ttl a {
    padding: 10px 40px 10px 20px;
    font-size: 1.4rem;
  }
  .job-data-ttl a span {
    right: 20px;
    width: 15px;
    height: 15px;
  }
  .job-data-ttl a span::before {
    right: 0px;
    width: 15px;
    height: 2px;
    border-radius: 1px;
  }
  .job-data-ttl a span::after {
    width: 2px;
    height: 15px;
    border-radius: 1px;
  }
  .job-data-data {
    margin: 0 20px;
  }
  .job-data-data-main {
    padding: 20px 0 40px 0;
  }
  .job-data-data-main h4 {
    padding: 10px 20px;
    font-size: 1.4rem;
  }
  .job-data-data-main dl + h4 {
    margin-top: 20px;
  }
  .job-data-data-main dl .job-data-row {
    grid-template-columns: 1fr;
  }
  .job-data-data-main dl .job-data-row + .job-data-row {
    margin-top: 10px;
  }
  .job-data-data-main dl .job-data-row .job-data-ttl {
    padding: 3px 10px;
    border-bottom: none;
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .job-data-data-main dl .job-data-row .job-data-desc {
    padding: 10px;
    border-left: solid 1px var(--color_base);
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .job-data-data-main dl .job-data-row:first-child .job-data-desc {
    border-top: none;
  }
  .job-data-data-main dl .job-data-row:last-child .job-data-ttl {
    border-bottom: none;
  }
  .job-data-data-main .how-to-apply {
    padding: 0 10px;
    font-size: 1.2rem;
    line-height: 1.6;
    text-align: left;
  }
  .job-data-data-main .apply-form-link {
    margin-top: 10px;
  }
  .job-data-data-main .apply-form-link .apply-form-desc {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .job-data-data-main .how-to-apply-note {
    padding: 20px 10px;
  }
  .job-data-data-main .how-to-apply-note p {
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .news-list {
    margin-top: 40px;
    margin-bottom: 40px;
    padding: 0 18px;
  }
  .news-list .news-list-inner {
    padding: 0;
  }
  .news-list ul li a {
    display: block;
    padding: 10px;
  }
  .news-list ul li a .date {
    padding: 0;
    font-size: 1.2rem;
  }
  .news-list ul li a .title {
    padding: 0;
    font-size: 1.4rem;
  }
  .news-list ul li a[target=_blank] .title::after {
    width: 14px;
    height: 14px;
  }
  .more-news {
    margin-top: 40px;
  }
  .news-header {
    margin-top: 40px;
    margin-right: 18px;
    margin-bottom: 30px;
    margin-left: 18px;
  }
  .news-header-ttl {
    padding-bottom: 15px;
  }
  .news-header-ttl .date {
    font-size: 1.2rem;
  }
  .news-header-ttl h1 {
    font-size: 1.8rem;
  }
  .news-article {
    margin-bottom: 40px;
    padding: 0 18px;
  }
  .news-article .news-article-inner {
    padding: 0;
  }
  .news-article-inner * + * {
    margin-top: 30px;
  }
  .news-article-inner h2 + *,
  .news-article-inner h3 + *,
  .news-article-inner h4 + *,
  .news-article-inner h5 + *,
  .news-article-inner h6 + * {
    margin-top: 15px;
  }
  .news-article-inner h2 {
    padding: 10px 15px;
    font-size: 1.4rem;
  }
  .news-article-inner h3 {
    padding: 0 15px;
    font-size: 1.4rem;
  }
  .news-article-inner h4 {
    padding: 0 15px;
    font-size: 1.2rem;
  }
  .news-article-inner h5 {
    padding: 0 15px;
    font-size: 1.2rem;
  }
  .news-article-inner h6 {
    padding: 0 15px;
    font-size: 1.2rem;
  }
  .news-article-inner p {
    padding: 0 15px;
    font-size: 1.2rem;
  }
  .news-article-inner p + p {
    margin-top: 20px;
  }
  .news-article-inner p a[target=_blank]::after {
    width: 12px;
    height: 12px;
    margin-left: 2px;
  }
  .news-article-inner p.figure img {
    width: 100%;
  }
  .inquiry-wrap {
    margin-top: 40px;
    padding-bottom: 40px;
  }
  .inquiry-inner {
    padding: 0 18px;
  }
  .privacy-policy-links {
    margin-top: 40px;
    padding: 0 18px;
  }
  .privacy-policy-links-list {
    display: block;
    width: 100%;
    padding: 15px 20px;
  }
  .privacy-policy-links-list ul {
    display: block;
    gap: 0;
  }
  .privacy-policy-links-list ul li {
    display: block;
    width: 100%;
    text-align: left;
  }
  .privacy-policy-links-list ul li.line-break {
    display: none;
  }
  .privacy-policy-links-list ul li + li:not(.line-break) {
    margin-top: 0;
    margin-left: 0;
  }
  .privacy-policy-links-list ul li a {
    display: inline-block;
    padding-right: 13px;
    background-size: 8px auto;
    font-size: 1.2rem;
    text-align: left;
  }
  .privacy-policy-links-list ul li a:hover {
    text-decoration: none;
  }
  .privacy-policy {
    margin-top: 40px;
    padding-bottom: 40px;
  }
  .privacy-policy-inner {
    padding: 0 18px;
  }
  .privacy-policy-article + .privacy-policy-article {
    margin-top: 40px;
  }
  .privacy-policy-article h2 + * {
    margin-top: 30px;
  }
  .privacy-policy-article * + h3 {
    margin-top: 30px;
  }
  .privacy-policy-article * + table {
    margin-top: 30px;
  }
  .privacy-policy-article h2 {
    padding-bottom: 5px;
    font-size: 2.4rem;
    line-height: 1.4;
  }
  .privacy-policy-article h3 {
    padding: 10px 15px;
    font-size: 1.4rem;
  }
  .privacy-policy-article p {
    padding: 0 0;
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .privacy-policy-article p + ol {
    margin-top: 30px;
  }
  .privacy-policy-article p a[target=_blank]::after {
    width: 12px;
    height: 12px;
    margin-left: 2px;
  }
  .privacy-policy-article ol {
    padding: 0 0 0 1.2em;
    font-size: 1.4rem;
  }
  .privacy-policy-article ol + p {
    margin-top: 30px;
  }
  .privacy-policy-article ol + .note {
    font-size: 1rem;
  }
  .privacy-policy-article ol li a[target=_blank]::after {
    width: 12px;
    height: 12px;
    margin-left: 2px;
  }
  .privacy-policy-article ol li ol {
    padding: 0 0 0 1.2em;
  }
  .privacy-policy-article table {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    border-right: none;
  }
  .privacy-policy-article table + * {
    margin-top: 30px;
  }
  .privacy-policy-article table tbody {
    display: block;
  }
  .privacy-policy-article table tr {
    display: block;
  }
  .privacy-policy-article table th,
  .privacy-policy-article table td {
    display: block;
    width: 100%;
    padding: 10px;
    border-right: solid 1px var(--color_base);
    border-left: solid 1px var(--color_base);
  }
  .privacy-policy-article table th {
    margin-top: 0;
    font-size: 1.4rem;
    text-align: left;
  }
  .privacy-policy-article table td {
    margin-top: 0;
    font-size: 1.4rem;
  }
  .works-detail-kv-inner {
    width: 100%;
    padding: 20px 18px 10px 18px;
  }
  .works-detail-kv-ttl {
    font-size: 1.8rem;
  }
  .works-detail-kv-ttl img {
    height: 40px;
    margin-right: 10px;
  }
  .works-detail-kv-image {
    margin-top: 10px;
  }
  .works-detail-kv-image-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .works-detail-kv-image-inner img {
    width: 100%;
  }
  .works-detail-description {
    padding: 20px 18px 0 18px;
  }
  .works-detail-description-inner {
    padding: 0;
  }
  .works-detail-description-inner h2 {
    font-size: 1.2rem;
  }
  .works-detail-description-inner p {
    font-size: 1.2rem;
  }
  .works-detail-details {
    padding: 20px 18px 40px 18px;
  }
  .works-detail-details-inner {
    padding: 0;
  }
  .works-detail-details-ttl {
    padding: 10px 20px;
    font-size: 1.4rem;
  }
  .works-detail-details-wrap {
    margin-top: 10px;
    padding: 10px;
  }
  .works-detail-details-wrap h3 {
    font-size: 1.4rem;
  }
  .works-detail-details-wrap p {
    font-size: 1.2rem;
  }
  .works-detail-details-wrap ul {
    font-size: 1.2rem;
  }
  .works-detail-details-wrap > .works-detail-link {
    margin-bottom: 10px;
  }
  .other-service-link {
    margin-top: 20px;
  }
  .other-service-link > .view-more-button a {
    font-size: 1.4rem;
  }
  .other-service-link > .view-more-button a:hover {
    background-image: url("../images/ico-aw-cg.svg");
    background-color: var(--color_white);
    color: var(--color_green);
  }
  .realoom-hero {
    padding-top: 30px;
  }
  .realoom-hero-ttl {
    padding: 0 18px;
  }
  .realoom-desc-links {
    margin-top: 40px;
    padding: 0 18px;
    gap: 30px;
  }
  .realoom-links-list {
    display: block;
    grid-row: 1/2;
    width: 100%;
    padding: 15px 20px;
  }
  .realoom-links-list ul {
    gap: 0;
  }
  .realoom-links-list ul li a {
    padding-right: 13px;
    background-size: 8px auto;
    font-size: 1.2rem;
  }
  .realoom-links-list ul li a:hover {
    text-decoration: none;
  }
  .realoom-desc-desc {
    grid-row: 2/3;
    font-size: 1.4rem;
    font-size: clamp(0.8rem, 3.2vw, 1.4rem);
    line-height: 1.6;
  }
  .realoom-type-detail {
    padding: 0 18px;
  }
  .realoom-type-detail:last-child {
    padding-bottom: 40px;
  }
  .realoom-type-detail-ttl {
    width: 100%;
  }
  .realoom-type-detail-ttl img {
    width: calc(100% - 40px);
    margin: 0 auto;
  }
  .realoom-type-detail-head:has(> :nth-child(2)) {
    flex-direction: column;
    gap: 20px;
  }
  .realoom-type-detail-image {
    width: 100%;
  }
  .realoom-type-detail-ttl-info {
    margin-top: 20px;
    padding: 10px;
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .realoom-type-detail-desc {
    margin-top: 30px;
  }
  .realoom-type-detail-desc p {
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .realoom-type-detail-desc p + p {
    margin-top: 1.6em;
  }
  .realoom-type-detail-desc p .note {
    font-size: 1rem;
  }
  .realoom-type-detail-link {
    margin-top: 16px;
  }
  .realoom-type-detail-link a {
    font-size: 1.4rem;
  }
  .notfound-hero-ttl {
    font-size: 8rem;
  }
  .notfound-hero-ttl span {
    font-size: 3.2rem;
  }
  .notfound-detail-inner {
    padding: 0 18px;
  }
  .notfound-detail-inner p {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .notfound-link {
    margin-top: 60px;
    padding-bottom: 60px;
  }
  .notfound-link-desc {
    padding: 0 18px;
  }
  .notfound-link-desc p {
    font-size: 1.2rem;
  }
  .notfound-link-button {
    margin-top: 20px;
  }
}
@media (max-width: 399.98px){
  .realoom-detail-desc-desc {
    font-size: 1.2rem;
  }
}
@media (max-width: 379.98px){
  .realoom-detail-link a {
    padding: 20px 36px 20px 14px;
    background-position: right 14px center;
    font-size: 1.2rem;
  }
  .works-detail-link a {
    padding: 20px 36px 20px 14px;
    background-position: right 14px center;
    font-size: 1.2rem;
  }
  .information-links-list {
    padding: 15px 15px;
  }
  .information-links-list ul li a {
    font-size: 1.1rem;
  }
  .privacy-policy-links-list {
    padding: 15px 15px;
  }
  .privacy-policy-links-list ul li a {
    font-size: 1.1rem;
  }
  .realoom-links-list {
    padding: 15px 15px;
  }
  .realoom-links-list ul li a {
    font-size: 1.1rem;
  }
}
@media (max-width: 339.98px){
  .realoom-detail-desc-desc {
    font-size: 1rem;
  }
}
@media (max-width: 329.98px){
  .realoom-detail-link a {
    font-size: 1rem;
  }
  .works-detail-link a {
    font-size: 1rem;
  }
  .information-links-list ul li a {
    font-size: 1rem;
  }
  .privacy-policy-links-list ul li a {
    font-size: 1rem;
  }
  .realoom-links-list ul li a {
    font-size: 1rem;
  }
}
@media (max-width: 319.98px){
  .works-desc-item .works-desc-item-cover .works-desc-item-ttl {
    font-size: 0.8rem;
  }
  .works-desc-category .works-desc-category-cover .works-desc-category-ttl {
    font-size: 0.8rem;
  }
  .top-recruit-content .top-recruit-desc {
    font-size: 1.4rem;
  }
  .top-recruit-content .top-recruit-link {
    margin-top: clamp(30px, 6vw, 50px);
  }
  .top-recruit-content .top-recruit-link {
    margin-top: 15px;
  }
  .recruit-site-link a .view-more {
    width: 160px;
  }
  .other-service-link > .view-more-button a {
    font-size: 1.2rem;
  }
}
@media (max-width: 309.98px){
  .realoom-links-list ul li a {
    font-size: 0.8rem;
  }
}
@media (max-width: 299.98px){
  .works-desc-item .works-desc-item-cover .works-desc-item-ttl {
    font-size: 0.7rem;
  }
  .works-desc-category .works-desc-category-cover .works-desc-category-ttl {
    font-size: 0.7rem;
  }
  .realoom-detail-link a {
    font-size: 0.8rem;
  }
  .works-detail-link a {
    font-size: 0.8rem;
  }
}
@media (hover: hover){
  .works-desc-category:hover .works-desc-category-cover {
    background-color: var(--color_violet);
  }
}
@media (hover: hover) and (pointer: fine){
  .information-access-desc .data .data__row .data__desc a[href^="tel:"] {
    pointer-events: none;
  }
}