/*
Theme Name: 株式会社ドーコン
Author: Suda
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/
@charset "utf-8";
/**
* z-index設計
****
* ハンバーガーメニューの中身など：10001〜
* 追従ヘッダー：3001〜4000
* ヒーローイメージ上の文字：2001〜3000
* ヒーローイメージ：1000〜2000
* コンテンツ：100〜999
**/

/**TOPページ**/

.heroImgWrap {
    position: relative;
}

.heroImgFirst {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 2000;
    top: 0;
    left: 0;
    background: #FFF;
    color: #2c323f;
}

.heroImgFirstLogo {
    position: fixed;
    top: 30px;
    left: 30px;
}

.heroImgFirstText {
    font-family: 'BIZ UDGothic', sans-serif;
    font-weight: 900;
    font-style: bold;
    font-size: 7.067rem;
    line-height: 1.3;
    letter-spacing: 1.2;
}

@media only screen and (max-width:768px) {
    .heroImgFirstText {
        font-size: 5rem;
        text-align: center;

    }
}

.heroImgSecond {
    background: url(./assets/images/topBgMono.jpg) no-repeat;
    background-size: 110%;
    background-position: top left;
    width: 100vw;
    height: 100%;
    position: fixed;
    z-index: 1001;
    top: 0;
    left: 0;
}

.heroImgSecondColor {
    background: url(./assets/images/topBgMonoAndColor.jpg) no-repeat;
    background-size: 110%;
    background-position: top left;
    width: 100vw;
    height: 100%;
    position: fixed;
    z-index: 1002;
    top: 0;
    left: 0;
}



@media only screen and (max-width:1700px) {
    .heroImgSecond,
    .heroImgSecondColor {
        background-size: 118%;
    }
}

@media only screen and (max-width:1586px) {
    .heroImgSecond,
    .heroImgSecondColor {
        background-size: 130%;
    }
}

@media only screen and (max-width:1280px) and (max-height:1200px) {
    .heroImgSecond,
    .heroImgSecondColor {
        background-size: 118%;
    }
}

@media only screen and (max-width:768px) {
    .heroImgSecond,
    .heroImgSecondColor {
        background-size: 270%;
        background-position: 42% 0%;
    }
}

.heroImgSecondGradation {
    content: '';
    display: block;
    position: fixed;
    z-index: 1010;
    width: 200%;
    height: 100vh;
    top: 0;
    left: -90%;
    opacity: 1;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 45%, rgba(255, 255, 255, 1) 50%);
    animation: revealImage 1s ease-out forwards;
}

/* アニメーション定義 */
@keyframes revealImage {
    0% {
        left: -100%;
    }
    100% {
        left: 10%;
    }
}

.heroImgSecondPen {
    width: 80px;
    position: fixed;
    z-index: 2000;
    width: 50px;
    bottom: 0%;
    left: 0%;
    opacity: 1;
    animation: heroImgPen 1s ease-out forwards;
}

/* アニメーション定義 */
@keyframes heroImgPen {
    0% {
        left: 0%;
        bottom: 0%;
    }
    30% {
        bottom: 60%;
    }

    60% {
        bottom: 0%;
    }
    100% {
        bottom: 60%;
        left: 120%;
    }
}


/*
.heroImgthird {
    position: relative;
    min-height: 100vh;
}

.heroImgthird::before {
    content: '';
    position: fixed;
    inset: 0;
    opacity: 0.8;
    background: linear-gradient(135deg,
            rgba(15, 76, 147, 1) 0%,
            rgba(15, 125, 147, 0.95) 40%,
            rgba(49, 154, 75, 0.2) 93%);
    clip-path: polygon(-25% 0%, 12.5% 0%, 68.75% 100%, 31.25% 100%);
    pointer-events: none;
    z-index: 1998;
    transform: translate(-100%, -100%);
    animation: slideInDiagonal 0.1s ease-out forwards;
}
*/

@keyframes slideInDiagonal {
    from {
        transform: translate(-100%, -100%);
        opacity: 0;
    }
    to {
        transform: translate(0, 0);
        opacity: 0.8;
    }
}

.heroImgthird {
    background: url(./assets/images/topBgbarGradation.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1800;
    top: 0;
    left: 0;
}

.heroImgForth {
    background: url(./assets/images/topBgColorFirst.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1500;
    top: 0;
    left: 0;
}

.heroImgFifth {
    background: url(./assets/images/topBgwhiteTri01.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1900;
}

@media only screen and (max-width:768px) {
    .heroImgFifth {
        background-position: 20% center;
    }
}

.heroImgSixth {
    background: url(./assets/images/topBgColorFinal.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1750;
    top: 0;
    left: 0;
}

.heroImgSeventh {
    background: url(./assets/images/topBgBlueTri01.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1999;
    top: 0;
    left: 0;
}

@media only screen and (max-width:768px) {
    .heroImgNineth {
        background-position: left bottom;
    }
}


.heroImgEighth {
    background: url(./assets/images/topBgBlueTri02.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1999;
    top: 0;
    left: 0;
}

@media only screen and (max-width:768px) {
    .heroImgEighth {
        background-position: right bottom;
    }
}

.heroImgNineth {
    background: url(./assets/images/topBgMulti.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1999;
    top: 0;
    left: 0;
}

@media only screen and (max-width:768px) {
    .heroImgNineth {
        background-position: 20% center;
    }
}

.heroImgTenth {
    background: url(./assets/images/topBgwhiteTri02.webp) no-repeat;
    background-size: cover;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 1999;
}

@media only screen and (max-width:768px) {
    .heroImgtenth {
        background-size: 50%;
        background-position: right top;
    }
}


.horoImgTexts {
    position: fixed;
    z-index: 2001;
    bottom: 16.66%;
    left: 8%;
    max-width: 85vw;
}

@media only screen and (max-width:768px) {
    .horoImgTexts {
        bottom: unset;
        top: 30vh;
    }
}

.heroImgLogo {
    display: flex;
    align-items: unset;
    justify-content: flex-start;
}

.heroImgLogo img {
    position: relative;
    z-index: 2050;
}


.heroImgLogoD {
    position: relative;
}

.heroImgLogoD.showLogo img {
    clip-path: polygon(0% 50%, 0% 50%, 0% 50%);
    animation: halfClockReveal 1s ease-out forwards;
}

@keyframes halfClockReveal {
    0% {
        clip-path: polygon(0% 50%, 0% 50%, 0% 50%);
    }
    10% {
        clip-path: polygon(0% 50%, 0% 0%, 0% 0%);
    }
    20% {
        clip-path: polygon(0% 50%, 0% 0%, 50% 0%);
    }
    30% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%);
    }
    40% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%, 100% 50%);
    }
    50% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%, 100% 75%);
    }
    60% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%, 100% 100%);
    }
    70% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%, 100% 100%, 75% 100%);
    }
    80% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%, 100% 100%, 50% 100%);
    }
    90% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%, 100% 100%, 25% 100%);
    }
    100% {
        clip-path: polygon(0% 50%, 0% 0%, 100% 0%, 100% 100%, 0% 100%);
    }
}

.heroImgLogoO {
    padding: 30px 0 0 5px;
}

.heroImgLogoO.showLogo img {
    clip-path: polygon(50% 50%, 50% 0%, 50% 0%);
    animation: clockReveal 1s steps(12) forwards;
}

@keyframes clockReveal {
    0% {
        clip-path: polygon(50% 50%, 50% 0%, 50% 0%);
    }
    8.33% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%);
    }
    16.66% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 50%);
    }
    25% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%);
    }
    33.33% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 50% 100%);
    }
    41.66% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%);
    }
    50% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 50%);
    }
    58.33% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%);
    }
    66.66% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 50% 0%);
    }
    75% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 100% 0%);
    }
    83.33% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 50%);
    }
    91.66% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 100%);
    }
    100% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 100%);
    }
}


.heroImgLogoC {
    position: relative;
    padding: 30px 0 0 10px;
}

.heroImgLogoC.showLogo img {
    clip-path: polygon(50% 50%, 50% 0%, 50% 0%);
    animation: clockRevealReverse 1s steps(12) forwards;
}

@keyframes clockRevealReverse {
    0% {
        clip-path: polygon(50% 50%, 50% 0%, 50% 0%);
    }
    8.33% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%);
    }
    16.66% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 50%);
    }
    25% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 100%);
    }
    33.33% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 100%, 50% 100%);
    }
    41.66% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 100%, 100% 100%);
    }
    50% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 100%, 100% 100%, 100% 50%);
    }
    58.33% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 100%, 100% 100%, 100% 0%);
    }
    66.66% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 100%, 100% 100%, 100% 0%, 50% 0%);
    }
    75% {
        clip-path: polygon(50% 50%, 50% 0%, 0% 0%, 0% 100%, 100% 100%, 100% 0%, 0% 0%);
    }
    83.33% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 100%);
    }
    91.66% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 100%);
    }
    100% {
        clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 100%);
    }
}


.heroImgLogoN {
    position: relative;
    padding: 30px 0 0 10px;
}

.heroImgLogoN.showLogo img {
    clip-path: polygon(50% 100%, 50% 100%, 50% 100%);
    animation: horizontalClockReveal 1s ease-out forwards;
}

@keyframes horizontalClockReveal {
    0% {
        clip-path: polygon(50% 100%, 50% 100%, 50% 100%);
    }
    8.33% {
        clip-path: polygon(50% 100%, 25% 75%, 25% 75%);
    }
    16.67% {
        clip-path: polygon(50% 100%, 0% 50%, 0% 50%);
    }
    25% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 50%);
    }
    33.33% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 25%);
    }
    41.67% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%);
    }
    50% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%, 25% 0%);
    }
    58.33% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%, 50% 0%);
    }
    66.67% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%, 75% 0%);
    }
    75% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%, 100% 0%);
    }
    83.33% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 25%);
    }
    91.67% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 50%);
    }
    100% {
        clip-path: polygon(50% 100%, 0% 100%, 0% 0%, 100% 0%, 100% 100%);
    }
}


.heroImgCopyMain {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 900;
    font-style: bold;
    font-size: 5.4rem;
    line-height: 1.3;
    letter-spacing: 1.2;
    color: #FFF;
    margin: 5% 0;
}

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


.heroImgCopySub {
    font-family: 'BIZ UDGothic', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 3.6rem;
    color: #FFF;
    filter: drop-shadow(4px 4px 8px rgba(0, 0, 0, 0.3));
}

@media only screen and (max-width:1300px) {
    .heroImgCopySub {
        font-size: 3.2rem;
    }
}


@media (max-aspect-ratio: 3/2) {
    .heroImgCopySub {
        font-size: 2.1rem;
    }
}

@media only screen and (max-width:768px) {
    .heroImgCopySub {
        font-size: 1.6rem;
    }
}

@media only screen and (max-width:399px) {
    .heroImgCopySub {
        font-size: 1.5rem;
    }
}

/*header*/
.header {
    position: fixed;
    z-index: 3001;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    padding: 30px;
    background: transparent;
}

.headerLogo img {
    width: 250px;
}

@media only screen and (max-width:768px) {
    .header {
        flex-wrap: nowrap;
    }
}

.h1Text {
    opacity: 0;
    display: none;
}

.headerWhite {
    animation: headerWhiteAnimation 0.5s ease forwards;
}

@keyframes headerWhiteAnimation {
    0% {
        background: transparent;
        padding: 30px;
    }
    100% {
        background: #FFF;
        padding: 5px 30px;
    }
}

/*
.headerWhiteErase {
    animation: headerWhiteEraseAnimation 0.5s ease forwards;
}

@keyframes headerWhiteEraseAnimation {
    0% {
        background: #FFF;
        padding: 5px 30px;
    }
    100% {
        background: transparent;
        padding: 30px;
    }
}
*/

.headerRight {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.headerLinks {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}


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

.headerLinks p {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.headerLinks a {
    font-size: 15px;
}

.headerLinks p:after {
    content: '|';
    display: block;
    padding: 0 25px;
    color: #2c323f;
}

.headerLinks p:last-of-type:after {
    padding: 0;
    content: '';
}

.headerSearch {
    margin: 0 35px;
    cursor: pointer;
}

.gMenu {
    display: none;
    position: fixed;
    z-index: 10001;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8)
}

.gMenu.active {
    display: block;
}

.gMenu a {
    color: #FFF;
}

.gMenuArea div {
    width: calc(100% / 3);
}

@media only screen and (max-width:768px) {
    .gMenuArea div {
        width: 100%;
    }
}

.gMenuArea ul {
    margin: 0 0 2rem 0;
}

.gMenuArea ul li {
    width: 100%;
    font-size: 1.6rem;
    font-weight: 400;
    color: #FFF;
}

.gMenuArea ul li a {
    color: #FFF;
    font-size: 1.6rem;
}

.gMenuArea ul li ul {
    width: 100%;
}

.gMenuArea ul li ul li {
    margin: 1rem auto 1rem 0.5rem;
}

.gMenuArea ul li ul li a {
    color: #FFF;
    font-size: 1.6rem;
    /*new*/
}

.gMenuArea {
    display: flex;
    justify-content: flex-end;
    /*padding-right: 5%*/
}

.gMenuArea li {
    padding: 0 2rem;
}

.gMenuArea li a {
    font-size: 1.2rem;
    position: relative;
    padding-left: 1.5rem;
}

.gMenuArea li a::before {
    content: '';
    background: #319a4b;
    height: calc(tan(60deg) * 12px / 2);
    width: 8px;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    position: absolute;
    top: 25%;
    left: 0;
}

.searchForm {
    display: none;
    position: fixed;
    z-index: 10001;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8)
}

.searchForm.active {
    display: block;
}

.searchForm form {}

.searchField {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 80%;
    height: 60px;
    padding: 20px;
}

.searchSubmit {
    position: fixed;
    z-index: 10002;
    right: 12%;
    top: 0;
    bottom: 0;
    margin: auto 0;
    color: #FFF;
    cursor: pointer;
}

.searchFormClose {
    position: fixed;
    z-index: 10002;
    right: 30px;
    top: 0;
    bottom: 0;
    margin: auto 0;
    font-size: 5.8rem;
    color: #FFF;
}

@media only screen and (max-width:768px) {
    .searchFormClose {
        top: -15%;
    }
}


/*footer*/
/* GO2TOP button */
#pageTop {
    position: fixed;
    bottom: 0px;
    right: 0px;
    /*font-size: 77%;*/
    z-index: 100;
    width: 7%;
}

@media only screen and (max-width:768px) {
    #pageTop {
        width: 18%;
    }
}

#pageTop span {
    display: none;
}

#pageTop a img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 0 0;
}

.footer {
    background: url(./assets/images/footerBg.webp) no-repeat;
    background-size: cover;
    padding: 10rem 0 5rem;
    margin-top: 10rem;
}

@media only screen and (max-width:768px) {
    .footer {
        background-position: top left;
        padding: 10px 0 50px;
    }
}

.footer h6 img {
    width: 200px;
    height: auto;
    display: block;
    margin: 20px auto;
}

.footer .fmenuArea {
    width: calc(80% - 200px);
    display: flex;
    justify-content: flex-end;
}

@media only screen and (max-width:768px) {
    .footer .fmenuArea {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }
}

.footer .fmenuArea div {
    width: calc(90% / 3);
}
@media only screen and (max-width:768px) {
    .footer .fmenuArea div {
        width: calc(90% / 2);
    }
    .footer .fmenuArea div:nth-of-type(3) {
        width: 90%;
        display: flex;
        flex-wrap: nowrap;
        justify-content: center;
    }
    .footer .fmenuArea div:nth-of-type(3) ul {
        width: calc(100% / 2);
        justify-content: center;
    }

}

.footer .fmenuArea ul {
    margin: 0 0 2rem 0;
}

.footer .fmenuArea ul li {
    width: 100%;
    font-size: 1.6rem;
    /*new*/
    font-weight: 400;
    color: #0f4c93;
}

.footer .fmenuArea ul li a {
    color: #0f4c93;
    font-size: 2rem;
    /*new*/
}
@media only screen and (max-width:768px) {
    .footer .fmenuArea ul li {
        text-align: center;
    }
    .footer .fmenuArea ul li a {
        font-size: 1.6rem;
    }

}
.footer .fmenuArea ul li ul {
    width: 100%;
}
@media only screen and (max-width:768px) {
    .footer .fmenuArea ul li ul {
        display: none;
    }
}

.footer .fmenuArea ul li ul li {
    margin: 1rem auto 1rem 0.5rem;
}

.footer .fmenuArea ul li ul li a {
    color: #2c323f;
    font-size: 1.6rem;
    /*new*/
}

.footer .fSubMenu {
    display: flex;
    justify-content: flex-end;
    padding-right: 5%
}

@media only screen and (max-width:399px) {
    .footer .fSubMenu {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

.footer .fSubMenu li {
    padding: 0 2rem;
}

.footer .fSubMenu li a {
    font-size: 1.6rem;
    position: relative;
    padding-left: 1.5rem;
}

.footer .fSubMenu li a::before {
    content: '';
    background: #319a4b;
    height: calc(tan(60deg) * 12px / 2);
    width: 8px;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    position: absolute;
    top: 25%;
    left: 0;
}

.footer .fBanner {
    width: 30%;
    position: absolute;
    bottom: 5%;
    left: 0;
    box-shadow: 0px 0px 15px -5px #777777;
}


.topPage {
    position: relative;
    z-index: 100;
    /*background: url(./assets/images/topPageBg.webp) no-repeat;*/
    background: url(./assets/images/topPageBg.jpg) no-repeat;
    background-size: 110%;
    background-position: top left;
    min-height: 300vh;
}

@media only screen and (max-width:1700px) {
    .topPage {
        background-size: 118%;
    }
}

@media only screen and (max-width:1586px) {
    .topPage {
        background-size: 130%;
    }
}

@media only screen and (max-width:1280px) and (max-height:1200px) {
    .topPage {
        background-size: 118%;
    }
}

@media only screen and (max-width:768px) {
    /*
    .topPage {
        background-size: cover;
        background-position: 20% center;
    }
    */
    .topPage {
        background-size: 270%;
        background-position: 42% 0%;
    }
}


.topPageFirstView {
    position: relative;
    z-index: 101;
    width: 100%;
    height: 100vh;
}

@media only screen and (max-width:1300px) {
    .topPageFirstView {
        height: 90vh;
    }
}

@media only screen and (max-width:980px) {
    .topPageFirstView {
        height: 80vh;
    }
}

@media only screen and (max-width:768px) {
    .topPageFirstView {
        height: 100vh;
    }
}

/*20250910add*/
.topPageFirstView::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 40vh;
    height: 40vh;
    background: rgba(255, 255, 255, 1);
    clip-path: polygon(0 0, 100% 0%, 0 100%);
}
.topPageFirstView::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 20vh;
    height: 20vh;
    background: rgba(255, 255, 255, 0.3);
    clip-path: polygon(100% 0, 0 0, 100% 100%);
}


@media only screen and (max-width:768px) {
    .topPageFirstView::before {
        width: 20vh;
        height: 20vh;
    }
}

.topPageRecruitFlex {
    position: fixed;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    bottom: 80px;
    right: 40px;
    width: 140px;
    height: 140px;
    /*background: #ddf2ec;*/
    text-align: center;
    border-radius: 200px;
}

.topPageRecruitFlexInner {}

.topPageRecruitFlexEn {
    font-family: "Poppins", sans-serif;
    font-size: 3.2rem;
    font-weight: 700;
}

.topPageRecruitFlexJp {
    font-size: 1.1rem;
}

@media only screen and (max-width:768px) {
    .topPageRecruitFlex {
        margin: auto;
        bottom: 30px;
        width: 90px;
        right: 15px;
    }
}

.topPageCopy {
    position: absolute;
    z-index: 110;
    bottom: 25.66vh;
    left: 5.5%;
    max-width: 85vw;
}

.topPageCopy img {
    filter: drop-shadow(4px 4px 8px rgba(0, 0, 0, 0.3));
}

@media only screen and (max-width:1300px) {
    .topPageCopy {
        bottom: unset;
        top: 33%;
    }
}

@media only screen and (max-width:1162px) {
    .topPageCopy {
        bottom: unset;
        top: 29%;
        left: 4%;
    }
}

@media (max-aspect-ratio: 3/2) {
    .topPageCopy img {
        width: 300px;
    }
}

@media only screen and (max-width:768px) {
    .topPageCopy {
        bottom: unset;
        top: 20%;
    }
    .topPageCopy img {
        width: 240px;
    }
}

@media only screen and (max-width:399px) {
    .topPageCopy {
        top: 18%;
    }
    .topPageCopy img {
        width: 210px;
    }
}

.topPageCopyText {
    font-family: 'BIZ UDGothic', sans-serif;
    font-weight: 900;
    font-style: bold;
    font-size: 4.2rem;
    line-height: 1.3;
    letter-spacing: 2;
    color: #FFF;
    margin: 20px 0 0;
    filter: drop-shadow(4px 4px 8px rgba(0, 0, 0, 0.8));
}

@media only screen and (max-width:1300px) {
    .topPageCopyText {
        font-size: 4.0rem;
    }
}

@media (max-aspect-ratio: 3/2) {
    .topPageCopyText {
        font-size: 3.0rem;
    }
}

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

@media only screen and (max-width:399px) {
    .topPageCopyText {
        font-size: 1.8rem;
    }
}

.topPageCopyText span {
    font-size: 4.2rem;
}

@media only screen and (max-width:768px) {
    .topPageCopyText span {
        font-size: 2.0rem;
    }
}

.topPageEnSubCopy {
    padding: calc(55vh + 5vw) 0 0;
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-style: normal;
    color: #FFF;
    font-size: 20px;
    margin: 0 0 0 18%;
}

@media screen and (max-width:1680px) {
    .topPageEnSubCopy {
        padding: calc(50vh + 5vw) 0 0;

    }
}

@media screen and (max-width:1586px) {
    .topPageEnSubCopy {
        padding: calc(50vh + 5vw) 0 0;
        margin: 0 0 0 25%;
    }
}

@media screen and (max-width:1450px) {
    .topPageEnSubCopy {
        padding: calc(55vh + 5vw) 0 0;
        margin: 0 0 0 20%;
    }
}

@media screen and (max-width:1230px) {
    .topPageEnSubCopy {
        padding: calc(25vh + 5vw) 0 0;
        margin: 0 0 0 10%;
    }
}

@media screen and (max-width:1130px) {
    .topPageEnSubCopy {
        padding: calc(15vh + 5vw) 0 0;
        margin: 0 0 0 10%;
    }
}

@media screen and (max-width:1100px) {
    .topPageEnSubCopy {
        padding: calc(15vh + 5vw) 0 0;
        margin: 0 0 0 10%;
    }
}

@media (max-aspect-ratio: 3/2) {
    .topPageEnSubCopy {
        padding: calc(30vh + 5vw) 0 0;
        margin: 0 0 0 10%;
    }
}

@media (max-aspect-ratio: 4/3) {
    .topPageEnSubCopy {
        padding: calc(2vh + 5vw) 0 0;
        margin: 0 0 0 10%;
    }
}

@media (max-aspect-ratio: 3/2) and (max-width:1440px) and (min-width:1240px) {
    .topPageEnSubCopy {
        padding: calc(40vh + 5vw) 0 0;
    }
}

@media screen and (max-height:860px) {
    .topPageEnSubCopy {
        padding: calc(50vh + 5vw) 0 0;
    }
}

@media screen and (max-height:860px) and (max-width:1200px) {
    .topPageEnSubCopy {
        padding: calc(20vh + 5vw) 0 0;
    }
}

@media screen and (max-height:780px) {
    .topPageEnSubCopy {
        padding: calc(100vh + 5vw) 0 0;
    }
}

@media screen and (max-height:780px) and (max-width:1415px) {
    .topPageEnSubCopy {
        padding: calc(70vh + 5vw) 0 0;
    }
}

@media screen and (max-height:780px) and (max-width:1270px) {
    .topPageEnSubCopy {
        padding: calc(50vh + 5vw) 0 0;
    }
}

@media screen and (min-height:1000px) and (max-width:1401px) {
    .topPageEnSubCopy {
        padding: calc(45vh + 5vw) 0 0;
    }
}

@media screen and (max-height:1000px) and (max-width:1280px) {
    .topPageEnSubCopy {
        padding: calc(25vh + 5vw) 0 0;
    }
}

@media screen and (max-height:1000px) and (max-width:1130px) {
    .topPageEnSubCopy {
        padding: calc(10vh + 5vw) 0 0;
    }
}

@media (max-width:1605px) and (min-width:1500px) and (max-height:1075px) and (min-height:1070px) {
    .topPageEnSubCopy {
        padding: calc(35vh + 5vw) 0 0;
    }
}

@media (max-width:1450px) and (min-width:1400px) and (max-height:1075px) and (min-height:1070px) {
    .topPageEnSubCopy {
        padding: calc(40vh + 5vw) 0 0;
    }
}

@media (max-width:1440px) and (min-width:1402px) and (max-height:1038px) and (min-height:940px) {
    .topPageEnSubCopy {
        padding: calc(35vh + 5vw) 0 0;
    }
}

@media (max-width:1170px) and (min-width:1160px) and (max-height:975px) and (min-height:971px) {
    .topPageEnSubCopy {
        padding: calc(10vh + 5vw) 0 0;
    }
}

@media (max-width:1190px) and (min-width:1180px) and (max-height:1000px) and (min-height:960px) {
    .topPageEnSubCopy {
        padding: calc(15vh + 5vw) 0 0;
    }
}

@media (max-width:1300px) and (min-width:1282px) and (height:880px) {
    .topPageEnSubCopy {
        padding: calc(25vh + 5vw) 0 0;
    }
}

@media (max-width:1370px) and (min-width:1282px) and (max-height:880px) and (min-height:870px) {
    .topPageEnSubCopy {
        padding: calc(55vh + 5vw) 0 0;
    }
}

@media (width:1368px) and (max-height:895px) and (max-height:891px) {
    .topPageEnSubCopy {
        padding: calc(55vh + 5vw) 0 0;
    }
}

@media (width:1298px) and (max-height:895px) and (max-height:891px) {
    .topPageEnSubCopy {
        padding: calc(60vh + 5vw) 0 0;
    }
}

@media (max-width:1573px) and (min-width:1510px) and (max-height:890px) and (max-height:880px) {
    .topPageEnSubCopy {
        padding: calc(75vh + 5vw) 0 0;
    }
}

@media (max-width:1573px) and (min-width:1510px) and (max-height:880px) and (min-height:870px) {
    .topPageEnSubCopy {
        padding: calc(70vh + 5vw) 0 0;
    }
}

@media (max-width:1700px) and (min-width:1575px) and (max-height:870px) and (min-height:850px) {
    .topPageEnSubCopy {
        padding: calc(80vh + 5vw) 0 0;
    }
}

@media (max-width:1920px) and (min-width:1800px) and (max-height:910px) and (min-height:790px) {
    .topPageEnSubCopy {
        padding: calc(70vh + 5vw) 0 0;
    }
}

@media (max-width:1920px) and (min-width:1800px) and (max-height:791px) and (min-height:600px) {
    .topPageEnSubCopy {
        padding: calc(90vh + 5vw) 0 0;
    }
}

@media (max-width:1700px) and (min-width:1500px) and (max-height:910px) and (min-height:780px) {
    .topPageEnSubCopy {
        padding: calc(70vh + 5vw) 0 0;
    }
}

@media (max-width:1800px) and (min-width:1400px) and (max-height:810px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(90vh + 5vw) 0 0;
    }
}

@media (max-width:1380px) and (min-width:1280px) and (max-height:780px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(70vh + 5vw) 0 0;
    }
}

@media (max-width:1279px) and (min-width:1200px) and (max-height:780px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(47vh + 5vw) 0 0;
    }
}

@media screen and (min-width:1195px) and (max-width:1401px) and (max-height:780px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(75vh + 5vw) 0 0;
    }
}

@media screen and (min-width:1195px) and (max-width:1280px) and (max-height:780px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(50vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1190px) and (max-width:1145px) and (max-height:760px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(40vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1144px) and (max-width:1000px) and (max-height:760px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(50vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1920px) and (min-width:1380px) and (max-height:690px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(120vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1379px) and (min-width:1321px) and (max-height:690px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(110vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1320px) and (min-width:1271px) and (max-height:690px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(90vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1270px) and (min-width:1201px) and (max-height:690px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(70vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1200px) and (min-width:1000px) and (max-height:690px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(55vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1320px) and (min-width:1281px) and (max-height:630px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(115vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1700px) and (min-width:1440px) and (max-height:600px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(130vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1920px) and (min-width:1800px) and (max-height:640px) and (min-height:500px) {
    .topPageEnSubCopy {
        padding: calc(160vh + 5vw) 0 0;
    }
}


@media screen and (max-width:1194px) and (min-width:1100px) and (max-height:720px) and (min-height:600px) {
    .topPageEnSubCopy {
        padding: calc(55vh + 5vw) 0 0;
    }
}

@media screen and (max-width:1400px) and (min-width:1310px) and (max-height:781px) and (min-height:770px) {
    .topPageEnSubCopy {
        padding: calc(55vh + 5vw) 0 0;
    }
}

@media only screen and (max-width:768px) {
    .topPageCopyText span {
        padding: 0;
        margin: 0 auto;
    }
}

/*
.topPageAbout {
    position: relative;
    min-height: 1000px;
    width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
}

.topPageAboutWrap {
    overflow-y: inherit;
}

.topPageAboutBg {
    position: absolute;
    top: 0;
    right: -20%;
    width: calc(100% - 23.47%);
    height: 100%;
    background: url(./assets/images/logoSkeleton.svg) no-repeat bottom center, linear-gradient(to right, #319a4b 0%, #317d61 100%);
    transform: rotate(45deg);
}
*/

.topPageAbout {
    position: relative;
    width: 40%;
    margin: 10% 10% 0 60%;
}

@media screen and (max-width:1586px) {
    .topPageAbout {
        margin: 20% 10% 0 60%;
    }
}

@media screen and (max-width:1370px) {
    .topPageAbout {
        width: 40%;
        margin: 15% 5% 0 55%;
    }
}

@media screen and (max-width:1110px) {
    .topPageAbout {
        width: 40%;
        margin: 5% 5% 0 60%;
    }
}

@media only screen and (max-width:768px) {
    .topPageAbout {
        /*
        width: 70%;
        margin: 80vh 5% 0 25%;
        */
        width: 90%;
        margin: -16vh 5% 0 5%;
    }
    .topPageAbout .catchCopybig {
        filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.8));
    }
}

@media only screen and (max-width:415px) {
    .topPageAbout {
        margin: -16vh 5% 0 5%
    }
}

@media only screen and (max-width:376px) {
    .topPageAbout {
        width: 90%;
        margin: -55vh 5% 0 5%;
    }

}

.topPageAboutText {
    font-size: 1.6rem;
    font-weight: 400;
    color: #FFF;
    line-height: 2.6;
    letter-spacing: 1;
}

@media only screen and (max-width:768px) {
    .topPageAboutText {
        line-height: 1.6;
        filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.8));
    }

}

.topPageNews {
    position: relative;
    width: 40%;
    margin: 20% 0 0 10%;
}

@media screen and (max-width:1586px) {
    .topPageNews {
        margin: 10% 0 0 10%;
    }
}

@media only screen and (max-width:768px) {
    .topPageNews {
        width: 90%;
        /*
        margin: 60vh auto 0;
        */
        margin: 10vh auto 0;
    }
}

.topPageService {
    padding-top: 20vh;
}

.topPageServiceInner {
    max-width: 1298px;
}

@media only screen and (max-width:768px) {
    .topPageService {
        width: 90%;
        margin: 35% auto 0;
        padding-top: 0;
    }
}

.topPageServiceCard {
    width: 23.46%;
    max-width: 362px;
    min-height: 340px;
    padding: 50px 40px;
}

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

.topPageServiceCard {
    position: relative;
    background: url(./assets/images/topPageServiceCard01.webp) no-repeat;
    background-size: cover;
    /*margin: 0 0 25px 0;*/
}

.topPageServiceCard01 {
    background: url(./assets/images/topPageServiceCard01.webp) no-repeat;
}

.topPageServiceCard02 {
    background: url(./assets/images/topPageServiceCard02.webp) no-repeat;
}

.topPageServiceCard03 {
    background: url(./assets/images/topPageServiceCard03.webp) no-repeat;
    background-position: 40% bottom;
}

.topPageServiceCard04 {
    background: url(./assets/images/topPageServiceCard04.webp) no-repeat;
}

.topPageServiceCard05 {
    background: url(./assets/images/topPageServiceCard05.webp) no-repeat;
}

.topPageServiceCard06 {
    background: url(./assets/images/topPageServiceCard06.webp) no-repeat;
}

.topPageServiceCard07 {
    background: url(./assets/images/topPageServiceCard07.webp) no-repeat;
}

.topPageServiceCard08 {
    background: url(./assets/images/topPageServiceCard08.webp) no-repeat;
}


.topPageServiceCard:hover {
    opacity: 1;
}


.topPageServiceCard:before {
    position: absolute;
    z-index: 110;
    content: '';
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(44, 50, 63, 0.5);
    opacity: 1;
}

.topPageServiceCard:hover:before {
    background: rgba(40, 110, 80, 0.8);
    opacity: 1;
}

.topPageServiceCardTri {
    position: absolute;
    z-index: 110;
    top: 0;
    right: 0;
    content: '';
    display: block;
    width: 80px;
    height: 80px;
    padding: 15px 15px 0 45px;
    background: url(./assets/images/topPageServiceCardTri.webp) no-repeat;
    color: #FFF;
    font-family: "Poppins", sans-serif;
    font-size: 1.8rem;

}


.topPageServiceCardHeadline {
    position: relative;
    z-index: 130;
    font-size: 2.4rem;
    font-weight: 700;
    color: #FFF;
    letter-spacing: 1;
}

.topPageServiceCardList li {
    position: relative;
    z-index: 130;
    color: #FFF;
    margin: 0 0 15px;
}

.topPageServiceCardList li {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.topPageServiceCardList li:before {
    content: '';
    display: block;
    width: 10px;
    height: 2px;
    background: #65dd3d;
    margin: 0 5px 0 0;
}

.topPageServiceCardIcon {
    position: absolute;
    z-index: 110;
    bottom: 25px;
    right: 20px;
    display: flex;
    align-items: center;
    font-size: 1.4rem;
    /*new*/
    font-weight: 400;
    color: #FFF;
    font-family: "Poppins", sans-serif;
}

.topPageServiceCardIcon:after {
    content: '';
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 5px;
    margin: 0 0 0 20px;
    background: #319a4b;
}

.topPageServiceCard:hover .topPageServiceCardIcon {
    right: 10px;
    color: #65dd3d;
}

.topPageServiceCard:hover .topPageServiceCardIcon:after {
    width: 20px;
    height: 20px;
    background: url('./assets/images/linkHoverIcon.svg') no-repeat;
    margin: 0 0 0 15px;
}



.topPageOther01 {
    padding-top: 20vh;
}

.topPageOther01 p {
    min-height: 7rem;
}

@media only screen and (max-width:768px) {
    .topPageOther01 {
        width: 90%;
        max-width: 100%;
        padding-top: 20%;
    }
    .topPageOther01 p {
        min-height: auto;
    }
}

.topPageOther01Left {
    max-width: 480px;
    width: 37%;
}

@media only screen and (max-width:768px) {
    .topPageOther01Left {
        max-width: 100%;
        width: 100%;
        margin: 0 0 60px;
    }
}

@media only screen and (min-width:2500px) {
    .topPageOther01Left {
        max-width: 37%;
    }

    .topPageOther01Left img {
        width: 100%;
    }
}

.topPageOther01Right {
    max-width: 720px;
    width: 55%;
}

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


@media only screen and (min-width:2500px) {
    .topPageOther01Right {
        max-width: 55%;
    }
    .topPageOther01Right img {
        width: 100%;
    }
}

.topPageOther01RightImg {
    position: relative;
}
.topPageOther01RightImg p {
    position: absolute;
    font-size: 2.1rem;
    font-weight: bold;
    text-align: right;
    color: #FFF;
    z-index: 2;
    right: 20px;
    top: 30%;
}
.topPageOther01RightImg img {
    position: relative;
    z-index: 1;
}
@media only screen and (max-width:768px) {
    .topPageOther01RightImg p {
        font-size: 1.6rem;
    }
}

.topPageOther02 {
    padding-top: 20vh;
}

.topPageOther02Left {
    max-width: 600px;
    width: 46%;
}

@media only screen and (max-width:768px) {
    .topPageOther02 {
        padding-top: 0vh;
    }
    .topPageOther02Left {
        max-width: 100%;
        width: 100%;
        margin: 0 0 60px;
    }
}

@media only screen and (min-width:2500px) {
    .topPageOther02Left {
        max-width: 46%;
    }
}

.topPageOther02Right {
    max-width: 600px;
    width: 46%;
}

@media only screen and (max-width:768px) {
    .topPageOther02Right {
        max-width: 100%;
        width: 100%;
        /*margin: 0 0 60px;*/
        margin: 0;
    }
}

@media only screen and (min-width:2500px) {
    .topPageOther02Right {
        max-width: 46%;
    }
}

.topRecruit {
    position: relative;
    min-height: 280px;
    /*background: url(./assets/images/topRecruitBg.jpg) no-repeat;*/
}

@media only screen and (max-width:768px) {
    .topRecruit {
        background-size: contain;
        min-height: 180px;
    }
}

@media only screen and (min-width:2500px) {
    .topPageOther02 {
        padding-bottom: 120px;
    }

    .topRecruit {
        background-size: cover;
        height: 100%;
    }
}

.topRecruitHeadline {
    position: absolute;
    bottom: 25px;
    left: 35px;
    font-size: 1.6rem;
    /*new*/
}

.topRecruitLink {
    position: absolute;
    bottom: 25px;
    right: 25px;
}

/****固定ページ共通****/
.pageHeaderArea {
    background: url(./assets/images/pageJeaderBg.png) no-repeat;
    background-size: cover;
    height: 20vw;
    padding: 8vw 0 0;
    margin-bottom: 3vw;
}

@media only screen and (max-width:768px) {
    .pageHeaderArea {
        height: auto;
        min-height: 50vw;
        padding: 25vw 0 10vw;
    }
}

.pageTitle {
    font-size: 2.4vw;
    font-weight: 500;
    /*letter-spacing: 1rem;*/
    color: #2c323f;
    text-align: center;
    position: relative;
    padding: 0 10%;
    line-height: 1.6;
}

@media only screen and (max-width:768px) {
    .pageTitle {
        font-size: 2.0rem;
    }
}

.pageTitle::after {
    content: '';
    position: absolute;
    bottom: -15px;
    left: calc(50% - 15px);
    width: 30px;
    height: 2px;
    background: #319a4b;
}

.pageTitle span {
    font-size: 1.3vw;
    font-family: "Poppins", sans-serif;
    display: block;
    padding: 1rem 0 1rem 0.5rem;
    letter-spacing: 0.5rem;
}

@media only screen and (max-width:768px) {
    .pageTitle span {
        font-size: 1.3rem;
    }
}

/**アーカイブページ**/

.archiveWrap {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
}

.archiveHeader {
    width: 15%;
    font-size: 2.5rem;
    letter-spacing: 1;
    text-decoration: none;
    color: #2c323f;
    line-height: 1.5;
    padding: 28px 0;
    /*border-top: 1px solid #cccccc;*/
}

.archiveLinks {
    width: 85%;
}

@media only screen and (max-width:768px) {
    .archiveHeader {
        width: 100%;
        text-align: center;
    }

    .archiveLinks {
        width: 100%;
    }
}

.archiveLinks li {
    width: 100%;
    border-top: 1px solid #cccccc;
}

.archiveLinks a {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-start;
    font-size: 1.6rem;
    /*new*/
    letter-spacing: 1;
    padding: 28px 0;
}

/**検索結果**/
.resultItem {
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 20px;
    background: #fff;
    font-size: 1.6rem;
}

.resultTitle {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: #2c323f;
    font-size: 1.4rem;
    line-height: 1.5;
}

.resultTitle span {
    text-decoration: none;
    font-size: 1.4rem;
    line-height: 1.5;
}

.resultTitle span.resultBadge {
    color: white;
    padding: 4px 15px;
    border-radius: 20px;
    font-weight: bold;
    font-size: 1.2rem;
}

.resultTermBadge {
    background: #f0f0f0;
    color: #333;
    padding: 4px 8px;
    border-radius: 8px;
    font-size: 1.4rem;
    /*new*/
    margin-right: 8px;
    display: inline-block;
}

/**固定ページ最下部のレコメンドエリア**/
.pageRecommendArea {
    display: flex;
    width: 100%;
    height: 30vw;
    margin-top: 8rem;
    padding: 5%;
    background: url(./assets/images/recommendAreaBg.svg) no-repeat;
    background-size: contain;
}

@media only screen and (max-width:768px) {
    .pageRecommendArea {
        height: auto;
    }
}

.pageRecommendArea div {
    width: 50%;
    height: 100%;
    position: relative;
}

.pageRecommendArea div .aligncenter {
    text-align: center;
}

.pageRecommendArea div h6 {
    text-align: center;
    font-size: 2.2rem;
    font-weight: 200;
    color: #2c323f;
    position: relative;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
}

.pageRecommendArea div h6::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: calc(50% - 15px);
    width: 30px;
    height: 2px;
    background: #319a4b;
}

.pageRecommendArea div h6 img {
    display: block;
    margin: 0 auto;
}

.pageRecommendArea div p {
    font-size: 1.6rem;
    /*new*/
    padding: 0 2rem 2rem;
}

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

.pageRecommendArea div a {
    display: block;
    color: #2c323f;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.3rem;
    font-family: "Poppins", sans-serif;
    position: absolute;
    right: 3rem;
    bottom: 0;
    padding-right: 3rem !important;
}


.pageRecommendArea div a:after {
    content: '';
    width: 8px;
    height: 8px;
    background: #319a4b;
    border-radius: 50%;
    position: absolute;
    right: 0;
    top: 30%;
}

.pageRecommendArea div a:hover {
    opacity: 1;
    transition: transform 0.6s ease-in-out;
    transform: scale(1);
    color: #319a4b;
}

.pageRecommendArea div a:hover:after {
    background: url(./assets/images/arrow.svg) no-repeat;
    background-size: cover;
    position: absolute;
    top: 2% !important;
}

/****固定ページ:SERVICE****/
.devPanel {
    width: 100%;
    margin: 100px auto;
    padding: 0 4rem 4rem 0;
    border-bottom: solid 1px #ccc;
    border-right: solid 1px #ccc;
    display: flex;
    justify-content: space-between;
}

@media only screen and (max-width:768px) {
    .devPanel {
        flex-wrap: wrap;
    }
}


.devPanel div:nth-of-type(1) {
    width: 45%;
    position: relative;
}

@media only screen and (max-width:768px) {
    .devPanel div:nth-of-type(1) {
        width: 100%;
        margin: 0 0 30px;
    }
}

.devPanel div:nth-of-type(1) span {
    display: block;
    width: 100px;
    height: 100px;
    position: absolute;
    top: 0;
    left: 0;
    background: url(./assets/images/serviceNumFlagBg.svg) no-repeat;
    background-size: contain;
    font-size: 2.2rem;
    color: #fff;
    padding: 17px;
    font-family: "Poppins", sans-serif;
}

.devPanel div:nth-of-type(2) {
    width: 52%;
    position: relative;
}

@media only screen and (max-width:768px) {
    .devPanel div:nth-of-type(2) {
        width: 100%;
    }
}

.devPanel div:nth-of-type(2) h4 {
    font-size: 2.4rem;
    font-weight: 500;
    font-family: "zen-kaku-gothic-new", sans-serif;
    letter-spacing: 0.7rem;
    ;
    position: relative;
    margin-bottom: 3rem;
    padding-left: 3rem;
}

.devPanel div:nth-of-type(2) h4::before {
    position: absolute;
    content: '';
    width: 20px;
    height: 2px;
    background: #319a4b;
    left: 0;
    top: 50%;
}

.devPanel div:nth-of-type(2) p:nth-of-type(1) {
    font-size: 2.0rem;
    font-weight: 300;
    margin: 2rem auto;
}

.devPanel div:nth-of-type(2) p:nth-of-type(2) {
    font-size: 1.6rem;
    font-weight: 300;
    margin: 2rem auto;
    line-height: 2;
}

.devPanel div:nth-of-type(2) p:nth-of-type(2) br {
    display: none;
}

.devPanel div:nth-of-type(2) p:nth-of-type(2) strong {
    background: linear-gradient(transparent 70%, #98cca5 60%);
}

.devPanel div:nth-of-type(2) a {
    display: block;
    color: #2c323f;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.3rem;
    font-family: "Poppins", sans-serif;
    position: absolute;
    right: 0;
    bottom: 0;
    padding-right: 3rem;
}

.devPanel div:nth-of-type(2) a:after {
    content: '';
    width: 8px;
    height: 8px;
    background: #319a4b;
    border-radius: 50%;
    position: absolute;
    right: 0;
    top: 30%;
}

.devPanel div:nth-of-type(2) a:hover {
    opacity: 1;
    transition: transform 0.6s ease-in-out;
    transform: scale(1);
    color: #319a4b;
}

.devPanel div:nth-of-type(2) a:hover:after {
    transform: scale(3);
    background: url(./assets/images/arrow.svg) no-repeat;
    background-size: cover;
}

/****固定ページ:環境分野（eag） SERVICE下****/
.serviceDivMain {
    /*flex-direction: row-reverse;*/
    align-items: flex-start;
    margin-bottom: 8rem;
    justify-content: space-between;
}

@media only screen and (max-width:768px) {
    body .serviceDivMain {
        flex-direction: row;
        flex-wrap: wrap;
        margin-bottom: 8rem;
    }
}

.serviceDivMain div:nth-of-type(1) {
    width: 45%;
    height: auto;
}

.serviceDivMain div:nth-of-type(2) {
    width: 48%;
}

@media only screen and (max-width:768px) {
    .serviceDivMain img,
    .serviceDivMain div,
    .serviceDivMain div:nth-of-type(1),
    .serviceDivMain div:nth-of-type(2) {
        width: 100%;
        margin: 0;
    }
}

.serviceDivMain h1 {
    font-size: 3.0rem;
    font-weight: 500;
    color: #2c323f;
    letter-spacing: 0.7rem;
    font-family: "zen-kaku-gothic-new", sans-serif;
    margin-bottom: 3rem;
}
@media only screen and (max-width:768px) {
    .serviceDivMain h1 {
        font-size: 2.0rem;
        margin: 1rem 0 0 0;
    }
}

.serviceDivMain h1 strong {
    color: #319a4b;
    padding-right: 2rem;
    font-family: "Poppins", sans-serif;
    font-weight: normal;
    letter-spacing: 0;
}

/*
.serviceDivMain h4 {
    font-size: 3.0rem;
    font-weight: 500;
    color: #2c323f;
    letter-spacing: 0.7rem;
    font-family: "zen-kaku-gothic-new", sans-serif;
    margin-bottom: 3rem;
}

.serviceDivMain h4 span {
    color: #319a4b;
    padding-right: 2rem;
    font-family: "Poppins", sans-serif;
    letter-spacing: 0;
}
*/

.serviceDivMain p:nth-of-type(1) {
    font-size: 2.2rem;
    font-weight: 500;
    color: #2c323f;
    font-family: "zen-kaku-gothic-new", sans-serif;
    margin-bottom: 3rem;
    letter-spacing: 0.5rem;
}
@media only screen and (max-width:768px) {
    .serviceDivMain p:nth-of-type(1) {
        font-size: 1.8rem;
    }
}

.serviceDivMain p:nth-of-type(2) {
    font-size: 1.6rem;
    font-weight: 400;
    color: #2c323f;
    line-height: 2;
}

.serviceDivMain p:nth-of-type(2) br {
    display: none;
}

.serviceDivMain p:nth-of-type(2) strong {
    background: linear-gradient(transparent 70%, #98cca5 60%);
}

.serviceSubContentArea {}

/*ページ内切り替えする場合にはこの中を書き換える*/
.serviceSubContentNav {
    width: 100%;
    /**border-bottom: solid 2px #319a4b;*/
    margin-bottom: 2rem;
}

.serviceSubContentNav ul {
    display: flex;
    justify-content: flex-start;
    padding-bottom: 7px;
}

.serviceSubContentNav ul li {
    margin: 0 2px 0 0;
    cursor: pointer;
    flex-grow: 1;
}

.serviceSubContentNav ul li::marker {
    content: none;
}


.serviceSubContentNav ul li a {
    padding: 1rem 3rem;
    text-align: center;
    background: #319a4b;
    color: #fff;
    position: relative;
    font-size: 1.8rem;
    font-weight: 500;
    font-family: "zen-kaku-gothic-new", sans-serif;
    letter-spacing: 0.5rem;
    display: block;
}

.serviceSubContentNav ul li a::after,
.serviceSubContentNav ul li a:hover::after {
    content: none;
}

.serviceSubContentNav ul li a:hover {
    padding: 1rem 3rem;
    background: #319a4b;
    color: #fff;
    opacity: 0.5;
}

.serviceSubContentNav ul li.selected a::after {
    content: '';
    background: #319a4b;
    height: calc(tan(60deg) * 12px / 2);
    width: 12px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    position: absolute;
    bottom: -8px;
    left: calc(50% - 6px);
    margin: auto;
}

.serviceSubContentNav ul li.selected a:hover:after {
    bottom: -8px;
    left: calc(50% - 6px);
    right: auto;
    margin: auto;
}

.serviceSubContent .contentNav {
    margin: 5rem auto;
    display: flex;
    justify-content: center;
}

.serviceSubContentTitle {
    font-size: 3.0rem;
    font-weight: 500;
    letter-spacing: 1rem;
    color: #333;
    text-align: center;
    margin: 5rem auto 0;
}

@media only screen and (max-width:768px) {
    .serviceSubContent .contentNav {
        flex-wrap: wrap;
    }
    .serviceSubContentNav ul {
        flex-direction: column;
    }
    .serviceSubContentNav ul li {
        margin: 0 0 2px 0;
        cursor: pointer;
        flex-grow: 1;
        list-style-type: none;
    }
    .serviceSubContentNav ul li a {
        padding: 1rem;
        text-align: left;
        background: #319a4b;
        color: #fff;
        position: relative;
        font-size: 1.4rem;
        font-weight: 500;
        font-family: "zen-kaku-gothic-new", sans-serif;
        letter-spacing: 0.5rem;
        text-align: center;
    }
    .serviceSubContentNav ul li.selected a::after {
        content: none;
    }
    .serviceSubContentTitle {
        font-size: 2.0rem;
    }
    .serviceSubContent .contentNav {
        margin: 1rem auto 0;
    }
}

.serviceSubContent .contentNav li {
    padding: 0 1rem;
    margin: 0 1rem 0 0;
    border-right: solid 1px #2c323f;
    list-style-type: none;
}

@media only screen and (max-width:768px) {
    .serviceSubContent .contentNav li {
        padding: 5px;
        margin: 10px 15px;
        border-right: none;
    }
    .serviceSubContentTitle {
        white-space: normal;
        /* 自動改行 */
        word-break: keep-all;
        /* 意図しない分割防止 */
    }

}

.serviceSubContent .contentNav li:last-of-type {
    border-right: none;
}

.serviceSubContent .contentNav li a {
    text-decoration: underline;
    font-weight: normal;
    text-align: center;
    line-break: strict;
}

.serviceSubContent .contentNav li::marker {
    content: none;
}

.serviceSubContent .contentNav li a:after,
.serviceSubContent .contentNav li a:hover:after {
    content: none;
}

.subContentFig {
    background: #f2f2f2;
    padding: 4rem;
    margin: 8rem auto;
    width: 100%;
}
@media only screen and (max-width:768px) {
    .subContentFig {
        background: #f2f2f2;
        padding: 2rem;
        margin: 8rem auto;
        width: 100%;
    }
}

.subContentFig h5 {
    font-size: 2.4rem;
    font-weight: 500;
    font-family: "zen-kaku-gothic-new", sans-serif;
    letter-spacing: 0.5rem;
    ;
    position: relative;
    margin-bottom: 3rem;
    padding-left: 3rem;
}

.subContentFig h5::before {
    position: absolute;
    content: '';
    width: 20px;
    height: 2px;
    background: #319a4b;
    left: 0;
    top: 50%;
}

.subContentFig p:nth-of-type(1) {
    font-size: 1.6rem;
    font-weight: 300;
    color: #2c323f;
    line-height: 2;
}

.subContentFig p:nth-of-type(1) strong {
    background: linear-gradient(transparent 70%, #98cca5 60%);
}

.subContentFig .keyword {
    padding: 2rem;
    margin: 4rem auto;
    background: #fff;
    display: flex;
    width: 100%;
}
.subContentFig .businessInfo {
    background: #494949;
    color: hsl(0, 0%, 100%) !important;
    width: 15%;
    padding: 0 5px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.subContentFig .keyword p {
    font-size: 1.6rem;
    /*new*/
    font-weight: 400;
    color: #2c323f;
    line-height: 1.4;
}

.subContentFig .keyword p:nth-of-type(1) {
    margin: 0 2rem 0 0;
}

.subContentFig .keyword p:nth-of-type(2) {
    margin: 0;
    width: 85%;
}
@media only screen and (max-width:768px) {
    .subContentFig .keyword {
        display: block;
        margin-bottom: 10px;
    }
    .subContentFig .businessInfo {
        width: 100%;
    }
    .subContentFig .keyword p:nth-of-type(2) {
        width: 100%;
        line-height: 2;
        margin: 10px 0 0 0;
    }
}


.subContentFigPhoto {
    display: flex;
    justify-content: flex-start;
    /*margin: 4rem auto;*/
    gap: 0;
}

.subContentFigPhoto div {
    width: calc(94% / 3);
    margin: 1%;
}
.subContentFigPhoto img {
    width: 100%;
    height: 300px;
    object-fit: contain;
}
.subContentFigPhoto2 div {
    width: auto;
    margin: 1%;
}
.subContentFigPhoto2 img {
    width: 100%;
    height: 210px;
    object-fit: contain;
}

@media only screen and (max-width:768px) {
    body .subContentFigPhoto {
        flex-wrap: wrap;
    }
    .subContentFigPhoto div {
        width: 100%;
        margin: 1%;
    }
    .subContentFigPhoto img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}

.subContentFigPhoto figcaption {
    padding: 1rem 0;
    font-size: 1.6rem;
    /*new*/
    font-weight: 400;
    line-height: 2;
}

.subContentFigLink {
    display: flex;
    justify-content: center;
    gap: 0;
}

@media only screen and (max-width:768px) {
    body .subContentFigLink {
        flex-wrap: wrap;
    }
}

.subContentFigLink div {
    width: 30%;
    margin: 2%;

}

.subContentFigLink div a {
    display: inline-block;
    width: 100%;
    padding: 2rem 4rem;
    text-align: center;
    background: #fff;
    border: solid 2px #2c323f;
    border-radius: 50px;
    letter-spacing: 0.5rem;
    font-size: 1.6rem;
    font-weight: 500;
    position: relative;
}

@media only screen and (max-width:768px) {
    .subContentFigLink div {
        width: 100%;
        margin: 2% 0;
    }
}


.subContentFigLink div a:hover {
    width: 100%;
    padding: 2rem 4rem;
    color: #319a4b;
    border: solid 2px #319a4b;
    opacity: 1;
    background: url(./assets/images/arrow.svg) no-repeat 92% 50% #fff;
}

.subContentFigLink a:after {
    content: '';
    width: 8px;
    height: 8px;
    background: #319a4b;
    border-radius: 50%;
    position: absolute;
    right: 8%;
    top: 41%;
}

.subContentFigLink a:hover:after {
    content: none;
}




/**20251122_tsaito_add for page-works.php**/
.cbxArea {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}
.cbxArea h4 {
    width: 15%;
    margin-right: 1%;
}
.cbxArea .cbxAreaSelects {
    width: 84%;
    padding: 1.5rem 0;
}
.cbxArea .cbxAreaSelects .btn {
    width: 170px;
    background: #333;
    font-size: 1.4rem;
    color: #fff;
    padding: 0.7rem;
    border: none;
}
@media only screen and (max-width:768px) {
    .cbxArea {
        flex-wrap: wrap;
    }
    .cbxArea h4 {
        width: 100%;
        margin-right: 0;
        margin-bottom: 1rem;
    }
    .cbxArea .cbxAreaSelects {
        width: 100%;
        padding: 0;
        margin-top: 30px;
    }
}



/** 20251122_tsaito_add for frontpage(Override)**/
.topPageOther02Left {
    max-width: auto;
}
.topPageOther02Right {
    max-width: auto;
}

.topPageOther02Right .newsLinks {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.topPageOther02Right .newsLinks li {
    /*min-width: 280px;*/
    width: 47%;
    border: none;
    border-bottom: solid 2px #319a4b;
    display: flex;
    align-items: center;
}
@media only screen and (max-width:768px) {
    .topPageOther02Right .newsLinks li {
        min-width: 100%;
        width: 100%;
    }
}
.topPageOther02Right .newsLinks li a {
    padding: 0.7rem 2rem 0.7rem 0;
    width: 100%;
}
.topPageOther02Right .newsLinks li a::before {
    content: none;
}
.topPageOther02Right .newsLinks li:last-of-type {
    border-bottom: solid 2px #319a4b;
}


/** 20251122_tsaito_add for searchReslut(Override) **/
/**検索結果**/
.resultTitle {
    display: block;
}
.resultTitle .flex {
    align-items: center;
}
.resultTitle span.resultBadge {
    margin-right: 1rem;
    font-size: 1.8rem;
    border-radius: 0;
}
.resultTitle h4.resultYearBadge {
    font-size: 1.6rem;
    font-weight: 500;
}
.resultTitle p {
    width: 100%;
    margin: 1rem 0;
    font-size: 1.6rem;
    line-height: 1.6;
}


/** 20251122_tsaito_add for company(Override) **/

.companyItems {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr);
    gap: 1.5rem;
}

/* カード */
.companyItems .wp-block-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
    background: #fff;
    border-radius: 4px;
    height: 100%;
}

/* 画像枠（高さ固定でブレ防止） */
.companyItems .wp-block-column figure {
    margin: 0;
    width: 100%;
    /* 横はカード幅にあわせる */
    height: 80px;
    /* ←高さは固定（ここが重要） */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 画像（アイコン本体） */
.companyItems .wp-block-column img {
    width: 70px;
    /* ←横幅80px固定 */
    height: auto;
    max-height: 100%;
    /* 画像が枠をはみ出さない */
    margin: 0 auto;
}

/* テキスト */
.companyItems .wp-block-column p {
    margin-top: 1rem;
    margin-bottom: 0;
    line-height: 1.4;
}

.companyItems .wp-block-column a {
    width: 100%;
    height: 100%;
}
.companyItems .wp-block-column p {
    width: 100%;
}
.companyItems .wp-block-column p a {
    width: 100%;
    height: 100%;
    text-align: center;
    position: relative;
    display: block;
}
.companyItems .wp-block-column p a::after {
    position: absolute;
    right: -3%;
    top: 30%;
}
.companyItems .wp-block-column p a:hover::after {
    position: absolute;
    right: -5%;
    top: 5%;
}


/* SP（2列） */
@media only screen and (max-width: 766px) {
    .companyItems {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }

    .companyItems .wp-block-column {
        padding: 1.5rem;
    }

    .companyItems .wp-block-column figure {
        height: 70px;
        /* SPでは少し小さく */
    }

    .companyItems .wp-block-column img {
        width: 70px;
    }
}



.companyItems .wp-block-column .wp-block-image a::after {
    content: none;
}
/*
.companyItems .wp-block-column img {
    display: block;
    width: 60%;
    max-width: 60%;
    margin: 0 auto 2rem;
}
    */
.companyItems .wp-block-column p {
    text-align: center;
}
.companyItems .wp-block-column p a {
    font-size: 1.6rem;
    text-align: center;
    font-weight: 500;
    color: #333;
}



/*20251203_tsaito*/
/*WPコアの生成するstyleを上書きする*/
body :where(.wp-block-columns.is-layout-flex),
body :where(.wp-block-columns) {
    align-items: flex-start !important;
}

/** 建築コンサルタントについて **/
#post7934 .fig001 {
    width: 960px;
    margin: 2rem 0 2rem 2rem;
}
#post7934 .fig001 div {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    margin: 0 auto;
}
#post7934 .fig001 div p {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    color: #fff;
    text-align: center;
    background: #6CA5C4;
}
#post7934 .fig001 div p:before {
    content: "";
    position: absolute;
    left: 140%;
    top: 45%;
    box-sizing: border-box;
    width: 10px;
    height: 10px;
    border: 10px solid transparent;
    border-left: 10px solid #6CA5C4;
}
#post7934 .fig001 div p:nth-last-child(1):before {
    content: none;
}
#post7934 .fig001 div p span {
    display: block;
    width: 100%;
    padding: 10px 0;
}
#post7934 .fig001 div:nth-of-type(1) {
    border-bottom: dashed 1px #555;
    padding-bottom: 10px;
    margin-bottom: 10px;
}
#post7934 .fig001 div:nth-of-type(1) p {
    width: calc((100%/13) *1);
    text-align: center;
}
#post7934 .fig001 div:nth-of-type(1) p:nth-child(1) {
    background: #81B9BD;
}
#post7934 .fig001 div:nth-of-type(1) p:nth-child(1) span span {
    transform: rotate(90deg);
    padding: 0;
    width: 50%;
    margin: 0 auto;
    line-height: 1.5;
}
#post7934 .fig001 div:nth-of-type(1) p:nth-child(5) {
    background: #fff;
}
#post7934 .fig001 div:nth-of-type(1) p:nth-child(5) span:nth-child(1) {
    background: #577D91;
    margin-bottom: 5px;
}
#post7934 .fig001 div:nth-of-type(1) p:nth-child(5) span:nth-child(2) {
    background: #6CA5C4;
}
#post7934 .fig001 div:nth-of-type(1) p:nth-child(6) {
    background: #17375E;
}
#post7934 .fig001 div:nth-of-type(2) {
    margin-bottom: 50px;
}
#post7934 .fig001 div:nth-of-type(2) p:nth-child(1) {
    width: calc((100%/13) * 1);
    background: #81B9BD;
}
#post7934 .fig001 div:nth-of-type(2) p:nth-child(2) {
    width: calc((100%/14) * 11);
    background: #fff;
}
#post7934 .fig001 div:nth-of-type(2) p:nth-child(2) span:nth-child(1) {
    background: #6CA5C4;
    margin-bottom: 5px;
}
#post7934 .fig001 div:nth-of-type(2) p:nth-child(2) span:nth-child(2) {
    background: #577D91;
    width: calc((100%/11) * 3);
    margin-left: calc((100%/11) * 6)
}
@media only screen and (max-width: 766px) {
    #post7934 .fig001 {
        width: 100%;
        display: block;
        justify-content: space-between;
        align-items: stretch;
        margin: 0 auto;
    }
    #post7934 .fig001 p {
        position: relative;
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        color: #fff;
        text-align: center;
        background: #6CA5C4;
        font-size: 1.4rem!important;
    }
    #post7934 .fig001 p:before {
        content: "";
        position: absolute;
        left: 140%;
        box-sizing: border-box;
        width: 10px;
        height: 10px;
        border: 10px solid transparent;
        border-left: 10px solid #6CA5C4;
    }
    #post7934 .fig001 p:nth-last-child(1):before {
        content: none;
    }
    #post7934 .fig001 p span {
        display: block;
        width: 100%;
        padding: 10px 0;
    }
    #post7934 .fig001 div:nth-of-type(1) {
        border-bottom: dashed #555;
        padding-bottom: 10px;
        margin-bottom: 10px;
    }
    #post7934 .fig001 div:nth-of-type(1) p {
        width: calc((100%/13) *1);
        text-align: center;
    }
    #post7934 .fig001 div:nth-of-type(1) p:nth-child(1) {
        background: #81B9BD;
    }
    #post7934 .fig001 div:nth-of-type(1) p:nth-child(1) span span {
        transform: rotate(90deg);
        padding: 0;
        width: 50%;
        margin: 0 auto;
        line-height: 1.5;
    }
    #post7934 .fig001 div:nth-of-type(1) p:nth-child(5) {
        background: #fff;
    }
    #post7934 .fig001 div:nth-of-type(1) p:nth-child(5) span:nth-child(1) {
        background: #577D91;
        margin-bottom: 5px;
    }
    #post7934 .fig001 div:nth-of-type(1) p:nth-child(5) span:nth-child(2) {
        background: #6CA5C4;
    }
    #post7934 .fig001 div:nth-of-type(1) p:nth-child(6) {
        background: #17375E;
    }
    #post7934 .fig001 div:nth-of-type(2) {
        margin-bottom: 50px;
    }
    #post7934 .fig001 div:nth-of-type(2) p:nth-child(1) {
        width: calc((100%/13) * 1);
        background: #81B9BD;
    }
    #post7934 .fig001 div:nth-of-type(2) p:nth-child(2) {
        width: calc((100%/14) * 11);
        background: #fff;
    }
    #post7934 .fig001 div:nth-of-type(2) p:nth-child(2) span:nth-child(1) {
        background: #6CA5C4;
        margin-bottom: 5px;
    }
    #post7934 .fig001 div:nth-of-type(2) p:nth-child(2) span:nth-child(2) {
        background: #577D91;
        width: calc((100%/9) * 3);
        margin-left: calc((100%/11) * 6)
    }
}

/***20251206_company***/

/** message **/
#post67 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
    width: calc(98% - 200px);
    padding-right: 5rem;
}
#post67 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(2) {
    width: 200px;
}
@media only screen and (max-width: 766px) {
    #post67 .pageContentArea .wp-block-columns {
        flex-direction: column-reverse;
        flex-wrap: wrap;
    }
    #post67 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
        width: 100%;
        padding: 3rem 0;
    }
    #post67 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(2) {
        width: 100%;
        text-align: center;
    }
}

/** profile **/
#post75 .pageContentArea h2 {
    margin-top: 5rem;
    margin-bottom: 2rem;
}
#post75 .pageContentArea h2+p {
    margin-left: 3rem;
    margin-bottom: 3rem;
}
#post75 .pageContentArea .wp-block-columns {
    margin-left: 3rem;
}
#post75 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
    width: 40%;
    padding-right: 5rem;
}
@media only screen and (max-width: 766px) {
    #post75 .pageContentArea .wp-block-columns {
        margin-left: 3rem;
        flex-wrap: wrap;
    }
    #post75 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
        width: 100%;
        padding-right: 0;
    }
    #post75 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) p {
        margin-bottom: 0;
    }
    #post75 .pageContentArea .wp-block-column {
        width: 100%;
    }
}

/** history **/
#post76 .pageContentArea .wp-block-columns {
    align-items: stretch !important;
}
#post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
    width: 25%;
    border-right: solid 2px #319a4b;
    padding-right: 5rem;
}
#post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) p {
    font-weight: 400;
    color: #666;
    text-align: right;
}
#post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) p strong {
    font-weight: 500;
    color: #666;
    font-size: 3.0rem;
    background: none;
}
#post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(2) {
    padding-left: 3rem;
}
#post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(2) p {
    padding-top: 2rem;
}
@media only screen and (max-width: 766px) {
    #post76 .pageContentArea .wp-block-columns {
        margin-left: 0;
        flex-wrap: wrap;
    }
    #post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
        width: 100%;
        padding-right: 0;
        border-right: none;
        border-bottom: solid 1px #319a4b;
    }
    #post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) p {
        margin-bottom: 0;
        text-align: left;
    }
    #post76 .pageContentArea .wp-block-column {
        width: 100%;
    }
    #post76 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(2) {
        padding-left: 0rem;
    }

}

/** office **/
.companyTable01 table {
    border-collapse: separate;
}
.companyTable01 td,
.companyTable01 th {
    padding: 2rem 4rem;
    margin: 0 0.5rem;
    border: none;
    vertical-align: middle;
    font-weight: 400;
}
.companyTable01 table tr:nth-of-type(1) th {
    border-bottom: solid 2px #319a4b;
    font-weight: 400;
}
.companyTable01 td,
.companyTable01 td {
    border-bottom: dashed 1px #ccc;
}
.companyTable01 tr:has(td strong) td {
    border-top: solid 2px #319a4b;
}
.companyTable01 tr:not(:has(td strong)):has(+ tr:has(td strong)) td {
    border-bottom: none;
}
.companyTable01 .borderNone {
    border: none!important;
}


@media only screen and (max-width: 766px) {
    .companyTable01 td,
    .companyTable01 th {
        padding: 1rem;
    }
    #post5251 .pageContentArea a[href^="tel"] {
        pointer-events: none;
        color: inherit;
        text-decoration: none;
        font-weight: 300;
        display: inline;
    }
    #post5251 .pageContentArea a[href^="tel"]:after {
        content: none;
    }

}

/** qualifiedpersons **/
#post5253 .pageContentArea h3 {
    margin-left: -3rem;
}
#post5253 .pageContentArea .wp-block-columns {
    align-items: flex-start;
}
#post5253 .pageContentArea .wp-block-columns .wp-block-column {
    padding: 0 7%;
    width: auto;
}
#post5253 .pageContentArea .wp-block-columns .wp-block-column p {
    margin-top: 0;
}
#post5253 .pageContentArea .wp-block-columns .wp-block-column .companyTable01 tr td:nth-of-type(2) {
    text-align: right;
}
@media only screen and (max-width: 766px) {
    #post5253 .pageContentArea .wp-block-columns {
        flex-wrap: wrap;
    }
    #post5253 .pageContentArea .wp-block-column {
        width: 100% !important;
    }
    #post5253 .pageContentArea h3 {
        margin-top: 5rem;
    }
    #post5253 .pageContentArea .companyTable01 table {
        margin-bottom: 5rem;
        width: 100%;
    }
}

/** qualitymanagementsystem **/
#post5235 .pageContentArea p {
    margin-left: 2rem;
}
#post5235 .pageContentArea p+h3 {
    margin-top: 5rem;
}

/** conduct **/
#post5262 .pageContentArea h3+p {
    margin-left: 4rem;
}
#post5262 .pageContentArea p+h3 {
    margin-top: 8rem;
    margin-bottom: 0;
}

/** society **/
#post5264 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
    padding-right: 3rem;
}
@media only screen and (max-width: 766px) {
    #post5264 .pageContentArea .wp-block-columns {
        flex-wrap: wrap;
        flex-direction: column-reverse;
    }
    #post5264 .pageContentArea .wp-block-column {
        width: 100%;
    }
}

/** suishin **/
#post5266 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
    padding-right: 3rem;
}
@media only screen and (max-width: 766px) {
    #post5266 .pageContentArea .wp-block-columns {
        flex-wrap: wrap;
        flex-direction: column;
        margin-bottom: 3rem;
    }
    #post5266 .pageContentArea .wp-block-column {
        width: 100%;
    }
    #post5266 .pageContentArea .wp-block-column p {
        margin: 0;
    }
}

/** book **/
#post5268 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
    padding-right: 3rem;
}
#post5268 .pageContentArea .bookFig01 {
    border-bottom: dashed 1px #ccc;
}
#post5268 .pageContentArea .bookFig01 .wp-block-column p {
    margin: 1rem auto;
    padding: 1rem 0;
}
#post5268 .pageContentArea .bookFig01 .wp-block-column:nth-of-type(1) {
    width: 100px;
    padding-right: 3rem;
}
@media only screen and (max-width: 766px) {
    #post5268 .pageContentArea .wp-block-columns {
        flex-wrap: wrap;
        flex-direction: column;
    }
    #post5268 .pageContentArea .wp-block-column {
        width: 100%;
    }
    #post5268 .pageContentArea .bookFig01 {
        flex-direction: row;
    }
    #post5268 .pageContentArea .bookFig01 .wp-block-column:nth-of-type(1) {
        width: 100px;
        padding-right: 3rem;
    }
    #post5268 .pageContentArea .bookFig01 .wp-block-column:nth-of-type(2) {
        width: calc(100% - 100px);
        padding-right: 3rem;
    }
    #post5268 .pageContentArea img {
        display: block;
        margin: 1rem auto;
    }
}

/** zeb-docon **/
#post5274 .pageContentArea .zebTitleWrap {
    align-items: center;
    justify-content: center;
}
#post5274 .pageContentArea .zebTitleWrap .wp-block-column:nth-of-type(1) {
    padding-right: 3rem;
}
#post5274 .pageContentArea .zebTitleWrap .wp-block-column:nth-of-type(1) p strong {
    font-size: 2.6rem;
    font-weight: 500;
    color: #0f4c93;
    background: none;
    padding-right: 1rem;
}
#post5274 .pageContentArea .zebTitleWrap .wp-block-column:nth-of-type(2) {
    padding-right: 3rem;
}
#post5274 .pageContentArea .zebTitleWrap .wp-block-column:nth-of-type(2) p {
    font-weight: 500;
    line-height: 1.4;
}
#post5274 .pageContentArea .zebTitleWrap .wp-block-column:nth-of-type(3) img {
    margin: 2rem auto;
}
#post5274 .pageContentArea .zebImage01 img {
    display: block;
    margin: 0 auto 1rem;
}
#post5274 .pageContentArea .zebImage01 figcaption {
    text-align: center;
}
#post5274 .pageContentArea p {
    padding-left: 2.5rem;
}
@media only screen and (max-width: 766px) {
    #post5274 .pageContentArea .zebTitleWrap {
        flex-wrap: wrap;
    }
    #post5274 .pageContentArea .zebTitleWrap .wp-block-column {
        width: 100%;
    }
    #post5274 .pageContentArea .zebTitleWrap .wp-block-column:nth-of-type(1) p strong {
        font-size: 1.8rem;
        margin: 1rem auto;
    }
    #post5274 .pageContentArea .zebTitleWrap .wp-block-column:nth-of-type(3) img {
        margin: 1rem auto;
        display: block;
    }
    #post5274 .pageContentArea .zebInqWrap {
        flex-wrap: wrap;
    }
    #post5274 .pageContentArea .zebInqWrap .wp-block-column {
        width: 100%;
    }
    #post5274 .pageContentArea .zebInqWrap a[href^="tel"] {
        pointer-events: none;
        color: inherit;
        text-decoration: none;
        font-weight: 300;
        display: inline;
    }
    #post5274 .pageContentArea .zebInqWrap a[href^="tel"]:after {
        content: none;
    }


}

/** newbuilding **/
#post5288 .pageContentArea .wp-block-columns {
    align-items: center;
    justify-content: center;
    gap: 2rem;
    margin-left: 5.5rem;
}
#post5288 .pageContentArea .wp-block-columns img {
    max-height: 460px;
}
#post5288 .pageContentArea h3 {
    margin-left: 3rem;
}
#post5288 .pageContentArea h3+p {
    margin-left: 5.5rem;
}
#post5288 .pageContentArea h2+p {
    margin-left: 3rem;
}
#post5288 .pageContentArea .belsImage img {
    display: block;
    margin: 2rem auto;
    max-width: 600px;
}
@media only screen and (max-width: 766px) {
    #post5288 .pageContentArea .wp-block-columns {
        flex-wrap: wrap;
    }
    #post5288 .pageContentArea .wp-block-columns .wp-block-column {
        width: 100%;
    }
    #post5288 .pageContentArea .wp-block-columns img {
        max-height: auto;
        width: 100%;
    }
    #post5288 .pageContentArea .belsImage img {
        display: block;
        margin: 2rem auto;
        max-width: 70%;
    }
}

/** プロジェクト（一覧） **/
@media only screen and (max-width: 766px) {
    #post-115 .newsContent .newsLinks a {
        flex-wrap: nowrap !important;
    }
}

.projectArichive .nav { width: calc(90% / 3); }
.projectArichive .nav a { padding-right: 0; }
.type-project .newsLinks a span:nth-last-of-type(1) { 
    width: 100%;
}

@media only screen and (max-width: 766px) {
    .projectArichive .nav { width: 90%; margin: 2rem auto; }
    
    .projectArichive.pt60 { padding-top: 0!important; }
    .projectArichive .pb60 { padding-bottom: 0!important;}

    
}

.type-project .postContent h3 {
    margin-top: 6rem;
    margin-bottom: 0;
}
.type-project .postContent img {
    margin: 1rem 1rem 1rem 0;
}
.type-project .postContent .aligncenter {
    text-align: center;
}
.type-project .postContent .wp-block-columns {
    /*max-width: 100%;*/
}
.type-project .postContent .wp-block-columns .wp-block-column {
    margin: 1%;
}
.type-project .postContent .wp-block-columns .wp-block-column img {
    width: 100%;
    height: 180px;
    min-height: 180px;
}

@media only screen and (max-width: 766px) {
    .type-project .postContent .wp-block-columns {
        flex-wrap: wrap;
    }
    .type-project .postContent .wp-block-column {
        flex-basis: 100% !important;
    }
    .singlePage+footer {
        margin-top: 0;
    }
    .type-project .postNavigation .navPrevious a { text-align: left; } 
    .type-project .postNavigation .navNext a { text-align: left; } 
}

/** tec-topics **/
#post5431 .pageContentArea .wp-block-columns {
    align-items: stretch !important;
}
#post5431 .pageContentArea .wp-block-column {
    width: calc(95% / 4);
    margin: 1%;
    padding: 3rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
}
#post5431 .pageContentArea .wp-block-column img {
    display: block;
    margin: 0 auto;
}
#post5431 .pageContentArea .wp-block-column:empty {
    box-shadow: none;
}
#post5431 .pageContentArea .wp-block-column p {
    display: block;
    text-align: center;
    font-size: 1.4rem;
}
#post5431 .pageContentArea .wp-block-column a {
    display: block;
    text-align: center;
    font-size: 1.6rem;
}
#post5431 .pageContentArea .wp-block-column a:after {
    content: none;
}

@media only screen and (max-width: 766px) {
    #post5431 .pageContentArea .wp-block-columns {
        flex-wrap: wrap;
    }
    #post5431 .pageContentArea .wp-block-column {
        width: 100%;
        margin: 1%;
        padding: 3rem;
        box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
    }
    #post5431 .pageContentArea .wp-block-column:empty {
        display: none;
    }

}

/*技術トピックス*/
.tecTopicsFig .postContent {
    margin-left: 3rem;
}
.tecTopicsFig h4 {
    font-size: 2.0rem;
    font-weight: 400;
    margin: 3rem 0 1rem 0rem;
    padding-bottom: 1rem;
    border-bottom: solid 1px #319a4b;
    letter-spacing: 1rem;
}
.tecTopicsFig table {
    margin: 2rem 0;
    border-collapse: collapse;
}
.tecTopicsFig table th,
.tecTopicsFig table td {
    padding: 1.4rem 2rem;
    font-size: 1.6rem;
    font-weight: 300;
    color: #333;
    border: solid 1px #ccc;
    vertical-align: middle;
}
.tecTopicsFig table th {
    background: #f5f5f5;
    font-weight: 500;
}
.tecTopicsFig img {
    margin: 1rem auto;
}
.tecTopicsFig figcaption {
    font-size: 1.4rem;
    font-weight: 300;
    color: #333;
}
.tecTopicsFig .postContent a {
    font-weight: bold;
    text-align: center;
    display: block;
}
.tecTopicsFig .postContent a::after {
    display: none;
}
.tecTopicsFig .techDetailArea {
    background: #f7f7f7;
    padding: 2rem;
    margin: 5rem 0;
}
.tecTopicsFig .techDetail {
    margin: 1rem 0 0 0;
}
.tecTopicsFig .techDetailArea p a {
    text-align: left;
    text-decoration: underline;
}

.tecTopicsFig .awardYear {
    line-height: 1.5;
}

.tecTopicsFig .subContentFigPhoto {
    height: auto;
}

.tecTopicsFig .applyExample a {
    text-align: left;
}

.tecTopicsFig .moukinWrap .wp-block-column {
    width: calc(90%/3);
    margin: 0 2%;
}
.tecTopicsFig .moukinWrap2 .wp-block-column {
    width: calc(90%/2);
    margin: 0 2%;
}

@media only screen and (max-width: 766px) {
    .tecTopicsFig .postContent .wp-block-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        /* iOS で慣性スクロール */
    }
    .tecTopicsFig .postContent .wp-block-table table {
        width: auto;
    }
    .tecTopicsFig .postContent .wp-block-columns {
        flex-wrap: wrap !important;
    }
    .tecTopicsFig .postContent .wp-block-column {
        width: 100% !important;
        flex-basis: 100% !important;
    }

}


/*個別処理　宮本20251210*/
.post-89 .serviceSubContent .contentNav li a {
    font-size: 1.5rem;
}
.post-9 .serviceTxt {
    text-align: center;
}
@media only screen and (max-width: 766px) {
    .post-9 .serviceTxt {
        text-align: left;
    }
}

@media only screen and (max-width: 766px) {
    .topPageWrap footer {
        margin-top: 0;
    }
}

/*電話番号に似た形式にリンクしない*/
@media only screen and (max-width: 766px) {
    .no-tel-link a[href^="tel"] {
        pointer-events: none;
        color: inherit;
        text-decoration: none;
        font-weight: 300;
    }
    .no-tel-link a[href^="tel"]:after {
        content: none;
    }
}

#post-417 .newsContent h4 span {
    font-size: 2.8rem !important;
}
#post-417 .newsContent h5 {
    margin-top: 6rem;
}


/** inquiry **/
#post6902 .pageContentArea label {
    color: #319a4b;
    font-weight: 500;
    font-size: 1.6rem;
}
@media only screen and (max-width: 766px) {
    #post6902 .pageContentArea input[type="text"] {
        width: 100% !important;
    }
    #post6902 .pageContentArea input[type="email"] {
        width: 100% !important;
    }
    #post6902 .pageContentArea input[type="tel"] {
        width: 100% !important;
    }
}


/** リージョナルサーチ **/
#post6375 .pageContentArea img.wp-image-8437 {
    display: block;
    margin: 0 auto 4rem;
}
#post6375 .pageContentArea .wp-block-columns {
    justify-content: space-between;
    align-items: flex-start;
}
#post6375 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) {
    width: 40%;
}
#post6375 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(2) {
    width: 58%;
}
#post6375 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(1) img {
    width: 100%;
}
#post6375 .pageContentArea .wp-block-columns .wp-block-column:nth-of-type(2) p {
    margin-top: 0;
}
#post6375 .breadcrumbs a:nth-of-type(2) { display: none; }
#post6375 .breadcrumbs span:nth-of-type(2) { display: none; }

@media only screen and (max-width: 766px) {
    #post6375 .pageContentArea .wp-block-columns {
        flex-wrap: wrap;
    }
    #post6375 .pageContentArea .wp-block-columns .wp-block-column {
        width: 100%!important;
        margin-bottom: 3rem;
    }
}


#post5431 .breadcrumbs a:nth-of-type(2) { display: none; }
#post5431 .breadcrumbs span:nth-of-type(2) { display: none; }





/* ページネーションスタイル */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.pagination a,
.pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    text-decoration: none;
    color: #333;
    font-size: 14px;
    transition: all 0.2s ease;
}

.pagination a:hover {
    background-color: #014099;
    border-color: #014099;
    color: #fff;
}

.pagination .current {
    background-color: #014099;
    border-color: #014099;
    color: #fff;
}

.pagination-ellipsis {
    border: none !important;
    min-width: auto !important;
}

.pagination-prev,
.pagination-next {
    font-weight: bold;
}


.searchPage .newsLinks a span:nth-of-type(1) { margin: 0 20px 0 0; width: 90px; }
.searchPage .newsLinks a span:nth-of-type(2) { margin: 0 20px 0 0; width: 150px; color: #666; }
.searchPage .newsLinks a span:nth-of-type(3) { width: calc(100% - 20px - 90px - 20px - 150px); }
@media only screen and (max-width: 766px) {
    .searchPage .newsLinks a { flex-wrap: wrap; }
    .searchPage .newsLinks a span:nth-of-type(1) { margin: 0 0 0.5rem 0; width: 70%; }
    .searchPage .newsLinks a span:nth-of-type(2) { margin: 0 0 0.5rem 0; width: 100%; }
    .searchPage .newsLinks a span:nth-of-type(3) { width: 100%; padding-left: 30px; }

}

