/* =========================
   ABOUT page ( /about/css/style.css )
   - depends on /assets/css/style.css (wrap, tone, btn, etc.)
========================= */

/* パンくず：このページだけ下に余白を足す */
.pBreadcrumb {
    padding-bottom: 20px;
}

/* =========================
   About Hero
========================= */
.aboutHero {
    padding: 18px 0 60px;
    background: #fff;
}

.aboutHead {
    margin-bottom: 40px;
}

.aboutLabel {
    margin: 0;
    font-size: 14px;
    letter-spacing: .06em;
    color: rgba(15, 23, 42, .60);
}

.aboutTitle {
    margin: 10px 0 0;
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.25;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(15, 23, 42, .14);
}

/* ロゴ + テキスト */
.aboutIntro {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    gap: 40px;
    align-items: center;
}

.aboutLogo {
    display: grid;
    place-items: center;
    padding-top: 10px;
}

.aboutLogo img {
    width: min(520px, 90%);
    height: auto;
    /* ←縦に伸びるのを防ぐ */
    display: block;
    object-fit: contain;
    /* ←念のため */
}

.aboutText p {
    margin: 0 0 14px;
    line-height: 1.9;
    color: rgba(15, 23, 42, .86);
}

.aboutText p:last-child {
    margin-bottom: 0;
}

.aboutCatch {
    margin: 0 0 14px;
    font-size: clamp(26px, 5.0vw, 40px);
    line-height: 1.25;
    letter-spacing: .02em;
    color: #0f172a;
}

/* 3枚ギャラリー */
.aboutGallery {
    margin-top: 40px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.aboutGallery img {
    width: 100%;
    height: 220px;
    /* 統一感のため固定（必要なら調整） */
    object-fit: cover;
    display: block;
    border-radius: 12px;
}

/* =========================
   Feature section
========================= */
.aboutFeature {
    padding: 60px 0;
}

.aboutFeatureHead {
    margin-bottom: 18px;
}

.aboutFeatureTitle {
    margin: 10px 0 0;
    font-size: clamp(24px, 2.6vw, 36px);
    color: #0f172a;
}

/* 特徴ブロック */
.featureBlock {
    margin-top: 32px;
    margin-bottom: 80px;
}

.featureTitle {
    margin: 0 0 12px;
    padding: 18px 18px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 10px;
    background: #fff;
    color: #162c56;
    font-size: 20px;
    line-height: 1.5;
}

.featureBlock p {
    margin: 0 0 14px;
    line-height: 1.9;
    color: rgba(15, 23, 42, .86);
}

.featureBlock p:last-child {
    margin-bottom: 0;
}

/* =========================
   CTA
========================= */
.aboutCta {
    padding: 24px 0 80px;
    background: #fff;
}

/* CTA（既に作ったクラスを流用） */
.pBottomCta {
    margin: 0 auto;
    text-align: center;
    display: flex;
    justify-content: center;
}

.pDetailCta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: clamp(16px, 2.0vw, 22px);
    line-height: 1.4;
    white-space: normal;
    text-decoration: none;
    color: #fff;
    font-weight: 600;
    background: #0f172a;
    border-radius: 128px;
    padding: 12px 28px;
    width: auto;
    max-width: 100%;
}

.pDetailCta:hover {
    opacity: .92;
}

/* ===== モナルテ性能図 ===== */

/* ===== 3-circle concept (Tri Venn) ===== */

.monoTri {
    padding: 40px 0 60px;
    background: #fff;
}

.monoTriHead {
    text-align: center;
    margin: 0 0 26px;
}

.monoTriTitle {
    margin: 6px 0 10px;
    font-size: clamp(22px, 2.6vw, 34px);
    letter-spacing: .02em;
}

.monoTriLead {
    margin: 0;
    color: rgba(15, 23, 42, .72);
    line-height: 1.7;
}

/* 図の土台 */
.triVenn {
    position: relative;
    margin: 90px auto 0;
    width: min(560px, 100%);
    aspect-ratio: 1 / 1;
    isolation: isolate;
    /* 重なりの表現が安定 */
}

/* 円 */
.triCircle {
    position: absolute;
    width: 62%;
    aspect-ratio: 1 / 1;
    border-radius: 999px;

    /* “透明な円”っぽさ（薄い青＋ガラス感） */
    background: rgba(18, 69, 140, .08);
    border: 1px solid rgba(15, 23, 42, .06);
    backdrop-filter: blur(2px);

    /* ふんわり影 */
    box-shadow:
        0 18px 38px rgba(2, 6, 23, .10),
        inset 0 1px 0 rgba(255, 255, 255, .55);

    display: grid;
    place-items: center;
}

/* 円の中身（文字・アイコン） */
.triInner {
    text-align: center;
    padding: 18% 12%;
    color: #0f172a;
}

.triIcon {
    font-size: clamp(22px, 3vw, 30px);
    margin-bottom: 8px;
    opacity: .9;
}

.triName {
    font-weight: 900;
    font-size: clamp(18px, 2.3vw, 24px);
    letter-spacing: .02em;
}

.triDesc {
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(15, 23, 42, .70);
}

/* 三角配置（中心寄りに重ねる） */
.triCircle--top {
    left: 50%;
    top: -10%;
    transform: translateX(-50%);
}

.triCircle--left {
    left: -10%;
    bottom: 8%;
}

.triCircle--right {
    right: -10%;
    bottom: 8%;
}

/* 中央ラベル（重なり部分を“モナルテ”として強調） */
.triCenter {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;

    width: 34%;
    aspect-ratio: 1 / 1;
    border-radius: 999px;

    background: rgba(255, 255, 255, .60);
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 14px 30px rgba(2, 6, 23, .12);
    backdrop-filter: blur(6px);

    display: grid;
    place-items: center;
    text-align: center;
    padding: 10px;
}

.triCenterTitle {
    font-weight: 900;
    letter-spacing: .06em;
    font-size: clamp(16px, 2.2vw, 22px);
}

.triCenterSub {
    margin-top: 4px;
    font-size: 12px;
    color: rgba(15, 23, 42, .70);
}

/* スマホ：円サイズと重なりを少し調整 */
@media (max-width: 520px) {
    .triCircle {
        width: 65%;
    }

    .triCircle--top {
        top: -10%;
    }

    .triCircle--left {
        left: -10%;
        bottom: 4%;
    }

    .triCircle--right {
        right: -10%;
        bottom: 4%;
    }

    .triCenter {
        width: 38%;
    }

    .triDesc {
        font-size: 12px;
    }
}


/* レスポンシブ */
@media(max-width:768px) {
    .perfDiagram {
        grid-template-columns: 1fr;
    }

    .perfItem.center {
        grid-row: auto;
        grid-column: auto;
        order: -1;
    }
}


/* =========================
   Responsive
========================= */
@media (max-width: 980px) {
    .aboutIntro {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .aboutLogo {
        padding-top: 0;
        margin-bottom: 20px;
    }

    .aboutGallery {
        grid-template-columns: 1fr;
    }

    .aboutGallery img {
        height: auto;
        aspect-ratio: 16 / 9;
    }
}

/* さらに狭い端末：CTAの左右余白を確保 */
@media (max-width: 420px) {
    .pDetailCta {
        padding: 12px 18px;
    }
}