@charset "UTF-8";

/* Box sizing rules */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

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

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    -webkit-animation-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

:root {
  --zIndex: 100;
  --zIndex-header: calc(var(--zIndex) * 2);
  --zIndex-menu: calc(var(--zIndex) * 2);
  --zIndex-menuBtn: calc(var(--zIndex) * 3);
  --zIndex-logo: calc(var(--zIndex) * 4);
  --zIndex-overlay: calc(var(--zIndex) * 5);
  --hover-opacity: 0.7;
  --color-main: #f99900;
  --color-accent: #135779;
  --color-white: #fff;
  --color-black: #000;
  --color-text: #000;
  --color-text-sub: #9D9D9D;
  --color-border: #707070;
  --color-border-light: #D1D1D1;
  --background-gray: #F8F8F8;
  --fontFamily-base: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  --fontFamily-serif: "Noto Serif JP", serif;
  --fontFamily-english: "STIXGeneral", serif;
  --lineHeight-base: calc(38 / 16);
  --fontSize-base: 1.6rem;
  --fontSize-base-sp: 1.4rem;
  --fontWeight-base: 400;
  --fontWeight-regular: 400;
  --fontWeight-medium: 500;
  --fontWeight-semiBold: 600;
  --fontWeight-bold: 700;
  --fontColor-base: #000;
}

@font-face {
  font-family: "STIXGeneral";
  src: url("../../assets/font/stixgeneral-regular.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* base */
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 12rem;
}

@media screen and (max-width: 768px) {
  html {
    scroll-padding-top: 7rem;
  }
}

@media screen and (max-width: 374px) {
  html {
    font-size: 2.6666666667vw;
  }
}

body {
  font-family: var(--fontFamily-base);
  font-size: var(--fontSize-base);
  font-weight: var(--fontWeight-base);
  line-height: var(--lineHeight-base);
  color: var(--fontColor-base);
}

@media screen and (max-width: 768px) {
  body {
    font-size: var(--fontSize-base-sp);
  }
}

a {
  text-decoration: none;
}

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

ul,
ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

h2,
h3 {
  font-weight: var(--fontWeight-regular);
}

/* l-body */
.l-body.noScroll {
  overflow: hidden;
}

.l-body .lum-lightbox.lum-open {
  z-index: 9999;
}

.l-body img.lum-img {
  margin: auto;
  max-width: 100%;
}

/* l-header */
.l-header {
  height: 12rem;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgb(255, 255, 255);
  z-index: var(--zIndex-header);
}

@media screen and (max-width: 768px) {
  .l-header {
    height: 7rem;
  }
}

.l-header__inner {
  height: 100%;
  max-width: 132rem;
  padding: 0 2rem;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.l-header__logo {
  width: 29.8rem;
  position: relative;
  z-index: var(--zIndex-logo);
}

@media screen and (max-width: 1200px) {
  .l-header__logo {
    width: 20rem;
  }
}

@media screen and (max-width: 768px) {
  .l-header__logo {
    width: 17.8rem;
    margin: 0 auto;
  }
}

.l-header__logo img {
  width: 100%;
}

@media screen and (max-width: 768px) {
  .l-header__gnav {
    display: none;
  }

  .l-header__gnav.menu_isOpen {
    display: block;
    overflow-y: scroll;
    width: 100%;
    height: 100vh;
    background-color: #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: var(--zIndex-menu);
    padding: 7rem 0;
  }

  .l-header__gnav.menu_isOpen::before {
    content: "";
    display: block;
    width: 100%;
    height: 7rem;
    background: rgba(255, 255, 255, 0.8);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
  }
}

.l-header__submenuSP {
  display: none;
}

@media screen and (max-width: 768px) {
  .l-header__submenuSP {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 6.4rem;
    padding: 0 4rem;
    margin-top: 3rem;
  }
}

.l-header__btn {
  display: none;
  position: relative;
  z-index: var(--zIndex-menuBtn);
}

@media screen and (max-width: 768px) {
  .l-header__btn {
    display: block;
    position: absolute;
    top: 1.2rem;
    right: 0.8rem;
  }
}

/* l-footer */
.l-footer {
  padding: 9.6rem 0;
}

@media screen and (max-width: 768px) {
  .l-footer {
    padding: 5rem 0;
  }
}

.l-footer__inner {
  max-width: 104rem;
  padding: 0 2rem;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

@media screen and (max-width: 768px) {
  .l-footer__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

.l-footer__infoArea {
  width: 31.2rem;
  max-width: 50%;
  border-right: 1px solid var(--color-border);
}

@media screen and (max-width: 768px) {
  .l-footer__infoArea {
    padding: 0 2rem;
    width: 100%;
    max-width: 100%;
    border-right: none;
    text-align: center;
    margin-top: 6.4rem;
  }
}

@media screen and (max-width: 768px) {
  .l-footer__logo {
    max-width: 22.6rem;
    margin: 0 auto;
  }
}

.l-footer__company {
  margin-top: 2rem;
}

@media screen and (max-width: 768px) {
  .l-footer__company {
    font-size: 1.65rem;
    margin-top: 3.4rem;
  }
}

.l-footer__address {
  font-size: 1.4rem;
  line-height: 1.8571428571;
  margin-top: 0.8rem;
}

.l-footer__copyright {
  font-size: 1.2rem;
  margin-top: 4.6rem;
}

@media screen and (max-width: 768px) {
  .l-footer__copyright {
    margin-top: 2.6rem;
  }
}

.l-footer__navArea {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-left: 2rem;
}

@media screen and (max-width: 768px) {
  .l-footer__navArea {
    padding-left: 0;
  }
}

.l-footer__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 1rem 9%;
}

@media screen and (max-width: 768px) {
  .l-footer__nav {
    padding-left: 0;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 2rem 0;
  }
}

@media screen and (max-width: 768px) {
  .l-footer__nav>ul {
    width: 50%;
  }
}

.l-footer__banner {
  max-width: 50rem;
  margin: 3.4rem 0 0 auto;
}

@media screen and (max-width: 768px) {
  .l-footer__banner {
    padding: 0 2rem;
    margin: 5.4rem auto 0;
  }
}

/* l-inner */
.l-inner {
  width: 103.2rem;
  max-width: 100%;
  padding: 0 1.6rem;
  margin: auto;
}

@media screen and (max-width: 768px) {
  .l-inner--spNoPadding {
    padding: 0;
  }
}

/* c-site */
.c-site {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
  padding-top: 12rem;
}

@media screen and (max-width: 768px) {
  .c-site {
    padding-top: 7rem;
  }
}

.c-site__main {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

/* c-gnav*/
@media screen and (max-width: 768px) {
  .c-gnav {
    padding: 0 4rem;
  }
}

.c-gnav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 6.5rem;
}

@media screen and (max-width: 1200px) {
  .c-gnav__list {
    gap: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .c-gnav__list {
    display: block;
  }
}

@media screen and (max-width: 768px) {
  .c-gnav__item {
    border-bottom: 1px solid rgba(0, 0, 0, 0.27);
  }
}

.c-gnav__link {
  display: block;
  font-size: clamp(1.2rem, 1.6vw, 1.6rem);
  font-family: var(--fontFamily-serif);
  color: var(--fontColor-base);
  position: relative;
}

@media screen and (max-width: 768px) {
  .c-gnav__link {
    font-family: var(--fontFamily-base);
    font-size: 1.4rem;
    padding: 1.7rem 3rem 1.7rem 2rem;
  }

  .c-gnav__link::after {
    content: "";
    display: block;
    width: 0.45rem;
    height: 1rem;
    background: url(../../assets/images/common/arrow_menu_sp.svg) no-repeat center center/contain;
    position: absolute;
    right: 2rem;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
  }
}

.c-gnav__link::before {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-border);
  position: absolute;
  bottom: 0;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  -webkit-transform: scale(0, 1);
  transform: scale(0, 1);
  -webkit-transform-origin: left top;
  transform-origin: left top;
}

@media (hover: hover) and (pointer: fine) {
  .c-gnav__link:hover::before {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
  }
}

@media (-ms-high-contrast: none),
(-ms-high-contrast: active) {
  .c-gnav__link:hover::before {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
  }
}

.c-gnav__item {
  position: relative;
}

.c-gnav__item:hover .c-gnav__megamenu {
  opacity: 1;
  visibility: visible;
}

.c-gnav__megamenu {
  width: 25rem;
  position: absolute;
  left: 0;
  top: 7.8rem;
  margin: auto;
  -webkit-transition: opacity 0.3s, visibility 0.3s;
  transition: opacity 0.3s, visibility 0.3s;
  visibility: hidden;
  opacity: 0;
}

@media screen and (max-width: 768px) {
  .c-gnav__megamenu {
    width: 100%;
    position: initial;
    opacity: 1;
    visibility: visible;
    border-top: 1px solid rgba(0, 0, 0, 0.27);
  }
}

/* c-megamenu*/
.c-megamenu {
  padding: 2.4rem 2.4rem 2.4rem 4rem;
  background-color: #fff;
  -webkit-box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
  box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
}

@media screen and (max-width: 768px) {
  .c-megamenu {
    background-color: transparent;
    -webkit-box-shadow: none;
    box-shadow: none;
    padding: 0 0 0 2rem;
  }
}

.c-megamenu__item:not(:last-child) {
  margin-bottom: 1rem;
}

@media screen and (max-width: 768px) {
  .c-megamenu__item:not(:last-child) {
    margin-bottom: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.27);
  }
}

.c-megamenu__link {
  display: block;
  font-family: var(--fontFamily-serif);
  color: var(--fontColor-base);
  padding-left: 2.2rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .c-megamenu__link {
    font-size: 1.4rem;
    padding-left: 2.4rem;
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
  }

  .c-megamenu__link::after {
    content: "";
    display: block;
    width: 0.45rem;
    height: 1rem;
    background: url(../../assets/images/common/arrow_menu_sp.svg) no-repeat center center/contain;
    position: absolute;
    right: 2rem;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
  }
}

.c-megamenu__link::before {
  content: "";
  display: block;
  width: 1.4rem;
  height: 1.1rem;
  background: url(../../assets/images/common/arrow_submenu.svg) no-repeat center center/contain;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}

@media screen and (max-width: 768px) {
  .c-megamenu__link::before {
    content: "–";
    width: initial;
    height: initial;
    background: none;
    top: initial;
    left: 1.2rem;
    -webkit-transform: none;
    transform: none;
  }
}

.c-megamenu__link:hover::before {
  -webkit-transform: translateY(-50%) translateX(5px);
  transform: translateY(-50%) translateX(5px);
}

/* c-submenu*/
.c-submenu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

@media screen and (max-width: 768px) {
  .c-submenu__item:not(:last-child) {
    margin-bottom: 0.6rem;
  }
}

.c-submenu__link {
  display: block;
  color: var(--fontColor-base);
  font-family: var(--fontFamily-serif);
  font-size: 1.2rem;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .c-submenu__link {
    font-family: var(--fontFamily-base);
  }
}

/* c-submenuBanner*/
.c-submenuBanner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

.c-submenuBanner--footer {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  gap: 2rem;
}

@media screen and (max-width: 768px) {
  .c-submenuBanner--footer {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

.c-submenuBanner--footer .c-submenuBanner__ttl {
  font-size: 1.2rem;
}

@media screen and (max-width: 768px) {
  .c-submenuBanner--footer .c-submenuBanner__ttl {
    font-size: 1.4rem;
    margin-top: 0.4rem;
  }
}

.c-submenuBanner__link {
  display: block;
  width: 100%;
}

.c-submenuBanner__link img {
  width: 100%;
}

.c-submenuBanner__ttl {
  font-size: 1.4rem;
  text-align: center;
}

/* c-btnMenu*/
.c-btnMenu {
  width: 5rem;
  height: 5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: none;
}

.c-btnMenu span {
  display: inline-block;
  width: 52%;
  height: 2px;
  background-color: transparent;
  position: relative;
}

.c-btnMenu span::before,
.c-btnMenu span::after {
  content: "";
  display: inline-block;
  width: 100%;
  height: 2px;
  background-color: #000;
  position: absolute;
  left: 0;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.c-btnMenu span::before {
  width: 54%;
  top: 0.4rem;
}

.c-btnMenu span::after {
  top: -0.4rem;
}

/* btnMenu_isOnがついた時のスタイル */
.c-btnMenu.btnMenu_isOn span {
  background-color: transparent;
}

.c-btnMenu.btnMenu_isOn span::before,
.c-btnMenu.btnMenu_isOn span::after {
  width: 100%;
  top: 0;
}

.c-btnMenu.btnMenu_isOn span::before {
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.c-btnMenu.btnMenu_isOn span::after {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

/* c-ttl*/
.c-ttl {
  font-family: var(--fontFamily-serif);
  font-size: 2.4rem;
  line-height: 1.2916666667;
  letter-spacing: 0.25em;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  border-right: 1px solid var(--color-text);
  padding-right: 1rem;
}

@media screen and (max-width: 768px) {
  .c-ttl {
    font-size: 1.55rem;
    padding-right: 0.4rem;
  }
}

.c-ttl--small {
  font-size: 1.8rem;
}

@media screen and (max-width: 768px) {
  .c-ttl--small {
    font-size: 1.4rem;
  }
}

/* c-btn */
.c-btn {
  display: inline-block;
  color: var(--fontColor-base);
  font-family: var(--fontFamily-serif);
  letter-spacing: 0.02em;
  font-size: 1.8rem;
  padding-right: 3rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .c-btn {
    font-size: 1.4rem;
    padding-right: 2rem;
  }
}

.c-btn:hover::after {
  -webkit-transform: translateY(-50%) translateX(10px);
  transform: translateY(-50%) translateX(10px);
}

.c-btn::after {
  content: "";
  display: block;
  width: 2.1rem;
  height: 2.1rem;
  background: url(../../assets/images/common/arrow_linkCard.png) no-repeat center center/contain;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

@media screen and (max-width: 768px) {
  .c-btn::after {
    width: 1.7rem;
    height: 1.7rem;
  }
}

/* c-cardLink */
.c-cardLink {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  color: var(--fontColor-base);
  gap: 1.8rem;
}

@media screen and (max-width: 768px) {
  .c-cardLink {
    gap: 1.2rem;
  }
}

.c-cardLink:hover {
  opacity: var(--hover-opacity);
}

.c-cardLink:hover .c-cardLink__imgWrap img {
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
}

@media screen and (max-width: 768px) {
  .c-cardLink--large {
    gap: 0.8rem;
  }
}

@media screen and (max-width: 768px) {
  .c-cardLink--large .c-cardLink__body {
    text-align: center;
    padding-right: 0;
  }
}

@media screen and (max-width: 768px) {
  .c-cardLink--large .c-cardLink__body::after {
    width: 1.8rem;
    height: 1.8rem;
    top: 0.4rem;
    right: 0.6rem;
  }
}

@media screen and (max-width: 768px) {
  .c-cardLink--large .c-cardLink__ttl {
    font-size: 1.45rem;
  }
}

@media screen and (max-width: 768px) {
  .c-cardLink--large .c-cardLink__txt {
    line-height: 1.2;
    font-size: 1rem;
  }
}

.c-cardLink--linkTarget .c-cardLink__body::after {
  width: 2.3rem;
  height: 2.3rem;
  background: url(../../assets/images/common/i_target.svg) no-repeat center center/contain;
}

@media screen and (max-width: 768px) {
  .c-cardLink--linkTarget .c-cardLink__body::after {
    width: 1.2rem;
    height: 1.2rem;
    top: 0.6rem;
  }
}

.c-cardLink__imgWrap {
  aspect-ratio: 296/172;
  overflow: hidden;
}

.c-cardLink__imgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.c-cardLink__body {
  position: relative;
  padding-right: 2.8rem;
}

.c-cardLink__body::after {
  content: "";
  display: block;
  width: 2.7rem;
  height: 2.7rem;
  background: url(../../assets/images/common/arrow_linkCard.png) no-repeat center center/contain;
  position: absolute;
  right: 0;
  top: 0;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

@media screen and (max-width: 768px) {
  .c-cardLink__body::after {
    top: 0.8rem;
  }
}

.c-cardLink__ttl {
  font-family: var(--fontFamily-serif);
  font-size: 2.15rem;
  letter-spacing: 0.08em;
  line-height: 1.7391304348;
}

.c-cardLink__txt {
  color: var(--color-text-sub);
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  padding-left: 0.6rem;
}

/* c-swiperInfinite */
.c-swiperInfinite__wrapper {
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
}

/* c-cardNews */
.c-cardNews {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  color: var(--fontColor-base);
}

.c-cardNews:hover {
  opacity: var(--hover-opacity);
}

.c-cardNews:hover .c-cardNews__imgWrap img {
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
}

.c-cardNews__imgArea {
  width: 19rem;
  max-width: 25.3333333333vw;
}

.c-cardNews__imgWrap {
  aspect-ratio: 190/120;
  overflow: hidden;
}

.c-cardNews__imgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.c-cardNews__body {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 2rem 3rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .c-cardNews__body {
    padding: 0 2rem 0 1.5rem;
  }
}

.c-cardNews__body::after {
  content: "";
  display: block;
  width: 2.7rem;
  height: 2.7rem;
  background: url(../../assets/images/common/arrow_linkCard.png) no-repeat center center/contain;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

@media screen and (max-width: 768px) {
  .c-cardNews__body::after {
    width: 1.8rem;
    height: 1.8rem;
  }
}

.c-cardNews__date {
  font-size: 1.4rem;
}

@media screen and (max-width: 768px) {
  .c-cardNews__ttl {
    font-size: 1.2rem;
    line-height: 1.2;
  }
}

/* c-btnContact */
.c-btnContact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 1.2rem;
  font-family: var(--fontFamily-serif);
  background: var(--color-white);
  color: var(--color-black);
  padding: 2rem;
  letter-spacing: 0.1em;
  position: relative;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.c-btnContact::before {
  content: "";
  display: block;
  width: 2.2rem;
  height: 1.7rem;
  background: url(../../assets/images/common/i_mail.svg) no-repeat center center/contain;
}

.c-btnContact:hover {
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
  opacity: var(--hover-opacity);
}

/* c-footerNav */
@media screen and (max-width: 768px) {
  .c-footerNav {
    padding-left: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .c-footerNav__item:not(:last-child) {
    margin-bottom: 0.4rem;
  }
}

.c-footerNav__link {
  display: block;
  font-size: 1.4rem;
  color: var(--fontColor-base);
  line-height: 2;
}

/* c-bread */
.c-bread {
  padding: 3.2rem 0;
}

@media screen and (max-width: 768px) {
  .c-bread {
    padding: 0.4rem 0;
  }
}

.c-bread__inner {
  max-width: 132rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.c-bread__list {
  text-align: right;
}

.c-bread__item {
  display: inline-block;
}

.c-bread__item:not(:last-child)::after {
  content: "/";
  margin-left: 0.6rem;
}

.c-bread a,
.c-bread span {
  display: inline-block;
  font-size: 1.3rem;
  color: var(--fontColor-base);
  font-weight: var(--fontWeight-medium);
  line-height: 2;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

@media screen and (max-width: 768px) {

  .c-bread a,
  .c-bread span {
    font-size: 1.2rem;
  }
}

.c-bread a:hover {
  text-decoration: underline;
  opacity: var(--hover-opacity);
}

/* c-step */
.c-step__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 3.2rem;
}

@media screen and (max-width: 768px) {
  .c-step__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 3.4rem;
  }
}

.c-step__header {
  max-width: 44rem;
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.c-step__num {
  font-family: var(--fontFamily-english);
  font-size: 2.4rem;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: capitalize;
}

@media screen and (max-width: 768px) {
  .c-step__num {
    font-size: 1.55rem;
  }
}

.c-step__ttl {
  font-family: var(--fontFamily-serif);
  font-size: 2.5rem;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
  .c-step__ttl {
    font-size: 2.1rem;
    line-height: 1.5238095238;
  }
}

.c-step__txt {
  line-height: 1.875;
  margin-top: 2.8rem;
}

@media screen and (max-width: 768px) {
  .c-step__txt {
    line-height: 1.75;
    margin-top: 1.4rem;
  }
}

.c-step__swiperArea {
  width: 48.4rem;
  max-width: 50%;
  padding-bottom: 3.6rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .c-step__swiperArea {
    width: 100%;
    max-width: 100%;
    padding-bottom: 2.2rem;
  }
}

.c-step__swiper {
  padding: 0.8rem 0;
  background-color: #fff;
  border: 1px solid var(--color-border);
}

@media screen and (max-width: 768px) {
  .c-step__swiper {
    padding: 0.5rem 0;
  }
}

.c-step__imgItem {
  padding: 0 0.8rem;
  aspect-ratio: 466/305;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .c-step__imgItem {
    padding: 0 0.5rem;
  }
}

.c-step__imgItem img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.c-step__pagination {
  font-family: var(--fontFamily-english);
  text-align: right;
  top: auto;
  bottom: -0.6rem;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 768px) {
  .c-step__pagination {
    font-size: 1.1rem;
    bottom: -0.4rem;
  }
}

.c-step__next,
.c-step__prev {
  width: 7.2rem;
  height: 1rem;
  top: auto !important;
  bottom: 0.5rem !important;
  right: auto;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  font-size: 1.7rem;
  font-family: var(--fontFamily-english);
  color: var(--color-text);
  text-transform: capitalize;
  line-height: 1;
}

@media screen and (max-width: 768px) {

  .c-step__next,
  .c-step__prev {
    width: 4.3rem;
    font-size: 1rem;
  }
}

.c-step__next::before,
.c-step__next::after,
.c-step__prev::before,
.c-step__prev::after {
  content: "";
  display: block;
  width: 2.4rem;
  height: 0.6rem;
  position: relative;
  top: -0.3rem;
}

@media screen and (max-width: 768px) {

  .c-step__next::before,
  .c-step__next::after,
  .c-step__prev::before,
  .c-step__prev::after {
    width: 1.5rem;
    height: 0.4rem;
    top: -0.1rem;
  }
}

.c-step__prev {
  left: 0;
}

.c-step__prev::before {
  background: url(../../assets/images/about/i_prev.svg) no-repeat center center/contain;
}

.c-step__prev::after {
  display: none;
}

.c-step__next {
  left: 11.2rem !important;
}

@media screen and (max-width: 768px) {
  .c-step__next {
    left: 6.8rem !important;
  }
}

.c-step__next::after {
  background: url(../../assets/images/about/i_next.svg) no-repeat center center/contain;
}

.c-step__next::before {
  display: none;
}

.c-step .swiper-navigation-icon {
  display: none;
}

/* p-mv */
.p-mv__inner {
  max-width: 132rem;
  padding: 0 2rem;
  margin: 0 auto;
}

.p-mv__img {
  aspect-ratio: 1280/792;
}

@media screen and (max-width: 768px) {
  .p-mv__img {
    aspect-ratio: 675/854;
  }
}

.p-mv__img img,
.p-mv__img picture {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-mv .swiper-slide-active .p-mv__img,
.p-mv .swiper-slide-duplicate-active .p-mv__img,
.p-mv .swiper-slide-prev .p-mv__img {
  -webkit-animation: zoomUp 7s linear 0s normal both;
  animation: zoomUp 7s linear 0s normal both;
}

@-webkit-keyframes zoomUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
}

@keyframes zoomUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
}

/* p-lead */
.p-lead {
  padding: 8rem 0 13.8rem;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-lead {
    padding: 3.6rem 0 9rem;
  }
}

.p-lead__inner {
  position: relative;
}

.p-lead__ttl {
  font-family: var(--fontFamily-serif);
  font-size: 4.2rem;
  text-align: center;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .p-lead__ttl {
    font-size: 2.1rem;
  }
}

.p-lead__txt {
  text-align: center;
  margin-top: 2rem;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .p-lead__txt {
    line-height: 2;
    margin-top: 1rem;
    padding: 0 2rem;
  }
}

.p-lead__imgItem {
  position: absolute;
  top: 0;
}

@media screen and (max-width: 768px) {
  .p-lead__imgItem {
    position: relative;
  }
}

.p-lead__imgItem--01 {
  width: 22.5rem;
  height: 26.9rem;
  left: -20rem;
  top: 3.4rem;
}

.p-lead__imgItem--02 {
  width: 18.6rem;
  height: 13.7rem;
  top: 32rem;
  left: 6.2rem;
}

.p-lead__imgItem--03 {
  width: 13.1rem;
  height: 13.5rem;
  top: 27rem;
  right: 11rem;
}

.p-lead__imgItem--04 {
  width: 22.5rem;
  height: 20.9rem;
  right: -11.2rem;
  top: -1rem;
}

.p-lead__imgItem--05 {
  width: 18.3rem;
  height: 12.1rem;
  top: 32rem;
  right: -16.2rem;
}

.p-lead__imgItem img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-lead__decoSp {
  max-width: 32rem;
  margin: 6.4rem auto 0;
}

.p-lead__decoSp img {
  width: 100%;
}

.p-lead__linkArea {
  margin-top: 22rem;
}

@media screen and (max-width: 768px) {
  .p-lead__linkArea {
    margin-top: 6.2rem;
    padding: 0 2rem;
  }
}

.p-lead__linkList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 5.6%;
}

@media screen and (max-width: 768px) {
  .p-lead__linkList {
    grid-template-columns: repeat(1, 1fr);
    gap: 4rem;
  }
}

/* p-company */
.p-company {
  padding: 12.6rem 0 9rem;
  background: var(--background-gray);
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-company {
    padding: 4.6rem 0 7rem;
  }
}

.p-company__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 2rem;
  position: relative;
  padding-right: 2rem;
}

@media screen and (max-width: 768px) {
  .p-company__header {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 4rem;
    padding: 0 2rem;
  }
}

.p-company__deco {
  position: absolute;
  top: -2.8rem;
  right: calc(50% - 63rem);
  z-index: 1;
}

@media screen and (max-width: 1180px) {
  .p-company__deco {
    width: 28rem;
    right: 0;
  }
}

@media screen and (max-width: 768px) {
  .p-company__deco {
    top: 1.2rem;
  }
}

.p-company__txtArea {
  max-width: 80rem;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .p-company__txtArea {
    max-width: 50rem;
    margin-left: auto;
    margin-right: auto;
  }
}

.p-company__subTtl {
  font-family: var(--fontFamily-serif);
  font-size: 3.6rem;
  letter-spacing: 0.09em;
  line-height: 1.75;
}

@media screen and (max-width: 768px) {
  .p-company__subTtl {
    font-size: 2.1rem;
    letter-spacing: initial;
    text-align: center;
  }
}

.p-company__txt {
  margin-top: 1rem;
}

@media screen and (max-width: 768px) {
  .p-company__txt {
    line-height: 2;
    margin-top: 2.8rem;
  }
}

.p-company__body {
  margin-top: 10rem;
}

@media screen and (max-width: 768px) {
  .p-company__body {
    margin-top: 6rem;
  }
}

.p-company__linkList {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5.2rem 11.2%;
}

@media screen and (max-width: 768px) {
  .p-company__linkList {
    gap: 3.2rem 1.0666666667vw;
  }
}

.p-company__footer {
  margin-top: 12.2rem;
}

@media screen and (max-width: 768px) {
  .p-company__footer {
    margin-top: 7rem;
  }
}

/* p-news */
.p-news {
  padding: 20.4rem 0 9.6rem;
  position: relative;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-news {
    padding: 7rem 0 8rem;
  }
}

.p-news__deco {
  position: absolute;
  top: 12rem;
  right: calc(50% - 63rem);
  z-index: 1;
}

@media screen and (max-width: 1180px) {
  .p-news__deco {
    width: 16rem;
    right: 2.2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-news__deco {
    top: 8rem;
  }
}

.p-news__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@media screen and (max-width: 768px) {
  .p-news__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

.p-news__header {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-top: 2.8rem;
}

@media screen and (max-width: 768px) {
  .p-news__header {
    padding-top: 0;
    padding-left: 2rem;
  }
}

.p-news__body {
  width: 73rem;
  max-width: calc(100% - 14rem);
}

@media screen and (max-width: 768px) {
  .p-news__body {
    width: 100%;
    max-width: 100%;
    margin-top: 3rem;
  }
}

.p-news__item {
  padding: 2rem 0;
}

@media screen and (max-width: 768px) {
  .p-news__item {
    padding: 1rem 0;
  }
}

.p-news__item:not(:last-child) {
  border-bottom: 1px solid var(--color-border-light);
}

.p-news__btnArea {
  text-align: right;
  margin-top: 3.8rem;
}

@media screen and (max-width: 768px) {
  .p-news__btnArea {
    margin-top: 2.4rem;
  }
}

/* p-recruit */
.p-recruit {
  padding: 14.6rem 0 11.6rem;
  background: var(--background-gray);
  position: relative;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-recruit {
    padding: 8rem 0;
  }
}

.p-recruit__decoTxt {
  position: absolute;
  width: 24.3rem;
  top: 9rem;
  right: 0;
}

@media screen and (max-width: 768px) {
  .p-recruit__header .c-ttl {
    padding-left: 2rem;
  }
}

.p-recruit__subTtl {
  max-width: 30rem;
  margin-left: 25rem;
  font-family: var(--fontFamily-serif);
  font-size: 3.6rem;
  letter-spacing: 0.02em;
  line-height: 1.75;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .p-recruit__subTtl {
    max-width: 100%;
    font-size: 2.1rem;
    line-height: 1.5476190476;
    text-align: center;
    margin-left: initial;
  }
}

.p-recruit__txt {
  line-height: 1.75;
  max-width: 38.5rem;
  margin-left: 22rem;
  margin-top: 3rem;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .p-recruit__txt {
    max-width: 50rem;
    margin: 2rem auto 0;
    line-height: 2;
    padding: 0 2rem;
  }
}

.p-recruit__deco {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.p-recruit__deco--01 {
  width: 19.2rem;
  top: 36rem;
  left: calc(50% - 52rem);
}

@media screen and (max-width: 1080px) {
  .p-recruit__deco--01 {
    left: 0;
  }
}

.p-recruit__deco--02 {
  width: 32.3rem;
  top: 24rem;
  left: calc(50% + 16rem);
}

.p-recruit__deco--03 {
  width: 13.4rem;
  top: 53rem;
  left: calc(50% + 20rem);
}

.p-recruit__deco img {
  width: 100%;
}

.p-recruit__decoSp {
  max-width: 33.2rem;
  padding: 0 2rem;
  margin: 2.8rem auto 0;
}

.p-recruit__body {
  margin-top: 19rem;
}

@media screen and (max-width: 768px) {
  .p-recruit__body {
    margin-top: 6rem;
  }
}

.p-recruit__linkList {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5.2rem 11.2%;
}

@media screen and (max-width: 768px) {
  .p-recruit__linkList {
    gap: 6.2rem 1.0666666667vw;
  }
}

/* p-contact */
.p-contact {
  font-family: var(--fontFamily-serif);
  color: var(--color-white);
  background: url(../../assets/images/common/contact_bg.jpg) no-repeat center center/cover;
  position: relative;
  padding: 13rem 0 20rem;
}

@media screen and (max-width: 768px) {
  .p-contact {
    padding: 6rem 0;
    background-image: url(../../assets/images/common/contact_bg_sp.jpg);
  }
}

.p-contact::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.37);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.p-contact__inner {
  position: relative;
  z-index: 2;
}

.p-contact__deco {
  text-align: center;
}

@media screen and (max-width: 768px) {
  .p-contact__deco {
    max-width: 17.2rem;
    margin: 0 auto;
  }
}

.p-contact__deco img {
  margin: auto;
}

.p-contact__ttl {
  font-family: var(--fontFamily-serif);
  font-size: 1.7rem;
  text-align: center;
  margin-top: 2.6rem;
}

@media screen and (max-width: 768px) {
  .p-contact__ttl {
    font-size: 1.2rem;
    margin-top: 1rem;
  }
}

.p-contact__body {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 8.2rem;
}

@media screen and (max-width: 768px) {
  .p-contact__body {
    grid-template-columns: repeat(1, 1fr);
    margin-top: 3rem;
  }
}

.p-contact__telArea {
  text-align: center;
  position: relative;
}

.p-contact__telArea::after {
  content: "";
  display: block;
  width: 1px;
  height: 88%;
  background: #fff;
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

@media screen and (max-width: 768px) {
  .p-contact__telArea::after {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .p-contact__telTtl {
    font-size: 1.6rem;
    letter-spacing: 0.02em;
  }
}

.p-contact__tel {
  min-height: 7.8rem;
  width: 29.6rem;
  max-width: 100%;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  font-size: 3.6rem;
  letter-spacing: 0.02em;
  font-weight: var(--fontWeight-bold);
  line-height: 1.75;
  margin-top: 1.2rem;
}

@media screen and (max-width: 768px) {
  .p-contact__tel {
    min-height: initial;
    font-size: 4rem;
    line-height: 1.2;
  }
}

@media screen and (max-width: 768px) {
  .p-contact__time {
    font-size: 1.65rem;
  }
}

.p-contact__mailArea {
  text-align: center;
}

@media screen and (max-width: 768px) {
  .p-contact__mailArea {
    margin-top: 5rem;
  }
}

@media screen and (max-width: 768px) {
  .p-contact__mailTtl {
    font-size: 1.6rem;
    letter-spacing: 0.02em;
  }
}

.p-contact__btnArea {
  max-width: 28rem;
  margin: 1.2rem auto 0;
}

/* p-mvUnder */
.p-mvUnder__inner {
  max-width: 140rem;
  margin: 0 auto;
  position: relative;
}

.p-mvUnder__ttlArea {
  position: absolute;
  bottom: clamp(2rem, 4.5vw, 6.3rem);
  left: 14.2857142857%;
  z-index: 1;
}

@media screen and (max-width: 768px) {
  .p-mvUnder__ttlArea {
    top: 5.8rem;
    left: 10.6666666667%;
  }
}

.p-mvUnder__ttl {
  font-family: var(--fontFamily-serif);
  font-size: 2.8rem;
  letter-spacing: 0.1em;
  padding: 1.8rem 0;
  background-color: #fff;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 768px) {
  .p-mvUnder__ttl {
    font-size: 1.4rem;
    padding: 0.9rem 0;
  }
}

.p-mvUnder__imgArea {
  aspect-ratio: 1288/511;
  margin-left: 8%;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-mvUnder__imgArea {
    aspect-ratio: 750/420;
    margin-left: 0;
  }
}

.p-mvUnder__imgArea img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/* p-factory */
.p-factory {
  position: relative;
  padding-bottom: 16.2rem;
}

@media screen and (max-width: 768px) {
  .p-factory {
    padding-bottom: 8.2rem;
  }
}

.p-factory::before {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 29rem);
  background-color: var(--background-gray);
  position: absolute;
  top: auto;
  left: 0;
  bottom: 0;
  z-index: 0;
}

@media screen and (max-width: 768px) {
  .p-factory::before {
    height: calc(100% - 16rem);
  }
}

.p-factory__header {
  max-width: calc(100% - 11.2rem);
  margin: 0 0 0 auto;
  position: relative;
  padding-top: 7rem;
}

@media screen and (max-width: 768px) {
  .p-factory__header {
    max-width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
}

.p-factory__ttl {
  position: absolute;
  top: 0;
  left: 8.4rem;
}

@media screen and (max-width: 768px) {
  .p-factory__ttl {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    position: inherit;
    top: initial;
    left: initial;
    padding-left: 2rem;
  }
}

.p-factory__imgArea {
  aspect-ratio: 1288/429;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-factory__imgArea {
    width: calc(100% - 6rem);
    aspect-ratio: 633/378;
  }
}

.p-factory__imgArea img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-factory__deco {
  position: absolute;
  bottom: -2.8rem;
  right: 6rem;
  z-index: 1;
}

@media screen and (max-width: 768px) {
  .p-factory__deco {
    max-width: 23rem;
    right: 0;
    bottom: -1.6rem;
  }
}

.p-factory__body {
  margin-top: 12.8rem;
}

@media screen and (max-width: 768px) {
  .p-factory__body {
    padding: 0 2rem;
    margin-top: 4rem;
  }
}

.p-factory__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 12.6rem;
  position: relative;
  z-index: 1;
}

@media screen and (max-width: 768px) {
  .p-factory__list {
    gap: 0;
  }
}

.p-factory__item:nth-child(even) .c-step__inner {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
}

@media screen and (max-width: 768px) {
  .p-factory__item:nth-child(even) .c-step__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}

@media screen and (max-width: 768px) {
  .p-factory__item:not(:last-child)::after {
    content: "";
    display: block;
    width: 2rem;
    height: 1.5rem;
    background: url(../../assets/images/about/i_arrow_step.svg) no-repeat center center/contain;
    margin: 4rem auto;
  }
}

/* p-tabList */
.p-tabList {
  max-width: 88rem;
  margin: 0 auto;
  list-style-type: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  -webkit-box-pack: space-btween;
  -ms-flex-pack: space-btween;
  justify-content: space-btween;
}

@media screen and (max-width: 768px) {
  .p-tabList {
    max-width: 88%;
  }
}

.p-tabList__item {
  text-align: center;
  -webkit-box-flex: 0;
  -ms-flex: 0 0 25%;
  flex: 0 0 25%;
  cursor: pointer;
  position: relative;
}

.p-tabList__item.active::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 9.6rem;
  height: 1rem;
  background-color: var(--color-black);
}

@media screen and (max-width: 768px) {
  .p-tabList__item.active::before {
    width: 4.8rem;
    height: 0.5rem;
  }
}

.p-tabList__item {
  padding-bottom: 2rem;
}

@media screen and (max-width: 768px) {
  .p-tabList__item {
    padding-bottom: 1rem;
  }
}

.p-tabList__itemTtl {
  display: block;
  font-family: var(--fontFamily-serif);
  font-size: 5.2rem;
  line-height: 1;
}

@media screen and (max-width: 768px) {
  .p-tabList__itemTtl {
    font-size: 2.6rem;
  }
}

.p-tabList__itemSubTtl {
  display: block;
  font-family: var(--fontFamily-english);
  font-size: 1.3rem;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
  .p-tabList__itemSubTtl {
    font-size: 0.6rem;
  }
}

/* p-tabContents */
.p-tabContents__item {
  display: none;
}

.p-tabContents__item.show {
  display: block;
  -webkit-animation: fadeIn 0.5s ease;
  animation: fadeIn 0.5s ease;
}

.p-tabContents__lightBoxArea {
  max-width: 100rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

@media screen and (max-width: 768px) {
  .p-tabContents__lightBoxArea {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
}

.p-tabContents__lightBoxArea .luminous {
  aspect-ratio: 327/218;
  overflow: hidden;
}

.p-tabContents__lightBoxArea .luminous img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/* p-town */
.p-town {
  padding: 12rem 0 16rem;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-town {
    padding: 7.6rem 0 11.4rem;
  }
}

.p-town__inner {
  position: relative;
}

.p-town__deco {
  width: 59.2rem;
  position: absolute;
  top: 6.4rem;
  right: -11.8rem;
  z-index: 1;
}

@media screen and (max-width: 1280px) {
  .p-town__deco {
    right: 0;
  }
}

@media screen and (max-width: 768px) {
  .p-town__deco {
    width: 30rem;
    top: 1.4rem;
  }
}

.p-town__deco img {
  width: 100%;
}

.p-town__body {
  margin-top: 10rem;
}

@media screen and (max-width: 768px) {
  .p-town__body {
    margin-top: 4rem;
  }
}

.p-town__tabArea {
  border-bottom: 1px solid var(--color-black);
}

/* p-about */
.p-about {
  padding: 1.6rem 0 20rem;
  position: relative;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-about {
    padding: 0 0 5.8rem;
  }
}

.p-about__deco {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.p-about__deco--txt {
  width: 36.7rem;
  top: 0;
  left: calc(50% + 27rem);
  z-index: 2;
}

@media screen and (max-width: 1280px) {
  .p-about__deco--txt {
    left: auto;
    right: 0;
  }
}

@media screen and (max-width: 768px) {
  .p-about__deco--txt {
    max-width: 18rem;
    right: 2rem;
  }
}

.p-about__deco--txt img {
  width: 100%;
}

.p-about__deco--01 {
  width: 15.9rem;
  top: 36.6rem;
  left: calc(50% - 58rem);
}

@media screen and (max-width: 768px) {
  .p-about__deco--01 {
    display: none;
  }
}

.p-about__deco--02 {
  width: 22.7rem;
  top: 4.2rem;
  left: calc(50% + 33rem);
}

@media screen and (max-width: 1280px) {
  .p-about__deco--02 {
    max-width: 17.734375vw;
    left: auto;
    right: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-about__deco--02 {
    display: none;
  }
}

.p-about__deco--03 {
  width: 15.1rem;
  top: 39rem;
  left: calc(50% + 35rem);
}

@media screen and (max-width: 1280px) {
  .p-about__deco--03 {
    max-width: 11.796875vw;
    top: 44rem;
    left: auto;
    right: 4rem;
  }
}

@media screen and (max-width: 768px) {
  .p-about__deco--03 {
    display: none;
  }
}

.p-about__inner {
  position: relative;
  z-index: 3;
}

.p-about__content {
  max-width: 55.4rem;
  padding-top: 1rem;
  margin-left: clamp(10rem, 11.1428571429vw, 15.6rem);
}

@media screen and (max-width: 768px) {
  .p-about__content {
    max-width: 100%;
    padding: 0 2rem;
    margin-left: 0;
  }
}

.p-about__ttl {
  position: absolute;
  top: 0;
  left: 0;
}

@media screen and (max-width: 1280px) {
  .p-about__ttl {
    top: 0;
    left: 2rem;
  }
}

.p-about__subTtl {
  font-family: var(--fontFamily-serif);
  font-size: 2.6rem;
  line-height: 1.9230769231;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
  .p-about__subTtl {
    font-size: 2.1rem;
    text-align: center;
    line-height: 1.5476190476;
    padding-top: 6.2rem;
  }
}

.p-about__info {
  font-size: 1rem;
  font-weight: var(--fontWeight-medium);
  margin-top: 1.8rem;
}

.p-about__txtArea {
  margin-top: 3.6rem;
}

.p-about__txt {
  line-height: 1.9375;
  margin-bottom: 5.6rem;
}

@media screen and (max-width: 768px) {
  .p-about__txt {
    margin-bottom: 2.6rem;
  }
}

.p-about__footer {
  margin-top: 9.6rem;
}

@media screen and (max-width: 768px) {
  .p-about__footer {
    margin-top: 5.8rem;
  }
}

/* u-align */
.u-align--center {
  text-align: center !important;
}

.u-align--right {
  text-align: right !important;
}

/* u-txt */
.u-txt--bold {
  font-weight: var(--fontWeight-bold);
}

/* u-display */
.u-display--pcNone {
  display: none !important;
}

@media screen and (max-width: 768px) {
  .u-display--pcNone {
    display: block !important;
  }
}

@media screen and (max-width: 768px) {
  .u-display--spNone {
    display: none !important;
  }
}

.u-display--inlineBlock {
  display: inline-block;
}


/* ここからcompany */



/* ============================================
   p-greeting
============================================ */

/* --- セクション全体 --- */
.p-greeting {
  padding: 0 0 14rem;
  /* 後半の値を採用 */
  position: relative;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-greeting {
    padding: 1rem 0 8rem;
  }
}

/* --- 背景装飾文字 (Greeting) --- */
.p-greeting__deco {
  position: absolute;
  top: 0;
  right: calc(50% - 60rem);
  /* PC: コンテンツ幅基準 */
  z-index: 1;
  width: 48rem;
}

@media screen and (max-width: 1300px) {
  .p-greeting__deco {
    right: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-greeting__deco {
    width: 25rem;
    top: 1rem;
    right: 2rem;
    /* 画面右端に見切れるように配置 */
  }
}

/* --- インナーコンテナ --- */
.p-greeting__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  /* SPでの絶対配置の基準 */
}

@media screen and (max-width: 768px) {
  .p-greeting__inner {
    flex-direction: column-reverse;
    /* SP: 写真を上、テキストを下 */
    gap: 4rem;
    /* 後半のgapを採用 */
  }
}

/* --- コンテンツエリア (左:テキスト群) --- */
.p-greeting__content {
  width: 58%;
  padding-top: 1rem;
  /* 後半の値を採用 */
  z-index: 1;
  /* 装飾文字より上に */
}

@media screen and (max-width: 768px) {
  .p-greeting__content {
    width: 100%;
    padding-top: 0;
  }
}

/* --- 見出しエリア --- */
.p-greeting__header {
  margin-bottom: 5rem;
  display: flex;
  /* 後半のflexを採用 */
  align-items: flex-start;
  gap: 3rem;
}

/* 縦書き見出しの位置調整 */
.p-greeting__header .c-ttl {
  margin-top: -1rem;
  /* ベースライン調整 */
}

@media screen and (max-width: 768px) {
  .p-greeting__header {
    /* SP: 見出しを左上に絶対配置（前半の記述を維持） */
    position: absolute;
    top: 0;
    left: 2rem;
    /* l-innerのpaddingに合わせる */
    margin-bottom: 0;
    gap: 2rem;
  }
}

/* --- リード文 --- */
.p-greeting__lead {
  font-family: var(--fontFamily-serif);
  font-size: 2.6rem;
  /* 後半の2.6remを採用 */
  line-height: 1.6;
  font-weight: var(--fontWeight-regular);
  /* 後半のregularを採用 */
  margin-bottom: 4rem;
}

@media screen and (max-width: 768px) {
  .p-greeting__lead {
    font-size: 2.2rem;
    margin-bottom: 3rem;
    text-align: center;
  }
}

/* --- 本文 --- */


@media (max-width: 767px) {
  .p-greeting__body {
    padding: 0 2rem;
  }
}

.p-greeting__txt {
  line-height: 2;
  margin-top: 4rem;
  /* 後半のmargin-topを採用 */
}

/* 段落間の余白 */
.p-greeting__txt:not(:last-child) {
  margin-bottom: 2.4rem;
}

@media screen and (max-width: 768px) {
  .p-greeting__txt {
    margin-top: 3rem;
  }

  .p-greeting__txt:not(:last-child) {
    margin-bottom: 2rem;
  }
}

/* --- 画像エリア (右) --- */
/* HTMLが .p-greeting__imgArea のためこちらを使用 */
.p-greeting__imgArea {
  width: 36%;
  margin-top: 5rem;
  /* 後半のmargin-top:5remを採用 */
}

@media screen and (max-width: 768px) {
  .p-greeting__imgArea {
    width: 60%;
    margin: 0 auto;
    padding-left: 0;
    padding-top: 6rem;
  }
}

.p-greeting__fig {
  margin: 0;
}

.p-greeting__fig img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* --- キャプション --- */
.p-greeting__caption {
  margin-top: 1.5rem;
  text-align: center;
  font-family: var(--fontFamily-serif);
  font-size: 1.8rem;
  /* 後半の1.8remを採用 */
  letter-spacing: 0.05em;
}

.p-greeting__caption span {
  font-size: 2.4rem;
  /* 後半の2.4remを採用 */
  font-weight: var(--fontWeight-medium);
  margin-left: 1.2rem;
}

@media screen and (max-width: 768px) {
  .p-greeting__caption {
    font-size: 1.4rem;
  }

  .p-greeting__caption span {
    font-size: 1.8rem;
  }
}


/* ============================================
   p-overview
============================================ */
.p-overview {
  padding-bottom: 14rem;
  position: relative;
}

/* 背景色エリア（画像の下あたりから最下部まで） */
.p-overview::before {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 25rem);
  /* ヘッダー画像の下部から始まるように調整 */
  background-color: var(--background-gray);
  /* #F8F8F8 */
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
}

@media screen and (max-width: 768px) {
  .p-overview {
    padding-bottom: 0rem;
  }

  .p-overview::before {
    height: calc(100% - 10rem);
  }
}

/* --- ヘッダーエリア (p-factory準拠) --- */
.p-overview__header {
  max-width: calc(100% - 11.2rem);
  margin: 0 0 0 auto;
  position: relative;
  padding-top: 7rem;
}

@media screen and (max-width: 768px) {
  .p-overview__header {
    max-width: 100%;
    margin: 0;
    padding-top: 0;
    display: flex;
    flex-direction: column;
  }
}

/* 縦書き見出し */
.p-overview__ttl {
  position: absolute;
  top: 3rem;
  left: 8.4rem;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .p-overview__ttl {
    position: absolute;
    top: 8rem;
    left: 2rem;
  }
}

/* メイン画像 */
.p-overview__imgArea {
  aspect-ratio: 1288/429;
  overflow: hidden;
  width: 100%;
}

@media screen and (max-width: 768px) {
  .p-overview__imgArea {
    width: calc(100% - 6rem);
    /* 右側に余白 */
    aspect-ratio: 633/378;
    margin-left: auto;
    margin-top: 2rem;
  }
}

.p-overview__imgArea img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 装飾テキスト (Overview) */
.p-overview__deco {
  position: absolute;
  bottom: 0rem;
  right: 6rem;
  z-index: 2;
  width: 65rem;
  max-width: 40vw;
}

@media screen and (max-width: 768px) {
  .p-overview__deco {
    width: 28rem;
    max-width: 80%;
    right: 0;
    bottom: 0rem;
  }
}

/* --- コンテンツボディ --- */
.p-overview__body {
  padding-top: 8rem;
}

@media screen and (max-width: 768px) {
  .p-overview__body {
    padding-top: 4rem;
  }
}

.p-overview__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

/* 左側の縦長画像 */
.p-overview__subImg {
  width: 36.4%;
  /* 380px / 1288px 近似 */
  margin-top: 0rem;
  position: relative;
  z-index: 2;
}

.p-overview__subImg img {
  width: 100%;
  height: auto;
}

/* 右側のテーブルエリア */
.p-overview__table {
  width: 55%;
  padding-top: 0rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .p-overview__table {
    width: 100%;
    padding-top: 0;
  }
}

/* ゼブラストライプ（縞模様）の行設定 */
.p-overview__row {
  display: flex;
  align-items: center;
  /* 垂直方向中央揃え */
  padding: 2.3rem 3rem;
  width: 100%;
}

/* 奇数行：白背景 */
.p-overview__row:nth-child(odd) {
  background-color: var(--color-white);
}

/* 偶数行：透明（背景のグレーが見える） */
.p-overview__row:nth-child(even) {
  background-color: transparent;
}

@media screen and (max-width: 768px) {
  .p-overview__row {
    padding: 2rem;
    /* SP版では行ごとにマージンを空けてカードのように見せる */
    margin-bottom: 1rem;
  }

  /* SPでも奇数行だけ白くする（偶数は背景色） */
  .p-overview__row:nth-child(odd) {
    background-color: var(--color-white);
  }
}

.p-overview__dt {
  width: 25%;
  font-weight: var(--fontWeight-medium);
  font-size: 1.6rem;
}

.p-overview__dd {
  width: 75%;
  font-size: 1.6rem;
  line-height: 1.75;
}

@media screen and (max-width: 768px) {
  .p-overview__dt {
    width: 30%;
    font-size: 1.4rem;
  }

  .p-overview__dd {
    width: 70%;
    font-size: 1.4rem;
  }
}

/* ============================================
   p-history
============================================ */
.p-history {
  margin-top: 10rem;
  padding-top: 10rem;
  padding-bottom: 14rem;
  position: relative;
  /* section自体の背景は白と想定 */
}

@media screen and (max-width: 768px) {
  .p-history {
    margin-top: 0rem;
    padding-bottom: 8rem;
  }
}

/* --- 背景装飾テキスト (History) --- */
.p-history__deco {
  position: absolute;
  top: 0;
  right: calc(50% - 60rem);
  /* コンテンツ幅基準で右寄せ */
  z-index: 1;
  width: 45rem;
  max-width: 30vw;
}

@media screen and (max-width: 1300px) {
  .p-history__deco {
    right: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-history__deco {
    top: 9.2rem;
    width: 25rem;
    max-width: 60%;
  }
}

/* --- レイアウトコンテナ --- */
.p-history__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 2;
}

@media screen and (max-width: 768px) {
  .p-history__inner {
    display: block;
    /* SPは縦積み */
  }
}

/* --- ヘッダー（見出し） --- */
.p-history__header {
  width: 8.4rem;
  /* 見出しエリアの幅確保 */
  flex-shrink: 0;
  margin-top: 0rem;
  /* History文字との位置関係調整 */
  position: absolute;
  top: -8rem;

}

@media screen and (max-width: 768px) {
  .p-history__header {
    width: 100%;
    margin-top: 0rem;
    /* SPでの余白 */
    margin-bottom: 3rem;
    position: relative;
    top: 0;
  }

  .p-history__header .c-ttl {
    /* SPで見出し位置調整が必要な場合 */
    margin: 0;
  }
}

/* --- リスト本体 --- */
.p-history__body {
  width: 100%;
  max-width: 100rem;
  /* リスト部分の最大幅 */
  padding-top: 2rem;
}

@media screen and (max-width: 768px) {
  .p-history__body {
    padding-top: 0;
  }
}

/* --- ゼブラストライプ行 --- */
.p-history__row {
  display: flex;
  align-items: baseline;
  /* テキストの先頭で揃える */
  padding: 2.5rem 6rem;
  width: 100%;
}

/* 偶数行：グレー背景 */
.p-history__row:nth-child(even) {
  background-color: var(--background-gray);
  /* #F8F8F8 */
}

/* 奇数行：透明（白） */
.p-history__row:nth-child(odd) {
  background-color: transparent;
}

@media screen and (max-width: 768px) {
  .p-history__row {
    flex-direction: column;
    /* SPは縦積み */
    padding: 2rem;
    gap: 1rem;
  }
}

/* --- 年月 (DT) --- */
.p-history__dt {
  width: 25%;
  /* PCでの幅 */
  flex-shrink: 0;
  font-weight: var(--fontWeight-medium);
  font-size: 1.6rem;
}

@media screen and (max-width: 768px) {
  .p-history__dt {
    width: 100%;
    font-size: 1.4rem;
  }
}

/* --- 内容 (DD) --- */
.p-history__dd {
  width: 75%;
  font-size: 1.6rem;
  line-height: 1.75;
}

@media screen and (max-width: 768px) {
  .p-history__dd {
    width: 100%;
    font-size: 1.4rem;
    padding-left: 2rem;
  }
}

/* ============================================
   p-access
============================================ */
.p-access {
  padding-bottom: 12rem;
  background-color: var(--background-gray);
  /* 背景色 #F8F8F8 */
  position: relative;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-access {
    padding-bottom: 8rem;
  }
}

/* --- インナーコンテナ --- */
.p-access__inner {
  display: block;
  /* PC: 横並び (左:見出し / 右:コンテンツ) */
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 1;
  padding-top: 10rem;
  /* Access画像の高さ分＋余白 */
}

@media screen and (max-width: 768px) {
  .p-access__inner {
    display: block;
    /* SP: 縦積み */
    padding-top: 4rem;
  }
}

/* --- 背景装飾画像 (Access) --- */
.p-access__deco {
  position: absolute;
  top: 6rem;
  /* innerの上端 */
  right: 0;
  /* innerの右端 */
  z-index: -1;
  /* コンテンツの下 */
  width: 41.3rem;
  /* 画像サイズ調整（適宜変更してください） */
  max-width: 40vw;
}

.p-access__deco img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 768px) {
  .p-access__deco {
    width: 25rem;
    /* SPサイズ */
    max-width: 60%;
    top: 8 rem;
    right: 2rem;
  }
}

/* --- ヘッダー（見出し） --- */
.p-access__header {
  width: 8.4rem;
  /* 固定幅 */
  flex-shrink: 0;
  margin: 0 0 4rem;
  /* マップとの位置微調整 */
}

@media screen and (max-width: 768px) {
  .p-access__header {
    width: 100%;
    margin-top: 4rem;
    /* 装飾画像との距離 */
    margin-bottom: 3rem;
  }

  /* c-ttlの位置リセット等は共通CSS側で処理されている前提 */
}

/* --- コンテンツボディ (マップ+情報) --- */
.p-access__body {
  width: 100%;
  max-width: 100rem;
  /* HistoryやOverviewの本文幅に合わせる（重要） */
  /* 左側の見出しスペースを除いた残りの幅 */
  padding-left: 0rem;
  /* 見出しとの間隔 */
}

@media screen and (max-width: 768px) {
  .p-access__body {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
  }
}

/* --- Google Map --- */
.p-access__map {
  width: 100%;
  aspect-ratio: 900 / 500;
  background-color: #ddd;
  margin-bottom: 4rem;
}

@media screen and (max-width: 768px) {
  .p-access__map {
    aspect-ratio: 335 / 250;
    margin-bottom: 3rem;
  }
}

.p-access__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  vertical-align: bottom;
}

/* --- 工場情報エリア --- */
.p-access__info {
  display: flex;
  gap: 4rem;
  align-items: center;
}

@media screen and (max-width: 768px) {
  .p-access__info {
    flex-direction: column;
    gap: 2rem;
    align-items: flex-start;
  }
}

/* 写真 */
.p-access__img {
  width: 40%;
  flex-shrink: 0;
}

@media screen and (max-width: 768px) {
  .p-access__img {
    width: 100%;
  }
}

.p-access__img img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* テキスト情報 */
.p-access__detail {
  flex-grow: 1;
}

.p-access__name {
  font-size: 1.8rem;
  font-weight: var(--fontWeight-bold);
  margin-bottom: 1.5rem;
  font-family: var(--fontFamily-base);
}

@media screen and (max-width: 768px) {
  .p-access__name {
    font-size: 1.6rem;
    margin-bottom: 1rem;
  }
}

.p-access__address {
  font-size: 1.5rem;
  line-height: 1.8;
}

@media screen and (max-width: 768px) {
  .p-access__address {
    font-size: 1.4rem;
  }
}


/* ============================================
       p-recruitPage (採用情報ページ固有スタイル)
    ============================================ */

/* 基本（デフォルト）は白にする */
.c-site__main {
  background-color: #fff;
  /* 他のスタイルはそのまま */
  flex: 1;
}

/* グレー背景にしたい場合に追加するクラス */
.c-site__main--gray {
  background-color: var(--background-gray);
  /* #F8F8F8 */
}

/* --- p-recruitList (募集要項セクション) --- */
.p-recruitList {
  position: relative;
  padding: 4rem 0 4rem;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-recruitList {
    padding: 3rem 0 4rem;
  }
}

/* 背景装飾 (Recruit) */
.p-recruitList__deco {
  position: absolute;
  top: 0;
  right: 10%;
  z-index: 0;
  pointer-events: none;
  width: 44.5rem;
  max-width: 40vw;
}

.p-recruitList__deco img {
  width: 100%;
}

@media screen and (max-width: 768px) {
  .p-recruitList__deco {
    top: 2rem;
    right: 1rem;
    width: 28rem;
    max-width: 60%;
  }
}

/* コンテンツ幅制限 */
.p-recruitList__inner {
  position: relative;
  z-index: 1;
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* 2カラムレイアウト (PC:横並び / SP:縦積み) */
.p-recruitList__container {
  display: flex;
  justify-content: center;
  gap: 0rem;
  /* カラム間の余白 */
  align-items: flex-start;
  margin-bottom: 10rem;
}

@media screen and (max-width: 768px) {
  .p-recruitList__container {
    flex-direction: column;
    gap: 0rem;
    margin-bottom: 2px;
  }
}

/* 各カラム (新卒・中途) */
.p-recruitList__col {
  width: 45%;
  /* PCでの幅 */
  flex-shrink: 0;
}

@media screen and (max-width: 768px) {
  .p-recruitList__col {
    width: 100%;
  }
}

/* 見出し */
.p-recruitList__ttl {
  font-family: var(--fontFamily-serif);
  font-size: 2.4rem;
  font-weight: var(--fontWeight-medium);
  margin-bottom: 4rem;
  letter-spacing: 0.05em;
  text-align: left;
}

@media screen and (max-width: 768px) {
  .p-recruitList__ttl {
    font-size: 2.1rem;
    margin-bottom: 0.5rem;
  }
}

/* エンゲージロゴバナーエリア */
.p-recruitList__banner {
  width: 100%;
  margin-bottom: 3rem;
}

.p-recruitList__banner a {
  display: block;
  transition: opacity 0.3s;
}

.p-recruitList__banner a:hover {
  opacity: 0.7;
}

.p-recruitList__banner img {
  width: 100%;
  /* 親要素に合わせて伸縮 */
  max-width: 30rem;
  /* 最大幅制限 */
  height: auto;
  border: 1px solid #D5D5D5;
}

@media screen and (max-width: 768px) {
  .p-recruitList__banner img {
    max-width: 100%;
    margin: 0 auto;
    /* SPでは中央寄せする場合 */
    display: block;
  }
}

/* テキスト情報 (中途採用のみ) */
.p-recruitList__info {
  padding-top: 1rem;
}

.p-recruitList__dl {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (max-width: 767px) {
  .p-recruitList__dl {
    display: flex;
    flex-direction: column;
    gap: 0rem;

  }

  .p-recruitList__row {
    font-size: 1.5rem;
    line-height: 1.8;
  }

  .p-recruitList__dt {
    display: inline-block;
    margin-right: 1rem;
  }

  .p-recruitList__dd {
    display: inline-block;
    margin: 0;
  }
}

@media screen and (max-width: 768px) {
  .p-recruitList__row {
    font-size: 1.4rem;
    display: flex;
  }

  .p-recruitList__dt {
    display: block;
    font-weight: bold;
    margin-bottom: 0.2rem;
  }

  .p-recruitList__dd {
    display: block;
  }
}

/* --- p-recruitInterview (社長インタビューバナー) --- */
.p-recruitInterview {
  padding-bottom: 14rem;
}

@media screen and (max-width: 768px) {
  .p-recruitInterview {
    padding-bottom: 8rem;
  }
}

.p-recruitInterview__inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.p-recruitInterview__link {
  display: block;
  width: 100%;
  transition: opacity 0.3s;
}

.p-recruitInterview__link:hover {
  opacity: 0.8;
}

.p-recruitInterview__link img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}


/* ============================================
   p-newsPage (お知らせページ固有スタイル)
============================================ */

/* --- p-newsList --- */
.p-newsList {
  padding: 8rem 0 14rem;
  position: relative;
  overflow: hidden;
}

@media screen and (max-width: 768px) {
  .p-newsList {
    padding: 10rem 0 8rem;
  }
}

/* 背景装飾 (News) */
.p-newsList__deco {
  position: absolute;
  top: 0;
  right: 13%;
  z-index: 0;
  width: 40rem;
  max-width: 30vw;
}

@media screen and (max-width: 1200px) {
  .p-newsList__deco {
    width: 31.7rem;
    right: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-newsList__deco {
    width: 31.7rem;
    max-width: 55%;
    top: 1rem;
    right: -2rem;
  }
}

.p-newsList__deco img {
  width: 100%;
}

.p-newsList__inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* ニュース一覧リスト */
.p-newsList__items {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  /* 項目間の余白 */
}

@media screen and (max-width: 768px) {
  .p-newsList__items {
    gap: 2rem;
  }
}

/* 個別ニュースアイテム */
.p-newsList__item {
  border-bottom: 1px solid var(--color-border-light);
  padding-bottom: 3rem;
}

@media screen and (max-width: 768px) {
  .p-newsList__item {
    padding-bottom: 2rem;
  }
}

.p-newsList__item:last-child {
  border-bottom: none;
}

.p-newsList__link {
  display: flex;
  align-items: center;
  gap: 4rem;
  color: var(--fontColor-base);
  transition: opacity 0.3s;
  position: relative;
}

.p-newsList__link:hover {
  opacity: 0.7;
}

/* SPレイアウト: 横並びを維持 */
@media screen and (max-width: 768px) {
  .p-newsList__link {
    flex-direction: row;
    /* 横並びにする */
    align-items: flex-start;
    /* 上揃え */
    gap: 1.5rem;
  }
}

/* サムネイル画像 */
.p-newsList__imgWrap {
  width: 24rem;
  aspect-ratio: 240 / 152;
  /* PC比率 */
  flex-shrink: 0;
  overflow: hidden;
}

/* SPレイアウト: 画像幅を固定して横並びスペース確保 */
@media screen and (max-width: 768px) {
  .p-newsList__imgWrap {
    width: 12rem;
    /* 固定幅 */
    aspect-ratio: 240 / 152;
    /* 比率維持 */
  }
}

.p-newsList__imgWrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}

.p-newsList__link:hover .p-newsList__imgWrap img {
  transform: scale(1.05);
}

/* テキスト情報 */
.p-newsList__body {
  flex-grow: 1;
  padding-right: 6rem;
  /* 矢印スペース確保 */
}

@media screen and (max-width: 768px) {
  .p-newsList__body {
    padding-right: 0;
    width: auto;
    /* width 100%を解除 */
    flex: 1;
    /* 残りの幅を埋める */
  }
}

.p-newsList__date {
  display: block;
  font-size: 1.4rem;
  margin-bottom: 1rem;
  font-family: var(--fontFamily-english);
}

@media screen and (max-width: 768px) {
  .p-newsList__date {
    margin-bottom: 0.5rem;
    font-size: 1.2rem;
  }
}

.p-newsList__ttl {
  font-size: 1.6rem;
  line-height: 1.6;
  font-weight: var(--fontWeight-medium);
}

@media screen and (max-width: 768px) {
  .p-newsList__ttl {
    font-size: 1.4rem;
  }
}

/* 矢印アイコン */
.p-newsList__iconArrow {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 2.7rem;
  height: 2.7rem;
  background: url(../../assets/images/common/arrow_linkCard.png) no-repeat center center / contain;
  transition: transform 0.3s;
}

.p-newsList__link:hover .p-newsList__iconArrow {
  transform: translateY(-50%) translateX(5px);
}

@media screen and (max-width: 768px) {
  .p-newsList__iconArrow {
    display: none;
    /* SPでは矢印なし */
  }
}

/* --- Pagination --- */
.c-pagination {
  margin-top: 8rem;
  display: flex;
  justify-content: center;
  gap: 1.5rem;
}

@media screen and (max-width: 768px) {
  .c-pagination {
    margin-top: 5rem;
    gap: 1rem;
  }
}

.c-pagination__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  border: 1px solid var(--color-text);
  font-family: var(--fontFamily-english);
  font-size: 1.6rem;
  color: var(--color-text);
  transition: all 0.3s;
}

@media screen and (max-width: 768px) {
  .c-pagination__item {
    width: 4rem;
    height: 4rem;
    font-size: 1.4rem;
  }
}

.c-pagination__item:hover {
  background-color: var(--color-black);
  color: var(--color-white);
  opacity: 1;
}

.c-pagination__item.is-active {
  background-color: var(--color-black);
  color: var(--color-white);
  pointer-events: none;
}

/* ============================================
   p-newsDetailPage (News Detail Page Specific Styles)
============================================ */

/* --- p-newsDetail --- */
.p-newsDetail {
  padding-bottom: 12rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .p-newsDetail {
    padding-bottom: 8rem;
  }
}

/* 縦書きタイトル */
.p-newsDetail__ttlArea {
  position: absolute;
  top: 7rem;
  left: calc(50% - 62rem);
  /* コンテンツ幅基準 */
  z-index: 2;
  background-color: #fff;
  /* 白座布団 */
  padding: 3rem 1.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-newsDetail__ttl {
  writing-mode: vertical-rl;
  font-family: var(--fontFamily-serif);
  /* 明朝体 */
  font-size: 2.8rem;
  /* PC: 28px */
  letter-spacing: 0.2em;
  line-height: 1;
  color: #000;
  font-weight: var(--fontWeight-medium);
}

@media screen and (max-width: 1280px) {
  .p-newsDetail__ttlArea {
    left: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-newsDetail__ttlArea {
    top: 3rem;
    left: 2rem;
    padding: 2.5rem 1rem;
  }

  .p-newsDetail__ttl {
    font-size: 1.8rem;
    /* SPサイズ調整 */
  }
}

/* コンテンツ幅 */
.p-newsDetail__inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* コンテンツ本体 */
.p-newsDetail__content {
  margin: 8rem auto 0;
  width: 80rem;
  /* PCでの幅 */
}

@media screen and (max-width: 1024px) {
  .p-newsDetail__content {
    width: 100%;
  }
}

@media screen and (max-width: 768px) {
  .p-newsDetail__content {
    margin-top: 24rem;
    /* タイトルの下 */
    width: 100%;
    /* SPでは幅100%（横スクロール防止） */
    box-sizing: border-box;
  }
}

/* 記事ヘッダー（日付・タイトル） */
.p-newsDetail__head {
  margin-bottom: 4rem;
  border-bottom: 1px solid var(--color-border-light);
  padding-bottom: 2rem;
}

.p-newsDetail__date {
  display: block;
  font-family: var(--fontFamily-english);
  font-size: 1.4rem;
  color: var(--color-text-sub);
  margin-bottom: 1rem;
}

.p-newsDetail__articleTtl {
  font-size: 2.4rem;
  font-weight: var(--fontWeight-medium);
  line-height: 1.4;
}

@media screen and (max-width: 768px) {
  .p-newsDetail__head {
    margin-bottom: 3rem;
  }

  .p-newsDetail__articleTtl {
    font-size: 2rem;
  }
}

/* 記事本文エリア */
.p-newsDetail__body {
  margin-bottom: 6rem;
}

/* 導入文 */
.p-newsDetail__lead {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 4rem;
}

@media screen and (max-width: 768px) {
  .p-newsDetail__lead {
    font-size: 1.4rem;
    margin-bottom: 3rem;
    max-width: 100%;
    box-sizing: border-box;
    word-break: break-all;
    /* SPでの折り返し対策 */
  }
}

/* 各セクション */
.p-newsDetail__section {
  margin-bottom: 4rem;
}

/* 見出し (h3など) */
.p-newsDetail__subHead {
  font-family: var(--fontFamily-serif);
  font-size: 2rem;
  font-weight: var(--fontWeight-medium);
  line-height: 1.6;
  margin-bottom: 2rem;
  padding-left: 1rem;
  border-left: 4px solid var(--color-main);
  /* アクセント（任意） */
}

@media screen and (max-width: 768px) {
  .p-newsDetail__subHead {
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
  }
}

/* 本文テキスト */
.p-newsDetail__txt {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 0;
}

.p-newsDetail__txt+.p-newsDetail__txt {
  margin-top: 2rem;
}

@media screen and (max-width: 768px) {
  .p-newsDetail__txt {
    font-size: 1.4rem;
  }
}

/* 画像 */
.p-newsDetail__img {
  margin: 2rem 0;
  width: 100%;
}

.p-newsDetail__img img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* フッター（戻るボタン等） */
.p-newsDetail__footer {
  text-align: center;
  margin-top: 6rem;
}



/* ============================================
       p-interviewPage (Interview Page Specific Styles)
    ============================================ */


/* --- p-interview --- */
.p-interview {
  padding-bottom: 12rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .p-interview {
    padding-bottom: 8rem;
  }
}

/* 見出し（左上の縦書き + 白座布団） */
.p-interview__ttlArea {
  position: absolute;
  top: 7rem;
  left: calc(50% - 62rem);
  /* コンテンツ幅基準 */
  z-index: 2;
  background-color: #fff;
  /* 白座布団 */
  padding: 3rem 1.5rem;
  /* 内側の余白 */
  /* 文字を座布団の中央に配置 */
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-interview__ttl {
  writing-mode: vertical-rl;
  font-family: var(--fontFamily-serif);
  /* 明朝体 */
  font-size: 2.8rem;
  /* PC: 28px */
  letter-spacing: 0.2em;
  line-height: 1;
  color: #000;
  font-weight: var(--fontWeight-medium);
}

@media screen and (max-width: 1280px) {
  .p-interview__ttlArea {
    left: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-interview__ttlArea {
    top: 3rem;
    left: 4rem;
    padding: 2.5rem 1rem;
    /* SPでの余白を微調整 */
  }

  .p-interview__ttl {
    font-size: 1.8rem;
    /* SPサイズ調整 */
  }
}

.p-interview__inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* リードエリア (写真 + タイトルボックス) */
.p-interview__lead {
  position: relative;
  margin-top: 6rem;
  margin-bottom: 18rem;
  /* ボックスがはみ出る分の余白を確保 */
}

@media screen and (max-width: 768px) {
  .p-interview__lead {
    margin-top: 8rem;
    /* タイトルとの被り回避 */
    margin-bottom: 6rem;
  }
}

.p-interview__mainImg {
  width: 100%;
  max-width: 86rem;
  /* 写真の最大幅 */
  margin: 0 auto;
  /* 右寄せ */
}

.p-interview__mainImg img {
  width: 100%;
  height: auto;
}

/* タイトルボックス (白背景の箱) */
.p-interview__titleBox {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  /* 左右中央寄せ */
  transform: translateY(50%);
  /* 下にはみ出させる */
  background: #fff;
  padding: 5rem;
  width: 60rem;
  max-width: 90%;
  box-shadow: none;
  /* 影なし */
  display: flex;
  align-items: center;
  gap: 3rem;
  z-index: 3;
}

@media screen and (max-width: 768px) {
  .p-interview__titleBox {
    position: relative;
    bottom: auto;
    left: auto;
    right: auto;
    transform: none;
    width: 100%;
    max-width: 100%;
    margin-top: -4rem;
    /* 写真に少し被せる */
    padding: 3rem 1rem;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2rem;
  }
}

.p-interview__logo {
  width: 10rem;
  flex-shrink: 0;
}

@media screen and (max-width: 768px) {
  .p-interview__logo {
    width: 8rem;
  }
}

.p-interview__logo img {
  width: 100%;
}

.p-interview__meta {
  flex-grow: 1;
}

.p-interview__label {
  font-size: 1.4rem;
  margin-bottom: 1.5rem;
  display: block;
}

.p-interview__catch {
  font-family: var(--fontFamily-base);
  /* ゴシック体 */
  font-size: 2.5rem;
  /* PC: 25px */
  font-weight: var(--fontWeight-bold);
  margin-bottom: 2rem;
  line-height: 1.4;
}

@media screen and (max-width: 768px) {
  .p-interview__catch {
    font-size: 2rem;
  }
}

.p-interview__name {
  font-size: 1.3rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

@media screen and (max-width: 768px) {
  .p-interview__name {
    justify-content: center;
    flex-direction: column;
    gap: 0.5rem;
  }
}

.p-interview__name span {
  font-size: 2rem;
  font-weight: var(--fontWeight-medium);
  font-family: var(--fontFamily-serif);
  /* 名前部分は明朝 */
}

/* Q&A コンテンツ */
.p-interview__body {
  max-width: 80rem;
  margin: 0 auto;
}

.p-interview__section {
  margin-bottom: 10rem;
}

@media screen and (max-width: 768px) {
  .p-interview__section {
    margin-bottom: 6rem;
  }
}

.p-interview__section:last-child {
  margin-bottom: 0;
}

.p-interview__q {
  font-weight: var(--fontWeight-bold);
  font-size: 1.8rem;
  margin-bottom: 3rem;
  line-height: 1.6;
}

@media screen and (max-width: 768px) {
  .p-interview__q {
    font-size: 1.6rem;
    margin-bottom: 2rem;
  }
}

.p-interview__a {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 5rem;
}

@media screen and (max-width: 768px) {
  .p-interview__a {
    font-size: 1.4rem;
    margin-bottom: 3rem;
  }
}

.p-interview__img {
  width: 100%;
  margin-bottom: 5rem;
}

@media screen and (max-width: 768px) {
  .p-interview__img {
    margin-bottom: 3rem;
  }
}

.p-interview__img img {
  width: 100%;
  height: auto;
}


/* ============================================
       p-csrPage (CSR Page Specific Styles)
    ============================================ */


/* --- p-csr --- */
.p-csr {
  padding-bottom: 12rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .p-csr {
    padding-bottom: 8rem;
  }
}

/* 縦書きタイトル (CSRを正立させる) */
.p-csr__ttlArea {
  position: absolute;
  top: 7rem;
  left: calc(50% - 62rem);
  /* コンテンツ幅基準 */
  z-index: 2;
  background-color: #fff;
  /* 白座布団 */
  padding: 3rem 1.5rem;
  /* 内側の余白 */
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-csr__ttl {
  writing-mode: vertical-rl;
  text-orientation: upright;
  /* アルファベットを正立させる */
  font-family: var(--fontFamily-serif);
  /* 明朝体 */
  font-size: 2.8rem;
  /* PC: 28px */
  letter-spacing: 0.2em;
  line-height: 1;
  color: #000;
  font-weight: var(--fontWeight-medium);
}

@media screen and (max-width: 1280px) {
  .p-csr__ttlArea {
    left: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-csr__ttlArea {
    top: 3rem;
    left: 2rem;
    padding: 2.5rem 1rem;
  }

  .p-csr__ttl {
    font-size: 1.8rem;
    /* SPサイズ調整 */
  }
}

/* コンテンツ幅 */
.p-csr__inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* コンテンツ本体 */
.p-csr__content {
  margin-top: 5rem;
  padding-left: 20rem;
  /* PCでの左余白（タイトルの横に来るように） */
}

@media screen and (max-width: 1024px) {
  .p-csr__content {
    padding-left: 10rem;
  }
}

@media screen and (max-width: 768px) {
  .p-csr__content {
    margin-top: 24rem;
    /* タイトルの下に来るように */
    padding-left: 0;
  }
}

/* 導入文 */
.p-csr__lead {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 8rem;
}

@media screen and (max-width: 768px) {
  .p-csr__lead {
    font-size: 1.4rem;
    margin-bottom: 6rem;
  }
}

/* セクション間の余白 */
.p-csr__section {
  margin-bottom: 10rem;
}

@media screen and (max-width: 768px) {
  .p-csr__section {
    margin-bottom: 6rem;
  }
}

.p-csr__section:last-child {
  margin-bottom: 0;
}

/* 下線付き見出し */
.p-csr__head {
  font-family: var(--fontFamily-serif);
  font-size: 2.4rem;
  /* PC: 24px */
  font-weight: var(--fontWeight-medium);
  line-height: 1.6;
  border-bottom: 1px solid #000;
  padding-bottom: 1rem;
  margin-bottom: 4.8rem;
  /* PC: 48px */
}

@media screen and (max-width: 768px) {
  .p-csr__head {
    font-size: 1.8rem;
    /* SP: 18px */
    margin-bottom: 2.8rem;
    /* SP: 28px */
  }
}

/* 本文 */
.p-csr__txt {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 0;
}

.p-csr__txt+.p-csr__txt {
  margin-top: 2rem;
}

@media screen and (max-width: 768px) {
  .p-csr__txt {
    font-size: 1.4rem;
  }
}

/* エコアクション・フードバンク レイアウト (PC: 左テキスト / 右画像) */
.p-csr__ecoBox {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 6rem;
}

@media screen and (max-width: 768px) {
  .p-csr__ecoBox {
    flex-direction: column;
    /* SP: 縦積み */
    gap: 4rem;
  }
}

/* 左側テキストエリア */
.p-csr__ecoInfo {
  flex: 1;
  /* 残りの幅を埋める */
}

/* 右側ロゴ画像エリア */
.p-csr__ecoImg {
  flex: 0 0 auto;
  margin: 0;
}

@media screen and (max-width: 768px) {
  .p-csr__ecoImg {
    width: 100%;
    text-align: center;
    /* SPでは画像を中央寄せ */
  }
}

.p-csr__ecoImg img {
  width: 100%;
  height: auto;
  max-width: 28rem;

  /* PCでの画像の最大幅を適宜設定 */
}

@media screen and (max-width: 768px) {
  .p-csr__ecoImg img {
    max-width: 100%;
    /* SPでの画像の最大幅 */
    margin: 0 auto;
  }
}

/* 環境活動レポート セクション */
.p-csr__reportBox {
  border-top: 1px solid #000;
  padding: 3rem 0;
  margin-bottom: 12rem;
  /* 下のセクションとの余白 */
}

@media screen and (max-width: 768px) {
  .p-csr__reportBox {
    padding: 2rem 0;
    margin-bottom: 8rem;
  }
}

.p-csr__reportLink {
  display: inline-block;
  font-size: 1.6rem;
  color: var(--color-text);
  text-decoration: underline;
  transition: opacity 0.3s;
}

.p-csr__reportLink:hover {
  opacity: 0.7;
  text-decoration: none;
}

@media screen and (max-width: 768px) {
  .p-csr__reportLink {
    font-size: 1.4rem;
  }
}


/* ============================================
       p-privacyPage (Privacy Page Specific Styles)
    ============================================ */

/* --- p-privacy --- */
.p-privacy {
  padding-bottom: 12rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .p-privacy {
    padding-bottom: 8rem;
  }
}

/* 縦書きタイトル */
.p-privacy__ttlArea {
  position: absolute;
  top: 7rem;
  left: calc(50% - 62rem);
  /* コンテンツ幅基準 */
  z-index: 2;
  background-color: #fff;
  /* 白座布団 */
  padding: 3rem 1.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-privacy__ttl {
  writing-mode: vertical-rl;
  font-family: var(--fontFamily-serif);
  /* 明朝体 */
  font-size: 2.8rem;
  /* PC: 28px */
  letter-spacing: 0.2em;
  line-height: 1;
  color: #000;
  font-weight: var(--fontWeight-medium);
}

@media screen and (max-width: 1280px) {
  .p-privacy__ttlArea {
    left: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-privacy__ttlArea {
    top: 3rem;
    left: 2rem;
    padding: 2.5rem 1rem;
  }

  .p-privacy__ttl {
    font-size: 1.8rem;
    /* SPサイズ調整 */
  }
}

/* コンテンツ幅 */
.p-privacy__inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* コンテンツ本体 */
.p-privacy__content {
  margin: 8rem auto 0;
  width: 80rem;
  /* PCでの幅 */
}

@media screen and (max-width: 1024px) {
  .p-privacy__content {
    width: 100%;
  }
}

@media screen and (max-width: 768px) {
  .p-privacy__content {
    margin-top: 24rem;
    /* タイトルの下 */
    width: 100%;
    /* SPでは幅100%（横スクロール防止） */
    box-sizing: border-box;
    margin-left: unset;
    margin-right: unset;
  }
}

/* 導入文 */
.p-privacy__lead {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 8rem;
}

@media screen and (max-width: 768px) {
  .p-privacy__lead {
    font-size: 1.4rem;
    margin-bottom: 6rem;
    max-width: 100%;
    box-sizing: border-box;
    word-break: break-all;
  }
}

/* 各セクション */
.p-privacy__section {
  margin-bottom: 6rem;
}

@media screen and (max-width: 768px) {
  .p-privacy__section {
    margin-bottom: 4rem;
  }
}

/* 番号付き見出し */
.p-privacy__head {
  font-family: var(--fontFamily-serif);
  font-size: 2.4rem;
  font-weight: var(--fontWeight-medium);
  line-height: 1.6;
  margin-bottom: 2rem;
}

@media screen and (max-width: 768px) {
  .p-privacy__head {
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
  }
}

/* 本文 */
.p-privacy__txt {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 0;
}

.p-privacy__txt+.p-privacy__txt {
  margin-top: 2rem;
}

@media screen and (max-width: 768px) {
  .p-privacy__txt {
    font-size: 1.4rem;
  }
}

/* --- テーブル --- */
.p-privacy__tableWrap {
  width: 100%;
  margin: 4rem 0;
  background: #fff;
}

@media screen and (max-width: 768px) {

  /* SP: 横スクロール */
  .p-privacy__tableWrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

.p-privacy__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.6rem;
  min-width: 60rem;
  /* SPでスクロールさせるための最小幅 */
}

@media screen and (max-width: 768px) {
  .p-privacy__table {
    font-size: 1.4rem;
  }
}

.p-privacy__table th,
.p-privacy__table td {
  border: 1px solid #ddd;
  border-style: dotted;
  padding: 3rem 2rem;
  line-height: 1.8;
  vertical-align: middle;
}

.p-privacy__table th {
  background-color: #f9f9f9;
  font-weight: var(--fontWeight-bold);
  text-align: center;
  width: auto;
  white-space: nowrap;
}

.p-privacy__table td {
  background-color: #fff;
  width: auto;
}

@media (max-width: 767px) {
  .p-privacy__table td {
    font-size: 1.4rem !important;
  }
}

/* 署名エリア */
.p-privacy__sign {
  margin-top: 3rem;
  font-size: 1.6rem;
  line-height: 1.8;
}

@media screen and (max-width: 768px) {
  .p-privacy__sign {
    font-size: 1.4rem;
  }
}

/* 大見出し */
.p-privacy__bigHead {
  font-family: var(--fontFamily-serif);
  font-size: 2.4rem;
  margin-top: 8rem;
  margin-bottom: 3rem;
}

@media screen and (max-width: 768px) {
  .p-privacy__bigHead {
    font-size: 2rem;
    margin-top: 6rem;
  }
}

/* ============================================
       p-safetyPage (Safety Page Specific Styles)
    ============================================ */

/* --- p-safety --- */
.p-safety {
  padding-bottom: 12rem;
  position: relative;
}

@media screen and (max-width: 768px) {
  .p-safety {
    padding-bottom: 8rem;
  }
}

/* 見出し（左上の縦書き + 白座布団）
       ※社長インタビューページと同じスタイル・位置
    */
.p-safety__ttlArea {
  position: absolute;
  top: 7rem;
  left: calc(50% - 62rem);
  /* コンテンツ幅基準 */
  z-index: 2;
  background-color: #fff;
  /* 白座布団 */
  padding: 3rem 1.5rem;
  /* 内側の余白 */
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-safety__ttl {
  writing-mode: vertical-rl;
  font-family: var(--fontFamily-serif);
  /* 明朝体 */
  font-size: 2.8rem;
  /* PC: 28px */
  letter-spacing: 0.2em;
  line-height: 1;
  color: #000;
  font-weight: var(--fontWeight-medium);
}

@media screen and (max-width: 1280px) {
  .p-safety__ttlArea {
    left: 2rem;
  }
}

@media screen and (max-width: 768px) {
  .p-safety__ttlArea {
    top: 3rem;
    left: 2rem;
    padding: 2.5rem 1rem;
  }

  .p-safety__ttl {
    font-size: 1.8rem;
    /* SPサイズ調整 */
  }
}

/* コンテンツ幅 */
.p-safety__inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* コンテンツ本体 */
.p-safety__content {
  /* 縦書きタイトルと被らないように位置調整 */
  margin-top: 8rem;
  padding-left: 20rem;
  /* PCでの左余白（タイトルの横に来るように） */
}

@media screen and (max-width: 1024px) {
  .p-safety__content {
    padding-left: 10rem;
  }
}

@media screen and (max-width: 768px) {
  .p-safety__content {
    margin-top: 18rem;
    /* タイトルの下に来るように */
    padding-left: 0;
  }
}

/* JFS-C 見出し */
.p-safety__head {
  font-family: var(--fontFamily-serif);
  font-size: 2.4rem;
  /* PC指定サイズ */
  font-weight: var(--fontWeight-medium);
  margin-bottom: 3rem;
  line-height: 1.6;
}

@media screen and (max-width: 768px) {
  .p-safety__head {
    font-size: 1.8rem;
    /* SP指定サイズ */
    margin-bottom: 2rem;
  }
}

/* 本文 */
.p-safety__txt {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 6rem;
  text-align: justify;
}

@media screen and (max-width: 768px) {
  .p-safety__txt {
    font-size: 1.4rem;
    margin-bottom: 4rem;
  }
}

/* 画像 */
.p-safety__img {
  width: 100%;
  margin: 0;
}

.p-safety__img img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}


/* ============================================
      p-contactPage (Contact Page Specific Styles)
  ============================================ */

/* --- p-contactPage --- */
.p-contactPage {
padding-bottom: 12rem;
position: relative;
}

@media screen and (max-width: 768px) {
.p-contactPage {
  padding-bottom: 8rem;
}
}

/* 縦書きタイトル */
.p-contactPage__ttlArea {
position: absolute;
top: 7rem;
left: calc(50% - 62rem);
/* コンテンツ幅基準 */
z-index: 2;
background-color: #fff;
/* 白座布団 */
padding: 3rem 1.5rem;
display: flex;
justify-content: center;
align-items: center;
}

.p-contactPage__ttl {
writing-mode: vertical-rl;
font-family: var(--fontFamily-serif);
/* 明朝体 */
font-size: 2.8rem;
/* PC: 28px */
letter-spacing: 0.2em;
line-height: 1;
color: #000;
font-weight: var(--fontWeight-medium);
}

@media screen and (max-width: 1280px) {
.p-contactPage__ttlArea {
  left: 2rem;
}
}

@media screen and (max-width: 768px) {
.p-contactPage__ttlArea {
  top: 3rem;
  left: 2rem;
  padding: 2.5rem 1rem;
}

.p-contactPage__ttl {
  font-size: 1.8rem;
  /* SPサイズ調整 */
}
}

/* コンテンツ幅 */
.p-contactPage__inner {
max-width: 100rem;
margin: 0 auto;
padding: 0 2rem;
}

/* コンテンツ本体 */
.p-contactPage__content {
margin: 8rem auto 0;
width: 80rem;
/* PCでの幅 */
}

@media screen and (max-width: 1024px) {
.p-contactPage__content {
  width: 100%;
}
}

@media screen and (max-width: 768px) {
.p-contactPage__content {
  margin-top: 24rem;
  /* タイトルの下 */
  width: 100%;
  /* SPでは幅100%（横スクロール防止） */
  box-sizing: border-box;
  margin-left: unset;
  margin-right: unset;
}
}

/* --- p-contactForm (フォーム周りのスタイル) --- */
.p-contactForm {
background-color: #fff;
padding: 6rem;
}

@media screen and (max-width: 768px) {
.p-contactForm {
  padding: 3rem 2rem;
}
}

.p-contactForm__lead {
text-align: center;
margin-bottom: 4rem;
}

.p-contactForm__leadTxt {
font-size: 1.6rem;
line-height: 1.8;
margin-bottom: 1rem;
}

@media screen and (max-width: 768px) {
.p-contactForm__leadTxt {
  font-size: 1.4rem;
  text-align: left;
}
}

.p-contactForm__note {
font-size: 1.2rem;
text-align: right;
}

.u-txt--red {
color: #ff0000;
}

.smf-action {
margin-top: 20px;
}


.p-contactForm button {
background-color: #000 !important;
background-image: none;
border-radius: 3px;
color: #FFF;
cursor: pointer;
display: inline-block;
padding: 20px 10px;
text-decoration: none;
border: none;
outline: 0;
}

/* Snow Monkey Forms: 確認画面・完了画面でリード文を非表示にする */
.p-contactForm:has(.smf-confirm) .p-contactForm__lead,
.p-contactForm:has(.smf-complete) .p-contactForm__lead {
display: none;
}

/* 送信ボタン（黒背景・白文字） */
.smf-button-control__control[data-action="complete"] {
background-color: #000;
color: #fff;
}

.smf-button-control__control[data-action="complete"]:hover {
opacity: 0.7;
}

/* 戻るボタン（白背景・黒文字） */
.smf-button-control__control[data-action="back"] {
background-color: #fff;
color: #000;
}

.smf-button-control__control[data-action="back"]:hover {
background-color: #f2f2f2;
}

/* SPでのボタン調整 */
@media screen and (max-width: 768px) {
.smf-action {
  flex-direction: column-reverse;
  /* 「戻る」を下に配置 */
  gap: 1.5rem;
  margin-top: 4rem;
}

.smf-button-control__control {
  width: 100%;
  min-width: auto;
  padding: 1.2rem 0;
}
}
