@charset "UTF-8";

body {
    font-family:"Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}

/* 基本色 */
:root {
    --main-color: #04D960;
    --accent-color: #1EA86F;
    --dark-main-color: #99D19D;
    --text-bright-color: #fff;
    --icon-color: #fff;
    --icon-bk-color: #ddd;
    --gray-color: #ddd;
    --large-width: 1920px;
    --middle-width: 800px;
    --base-width: 1200px;
}

.sp {
    display: none !important;
}
.pc {
    display: block !important;
}

/* 基本設定： フォントサイズ */
@media (max-width: 599px) {
    :root {
        font-size: 14px;

    }
}
@media (min-width: 600px) and (max-width: 799px) {
    :root {
        font-size: 15px;

    }
}
@media (min-width: 800px) {
    :root {
        font-size: 16px;
        line-height: 1.7;
        color: #4E4C59;
        font-weight: 200;

    }
}

#Home {
    overflow-y: scroll;
}

/* ヘッダー */
header {
    position: relative;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    background-color: rgba(255, 255, 255);
    padding-bottom: 30px;
}

/* ヘッダーA: サイト名 */
.headA {
    width: 300px;
    margin: 20px 0 0 0;
}

.logo-image {
    display: inline-block;
    margin-right: 25px;
    vertical-align: middle;
}
.logo-image img {
    width: 77px;
}
.logo-name {
    display: inline-block;
    vertical-align: middle;
}
.logo-name img {
    width: 500px;
}

@media (min-width: 768px) {
    header .container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        max-width: 1000px;
        max-width: var(--large-width);
        margin-left: auto;
        margin-right: auto;
    }

    .headA {
        width: 620px;
    }
}

/* ヘッダーC： トグルボタン */
@media (max-width: 767px) {

    /* 小さい画面用の設定 */
    header .container-small {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
}

/* --------------------------------
 * menutitle
 * -------------------------------- */
.menutitle {
    width: 175px;
    padding: 10px;
}
.menutitle-image {
    width: 155px;
}
/*.menutitle p {
    margin: 0;
    padding: 0;
}
.line {
    border-top: 3px solid lightgray;
    width: 100%;
    margin: 0 auto;
    color: #00abab;

}
*/


/* ソリューションメニューA */

.listA {
	display: flex; /* */
}
.listA2 {
	display: flex; /* */
}
.listA .container {
    display: flex;
    flex-wrap: wrap;
    /*max-width: var(--large-width);*/
    max-width: 1230px; /*1200px;*/
    margin: 0 auto 40px auto;
    justify-content: space-between;
    margin-left: 20px;
    padding-top: 10px;
}
.listA2 .container {
    max-width: 1230px; /*1200px;*/
    width: 100%;
    margin: 0 auto 40px auto;
    margin-left: 20px;
    padding-top: 10px;
}

.listA article {
    max-width: 15%; /*24%;*/ /*32%;*/
    min-width: 235px; /*300px;*/
}

.listA .list-item {
    margin: 5px 0 20px 0; /* */
}
.listA a {
    flex: 1;
    margin: 20px;
    display: block;
    color: inherit;
    text-decoration: none;
    max-width: 1500px;
}
.listA .list-item li {
    list-style: none;
    margin-top: 8px;
}
.listA .text_wrap ul {
    margin-top: -2px;

    background-color: #e8e8e5; /* */
    padding-left: 0;
    padding-top: 10px;
    height: 140px;
    font-size: 15px;
}
.listA .text_wrap a {
    margin: 0 0 0 15px;
    line-height: 140%;
}

.listA a:hover {
    opacity: 0.6;
}

.listA .text {
    margin: 0;
}

.listA h2 {
    font-size: 21px;
    font-weight: normal;/*600;*/
    margin-top: -1px; /*10px;*/
    margin-bottom: 0;

    background-color: #2ab455;
    color: #fff;
    height: 46px;
    padding-left: 15px;
    display: flex;
    flex-direction:column;
    justify-content: center;
}

.listA p {

    opacity: 0.8;
    margin-top: 2px;
    margin-bottom: 0;

}

.text li {
    margin: 0;
    line-height: 4px;
    list-style: none;
}

/* ソリューションメニューエフェクト */
.img_wrap {
    border: 1px solid #ddd;
    margin: 0 auto;
    overflow: hidden;
}

.listA .list-item .img_wrap {
    max-height: 130px; /*90px;*/ /*250px;*/
}

.img_wrap img {
    width: 100%;
    transition-duration: 0.5s;
    vertical-align: top;
}

.listA .list-item:hover .img_wrap img {
    transform: scale(1.2);
    transition-duration: 3.0s;
}

#menu-item-09 {
    background-color: #efe9e6;
    height: 155px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
#menu-item-09 .list-item {
    position: relative;
}
#menu-item-09 .list-item a {
    display: flex;
    text-decoration: none;
}
#menu-item-09 .img_wrap {
    border: none;
    margin: 0;
    max-height: 230px;
}
#menu-item-09 .img_wrap img {
    max-width: 230px;
    margin-left: 40px;
}
#menu-item-09 .img_wrap:hover img {
    transform: scale(1.0);
}
#menu-item-09 .list-item:hover .img_wrap img {
    transform: scale(1.2);
    transition-duration: 3.0s;
}
#menu-item-09 .text_wrap {
    font-size: 16px; /*14px;*/
    font-weight: normal; /*bold;*/
    line-height: 145%;
    padding-left: 24px;
    color: #4e4c59;
    width: 30.5em;
}
#menu-item-09 h2 {
    font-size: 24px;
    font-weight: normal;
    color: #a15d43;
}


.menu-list-B .container {
    max-width: var(--large-width); /*1920px;*/
    position: relative;
    margin: 40px auto 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.menu-list-B article {
    position: relative;
    max-width: 18%;
}
.menu-list-B article::after {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 100%;
    margin: auto 1rem;
    content: "";
    width: 1px;
    height: 65%;
    background-color: #333;
}
.menu-list-B article:last-child::after {
    content: none;
}

.menu-list-B .list-item {
    margin: 40px 0;
}
.menu-list-B .list-item:hover {
    background-color: #f00;
}
.menu-list-B .list-item:hover .img_wrap {
    opacity: 0.96;
}
.menu-list-B .list-item .img_wrap {
    background-color: #fff;
    height: auto;
    border: none;
}

/* フッター */
footer {
    color: #fff;
    color: var(--text-bright-color);
    background-color:#92DB65;
}
footer .container {
    width: var(--base-width);
    margin: 0 auto;
}
@media (min-width: 768px) {
    footer .container {
        display: flex;
        flex-wrap: wrap;
        max-width: 1600px;
        max-width: var(--large-width);
        margin-left: auto;
        margin-right: auto;
        margin-top: 0px;
    }

    .footA {
        flex: 0 0 40%;
    }

    .footB {
		padding-left: 10px;
    }

    .footC {
        flex: 0 0 100%;
    }
}

/* フッターA： サイト情報 */
.footA {
    margin-top: 30px;
    margin-bottom: 30px;
}
.footA img {
    width: 400px;
}
.footA p {
    margin-top: 0;
    margin-bottom: 0;
    font-size: 16px;
    color: black;
	margin-left: 92px;
}

/* フッターB： フッターメニュー */
.footB div {
    margin-bottom: 0;
}
.footB ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.footB a {
    display: block;
    padding: 0 5px;
    color: black;
    font-size: 15px;
    text-decoration: none;
}
.footB a:hover {
    color: #fff;
}
@media (min-width: 768px) {
    .footB {
        display: flex;
    }

    .footA img {
        width: 460px;
    }

    .footB div {
        margin-top: 10px;
    }

    .footB div:not(:first-child) {
        margin-left: 10px;
    }
}

/* フッターC： コピーライト */
.footC {
    font-size: 14px;
    text-align: center;
    color: black;
}


@media only screen and (min-width: 768px) {
    .text br {
        display: inline;
    }

    @media only screen and (min-width: 768px) {
        /* 上に戻るボタン */
        .pagetop {
            color: #fff;
            background-color: rgba(0, 0, 0, 0.3);
            text-decoration: none;
            display: none;
            position: fixed;
            bottom: 1rem;
            right: 1rem;
            font-size: 1.5rem;
            width: 3.3rem;
            height: 3.3rem;
            line-height: 3.3rem;
            border-radius: 3.3rem;
            text-align: center;
            cursor: pointer;
        }

        .pagetop:hover {
            color: #fff !important;
            background-color: #1EA86F;
            text-decoration: none;
        }
    }

    @media (min-width: 768px) {
        /*1.フェードインアニメーションの指定*/
        .scrollanime {
            opacity: 0;
        }

        /*一瞬表示されるのを防ぐ*/
        .fadeInDown {
            animation-name: fadeInDown;
            animation-duration: 2s; /*表示スピード*/
            animation-fill-mode: forwards; /*そのままの状態を維持*/
        }

        @keyframes fadeInDown {
            0% {
                opacity: 0;
            }
            100% {
                opacity: 1;
                transform: translate(0);
            }
        }

        /*2.上下の動きを指定*/
        .updown {
            transform: translateY(-250px);
        }

        .downup {
            transform: translateY(250px);
        }

        /*3.左右の動きを指定*/
        .sect02 {
            overflow: hidden;
        }

        /*横スクロールバーを隠す*/
        .slide-right {
            transform: translateX(310px);
        }

        .slide-left {
            transform: translateX(-310px);
        }
    }
}

/* 2023/09/27追記 */
.contWrapper {
    max-width: var(--large-width);
    margin: 0 auto;
}

header .container {
    max-width: var(--large-width);
    position: relative;
    display: flex;
}
header .container-logo {

}
header .container-otoiawase {
    width: 380px;
    padding: 20px 0 0 0;
}
header .container-otoiawase div {
    display: flex;
    justify-content: space-between;
}
#header-message,
#header-tel,
#header-otoiawase {
    margin: 0;
}

header .container {
    width: var(--base-width);
    margin: 0 auto;
}
header .menu-container {
    width: 100%;
}

ul#mainMenu {
    display: flex;
    justify-content: space-between;

    padding: 0;
    list-style: none;
    margin-bottom: 0;
}
ul#mainMenu li {
    width: 16.6%;
    text-align: center;
    box-sizing: border-box;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    flex-grow: 1;
}
ul#mainMenu li a {
    color: #000;
    font-size: 19px;
    line-height: 38px;
    letter-spacing: 0;
    height: 36px;
    display: block;
    text-decoration: none;
}
ul#mainMenu li a span{
    padding: 0 1em 3px;
}
ul#mainMenu li#homeOn a span{
    padding: 0 1em 4px;
}

ul#mainMenu li:hover {
    border-color: #63c16d;
}
#Home ul#mainMenu li#homeOn,
#Company ul#mainMenu li#companyOn,
#Digitalbooks ul#mainMenu li#digitalbooksOn,
#Solution ul#mainMenu li#solutionOn,
#Minasamae ul#mainMenu li#minasamaeOn,
#Works ul#mainMenu li#worksOn,
#Recruit ul#mainMenu li#recruitOn {
    border-color: #23ac38;
}
ul#mainMenu li:hover a {
    color: #fff;
    background: #63c16d;
}

#Home ul#mainMenu li#homeOn a,
#Company ul#mainMenu li#companyOn a,
#Digitalbooks ul#mainMenu li#digitalbooksOn a,
#Solution ul#mainMenu li#solutionOn a,
#Minasamae ul#mainMenu li#minasamaeOn a,
#Works ul#mainMenu li#worksOn a,
#Recruit ul#mainMenu li#recruitOn a{
    color: #fff;
    background: #23ac38;
}


ul#mainMenu li.kana a {	letter-spacing:0; }/* Reset */
ul#mainMenu li.ei a {	font-size:18px; }  /* 英文字用 */


main {
    position: relative;
    padding-top: 90px;
    z-index: 100;
    background-color: #fff;
}
main section.listA2,
main section.main-visual,
/*main section.menutitle,*/
main section.listA {
    max-width: var(--large-width);
    position: relative;
    margin: 0 auto;
}
main section.listA {
    /*margin-top: 120px; */
    max-width: 1520px;
}
main section.listA2 {
    margin-top: 10px;
    max-width: 1520px;
}
/*main section.menutitle {
    margin-top: 30px;
    padding: 0 100px;
}*/
main section.listA {
    width: var(--base-width);
    margin: 0 auto;
}
main section.listA2 {
    width: var(--base-width);
    margin: 0 auto;
}
main section.menu-list-B {
    background-color: #fff;
    margin-bottom: 60px;
    width: var(--base-width);
    margin: 0 auto;
}


/* --------------------------------
 * メインビジュアル
 * -------------------------------- */
.main-visual .front-screen {
    position: absolute;
    top: 0;
    width: calc(100% - 200px);
    height: 100%;
}
.main-visual-image {
    position: relative;
    margin: 0;
    color: #333;
    height: 360px; /*520px;*/
}
.welcome {
}
.bgVideo {
    position: relative;
    top: -136px;
    min-height: 100%;
    overflow: hidden;
    max-width: var(--base-width);
    height: 100%;
    margin: 0 auto;
}
.bgv1 {
    min-width: 100%;
    width: 100%;
    min-height: 100%;
    height: auto;
    position: relative;
}


/* --------------------------------
 * 電子ブック 動画（電子ブック版、Webサイト版）
 * -------------------------------- */
#digitalbooksAVideoDialog,
#digitalbooksBVideoDialog {
    position: relative;
    width: 100%;
    height: 100%;
}
.startVideo {
    background-color: #000;
}
#digitalbooks-a-vid,
#digitalbooks-b-vid {
    object-fit: contain;
    position: relative;
}
.digitaibook-a-video-btn,
.digitaibook-b-video-btn {
    position: absolute;
    bottom: 45px;
    right: 30px;
    display: block;
    width: 95px;
    height: 35px;
    background-color: #585858;
    opacity: 0.8;
    padding: 0.5em 0 0.5em 1em;
    vertical-align: middle;
    color: white;
    cursor: pointer;
}


/* --------------------------------
 * about
 * -------------------------------- */


@media only screen and (max-width: 1410px) {
    .main-visual .front-screen .main-visual-messages p {
        font-size: 23px;
        line-height: 1.4;
    }
    .main-visual .front-screen .buttons-list {
        width: 150px;
    }
    main section.listA {
        padding: 0 50px;
    }
    main section.listA2 {
        padding: 0 50px;
    }
}
@media only screen and (max-width: 1280px) {
    :root {
        --large-width: calc(100% - 50px);
        --base-width: calc(100% - 50px);
    }
    .contWrapper {
        max-width: 1280px;
    }
    header .container {
        width: 100%;
        padding-left: 25px;
        padding-right: 25px;
    }
    header .container-logo {
        width: 62%;
        max-width: 620px;
    }
    header .container-otoiawase {
        width: 38%;
        max-width: 380px;
    }
    .headA {
        width: 100%;
    }
    .logo-image {
        margin-right: 15px;
        width: 13%;
    }
    .logo-image img {
        width: 100%;
        max-width: 77px;
    }
    .logo-name {
        width: 80%;
    }
    .logo-name img {
        width: 100%;
    }
    .header-tel-img {
        width: 94%;
        max-width: 208px;
    }
    .header-otoiawase-img {
        width: 94%;
        max-width: 151px;
    }

    ul#mainMenu li a span {
        padding: 0 0.5em 3px;
    }

    main section.listA,
    main section.listA2 {
        padding: 0 25px;
    }
    main section.listA .menutitle,
    main section.listA2 .menutitle {
        padding: 10px 5px;
        width: 17.6%;
    }
    main section.listA .menutitle-image,
    main section.listA2 .menutitle-image {
        max-width: 180px;
        width: 100%;
    }
    .listA .container,
    .listA2 .container {
        width: 82.4%;
    }

    footer .container {
        padding: 10px 25px;
    }
    .listA article {
        min-width: 230px;
    }
    .dummy_articl {
        min-width: 230px;
    }

    #menu-item-09 .img_wrap {
        width: 30%;
    }
    #menu-item-09 .img_wrap img {
        margin-left: 20px;
    }

    main section.menu-list-B {
        padding: 0 25px;
    }

    .footA {
        margin-top: 15px;
        margin-bottom: 20px;
        width: 40%;
    }
    .footA img {
        width: 100%;
    }
    .footA p {
        font-size: 14px;
        margin-left: 19%;
    }
    .footB a {
        font-size: 14px;
    }
}
@media only screen and (max-width: 960px) {
    /* タブレット */
}

@media (max-width: 768px) {
/*
    :root {
        --large-width: 100vw;
    }
*/
    .sp {
        display: block !important;
    }
    .pc {
        display: none !important;
    }

    header .container-logo {
        width: 100%;
    }
    .headA {
        width: 100%;
        margin: 10px;
    }
    header .container {
        width: 100%;
    }
    .logo-image {
        margin-right: 2%;
    }
    .logo-image img {
        width: 84%;
    }
    .logo-name img {
        width: 84%;
    }
    header .container-otoiawase {
        display: none;
    }

    header .container {
        display: block;
    }
    header .menu-container {
        margin: 0;
    }

    ul#mainMenu {
        flex-wrap: wrap;
    }
    ul#mainMenu li {
        width: 50%;
        text-align: left;
        border-top: none;
    }
	ul#mainMenu li#homeOn {
		border-top: 1px solid #23ac38;
	}
	ul#mainMenu li#solutionOn {
		border-top: 1px solid #000;
	}
    ul#mainMenu li a {
        height: 32px;
        font-size: 17px;
    }
    ul#mainMenu li.ei a {
        font-size: 16px;
    }

    .main-visual-image {
        margin: 0;
    }
    .main-visual .front-screen:nth-child(4) {
        position: relative;
        top: 0;
        left: 10px;
		width: calc(100% - 20px);
    }
    .main-visual .front-screen .digitalbooks-image {
        top: 2%;
    }
    .main-visual .front-screen .digitalbooks-image img {
        width: 100%;
    }
    .main-visual .front-screen .main-visual-messages {
        position: relative;
        top: 0;
        left: 0;
    }
    .main-visual .front-screen .main-visual-messages p {
		display: inline;
		font-size: 1.3em;
    }
    .main-visual .front-screen .buttons-list {
        position: relative;
        top: 0;
        left: 0;
        width: 100%;

        line-height: 100%;
        height: 100%;
        margin-top: 10px;
    }
    .main-visual .front-screen .buttons-list a {
        display: inline-block;
        width: 45%;
    }

    /*main section.menutitle {
        margin-top: 25px;
        padding: 0 5px;
    }
    .menutitle {
        font-size: 20px;
        text-align: left;
    }*/

    main section.listA {
        padding: 10px;
    }
    .listA .container {
        margin-bottom: 0;
    }
	.listA .text_wrap ul {
		margin-top: 0;
	}

    main section.menu-list-B {
        padding: 0 10px;
    }
    .menu-list-B .container {
        margin: 0;
    }
    .menu-list-B article {
        max-width: 45%;
    }
    .menu-list-B .list-item {
        margin: 10px 0 5px 0;
    }

    footer .container {
        padding: 5px;
    }
    .footA img {
        width: 65%;
    }
    .footA p {
        font-size: 12px;
    }
    .footB {
        display: none;
    }
    .footC {
        display: none;
    }


	.digitaibook-a-video-btn,
	.digitaibook-b-video-btn {
		bottom: 15px;
		right: 20px;
		width: 65px;
		height: 30px;
		padding: 0.25em;
		font-size: 14px;
	}

}
