@charset "UTF-8";

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

/* ===============================
pg_mv
=============================== */
.pg_mv {
  position: relative;
  display: flex;
  aspect-ratio: 1200 / 596;
  background-color: oklch(0% 0 0 / 0.1);
  color: #fff;
  overflow: hidden;
}
.pg_mv_item {
  display: grid;
  place-content: center;
  place-items: center;
  width: 25%;
  writing-mode: vertical-rl;
  font-size: max(calc(21 / 16 * 1rem), 1.75vw);
  line-height: 2.14;
  background-color: var(--color_base);
}
.pg_mv_text > span {
  display: block;
  letter-spacing: 0.15em;
}
.pg_mv_text .text_combine {
  display: inline-block;
  margin-bottom: 0.2em;
  text-combine-upright: all;
}
.pg_mv_gallery_wrap {
  contain: content;
  position: relative;
  width: 75%;
  overflow: hidden;
}
.pg_my_gallery {
  display: block;
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  will-change: transform;
  contain: paint;
}
.pg_my_gallery_strip {
  display: flex;
  gap: 0;
  width: 100%;
}
.pg_mv_gallery_item {
  flex: 0 0 50%;
  max-width: 50%;
}
.pg_mv_gallery_item img {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: auto;
}
@supports (-webkit-hyphens: none) {
  .pg_mv_text { transform: translateX(-0.45em); }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_mv {
    display: block;
    aspect-ratio: 320 / 542;
  }
  .pg_mv_item {
    position: absolute;
    inset: 0;
    width: 39.063%;
    height: 90%;
    margin: auto;
    font-size: max(calc(19 / 16 * 1rem), 5.938vw);
    z-index: 2;
  }
  .pg_mv_text span {
    display: block;
  }
  .pg_mv_gallery_wrap {
    width: 100%;
  }
}

/* ===============================
pg_intro
=============================== */
.pg_intro {
  width: 100%;
  padding: calc(106 / 16 * 1rem) 0;
  min-height: calc(720 / 16 * 1rem);
}
.pg_intro_item {
  text-align: center;
}
.pg_intro_title {
  margin-bottom: 1.8em;
  font-size: calc(25 / 16 * 1rem);
  letter-spacing: 0.2em;
  line-height: 1.8;
  font-weight: 700;
}
.pg_intro_item p {
  letter-spacing: 0.05em;
  line-height: 2;
}
.pg_intro_item p + p {
  margin-top: 2em;
}

/* PC調整 ------------------ */
@media (min-width:769px), print {
  .pg_intro {
    background: url(../../img/top/intro_bg_pc.jpg) no-repeat center center / cover;
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_intro {
    min-height: calc(544 / 16 * 1rem);
    padding: calc(40 / 16 * 1rem) 0;
    background: url(../../img/top/intro_bg_sp.jpg) no-repeat center 0 / calc(768 / 16 * 1rem) calc(544 / 16 * 1rem);
  }
  .pg_intro_item {
    width: fit-content;
    margin: 0 auto;
    text-align: left;
  }
  .pg_intro_title {
    margin-bottom: 1.3em;
    font-size: calc(22.14 / 16 * 1rem);
    letter-spacing: 0.18em;
    line-height: 1.3;
  }
  .pg_intro_item p {
    text-align: left;
    letter-spacing: 0.03em;
    line-height: 1.42;
  }
  .pg_intro_item p + p {
    margin-top: 1.45em;
  }
}

/* ===============================
pg_bnr_header
=============================== */
.pg_bnr_header {
  display: flex;
  background-color: oklch(0% 0 0);
  color: oklch(100% 0 0);
}
.pg_bnr_header_detail {
  width: 45.3%;
  padding: max(4.25rem, calc(5.667 * var(--vw1))) max(5rem, calc(6.667 * var(--vw1)));
}
.pg_bnr_header_img {
  width: 54.7%;
}
.pg_bnr_header_img img {
  display: block;
  width: 100%;
  height: auto;
}
.pg_bnr_header_category {
  font-size: calc(21 / 16 * 1rem);
  letter-spacing: 0.2em;
}
.pg_bnr_header_category span {
  display: block;
}
.pg_bnr_header_category .en {
  margin-top: 0.2em;
  line-height: 1.5;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_bnr_header {
    display: block;
  }
  .pg_bnr_header_detail {
    display: grid;
    align-items: center;
    width: auto;
    min-height: calc(186 / 16 * 1rem);
    padding: calc(20 / 16 * 1rem) calc(30 / 16 * 1rem);
  }
  .pg_bnr_header_img {
    width: auto;
  }
}

/* ===============================
pg_title / pg_button_more
=============================== */
.pg_title {
  margin-bottom: calc(50 / 16 * 1rem);
  padding: var(--leading_trim) 0 var(--leading_trim) 0.2em;
  font-size: calc(21 / 16 * 1rem);
  text-align: center;
  letter-spacing: 0.2em;
}
.pg_button_more {
  display: grid;
  place-content: center;
  width: calc(284 / 16 * 1rem);
  height: calc(56 / 16 * 1rem);
  margin: calc(50 / 16 * 1rem) auto 0;
  padding: 0 0 0 0.05em;
  font-size: calc(22 / 16 * 1rem);
  background-color: var(--color_base);
  color: oklch(100% 0 0);
  border-radius: calc(25 / 16 * 1rem);
  letter-spacing: 0.05em;
  transition: background-color .1s;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .pg_button_more:hover {
    background-color: var(--color_hover);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_title {
    margin-bottom: calc(40 / 16 * 1rem);
    font-size: calc(21 / 16 * 1rem);
  }
  .pg_button_more {
    margin-top: calc(40 / 16 * 1rem);
  }
}

/* ===============================
pg_business
=============================== */
.pg_business_inner {
  max-width: calc(1100 / 16 * 1rem);
  margin: 0 auto;
  padding: calc(50 / 16 * 1rem) 0;
}
.pg_business_lists {
  display: flex;
  justify-content: space-between;
  max-width: calc(1000 / 16 * 1rem);
  margin: 0 auto;
}
.pg_business_lists li {
  position: relative;
}
.pg_business_list_text {
  display: grid;
  align-content: center;
  position: absolute;
  top: calc(90 / 16 * 1rem);
  left: 0;
  width: calc(244 / 16 * 1rem);
  height: calc(40 / 16 * 1rem);
  padding-left: calc(20 / 16 * 1rem);
  background-color: var(--color_base);
  clip-path: polygon(90.381% 100%, 0% 100%, 0% 0%, 100% 0%);
  color: oklch(100% 0.0 0);
  font-size: calc(22 / 16 * 1rem);
}
.pg_business .pg_button_more {
  margin-top: calc(70 / 16 * 1rem);
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_business_inner {
    padding: calc(40 / 16 * 1rem) calc(15 / 16 * 1rem);
  }
  .pg_business_lists {
    display: block;
    max-width: calc(284 / 16 * 1rem);
    margin: 0 auto;
  }
  .pg_business_lists li + li {
    margin-top: calc(23 / 16 * 1rem);
  }
  .pg_business .pg_button_more {
    margin-top: calc(40 / 16 * 1rem);
  }
}

/* ===============================
md_modal_main / __business
=============================== */
.pg_business_modal_item {
  line-height: 2;
}
.pg_business_modal_item + .pg_business_modal_item {
  margin-top: 2em;
}
.pg_business_modal_lists li {
  position: relative;
  padding-left: 1em;
}
.pg_business_modal_lists li::before {
  position: absolute;
  left: 0;
  content: "・";
}
.pg_business_modal_photo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(396 / 16 * 1rem), 1fr));
  gap: calc(38 / 16 * 1rem);
  max-width: calc(830 / 16 * 1rem);
  margin: 3em auto 0;
}
.pg_business_modal_photo img {
  display: block;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_business_modal_item {
    line-height: 1.6;
  }
  .pg_business_modal_photo {
    gap: calc(10 / 16 * 1rem);
    margin-top: 2em;
  }
  .pg_business_modal_photo {
    grid-template-columns: repeat(auto-fit, minmax(calc(230 / 16 * 1rem), 1fr));
  }
}

/* ===============================
pg_projects
=============================== */
.pg_projects {
  padding: calc(50 / 16 * 1rem) 0;
}
.pg_projects .pg_bnr_header {
  margin-bottom: calc(30 / 16 * 1rem);
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_projects {
    padding-top: calc(40 / 16 * 1rem);
  }
  .pg_projects .pg_bnr_header {
    margin-bottom: calc(40 / 16 * 1rem);
  }
  .pg_projects .pg_button_more {
    margin-top: calc(40 / 16 * 1rem);
  }
}

/* ===============================
md_modal_main / __projects
=============================== */
.pg_projects_modal_column {
  display: flex;
}
.pg_projects_column_item {
  width: 50%;
  line-height: 2;
}
.pg_projects_column_title {
  margin-bottom: 2em;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_projects_modal_column {
    display: block;
    margin: 1em 0;
  }
  .pg_projects_column_item {
    width: auto;
    line-height: 1.6;
  }
  .pg_projects_column_item + .pg_projects_column_item {
    margin-top: 2em;
  }
  .pg_projects_column_title {
    margin-bottom: 1em;
  }
}

/* ===============================
pg_products
=============================== */
.pg_products {
  padding: calc(50 / 16 * 1rem) 0;
}
.pg_products .pg_bnr_header {
  margin-bottom: calc(30 / 16 * 1rem);
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_products {
    padding-top: calc(40 / 16 * 1rem);
  }
  .pg_products .pg_bnr_header {
    margin-bottom: calc(40 / 16 * 1rem);
  }
  .pg_products .pg_button_more {
    margin-top: calc(40 / 16 * 1rem);
  }
}

/* ===============================
md_modal_main / __products
=============================== */
.pg_projects_modal_contents {
  position: relative;
  padding-bottom: calc(40 / 16 * 1rem);
}
.pg_projects_modal_contents p + p {
  margin-top: 2em;
}
.pg_projects_modal_title_sub {
  margin-top: 2em;
}
.pg_projects_modal_img {
  position: absolute;
  right: 0;
  bottom: 0;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_projects_modal_contents {
    padding-bottom: 0;
  }
  .pg_projects_modal_img {
    position: static;
    margin: calc(15 / 16 * 1rem) auto 0;
    max-width: calc(253 / 16 * 1rem);
  }
}

/* ===============================
pg_company
=============================== */
.pg_company {
  padding: calc(50 / 16 * 1rem) 0;
}
.pg_company_column {
  display: flex;
  justify-content: space-between;
  max-width: calc(1040 / 16 * 1rem);
  margin: 0 auto;
}
.pg_company_column_item {
  width: calc(490 / 16 * 1rem);
  padding: 0 1em;
  line-height: 2;
}
.pg_company_item + .pg_company_item {
  margin-top: 2.82em;
}
.pg_company_title {
  margin: 0 -1em 1.4em;
  padding: 0.1em 1em;
  background-color: oklch(0% 0 0);
  color: oklch(100% 0 0);
  font-size: calc(16 / 16 * 1rem);
  line-height: 1.6;
}
.pg_company_dl dt::before {
  content: "◆";
  display: inline-block;
  width: 1em;
}
.pg_company_dl dd {
  padding-left: 1em;
}
.pg_company_dl_shelf + .pg_company_dl_shelf,
.pg_company_dl dd + dd {
  margin-top: 2em;
}
.pg_company_dl_shelf.__column {
  display: flex;
}
.pg_company_dl_shelf.__column dd {
  flex: 1;
}
.pg_company_dl_shelf.__pc_mt0 {
  margin-top: 0;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_company {
    padding-top: calc(40 / 16 * 1rem);
  }
  .pg_company_column {
    display: block;
  }
  .pg_company_column_item {
    width: auto;
    padding: 0 var(--sp_space);
    line-height: 1.6;
  }
  .pg_company_column_item + .pg_company_column_item,
  .pg_company_item + .pg_company_item {
    margin-top: 2em;
  }
  .pg_company_title {
    margin: 0 calc(var(--sp_space) * -1) 1.6em;
    padding: 0.1em var(--sp_space);
  }
  .pg_company_dl dd {
    padding-left: 1em;
  }
  .pg_company_dl_shelf + .pg_company_dl_shelf,
  .pg_company_dl dd + dd {
    margin-top: 1.6em;
  }
  .pg_company_dl_shelf.__column {
    display: block;
  }
  .pg_company_dl_shelf.__pc_mt0 {
    margin-top: 2em;
  }
}

/* ===============================
pg_message
=============================== */
.pg_message {
  padding: calc(50 / 16 * 1rem) 0;
}
.pg_message_contents {
  max-width: calc(1000 / 16 * 1rem);
  margin: 0 auto;
  text-align: center;
  line-height: 2.5;
}
.pg_message_name_wrap {
  display: flex;
  justify-content: center;
}
.pg_message_name {
  margin-top: 3em;
  line-height: 1.6;
  text-align: left;
}
.pg_message_name + .pg_message_name {
  margin-left: 3em;
}
.pg_message_name_1 {
  display: block;
  margin-bottom: 0.2em;
  font-size: calc(15 / 16 * 1rem);
}
.pg_message_name_2 {
  display: block;
  margin-block: var(--leading_trim);
  padding-left: 0.1em;
  font-size: calc(26 / 16 * 1rem);
  letter-spacing: 0.1em;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_message {
    padding-top: calc(40 / 16 * 1rem);
  }
  .pg_message_contents {
    margin: 0 var(--sp_space);
    text-align: left;
    line-height: 2;
  }
  .pg_message_name {
    margin-top: 3em;
    line-height: 1.6;
    text-align: left;
  }
  .pg_message_name + .pg_message_name {
    margin-left: 2em;
  }
  .pg_message_name_2 {
    font-size: calc(24 / 16 * 1rem);
  }
}

/* ===============================
pg_strengths
=============================== */
.pg_strengths {
  padding: calc(50 / 16 * 1rem) 0;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_strengths {
    padding: calc(40 / 16 * 1rem) 0;
  }
}

/* ===============================
md_modal_main / __strengths
=============================== */
.pg_strengths_modal_contents {
  line-height: 2;
  text-align: center;
  font-weight: 500;
}
.pg_strengths_modal_title {
  margin-bottom: 1.6em;
  font-size: calc(17 / 16 * 1rem);
  padding-left: 0.4em;
  letter-spacing: 0.4em;
  font-weight: 900;
}
.pg_strengths_modal_item + .pg_strengths_modal_item {
  margin-top: 3em;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_strengths_modal_contents {
    padding-top: 1em;
    line-height: 1.6;
    text-align: left;
  }
  .pg_strengths_modal_title {
    margin-bottom: 0.6em;
    padding-left: 0.1em;
    letter-spacing: 0.1em;
  }
  .pg_strengths_modal_item + .pg_strengths_modal_item {
    margin-top: 2em;
  }
}

/* ===============================
pg_access
=============================== */
.pg_access {
  padding: calc(50 / 16 * 1rem) 0;
}
.pg_access_text {
  margin-top: -2.4em;
  text-align: center;
}
.pg_access_googlemap {
  position: relative;
  width: 100%;
  height: calc(418 / 16 * 1rem);
  margin-top: 2.7em;
}
.pg_access_googlemap iframe {
  display: block;
  width: 100%;
  height: 100%;
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_access {
    padding: calc(40 / 16 * 1rem) 0;
  }
  .pg_access_googlemap {
    position: relative;
    width: 100%;
    height: calc(418 / 16 * 1rem);
    margin-top: 2.7em;
  }
}

/* ===============================
pg_slider
=============================== */
.pg_slider {
  position: relative;
  max-width: calc(1200 / 16 * 1rem);
  margin: 0 auto;
  padding: 0 calc(50 / 16 * 1rem);
}
.pg_slider_view {
  overflow: hidden;
}
.pg_slider img {
  width: 100%;
  height: auto;
}
.pg_slide_prev,
.pg_slide_next {
  display: block;
  position: absolute;
  top: 0;
  width: calc(50 / 16 * 1rem);
  height: 100%;
  z-index: 2;
  background: url(../../img/common/slide_arrow.svg) no-repeat center center / calc(8 / 16 * 1rem) calc(23 / 16 * 1rem);
  transition: opacity .2s;
}
.pg_slide_prev {
  left: 0;
  transform: scale(-1, 1);
}
.pg_slide_next {
  right: 0;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .pg_slide_prev:hover,
  .pg_slide_next:hover {
    opacity: .6;
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768.999px) {
  .pg_slider {
    padding: 0 calc(27 / 16 * 1rem);
  }
  .pg_slide_prev,
  .pg_slide_next {
    width: calc(27 / 16 * 1rem);
  }
}