@charset "UTF-8";
/**
 * MyKomon LP — デザインカンプ準拠（ライブラリ不使用）
 * ウォーターマーク・ハイライト・セクション背景をカンプのトーンに合わせて定義
 */
@import "reset.css";

:root {
    /* カンプのカラーパレット */
    --colorRed: #c01336;
    /* 資料請求フォーム送信ボタン（カンプ指定 #C81534） */
    --colorContactSubmit: #c81534;
    --colorBlue: #007caa;
    --colorBlueSoft: #e6f4fa;
    --colorYellow: #fff500;
    --colorWhite: #ffffff;
    --colorWhiteSoft: #f7f7f7;
    --colorWhiteSoft2: #FAFAFA;
    --colorYellowMarker: rgba(255, 245, 0, 0.55);
    --colorBgWhite: #ffffff;
    --colorBgLightGray: #EDEDED;
    --colorBgMidGray: #A3A3A3;
    --colorBgGray: #E0E0E0;
    --colorFooter: #333333;
    --colorText: #404040;
    --colorTextMuted: #5c5c5c;

    --fontNoto: "Noto Sans JP", sans-serif;
    --fontRoboto: "Roboto", sans-serif;
    --fontOswald: "Oswald", sans-serif;

    --containerMax: 1120px;
    --radiusButton: 4px;
    --radiusBubble: 12px;
    --shadowSoft: 0 4px 24px rgba(0, 0, 0, 0.06);
    --transitionFast: 0.2s ease;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--fontNoto);
    font-size: 1rem;
    line-height: 1.75;
    color: var(--colorText);
    background: var(--colorBgWhite);
}

.xs {
    display: none;
    @media (max-width: 575px) {
        display: block;
    }
}

.sp {
    display: none;

    @media (max-width: 768px) {
        display: block;
    }
}
.pc {
    display: block;

    @media (max-width: 768px) {
        display: none;
    }
}

.visuallyHidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skipLink {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 10000;
    padding: 0.75rem 1.25rem;
    background: var(--colorBlue);
    color: var(--colorBgWhite);
    font-family: var(--fontRoboto);
    font-weight: 500;
    text-decoration: none;
}

.skipLink:focus {
    left: 1rem;
    top: 1rem;
    outline: 3px solid var(--colorYellow);
    outline-offset: 2px;
}

.pageWrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.container {
    width: min(100% - 2.5rem, var(--containerMax));
    margin-inline: auto;
}

.siteMain {
    flex: 1;
}

.text-center {
    text-align: center;
}

.text-whiteSoft {
    color: var(--colorWhiteSoft) !important;
    opacity: 1 !important;
}

.text-white {
    color: var(--colorWhite) !important;
    opacity: 1 !important;
}

/* --------------------------------------------------------------------------
   セクション共通：ウォーターマーク（Oswald・低不透明度・背面）
   -------------------------------------------------------------------------- */
.sectionBlock {
    position: relative;
    overflow: hidden;
}

.sectionInner {
    position: relative;
    z-index: 1;
    padding-block: 10rem;

    @media (max-width: 768px) {
        padding-block: 6rem;
    }
}

.sectionWatermark {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 2rem;
    margin: 0;
    font-family: var(--fontRoboto);
    font-size: 15cqw;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.02em;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    z-index: 0;

    @media (max-width: 768px) {
        font-size: 20cqw;
    }
}

/* 白・ライトグレー背景用：ごく薄いグレーの英字 */
.sectionWatermarkMyKomon {
    top: 3rem;
    color: #000000;
    opacity: 0.02;
    font-size: 22cqw;
}

.sectionWatermarkLight {
    color: #000000;
    opacity: 0.06;
}

/* ミッドグレー背景用：白ベースの透過 */
.sectionWatermarkOnGray {
    color: #ffffff;
    opacity: 0.08;
}

.sectionTitleCenter {
    text-align: center;
    font-size: clamp(2rem, 2.4vw, 3.4rem);
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

/* テキストハイライト：カンプのマーカー／ブルー塗り */
.markBlueText {
    color: var(--colorBlue);
    /* font-weight: 700; */
}


.markZero {
    color: var(--colorBlue);
    font-size: 1.15em;
    font-weight: 800;
}

/* 黄色マーカー風（下線グラデ） */
.markYellowBrush {
    background:
        linear-gradient(transparent 80%, var(--colorYellowMarker) 80%, var(--colorYellowMarker) 95%, transparent 95%);
    padding-inline: 0.08em;
}

.markBlueDot {
    background-image: radial-gradient(circle at center, var(--colorBlue) 20%, transparent 20%);
    /* 点の色とサイズ調整 */
    background-position: top right;
    /* 点の位置 */
    background-repeat: repeat-x;
    /* 横方向に繰り返し */
    background-size: 1em 0.3em;
    /* 点の間隔とサイズ調整 */
    padding-top: .2em;
    /* 縦方向の位置調整 */
}

.headingOnGray {
    color: var(--colorBgWhite);
}

/* --------------------------------------------------------------------------
   ヘッダー：ロゴ左・テキストリンク＋マゼンタボタン
   -------------------------------------------------------------------------- */
.siteHeader {
    position: fixed;
    top: 0;
    z-index: 200;
    width: 100%;
    background: var(--colorWhiteSoft);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.siteHeaderInner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: 1rem;
}

.siteHeaderLogoLink {
    display: inline-block;
    line-height: 0;
}

.siteHeaderLogoImg {
    max-height: 48px;
    width: auto;
}

.siteHeaderNav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.5rem;
}

.siteHeaderTextLink {
    font-family: var(--fontRoboto);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--colorText);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color var(--transitionFast), border-color var(--transitionFast);
}

.siteHeaderTextLink:hover,
.siteHeaderTextLink:focus-visible {
    color: var(--colorBlue);
    border-bottom-color: var(--colorBlue);
}

.buttonCtaHeader {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--fontRoboto);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--colorBgWhite);
    background: var(--colorRed);
    text-decoration: none;
    padding: 0.65rem 1.35rem;
    border: none;
    transition: filter var(--transitionFast), transform var(--transitionFast);
}

.buttonCtaHeader:hover,
.buttonCtaHeader:focus-visible {
    filter: brightness(1.06);
    transform: translateY(-1px);
}

.sectionTitleInner {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    &>p {
        /* margin: 0; */
        font-size: 1.5rem;
        margin: 0;

        @media screen and (max-width: 768px) {
            font-size: 1.25rem;
            text-align: center;
        }
    }

    &>h2 {
        font-size: clamp(2rem, 2.4vw, 3.4rem);
        margin: 0;

        @media screen and (max-width: 768px) {
            font-size: 2rem;
            text-align: center;
        }
    }
}

.sectionMainText {
    font-size: 1.125rem;
    line-height: 1.75;
    margin: 0;
    text-align: center;
    margin-block: 3rem;
}


/* --------------------------------------------------------------------------
   ヒーロー：2カラム・白背景
   -------------------------------------------------------------------------- */
.sectionHero {
    background: var(--colorBgLightGray);
}

.sectionHeroInner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
    padding-block: 10rem;
    width: min(100% - 2.5rem, var(--containerMax));
    margin-inline: auto;

    @media (max-width: 768px) {
        padding-block: 6rem;
    }
}

.heroTextColInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.heroTextWrapper {
    display: flex;
    flex-direction: column;

    @media (max-width: 768px) {
        justify-content: center;
    }
}

.heroEyebrow {
    font-size: clamp(1.4rem, 2.8vw, 1.75rem);
    color: var(--colorTextMuted);
    margin: 0
}

.heroTitle {
    font-size: clamp(2rem, 3.2vw, 2.35rem);
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 1rem;

    @media (max-width: 768px) {
        font-feature-settings: 'palt';
    }
}

.heroProductName {
    font-size: 1.2rem;
    font-weight: 500;
    margin-top: 0;
    margin-bottom: 1.75rem;
}

.heroStats {
    display: flex;
    flex-wrap: wrap;
    /* gap: 1.25rem 2rem; */
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;

    @media (max-width: 768px) {
        margin-bottom: 0;
    }
}

.heroStatItem {
    position: relative;
}

.heroStatItem:last-child {
    margin-left: -1.25rem;
}

.heroStatCircle {
    display: block;
    width: clamp(150px, 20vw, 200px);
    height: clamp(150px, 20vw, 200px);
    border-radius: 50%;
    border: 3px solid var(--colorBlue);

}

.heroStatLabel {
    font-size: clamp(0.875rem, 2.8vw, 1.125rem);
}

.heroStatText {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.heroStatText span {
    display: block;
}

.heroStatValue {
    font-family: var(--fontOswald);
    font-size: clamp(1.75rem, 2.8vw, 3.4rem);
    font-weight: 700;
    color: var(--colorBlue);
    line-height: 1.1;
}

.heroStatUnit {
    font-size: clamp(0.875rem, 2.8vw, 1.125rem);
    font-weight: 700;
    color: var(--colorText);
    white-space: nowrap;
}

.heroCtaWrap {
    margin: 0;
}

.heroCtaWrap img {
    max-width: 460px;
    width: 100%;
    height: auto;
    margin-inline: auto;
    display: block;
}

.heroFigure {
    margin: 0;
}

.heroLaptopImg {
    width: 100%;
    max-width: 680px;
    height: auto;
    @media (max-width: 768px) {
        max-width: 100%;
    }
}

.heroVisualCol {
    position: relative;
    & figure {
        margin-right: calc(50% - 50vw);
        height: 100%;
        object-fit: cover;
        object-position: center;
        position: relative;
        z-index: 1;

        @media (max-width: 768px) {
            margin-right: 0;
        }
    }
    & .splideWrapper {
        margin-right: calc(50% - 50vw);
        position: absolute;
        top: 42%;
        left: 76px;
        max-width: 680px;
        min-width: 460px;
        width: 100%;
        height: 100%;

        @media (max-width: 768px) {
            min-width: unset;
            bottom: 26px;
            left: 50%;
            transform: translateX(-50%);
            width: 80%;
        }
    }
}

.splide__arrows {
    display: none;
}

/* --------------------------------------------------------------------------
   PROBLEM：ミッドグレー＋吹き出しグリッド
   -------------------------------------------------------------------------- */
.sectionProblem {
    background: var(--colorBgMidGray);
}

.problemHeading {
    margin-inline: auto;
    display: inline-block;
    position: relative;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--colorWhite);

    &::before {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%) skew(-25deg);
        height: 20px;
        width: 10px;
        border-right: 1px solid var(--colorWhite);
        background-color: var(--colorBgMidGray);
        content: "";
    }
}

.problemList {
    position: relative;
}

.problemBubble {
    background: var(--colorBgLightGray);
    padding: 1.5rem;
    font-weight: 500;
    line-height: 1.55;
    width: 220px;
    box-shadow: var(--shadowSoft);

    @media (max-width: 768px) {
        font-size: 0.875rem;
        padding: 1rem 0.5rem;
    }

    & .markBlue {
        font-size: 1.125rem;
        color: var(--colorBlue);

        @media (max-width: 768px) {
            font-size: 1rem;
        }
    }
}

.problemBubble1 {
    position: absolute;
    top: 0;
    left: 10%;

    &:after {
        content: "";
        position: absolute;
        bottom: 0;
        right: 10%;
        border-style: solid;
        border-width: 20px 0 0 20px;
        border-color: var(--colorBgLightGray) transparent transparent;
        translate: calc(-50% + 0.4px) 100%;
    }
}

.problemBubble2 {
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translateY(-50%);

    &:after {
        content: "";
        position: absolute;
        top: 50%;
        right: 0;
        border-style: solid;
        border-width: 10px 0 10px 20px;
        border-color: transparent transparent transparent var(--colorBgLightGray);
        translate: 100% -50%;
    }
}

.problemBubble3 {
    position: absolute;
    bottom: 0;
    left: 10%;

    &:after {
        content: "";
        position: absolute;
        top: 0;
        right: 10%;
        border-style: solid;
        border-width: 0 0 20px 20px;
        border-color: transparent transparent var(--colorBgLightGray);
        translate: calc(-50% + 0.4px) -100%;
    }
}

.problemFigure {
    display: inline-block;
}

.problemFigure img {
    width: 100%;
    max-width: 680px;
    height: auto;
    border-radius: var(--radiusBubble);

}

.problemBubble4 {
    position: absolute;
    top: 0;
    right: 10%;

    &:after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 20%;
        border-style: solid;
        border-width: 20px 20px 0 0;
        border-color: var(--colorBgLightGray) transparent transparent;
        translate: calc(-50% - 0.4px) 100%;
    }
}

.problemBubble5 {
    position: absolute;
    top: 50%;
    right: 5%;
    transform: translateY(-50%);

    &::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        border-style: solid;
        border-width: 10px 20px 10px 0;
        border-color: transparent var(--colorBgLightGray) transparent transparent;
        translate: -100% -50%;
    }
}

.problemBubble6 {
    position: absolute;
    bottom: 0;
    right: 10%;

    &::after {
        content: "";
        position: absolute;
        top: 0;
        left: 20%;
        border-style: solid;
        border-width: 0 20px 20px 0;
        border-color: transparent transparent var(--colorBgLightGray);
        translate: calc(-50% - 0.4px) -100%;
    }
}

@media (max-width: 768px) {

    #sectionProblem .sectionInner {
        padding-bottom: 0;
    }

    .problemList {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }

    .problemBubble1,
    .problemBubble2,
    .problemBubble3,
    .problemBubble4,
    .problemBubble5,
    .problemBubble6 {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        position: relative;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        transform: none;
        width: 100%;
        height: auto;
        border-radius: 0;
        position: relative;
        z-index: 1;

        &:after {
            display: none;
        }
    }

    .problemBubble1 {
        grid-column: 1 / 2;
        grid-row: 1 / 2;
    }

    .problemBubble2 {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
    }

    .problemBubble3 {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
    }

    .problemBubble4 {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
    }

    .problemBubble5 {
        grid-column: 1 / 2;
        grid-row: 3 / 4;
    }

    .problemBubble6 {
        grid-column: 2 / 3;
        grid-row: 3 / 4;
    }

    .problemFigure {
        grid-column: 1 / 3;
        grid-row: 4 / 5;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        max-width: none;
        height: auto;
        border-radius: 0;
        position: relative;
        z-index: 1;
        margin-block: 0;
        margin-top: 3rem;

        & img {
            width: 100%;
            max-width: none;
            height: auto;
            border-radius: 0;
            position: relative;
            z-index: 1;
        }
    }

}

/* --------------------------------------------------------------------------
   SOLUTION 1：ライトグレー背景
   -------------------------------------------------------------------------- */

#sectionSolution:after {
    content: "";
    display: block;
    margin-inline: auto;
    max-width: 1200px;
    width: 100%;
    height: 1px;
    background: var(--colorBgMidGray);
}

.sectionSolutionOne {
    background: var(--colorBgLightGray);

    .sectionInner {
        padding-bottom: 5rem;
    }
}

.solutionOneHead {
    position: relative;
    margin-bottom: 8rem;

    @media (max-width: 768px) {
        margin-bottom: 4rem;
    }
}

.solutionBadge {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.solutionBadgeInner {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 192px;
    max-height: 192px;
    width: 20vw;
    height: 20vw;
    border-radius: 50%;
    background: var(--colorBlue);
    color: var(--colorBgWhite);
    font-family: var(--fontNoto);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    padding: 0.5rem;
    box-shadow: 0 8px 24px rgba(0, 124, 170, 0.25);
    font-size: 1.25rem;

    & .markYellow {
        font-family: var(--fontOswald);
        font-size: 3rem;
        font-weight: 700;
        color: var(--colorYellow);
        font-feature-settings: "palt";
    }
}

.solutionFeatureImageFig {
    position: absolute;
    top: -120px;
    right: -20%;
    max-width: 360px;
}


.solutionOneGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 3.5rem);
    align-items: center;
}

.solutionFeatureList {
    list-style: none;
    margin: 0;
    padding: 0;
}

.solutionFeatureItem {
    position: relative;
    padding: 1.1rem 1rem 1.1rem 3rem;
    font-weight: 500;
    background: var(--colorBgGray);
    margin-bottom: 1rem;

    &::before {
        content: "";
        position: absolute;
        left: 1.5rem;
        top: 50%;
        transform: translateY(-50%);
        width: 0.5rem;
        height: 0.5rem;
        background: var(--colorBlue);
        border-radius: 50%;
    }
}

.solutionFeatureItem:first-child {
    border-top: 1px solid #d8d8d8;
}

.solutionScreenFig {
    margin: 0;
}

.solutionScreenFig img {
    width: 100%;
    max-width: 480px;
    height: auto;
    margin-inline: auto;
    display: block;
    filter: drop-shadow(0 12px 32px rgba(0, 0, 0, 0.12));
}

@media (max-width: 768px) {
    .solutionBadge {
        top: 0;
        left: 0;
    }

    .solutionBadgeInner {
        width: clamp(60px, 18vw, 120px);
        height: clamp(60px, 18vw, 120px);
        font-size: clamp(0.5rem, 2vw, 1.25rem);

        & .markYellow {
            font-size: clamp(1.25rem, 2.5vw, 3rem);
        }
    }

    .solutionFeatureImageFig {
        top: 2.5rem;
        right: -4rem;
        margin: 0;

        & img {
            max-width: 200px;
        }
    }
}

/* --------------------------------------------------------------------------
   SOLUTION 2：ライトグレー＋中央ビジュアル
   -------------------------------------------------------------------------- */
.sectionSolutionTwo {
    background: var(--colorBgLightGray);

    .sectionInner {
        padding-top: 5rem;

        &:after {
            content: "";
            display: block;
            max-width: 1200px;
            width: 100%;
            margin-inline: auto;
            height: 1px;
            background: var(--colorBgGray);
        }
    }

}

.solutionTwoVisual {
    position: relative;
}

.solutionLaptopFig {
    margin: 0;
    position: relative;
    z-index: 1;
}

.solutionLaptopFig img {
    width: 100%;
    max-width: 1010px;
    height: auto;
    display: block;
    margin-inline: auto;
}

.solutionFloatCard {
    position: absolute;
    z-index: 2;
    max-width: 160px;
    padding: 0.65rem 0.85rem;
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--colorBgWhite);
    border: 2px solid var(--colorBlue);
    border-radius: 8px;
    box-shadow: var(--shadowSoft);
}

.solutionFloatCardLeft {
    left: 4%;
    top: 18%;
}

.solutionFloatCardRight {
    right: 4%;
    bottom: 22%;
}

/* --------------------------------------------------------------------------
   SUPPORT：ホワイト・4カラムカード
   -------------------------------------------------------------------------- */
.sectionSupport {
    background: var(--colorWhiteSoft2);

    &:after {
        content: "";
        display: block;
        max-width: 1200px;
        width: 100%;
        margin-inline: auto;
        height: 1px;
        background: var(--colorBgGray);
    }

    .sectionInner {
        padding-bottom: 5rem;
    }

}

.supportCardList {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 2rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.supportCard {
    height: 100%;
    background: var(--colorBgLightGray);
    border: 1px solid #e0e0e0;
    padding: 1.25rem 1.5rem 1.5rem;
    display: grid;
    grid-template-rows: subgrid;
    text-align: center;
}

.supportCardList li {
    flex-basis: calc(33.333333% - 2rem);

    @media (max-width: 768px) {
        flex-basis: 100%;
    }
}

.supportCardCaseNo {
    width: 100%;
    text-align: left;
    margin: 0;
    font-size: 0.875rem;
    font-family: var(--fontRoboto);

    &::before {
        content: "";
        display: inline-block;
        margin-right: 0.5rem;
        width: 0.5rem;
        height: 0.5rem;
        background: var(--colorBlue);
        border-radius: 50%;
    }

}

.supportCardText {
    background: var(--colorWhiteSoft2);
    font-size: 1rem;
    text-align: center;
    padding: 1rem 0.5rem;
    position: relative;
    font-feature-settings: "palt";

    &::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        border-style: solid;
        border-width: 16.1px 9.7px 0 9.7px;
        border-color: var(--colorWhiteSoft2) transparent transparent;
        translate: -50% 100%;
    }
}

.supportCardPhoto {
    width: 100%;
    max-width: 135px;
    height: auto;
    border-radius: 8px;
    margin-top: 1rem;
    margin-bottom: 1rem;
    margin-inline: auto;
}

.supportCardOffice {
    font-size: 0.875rem;
    margin-bottom: 0;
    font-feature-settings: "palt";
}

.supportCardName {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;

    &>.supportCardNameJob {
        font-size: 1rem;
        font-weight: 400;
    }
}

.supportCardIcon {
    padding-top: 2rem;
}

.supportIconPlaceholder {
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --------------------------------------------------------------------------
   TOOLS：白背景・2×3グリッド・アイコン
   -------------------------------------------------------------------------- */
.sectionTools {
    background: var(--colorWhiteSoft2);
}

.toolsHeaderInner {
    @media (max-width: 768px) {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2rem;
    }
}

.toolsFeatureImageFig {
    position: absolute;
    top: 5rem;
    left: -20%;
    max-width: 400px;

    @media screen and (max-width: 768px) {
        position: unset;
        top: unset;
        left: unset;
        max-width: 100%;
        margin-top: 2rem;
        transform: none;
        margin-inline: 0;

        & img {
            max-width: 100%;
        }
    }
}


.toolsTitle {
    margin: 0;
}

.toolsGridWrapper {
    background: var(--colorBgWhite);
    padding: 4rem 2rem;
}

.toolsGrid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    justify-items: center;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
}

.toolsItem {
    width: 100%;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    align-items: center;
    gap: 0;
    justify-items: center;

    border-right: 1px solid var(--colorBgGray);

    &:last-child {
        border-right: none;
    }

    @media (max-width: 768px) {
        &:nth-of-type(even) {
            border-right: none;
        }
    }
}

.toolsIcon {
    width: 68px;
    height: 68px;
}

.toolsItemTitle {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    text-align: center;
}

.toolsItemText {
    font-size: 0.875rem;
    color: var(--colorTextMuted);
    margin: 0;
    text-align: center;
}


/* --------------------------------------------------------------------------
   ACHIEVE：ミッドグレー・2カラム・棒グラフ
   -------------------------------------------------------------------------- */
.sectionAchieve {
    background: var(--colorBgMidGray);

    &:after {
        content: "";
        display: block;
        max-width: 1200px;
        width: 100%;
        margin-inline: auto;
        height: 1px;
        background: var(--colorBgGray);
        margin-top: 5rem;
    }

    .sectionInner {
        padding-bottom: 5rem;
    }

}

.achieveTitle {
    text-align: center;
    font-size: clamp(2rem, 2.4vw, 3.4rem);
    line-height: 1.5;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.achieveHighlight {
    color: var(--colorYellow);
    font-family: var(--fontOswald);
    font-size: 1.4em;
    font-weight: 700;
}

.achieveGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 3rem);
    align-items: center;
}

.achievePhotoFig {
    margin: 0;
}

.achievePhotoFig img {
    width: 100%;
    height: auto;
    border-radius: var(--radiusBubble);
    display: block;
}

.achieveChartWrap {
    padding: 1rem;
}

.achieveChart {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: clamp(0.65rem, 2vw, 1.25rem);
    min-height: 220px;
    padding: 1.5rem 1rem;
    background: rgba(255, 255, 255, 0.12);
    border-radius: var(--radiusBubble);
}

.achieveChartBar {
    position: relative;
    width: clamp(36px, 8vw, 52px);
    height: 200px;
    background: rgba(255, 255, 255, 0.35);
    border-radius: 4px 4px 0 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.achieveChartBar::after {
    content: "";
    display: block;
    width: 100%;
    height: var(--barHeight, 40%);
    background: var(--colorBgWhite);
    border-radius: 4px 4px 0 0;
}

.achieveChartBarAccent::after {
    background: var(--colorYellow);
}

.achieveChartBadge {
    position: absolute;
    top: -2.25rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--colorYellow);
    color: var(--colorText);
    font-family: var(--fontRoboto);
    font-size: 0.8125rem;
    font-weight: 700;
    padding: 0.35rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* --------------------------------------------------------------------------
   CONTACT：中グレー背景・白ラベル・白入力（Contact Form 7 クラス互換）
   -------------------------------------------------------------------------- */
.sectionContact {
    background: var(--colorBgMidGray);
}

h2.contactSectionTitle {
    text-align: center;
    font-size: clamp(1.5rem, 6vw, 3.4rem);
    line-height: 1.5;
    margin-inline: auto;
    margin-bottom: 0;
}



.sectionContact .sectionTitleInner .contactSubTitleInner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    @media (max-width: 768px) {
        flex-direction: column;
        gap: 0;
    }
    &>p {
        margin: 0;
        font-weight: 700;
        font-size: clamp(1.5rem, 2.2vw, 2rem);
        color: var(--colorWhite);
        display: flex;
        align-items: center;
        text-align: center;
        gap: 1rem;
    }
}

.sectionContact .sectionTitleInner .contactSubTitleInner > p.limitText {
    justify-content: center;
    line-height: 1.5;
    background: var(--colorYellow);
    color: var(--colorText);
    font-size: 1.5rem;
    padding: 0.25rem 0.5rem;
    margin-block: 1rem;
    border-radius: 50%;
    line-height: 1.2;
    width: 6rem;
    height: 6rem;

    @media (max-width: 768px) {
        display: flex;
        width: 100%;
        height: unset;
        border-radius: unset;
    }
}

.sectionContact .sectionMainText {
    color: var(--colorWhite);
}

/* CF7 の .wpcf7 ラッパー：カードなし・セクション背景の上にフォームのみ */
.sectionContact .wpcf7 {
    max-width: 800px;
    margin-inline: auto;
    padding: 0 clamp(0.5rem, 2vw, 0);
}

/* フォーム本体（CF7 既定クラス wpcf7-form + テーマ識別子 mkContactForm） */
.mkContactForm {
    margin: 0;
}

/* 1行分のラッパー（CF7管理画面でも同じ div をマークアップに含める） */
.mkCf7FormRow {
    margin-bottom: 2rem;
}

/* ラベルは入力の直上・白文字 */
.mkCf7Label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.4rem;
    color: var(--colorWhite);
    line-height: 1.5;
}

/* CF7 が付与するラップ要素はブロック化して幅100% */
.mkContactForm .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* テキスト系コントロール：白背景・角丸・プレースホルダは薄いグレー */
.mkContactForm .mkCf7Input,
.mkContactForm input.wpcf7-form-control.wpcf7-text,
.mkContactForm input.wpcf7-form-control.wpcf7-email,
.mkContactForm input.wpcf7-form-control.wpcf7-tel {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    font-family: var(--fontNoto);
    font-size: 1rem;
    line-height: 1.5;
    padding: 1rem 0.9rem;
    border: none;
    background: var(--colorBgWhite);
    color: var(--colorText);
    transition: box-shadow var(--transitionFast);
}

.mkContactForm .mkCf7Input::placeholder,
.mkContactForm input.wpcf7-form-control::placeholder {
    color: #b0b0b0;
    opacity: 1;
}

.mkContactForm .mkCf7Input:focus-visible,
.mkContactForm input.wpcf7-form-control:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.45);
}

/* 郵便番号のみ幅を約1/3（CF7 で control-wrap に data-name="postal-code" が付く想定） */
.mkCf7FormRowPostal .wpcf7-form-control-wrap {
    max-width: min(100%, 12.5rem);
}

@media (max-width: 480px) {
    .mkCf7FormRowPostal .wpcf7-form-control-wrap {
        max-width: 100%;
    }
}

.mkContactForm .wpcf7-list-item {
    margin: 0;
}

/* CF7 バリデーションエラー時の赤枠（プラグイン既定の .wpcf7-not-valid ） */
.mkContactForm .wpcf7-not-valid {
    box-shadow: inset 0 0 0 2px #d63638;
}

/* 同意チェック：中央寄せ・白テキスト */
.mkCf7AcceptanceRow {
    display: flex;
    justify-content: center;
    margin-top: 1.35rem;
    margin-bottom: 0.25rem;
    text-align: left;
}

.mkCf7AcceptanceRow .wpcf7-form-control-wrap {
    width: auto;
}

.mkCf7AcceptanceRow .wpcf7-acceptance label {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.45rem;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--colorWhite);
    line-height: 1.5;
}

/* チェックボックス本体：白背景のボックス（カンプの白いチェックに近づける） */
.mkCf7AcceptanceInput {
    margin-top: 0.2rem;
    flex-shrink: 0;
    width: 1.1rem;
    height: 1.1rem;
    cursor: pointer;
    background-color: var(--colorWhite);
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 3px;
    accent-color: var(--colorContactSubmit);
    vertical-align: top;
}

/* 「取扱」リンク：下線（カンプ） */
.mkCf7PrivacyLink {
    color: var(--colorWhite);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.mkCf7PrivacyLink:hover,
.mkCf7PrivacyLink:focus-visible {
    opacity: 0.9;
}

/* 送信ボタンエリア */
.mkCf7SubmitWrap {
    margin: 1.5rem 0 0;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    flex-direction: column;
}

/* button または CF7 の input[type=submit] 両対応 */
.mkCf7Submit,
.mkContactForm input.wpcf7-submit.mkCf7Submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-family: var(--fontNoto);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--colorWhite);
    background: var(--colorContactSubmit);
    border: none;
    border-radius: 6px;
    padding: 1.5rem;
    min-width: min(100%, 30rem);
    cursor: pointer;
    transition: filter var(--transitionFast), transform var(--transitionFast);
    box-sizing: border-box;
}

.mkCf7Submit:hover,
.mkCf7Submit:focus-visible,
.mkContactForm input.wpcf7-submit.mkCf7Submit:hover,
.mkContactForm input.wpcf7-submit.mkCf7Submit:focus-visible {
    filter: brightness(1.06);
    transform: translateY(-1px);
}

.mkCf7Submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.mkCf7SubmitText {
    display: inline-block;
}

.mkCf7SubmitArrow {
    display: inline-block;
    font-weight: 700;
}

/* CF7 が input のみ出力する場合はラベル文言に「→」を含めるか、以下で余白のみ調整 */
.mkContactForm input.wpcf7-submit.mkCf7Submit {
    font-family: var(--fontNoto);
}

/* フッターノート：小さめの白文字 */
.mkCf7Footnote {
    margin: 1rem 0 0;
    text-align: center;
    color: var(--colorWhite);
    line-height: 1.6;
}

/* CF7 送信中スピナー用クラス（プラグインが付与する場合のレイアウト崩れ防止） */
.mkCf7Submit.has-spinner {
    position: relative;
}

/* --------------------------------------------------------------------------
   フッター：ダーク・左ブランド・右4カラム
   -------------------------------------------------------------------------- */
.siteFooter {
    background: var(--colorFooter);
    color: var(--colorWhite);
    padding-top: 2.5rem;
    margin-top: auto;
}

.siteFooterGrid {
    padding-bottom: 2rem;
}

.siteFooterAddress {
    font-style: normal;
    font-size: 0.875rem;
    line-height: 1.85;
}

.siteFooterCompany {
    font-weight: 700;
}

.siteFooterLink {
    color: var(--colorYellow);
    text-decoration: none;
}

.siteFooterLink:hover,
.siteFooterLink:focus-visible {
    text-decoration: underline;
}

.siteFooterNavCols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;

    & ._04 {
        grid-column: 2/3;
        grid-row: 2/3;
    }

    & ._05 {
        grid-column: 3/4;
        grid-row: 2/3;
    }
}

.siteFooterNavTitle {
    font-family: var(--fontRoboto);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 0;
    display: flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: space-between;

    &:after {
        content: "";
        display: block;
        flex: 1;
        width: 100%;
        height: 1px;
        background: var(--colorWhite);
    }
}

.siteFooterNavList {
    list-style: none;
    margin: 0;
    padding: 0;
}

.siteFooterNavList li {
    margin-bottom: 0.45rem;
}

.siteFooterNavList a {
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.875rem;
    text-decoration: none;
}

.siteFooterNavList a:hover,
.siteFooterNavList a:focus-visible {
    color: var(--colorYellow);
}

.siteFooterBottom {
    padding-block: 1.25rem;
}

.siteFooterCopy {
    margin: 0;
    /* text-align: center; */
    font-size: 0.875rem;
    color: var(--colorWhite);
}

/* --------------------------------------------------------------------------
   スクロールアニメーション
   -------------------------------------------------------------------------- */
[data-anim] {
    opacity: 0;
    transition: opacity 0.7s ease, transform 0.7s ease;
}

[data-anim="fade-up"] {
    transform: translateY(40px);
}

[data-anim="fade-left"] {
    transform: translateX(-40px);
}

[data-anim="fade-right"] {
    transform: translateX(40px);
}

[data-anim="fade-up"].is-visible,
[data-anim="fade-left"].is-visible,
[data-anim="fade-right"].is-visible {
    opacity: 1;
    transform: none;
}

[data-anim="fade-in"].is-visible {
    opacity: 1;
}

/* prefers-reduced-motion: アニメーション無効化 */
@media (prefers-reduced-motion: reduce) {
    [data-anim] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

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

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

    .solutionFloatCard {
        display: none;
    }

    .supportCardList {
        grid-template-columns: repeat(2, 1fr);
    }

    .toolsGrid {
        grid-template-columns: repeat(2, 1fr);
        row-gap: 2rem;
    }

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

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

    .siteFooterNavCols {
        grid-template-columns: 1fr;

        & ._04 {
            grid-column: unset;
            grid-row: unset;
        }

        & ._05 {
            grid-column: unset;
            grid-row: unset;
        }
    }
}

@media (max-width: 768px) {

    .siteHeaderLogoLink {
        flex: 1;
    }

    .siteHeaderLogoImg {
        max-height: 32px;
        width: auto;
        padding-left: 1rem;
    }

    .siteHeaderNav {
        gap: 0.5rem 1rem;
    }

    .siteHeaderTextLink {
        font-size: 0.8125rem;
        gap: 0;
    }

    .buttonCtaHeader {
        font-size: 0.7rem;
        font-weight: 400;
        line-height: 1.2;
        padding: 0.5rem 1rem;
    }


    .heroTextCol {
        display: contents;
    }

    .heroTextColInner {
        order: 1;
    }

    .heroVisualCol {
        order: 2;
    }

    .heroStats {
        order: 3;
    }

    .heroCtaWrap {
        order: 4;
        margin-top: 2rem;
    }

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

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

    .siteHeaderInner {
        margin-inline: 0;
        width: 100%;
        padding: 0;
    }

    .siteHeaderNav {
        justify-content: space-between;
    }
}