
.about-kv {
    /* background: #fff; */
    padding: 180px 0 100px;
}

.about-eyebrow {
    font-family: 'Cormorant', serif;
    font-weight: 600;
    font-size: 18px;
    color: #333333;
    margin-bottom: 8px;
    margin-top: 10px;
}

.about-title {
    font-family: 'Zen Old Mincho', serif;
    font-size: 38px;
    color: #333333;
    /* border-bottom: 1px solid #aaa; */
    margin-bottom: 10px;
}
.about-intro {
    font-family: 'Zen Old Mincho', serif;
    font-size: 18px;
    line-height: 40px;
    max-width: 900px;
    margin: 50px auto;
    text-align: center;
}
.about-hero img {
    display: block; width: 988px;
    max-width: 100%;
    height: 252px;
    object-fit: cover;
    margin: 0 auto;
}
.about-ci {
    background: #fff;
    padding: 80px 0 100px;
}
.hero-line {
    height: 1px;
    background-color: #aaa;
    width: 1125px;
    max-width: 100%;
    margin: 0 auto;
}
.section-label {
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: #707070;
}
.section-sub {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    font-size: 16px;
    color: #707070;
}
.section-sub:after {
    content: '―';
    font-weight: 800;
    font-size: 30px;
    line-height: 15px;
    display: block;
    color: #03528C;
}
.ci-triad {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px; align-items: start;
    max-width: 1100px;
    margin: 40px auto 0;
    justify-content: center;
}
.ci-item {
    text-align: center;
}
.ci-circle {
    width: 380px;
    height: 380px;
    max-width: 100%;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: #f5f4f0;
    display: grid;
    place-content: center;
    color: #333;
    row-gap: 6px;
}
.ci-circle strong {
    font-size: 25px;
    font-family: 'Zen Kaku Gothic New', sans-serif;
}
.ci-circle span {
	font-size: 16px;
	color: #707070;
}
.ci-text {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-size: 18px;
    line-height: 40px;
    color: #333;
    padding: 20px 70px;
}

.about-message {
    background: #f5f4f0;
    padding: 80px 0;
}
.message-grid {
    display: grid;
    grid-template-columns: 469px 1fr;
    gap: 70px;
    align-items: start;
    margin: 50px 0 40px;
}
.message-photo img {
    width: 469px;
    max-width: 100%; height: 638px;
    object-fit: cover;
}
.message-body {
    color: #333;
    line-height: 38px;
    font-size: 18px;
    border-top: 1px solid #aaa;
    border-bottom: 1px solid #aaa;
    padding: 80px 0 10px;
    height: 638px;
    text-align:justify;
}
.message-sign {
    margin-top: 80px;
    text-align: right;
}
.message-role {
    color: #707070;
    font-size: 14px;
}
.message-name {
    font-size: 24px;
}
.message-name span {
	display: inline-block;
	margin: 0px 20px;
	font-size: 15px;
}

.about-company {
    padding: 80px 0;
}
.company-table {
	max-width: 1050px;
	margin: 50px auto;
}
.company-table .row {
	display: grid;
	grid-template-columns: 200px 1fr;
	padding: 14px 0;
	border-bottom: 1px solid #ccc;
}
.company-table dt {
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-weight: 500;
	color: #707070;
	font-size: 18px;
}
.company-table dd {
	font-size: 16px;
	color: #333;
    line-height: 32px;
}
.company-table .block dd {
	padding-top: 6px;
}
.officers {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
}
.officers li {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 20px;
}
.access-map {
	border-bottom: 1px solid #333;
	text-decoration: none;
	color: #333;
    padding-bottom: 7px;
}

.org {
    background: #eeece9;
    padding: 24px;
    max-width: 704px;
    margin: 40px auto;
}
.org-head {
    background: #666357;
    color: #fff;
    text-align: center;
    padding: 14px 10px;
    font-weight: 700;
}
.org-cols {
    display: grid;
    grid-template-columns:
    1fr 1fr; gap: 20px;
    padding: 20px;
}
.org-item {
    text-align: center;
    padding: 10px;
    font-weight: 700;
    font-size: 16px;
}
.org-item.filled {
    background: #898573;
    color: #fff;
}
.org-item.hollow {
    border: 1px solid #a9a69b;
    color: #898573;
}
.org-item.small {
    font-size: 15px;
}
.org-item.tall {
    height: 70px;
    display: grid;
    place-content: center;
}

.about-group {
    background: #fff;
    padding: 60px 0 100px;
}
.group-cards {
    display: grid;
    grid-template-columns: repeat(3, 341px);
    gap: 50px 25px;
    justify-content: center;
    margin-top: 60px;
}
.group-cards .card {
    display: block;
    width: 341px;
    height: 298px;
    overflow: hidden;
}
.group-cards .card img {
    width: 100%;
    height: auto;
    object-fit: cover;
    transition: transform .3s ease;
}
.group-cards .card:hover img {
    transform: scale(1.03);
}


/* VISION・PHILOSOPHY・SLOGANセクション */
.identity {
    width: 60%;
    margin: 20px auto 80px!important;
    border-bottom: 1px solid #aaa;
    text-align: center;
    padding-bottom: 30px;
    font-size: 22px;
}
.identity h2 {
    font-weight: 500;
    color: #333;
}
.item {
    display: flex;
    gap: 50px;
    justify-content: center;
    align-items: start;
}
.vision-philosophy-slogan-section {
    background: #fff;
    padding: 80px 0;
    position: relative;
}

.vision-item,
.philosophy-item,
.slogan-item {
    position: relative;
    margin-bottom: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vision-item:last-child,
.philosophy-item:last-child,
.slogan-item:last-child {
    margin-bottom: 0;
}

/* 背景円形 */
.vision-bg-circle,
.philosophy-bg-circle,
.slogan-bg-circle {
    width: 475px;
    height: 475px;
    z-index: 1;
}

.bg-circle {
    width: 100%;
    height: 100%;
    object-fit: contain;
}


/* VISION レイアウト */
.vision-item {
    justify-content: center;
}

.vision-content {
    position: absolute;
    top: 91px;
    text-align: center;
    z-index: 3;
}

.philosophy-content {
    position: absolute;
    top: 91px;
    text-align: center;
    z-index: 3;
}

.slogan-content {
    position: absolute;
    top: 91px;
    text-align: center;
    z-index: 3;
}

.vision-title,
.philosophy-title,
.slogan-title {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-size: 32px;
    color: #333333;
    margin-bottom: 0px;
    letter-spacing: 0.5px;
}

.vision-subtitle,
.philosophy-subtitle,
.slogan-subtitle {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    font-size: 16px;
    color: #333333;
    margin-bottom: 30px;
}

.vision-text,
.philosophy-text,
.slogan-text {
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 400;
    font-size: 20px;
    color: #333333;
    line-height: 40px;
    text-align: center;
}

.vision-text {
    width: 297.624px;
}

.philosophy-text {
    width: 320.518px;
}

.slogan-text {
    width: 228.942px;
}

.vision-text p,
.philosophy-text p,
.slogan-text p {
    margin: 0;
}


/* 組織図 */
.organization {
    width: 1050px;
    margin: 70px auto;
    text-align: center;
}
.org-chart-wrapper {
    width: 750px;
    margin: 0 auto;
}
.org-chart {
    display: inline-flex;
    flex-direction: column;
}
.business-company {
    display: flex;
}
.left-line {
    width: 30px;
    border-right: 1px solid #aaa;
    margin-right: 30px;
    margin-bottom: 82px;
}
.node.main-company {
    background: #666357;
    width: 440px;
    padding: 15px;
    font-size: 20px;
}
.node {
    background-color: #8d867a;
    color: white;
    padding: 12px 5px;
    border-radius: 2px;
    display: inline-block;
    text-align: center;
    width: 270px;
    box-sizing: border-box;
    font-weight: 500;
}
.node.sub-company {
    background-color: #8d867a;
    width: 225px;
    padding: 7px 0px;
}
.subsidiary-group {
    background: #FFFEFE;
    padding: 30px 40px 40px 40px;
    margin-top: 40px;
    position: relative;
    display: inline-flex; /* 幅をコンテンツに合わせる */
    flex-direction: column;
}
.group-title {
    color: #707070;
    text-align: left;
    margin: 0 0 20px 0;
    font-size: 14px;
    font-weight: bold;
}

.org-chart ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.org-chart li {
    display: flex;
    align-items: flex-start;
    position: relative;
    padding-left: 20px;
    margin-bottom: 20px;
}

.org-chart li:last-child {
    margin-bottom: 0;
}

.op-company::after {
    content: '';
    position: absolute;
    /* left: -30px; */
    right: 45%;
    top: 22px;
    width: 38px;
    height: 1px;
    background-color: #adaca6;
}

.org-chart li::before {
    content: '';
    position: absolute;
    left: -70px;
    top: 22px;
    width: 90px;
    height: 1px;
    background-color: #adaca6;
}

.org-chart li > ul {
    margin-left: 60px;
    position: relative;
}

.org-chart li > ul::before {
    content: '';
    position: absolute;
    left: -35px;
    top: 23px;
    bottom: 16px;
    width: 1px;
    background-color: #adaca6;
}
.org-chart li > ul.kosugi-company::before {
    content: '';
    position: absolute;
    left: -35px;
    top: 23px;
    bottom: 18px;
    width: 1px;
    background-color: #adaca6;
}
.org-chart li > ul.last-company::before {
    display: none;
}

.org-chart li > ul > li {
    padding-left: 20px;
    margin-bottom: 10px;
}
.org-chart li > ul > li:last-child {
    margin-bottom: 0;
}

.org-chart li > ul > li::before {
    content: '';
    position: absolute;
    left: -35px;
    top: 22px;
    width: 56px;
    height: 1px;
    background-color: #adaca6;
}



/* ABOUT US responsive */
@media (max-width: 1200px) {
    .ci-triad {
        grid-template-columns: 1fr 1fr;
    }
    .group-cards {
        grid-template-columns:
        repeat(2, minmax(0,1fr));
    }
    .group-cards .card {
        width: 100%;
        height: auto;
    }
}

@media (max-width: 768px) {
    .about-kv {
        padding: 120px 0 100px;
    }
    .ci-triad {
        grid-template-columns: 1fr;
    }
    .message-grid {
        grid-template-columns: 270px 1fr;
        gap: 30px;
    }
    .message-body {
        line-height: 35px;
        font-size: 16px;
        padding: 40px 0 10px;
    }
    .message-photo img {
        width: 100%; height: auto;
    }
    .company-table .row {
        grid-template-columns: 200px 1fr;
    }
    .officers {
        grid-template-columns: 1fr;
    }
    .op-company::after {
        right: 49%;
    }
    .node {
        width: 227px;
    }

    /* VISION・PHILOSOPHY・SLOGAN レスポンシブ */
    .organization {
        width: 630px;
    }
    .org-chart-wrapper,
    .org-chart,
    .subsidiary-group {
        width: 100%;
    }
    .vision-philosophy-slogan-section {
        padding: 60px 0;
    }

    .vision-item,
    .philosophy-item,
    .slogan-item {
        height: auto;
        margin-bottom: 10px;
        flex-direction: column;
        text-align: center;
    }

    .vision-bg-circle,
    .philosophy-bg-circle,
    .slogan-bg-circle {
        position: relative;
        width: 310px;
        height: 310px;
        left: auto;
        top: auto;
        transform: none;
        margin: 0 auto 20px;
    }

    .vision-content,
    .philosophy-content,
    .slogan-content {
        left: auto;
        top: 30px;
        transform: none;
        margin-top: 20px;
    }

    .vision-title,
    .philosophy-title,
    .slogan-title {
        font-size: 28px;
        margin-bottom: 10px;
    }

    .vision-subtitle,
    .philosophy-subtitle,
    .slogan-subtitle {
        font-size: 14px;
        margin-bottom: 20px;
    }

    .vision-text,
    .philosophy-text,
    .slogan-text {
        font-size: 16px;
        line-height: 1.8;
        width: auto;
        max-width: 300px;
        margin: 0 auto;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 20px;
    }
    .wrapper {
        padding: 0;
    }
    .hero-title {
        font-size: 32px;
    }
    .section-title {
        font-size: 28px;
    }
    .about-title {
        font-size: 35px;
    }
    .about-intro {
        text-align: left;
        font-size: 16px;
        line-height: 35px;
    }
    .message-text,
    .about-text {
        font-size: 16px;
        line-height: 1.8;
    }
    .about-message {
        padding: 50px 0;
    }
    .message-body {
        padding: 20px 0 10px;
        height: inherit;
    }
    .message-grid {
        grid-template-columns: none;
    }
    .identity {
        width: 100%;
        font-size: 18px;
        padding-bottom: 10px;
    }
    .company-table .row {
        grid-template-columns: 77px 1fr;
    }
    .company-table dt {
        font-size: 16px;
        line-height: 28px;
    }
    .company-table dd {
        line-height: 28px;
    }
    .about-company {
        padding: 50px 0 20px;
    }
    .recruit-title {
        font-size: 28px;
    }
    .recruit-text {
        font-size: 18px;
        line-height: 1.8;
    }
    .contact-title {
        font-size: 36px;
    }
    .officers {
        gap: 15px;
    }
    .officers li {
        grid-template-columns: 140px 1fr;
        gap: 0;
    }
    .group-cards {
        gap: 30px 20px;
    }

    /* 組織図 */
    .organization {
        width: 100%;
        margin: 20px auto;
    }
    .node.sub-company {
        width: 115px;
        overflow-wrap: anywhere;
    }
    .node.main-company {
        width: 350px;
        margin-left: -7px;
    }
    .subsidiary-group {
        width: 404%;
        padding: 30px 15px 40px 15px;
    }
    .node, .op-company {
        min-width: inherit;
        width: 110px;
    }
    .node.sub-company {
        min-width: inherit;
        width: 110px;
    }
    .org-chart ul {
        font-size: 14px;
    }
    .org-chart li {
        padding-left: 0;
    }
    .org-chart li::before {
        width: 37px;
        left: -36px;
    }
    .org-chart li > ul > li {
        padding-left: 0;
    }
    .org-chart li > ul > li::before {
        width: 35px;
    }
    .org-chart li > ul::before {
        bottom: 35px;
    }
    .org-chart li > ul.kosugi-company::before {
        bottom: 37px;
    }
    .left-line {
        margin-right: 20px;
        margin-bottom: 76px;
    }
    .op-company::after {
        right: 47%;
    }


    /* VISION・PHILOSOPHY・SLOGAN 小画面対応 */
    .vision-philosophy-slogan-section {
        padding: 40px 0;
    }

    .vision-item,
    .philosophy-item,
    .slogan-item {
        margin: 0 auto;
    }

    .item {
        flex-direction: column;
        gap: 0;
    }
}



