/* sp */
@media screen and (max-width: 767px) {
    .topmessage-photo {
        margin-top: 20px;
    }
    main #topmessage .topmessage-wrapper .topmessage-photo dl dt img{
        width: calc(710 / 750 * 100vw)!important;
        margin-right: 0!important;
    }
    .topmessage-photo dl dd{
        padding-left: calc(55 / 375 * 100vw)!important;
    }
    .topmessage-photo dl dd img{
        width: calc(208 / 375 * 100vw)!important;
        margin-top: calc(5 / 375 * 100vw)!important;
    }
}

/* pc */
@media screen and (min-width: 768px) {
    .topmessage-photo {
        width: calc(900 / 1366 * 100vw);
        margin-left: auto;
        margin-right: auto;
    }
    .topmessage-photo dl{
        position: relative;
        max-width: unset!important;
        padding-right: 0!important;
        margin-right: 0!important;
        justify-content: flex-start!important;
    }
    .topmessage-photo dl dd{
        position: absolute;
        top: 0;
        right: 0;
        pointer-events: none;
    }
    .topmessage-photo dl dt img{
        width: calc(1131 / 2732 * 100vw)!important;
    }
    .topmessage-photo dl dd.img01{
        margin-right: calc(125 / 1366 * 100vw);
    }
    .topmessage-photo dl dd.img01 img{
        width: calc(306 / 1366 * 100vw)!important;
    }
    .topmessage-photo dl dd.img02{
        margin-right: calc(150 / 1366 * 100vw);
    }
    .topmessage-photo dl dd.img02 img{
        width: calc(281 / 1366 * 100vw)!important;
    }
    main #topmessage .topmessage-wrapper .topmessage-photo dl{
        margin-bottom: calc(80 / 1366 * 100vw)!important;
    }
}

@media screen and (min-width: 1366px) {
    .topmessage-photo {
        width: 900px;
        margin-left: auto;
        margin-right: auto;
    }
    .topmessage-photo dl dt{
        margin-right: 0!important;
    }
    
    .topmessage-photo dl dt img{
        width: 565.5px!important;
    }
    .topmessage-photo dl dd.img01{
        margin-right: 125px;
    }
    .topmessage-photo dl dd.img01 img{
        width: 306px!important;
    }
    .topmessage-photo dl dd.img02{
        margin-right: 150px;
    }
    .topmessage-photo dl dd.img02 img{
        width: 281px!important;
    }
    main #topmessage .topmessage-wrapper .topmessage-photo dl{
        margin-bottom: 80px!important;
    }
}

/* 上マージン打ち消し */
main #topmessage { margin-top: 0 !important; position: relative; z-index: 10; }

/* 代表挨拶 2カラム配置 + モーダル */
.topmessage-flex{
    display: flex;
    gap: calc(24 / 1366 * 100vw);
    align-items: flex-start;
    position: relative;
}
.topmessage-flex > .topmessage-image{ align-self: stretch; }
.topmessage-text{flex: 1;}
.topmessage-image{flex: 1; text-align: right; position: relative; margin-top: 0;}
.topmessage-logo{flex: 1; text-align: left !important; position: absolute; z-index: 11; top: -120px; left: 0; margin-bottom: -120px;}
@media screen and (max-width: 767px){
    .topmessage-logo{ padding: calc(16 / 375 * 100vw) calc(32 / 375 * 100vw) calc(16 / 375 * 100vw) calc(32 / 375 * 100vw); }
}
@media screen and (min-width: 768px){
    .topmessage-logo{ padding: calc(64 / 1366 * 100vw) calc(72 / 1366 * 100vw) calc(64 / 1366 * 100vw) calc(120 / 1366 * 100vw); }
    .topmessage-image{ margin-left: calc(-192 / 1366 * 100vw); margin-top: 0; z-index: 1; }
}
.topmessage-logo img{width: 100%; max-width: 520px;}
/* テキスト見出し調整 */
.topmessage-logo h2{ position: static; margin: 0; }
.topmessage-logo h2:after{ content: none !important; }
/* 白背景を設定 */
.topmessage-logo{ position: relative; background-color: #fff; }
.topmessage-logo::before{
    display: none;
}
.topmessage-logo > *{ position: relative; z-index: 1; }
/* first-topの折返しを左詰にする */
.topmessage-logo h2 > span.first-top{
    display: block;
    text-align: left;
}
/* topmessage専用のthird見た目を上書き（recruit依存なし） */
.topmessage-logo h2 > span.third{
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 1.8;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.third{ font-size: 32px; }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.third{ font-size: 8vw; }
}
/* topmessage専用のsecond見た目を上書き */
.topmessage-logo h2 > span.second{
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.5;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.second{ font-size: 28px; }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.second{ font-size: 6.4vw; }
}
/* topmessage専用のsecond-top（大きめ） */
.topmessage-logo h2 > span.second-top{
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.4;
    display: block;
    text-align: left;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.second-top{ font-size: 3.2vw; }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.second-top{ font-size: 8vw; }
}
/* topmessage-title（second-topと同じスタイル） */
.topmessage-logo h2 > span.topmessage-title{
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.4;
    display: block;
    text-align: left;
    position: relative;
}
.topmessage-logo h2 > span.topmessage-title::after {
    display: block;
    content: "";
    position: absolute;
    top: -15px;
    left: 0;
    width: 70px;
    height: 3px;
    background-color: #0066ff;
    z-index: 2;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.topmessage-title{ font-size: 2.8vw; }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.topmessage-title{ font-size: 8vw; }
}
/* topmessage専用のfirst-top（secondより小さめ） */
.topmessage-logo h2 > span.first-top{
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 2.2;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.first-top{ 
      font-size: 1.4vw;
      letter-spacing: 0.3em;

    }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.first-top{ font-size: 4.5vw; }
}
/* topmessage-subtitle（first-topより少し大きい） */
.topmessage-logo h2 > span.topmessage-subtitle{
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 2.2;
    display: block;
    text-align: left;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.topmessage-subtitle{ 
      font-size: 1.5vw;
      letter-spacing: 0.3em;
    }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.topmessage-subtitle{ font-size: 5vw; }
}
/* topmessage-body（本文用、first-topより少し小さい） */
.topmessage-logo h2 > span.topmessage-body{
    font-weight: 400;
    letter-spacing: 0.04em;
    line-height: 2.2;
    display: block;
    text-align: left;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.topmessage-body{ 
      font-size: 1.2vw;
      letter-spacing: 0.3em;
    }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.topmessage-body{ font-size: 4vw; }
}
/* topmessage-body-second（topmessage-bodyと同じスタイル、フォントサイズのみ小さい） */
.topmessage-logo h2 > span.topmessage-body-second{
    font-weight: normal;
    letter-spacing: 0.04em;
    line-height: 2.2;
    display: block;
    text-align: left;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.topmessage-body-second{ 
      font-size: 1.0vw;
      letter-spacing: 0.3em;
    }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.topmessage-body-second{ font-size: 3.5vw; }
}
/* strong-first-top（first-topより大きい） */
.topmessage-logo h2 > span.strong-first-top{
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.8;
    display: block;
}
#topmessage-modal .topmessage-modal-content h2 > span.strong-first-top{
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.8;
    display: inline;
}
@media screen and (min-width: 768px){
    .topmessage-logo h2 > span.strong-first-top{ font-size: 2.5vw; }
    #topmessage-modal .topmessage-modal-content h2 > span.strong-first-top{ font-size: 2.5vw; }
}
@media screen and (max-width: 767px){
    .topmessage-logo h2 > span.strong-first-top{ font-size: 7vw; }
    #topmessage-modal .topmessage-modal-content h2 > span.strong-first-top{ font-size: 7vw; }
}
#topmessage-modal .topmessage-modal-content h2 > span.first-top{
    display: inline;
}
.topmessage-image img{max-width: 100%; height: auto;}
.topmessage-more-btn{margin-top: 16px;}
.topmessage-more-btn a{display: inline-block; padding: 12px 28px; background: #000; color: #fff; text-decoration: none; letter-spacing: .08em;}
@media screen and (max-width: 767px) {
    .topmessage-flex{display: block;}
    .topmessage-image{margin-top: 0; text-align: center;}
}
/* 表示ユーティリティ */
@media screen and (min-width: 768px){ .sp-only{ display: none !important; } }
@media screen and (max-width: 767px){ .sp-only{ display: block !important; } }
#topmessage-modal{position: fixed; inset: 0; background: rgba(0,0,0,.6); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; z-index: 9999;}
#topmessage-modal.show{opacity: 1; visibility: visible;}
#topmessage-modal .topmessage-modal-wrapper{position: relative; box-sizing: border-box; width: calc(920 / 1366 * 100vw); max-width: 920px; margin: 5vh auto; background: #fff; padding: 0; max-height: 85vh; overflow-y: auto; border-radius: 0; box-shadow: 0 10px 30px rgba(0,0,0,.2);}
#topmessage-modal .topmessage-modal-close{position: sticky; top: 8px; display: block; margin: 0; z-index: 10000; margin-top: 8px; margin-left: auto; margin-right: 8px; width: fit-content; margin-bottom: -40px;}
#topmessage-modal .topmessage-modal-close a{display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: transparent; color: #333; text-decoration: none; border-radius: 0; padding: 0; box-shadow: none;}
#topmessage-modal .topmessage-modal-content{ padding: 2vw 6vw; }
#topmessage-modal .topmessage-modal-content h2{ margin: 0 0 24px; }
#topmessage-modal .topmessage-modal-content h2 > span.first-top{
    display: inline;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.8;
}
@media screen and (min-width: 768px){
    #topmessage-modal .topmessage-modal-content h2 > span.first-top{
        font-size: 1.7vw;
    }
}
@media screen and (max-width: 767px){
    #topmessage-modal .topmessage-modal-content h2 > span.first-top{
        font-size: 5vw;
    }
}
#topmessage-modal .topmessage-modal-content h3{font-size: 18px; line-height: 1.7; margin: 24px 0 12px;}
#topmessage-modal .topmessage-modal-content p{
    font-size: 1.6vw;
    line-height: 2.2;
    letter-spacing: 0.06em;
    margin-bottom: 2.2vw;
}
#topmessage-modal .topmessage-modal-content p span.underline{
    background-image: linear-gradient(#0BC2DD, #0BC2DD);
    background-size: 100% 1px;
    background-position: bottom left;
    background-repeat: no-repeat;
    padding-bottom: 2px;
}
@media screen and (min-width: 768px){
    #topmessage-modal .topmessage-modal-content p span.underline{
        padding-bottom: 0.2196193265vw;
    }
}
@media screen and (max-width: 767px){
    #topmessage-modal .topmessage-modal-content p span.underline{
        padding-bottom: 0.8vw;
    }
}
#topmessage-modal .topmessage-modal-content img{max-width:100%; height:auto; display:block;}
#topmessage-modal .topmessage-modal-hero img{width:100%; height:auto; display:block;}
#topmessage-modal .topmessage-modal-hero{margin: 0; position: relative;}
#topmessage-modal .topmessage-hero-text{
    position: absolute;
    top: 55%;
    right: 20%;
    transform: translateY(-50%);
    width: auto;
    height: auto;
    max-width: 179px;
    max-height: 484px;
    z-index: 2;
    pointer-events: none;
}
@media screen and (min-width: 768px){
    #topmessage-modal .topmessage-hero-text{
        max-width: calc(179 / 1366 * 100vw);
        max-height: calc(432 / 1366 * 100vw);
    }
}
@media screen and (max-width: 767px){
    #topmessage-modal .topmessage-hero-text{
        display: none;
    }
}
#topmessage-modal .topmessage-modal-flex{
    display: block;
}
@media screen and (min-width: 768px){
    #topmessage-modal .topmessage-modal-flex{
        display: flex;
        align-items: flex-start;
        gap: 3vw;
        padding-left: 3vw;
    }
    #topmessage-modal .topmessage-modal-flex .topmessage-modal-content{
        flex: 1;
        padding: 24px 0;
    }
    #topmessage-modal .topmessage-modal-flex .topmessage-modal-content h2{
        margin-right: calc(-3vw - 3vw);
    }
    #topmessage-modal .topmessage-modal-flex .topmessage-modal-image{
        flex: 0 0 auto;
        width: 50%;
        align-self: flex-start;
        margin-top: 20vw;
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 0;
        position: relative;
    }
}
#topmessage-modal .topmessage-modal-image img{width:100%; height:auto; display:block;}
#topmessage-modal .topmessage-modal-image{margin: 0;}
#topmessage-modal .topmessage-modal-hero .sp{display: none;}
#topmessage-modal .topmessage-modal-hero .pc{display: block;}
@media screen and (max-width: 767px){
  #topmessage-modal .topmessage-modal-hero .sp{display: block;}
  #topmessage-modal .topmessage-modal-hero .pc{display: none;}
}
#topmessage-modal .topmessage-modal-title{
    padding: 0;
    margin: 0;
    width: 100%;
    position: relative;
}
#topmessage-modal .topmessage-modal-title h2{
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "YuMincho", serif;
    font-size: 120px;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0;
    color: #a6a6a6;
    text-align: center;
    width: 100%;
    line-height: 1;
}
@media screen and (min-width: 768px){
    #topmessage-modal .topmessage-modal-title h2{
        font-size: 10vw;
        letter-spacing: 0.25em;
    }
}
@media screen and (max-width: 767px){
  #topmessage-modal .topmessage-modal-title{
    padding: 2vw 0;
  }
  #topmessage-modal .topmessage-modal-title h2{
    font-size: 20vw;
  }
}
#topmessage-modal .topmessage-sign{
    position: absolute;
    top: 120%;
    left: 75%;
    transform: translate(-50%, -50%);
    width: 50vw;
    height: 10vw;
    opacity: 0.8;
    z-index: 1;
    pointer-events: none;
}
@media screen and (min-width: 768px){
    #topmessage-modal .topmessage-sign{
        max-width: calc(292 / 1366 * 100vw);
        max-height: calc(86 / 1366 * 100vw);
        top: 150%;
    }
}
@media screen and (max-width: 767px){
    #topmessage-modal .topmessage-sign{
        max-width: 60vw;
        max-height: 17.7vw;
    }
}
@media screen and (max-width: 767px) {
  #topmessage-modal .topmessage-modal-wrapper{width: calc(340 / 375 * 100vw); margin: 6vw auto; padding: 0; border-radius: 0;}
  #topmessage-modal .topmessage-modal-content{ padding: 4.8vw; }
  #topmessage-modal .topmessage-modal-close a{width: 36px; height: 36px;}
  #topmessage-modal .topmessage-modal-content h3{font-size: 4.2vw; margin: 4.8vw 0 3.2vw;}
  #topmessage-modal .topmessage-modal-content p{
      font-size: 3.6vw;
      line-height: 2.2;
      letter-spacing: 0.06em;
      margin-bottom: 4.2vw;
  }
}

/* VIEW MOREだけ中央配置（テキストは左揃えのまま） */
main #topmessage .topmessage-wrapper{ position: relative; z-index: 10; }
main #topmessage .topcompany-head{ position: relative;  z-index: 3; width: max-content; }
@media screen and (max-width: 767px) {
    main #topmessage .topcompany-head{ 
        margin-left: auto;
        margin-right: auto;
    }
}
/* topmessage-photo内のVIEW MOREボタン */
.topmessage-photo-viewmore {
    text-align: center;
    margin-top: 20px;
    margin-bottom: 20px;
}
@media screen and (min-width: 768px) {
    .topmessage-photo-viewmore {
        margin-top: 2vw;
        margin-bottom: 2vw;
    }
}
.topmessage-photo-viewmore a {
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-animation: gradientReverse 0.3s ease;
            animation: gradientReverse 0.3s ease;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1;
    letter-spacing: 0.1em;
    font-weight: 500;
    position: relative;
    font-family: "Montserrat", sans-serif;
    text-decoration: none;
    margin-left: auto;
    margin-right: auto;
}
@media screen and (min-width: 768px) {
    .topmessage-photo-viewmore a {
        transition: all 0.3s ease;
        font-size: 1.0980966325vw;
        width: 13.5431918009vw;
        height: 3.6603221083vw;
        border-radius: 0.2928257687vw;
    }
}
@media screen and (min-width: 768px) and (min-width: 1366px) {
    .topmessage-photo-viewmore a {
        font-size: 15px;
        width: 185px;
        height: 50px;
        border-radius: 4px;
    }
}
@media screen and (max-width: 767px) {
    .topmessage-photo-viewmore a {
        font-size: 4vw;
        width: 48vw;
        height: 13.3333333333vw;
        border-radius: 1.0666666667vw;
    }
}
@media screen and (min-width: 768px) {
    .topmessage-photo-viewmore a:hover {
        opacity: 1;
        -webkit-animation: gradient 0.3s ease;
                animation: gradient 0.3s ease;
        -webkit-animation-fill-mode: both;
                animation-fill-mode: both;
        -webkit-animation-iteration-count: 1;
                animation-iteration-count: 1;
    }
}
.topmessage-photo-viewmore a:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    background-color: #fff;
    transition: all 0.3s ease;
}
@media screen and (min-width: 768px) {
    .topmessage-photo-viewmore a:after {
        width: 2.196193265vw;
        height: 0.0732064422vw;
        margin-top: -0.0366032211vw;
    }
}
@media screen and (min-width: 768px) and (min-width: 1366px) {
    .topmessage-photo-viewmore a:after {
        width: 30px;
    }
}
@media screen and (max-width: 767px) {
    .topmessage-photo-viewmore a:after {
        width: 8vw;
        height: 0.2666666667vw;
        margin-top: -0.1333333333vw;
    }
}
@media screen and (min-width: 768px) {
    .topmessage-photo-viewmore a:hover:after {
        width: 2.5622254758vw;
    }
}
@media screen and (min-width: 768px) and (min-width: 1366px) {
    .topmessage-photo-viewmore a:hover:after {
        width: 35px;
    }
}
/* アコーディオン展開時、元のVIEW MOREボタンを非表示 */
.topmessage-logo:has(.topmessage-accordion.active) > .topcompany-head {
    display: none;
}
/* Philosophyセクションの見出しをグレーに */
.philosophy-section .topcompany-head h2,
.philosophy-section .topcompany-head h2 span {
    color: #000000;
}
/* fv01.jpegのスライドに透明な暗いオーバーレイを追加 */
.kv-slide-image[style*="fv01.jpeg"] {
    position: relative;
}
.kv-slide-image[style*="fv01.jpeg"]::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.1);
    z-index: 1;
}
/* Philosophyセクションの文字サイズを少し小さく */
@media screen and (min-width: 768px) {
    main .philosophy-section .topcompany-head h2 > span.en {
        font-size: 2.7vw !important;
    }
}
@media screen and (min-width: 768px) and (min-width: 1366px) {
    main .philosophy-section .topcompany-head h2 > span.en {
        font-size: 37px !important;
    }
    main .philosophy-section .topcompany-head h2 > span.ja {
        font-size: 13px !important;
    }
}
@media screen and (min-width: 768px) and (max-width: 768px) {
    main .philosophy-section .topcompany-head h2 > span.en {
        font-size: 20.8px !important;
    }
    main .philosophy-section .topcompany-head h2 > span.ja {
        font-size: 7.5px !important;
    }
}
@media screen and (max-width: 767px) {
    main .philosophy-section .topcompany-head h2 > span.en {
        font-size: 10vw !important;
    }
    main .philosophy-section .topcompany-head h2 > span.ja {
        font-size: 3.5vw !important;
    }
}
/* PC用アコーディオン */
.topmessage-accordion {
    max-height: 0;
    overflow: hidden;
    transition: none;
}
.topmessage-accordion.active {
    max-height: 2000px;
    transition: max-height 0.5s ease-in;
}
.topmessage-accordion-close {
    margin-top: 2vw;
    text-align: center;
    display: none;
}
.topmessage-accordion.active .topmessage-accordion-close {
    display: block;
}
@media screen and (min-width: 1366px) {
    .topmessage-accordion-close {
        margin-top: 22px;
    }
}
.topmessage-accordion-content .topmessage-body {
    display: block;
    margin-bottom: 2.2vw;
    font-weight: 400;
    letter-spacing: 0.04em;
    line-height: 2.2;
    text-align: left;
}
.topmessage-accordion-content .topmessage-body:last-of-type {
    margin-bottom: 0;
}
@media screen and (min-width: 768px){
    .topmessage-accordion-content .topmessage-body{ 
      font-size: 1.2vw;
      letter-spacing: 0.3em;
    }
}
@media screen and (max-width: 767px){
    .topmessage-accordion-content .topmessage-body{ font-size: 4vw; }
}
.topmessage-accordion-content .topmessage-body-second {
    display: block;
    margin-bottom: 2.2vw;
    font-weight: 400;
    letter-spacing: 0.04em;
    line-height: 2.2;
    text-align: left;
}
.topmessage-accordion-content .topmessage-body-second:last-of-type {
    margin-bottom: 0;
}
@media screen and (min-width: 768px){
    .topmessage-accordion-content .topmessage-body-second{ 
      font-size: 1.0vw;
      letter-spacing: 0.3em;
    }
}
@media screen and (max-width: 767px){
    .topmessage-accordion-content .topmessage-body-second{ font-size: 3.5vw; }
}
.topmessage-accordion-content .topmessage-body span.underline,
.topmessage-accordion-content .topmessage-body-second span.underline {
    background-image: linear-gradient(#0BC2DD, #0BC2DD);
    background-size: 100% 1px;
    background-position: bottom left;
    background-repeat: no-repeat;
    padding-bottom: 0.2196193265vw;
}

/* 採用ページへの追従ボタン */
.recruit-fix-banner-wrapper {
    position: relative;
}
.recruit-fix-banner-btn {
    position: fixed;
    bottom: 0;
    z-index: 99;
    left: 0;
    width: 100%;
}
.recruit-fix-banner-btn a {
    display: block;
    -webkit-animation: gradientReverse 0.3s ease;
    animation: gradientReverse 0.3s ease;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    position: relative;
    width: 220px;
    margin-right: 1.5vw;
    margin-bottom: 20px;
    border-radius: 6px;
    margin-left: auto;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.50);
}
@media screen and (max-width: 767px) {
    .recruit-fix-banner-btn a {
        width: 140px;
        margin-right: 3.0vw;
    }
}
.recruit-fix-banner-btn a:after {
    content: ""; 
    position: absolute;
    top: 50%;
    right: 0;
    width: 24px;
    height: 2px;
    background-color: #fff;
}
@media screen and (max-width: 767px) {
    .recruit-fix-banner-btn a:after {
      height: 1px;
      width: 12px;
    }
}
.recruit-fix-banner-btn a > span {
    display: block;
    text-align: center;
}
/* 採用情報はこちら */
.recruit-fix-banner-btn a > span:nth-of-type(1) {
    color: #fff;
    letter-spacing: 0.2em;
    font-size: 18px;
    padding-top: 12px;
    padding-bottom: 4px;
}
@media screen and (max-width: 767px) {
    .recruit-fix-banner-btn a > span:nth-of-type(1) {
        font-size: 12px;
        padding-top: 8px;
        padding-bottom: 3px;
    }
}
.recruit-fix-banner-btn a > span:nth-of-type(2) {
    letter-spacing: 0.05em;
    color: #fff;
    font-size: 12px;
    padding-top: 4px;
    padding-bottom: 12px;
}
@media screen and (max-width: 767px) {
    .recruit-fix-banner-btn a > span:nth-of-type(2) {
        font-size: 8px;
        padding-top: 3px;
        padding-bottom: 8px;
    }
}
/* ページ最下部で追従をやめる */
.recruit-fix-banner-btn.stop {
    position: absolute;
    right: 0;
    left: auto;
    width: auto;
    padding-bottom: 12px;
}
/* トップページ専用フッター（footerの継承用途） */
footer.top-footer { margin-top: 0 !important; }

/* topcompany全体に下のマージンを追加 */
#topcompany {
    margin-bottom: 60px;
}

