@charset "UTF-8";

html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

#business__contents {
    scroll-margin-top: 0;
}

@font-face {
    font-family: 'Zen Maru Gothic';
    src: url(/fonts/ZenMaruGothic-Light.woff2);
    font-weight: 300;
    font-display: swap;
}
/*Zen Maru Gothic 400*/
@font-face {
    font-family: 'Zen Maru Gothic';
    src: url(/fonts/ZenMaruGothic-Regular.woff2);
    font-weight: 400;
    font-display: swap;
}
/*Zen Maru Gothic 400*/
@font-face {
    font-family: 'Zen Maru Gothic';
    src: url(/fonts/ZenMaruGothic-Medium.woff2);
    font-weight: 500;
    font-display: swap;
}
/*Zen Maru Gothic 700*/
@font-face {
    font-family: 'Zen Maru Gothic';
    src: url(/fonts/ZenMaruGothic-Bold.woff2);
    font-weight: 700;
    font-display: swap;
}
/*Ephesis 400*/
@font-face {
    font-family: 'Ephesis';
    src: url(/fonts/Ephesis-Regular.ttf);
    font-weight: 400;
    font-display: swap;
}
/*Noto Sans JP 400*/
@font-face {
    font-family: 'Noto Sans JP';
    src: url(/fonts/NotoSansJP-Regular.woff2);
    font-weight: 400;
    font-display: swap;
}
/*Noto Sans JP 700*/
@font-face {
    font-family: 'Noto Sans JP';
    src: url(/fonts/NotoSansJP-Medium.woff2);
    font-weight: 500;
    font-display: swap;
}
/*Noto Sans JP 700*/
@font-face {
    font-family: 'Noto Sans JP';
    src: url(/fonts/NotoSansJP-Bold.woff2);
    font-weight: 700;
    font-display: swap;
}
/*Shippori Mincho 400*/
@font-face {
    font-family: 'Shippori Mincho';
    src: url(/fonts/ShipporiMincho-Regular.woff2);
    font-weight: 400;
    font-display: swap;
}
/*Shippori Mincho 700*/
@font-face {
    font-family: 'Shippori Mincho';
    src: url(/fonts/ShipporiMincho-Medium.woff2);
    font-weight: 500;
    font-display: swap;
}
/*Shippori Mincho 700*/
@font-face {
    font-family: 'Shippori Mincho';
    src: url(/fonts/ShipporiMincho-Bold.woff2);
    font-weight: 700;
    font-display: swap;
}
/*Petit Formal Script 400*/
@font-face {
    font-family: 'Petit Formal Script';
    src: url(/fonts/PetitFormalScript-Regular.ttf);
    font-weight: 400;
    font-display: swap;
}


.l-header.org-header.org-under-header {
    position: absolute;
    background: rgba(255, 255, 255, 0);
}
.l-main {
    width: 100%;
    padding: 0;
    background: #fff;
    overflow: hidden;
}

/* latte-room.jp top の canvas グラデーションと同色変数（会社ページ .l-main 背景・動きは Gradient.js） */
.l-main.company {
    position: relative;
    background-color: transparent;
}

.company-main-gradient-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    --gradient-color-1: #f3fcf9;
    --gradient-color-2: #ecfffe;
    --gradient-color-3: #f4fded;
    --gradient-color-4: #e9f6fc;
    z-index: 0;
    pointer-events: none;
}

.l-main.company > *:not(.company-main-gradient-canvas) {
    position: relative;
    z-index: 0;
}

.l-main *{font-weight: 400;box-sizing: border-box;font-family: "Noto Sans JP",sans-serif;}
.breadcrumbs {
    display: none;
}


/* ========================================= */
/* Mission（Figma: mission 13807:9978） */
/* コンテナ: pt150px, 内側幅1140px（390ガター相当は margin auto） */
/* 1行目: flex space-between / 左 headline / 右列 625px, gap40+30 */
/* 背景グラデーションは仕様により未実装 */
/* ========================================= */

#content {
    width: 100%;
}

/* MV：同一スタック内で画像 < グラデ < ベクタ（z-index だけでは後続の .mission と同順位になっていたためラッパーで分離） */
.mission-mainvisual {
    position: relative;
    z-index: 1;
}

.mission-mainvisual .main__img {
    position: relative;
    z-index: 0;
}

.mission > .mission__bg-gradation {
    position: absolute;
    inset: 0;
    z-index: -1;
    width: auto;
    margin: 0;
    height: 289px;
    padding: 0;
    pointer-events: none;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0), #fff 100%);
}

.mission-mainvisual__deco-anchor {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 0;
    overflow: visible;
    z-index: 3;
    pointer-events: none;
}

.mission-mainvisual__deco-anchor > .contents__inner {
    position: relative;
    width: 1140px;
    max-width: 100%;
    margin: 0 auto;
}

.main__img {
    height: 520px;
    overflow: hidden;
}
.main__img img {
    height: 100%;
    height: 100%;
    width: 100%;
    object-fit: cover;
    position: relative;
}

.mission {
    position: relative;
    width: 100%;
    padding-top: 150px;
    padding-bottom: 80px;
    /* overflow: hidden; */
}

.contents__inner {
    width: 1140px;
    position: relative;
    margin: 0 auto;
}


.mv__img-link {
    position: absolute;
    top: -412px;
    right: 70px;
    width: 140px;
    height: 190px;
}
/* 装飾レイヤー（1920相当の基準座標） */
.mission__decor {
    /* position: absolute; */
    /* left: 569px; */
    /* top: -143px; */
    /* width: 487px; */
    /* height: 1019px; */
    /* pointer-events: none; */
    z-index: 0;
}
.mission__deco-wrap {
    position: absolute;
    left: -389px;
    width: 487px;
    height: 1019px;
    top: -330px;
    z-index: 3;
}

.mission__deco {
    /* position: absolute; */
    /* display: block; */
}

/* 計測: パス199 712×712, left:-322 top:-284 */
.mission__deco--199 {
    left: -322px;
    top: -284px;
    width: 712px;
    height: 712px;
}

/* パス201 475×475, left:-194 top:605 */
.mission__deco--201 {
    left: -194px;
    top: 605px;
    width: 475px;
    height: 475px;
}

/* パス200 480×480, left:1218 top:27 */
.mission__deco--200 {
    left: 1218px;
    top: 27px;
    width: 480px;
    height: 480px;
}

/* パス202 575×575, left:1545 top:418 */
.mission__deco--202 {
    left: 1545px;
    top: 418px;
    width: 575px;
    height: 575px;
}

/* パス2 277.465 回転24.49deg, 中心付近 */
.mission__deco--2 {
    left: 1545px;
    top: 726px;
    width: 277px;
    height: 277px;
    transform: rotate(24.49deg);
    transform-origin: center center;
}

/* vector 525×1018 付近 */
.mission__deco--vector {
    /* left: 0; */
    /* top: -178px; */
    /* width: 525px; */
    /* height: 1019px; */
    /* z-index: 1; */
}

/* img 679×696, マスクグループ相当位置 */
.mission__photo {
    position: absolute;
    left: -264px;
    top: 200px;
    width: 679px;
    height: 696px;
    z-index: 0;
}

.mission__photo-img {
    display: block;
    width: 679px;
    height: 696px;
    object-fit: cover;
}

.mission__inner {
    position: relative;
    z-index: 1;
    width: 1140px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

/* 見出し＋導入 */
.mission__row--intro {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
}

.mission__headline {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding-bottom: 50px;
    position: relative;
}

/* 計測: Zen Maru Gothic Medium 38px / 行間1.6 / 字間3.8px / グラデーション字 */
.mission__title span {
    margin: 0 0 0px 0;
    padding: 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 3.8px;
    background-image: linear-gradient(90deg, #6f9382 0%, #7ebfa0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.mission__title-line {
    display: block;
}

/* Ephesis 100px / opacity 0.1 / #6fa7a7 */
.mission__subtitle {
    /* margin: 0 0 -50px 0; */
    padding: 0 0 0 40px;
    font-family: 'Ephesis', serif;
    font-size: 100px;
    font-weight: 400;
    line-height: 1;
    color: #6fa7a7;
    opacity: 0.1;
    white-space: nowrap;
    position: absolute;
    bottom: 0;
}

.mission__column {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 625px;
    flex-shrink: 0;
}

/* 計測: Noto Sans JP 16 / 行間2.1 / 字間0.8px / #539a93 */
.mission__lead {
    margin: 0;

    font-size: 16px;
    font-weight: 400;
    line-height: 2.1;
    letter-spacing: 0.8px;
    color: #539a93;
}

.mission__divider {
    width: 100%;
    height: 1px;
    background-color: #e2e2e2;
}

.mission__list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 100%;
}

.mission__item {
    display: flex;
    flex-direction: row;
    gap: 15px;
    align-items: flex-start;
    width: 625px;
}

/* VISION: 103×34, px15 py10, gradient #b5eae6 → #9de0db */
.mission__tag--vision {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 103px;
    width: 103px;
    height: 34px;
    box-sizing: border-box;
    padding: 10px 15px;
    background-image: linear-gradient(90deg, #b5eae6 0%, #9de0db 100%);
}

/* VALUE: gradient #c7dad8 → #9de0c9 */
.mission__tag--value {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 103px;
    width: 103px;
    height: 34px;
    box-sizing: border-box;
    padding: 10px 15px;
    background-image: linear-gradient(90deg, #c7dad8 0%, #9de0c9 100%);
}

.mission__tag-label {
    margin: 0;
    font-family: 'Shippori Mincho', serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
}

.mission__tag--vision .mission__tag-label {
    color: #ffffff;
}

.mission__tag-label--value {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: center;
    color: #ffffff;
    gap: 4px;
}

.mission__tag-en {
    font-family: 'Shippori Mincho', serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
}

.mission__tag-num {
    font-family: 'Shippori Mincho', serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
}

.mission__item-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 507px;
    padding-top: 4px;
}

.mission__item-heading {
    margin: 0;

    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 1.1px;
    color: #4c5d56;
}

.mission__item-text {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.7px;
    color: #4c5d56;
}

.mission__topic {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    box-sizing: border-box;
    padding: 12px 25px 15px 25px;
    background-color: #ffffff;
}

.mission__topic-head {
    display: flex;
    flex-direction: row;
    gap: 7px;
    align-items: center;
}

.mission__topic-dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 0px;
    background-color: #65cac3;
}

.mission__item--value .mission__topic-dot {
    background-color: #89b9b4;
}

.mission__topic-label {
    margin: 0;

    font-size: 14px;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.42px;
    color: #65cac3;
}

.mission__item--value .mission__topic-label {
    color: #89b9b4;
}

.mission__topic-note {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.7px;
    color: #798781;
}

/* ロゴ＋社名説明（Figma: logo_txt 1140幅・ロゴとパネル負のマージン重ね） */
.mission__brand {
    position: relative;
    width: 1140px;
    margin: 0 auto;
    min-height: 389px;
    isolation: isolate;
}

.mission__logo-card {
    position: absolute;
    left: 0;
    top: 50%;
    z-index: 2;
    padding: 0px;
    /* border-radius: 20px; */
    transform: translateY(-50%);
}

.mission__logo-img {
    display: block;
    width: 443px;
    object-fit: cover;
}

.mission__identity {
    position: relative;
    z-index: 1;
    width: 1140px;
    min-height: 389px;
    margin-left: 0;
    box-sizing: border-box;
    padding: 60px 60px 60px 280px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 20px;
}

.mission__identity-bg {
    position: absolute;
    left: 105px;
    top: 0;
    width: 1035px;
    height: 389px;
    z-index: 0;
    pointer-events: none;
}

.mission__identity-bg-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mission__identity-text {
    position: relative;
    z-index: 1;
    width: 565px;
    margin: 0;

    font-size: 16px;
    font-weight: 400;
    line-height: 1.85;
    letter-spacing: 0.8px;
    color: #4c5d56;
}

.mission__corp {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 565px;
}

.mission__corp-head {
    display: flex;
    flex-direction: row;
    gap: 7px;
    align-items: flex-start;
}

.mission__corp-dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 9px;
    background-color: #5cd9ba;
}

.mission__corp-label {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.42px;
    background-image: linear-gradient(90deg, #5cd9bb 0%, #429e76 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.mission__corp-text {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.7px;
    color: #798781;
}

/* ========================================= */
/* Business（Figma: business 13807:8700） */
/* 1140 = 694（カード列）+ 100（gap）+ 346（見出し） */
/* カード横327・縦461・画像216 / 背景グラデ・装飾bgは未実装 */
/* ========================================= */

.business {
    position: relative;
    width: 100%;
}

.business__inner {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 100px;
    width: 1140px;
    margin: 0 auto;
    padding-top: 40px;
    box-sizing: border-box;
}

.business__grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 40px;
    width: 694px;
    flex-shrink: 0;
}

.business__intro {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 346px;
    flex-shrink: 0;
}

.business__headline {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding-bottom: 50px;
    position: relative;
}
.business__headline::before 
{
    content: '';
    position: absolute;
    left: -1185px;
    width: 1920px;
    height: 1314px;
    top: -471px;
    background: url(/images/company/business__headline-deco.svg) center / cover no-repeat;
    z-index: -1;
}

.business__title span {
    margin: 0 0 0 0;
    padding: 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 3.8px;
    background-image: linear-gradient(90deg, #6f9382 0%, #7ebfa0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.business__title-line {
    display: block;
}

.business__subtitle {
    padding: 0 0 0 40px;
    font-family: 'Ephesis', serif;
    font-size: 100px;
    font-weight: 400;
    line-height: 1;
    color: #6fa7a7;
    opacity: 0.1;
    white-space: nowrap;
    position: absolute;
    bottom: 0;
}

.business__lead {
    margin: 0;

    font-size: 16px;
    font-weight: 400;
    line-height: 2.1;
    letter-spacing: 0.8px;
    color: #539a93;
}

.business__qa-link {
    gap: 12px;
    margin-top: 24px;
    background: linear-gradient(90deg, #42cec3 0%, #59e6db 100%);
    font-family: 'Zen Maru Gothic', sans-serif;
    text-decoration: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    padding: 25px 40px;
    width: 318px;
    min-height: 70px;
    box-sizing: border-box;
    border-radius: 999999px;
    font-weight: 500;
    font-size: 18px;
    line-height: 1;
    letter-spacing: 0.1em;
    color: #ffffff;
    position: relative;
}

.business__qa-link:hover {
    opacity: 1;
    background: linear-gradient(90deg, #55d589 0%, #65f8a1 100%);
}

.business__qa-link-icon {
    display: inline-flex;
    flex-shrink: 0;
    transform: rotate(90deg);
    width: 26px;
    height: 26px;
    background: #17c3b6;
    border-radius: 999px;
    padding: 5px;
    position: absolute;
    right: 20px;
    top: 0;
    bottom: 0;
    margin: auto;
}

.business__qa-link-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

#company-faq {
    scroll-margin-top: 0px;
}

[class*="business__card--"] {
    position: relative;
    width: 327px;
    min-height: 461px;
    flex-shrink: 0;
}

.business__card-bg {
    /* position: absolute; */
    /* left: 0; */
    /* top: 0; */
    /* width: 327px; */
    /* height: 461px; */
    /* overflow: hidden; */
}
.business__card--01 {
background: url(/images/company/business__01.webp) top / contain no-repeat;
}
.business__card--02 {
    background: url(/images/company/business__02.webp) top / contain no-repeat;
}
.business__card--03 {
    background: url(/images/company/business__03.webp) top / contain no-repeat;
}
.business__card--04 {
    background: url(/images/company/business__04.webp) top / contain no-repeat;
}


.business__card-bg--mint {
    /* background-color: #ecf7f7; */
}

.business__card-bg--mist {
    background-color: #f0fafa;
}

.business__card-img {
    /* display: block; */
    /* width: 327px; */
    /* height: 216px; */
    /* object-fit: cover; */
    /* object-position: bottom center; */
}

.business__card-badge {
    position: absolute;
    left: 18px;
    top: 18px;
    z-index: 2;
    width: 60px;
    height: 60px;
    border-radius: 99999px;
    background-color: rgba(83, 154, 147, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Shippori Mincho', serif;
    font-size: 26px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 1.3px;
    color: #ffffff;
}

.business__card-body {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    /* min-height: 461px; */
    padding: 201px 20px 20px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 16px;
}

.business__card-body--spaced {
    padding-bottom: 45px;
}

.business__card-copy {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.business__card-title {
    margin: 0;

    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.9px;
    color: #6fbea1;
}

.business__card-text {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.7px;
    color: #4c5d56;
}

.business__card-text--tall {
    min-height: 125px;
}

.business__card-tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: flex-start;
}

.business__card-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 7px;
    background-color: #ffffff;

    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.7px;
    color: #798781;
}

/* ========================================= */
/* Achievements（Figma: achievements 13807:8701） */
/* pt120 / gap60 / ヘッダー行 + カードグリッド gap16 */
/* 背景画像・各種グラデーションは未実装 */
/* ========================================= */

.achievements {
    position: relative;
    width: 100%;
}

.achievements__inner {
    display: flex;
    flex-direction: column;
    gap: 60px;
    width: 1140px;
    margin: 0 auto;
    padding-top: 116px;
    box-sizing: border-box;
}

.achievements__hero {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
}

.achievements__intro {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex-shrink: 0;
}

.achievements__headline {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    /* padding-bottom: 50px; */
    margin-top: 24px;
}

.achievements__title {
    margin: 0 0 -50px 0;
    padding: 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 3.8px;
    background-image: linear-gradient(90deg, #6f9382 0%, #7ebfa0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.achievements__subtitle {
    margin: 0px 0 0;
    padding: 0 0 0 40px;
    font-family: 'Ephesis', serif;
    font-size: 100px;
    font-weight: 400;
    line-height: 1;
    color: #6fa7a7;
    opacity: 0.1;
    white-space: nowrap;
}

.achievements__lead {
    margin: 0;
    max-width: 488px;

    font-size: 16px;
    font-weight: 400;
    line-height: 2.1;
    letter-spacing: 0.8px;
    color: #539a93;
}

.achievements__highlight {
    flex-shrink: 0;
    width: 562px;
    min-height: 230px;
    box-sizing: border-box;
    background: url(/images/company/achievements__bg.webp) center / cover no-repeat;
    position: relative;
}
.achievements__highlight::before {
    content: '';
    position: absolute;
    right: -556px;
    width: 472px;
    height: 792px;
    top: 79px;
    background: url(/images/company/achievements-deco.svg) center / cover no-repeat;
}

.achievements__highlight-body {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 17px;
    box-sizing: border-box;
    height: 230px;
    padding: 20px 40px 20px 40px;
}

.achievements__highlight-row {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
    margin-top: 12px;
}

.achievements__highlight-count {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 7px;
    flex-shrink: 0;
}

.achievements__highlight-foot {
    display: flex;
    flex-direction: column;
    gap: 13px;
    align-items: flex-end;
    width: 100%;
}

.achievements__banner {
    width: 100%;
    margin: 0;
    box-sizing: border-box;
    padding: 14px 15px;
    background-color: #ffffff;

    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.7px;
    color: #798781;
    text-align: center;
}

.achievements__footnote {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.7px;
    color: #a1b7ae;
}

.achievements__grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px;
    width: 100%;
    align-items: stretch;
    padding-bottom: 30px;
}

.achievements__stat {
    box-sizing: border-box;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    padding: 18px 35px 30px 35px;
}

.achievements__stat--wide {
    width: 562px;
}

.achievements__stat--narrow {
    width: 369px;
}

.achievements__stat-top {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
}

.achievements__stat-head {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 11px;
}

.achievements__stat-title {
    margin: 0;

    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 1.1px;
    background-image: linear-gradient(90deg, #6f9382 0%, #7ebfa0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.achievements__stat-sub {
    display: flex;
    flex-direction: row;
    gap: 7px;
    align-items: flex-start;
}

.achievements__stat-dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 9px;
    background-color: #89b9b4;
}

.achievements__stat-en {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0.42px;
    color: #89b9b4;
}

.achievements__stat-value {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 3px;
    flex-shrink: 0;
    white-space: nowrap;
}

.achievements__stat-prefix {

    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.8px;
    color: #798781;
    margin-bottom: 12px;
}

.achievements__stat-figure {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 4px;
}

.achievements__stat-value--plain {
    gap: 0;
}

.achievements__num {
    font-family: 'Ephesis', serif;
    font-size: 80px;
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    background-image: linear-gradient(90deg, #67cfaa 0%, #53cdbf 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    font-family: "Petit Formal Script", sans-serif;
}

.achievements__num--xl {
    font-size: 100px;
    background-image: linear-gradient(90deg, #6bd587 0%, #8ee2a5 100%);
}

.l-contents .achievements__unit--pct {
    font-family: 'Shippori Mincho', serif;
    font-size: 41px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 2.05px;
    color: #8BE0A2;
}

.achievements__unit {

    font-size: 36px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 1.8px;
    color: #56cdbc;
    margin-bottom: 8px;
}

.achievements__note {
    width: 100%;
    margin: 0;
    box-sizing: border-box;
    padding: 14px 15px;
    background-color: #e7f6f5;

    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.7px;
    color: #798781;
    text-align: center;
}
.l-main .company-info__swiper-pagination .swiper-pagination-bullet {
    margin: 0;
    width: 10px;
    height: 10px;
}
/* ========================================= */
/* Company info（Figma: 13807:8704） */
/* pt120 / 見出し pl120 / 白パネル py70 px120 / 2列 gap100 */
/* 背景グラデーション・装飾bgは未実装 */
/* ========================================= */

.company-info {
    position: relative;
    width: 100%;
}

.company-info__wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    padding-top: 89px;
    box-sizing: border-box;
}

.company-info__header {
    box-sizing: border-box;
    width: 1140px;
    position: relative;
}
.company-info__header::before {
    position: absolute;
    content: '';
    display: block;
    width: 1920px;
    height: 891px;
    background: url(/images/company/company-info-line.svg) center / cover no-repeat;
    left: -391px;
    top: 164px;
}

.company-info__title {
    margin: 0 0 -50px 0;
    padding: 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 3.8px;
    background-image: linear-gradient(90deg, #6f9382 0%, #7ebfa0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.company-info__subtitle {
    /* margin: 0 0 -50px 0; */
    padding: 0 0 0 40px;
    font-family: 'Ephesis', serif;
    font-size: 100px;
    font-weight: 400;
    line-height: 1;
    color: #6fa7a7;
    opacity: 0.1;
    white-space: nowrap;
}

.company-info__panel {
    box-sizing: border-box;
    width: 100%;
    /* padding: 70px 120px; */
    /* background-color: #ffffff; */
    display: flex;
    flex-direction: column;
    /* gap: 60px; */
}

.company-info__main {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 100px;
    justify-content: center;
    padding: 68px 120px 60px;
    width: fit-content;
    margin: 0 auto;
    background: #fff;
    position: relative;
}

.company-info__column {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 520px;
    flex-shrink: 0;
}

.company-info__column--aside {
    gap: 32px;
}

.company-info__aside-block {
    display: flex;
    flex-direction: column;
    gap: 15px;
    width: 100%;
}

.company-info__row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 50px;
    width: 100%;
    font-size: 14px;
    letter-spacing: 0.7px;
}

.company-info__term {
    flex-shrink: 0;
    width: 84px;
    margin: 0;

    font-weight: 500;
    line-height: 1.9;
    color: #4c5d56;
}

.company-info__value {
    flex: 1 1 0;
    min-width: 0;
}

.company-info__text {
    margin: 0;

    font-weight: 400;
    line-height: 1.93;
    color: #798781;
}

.company-info__rule {
    width: 100%;
    height: 1px;
    background-color: rgba(226, 226, 226, 0.77);
}

.company-info__slider {
    display: flex;
    flex-direction: column;
    gap: 25px;
    align-items: flex-end;
    width: 100%;
    position: relative;
}

.company-info__slider--single .company-info__slider-nav {
    display: none;
}

.company-info-swiper {
    width: 520px;
    max-width: 100%;
    overflow: hidden;
}

.company-info-swiper .swiper-slide {
    width: 520px;
    box-sizing: border-box;
}

.company-info__slider-view {
    width: 520px;
    height: 347px;
    overflow: hidden;
}

.company-info__slider-view img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #f7f7f7;
}

.company-info__slider-img {
    display: block;
    width: 520px;
    height: 389px;
    object-fit: cover;
}

.company-info__slider-nav {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: end;
    position: absolute;
    bottom: 21px;
    left: 0;
    right: 21px;
}

.company-info__swiper-pagination {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    flex: 0 0 auto;
}

.company-info__swiper-pagination.swiper-pagination-horizontal {
    bottom: auto;
    left: auto;
    width: auto;
    gap: 13px;
}

.company-info__swiper-pagination .swiper-pagination-bullet {
    background-color: #FFF;
    opacity: 1;
}

.company-info__swiper-pagination .swiper-pagination-bullet-active {
    opacity: 1;
    background-color: #539a93;
}

.company-info__map-section {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 40px;
    justify-content: center;
    padding: 0px 120px 69px;
    width: fit-content;
    margin: 0 auto;
    background: #fff;
    width: 1380px;
    position: relative;
}

.company-daihyo-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: end;
}
.company-daihyo-img {
    width: 520px;
    height: 347px;
    }
    .company-daihyo-img img {
        width: 100%;
        height: 100%;
        }
        .company-daihyo-text {
            color: #4C5D56;
            font-size: 20px;
            font-weight: 500;
            font-family: "Noto Sans JP";
            display: flex;
            align-items: baseline;
            gap: 10px;
            letter-spacing: 0.04em;
        }
        .company-daihyo-text-label {
            font-size: 14px;
            color: #4C5D56;
            font-weight: 500;
            font-family: "Noto Sans JP";

        }
        

.company-info__map-frame {
    flex-shrink: 0;
    width: 812px;
    height: 298px;
    overflow: hidden;
}

.company-info__map-frame .company-info__map-iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.company-info__map-img {
    display: block;
    width: 812px;
    height: 298px;
    object-fit: cover;
}

.company-info__map-aside {
    flex-shrink: 0;
    width: 288px;
    display: flex;
    flex-direction: column;
    gap: 17px;
}

.company-info__map-block {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.company-info__map-label {
    margin: 0;

    font-size: 14px;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.7px;
    color: #4c5d56;
}

.company-info__map-text {
    margin: 0;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: 0.7px;
    color: #798781;
}

/* ========================================= */
/* Company FAQ（Figma: 13807:8707） */
/* 2列 gap52 / 右列748px / 背景装飾・全面グラデは未実装 */
/* ========================================= */

.company-faq {
    position: relative;
    isolation: isolate;
    width: 100%;
    padding: 124px 0 120px;
    box-sizing: border-box;
}

.company-faq__inner {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
}

.company-faq__hero {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 52px;
    width: 100%;
}

.company-faq__headline {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    flex-shrink: 0;
    width: 340px;
    padding-bottom: 50px;
    box-sizing: border-box;
    position: relative;
}
.company-faq__headline::before {
    position: absolute;
    content: '';
    display: block;
    width: 714px;
    height: 1289px;
    background: url(/images/company/company-faq.webp) center / cover no-repeat;
    left: -391px;
    top: 78px;
}

.company-faq__title {
    margin: 0 0 -50px 0;
    padding: 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 3.8px;
    background-image: linear-gradient(90deg, #6f9382 0%, #7ebfa0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.company-faq__subtitle {
    margin: 0;
    padding: 0 0 0 40px;
    font-family: 'Ephesis', serif;
    font-size: 100px;
    font-weight: 400;
    line-height: 1;
    color: #6fa7a7;
    opacity: 0.1;
    white-space: nowrap;
}

.company-faq__list {
    flex: 1 1 748px;
    max-width: 748px;
    min-width: 0;
    margin: 0;
}

.company-faq__group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.company-faq__group:not(:first-child) {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(226, 226, 226, 0.77);
}

.company-faq__q {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
}

.company-faq__q-text {
    flex: 1 1 auto;
    min-width: 0;
    padding-top: 6px;

    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.9px;
    color: #4c5d56;
}

.company-faq__a {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
}

.company-faq__a-text {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding-top: 4px;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: 0.7px;
    color: #798781;
}

.company-faq__mark {
    position: relative;
    box-sizing: border-box;
    flex-shrink: 0;
    width: 41px;
    height: 41px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.company-faq__mark-deco {
    position: absolute;
    left: 0;
    top: 0;
    width: 41px;
    height: 41px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    pointer-events: none;
}

.company-faq__mark-deco--q {
    background-image: url(/images/company/faq-icon-q-deco.svg);
}

.company-faq__mark-deco--a {
    background-image: url(/images/company/faq-icon-a-deco.svg);
}

.company-faq__mark-label {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: 31px;
    height: 31px;
    border-radius: 99999px;
    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 19px;
    font-weight: 400;
    line-height: 1;
    color: #fff;
    padding-bottom: 3px;
}

.company-faq__mark--q .company-faq__mark-label {
    background-color: #a3dfcb;
}

.company-faq__mark--a .company-faq__mark-label {
    background-color: #90d7d1;
}

/* ----- contact（Figma 13487:4490） / FAQ 背景とも共通 ----- */
.contact {
    position: relative;
    isolation: isolate;
}

.contact-gradient-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    --gradient-color-1: #B8FAE2;
    --gradient-color-2: #FFFFFF;
    --gradient-color-3: #AEFFF9;
    --gradient-color-4: #E7FFD4;
    z-index: 0;
    pointer-events: none;
    opacity: 0.5;
}

/* 下側は白〜上にいくほど透過（セクション全面・.contact__bg と同一） */
.contact__bg,
.company-faq__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    margin: 0;
    height: 480px;
    padding: 0;
    pointer-events: none;
    background: linear-gradient(
        to top,
        rgba(255, 255, 255, 0.97) 0%,
        rgba(255, 255, 255, 0.72) 28%,
        rgba(255, 255, 255, 0.35) 56%,
        rgba(255, 255, 255, 0.08) 82%,
        rgba(255, 255, 255, 0) 100%
    );
    transform: rotate(180deg);
}

.contact__bg {
    z-index: 1;
}

.company-faq__bg {
    transform: rotate(0deg);
    bottom: 0px;
    top: inherit;
}

.contact__inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    width: 1140px;
    max-width: 100%;
    margin: 0 auto;
    padding: 126px 0 150px;
    box-sizing: border-box;
}

.contact__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin: 0;
}

.contact__title {
    margin: 0;
    padding: 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-weight: 500;
    font-size: 38px;
    line-height: 1;
    letter-spacing: 0.1em;
    color: #4c5d56;
}

.contact__lead {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
}

.contact__lead-dot {
    display: block;
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 8px;
    border-radius: 50%;
    background-color: #4C5D56;
}

.contact__lead-label {
    font-family: 'Zen Maru Gothic', sans-serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.05em;
    color: #4c5d56;
}

.contact__stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
}

.contact-cards {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 18px;
    justify-content: center;
    width: 100%;
}

.contact-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    box-sizing: border-box;
    width: 368px;
    max-width: 100%;
    padding: 12px 25px 20px;
    background-color: #ffffff;
}

.contact-card__ribbon {
    position: absolute;
    top: 27px;
    left: 0;
    z-index: 2;
    margin: 0;
    padding: 15px 10px;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.05em;
    writing-mode: vertical-rl;
    color: #ffffff;
}

.contact-card__ribbon--form {
    background-color: #cbe9d3;
}

.contact-card__ribbon--reserve {
    background-color: #b5d2cf;
}

.contact-card__ribbon--line {
    background-color: #cbe9d3;
}

.contact-card__icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 142px;
    height: 142px;
    margin-top: 5px;
    border-radius: 99999px;
    background-color: #e8fff6;
}

.contact-card__icon svg {
    display: block;
    width: 81px;
    height: 81px;
}

.contact-card__body {
    gap: 17px;
}

.contact-card__ttl {
    margin: 0;
    padding: 0;
    font-size: 26px;
    line-height: 1;
    letter-spacing: 0.05em;
    text-align: center;
    color: #4c5d56;
    margin-bottom: 11px;
}

.contact-card__txt {
    margin: 0;
    padding: 0;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.05em;
    text-align: center;
    color: #798781;
    margin-bottom: 31px;
}

.contact-card__cta {position: relative;}

.contact-card__badge {
    position: relative;
    z-index: 1;
    margin: 0;
    width: max-content;
    padding: 8px 25px;
    font-weight: 500;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.05em;
    background-color: #feffe8;
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
}

.contact-card__badge--form {
    color: #44d0c5;
}

.contact-card__badge--reserve {
    color: #81c4be;
}

.contact-card__badge--line {
    color: #56d78a;
}

.contact-card__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    padding: 25px 40px;
    width: 318px;
    min-height: 70px;
    box-sizing: border-box;
    border-radius: 999999px;
    font-weight: 500;
    font-size: 18px;
    line-height: 1;
    letter-spacing: 0.1em;
    color: #ffffff;
    text-decoration: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.contact-card__btn:hover {
    opacity: 0.92;
    transform: translateY(-2px);
}

.contact-card__btn--form {
    background: linear-gradient(90deg, #42cec3 0%, #59e6db 100%);
}

.contact-card__btn--reserve {
    background: linear-gradient(90deg, #7fc3bc 0%, #a9d9d4 100%);
}

.contact-card__btn--line {
    background: linear-gradient(90deg, #55d589 0%, #65f8a1 100%);
}

.contact-phone {
    position: relative;
    width: 100%;
}

.contact-phone__ribbon {
    position: absolute;
    left: 0;
    top: 25px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px 10px;
    background-color: #d3d3d3;
    box-sizing: border-box;
}

.contact-phone__ribbon-text {
    margin: 0;
    font-family: 'Zen Maru Gothic', sans-serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.05em;
    color: #ffffff;
    writing-mode: vertical-rl;
    text-orientation: mixed;
}

.contact-phone__sheet {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 30px;
    box-sizing: border-box;
    width: 100%;
    min-height: 138px;
    padding: 35px 233px 40px 193px;
    background-color: #ffffff;
}

.contact-phone__ttl {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    font-size: 26px;
    line-height: 1;
    letter-spacing: 0.05em;
    white-space: nowrap;
    color: #4c5d56;
}

.contact-phone__divider {
    align-self: stretch;
    flex-shrink: 0;
    width: 1px;
    margin: 4px 0;
    background-color: #cccccc;
}

.contact-phone__meta {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: 8px;
}

.contact-phone__tel-row {
    display: flex;
    flex-direction: row;
    gap: 10px;
}

.contact-phone__tel-icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    margin-top: 7px;
}

.contact-phone__tel-num {
    font-size: 37px;
    line-height: 1;
    letter-spacing: 0.02em;
    color: #4c5d56;
}

.contact-phone__hours {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
}

.contact-phone__pair {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
}

.contact-phone__hours-label,
.contact-phone__hours-val {
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    color: #8fa39c;
}

/* 会社概要ページ専用（top にはなし） */
.contact-heading__underbox-text {
    color: #4C5D56;
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 210%; /* 33.6px */
    letter-spacing: 1px;
    margin-top: 6px;
    }
.contact-heading__underbox-list {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 13px;
    gap: 30px;
    }
.contact-heading__underbox-item {
    color: #4C5D56;
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 210%; /* 33.6px */
    letter-spacing: 0.8px;
    display: flex;
    align-items: center;
    gap: 10px;
    }
.contact-heading__underbox-item-icon {
    width: 28px;
    }
