body, h1, h2, h3, h4, h5, h6, p, address,
ul, ol, li, dl, dt, dd,
table, caption, th, td, img, form {
    margin: 0;
    padding: 0;
    border: none;
    font-style: normal;
    font-weight: 400;
    font-size: 1.4rem;
    list-style-type: none;
    font-family: YakuHanJP, "Noto Sans JP", sans-serif;
    letter-spacing: 0.1em;
    line-height: 1;
    font-variant-ligatures:none;
}

.barlow-semi-condensed-thin {
  font-family: "Barlow Semi Condensed", sans-serif;
}

figure{
    margin: 0;
    padding: 0;
}

textarea {
    font-size: 100%;
}

*:focus {
outline: none;
}

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

hr{
}

html{
    min-height: 620px;
    height: 100%;
    overflow-y: scroll;
    font-size: 62.5%;

    font-feature-settings: "palt" 1;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    text-align: justify;
    text-justify: inter-ideograph;
}

iframe[name="google_conversion_frame"]{
    position: absolute;
    top: 0;
}

input, button, textarea, select {
    -webkit-appearance: none;
    appearance: none;
}

body {
    height: 100%;
    background: #f0f0f0;
    color: #000;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a{
    color: #000;
    text-decoration: none;
}

a:hover{
    text-decoration: none;
}

input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0;
}

.youtube {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}

.youtube iframe{
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
}

#sampleImgNum, 
.sampleImgNum {
    display: none !important;
}

.link_button a{
    background-color: #000;
    color: #fff;
    text-align: center;
    line-height: 1; 
    padding: 4px 16px;
    border:solid 1px #000;
    border-radius: 12px;
    transition: all ease .5s;
    font-weight: 600;
}

.link_button a:hover{
    background-color: #fff;
    color: #000;
}

.logo_wh{
    display: none;
}

/* サイト背景 3本ライン */
.c-bg-lines {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -10;
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    display: none;
}

.c-bg-lines__line {
    width: 1px;
    background: #D7DADC;
    height: 100%;
}
.c-bg-lines::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    background: #D7DADC;
    transform: translateX(-50%);
}

.c-link-button {
    display: inline-block;
    padding: 16px 20px;
    background-color: #232323;
    color: #fff;
    text-align: center;
    min-width: 100px;
    border: 1px solid #232323;
    transition: all 0.3s;
    font-size: 1.2rem;
    font-weight: 700;
    border-radius: 6px;
}

.c-link-button:hover {
    background-color: #fff;
    color: #232323;
    border-color: #232323;
    opacity: 1;
}

.c-link-button--contact {
    background-color: #232323;
    border-color: #232323;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 6px;
}

.c-link-button--contact:hover::before {
    filter: invert(1);
}

.c-link-button--contact::before {
    content: '';
    display: inline-block;
    width: 1.1em;
    height: 1.1em;
    background-image: url('../images/common/icon_mail.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: filter 0.3s;
}

.c-marquee {
    overflow: hidden;
}
.c-marquee__inner {
    display: flex;
    width: fit-content;
    animation: marquee 160s linear infinite;
}

.c-marquee__text {
    font-size: 20rem;
    font-weight: bold;
    white-space: nowrap;
    padding-right: 48px;
    font-family: "Barlow Semi Condensed", sans-serif;
    letter-spacing: 0.05em;
}

@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

figure[class*="__thumb"] {
    background-color: #eee;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #aaa;
}

.l-header {
    position: fixed;
    width: 100%;
    z-index: 100;
    transition: all 0.3s;
}

.l-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 40px auto;
    width: 92%;
    transition: all 0.3s;
}

.scroll_body .l-header {
    background-color: #fff;
    box-shadow: 4px 16px 12px 4px rgba(0,0,0,0.05);
}

.scroll_body .l-header__inner {
    margin: 12px auto;
}

.scroll_body .l-header__mega-menu {
    top: 48px;
}


.l-header__logo img {
    height: 40px;
}

.l-header__nav-list {
    display: flex;
    align-items: center;
    gap: 32px;
}

.l-header__nav-item{
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    position: relative;
}

.l-header__nav-item--has-submenu > a {
    display: flex;
    align-items: center;
    gap: 0.4em;
}
.l-header__nav-item--has-submenu > a::after {
    content: '▼';
    font-size: 0.7em;
    display: inline-block;
}
        
.l-header__mega-menu {
    position: fixed;
    top: 72px;
    left: 50vw;
    background: #fff;
    border: 1px solid #eee;
    box-shadow: 0 5px 10px rgba(0,0,0,0.1);
    border-radius: 6px;
    z-index: 110;
    padding: 40px;
    width: 92%;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 10px);
    transition: all 0.3s ease;
}

.l-header__nav-item--has-submenu:hover .l-header__mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.l-header__mega-menu-inner {
    display: flex;
    gap: 40px;
    justify-content: space-between;
}

.l-header__mega-menu__left {
    width: 160px;
    min-width: 160px;
}

.l-header__mega-menu__en-title {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    color: #106A3B;
}

.l-header__mega-menu__jp-title {
    font-weight: 700;
    margin-top: 12px;
    margin-bottom: 40px;
}

.c-link-button--mega-menu {
    width: 100%;
    box-sizing: border-box;
    background-color: #fff;
    color: #232323;
    border: 1px solid #232323;
}
.c-link-button--mega-menu:hover {
    background-color: #232323;
    color: #fff !important;
}

.l-header__mega-menu__right {
    width: 100%;
}

.l-header__mega-menu__grid {
    display: flex;
    gap: 2%;
    justify-content: flex-end;
}

.l-header__nav-item--business .l-header__mega-menu__grid {
    gap: 3%;
}
.l-header__nav-item--company .l-header__mega-menu__grid {
}
.l-header__nav-item--recruit .l-header__mega-menu__grid {
    gap: 3%;
}

.l-header__mega-menu__grid-item {
    width: 20%;
}

.l-header__nav-item--business .l-header__mega-menu__grid-item {
    width: 20%;
}

.l-header__nav-item--recruit .l-header__mega-menu__grid-item {
    width: 20%;
}

.l-header__mega-menu__thumb {
    width: 100%;
    padding-top: 56%;
    background-size: cover;
    background-position: center;
    background-color: #eee;
    margin-bottom: 16px;
    position: relative;
}

.l-header__mega-menu__thumb a{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.l-header__mega-menu__grid-item > a {
    display: inline-block;
    position: relative;
    padding-right: 28px;
    margin-bottom: 8px;
}
.l-header__mega-menu__grid-item > a::after {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url('../images/common/icon_yellow_arrow.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}
.l-header__mega-menu__grid-item > a:hover::after {
    transform: translateY(-50%) translateX(5px);
}

.l-header__mega-menu__item-title {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.2;
}

.l-header__mega-menu__sub-list {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.l-header__mega-menu__sub-list-item a {
    font-size: 1.2rem;
    font-weight: 500;
    padding: 4px 0 4px 1.5em;
    position: relative;
    display: block;
}
.l-header__mega-menu__sub-list-item a::before {
    content: '▶';
    color: #F4BF4F;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%) scale(0.7);
    font-size: 1em;
}

.no_link{
     pointer-events: none;
}

.l-header__nav-item--contact{
    margin-left: 16px;
}

.l-footer {
    background-color: #232323;
    color: #fff;
    padding-top: 120px;
    overflow: hidden;
}

.l-footer__inner {
    max-width: 1200px;
    margin: 0 auto 64px;
    display: flex;
    justify-content: space-between;
    gap: 120px;
    width: 92%;
    position: relative;
    padding-bottom: 64px;
}

.l-footer__info-logo img { height: 30px; margin-bottom: 15px; }
.l-footer__info-address {
    font-style: normal;
    line-height: 2;
    font-size: 1.2rem;
    margin-top: 32px;
}
.l-footer__sitemap {
    display: flex;
    gap: 40px;
}

.l-footer__sitemap__left{
    display: flex;
    gap: 40px;   
}

.l-footer__info-address a[href^="tel:"] {
    color: #fff; 
}

.l-footer__sitemap__right{
    display: flex;
    gap: 40px;   
}

.l-footer__sitemap-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.l-footer__sitemap-item {
    line-height: 1.4;
    letter-spacing: 0.01em;
}

.l-footer__sitemap-item--large { font-weight: bold;}

.l-footer__sitemap-item a{ color: #fff}

.l-footer__sitemap-item--medium {
    font-size: 1.2rem;
}
.l-footer__sitemap-item--small {
    padding-left: 16px;
    font-size: 1.2rem;
}

.footer-copyright {
    position: absolute;
    bottom: 0;
    left: 0;
    font-size: 1.2rem;
}

.c-marquee--footer{
    background-color: #fff;
}

.c-marquee--footer .c-marquee__inner{
    margin-top: -20px;
}

.c-marquee--footer .c-marquee__text{
    color: #232323;
}

.p-hero {
    padding: 130px 0 0;
    min-height: 84vh;
    position: relative;
    overflow: hidden;
    min-height: calc(100vh - 130px);
}
                
.p-hero__bg-slider {
    position: absolute;
    inset: 0;
    z-index: 1;
    top: 130px;
}

.p-hero__bg-slider .swiper-wrapper {
    left: 4%;
}

.p-hero__bg-slider .swiper-slide {
    background-color: ghostwhite;
    overflow: hidden;
}

.p-hero__bg-slider .swiper-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center center;
    z-index: 1;
    transform: scale(1.1) translateY(4%);
    transition: transform 0s linear;
    margin-right: 8%;
}

.p-hero__bg-slider .swiper-slide-active::after,
.p-hero__bg-slider .swiper-slide-duplicate-active::after,
.p-hero__bg-slider .swiper-slide-prev::after {
    transform: scale(1.1) translateY(-4%);
    transition: transform 10s linear;
}

.p-hero__bg-slider .swiper-slide--1::after { background-image: url(../images/home/home_mainimage_01.jpg); }
.p-hero__bg-slider .swiper-slide--2::after { background-image: url(../images/home/home_mainimage_02.jpg); }
.p-hero__bg-slider .swiper-slide--3::after { background-image: url(../images/home/home_mainimage_03.jpg); }
        
.p-hero__nav-container {
    position: absolute;
    bottom: 40px;
    left: 4%;
    margin-left: 80px;
    z-index: 10;
    display: flex;
    gap: 10px;
}
        
.p-hero__nav-arrow {
    position: relative;
    top: auto;
    transform: none;
    z-index: 10;
    width: 64px;
    height: 48px;
    border: 1px solid #fff;
    cursor: pointer;
    transition: background-color 0.3s;
}

.p-hero__nav-arrow:hover {
    background-color: #f0f0f0;
}
.p-hero__nav-arrow::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
}
.p-hero__nav-arrow--prev {
    left: auto;
}
.p-hero__nav-arrow--prev::after {
    transform: translate(-30%, -50%) rotate(-45deg);
}
.p-hero__nav-arrow--next {
    right: auto;
}
.p-hero__nav-arrow--next::after {
    transform: translate(-70%, -50%) rotate(135deg);
}
.p-hero__nav-arrow.swiper-button-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
        
.p-hero__pagination-wrapper {
    position: absolute;
    top: 50%;
    left: 1.5%;
    z-index: 10;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-weight: 600;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.2;
    height: 120px;
    transform: translate(0, -50%);
}

.p-hero__pagination-progressbar {
    position: relative;
    width: 1px !important;
    height: 80px !important;
    background: #232323;
    margin: 4px 0;
    overflow: hidden;
}

.p-hero__pagination-progressbar .swiper-pagination-progressbar-fill {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #232323;
    transform-origin: top;
}

.p-hero__pagination-current,
.p-hero__pagination-total {
    display: block;
}

.p-hero__movie{
    position: absolute;
    top: 50%;
    right: 4%;
    height: 120px;
    z-index: 10;
    width: 240px;
    transform: translate(0, -50%);
}

.p-hero__movie video {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.p-hero__catchcopy {
    z-index: 2;
    position: absolute;
    top: 58%;
    left: 4%;
    transform: translate(0, -50%);
    margin-left: 80px;
}

.p-hero__catchcopy h2 {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 6.4rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: #f4bf4f;
    line-height: 1.2;
}

.p-hero__pickup {
    position: absolute;
    bottom: 0px;
    right: 0;
    background: #f0f0f0;
    padding: 16px;
    z-index: 3;
    width: 400px;
    box-sizing: border-box;
}

.p-hero__pickup-title {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 1.6rem;
    margin-bottom: 16px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.p-hero__pickup-item {
    display: flex;
    gap: 16px;
    align-items: center;
    position: relative;
}

.p-hero__pickup-item a{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-hero__pickup-thumb {
    width: 56%;
    height: 0;
    padding-top: 24%;
    background-size: cover;
    background-position: center;
}

.p-hero__pickup-body{
    width: 100%;
}

.p-hero__pickup-date {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 8px;
}

.p-hero__pickup-item-title {
    font-weight: bold;
}
        
.p-hero__marquee {
    margin-top: -24px;
}

.p-hero__marquee .c-marquee__text {
color: #fff;
}

/* p-news */
.p-news {
    padding: 40px 0 80px;
}

.p-news__inner {
    display: flex;
    gap: 80px;
    margin-left: 4%;
}

.p-news__header {
    justify-content: space-between;
    align-items: flex-end;
}

.p-news__heading-area {
    margin-bottom: 48px;
}

.p-news__heading-en {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 4rem;
    font-weight: bold;
    color: #106A3B;
    margin-bottom: 8px;
}

.p-news__heading-jp {
    font-weight: 700;
    letter-spacing: 0.01em;
    font-size: 1.2rem;
}
        
.p-news__nav {
    display: flex;
    gap: 10px;
}

.p-news__nav-button {
    width: 64px;
    height: 48px;
    border: 1px solid #ccc;
    cursor: pointer;
    transition: background-color 0.3s;
    position: relative;
}

.p-news__nav-button:hover { background-color: #f0f0f0; }
.p-news__nav-button::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-top: 2px solid #333;
    border-left: 2px solid #333;
}
.p-news__nav-button--prev::after {
    transform: translate(-30%, -50%) rotate(-45deg);
}
.p-news__nav-button--next::after {
    transform: translate(-70%, -50%) rotate(135deg);
}
.p-news__nav-button.swiper-button-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.p-news__content-area { overflow: hidden; }

.p-news__slider {
    border-left: 1px solid;
}

.p-news__slide-item {
    padding: 16px 40px;
    border-right: solid 1px #abb8c3;
    box-sizing: border-box;
    width: 44%;
    display: flex;
    align-items: center;
    gap: 24px;
    position: relative;
}

.p-news__slide-item a{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-news__item-thumb {
    background-color: ghostwhite;
    width: 40%;
    height: 0;
    padding-top: 32%;
    background-size: cover;
    background-position: center;
}

.p-news__item-body {}

.p-news__item-cat {
    color: #F4BF4F;
    font-family: "Barlow Semi Condensed", sans-serif;
    margin-bottom: 32px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.p-news__item-date {
    margin-bottom: 8px;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.p-news__item-title {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.p-concept {
    padding: 80px 0 160px;
}

.p-concept__inner {
    max-width: 1200px;
    margin: 0 auto;
    width: 92%;
}

.p-concept__heading {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 4rem;
    margin-bottom: 80px;
    font-weight: 700;
    letter-spacing: 0.01em;
}
.p-concept__body {

}
.p-concept__body-img {
    width: 80%;
    margin: 0 auto;
}

.p-concept__body-text {
    margin-top: 48px;
    text-align: center;
}
.p-concept__copy-en {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 4.8rem;
    font-weight: bold;
    margin-bottom: 16px;
    letter-spacing: 0.01em;
}

.p-concept__copy-jp {
    font-size: 2rem;
    margin-bottom: 48px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.p-concept__link {
    margin: 0 auto;
    width: 140px;
}

.c-play-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background-color: #000;
    color: #fff;
    border: 1px solid #000;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
}

.c-play-button:hover {
    background-color: #fff;
    color: #000;
}

.c-play-button__triangle {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 14px 0 14px 26px;
    border-color: transparent transparent transparent currentColor;
    margin-bottom: 12px;
    margin-left: 4px;
}

.c-play-button__text {
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    font-family: sans-serif;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 1.6rem;
}

.c-video-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.c-video-modal.is-active {
    display: flex;
    opacity: 1;
    visibility: visible;
}

.c-video-modal__content {
    position: relative;
    width: 90%;
    max-width: 800px;
    background: #000;
    z-index: 1;
    box-shadow: 0 0 20px rgba(0,0,0,0.5);
    transform: scale(0.95);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.c-video-modal.is-active .c-video-modal__content {
    transform: scale(1);
}

.c-video-modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    cursor: pointer;
}

.c-video-modal__close {
    position: absolute;
    top: -45px;
    right: 0;
    background: none;
    border: none;
    color: #fff;
    font-size: 32px;
    cursor: pointer;
    line-height: 1;
    padding: 10px;
    transition: opacity 0.3s;
}
.c-video-modal__close:hover {
    opacity: 0.7;
}

.c-video-modal__video-wrapper {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
}

.c-video-modal__video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


/* p-about */
.p-about {
    position: relative;
    color: #fff;
    height: 100vh;
    padding: 160px 0 80px;
    box-sizing: border-box;
    overflow: hidden;
}

.p-about__video-bg {
    position: absolute;
    inset: 0;
    background-color: #555;
    z-index: 1;
}
        
.p-about__video-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 2;
}
        
.p-about__video-bg video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 1;
    object-fit: cover;
}

.p-about__inner {
    position: relative;
    z-index: 3;
    margin: 0 auto;
    width: 88%;
    height: 100%;
    max-width: 1200px;
}

.p-about__heading {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 4rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.p-about__body {
    position: absolute;
    bottom: 0;
    left: 0;
}

.p-about__copy {
    font-size: 3.2rem;
    line-height: 1.4;
    margin-bottom: 40px;
    font-weight: 600;
}

.p-about__text {
    line-height: 1.8;
    margin-bottom: 40px;
}

.p-about__link .c-link-button{
    background-color: unset;
    border: solid #fff 1px;
}

.p-about__link .c-link-button:hover {
    background-color: #fff;
    color: #232323;
}

/* p-business */
.p-business {
    padding: 160px 0 80px;
}

.p-business__inner {
    max-width: 1200px;
    margin: 0 auto 48px;
    width: 92%;
    display: flex;
    align-items: flex-start;
    gap: 80px;
}

.p-business__heading {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 4rem;
    font-weight: bold;
    color: #106A3B;
}
.p-business__lead {}
.p-business__lead-copy {
    font-size: 3.2rem;
    margin-bottom: 24px;
    font-weight: 700;
    line-height: 1.4;
    vertical-align: top;
}
.p-business__lead-text {
    line-height: 1.8;
    width: 440px;
}
        
.p-business__section {
    margin-bottom: 40px;
    margin: 0 auto 48px;
    max-width: 1200px;
    width: 92%;
}

.p-business__section-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: 120px;
    background: #fff;
    box-sizing: border-box;
    padding: 64px;
    border-radius: 12px;
}

.p-business__section--engineering .p-business__section-inner {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.p-business__section-content {
    width: 50%;
}

.p-business__section-bg {
    width: 50%;
    background-size: cover;
    background-position: center;
}

.p-business__section-bg--manufacturing{
    background-image: url(../images/home/home_manufacturing.jpg);
}

.p-business__section-bg--engineering{
    background-image: url(../images/home/home_paving.jpg);
}

.p-business__section-bg--recycling{
    background-image: url(../images/home/home_recycle.jpg);
}

.p-business__section-bg--quality{
    background-image: url(../images/home/home_quality.jpg);
}

.p-business__section-heading-area {
    margin-bottom: 64px;
}

.p-business__section-heading-en {
    font-size: 1.6rem;
    font-weight: bold;
    color: #F4BF4F;
    font-family: "Barlow Semi Condensed", sans-serif;
    letter-spacing: 0.01em;
    margin-bottom: 24px;
}

.p-business__section-heading-jp {
    font-size: 2.4rem;
    font-weight: 700;
}

.p-business__section-text {
    margin-bottom: 32px;
    line-height: 1.8;
}

.p-business__section-link .c-link-button{
    background-color: #fff;
    color: #232323;
    min-width: 120px;
}

.p-business__section-link .c-link-button:hover {
    background-color: #232323;
    color: #fff;
}
        
.p-business__section-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
}

.p-business__section-list-item a {
    position: relative;
    padding-right: 30px;
    display: inline-block;
    font-weight: bold;
    text-decoration: underline;
}

.p-business__section-list-item a::after {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url('../images/common/icon_yellow_arrow.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}

.p-business__section-list-item a:hover::after {
    transform: translateY(-50%) translateX(5px);
}

.p-business__works {
    max-width: 1200px;
    margin: 0 auto 0;
    background-color: #fff;
    box-sizing: border-box;
    padding: 64px;
    border-bottom-right-radius: 12px;
    border-bottom-left-radius: 12px;
}

.p-business__works-heading {
    font-size: 2rem;
    margin-bottom: 32px;
    font-weight: 600;
    border-bottom: solid #F4BF4F 2px;
    padding-bottom: 20px;
}

.p-business__works-list {
    display: flex;
    gap: 4%;
}

.p-business__works-list .p-business__works-item {
    width: 22%;
}

.p-business__works-list .p-business__works-item:hover .p-works-archive__thumb img {
    transform: scale(1.08);
}

.p-business__works-item {}

.p-business__works-thumb{
    background-color: ghostwhite;
    width: 100%;
    height: 0;
    padding-top: 64%;
    margin-bottom: 16px;
}

.p-business__works-body {}
.p-business__works-title {
font-weight: 600;
}

.p-business__works-tags { display: flex; gap: 5px; margin-top: 10px; }
.p-business__works-tag a {}

/* p-recruit */
.p-recruit {
    padding: 80px 0 0;
}

.p-recruit__heading-area {
    margin: 0 auto;
    width: 92%;
    max-width: 1200px;
}

.p-recruit__heading {
    font-size: 3.2rem;
    margin-bottom: 40px;
    font-family: "Barlow Semi Condensed", sans-serif;
    color: #106A3B;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.p-recruit__body {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: stretch; 
    gap: 120px;
    width: 92%;
}

.p-recruit__content {
    flex: 1;
}

.p-recruit__content-lead{
    margin-bottom: 40px;
}

.p-recruit__copy {
    font-size: 3.3rem;
    line-height: 1.4;
    margin-bottom: 32px;
    font-weight: 700;
}

.p-recruit__text-area {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}

.p-recruit__text {
    line-height: 1.8;
}

.p-recruit__link .c-link-button {
    background-color: #106A3B;
    border-color: #106A3B;
}
.p-recruit__link .c-link-button:hover {
    background-color: #fff;
    color: #106A3B;
}

.p-recruit__links-area {
    display: block;
}

.p-recruit__links-item {
    padding: 32px;
    border-bottom: solid 1px;
    display: flex;
    gap: 24px;
    align-items: center;
    position: relative;
    transition: background-color 0.3s;
}
.p-recruit__links-item:hover {
    background-color: #f9f9f9;
}

.p-recruit__links-item::after {
    content: '';
    position: absolute;
    right: 32px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background-image: url('../images/common/icon_link_arrow.svg');
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.3s ease;
}
.p-recruit__links-item:hover::after {
    transform: translateY(-50%) translateX(5px);
}

.p-recruit__links-thumb {
    background-color: ghostwhite;
    width: 32%;
    height: 0;
    padding-top: 24%;
    background-size: cover;
    background-position: center;
}

.p-recruit__links-thumb--message {
    background-image: url(../images/home/home_recruit_message.jpg);
}

.p-recruit__links-thumb--interview {
    background-image: url(../images/home/home_recruit_interview.jpg);
}

.p-recruit__links-thumb--jobs {
    background-image: url(../images/home/home_recruit_job.jpg);
}

.p-recruit__links-body {
}

.p-recruit__links-en {
    font-weight: bold;
    color: #F4BF4F;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 2rem;
    margin-bottom: 12px;
}

.p-recruit__links-jp {
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 0.05em;
}
        
.p-recruit__bg-image {
    flex: 1;
    background-color: #eee;
    background-position: center;
    background-image: url(../images/home/home_recruit_main.jpg);
    background-size: cover;
}

/* p-contact */
.p-contact {
    position: relative;
    padding: 320px 0;
    overflow: hidden;
}

.p-contact__inner {
    max-width: 560px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

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

.p-contact__heading-area {
    margin-bottom: 40px;
}

.p-contact__heading-en {
    font-weight: bold;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 8rem;
    letter-spacing: 0.01em;
    margin-bottom: 8px;
}

.p-contact__heading-jp {
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}
.p-contact__text {
    line-height: 1.6;
    margin-bottom: 40px;
    font-weight: 500;
}

.p-contact__info-area{
    background-color: #fff;
    border-radius: 8px;
    padding: 40px;
    box-sizing: border-box;
}

.p-contact__info-title {
    font-weight: bold;
    font-size: 1.6rem;
    margin-bottom: 40px;
}

.p-contact__tel-area { margin: 10px 0 30px; }
.p-contact__tel {
    font-size: 5.6rem;
    font-weight: bold;
    color: #106A3B;
    letter-spacing: 0.01em;
    font-family: "Barlow Semi Condensed", sans-serif;
}

.p-contact__tel a[href^="tel:"] {
    color: #106A3B; 
}

.p-contact__tel small {
    font-size: 1.6rem;
    margin-right: 8px;
    font-weight: 800;
}

.p-contact__tel-note {
    color: #106A3B;
    font-weight: 600;
    letter-spacing: 0.01em;
    margin-top: 16px;
}

.p-contact__link .c-link-button--contact {
    background-color: #106A3B;
    border-color: #106A3B;
}
.p-contact__link .c-link-button--contact:hover {
    background-color: #fff;
    color: #106A3B;
}

.p-contact__parallax-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.p-contact__parallax-img {
    position: absolute;
    width: 160px;
    opacity: 0.5;
}

.p-contact__parallax-img--1 {
    top: 8%;
    left: 4%;
}
.p-contact__parallax-img--2 { top: 50%; left: 15%; }
.p-contact__parallax-img--3 {
    top: 80%;
    left: 8%;
}
.p-contact__parallax-img--4 { top: 20%; left: 80%; }
.p-contact__parallax-img--5 { top: 60%; left: 75%; }
.p-contact__parallax-img--6 {
    top: 5%;
    right: 32%;
}
.p-contact__parallax-img--7 { top: 85%; left: 50%; }

.p-contact__parallax-img--8 {
    top: 24%;
    left: 26%;
}

.p-contact__parallax-img--9 {
    top: 80%;
    right: 4%;
}

.p-contact__parallax-img--10 {
    top: 90%;
    left: 32%;
}

/* ----------------------------------------------
 * single.php (記事詳細ページ)
 * ---------------------------------------------- */

.p-single { 
    padding-top: 160px;
}
.p-single__layout { 
    display: flex;
    justify-content: space-between;
    max-width: 1200px;
    margin: 40px auto 0;
    gap: 40px;
    align-items: flex-start;
    width: 92%;
    position: relative;
}

.p-single__layout-main { 
    flex: 1;
    background: #fff;
    padding: 64px;
    border-radius: 12px;
    box-sizing: border-box;
}

.p-single__layout-sidebar { 
    flex: 0 0 280px;
    width: 280px;
    background: #fff;
    padding: 32px;
    border-radius: 12px;
    box-sizing: border-box;
    height: auto; 
}


/* 共通ページヘッダー */
.c-page-header {
    width: 92%;
    margin: 0 auto 40px;
    max-width: 1200px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.c-page-heading {
}

.c-page-heading__en {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 4rem;
    font-weight: 700;
    color: #106A3B;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
}

.c-page-heading__jp {
    font-size: 1.2rem;
    font-weight: 700;
    color: #232323;
}

/* 共通パンくず */
.c-breadcrumb {
}
.c-breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    font-size: 1.2rem;
}

.c-breadcrumb__item {
    position: relative;
    padding-right: 12px;
    font-size: 1.2rem;
    font-weight: 600;
}

.c-breadcrumb__item a {
    color: #106a3b;
}
.c-breadcrumb__item:not(:last-child)::after {
    content: '>';
    position: absolute;
    right: -4px;
    top: 0.1em;
    text-decoration: none;
    color: #232323;
}
.c-breadcrumb__item:last-child {
    padding-right: 0;
}

/* 記事本体 */
.p-single-article__header { 
    margin-bottom: 32px;
}
.p-single-article__meta { 
    display: flex;
    gap: 16px;
    align-items: center;
    margin-bottom: 24px;
}

.wp-block-gallery{
    gap: 4% !important;
}

.wp-block-gallery .wp-block-image {
    width: 48% !important;
    margin: 8px 0 !important;
}

.p-single-article__category-label { 
    background: #106A3B;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    padding: 4px 20px;
    border-radius: 20px;
}

.p-single-article__date { 
    font-size: 1.2rem;
    font-weight: 600;
    font-family: "Barlow Semi Condensed", sans-serif;
    color: #606367;
}

.p-single-article__title { 
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.03em;
}

.p-single-article__thumbnail { 
    margin-bottom: 32px;
}
.p-single-article__thumbnail img { 
    width: 100%;
    height: auto;
    border-radius: 8px;
}
.p-single-article__content {
    width: 88%;
    margin: 0 auto;
    line-height: 1.8;
}
.p-single-article__content p { 
    margin-bottom: 16px;
    line-height: 1.8;
}
.p-single-article__content h2,
.p-single-article__content h3,
.p-single-article__content h4 { 
    margin-top: 2.5em;
    margin-bottom: 1.2em;
    font-weight: 700;
    line-height: 1.5;
}
.p-single-article__content h2 { font-size: 2.2rem; } 
.p-single-article__content h3 { font-size: 2rem; } 
.p-single-article__content h4 { font-size: 1.8rem; } 

/* --- テーブル設定 --- */
.p-single-article__content table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 32px;
    border: 1px solid #D7DADC;
}

.p-single-article__content th,
.p-single-article__content td {
    border: 1px solid #D7DADC;
    padding: 14px;
    font-size: 1.4rem;
    line-height: 1.6;
    vertical-align: middle;
    background-color: #fff;
}

.p-single-article__content table thead tr th,
.p-single-article__content table thead tr td,
.p-single-article__content table tr:first-child th,
.p-single-article__content table tr:first-child td {
    background-color: #F5F5F5;
    font-weight: 600;
    color: #232323;
}

.p-single-article__content a{
    color: #106a3b;
    text-decoration: underline;
}

.p-single-article__content img { 
    max-width: 100%;
    height: auto;
    margin: 8px 0;
}

.p-single-article__content .gallery { 
    margin: 32px 0;
}

.p-single-article__content .gallery ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 2%;
}

.p-single-article__content .gallery ul li {
    width: 49%;
}

.p-single-article__content .gallery .gallery-item { 
    width: 100%;
    margin: 0;
}
.p-single-article__content .gallery .gallery-icon img { 
    width: 100%;
    height: auto;
    margin: 0;
}

.p-single-pagination { 
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.p-single-pagination__prev,
.p-single-pagination__next { 
    flex: 1; 
}
.p-single-pagination__back { 
    flex: 0 1 auto; 
    text-align: center;
}
.p-single-pagination__next { 
    text-align: right;
}

/* ページネーションボタン (枠線ボタン) */
.p-single-pagination__button { 
    display: inline-block;
    padding: 16px 20px;
    background: #fff;
    color: #232323;
    border: 1px solid #232323;
    transition: all 0.3s;
    font-size: 1.2rem;
    font-weight: 700;
    border-radius: 6px;
    min-width: 100px;
    text-align: center;
}
.p-single-pagination__button:hover {
    background: #232323;
    color: #fff;
}

/* ページネーション (Prev/Next) リンク */
.p-single-pagination__prev a, .p-single-pagination__next a {
    display: inline-block;
    font-weight: 600;
    transition: all 0.3s;
    position: relative;
}

.p-single-pagination__prev a {
    padding-left: 40px;
    height: 32px;
}

.p-single-pagination__next a {
    padding-right: 40px;
    height: 32px;
}

.p-single-pagination__prev a::before, .p-single-pagination__next a::after {
    content: '';
    font-family: sans-serif;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
.p-single-pagination__prev a::before {
    left: 0;
    transform: translateY(-50%) rotate(180deg);
    background-image: url(../images/common/arrow_right.svg);
    width: 32px;
    height: 32px;
    background-size: cover;
    background-repeat: no-repeat;
    transition: all 0.3s;
}
.p-single-pagination__next a::after {
    right: 0;
    transform: translateY(-50%) rotate(180deg);
    background-image: url(../images/common/arrow_left.svg);
    width: 32px;
    height: 32px;
    background-size: cover;
    background-repeat: no-repeat;
    transition: all 0.3s;
}

.p-single-pagination__prev a:hover:before {
    left: -4px;
}

.p-single-pagination__next a:hover:after {
    right: -4px;
}

.p-single-pagination__prev a span, .p-single-pagination__next a span {
    display: block;
    line-height: 32px;
}

.p-single-sidebar { 
    display: flex;
    flex-direction: column;
    gap: 40px;
    position: sticky;
    top: 100px;
    height: 100%;
}
.p-single-sidebar__widget-title {
    font-size: 1.6rem;
    font-weight: 700;
    padding-bottom: 20px;
    border-bottom: 1px solid #32373c;
    margin-bottom: 24px;
    letter-spacing: 0.05em;
}

/* 最新記事ウィジェット */
.p-single-sidebar__post-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.p-single-sidebar__post-meta { 
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 8px;
}
.p-single-sidebar__post-category { 
    color: #106A3B;
    background: #106A3B;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    padding: 4px 20px;
    border-radius: 20px;
}
.p-single-sidebar__post-date {
    font-size: 1.2rem;
    font-weight: 600;
    font-family: "Barlow Semi Condensed", sans-serif;
    color: #606367;
    letter-spacing: 0.01em;
}
.p-single-sidebar__post-title a { 
    font-weight: 600;
    line-height: 1.4;
    transition: color 0.3s;
}
.p-single-sidebar__post-title a:hover { 
    color: #106A3B;
}

.p-single-sidebar__widget-dropdown {
    width: 100%;
    padding: 12px 16px;
    font-size: 1.4rem;
    border: 1px solid #D7DADC;
    border-radius: 6px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23333' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
    cursor: pointer;
}
.p-single-sidebar__widget-dropdown:hover {
    border-color: #aaa;
}


/* ----------------------------------------------
 * page-news.php (お知らせ一覧)
 * ---------------------------------------------- */

/* ページラッパー */
.p-news-archive {
    padding-top: 160px;
}

/* 2カラムレイアウト (サイドバー左) */
.p-news-archive__layout.l-two-column--sidebar-left {
    display: flex;
    max-width: 1200px;
    margin: 40px auto 80px;
    gap: 40px;
    align-items: flex-start;
    width: 92%;
}
.p-news-archive__layout.l-two-column--sidebar-left .l-two-column__sidebar {
    flex: 0 0 240px;
    width: 240px;
}
.p-news-archive__layout.l-two-column--sidebar-left .l-two-column__main {
    flex: 1;
    min-width: 0; /* flex-shrink対策 */
}

/* サイドバー */
.p-news-archive__sidebar {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-sizing: border-box;
    position: sticky;
    top: 100px; /* スクロール追従 */
}
.p-news-archive__widget {
    margin-bottom: 48px;
}
.p-news-archive__widget:last-child {
    margin-bottom: 0;
}

/* カテゴリ一覧 */
.p-news-archive__category-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.p-news-archive__category-item a {
    display: block;
    padding: 8px 12px;
    border: 1px solid #D7DADC;
    border-radius: 16px;
    font-weight: 600;
    transition: all 0.3s;
    text-align: center;
    font-size: 1.2rem;
    width: 100px;
}

.p-news-archive__category-item a:hover {
    background-color: #106a3b;
    color: #fff;
    border-color: #106a3b;
}

.p-news-archive__category-item.is-active a {
    background: #106A3B;
    color: #fff;
    border-color: #106A3B;
}

/* 過去の記事 */
.p-news-archive__widget-title {
    font-size: 1.6rem;
    font-weight: 700;
    padding-bottom: 20px;
    border-bottom: 2px solid #32373c;
    margin-bottom: 24px;
    letter-spacing: 0.05em;
}
.p-news-archive__widget-dropdown {
    width: 100%;
    padding: 12px 16px;
    font-size: 1.4rem;
    border: 1px solid #D7DADC;
    border-radius: 6px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23333' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    font-size: 1.2rem;
    font-weight: 600;
}
.p-news-archive__widget-dropdown:hover {
    border-color: #aaa;
}

/* メインコンテンツ */
.p-news-archive__main {
    background: #fff;
    border-radius: 12px;
    padding: 64px;
    box-sizing: border-box;
}

/* 記事一覧グリッド */
.p-news-archive__post-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 4%;
}
.p-news-archive__post-item {
    display: block;
    color: #232323;
}

/* (3) サムネイルホバーエフェクト */
.p-news-archive__post-thumb-link {
    display: block;
    overflow: hidden; 
    border-radius: 8px;
    margin-bottom: 12px;
}
.p-news-archive__post-thumb {
    margin-bottom: 0;
    width: 100%;
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #f0f0f0; 
    transition: transform 0.4s ease; 
}

.p-news-archive__post-thumb-link:hover .p-news-archive__post-thumb {
    transform: scale(1.08); 
}

.p-news-archive__post-meta {
    display: flex;
    flex-wrap: wrap; 
    gap: 12px;
    align-items: center;
}
.p-news-archive__post-date {
    font-size: 1.2rem;
    font-weight: 600;
    font-family: "Barlow Semi Condensed", sans-serif;
    color: #606367;
    order: 1;
}
.c-category-label {
    background: #106A3B;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    padding: 4px 16px;
    border-radius: 20px;
}

.p-news-archive__post-meta .c-category-label {
    order: 2; 
    font-size: 1.1rem; 
    padding: 3px 12px;
}

.p-news-archive__post-title {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    margin-top: 8px;
    letter-spacing: 0.03em;
}
.p-news-archive__post-title a {
    transition: color 0.3s;
}
.p-news-archive__post-title a:hover {
    color: #106A3B; 
}

.p-news-archive__no-posts {
    grid-column: 1 / -1;
    text-align: center;
    font-size: 1.6rem;
    padding: 40px;
}

/* ページネーション */
.c-pagination {
    margin-top: 80px;
    display: flex;
    align-items: center;
    gap: 24px;
    justify-content: center;
}
.c-pagination .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}
.c-pagination .page-numbers {
    font-weight: 600;
    font-family: "Barlow Semi Condensed", sans-serif;
    transition: all 0.3s;
}
.c-pagination .page-numbers:hover {
}
.c-pagination .page-numbers.current {
    border-bottom: solid 2px #106a3b;
}

.c-pagination .prev, .c-pagination .next {
    font-size: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    width: 32px;
    height: 32px;
    display: block;
    margin: 0 16px;
}

.c-pagination .prev {
    background-image: url('../images/common/arrow_left.svg');
}
.c-pagination .next {
    background-image: url('../images/common/arrow_right.svg');
}

.c-pagination .dots {
    border: none;
}

/* ----------------------------------------------
 * 共通フッター (Recruit/Contact)
 * ---------------------------------------------- */

.c-common-footer-wrapper {
    position: relative;
    overflow: hidden;
    z-index: 1;
    margin-top: 160px;
}

.c-common-footer__bg {
    position: absolute;
    top: -50%;
    left: 0;
    width: 100%;
    height: 200%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
    background-image: url('../images/common/common_footer_bg.jpg');
}

.c-common-footer {
    padding: 120px 0;
    position: relative;
    color: #232323;
}
.c-common-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
}
.c-common-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    position: relative;
    z-index: 2;
    width: 92%;
    box-sizing: border-box;
}
.c-common-footer__recruit-box, .c-common-footer__contact-box {
    background: #fff;
    padding: 40px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
}

.c-common-footer .c-page-heading {
    width: 160px;
}

.c-common-footer__content {
}
.c-common-footer__text {
    line-height: 1.8;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.p-contact__info-title {
    margin-bottom: 12px;
} 
.c-common-footer__button-area {
    margin-top: 32px;
}

.c-common-footer .c-page-heading__en {
    margin-bottom: 16px;
    letter-spacing: 0.01em;
}

.c-link-button--green {
    background-color: #106A3B;
    border-color: #106A3B;
    width: 100%;
    box-sizing: border-box;
    font-size: 1.4rem;
}
.c-link-button--green:hover {
    background-color: #fff;
    color: #106A3B;
}

.c-common-footer__contact-content {
}
.c-common-footer__contact-info {
    flex: 1;
}

.c-common-footer .p-contact__info-title {
    margin-bottom: 8px;
    font-size: 1.4rem;
}

.c-common-footer__contact-content .p-contact__tel {
    font-size: 3.6rem;
}
.c-common-footer__contact-content .p-contact__link {
    flex-shrink: 0; 
}

.c-common-footer__contact-content .c-link-button--contact {
    background-color: #106A3B;
    border-color: #106A3B;
}
.c-common-footer__contact-content .c-link-button--contact:hover {
    background-color: #fff;
    color: #106A3B;
}
.c-common-footer__contact-content .c-link-button--contact:hover::before {
    filter: invert(1); 
}


/* ----------------------------------------------
 * page-contact.php (お問い合わせ)
 * ---------------------------------------------- */

/* ページラッパー */
.p-contact-form {
    padding-top: 160px;
}

.p-contact-form__layout.l-two-column--sidebar-left {
    display: flex;
    max-width: 1200px;
    margin: 40px auto 80px;
    gap: 40px;
    align-items: flex-start;
    width: 92%;
}

.p-contact-form__layout.l-two-column--sidebar-left .l-two-column__sidebar {
    flex: 0 0 320px;
    width: 320px;
}

.p-contact-form__layout.l-two-column--sidebar-left .l-two-column__main {
    flex: 1;
    min-width: 0; /* flex-shrink対策 */
}

/* サイドバー */
.p-contact-form__sidebar {
    position: sticky;
    top: 110px;
    display: flex;
    flex-direction: column;
    /* gap: 32px; */
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-sizing: border-box;
}

.p-contact-form__sidebar-info,
.p-contact-form__sidebar-tel-box {
}

.p-contact-form__sidebar-info{
    border-bottom: solid 1px #727272;
    padding-bottom: 40px;
    margin-bottom: 40px;
}

.p-contact-form__sidebar-text {
    font-size: 1.4rem;
    line-height: 1.8;
    margin-bottom: 24px;
}
.p-contact-form__sidebar-note {
    font-size: 1.2rem;
    font-weight: 600;
}

.p-contact-form__required-tag {
    background: #106A3B;
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    padding: 4px 16px;
    border-radius: 16px;
    margin-right: 12px;
}

/* サイドバー 電話 (デザインカンプのスタイル) */
.p-contact-form__sidebar-tel-title {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 16px;
}
.p-contact-form__sidebar-tel {
    font-size: 3.2rem;
    font-weight: 700;
    color: #106A3B;
    font-family: "Barlow Semi Condensed", sans-serif;
    letter-spacing: 0.05em;
}
.p-contact-form__sidebar-tel small {
    font-size: 1.6rem;
    font-family: "Noto Sans JP", sans-serif;
    margin-right: 0.2em;
}
.p-contact-form__sidebar-tel-note {
    font-size: 1.2rem;
    font-weight: 600;
    color: #106A3B;
    margin-top: 8px;
}


/* メインコンテンツ (フォーム) */
.p-contact-form__main {
}
.p-contact-form__form-wrapper {
    background: #fff;
    border-radius: 12px;
    padding: 64px 64px 48px;
    box-sizing: border-box;
    border: solid 1px #32373c;
}
.p-contact-form__form {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.p-contact-form__item {
    margin-bottom: 32px;
}
.p-contact-form__item--horizontal {
    display: flex;
    align-items: center;
    gap: 32px;
    border-bottom: 1px solid #D7DADC;
    padding-bottom: 32px;
}

.p-contact-form__item--horizontal .p-contact-form__label {
    flex: 0 0 200px;
    margin-bottom: 0;
}

.p-contact-form__label .p-contact-form__required-tag{
    margin-right: 0;
    margin-left: 12px;
}

.p-contact-form__item--horizontal .p-contact-form__input {
    flex: 1;
}
.p-contact-form__item--horizontal .p-contact-form__input input {
}
.p-contact-form__item--vertical .p-contact-form__label {
    margin-bottom: 24px;
}
.p-contact-form__item--radio .p-contact-form__label {
    margin-bottom: 24px;
}

.p-contact-form__label {
    display: block;
    font-size: 1.4rem;
    font-weight: 700;
}

/* フォーム入力欄 */
.p-contact-form__input input[type="text"], .p-contact-form__input input[type="email"], .p-contact-form__input input[type="tel"], .p-contact-form__input textarea {
    width: 100%;
    padding: 12px 16px;
    font-size: 1.6rem;
    border: none;
    border-radius: 6px;
    background-color: #F1F3F4;
    box-sizing: border-box;
    font-family: inherit;
}
.p-contact-form__input textarea {
    line-height: 1.6;
}
.p-contact-form__input input::placeholder,
.p-contact-form__input textarea::placeholder {
    color: #aaa;
}
.wpcf7-not-valid-tip {
    color: #D9534F;
    font-size: 1.2rem;
    font-weight: 600;
    margin-top: 8px;
    display: none; 
}
.wpcf7-form-control-wrap.invalid .wpcf7-not-valid-tip {
    display: block; 
}
.wpcf7-form-control-wrap.invalid input,
.wpcf7-form-control-wrap.invalid textarea {
    border: 1px solid #D9534F !important; 
}


.p-contact-form__input input[type="radio"],
.p-contact-form__privacy input[type="checkbox"] {
    -webkit-appearance: revert;
    appearance: revert;
    width: 1.3em;
    height: 1.3em;
    accent-color: #106A3B;
    border: 2px solid #aaa;
    background-color: #fff;
    border-radius: 50%;
    vertical-align: middle;
    cursor: pointer;
}
.p-contact-form__privacy input[type="checkbox"] {
    border-radius: 2px;
}
.p-contact-form__input input[type="radio"]:checked {
    background-color: #106A3B;
    border-color: #106A3B;
}
.p-contact-form__privacy input[type="checkbox"]:checked {
    background-color: #106A3B;
    border-color: #106A3B;
}

/* (3) ラジオボタン (横並び) */
.p-contact-form__input--radio {
    display: flex;
    gap: 16px; 
    flex-wrap: wrap; 
    flex-direction: row; 
}
.p-contact-form__radio-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    background-color: #F1F3F4;
    padding: 16px 20px 12px 12px; 
    flex-grow: 1;
    min-width: 250px;
}
.p-contact-form__radio-wrap label {
    font-size: 1.4rem;
    font-weight: 600;
}

/* プライバシー (チェックボックス) */
.p-contact-form__privacy {
    text-align: center;
    margin-top: 8px;
    margin-bottom: 32px;
}
.p-contact-form__checkbox-wrap,
.wpcf7-acceptance .wpcf7-list-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    cursor: pointer;
}
.p-contact-form__checkbox-wrap label,
.wpcf7-list-item-label {
    font-size: 1.4rem;
    font-weight: 600;
    cursor: pointer;
}
.p-contact-form__checkbox-wrap label a,
.wpcf7-list-item-label a { 
    color: #106A3B;
    text-decoration: underline;
}

/* 送信ボタン */
.p-contact-form__submit {
    text-align: center;
    margin-top: 8px;
}
.p-contact-form__submit .c-link-button {
    min-width: 280px;
    margin-bottom: 24px;
}
.p-contact-form__submit button[disabled] {
    background-color: #ccc;
    border-color: #ccc;
    color: #777;
    cursor: not-allowed;
    opacity: 1; 
}
.p-contact-form__submit button[disabled]:hover {
    background-color: #ccc;
    border-color: #ccc;
    color: #777;
}


/* ----------------------------------------------
 * 共通フッター 
 * ---------------------------------------------- */
.c-common-footer-wrapper {
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.c-common-footer__bg {
    position: absolute;
    top: -50%;
    left: 0;
    width: 100%;
    height: 200%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
}
.c-common-footer {
    padding: 120px 0;
    position: relative;
    color: #232323;
}
.c-common-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1;
}
.c-common-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    position: relative;
    z-index: 2;
    width: 92%;
    box-sizing: border-box;
}
.c-common-footer__recruit-box, .c-common-footer__contact-box {
    background: #fff;
    padding: 40px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
}
.c-common-footer .c-page-heading {
    width: 160px;
}
.c-common-footer__content {
}
.c-common-footer__text {
    line-height: 1.8;
    letter-spacing: 0.03em;
    font-weight: 600;
}
.p-contact__info-title {
    margin-bottom: 12px;
} 
.c-common-footer__button-area {
    margin-top: 32px;
}
.c-common-footer .c-page-heading__en {
    margin-bottom: 16px;
    letter-spacing: 0.01em;
}
.c-link-button--green {
    background-color: #106A3B;
    border-color: #106A3B;
    width: 100%;
    box-sizing: border-box;
    font-size: 1.4rem;
}
.c-link-button--green:hover {
    background-color: #fff;
    color: #106A3B;
}
.c-common-footer__contact-content {
}
.c-common-footer__contact-info {
    flex: 1;
}
.c-common-footer .p-contact__info-title {
    margin-bottom: 8px;
    font-size: 1.4rem;
}
.c-common-footer__contact-content .p-contact__tel {
    font-size: 3.6rem;
}
.c-common-footer__contact-content .p-contact__link {
    flex-shrink: 0;
}
.c-common-footer__contact-content .c-link-button--contact {
    background-color: #106A3B;
    border-color: #106A3B;
}
.c-common-footer__contact-content .c-link-button--contact:hover {
    background-color: #fff;
    color: #106A3B;
}
.c-common-footer__contact-content .c-link-button--contact:hover::before {
    filter: invert(1);
}

.p-company-archive {
    padding-top: 160px;
}
.p-company-archive__layout {
    max-width: 1200px;
    margin: 40px auto 0;
    width: 92%;
}

.p-company-archive__grid {
    display: flex;
    gap: 32px 3%;
    flex-wrap: wrap;
}

.p-company-archive__grid-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    width: 48.5%;
    padding-top: 24%;
}

.p-company-archive__item-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-size: cover;
    background-position: center;
    transition: transform 0.4s ease;
}
.p-company-archive__grid-item:hover .p-company-archive__item-bg {
    transform: scale(1.08);
}

.p-company-archive__item-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 2;
}

.p-company-archive__item-link-wrap {
    display: block;
    height: 100%;
    position: absolute;
    z-index: 3;
    color: #fff;
    text-decoration: none;
    top: 0;
    width: 100%;
}

.p-company-archive__item-content {
    padding: 24px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.p-company-archive__item-title {
    font-size: 1.8rem;
    font-weight: 700;
}

.p-company-archive__item-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    gap: 16px;
}

.p-company-archive__item-text {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.6;
    flex: 1;
}

.p-company-archive__item-text br{
}

.p-company-archive__item-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}


/* ----------------------------------------------
 * page-overview.php (会社概要)
 * ---------------------------------------------- */

.p-overview {
    padding-top: 160px;
}

.p-overview__layout {
    display: flex;
    max-width: 1200px;
    margin: 40px auto 0;
    width: 92%;
    gap: 80px;
    align-items: flex-start;
}
.p-overview__layout .l-two-column__main {
    flex: 1;
    min-width: 0;
    order: 1;
}
.p-overview__layout .l-two-column__sidebar {
    flex: 0 0 240px;
    width: 240px;
    order: 2;
    position: sticky;
    top: 110px;
    height: 100%;
}

.c-anchor-nav__wrapper {
    position: sticky;
    top: 110px;
}
.c-anchor-nav__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.c-anchor-nav__item a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s;
    background-color: #fff;
    color: #232323;
    border: solid 1px #fff;
    box-sizing: border-box;
    gap: 16px;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.c-anchor-nav__item a::after {
    content: '';
    display: inline-block;
    min-width: 20px;
    height: 20px;
    background-image: url('../images/common/icon_ankerlink_arrow.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: filter 0.3s;
    width: 20px;
}

.c-anchor-nav__item a:hover {
    background: #232323;
    border: solid 1px #232323;
    color: #fff;
}
.c-anchor-nav__item a:hover::after {
    filter: invert(1); 
}

.p-overview-main__section {
    background: #fff;
    border-radius: 12px;
    padding: 64px;
    box-sizing: border-box;
    margin-bottom: 40px;
}
.p-overview-main__section:last-child {
    margin-bottom: 0;
}

#info .p-overview-main__section-inner, #related .p-overview-main__section-inner, #clients .p-overview-main__section-inner, #history .p-overview-main__section-inner {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

.p-overview-main__section-header {
    padding-bottom: 64px;
}

#info .p-overview-main__section-header,
#related .p-overview-main__section-header,
#clients .p-overview-main__section-header,
#history .p-overview-main__section-header {
    flex: 0 0 160px;
    padding-bottom: 0;
}

.p-overview-main__definition-list-wrapper {
    flex: 1;
    border-top: solid #106A3B 1px;
    padding-top: 8px;
    border-bottom: solid 1px #106a3b;
    padding-bottom: 8px;
}

.p-overview-main__client-list {
    flex: 1;
}

.p-overview-main__history-timeline{
    flex: 1;
}

.p-overview-main__section-title {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #106A3B;
}

/* --- 代表挨拶 --- */
.p-overview-main__greeting-content {
    display: flex;
    gap: 64px;
    align-items: flex-start;
}

.p-overview-main__greeting-text {
    flex: 1;
}
.p-overview-main__greeting-text p {
    line-height: 2;
    margin-bottom: 2em;
}
.p-overview-main__greeting-text p:last-child {
    margin-bottom: 0;
}
.p-overview-main__greeting-signature {
    text-align: right;
    font-weight: 700;
    margin-top: 24px;
}

.p-overview-main__greeting-image {
    width: 40%;
    aspect-ratio: 1 / 1.4;
    background-size: cover;
    background-position: center;
    background-image: url(../images/company/president_profile_img.jpg);
}

/* --- 会社概要・関連会社  --- */
.c-definition-list {
    display: grid;
    grid-template-columns: 160px 1fr;
}
.c-definition-list__term,
.c-definition-list__desc {
    padding: 24px 0; 
    border-bottom: 1px solid #D7DADC;
}

.c-definition-list__term {
    font-size: 1.4rem;
    font-weight: 700;
    padding-top: 26px;
}
.c-definition-list__desc {
    font-size: 1.4rem;
    line-height: 1.8;
}
.c-definition-list dt:last-of-type,
.c-definition-list dd:last-of-type {
    border-bottom: none;
}

/* --- 主要取引先 --- */
.p-overview-main__client-list {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.p-overview-main__client-group {
    border-top: 1px solid #eee;
    padding-top: 32px;
}
.p-overview-main__client-group:first-child {
    border-top: none;
    padding-top: 0;
}
.p-overview-main__client-group-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 16px;
}
.p-overview-main__client-names {
    font-size: 1.4rem;
    line-height: 1.8;
}
.p-overview-main__client-note {
    font-size: 1.2rem;
    margin-top: 16px;
    color: #666;
}

/* --- 沿革 (ヒストリー) --- */
.p-overview-main__history-timeline {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    border-left: 1.5px solid #ccc;
    margin-left: 120px;
}
.p-overview-main__history-item {
    display: block; 
    position: relative;
    padding-bottom: 32px;
    border-top: none; 
    padding-top: 0; 
}
.p-overview-main__history-item:last-child {
}

.p-overview-main__history-item::before {
    content: '';
    position: absolute;
    left: -9px;
    top: 0;
    width: 16px;
    height: 16px;
    background: #F4BF4F;
    border: 3px solid #fff;
    border-radius: 50%;
    box-sizing: border-box;
    z-index: 2;
}

.p-overview-main__history-era {
    flex: none;
    font-size: 1.6rem; 
    font-weight: 700;
    font-family: "Barlow Semi Condensed", sans-serif;
    color: #106A3B;
    position: absolute;
    left: -120px;
    text-align: right;
    width: 80px;
}

.p-overview-main__history-events {
    flex: none;
    margin-top: -8px;
    padding-left: 32px;
}

.p-overview-main__history-event {
    display: flex;
    font-size: 1.4rem;
    line-height: 1.8;
    margin-bottom: 24px;
}
.p-overview-main__history-event:last-child {
    margin-bottom: 0;
}
.p-overview-main__history-year {
    font-weight: 700;
    margin-right: 1.5em;
    flex-shrink: 0;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 1.6rem;
    min-width: 4em;
}


/* ----------------------------------------------
 * page-access.php (アクセス)
 * ---------------------------------------------- */

.p-access-page {
    padding-top: 160px;
}

.p-access-page__layout {
    max-width: 1200px;
    margin: 40px auto 0;
    width: 92%;
}

.p-access-page__main {
    background: #fff;
    border-radius: 12px;
    padding: 64px;
    box-sizing: border-box;
}

.p-access-page__location-item {
    display: flex;
    gap: 40px;
    padding-bottom: 40px;
    margin-bottom: 40px;
    border-bottom: 1px solid #D7DADC;
}
.p-access-page__location-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.p-access-page__item-content {
    flex: 0 0 320px; 
    width: 320px;
}

.p-access-page__item-title {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 24px;
}

.p-access-page__item-address {
    font-size: 1.4rem;
    line-height: 1.8;
}

.p-access-page__item-map {
    flex: 1;
    aspect-ratio: 16 / 9;
}
.p-access-page__item-map iframe {
    width: 100%;
    height: 100%;
    border-radius: 8px;
}

/* ----------------------------------------------
 * page-machinery.php (主要設備)
 * ---------------------------------------------- */
.p-machinery-page {
    padding-top: 160px;
}

.p-machinery-page__layout {
    display: flex;
    max-width: 1200px;
    margin: 40px auto 0;
    width: 92%;
    gap: 80px;
    align-items: flex-start;
}
.p-machinery-page__layout .l-two-column__main {
    flex: 1;
    min-width: 0;
    order: 1;
}
.p-machinery-page__layout .l-two-column__sidebar {
    flex: 0 0 240px;
    width: 240px;
    order: 2;
    position: sticky;
    top: 110px;
    height: 100%;
}

/* メインコンテンツ */
.p-machinery-main__section {
    background: #fff;
    border-radius: 12px;
    padding: 64px;
    box-sizing: border-box;
    margin-bottom: 40px;
}
.p-machinery-main__section:last-child {
    margin-bottom: 0;
}

.p-machinery-main__section-header {
    margin-bottom: 40px;
}
.p-machinery-main__section-title {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #106A3B;
}

.c-specs-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #D7DADC;
}
.c-specs-table--continued {
    margin-top: 40px;
    border-top: 1px solid #D7DADC;
}
.c-specs-table th,
.c-specs-table td {
    padding: 20px 24px;
    border-bottom: 1px solid #D7DADC;
    font-size: 1.4rem;
    text-align: left;
    vertical-align: middle;
}

.c-specs-table tr.is-first-row td,
.c-specs-table tr.is-first-row th {
     border-top: 1px solid #D7DADC;
}

.c-specs-table--continued tr:first-child td,
.c-specs-table--continued tr:first-child th {
    border-top: none;
}

.c-specs-table__th {
    background-color: #f5f5f5;
    font-weight: 700;
    width: 80px;
    border-right: 1px solid #D7DADC;
    vertical-align: top;
    padding-top: 24px;
}

#licenses .c-specs-table__th {
    width: 120px;
    line-height: 1.4;
}

.c-specs-table__td-name {
    line-height: 1.6;
    width: auto; 
    font-weight: 600;
}
.c-specs-table__td-value {
    width: 120px;
    text-align: right;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 1.6rem;
    font-weight: 600;
}
.c-specs-table__td-maker {
    width: auto;
    line-height: 1.6;
}

.c-specs-table tr.is-last-row-in-group .c-specs-table__th,
.c-specs-table tr.is-last-row .c-specs-table__th {
    border-bottom: 1px solid #D7DADC;
}
.c-specs-table tr.is-last-row .c-specs-table__th {
    border-bottom: none;
}

.c-specs-table__footer {
    margin-top: 24px;
    color: #232323;
    padding-left: 16px;
    font-size: 1.2rem;
}

.c-data-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #D7DADC;
}
.c-data-table th,
.c-data-table td {
    padding: 16px;
    border: 1px solid #D7DADC;
    font-size: 1.4rem;
    text-align: left;
    vertical-align: top;
}
.c-data-table thead th {
    background-color: #f5f5f5;
    font-weight: 700;
    text-align: center;
}
.c-data-table thead th[colspan] {
    background-color: #106A3B;
    color: #fff;
    text-align: left;
    padding-left: 24px;
}
.c-data-table tbody td {
    line-height: 1.8;
}
.c-data-table tbody td:nth-child(2), 
.c-data-table tbody td:nth-child(3) { 
    text-align: center;
    vertical-align: middle;
}
.c-data-table tbody td:first-child {
    font-weight: 600;
}

/* ----------------------------------------------
 * page-recruit.php (採用情報)
 * ---------------------------------------------- */
.p-recruit-page {
    padding-top: 160px;
    background: #232323;
}

#recruit .c-page-header{
    justify-content: flex-end;
    color: #fff;
}

.parent-pageid-57 .c-page-header {
    color: #fff;
}

.parent-pageid-57 .c-page-heading .c-page-heading__en,
.parent-pageid-57 .c-page-heading .c-page-heading__jp{
    color: #fff;
}

#recruit .c-link-button--contact::before,
.parent-pageid-57 .c-link-button--contact::before {
    filter: invert(1);
}

#recruit .l-header__nav-link,
.parent-pageid-57 .l-header__nav-link{
    color: #fff;
}

#recruit .c-link-button--contact,
.parent-pageid-57 .c-link-button--contact{
    background-color: #fff;
    color: #222;
}

#recruit .l-header__mega-menu a,
.parent-pageid-57 .l-header__mega-menu a{
    color: #111;
}

#recruit .c-breadcrumb__item a,
.parent-pageid-57 .c-breadcrumb__item a{
    color: #f4bf4f;
}

#recruit .c-breadcrumb__item:not(:last-child)::after,
.parent-pageid-57 .c-breadcrumb__item:not(:last-child)::after {
    content: '>';
    color: #fff;
}

.scroll_body#recruit .l-header__nav-link,
.scroll_body.parent-pageid-57 .l-header__nav-link{
    color: #000;
}

#recruit .logo_bk,
.parent-pageid-57 .logo_bk{
    display: none;
}

#recruit .logo_wh,
.parent-pageid-57 .logo_wh{
    display: block;
}

#recruit.scroll_body .logo_wh{
    display: none;
}

.parent-pageid-57.scroll_body .logo_wh{
    display: none;
}

#recruit.scroll_body .logo_bk{
    display: block;
}

.parent-pageid-57.scroll_body .logo_bk{
    display: block;
}

.p-recruit-hero {
    position: relative;
}
.p-recruit-hero__bg-image {
    background-size: cover;
    background-position: center;
    width: 100%;
    height: 0;
    padding-top: 56%;
    background-image: url(../images/recruit/recruitpage_main_bg.jpg);
    position: relative;
}

.p-recruit-hero .c-page-heading {
    width: 92%;
    margin: 0 auto;
    position: absolute;
    top: 40px;
    z-index: 2;
    left: 4%;
}

.p-recruit-hero .c-page-heading__en {
    color: #111;
}

.p-recruit-hero__bg-image::after {
}
.p-recruit-hero__content-wrap {
    text-align: center;
    margin: 80px 0;
}
.p-recruit-hero__catchcopy {
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin-bottom: 40px;
    color: #F4BF4F;
}
.p-recruit-hero__text {
    font-size: 1.8rem;
    line-height: 1.8;
    font-weight: 700;
    color: #fff;
}

.p-recruit-hero__slider {
    width: 100%;
    overflow: hidden;
    margin-top: -88px;
}

.p-recruit-hero__slider-track {
    display: flex;
    width: max-content;
    animation: recruitHeroLoop 80s linear infinite;
}

.p-recruit-hero__slider-track:hover {
}

.p-recruit-hero__slider-item {
    width: 240px;
    height: 160px;
    margin-right: 16px;
    flex-shrink: 0;
}

.p-recruit-hero__slider-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@keyframes recruitHeroLoop {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

.p-recruit-message {
    background-image: url(../images/recruit/recruitpage_message_bg.jpg);
}
.p-recruit-message__inner {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    width: 92%;
    padding: 80px 0 24px;
    gap: 64px;
    align-items: center;
}
.p-recruit-message__content-wrap {
    flex: 1;
    min-width: 0;
}

.p-recruit-message__title {
    font-size: 3.2rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 40px;
}

.p-recruit-message__text {
    font-size: 1.6rem;
    line-height: 1.8;
    margin-bottom: 40px;
    color: #fff;
    font-weight: 600;
}

.p-recruit-message .c-link-button {
    background-color: unset;
    border-color: #fff;
}

.p-recruit-message .c-link-button:hover {
    background-color: #fff;
    color: #000;
}

.p-recruit-message__image {
    flex: 0 0 50%;
    width: 50%;
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    border-radius: 8px;
}
.c-marquee--dark {
    color: #fff;
}
.p-recruit-message__marquee .c-marquee__text, .p-recruit-voices__marquee .c-marquee__text {
    font-size: 12rem;
}

.p-recruit-voices {
    padding-top: 120px;
}
.p-recruit-voices__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    max-width: 1200px;
    margin: 0 auto 40px;
    width: 92%;
    gap: 40px;
}
.p-recruit-voices__title {
    font-size: 2.8rem;
    font-weight: 700;
    color: #F4BF4F;
    margin-bottom: 40px;
}
.p-recruit-voices__text {
    font-size: 1.6rem;
    line-height: 1.8;
    font-weight: 500;
    color: #fff;
}
.p-recruit-voices__button-wrap {
    flex-shrink: 0;
}

.p-recruit-voices__bg-image-wrap {
    position: relative;
    height: 0;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    background-image: url(../images/recruit/recruitpage_interview_bg.jpg);
    padding-top: 40%;
}

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

.p-recruit-voices .c-link-button {
    border-color: #fff;
}

.p-recruit-jobs {
    background: #E1E4E6;
    padding: 120px 0;
}
.p-recruit-jobs__inner {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    width: 92%;
    gap: 120px;
    align-items: flex-start;
}
.p-recruit-jobs__aside {
    flex: 0 0 320px;
    width: 320px;
    position: sticky;
    top: 110px;
}
.p-recruit-jobs__aside-title {
    font-size: 2.8rem;
    font-weight: 700;
    margin-bottom: 40px;
}
.p-recruit-jobs__aside-text {
    font-size: 1.6rem;
    line-height: 1.8;
    margin-bottom: 40px;
    font-weight: 500;
}
.p-recruit-jobs__list-wrap {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.c-job-item {
    background: #fff;
    border-radius: 12px;
    padding: 32px 40px;
}
.c-job-item__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin-bottom: 24px;
}
.c-job-item__title {
    font-size: 2rem;
    font-weight: 700;
}
.c-job-item__date {
    font-size: 1.2rem;
    font-weight: 600;
    color: #666;
    flex-shrink: 0;
    letter-spacing: 0.01rem;
}
.c-job-item__summary p{
    font-size: 1.4rem;
    line-height: 1.8;
}
.c-job-item__content {
    display: none;
    margin-top: 40px;
}
.c-job-item.is-open-default .c-job-item__content {
    display: block;
}

.c-job-item__dl {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 16px 0;
}

.c-job-item__term,
.c-job-item__desc {
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}

.c-job-item__term {
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.6;
}
.c-job-item__desc {
    font-size: 1.4rem;
    line-height: 1.8;
}

.c-job-item__desc p{
    font-size: 1.4rem;
    line-height: 1.8;
}

.c-job-item__notes {
    line-height: 1.8;
    margin-top: 24px;
}
.c-job-item__toggle-btn {
    display: inline-block;
    background-color: #106A3B;
    border: none;
    padding: 10px 48px 10px 40px;
    margin-top: 32px;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    position: relative;
    font-family: inherit;
    border-radius: 6px;
    box-sizing: border-box;
    width: 160px;
    text-align: center;
}
.c-job-item__toggle-btn::after {
    content: '＋';
    font-family: sans-serif;
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1em;
    font-weight: 600;
    transition: transform 0.3s;
    background-color: #fff;
    width: 20px;
    height: 20px;
    color: #106a3b;
    border-radius: 100%;
    line-height: 1.7;
}

.c-job-item.is-open .c-job-item__toggle-btn {
    background-color: #fff;
    color: #000;
    border: #000 solid 1px;
}
.c-job-item.is-open .c-job-item__toggle-btn::after {
    content: '−';
    transform: translateY(-50%) rotate(180deg);
    border: solid 1px #000;
    top: 50%;
    line-height: 1.5;
    color: #000;
}

.p-recruit-jobs__aside .c-link-button {
    background-color: #fff;
    color: #000;
}

.p-recruit-jobs__aside .c-link-button:hover {
    background-color: #222;
    color: #fff;
}

.p-recruit-entry {
    background: #131313;
    color: #fff;
    padding: 0 0 80px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.p-recruit-entry__sub-title {
    font-size: 24vw;
    font-weight: 700;
    font-family: "Barlow Semi Condensed", sans-serif;
    color: #ffffff20;
    white-space: nowrap;
    text-align: center;
    line-height: 0.6;
}
.p-recruit-entry__box {
    background-image: url(../images/recruit/recruitpage_entry_bg.jpg);
    color: #232323;
    border-radius: 12px;
    max-width: 1040px;
    margin: 0 auto;
    width: 80%;
    padding: 200px;
    box-sizing: border-box;
    text-align: left;
    background-position: center;
    background-size: cover;
    height: 0;
    /* padding-top: 24%; */
    position: relative;
}

.p-recruit-entry__box-inner {
    display: flex;
    gap: 64px;
    align-items: center;
    justify-content: space-between;
    padding: 80px;
    box-sizing: border-box;
    position: absolute;
    inset: 0;
}

.p-recruit-entry__box-left {
    flex: 0 0 160px;
}
.p-recruit-entry__box-en-title {
    font-size: 8rem;
    font-weight: 700;
    font-family: "Barlow Semi Condensed", sans-serif;
    color: #106A3B;
    margin-bottom: 16px;
    color: #fff;
    letter-spacing: 0.01em;
}
.p-recruit-entry__box-jp-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: #fff;
}
.p-recruit-entry__box-right {
}
.p-recruit-entry__box-text {
    font-size: 1.6rem;
    line-height: 1.8;
    color: #fff;
    font-weight: 500;
    margin-bottom: 32px;
    flex: 1;
}
.p-recruit-entry__box-button-area {
    flex-shrink: 0;
}

.p-recruit-entry .c-link-button {
    background-color: #fff;
    border: solid 1px #fff;
    width: 100%;
    color: #000;
    box-sizing: border-box;
}

.p-recruit-entry .c-link-button:hover {
    background-color: #222;
    border: solid 1px #222;
    color: #fff;
}

.p-recruit-entry__arrow-icon {
    width: 40px;
    height: 40px;
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    bottom: 20px;
    right: 20px;
}

#jobdescription .p-recruit-jobs__inner {
}

#jobdescription .p-recruit-page {
    padding-bottom: 120px;
}

/* ----------------------------------------------
 * page-interview.php (先輩社員の声)
 * ---------------------------------------------- */
.p-interview-page {
    padding-top: 160px;
    background: #232323;
    color: #fff;
}

.p-interview-page__layout {
    display: flex;
    max-width: 1200px;
    margin: 40px auto 0;
    width: 92%;
    gap: 80px;
    align-items: flex-start;
    padding-bottom: 80px;
}
.p-interview-page__layout .l-two-column__main {
    flex: 1;
    min-width: 0;
    order: 2;
}
.p-interview-page__layout .l-two-column__sidebar {
    flex: 0 0 200px;
    width: 200px;
    order: 1;
    position: sticky;
    top: 110px;
    height: 100%;
}

.p-interview-section {
    margin-bottom: 80px;
    color: #232323;
}
.p-interview-section__image {
    width: 100%;
    background-size: cover;
    background-position: center;
    margin-bottom: 40px;
    height: 0;
    padding-top: 48%;
}
.p-interview-section__profile-box {
    color: #fff;
    margin-bottom: 32px;
}
.p-interview-section__catchphrase {
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 24px;
}
.p-interview-section__name {
    font-size: 2rem;
    font-weight: 600;
}
.p-interview-section__qa-box {
    padding: 64px;
    background-color: #fff;
    border-radius: 12px;
}
.p-interview-section__qa-item {
    padding: 20px 0;
    border-bottom: 1px solid #eee;
}
.p-interview-section__qa-item:first-child {
    padding-top: 0;
}
.p-interview-section__qa-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.p-interview-section__qa-prefix {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-weight: 700;
    font-size: 2.8rem;
    line-height: 1.8;
}
.p-interview-section__qa-prefix--q {
    color: #106A3B;
}
.p-interview-section__qa-prefix--a {
    color: #F4BF4F;
}
.p-interview-section__question {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.8;
}
.p-interview-section__answer {
    font-size: 1.6rem;
    line-height: 1.8;
    display: flex;
    align-items: baseline;
}
.p-interview-section__question,
.p-interview-section__answer {
    flex: 1;
}
.p-interview-section__question span,
.p-interview-section__answer span {
    margin-right: 0.5em;
}

.parent-pageid-57 .c-anchor-nav__item a:hover {
    border: solid 1px #fff;
}

.p-interview-page .p-recruit-voices__marquee {
    overflow: unset;
    opacity: 0.2;
}

.p-interview-page .c-marquee__inner {
    margin-bottom: 48px;
}

.p-recruit-voices__marquee {
    position: relative;
    z-index: 2;
    overflow: hidden;
}
.p-recruit-voices__marquee .c-marquee__text {
    animation: marquee-reverse 32s linear infinite;
    color: #fff;
}

@keyframes marquee-reverse {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

.interview-anchor-nav__item{
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-weight: 600;
}

/* ----------------------------------------------
 * page-message.php (代表メッセージ)
 * ---------------------------------------------- */

.p-message-page {
    padding-top: 160px;
    background: #232323;
    color: #fff;
    padding-bottom: 120px;
}

.p-message-hero {
    padding: 80px 0 0;
}

.p-message-hero__inner {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    width: 92%;
    gap: 40px;
    align-items: center;
    justify-content: space-between;
}

.p-message-hero__text-wrap {
    min-width: 0;
}

.p-message-hero__catchphrase {
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin-bottom: 24px;
    white-space: nowrap;
    word-wrap: break-word;
    z-index: 100;
    position: relative;
}

.p-message-hero__name {
    font-size: 1.6rem;
    font-weight: 600;
}
.p-message-hero__image {
    width: 56%;
    background-size: cover;
    background-position: center;
    height: 0;
    padding-top: 32%;
    background-image: url(../images/recruit/recruitpage_message_president.jpg);
}

.c-marquee__inner {
    display: flex;
    width: fit-content;
}
.p-message-marquee .c-marquee__inner {
    animation: marquee 160s linear infinite;
}

.p-message-marquee .c-marquee__text {
    font-size: 12rem;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-weight: 700;
    white-space: nowrap;
    padding: 0 24px;
    opacity: 0.2;
}

.p-message-content {
    box-sizing: border-box;
    max-width: 1200px;
    margin: 80px auto 0;
    width: 92%;
    display: flex;
    align-content: flex-start;
    flex-direction: column;
}
.p-message-content__block {
    width: 800px;
    margin: 0 auto;
}

.p-message-content__heading {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 24px;
}
.p-message-content__text {
    font-size: 1.6rem;
    line-height: 2;
    font-weight: 500;
    margin-bottom: 32px;
}
.p-message-content__text:last-child {
    margin-bottom: 0;
}

/* ----------------------------------------------
 * single-works.php (施工実績詳細)
 * ---------------------------------------------- */

body.modal-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    height: auto; /* ★ここを追加（100%を打ち消して中身の高さに合わせる） */
}

.p-works-article {
    display: flex;
    gap: 64px;
    position: relative;
}

.p-works-article__content-wrap {
    width: 50%;
    position: sticky;
    height: 100%;
    top: 110px;
}
.p-works-article__category {
    margin-bottom: 16px;
}
.p-works-article__category a {
    display: inline-block;
    background: #106A3B;
    color: #fff;
    padding: 4px 16px;
    border-radius: 20px;
    font-size: 1.2rem;
    font-weight: 600;
}
.p-works-article__title {
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
    color: #106a3b;
}
.p-works-article__subtitle {
    font-size: 2rem;
    font-weight: 600;
    color: #232323;
    margin-bottom: 32px;
    line-height: 1.4;
    letter-spacing: 0.05em;
}

.p-works-article__text-body {
    margin-bottom: 24px;
    line-height: 1.6;
}

.p-works-article__text-body h2,
.p-works-article__text-body h3,
.p-works-article__text-body h4 { 
    margin-top: 2.5em;
    margin-bottom: 1.2em;
    font-weight: 700;
    line-height: 1.5;
}

.p-works-article__text-body h2 { font-size: 2.2rem; } 
.p-works-article__text-body h3 { font-size: 2rem; } 
.p-works-article__text-body h4 { font-size: 1.8rem; } 

.p-works-article__text-body p {
    margin-bottom: 24px;
    line-height: 1.6;
}

.p-works-article__text-body p a {
    text-decoration: underline;
    color: #106a3b;
    font-weight: 500;
}

.p-works-article__date {
    font-size: 1.2rem;
    color: #232323;
    margin-bottom: 32px;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.p-works-article__tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.p-works-article__tags-wrap{
    padding-top: 32px;
    border-top: solid 1px #000;
}

.p-works-article__tags-item a {
    display: block;
    padding: 6px 16px 6px 20px;
    border: 1px solid #222;
    border-radius: 24px;
    font-size: 1.1rem;
    font-weight: 600;
    transition: all 0.3s;
    position: relative;
    letter-spacing: 0.01em;
}

.p-works-article__tags-item a::before {
    content: '#';
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: #106a3b;
    font-weight: 700;
    font-size: 1.1rem;
}

.p-works-article__tags-item a:hover {
    background: #232323;
    color: #fff;
}
.p-works-article__tags-item a:hover::before {
    color: #fff;
}

.p-works-article__media-wrap {
    width: 50%;
}
.p-works-article__thumbnail {
    margin-bottom: 24px;
}
.p-works-article__thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}
.p-works-article__gallery {
}

.p-works-article__gallery .gallery-columns-2 ul {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 16px;
}

.p-works-article__gallery li {
    overflow: hidden;
    width: 100%;
}

.p-works-article__gallery img {
    width: 100%;
    height: auto;
    display: block;
    cursor: pointer;
    transition: transform 0.3s;
    border-radius: 4px;
}
.p-works-article__gallery img:hover {
    transform: scale(1.03);
}
.p-works-article__gallery p,
.p-works-article__gallery figure {
    margin: 0;
    padding: 0;
}

.p-works-sidebar {
    width: 240px;
    flex: 0 0 240px;
}
.p-works-sidebar__widget-title {
    font-size: 1.6rem;
    font-weight: 700;
    padding-bottom: 12px;
    border-bottom: 2px solid #F4BF4F;
    margin-bottom: 20px;
}
.p-works-sidebar__category-list{
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.p-works-sidebar__tags-list {
    display: flex;
    flex-direction: row;
    gap: 8px;
    flex-wrap: wrap;
}

.p-works-sidebar__category-item a {
    padding: 8px 0;
    display: block;
    font-size: 1.4rem;
    line-height: 1.5;
    transition: color 0.3s;
    font-weight: 700;
    padding-left: 16px;
}

.p-works-sidebar__tags-item a {
    display: block;
    padding: 8px 12px 8px 18px;
    border: 1px solid #222;
    font-size: 1.1rem;
    transition: all 0.3s;
    border-radius: 20px;
    letter-spacing: 0.01em;
    font-weight: 600;
    position: relative;
}

.p-works-sidebar__tags-item a::before {
    content: '#';
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: #106a3b;
    font-weight: 700;
    font-size: 1.1rem;
}

.p-works-sidebar__tags-item a:hover {
    background: #232323;
    color: #fff;
}

.p-works-sidebar__tags-item a:hover::before {
    color: #fff;
}

.p-works-sidebar__category-item a:hover{
    color: #106A3B;
}

.p-works-pagination {
}
.p-works-pagination .c-pagination__arrow {
    display: inline-block;
    width: 16px;
    height: 16px;
    background-size: contain;
    background-repeat: no-repeat;
    transition: all 0.3s;
}
.p-works-pagination .p-single-pagination__prev a {
    display: flex;
    align-items: center;
}
.p-works-pagination .p-single-pagination__prev a .c-pagination__arrow {
    margin-right: 12px;
    transform: rotate(180deg);
    background-image: url('../images/common/arrow_right.svg');
}
.p-works-pagination .p-single-pagination__next a .c-pagination__arrow {
    margin-left: 12px;
    background-image: url('../images/common/arrow_right.svg');
}
.p-works-pagination .p-single-pagination__prev a:hover .c-pagination__arrow {
    transform: translateX(-4px) rotate(180deg);
}
.p-works-pagination .p-single-pagination__next a:hover .c-pagination__arrow {
    transform: translateX(4px);
}

.c-modal {
    visibility: hidden;
    opacity: 0; 
    transition: opacity 0.3s;
    
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    background-color: rgba(0, 0, 0, 0.9);
}
.c-modal.is-active {
    visibility: visible;
    opacity: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}
.c-modal__content {
    position: relative;
    margin: auto;
    max-width: 90%;
    max-height: 90%;
}
.c-modal__content img {
    max-width: 100%;
    max-height: 100vh;
    display: block;
}
.c-modal__close-btn {
    position: absolute;
    top: 0;
    right: 0;
    color: #f1f1f1;
    font-size: 4rem;
    transition: 0.3s;
    background: #232323;
    border: none;
    cursor: pointer;
    width: 48px;
    height: 48px;
}
.c-modal__close-btn:hover,
.c-modal__close-btn:focus {
    color: #bbb;
    text-decoration: none;
    cursor: pointer;
}

/* ----------------------------------------------
 * archive-works.php (施工実績一覧)
 * ---------------------------------------------- */
.p-works-archive {
    padding-top: 160px;
    padding-bottom: 120px;
}

.p-works-archive__layout {
    max-width: 1200px;
    margin: 0 auto;
    width: 92%;
}

.p-works-archive__filter {
    background: #fff;
    border-radius: 8px;
    padding: 40px;
    margin-bottom: 40px;
}

.p-works-archive__filter-row {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-bottom: 32px;
}
.p-works-archive__filter-row:last-child {
    margin-bottom: 0;
}
.p-works-archive__filter-label {
    font-size: 1.6rem;
    font-weight: 700;
    flex-shrink: 0;
}
.p-works-archive__filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}
.p-works-archive__filter-item a {
    font-size: 1.4rem;
    font-weight: 600;
    position: relative;
    transition: color 0.3s;
}
.p-works-archive__filter-item a:hover,
.p-works-archive__filter-item a.is-active {
    color: #106A3B;
    font-weight: 700;
    border-bottom: 2px solid #106A3B;
}

.p-works-archive__filter-row--tags {
    margin-left: 120px;
}
.p-works-archive__tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.p-works-archive__tag-item a {
    display: block;
    padding: 8px 20px 8px 24px;
    border: 1px solid #222;
    border-radius: 24px;
    font-size: 1.2rem;
    font-weight: 600;
    transition: all 0.3s;
    position: relative;
    letter-spacing: 0.01em;
}

.p-works-archive__tag-item a::before {
    content: '#';
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: #106a3b;
    font-weight: 700;
    font-size: 1.1rem;
}

.p-works-archive__tag-item a:hover {
    background: #232323;
    color: #fff;
}
.p-works-archive__tag-item a:hover::before {
    color: #fff;
}
.p-works-archive__tag-item a:hover,
.p-works-archive__tag-item a.is-active {
    background: #232323;
    color: #fff;
    border-color: #232323;
}

.p-works-archive__wrap {
    background-color: #fff;
    padding: 64px;
    box-sizing: border-box;
    border-radius: 12px;
}

.p-works-archive__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 4%;
}

.p-works-archive__item {
    display: block;
    color: #232323;
}

.p-works-archive__thumb {
    margin-bottom: 16px;
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #f0f0f0;
    position: relative;
}
.p-works-archive__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.p-works-archive__item:hover .p-works-archive__thumb img {
    transform: scale(1.08);
}

.p-works-archive__title {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 8px;
    transition: color 0.3s;
}
.p-works-archive__item:hover .p-works-archive__title {
    color: #106A3B;
}

.p-works-archive__meta {
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.p-works-archive__title {
    order: 2;
}
.p-works-archive__meta {
    order: 1;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.p-works-archive__category {
    font-size: 1.1rem;
    font-weight: 600;
    color: #106A3B;
}
.p-works-archive__date {
    font-family: "Barlow Semi Condensed", sans-serif;
    display: block;
    color: #232323;
    font-size: 1.2rem;
    color: #232323;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.p-works-archive__no-posts {
    grid-column: 1 / -1;
    text-align: center;
    padding: 80px;
    font-size: 1.6rem;
}

.p-works-archive__pagination ul{
    margin-top: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
}
.p-works-archive__pagination .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}
.p-works-archive__pagination .page-numbers {
    font-weight: 600;
    font-family: "Barlow Semi Condensed", sans-serif;
    transition: all 0.3s;
}
.p-works-archive__pagination .page-numbers.current {
    border-bottom: solid 2px #106a3b;
}
.p-works-archive__pagination .prev, .p-works-archive__pagination .next {
    font-size: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    width: 32px;
    height: 32px;
    display: block;
    margin: 0 16px;
}
.p-works-archive__pagination .prev {
    background-image: url('../images/common/arrow_left.svg');
}
.p-works-archive__pagination .next {
    background-image: url('../images/common/arrow_right.svg');
}
.p-works-archive__pagination .dots {
    border: none;
}

/* ==========================================================================
p-about-page（中谷建材について）
========================================================================== */
.p-about-page {
    padding-top: 160px;
}

.p-about-page__mv-slogan {
    margin: 64px auto 40px;
    width: 92%;
    max-width: 1200px;
    font-size: 1.8rem;
    font-weight: 700;
}

.p-about-page__mv {
    position: relative;
    width: 100%;
    height: 80vh;
    min-height: 400px;
    background-color: #ccc;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
}

.p-about-page__mv-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.p-about-page__mv-content {
    position: relative;
    z-index: 1;
    top: -44px;
}

.p-about-page__mv-main-copy {
    font-size: 8rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    font-family: "Barlow Semi Condensed", sans-serif;
}

.p-about-page__mv-sub-copy {
    font-size: 2rem;
    font-weight: bold;
    margin-top: 20px;
}

.p-about-page__white-container {
    position: relative;
    max-width: 1200px;
    margin: -80px auto 80px;
    padding: 80px 0;
    background-color: #fff;
    z-index: 2;
    border-radius: 20px;
    width: 92%;
}

.p-about-page__inner {
    padding: 0 80px;
}

.p-about-page__sec {
    margin-bottom: 100px;
}

.p-about-page__sec-title {
    font-size: 2rem;
    color: #106a3b;
    font-weight: 700;
}

.p-about-page__message-wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.p-about-page__message-head {
    width: 25%;
}

.p-about-page__message-body {
    width: 70%;
}

.p-about-page__message-lead {
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.8;
    margin-bottom: 40px;
}

.p-about-page__message-text {
    font-size: 1.6rem;
    line-height: 2;
}

.p-about-page__slider-area {
    position: relative;
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
    margin-bottom: 100px;
    background: #fff;
}

.p-about-page__slider-track {
    display: flex;
    width: fit-content;
    animation: loop-slide 40s linear infinite;
}

.p-about-page__slider-item {
    width: 280px;
    flex-shrink: 0;
    margin-right: 24px;
}

.p-about-page__slider-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@keyframes loop-slide {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); } 
}

.p-about-page__cycle-wrap {

}

.p-about-page__cycle-desc {
    line-height: 2;
    margin-bottom: 16px;
}

.p-about-page__cycle-text {
    width: 100%;
}

.p-about-page__cycle-text img{
    width: 72%;
    margin: 0 8%;
}

.p-about-page__cycle-text .p-business__section-link {
    margin-top: 40px;
}

.p-about-page__cycle-text .p-about-page__sec-title {
    margin-bottom: 40px;
}

.p-about-page__cycle-fig {
    width: 100%;
    margin-top: 40px;
}

.p-about-page__cycle-fig img { max-width: 100%; height: auto; }

.p-about-page__scale-area {
    position: relative;
    margin-top: 120px;
}

.p-about-page__bg-text {
    margin-bottom: 64px;
}

.p-about-page__bg-label {
    color: #F1F1F1;
    font-size: 10rem;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.p-about-page__scale-sub-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: -20px;
}

.p-about-page__scale-content {
    position: relative;
    z-index: 1;
    text-align: center;
}

.p-about-page__scale-heading {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 64px;
    text-align: left;
    color: #106a3b;
}

.p-about-page__numbers-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px 4%;
    margin-bottom: 120px;
}

.p-about-page__number-card {
    background: #F9F9F9;
    width: 33.6%;
    text-align: center;
    height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    padding-top: 24%;
    min-width: 360px;
}

.p-about-page__number-body {
    position: absolute;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
    width: 88%;
}

.p-about-page__number-card__strength {
    color: #E49B01;
    position: absolute;
    top: 8px;
    left: 8px;
    font-size: 1.2rem;
    font-weight: 600;
}

.p-about-page__number-label {
    font-weight: bold;
    margin-bottom: 32px;
    display: block;
}

.p-about-page__number-label--accent {
}

.p-about-page__number-value-wrap {
    font-size: 5.6rem;
    font-weight: bold;
    color: #106a3b;
    font-family: "Barlow Semi Condensed", sans-serif;
    line-height: 1;
    letter-spacing: 0.001em;
    display: flex;
    align-items: baseline;
    gap: 4px;
    justify-content: center;
}

.block_tcd.p-about-page__number-card{
    width: 50%;
    min-width: 480px;
}

.block_tcd.p-about-page__number-card .p-about-page__number-unit{
    font-size: 1.4rem;
}

.p-about-page__number-unit {
    font-size: 1.6rem;
    color: #000;
    font-weight: 600;
    white-space: nowrap;
}

.p-about-page__area-title__wrap {
    position: absolute;
    top: 24px;
    text-align: left;
}

.p-about-page__area-title {
    font-size: 2rem;
    font-weight: 600;
    margin-top: -32px;
}

.p-about-page__area-title__en {
    color: #fff;
    font-size: 8.8rem;
    font-family: "Barlow Semi Condensed", sans-serif;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.p-about-page__area-wrap {
    background-color: #f9f9f9;
    padding: 16px 40px;
    position: relative;
}

.p-about-page__area-map img { max-width: 100%; height: auto; }

.p-about-page__bottom-links {
    display: flex;
    justify-content: center;
    gap: 40px;
    padding: 80px 0;
    background-color: #333;
}
.p-about-page__link-card {
    width: 45%;
    max-width: 500px;
    background: #fff;
    padding: 40px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    text-decoration: none;
    transition: opacity 0.3s;
}
.p-about-page__link-card:hover { opacity: 0.9; }
.p-about-page__link-info h3 {
    font-size: 32px;
    color: #009944;
    font-weight: bold;
    margin-bottom: 10px;
}
.p-about-page__link-info p { font-size: 14px; color: #333; }

/* ==========================================================================
business-page（事業紹介）
========================================================================== */

.p-business-page{
    padding-top: 160px;
}


/* ==========================================================================
   Quality Assurance Page
========================================================================== */
.p-business-sub-page {
    padding-top: 160px;
}

.p-business-sub-page .l-two-column{
    display: flex;
    max-width: 1200px;
    margin: 40px auto 0;
    width: 92%;
    gap: 80px;
    align-items: flex-start;
}
.p-business-sub-page .l-two-column__main {
    flex: 1;
    min-width: 0;
    order: 1;
}
.p-business-sub-page .l-two-column__sidebar {
    flex: 0 0 240px;
    width: 240px;
    order: 2;
    position: sticky;
    top: 110px;
    height: 100%;
}

.p-business-detail__lead-area {
    width: 100%;
    margin-bottom: 60px;
}

.p-business-detail__lead-inner {
    max-width: 1200px;
    margin: 64px auto 64px;
    width: 92%;
}

.p-business-detail__lead-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 40px;
}
.p-business-detail__catchcopy {
}

.p-business-detail__catchcopy p {
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.6;
    color: #232323;
}

.p-business-detail__lead-text {
    width: 440px;
}
.p-business-detail__lead-text p{
    line-height: 1.6;
}
.p-business-detail__main-visual {
    width: 100%;
    overflow: hidden;
}
.p-business-detail__main-visual-bg {
    width: 100%;
    height: 0;
    background-size: cover;
    background-position: center;
    padding-top: 40%;
}

/* --- Sections Common --- */
.p-quality__sec {
    scroll-margin-top: 100px;
    background: #fff;
    border-radius: 12px;
    padding: 64px;
    box-sizing: border-box;
    margin-bottom: 40px;
}
.p-quality__sec-title {
    font-size: 2rem;
    font-weight: 700;
    color: #106a3b;
    margin-bottom: 40px;
}

.p-quality__overview-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.p-quality__overview-body {
}
.p-quality__overview-list {
    padding-left: 0;
    list-style: none;
}
.p-quality__overview-list li {
    margin-bottom: 24px;
    font-weight: bold;
    position: relative;
    padding-left: 24px;
    line-height: 1.6;
}
.p-quality__overview-list li::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 5px;
    width: 14px;
    height: 14px;
    background-color: #106a3b;
    border-radius: 50%;
}
.p-quality__overview-img {
    width: 40%;
}
.p-quality__overview-img img {
    width: 100%;
    height: auto;
    border-radius: 4px;
}

.p-quality__table-wrap {
    border-top: 1px solid #ddd;
}
.p-quality__dl {
    display: flex;
    border-bottom: 1px solid #ddd;
    padding: 20px 0;
}

.p-quality__dl dt {
    min-width: 160px;
    font-weight: 600;
    line-height: 1.4;
}

.p-quality__dl dd {
    width: 100%;
    line-height: 1.4;
}

.p-quality__strength-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 28px 4%;
}
.p-quality__strength-item {
    width: 48%;
    padding: 24px;
    border: 1px solid #eee;
    box-sizing: border-box;
    border-radius: 12px;
}
.p-quality__strength-head {
    margin-bottom: 16px;
}
.p-quality__strength-title {
    font-size: 1.6rem;
    font-weight: 600;
    margin-bottom: 16px;
}
.p-quality__strength-text {
    font-size: 14px;
    line-height: 1.6;
}

.p-quality__strength-sub-title {
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e6b422;
    font-size: 1.6rem;
    font-weight: 600;
}

.p-quality__strength-group:last-child {
    margin-top: 40px;
}

.p-quality__gallery-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 48px;
    border-bottom: none;
}
.p-quality__sec-title--gallery {
    margin-bottom: 10px;
}
.p-quality__gallery-note {
    font-size: 12px;
    font-weight: bold;
    margin: 0;
}
.p-quality__gallery-nav {
    display: flex;
    gap: 16px;
}
.p-quality__gallery-btn {
    width: 48px;
    height: 40px;
    border: 1px solid #333;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: #fff;
    transition: all 0.3s;
    font-family: monospace;
}
.p-quality__gallery-btn:hover {
    background: #333;
    color: #fff;
}

.p-quality__slider-wrap {
    width: 100%;
    overflow: hidden;
}
.p-quality__slider {
    width: 100%;
    height: auto;
}

.p-quality__slide-item {
    height: calc((100% - 10px) / 2) !important;
    box-sizing: border-box;
}

.p-quality__slide-item a {
    display: block;
    width: 100%;
    height: 100%;
}
.p-quality__slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4/3;
    display: block;
}

.p-quality__machinery {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0;
}

.p-quality__machinery-content {
    width: 50%;
}
.p-quality__machinery-en {
    color: #e6b422;
    font-weight: 700;
    font-size: 3.2rem;
    margin-bottom: 24px;
    font-family: "Barlow Semi Condensed", sans-serif;
    text-align: left;
    letter-spacing: 0.01em;
}

.p-quality__machinery-jp {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 48px;
    letter-spacing: 0.05em;
}
.p-quality__machinery-img {
    width: 45%;
}
.p-quality__machinery-img img {
    width: 100%;
    height: auto;
}

.gallery-columns-4 ul {
    display: flex;
}

.p-quality .p-works-article__gallery li {
    overflow: hidden;
    width: 50%;
    aspect-ratio: 4 / 4;
}

.p-quality__sec#gallery .p-works-article__gallery img {
    border-radius: 0;
    object-fit: cover;
    aspect-ratio: 4 / 4;
}

.p-machinery-slider {
    overflow: hidden;
    margin-bottom: 40px;
    box-sizing: border-box;
    z-index: -1;
    position: relative;
}

.p-machinery-slider__row {
    width: 100%;
    overflow: hidden;
    margin-bottom: 20px;
}
.p-machinery-slider__row:last-child {
    margin-bottom: 0;
}

.p-machinery-slider__track {
    display: flex;
    width: max-content;
}

.p-machinery-slider__track--left {
    animation: machineryLoopLeft 80s linear infinite;
}

.p-machinery-slider__track--right {
    animation: machineryLoopRight 80s linear infinite;
}

.p-machinery-slider__item {
    width: 200px;
    height: 140px;
    margin-right: 16px;
    flex-shrink: 0;
}

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

@keyframes machineryLoopLeft {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes machineryLoopRight {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

/* ==============================================
   リサイクルページ
============================================== */
.p-recycle-dl {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 32px 0;
}

.p-recycle-dl dt {
    width: 35%;
    min-width: auto;
    font-weight: 700;
    line-height: 1.6;
}

.p-recycle-arrow {
    width: 60px;
    flex-shrink: 0;
    text-align: center;
    margin: 0 24px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.p-recycle-arrow img {
    width: 40px;
    height: auto;
    display: block;
}

.p-recycle-dl dd {
    flex: 1;
    width: auto;
    font-weight: 700;
    line-height: 1.6;
}

.p-recycle-strength__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.p-recycle-strength__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 40px 0;
    border-bottom: 1px solid #D7DADC;
}

.p-recycle-strength__item:first-child {
    padding-top: 0;
}

.p-recycle-strength__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.p-recycle-strength__body {
    flex: 1;
    padding-right: 40px;
}

.p-recycle-strength__title {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 24px;
    line-height: 1.4;
}

.p-recycle-strength__text {
    font-size: 1.4rem;
    line-height: 1.8;
}

.p-recycle-strength__img {
    width: 300px;
    flex-shrink: 0;
    max-width: 100%;
}

.p-recycle-strength__img img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0;
}

/* ==============================================
   舗装・土木工事ページ
============================================== */
.p-paving__contents{
}

.p-paving__contents .p-business__works-list {
    margin-top: 24px;
    margin-bottom: 40px;
}

.p-paving__contents-text{
    line-height: 1.8;
}

.p-paving__contents .p-works-archive__title {
    font-size: 1.4rem;
}

/* ==============================================
   製造・販売ページ
============================================== */
.p_manufacture_detail{
}

/* ==============================================
   Manufacture Detail Styles (Rich Editor)
============================================== */
.p_manufacture_detail {
    font-size: 1.4rem;
    color: #232323;
}

.p_manufacture_detail p {
    line-height: 1.8;
    margin-bottom: 24px;
}

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

.p_manufacture_detail a {
    color: #106A3B;
    text-decoration: underline;
    font-weight: 600;
}

.p_manufacture_detail a:hover {
    text-decoration: none;
}

.p_manufacture_detail h2 {
    font-size: 2.2rem;
    font-weight: 700;
    color: #232323;
    padding-bottom: 12px;
    border-bottom: 2px solid #106A3B;
    margin-top: 48px;
    margin-bottom: 24px;
    line-height: 1.4;
}

.p_manufacture_detail > h2:first-child {
    margin-top: 0;
}

.p_manufacture_detail h3 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #232323;
    padding-left: 16px;
    border-left: 5px solid #F4BF4F;
    margin-top: 40px;
    margin-bottom: 20px;
    line-height: 1.4;
}

.p_manufacture_detail h4 {
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 32px;
    margin-bottom: 16px;
    line-height: 1.4;
}

.p_manufacture_detail h5 {
    font-size: 1.4rem;
    font-weight: 700;
    margin-top: 24px;
    margin-bottom: 12px;
}

/* --- リスト設定 --- */
.p_manufacture_detail ul {
    margin-bottom: 24px;
    padding-left: 0;
    list-style: none;
}

.p_manufacture_detail ul li {
    position: relative;
    padding-left: 1.5em;
    margin-bottom: 8px;
    line-height: 1.6;
}

.p_manufacture_detail ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 6px;
    height: 6px;
    background-color: #106A3B;
    border-radius: 50%;
}

/* 番号付きリスト (ol) */
.p_manufacture_detail ol {
    margin-bottom: 24px;
    padding-left: 20px;
    list-style: decimal;
}

.p_manufacture_detail ol li {
    margin-bottom: 8px;
    line-height: 1.6;
    padding-left: 0.5em;
}

/* --- テーブル設定 --- */
.p_manufacture_detail table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 32px;
    border: 1px solid #D7DADC;
}

.p_manufacture_detail th,
.p_manufacture_detail td {
    border: 1px solid #D7DADC;
    padding: 16px;
    font-size: 1.4rem;
    line-height: 1.6;
    vertical-align: middle;
    background-color: #fff;
}

.p_manufacture_detail table thead tr th,
.p_manufacture_detail table thead tr td,
.p_manufacture_detail table tr:first-child th,
.p_manufacture_detail table tr:first-child td {
    background-color: #F5F5F5;
    font-weight: 700;
    color: #232323;
    text-align: center;
}

.p_manufacture_detail img {
    max-width: 100%;
    height: auto;
    margin: 16px 0;
    border-radius: 4px;
}

.p_manufacture_detail .wp-caption  {
    max-width: 100%;
    position: relative;
}

.p_manufacture_detail .wp-caption-text {
    background-color: #000;
    color: #fff;
    position: absolute;
    bottom: 17px;
    left: 0;
    font-size: 1.2rem;
    padding: 4px 12px;
    box-sizing: border-box;
    font-weight: 600;
}

.p_manufacture_btn_area {
    margin-top: 32px;
    text-align: center;
}

.p_manufacture_btn_area .c-link-button {
    min-width: 240px;
    font-size: 1.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.p_manufacture_btn_area .c-link-button[target="_blank"]::after {
    content: '';
    width: 12px;
    height: 12px;
    margin-left: 8px;
    background-image: url('../images/common/icon_link_arrow.svg');
    background-size: contain;
    background-repeat: no-repeat;
    filter: invert(1);
}


/* ==============================================
   Manufacture & Sales Archive Page
============================================== */
.p-manufacture-archive__content {
    max-width: 1200px;
    margin: 0 auto 40px;
    width: 92%;
}

/* カード共通スタイル */
.p-manufacture-archive__card {
    position: relative;
    display: block;
    width: 48.5%;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    background-color: #fff;
}

/* リスト用のカードは上寄せ配置 */
.p-manufacture-archive__card-content--static {
    position: relative;
    height: 100%;
    padding: 40px;
}

.p-manufacture-archive__card-title {
    font-size: 1.8rem;
    font-weight: 700;
}

.p-manufacture-archive__card-title--dark {
    color: #232323;
    margin-bottom: 80px;
}

/* リストカード（その他の営業品目） */
.p-manufacture-archive__card--white {
    background-color: #fff;
}

.p-manufacture-archive__list {
    list-style: none;
    padding: 0;
}

.p-manufacture-archive__list li {
    position: relative;
    padding-left: 16px;
    margin-bottom: 16px;
    font-weight: 700;
    color: #232323;
}

.p-manufacture-archive__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 8px;
    height: 2px;
    background-color: #106A3B;
}

.u-text-small {
    font-size: 1.2rem;
    font-weight: 500;
}

.p-manufacture-archive .p-quality__machinery {
    max-width: 1200px;
    margin: 0 auto 120px;
    width: 92%;
}

/* ==============================================
   営業品目・有資格者一覧ページ
============================================== */
.p-licenses-list-wrapper {
    margin-top: 24px;
}

.p-licenses-list-grid {
    display: block;
    column-count: 2;
    column-gap: 80px; /* 列の間隔 */
    width: 100%;
}

.p-licenses-list-item {
    break-inside: avoid;
    page-break-inside: avoid;
    -webkit-column-break-inside: avoid;
    
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 40px;
    padding-bottom: 24px;
    border-bottom: 1px solid #D7DADC;
}

.p-licenses-list-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 20px;
    color: #000;
}

.p-licenses-list-ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-licenses-list-ul li {
    position: relative;
    padding-left: 1.2em;
    margin-bottom: 16px;
    font-size: 1.4rem;
    line-height: 1.6;
    color: #232323;
    font-weight: 600;
}

.p-licenses-list-ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 8px;
    height: 8px;
    background-color: #106A3B;
    border-radius: 50%;
}

/* ==============================================
   Certification Page Specific Styles
============================================== */
.p-certification-page {
    padding-top: 160px;
}

.p-certification-layout {
    max-width: 1200px;
    margin: 40px auto 0;
    width: 92%;
}

.p-certification-box {
    background: #fff;
    border-radius: 12px;
    padding: 64px;
    box-sizing: border-box;
}

.p-certification-title {
    font-size: 2rem;
    font-weight: 700;
    color: #106A3B;
    margin-bottom: 40px;
}

.p-certification-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 60px;
}

.p-certification-table {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
    font-size: 1.4rem;
}

.p-certification-table thead th {
    background-color: #DDE2E4;
    color: #232323;
    font-weight: 700;
    padding: 20px 20px;
    text-align: left;
    white-space: nowrap;
    vertical-align: middle;
    text-align: center;
}

.p-certification-table tbody td {
    padding: 24px 20px;
    border-bottom: 1px solid #EAEAEA;
    color: #232323;
    line-height: 1.6;
    vertical-align: middle;
    font-size: 1.2rem;
}

.p-certification-table tbody td a{
}

.p-certification-table tbody td a:after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    background-image: url('../images/common/icon_link.svg');
    background-position: center bottom 3px;
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: middle;
    margin-left: 4px;
    padding-top: 3px;
}

.p-certification-table tbody td a:hover{
    text-decoration: underline;
    color: #106a3b;
}

.p-certification-table tbody tr:last-child td {
    border-bottom: none;
}

.p-certification-text-green {
    color: #106a3b;
    font-weight: 700;
    font-size: 1.2rem;
}

.p-certification-text-small {
    font-size: 1.2rem;
    color: #666;
}

.p-certification-notes {
    border-top: 1px solid #232323;
    padding-top: 32px;
}

.p-certification-notes__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-certification-notes__list li {
    font-size: 1.3rem;
    line-height: 1.8;
    margin-bottom: 12px;
    padding-left: 3em;
    position: relative;
    color: #232323;
}

.p-certification-notes__mark {
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 500;
}

/* ==============================================
   個人情報保護方針
============================================== */
.p-privacypolicy-page {
    padding-top: 160px;
}

.p-policy-body {
    max-width: 1200px;
    margin: 0 auto;
    width: 92%;
    background-color: #fff;
    border-radius: 16px;
    padding: 64px;
    box-sizing: border-box;
}

.p-policy-body__lead {
    margin-bottom: 40px;
    line-height: 1.8;
}

.p-policy-body__section {
  margin-bottom: 40px;
}

.p-policy-body__title {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #ddd;
}

.p-policy-body__sub-section {
  margin-top: 24px;
  padding-left: 1em;
}

.p-policy-body__sub-title {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 12px;
}

.p-policy-body__text {
    margin-bottom: 16px;
    text-align: justify;
    line-height: 1.8;
}
.p-policy-body__text:last-child {
  margin-bottom: 0;
}

.p-policy-body__end {
  margin-top: 60px;
  margin-bottom: 40px;
  text-align: right;
}

.p-policy-body__signature {
  text-align: right;
}

.p-policy-body__signature p{
  line-height: 1.6;
}

/* ============================================
   ローディング画面 (カウントアップver)
============================================ */
#loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #fff;
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

#loading.loaded {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

#loading .loading-logo {
    width: 320px;
    margin-bottom: 24px;
    opacity: 0;
    animation: logoFadeIn 0.8s forwards;
}

#loading .loading-count {
    font-family: 'Barlow Semi Condensed', sans-serif;
    font-size: 32px;
    font-weight: 600;
    color: #333;
    letter-spacing: 0.05em;
}

#loading .loading-bar-bg {
    width: 200px;
    height: 2px;
    background: #eee;
    margin-top: 10px;
    position: relative;
    overflow: hidden;
}

#loading .loading-bar {
    width: 0%;
    height: 100%;
    background: #000;
    position: absolute;
    top: 0;
    left: 0;
}

@keyframes logoFadeIn {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* ============================================
   スクロールフェードアニメーション
   ============================================ */
.u-fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s, transform 1s;
}

.u-fade-up.is-show {
    opacity: 1;
    transform: translateY(0);
}

.u-fade-up.delay-100 { transition-delay: 0.1s; }
.u-fade-up.delay-200 { transition-delay: 0.2s; }
.u-fade-up.delay-300 { transition-delay: 0.3s; }


/* ==============================================
   お問い合わせ完了ページ (complete.php)
============================================== */
.p-contact-form__complete-wrap {
    max-width: 880px;
    margin: 60px auto 0;
    width: 92%;
}

.p-contact-form__complete-title {
    font-size: 2.4rem;
    text-align: center;
    margin-bottom: 32px;
    font-weight: 700;
}

.p-contact-form__complete-text {
    font-size: 1.6rem;
    line-height: 2;
    text-align: center;
    margin-bottom: 48px;
    font-weight: 500;
}

.p-contact-form__complete-btn-area {
    text-align: center;
}












/* 1200px 以下 */
@media screen and (max-width:1200px) {

.l-header__logo {
    width: 240px;
}

.l-header__nav-item {
    font-size: 1.2rem;
}

.l-header__nav-list {
    gap: 24px;
}

.c-link-button {
    padding: 16px;
    min-width: 80px;
}

.p-news__slide-item {
    padding: 16px 24px;
}

.p-news__item-title {
    font-size: 1.4rem;
}




}



/* 1000px 以下 */
@media screen and (max-width:999px) {

/* デスクトップ用のメガメニューはSPでは非表示 */
.l-header__mega-menu {
    display: none !important;
}

.l-drawer__submenu {
    display: none;
    background: unset;
    padding: 0 0 16px;
}

.l-drawer__submenu-item a {
    display: block;
    padding: 12px 24px;
    font-size: 1.4rem;
    font-weight: 500;
    color: #eee;
}
.l-drawer__submenu-item a:hover {
    background: #4a4a4a;
}


/* ドロワー自体のレイアウト */
#g-nav.panelactive {
    display: flex; /* panelactive で display: flex を適用 */
    flex-direction: column;
    justify-content: space-between;
    overflow-y: auto; /* コンテンツが多い場合にスクロール */
    padding-top: 80px;
}

/* ドロワーのナビゲーションリスト */
#g-nav .l-header__nav {
    flex-grow: 1; /* 中間エリアを埋める */
}
#g-nav .l-header__nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0 6% 16px;
}

#g-nav .l-header__nav-item:first-child {
    border-top: none;
}

#g-nav .l-header__nav-item {
    border-top: 1px solid #4d4d4d;
}
#g-nav .l-header__nav-item:last-child {
    border-bottom: 1px solid #4d4d4d;
}

/* ドロワーのナビゲーションリンク */
#g-nav .l-header__nav-item a {
    color: #fff !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0;
    font-size: 2rem;
    font-weight: 700;
}

#g-nav .l-header__nav-item a {
    font-size: 1.2rem;
    font-family: "Barlow Semi Condensed", sans-serif;
    display: flex;
    justify-content: flex-start;
    gap: 20px;
}

#g-nav .l-header__nav-item a span {
    font-size: 2.4rem;
}

#g-nav .l-header__nav-item a::before {
    content: attr(href); /* hrefの値を読み込む (ダミー) */
    font-family: "Noto Sans JP", sans-serif; /* 日本語フォント */
    font-weight: 500;
    font-size: 1.2rem;
    margin-left: 1em;
    color: #ccc;
}

#g-nav .l-header__nav-item a::before {
    content: none;
}

#g-nav .l-header__nav-item a::after {
    content: '→';
    font-family: sans-serif;
    font-weight: bold;
    font-size: 1.6rem;
    color: #fff;
    position: absolute;
    right: 0;
    width: 1.1em;
    height: 1.1em;
    background-image: url(../images/common/arrow_wh.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

#g-nav .l-header__nav-item--has-submenu > a::after {
    content: '+';
    font-size: 2.4rem;
    font-weight: 300;
    background: no-repeat;
    width: auto;
}

#g-nav .l-header__nav-item.is-open > a::after {
    content: '−'; /* '−' (マイナス記号) */
    font-size: 2.4rem;
    font-weight: 300;
}

.l-drawer__submenu-item a {
    padding: 12px !important;
}

#g-nav .l-drawer__submenu-item a::after {
    content: unset;
}

#g-nav .l-header__nav-item--contact {
    display: none;
}

.l-drawer__contact {
    flex-shrink: 0;
    padding: 24px 6% 40px;
    background: #fff;
    color: #232323;
}
.l-drawer__contact-title {
    font-weight: 700;
    text-align: center;
    margin-bottom: 24px;
    color: #106a3b;
}
.l-drawer__contact-tel {
    display: block;
    border: 1px solid #106a3b;
    border-radius: 8px;
    padding: 16px;
    text-align: center;
    color: #106a3b;
    font-size: 1.6rem;
    font-weight: 700;
}
.l-drawer__contact-tel span {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 3.2rem;
    margin-left: 0.2em;
}
.l-drawer__contact-tel small {
    display: block;
    font-size: 1.2rem;
    font-weight: 500;
    margin-top: 8px;
}
.l-drawer__contact-btn {
    background: #106A3B;
    border-color: #106A3B;
    color: #fff;
    width: 100%;
    box-sizing: border-box;
    margin-top: 16px;
    padding: 20px;
    font-size: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
}
.l-drawer__contact-btn img {
    width: 1.2em;
    height: 1.2em;
}

.l-header__nav-item .no_link{
    pointer-events: unset;
}

.overflow__hidden .l-header__inner {
    margin: 12px auto;
}

.overflow__hidden .openbtn1{
    top: 0;
}

.overflow__hidden .openbtn1 p {
    bottom: -16px;
}

.l-drawer__contact .c-link-button--contact {
    width: 100%;
    box-sizing: border-box;
    margin-top: 24px;
    padding: 24px;
    font-size: 1.6rem;
}

.l-header__mega-menu {
    display: none !important;
}

.l-drawer__submenu {
    display: none;
    background: #3a3a3a;
    padding: 10px 0;
}
.l-drawer__submenu-item a {
    display: block;
    padding: 12px 24px;
    font-size: 1.4rem;
    font-weight: 500;
    color: #eee;
}
.l-drawer__submenu-item a:hover {
    background: #4a4a4a;
}

.openbtn1 {
    width: 40px;
        height: 40px;
    cursor: pointer;
    z-index: 1000;
    position: absolute;
    right: 4%;
    top: 24px;
    transition: all 0.3s;
}

.openbtn1 p {
    font-family: "Barlow Semi Condensed", sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    position: absolute;
    bottom: -20px;
    left: 2px;
    transition: all 0.3s;
    color: #232323;
}

.scroll_body .openbtn1 p {
    bottom: -16px;
    color: #000; 
}

.scroll_body .openbtn1 {
    top: 0;
}

.scroll_body .openbtn1 p {
    bottom: -16px;
}

.openbtn1 span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    height: 3px;
    background-color: #232323;
    right: 7px;
    width: 72%;
}

.scroll_body .openbtn1 span {
    background-color: #000 !important;
}

.openbtn1 span:nth-of-type(1) {
    top: 12px;
}

.openbtn1 span:nth-of-type(2) {
    top: 24px;
}

.openbtn1 span:nth-of-type(3) {
    top: 36px;
}

.openbtn1.active span:nth-of-type(1) {
    top: 16px;
    transform: translateY(6px) rotate(-45deg);
}

.openbtn1.active span:nth-of-type(2) {
    display: none;
}

.openbtn1.active span:nth-of-type(3) {
    top: 28px;
    transform: translateY(-6px) rotate(45deg);
}

.openbtn1.active span {
    background-color: #fff !important;
}

.openbtn1.active p {
    color: #fff !important;
}

#g-nav {
    position: fixed;
    z-index: -1;
    opacity: 0;
    top: 0;
    transition: all 0.3s;
    right: 0;
    box-sizing: border-box;
    bottom: unset;
    left: unset;
    width: 64%;
    height: 100vh;
    pointer-events: none;
}

#g-nav.panelactive {
    opacity: 1;
    z-index: 999;
    display: flex;
    align-items: stretch;
    pointer-events: unset;
    right: 0;
    background-color: #232323;
}

.p-business__works-list {
    flex-wrap: wrap;
    gap: 24px 4%;
}

.p-business__works-list .p-business__works-item {
    width: 48%;
}

.p-recruit__body {
    display: flex;
    flex-direction: column;
}

.p-contact {
    padding: 80px 0 240px;
}

.l-footer__inner {
    gap: 80px;
}

.l-footer__inner {
    flex-direction: column;
    gap: 40px;
}

.footer-copyright {
    position: unset;
    margin-top: 40px;
}


#recruit .openbtn1 span,
#message .openbtn1 span,
#interview .openbtn1 span,
#jobdescription .openbtn1 span{
    background-color: #fff;
}

#recruit .openbtn1 p,
#message .openbtn1 p,
#interview .openbtn1 p,
#jobdescription .openbtn1 p{
    color: #fff;
}

#recruit.scroll_body .openbtn1 p,
#message.scroll_body .openbtn1 p,
#interview.scroll_body .openbtn1 p,
#jobdescription.scroll_body .openbtn1 p{
    color: #000 !important;
}

#recruit.scroll_body .openbtn1.active p {
    color: #fff !important;
}







}   
        






/* 800px 以上 */
@media (min-width: 800px) {

a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
}

.sp_view{
    display: none;
}










}


/* 1000px 以上 */
@media (min-width: 1000px) {

#g-nav {
    position: static;
    z-index: auto;
    opacity: 1;
    width: auto;
    height: auto;
    pointer-events: auto;
}

.openbtn1{
    display: none;
}

.l-drawer__contact{
    display: none;
}

.l-drawer__submenu{
    display: none;
}

.l-header__nav-item__top{
    display: none;
}

.l-header__nav-item span{
    display: none;
}



}













































