/* ==========================================================================
   GTConnect 求人掲載（無料）ランディングページ
   納品用CSS（WordPress 独自プラグイン組み込み用）
   - ネイティブCSSネスト構文を使用
   - 最上位セレクタは .gtc_lp_01 のみ
   - グローバルセレクタ（html / body / :root など）は使用しない
   - 外部CSSフレームワークは使用しない
   ========================================================================== */

.gtc_lp_01 {
    /* ---- デザイントークン（.gtc_lp_01 内で定義） ---- */
    --gtc-lp-01-blue: #0f7cd7;
    --gtc-lp-01-blue-dark: #0a5fa8;
    --gtc-lp-01-cyan: #22b0d9;
    --gtc-lp-01-light: #eaf5fd;
    --gtc-lp-01-light-2: #f6fbff;
    --gtc-lp-01-border: #d5e6f3;
    --gtc-lp-01-text: #2b3947;
    --gtc-lp-01-muted: #5d6f80;
    --gtc-lp-01-radius: 16px;
    --gtc-lp-01-shadow: 0 10px 28px rgba(15, 124, 215, 0.08);
    --gtc-lp-01-shadow-hover: 0 16px 34px rgba(15, 124, 215, 0.16);
    --gtc-lp-01-width: 1140px;

    /* ---- ベース ---- */
    width: 100%;
    width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    margin: 0;
    padding: 0;
    background-color: #ffffff;
    color: var(--gtc-lp-01-text);
    font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN",
        "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, sans-serif;
    font-size: 16px;
    line-height: 1.9;
    letter-spacing: 0.02em;
    text-align: left;
    overflow-x: hidden;

    /* このセクション内部だけにリセットを適用 */
    * {
        box-sizing: border-box;
    }

    h2,
    h3,
    p,
    figure,
    ul,
    ol,
    li,
    dl,
    dt,
    dd {
        margin: 0;
        padding: 0;
    }

    ul,
    ol {
        list-style: none;
    }

    img {
        display: block;
        max-width: 100%;
        height: auto;
        border: 0;
    }

    /* ------------------------------------------------------------------
       共通パーツ
       ------------------------------------------------------------------ */

    /* 英語の小見出し */
    .gtc_lp_01__sub {
        display: inline-block;
        color: var(--gtc-lp-01-cyan);
        font-size: 13px;
        font-weight: 700;
        line-height: 1.4;
        letter-spacing: 0.22em;
        text-transform: uppercase;
    }

    /* 見出しブロック */
    .gtc_lp_01__head {
        max-width: 760px;
        margin: 0 auto;
        text-align: center;
    }

    .gtc_lp_01__title {
        margin-top: 14px;
        color: var(--gtc-lp-01-text);
        font-size: 32px;
        font-weight: 700;
        line-height: 1.5;
        letter-spacing: 0.02em;
        text-align: center;
    }

    .gtc_lp_01__lead {
        margin-top: 20px;
        color: var(--gtc-lp-01-muted);
        font-size: 16px;
        line-height: 2;
        text-align: left;
    }

    /* CTAボタン */
    .gtc_lp_01__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        min-width: 300px;
        padding: 19px 42px;
        border: 0;
        border-radius: 999px;
        background-image: linear-gradient(135deg, var(--gtc-lp-01-blue) 0%, var(--gtc-lp-01-cyan) 100%);
        color: #ffffff;
        font-family: inherit;
        font-size: 17px;
        font-weight: 700;
        line-height: 1.4;
        letter-spacing: 0.04em;
        text-align: center;
        text-decoration: none;
        box-shadow: 0 12px 26px rgba(15, 124, 215, 0.28);
        transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;

        /* 矢印 */
        &::after {
            content: "";
            flex: 0 0 auto;
            width: 9px;
            height: 9px;
            margin-top: -2px;
            border-top: 2px solid #ffffff;
            border-right: 2px solid #ffffff;
            transform: rotate(45deg);
        }

        &:hover {
            transform: translateY(-2px);
            box-shadow: 0 18px 32px rgba(15, 124, 215, 0.34);
            filter: brightness(1.06);
        }

        &:focus-visible {
            outline: 3px solid rgba(15, 124, 215, 0.4);
            outline-offset: 3px;
        }
    }

    /* ------------------------------------------------------------------
       SECTION 01｜メインビジュアル
       ------------------------------------------------------------------ */
    .gtc_lp_01__hero {
        position: relative;
        padding: 84px 20px 76px;
        background-image:
            radial-gradient(circle at 86% 10%, rgba(34, 176, 217, 0.22), rgba(34, 176, 217, 0) 44%),
            radial-gradient(circle at 4% 92%, rgba(15, 124, 215, 0.14), rgba(15, 124, 215, 0) 42%),
            linear-gradient(160deg, #f3faff 0%, #e7f3fd 55%, #ffffff 100%);
        overflow: hidden;

        /* 幾何学模様（ドット） */
        &::before {
            content: "";
            position: absolute;
            inset: 0;
            background-image: radial-gradient(rgba(15, 124, 215, 0.13) 1.5px, rgba(15, 124, 215, 0) 1.5px);
            background-size: 22px 22px;
            -webkit-mask-image: linear-gradient(115deg, #000000 0%, rgba(0, 0, 0, 0) 58%);
            mask-image: linear-gradient(115deg, #000000 0%, rgba(0, 0, 0, 0) 58%);
            pointer-events: none;
        }

        .gtc_lp_01__hero-inner {
            position: relative;
            z-index: 1;
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
            align-items: center;
            gap: 52px;
            max-width: var(--gtc-lp-01-width);
            margin: 0 auto;
        }

        .gtc_lp_01__hero-title {
            margin-top: 16px;
            color: #1d2b38;
            font-size: 44px;
            font-weight: 700;
            line-height: 1.4;
            letter-spacing: 0.01em;
        }

        .gtc_lp_01__hero-catch {
            margin-top: 22px;
            color: var(--gtc-lp-01-blue-dark);
            font-size: 20px;
            font-weight: 700;
            line-height: 1.7;
        }

        .gtc_lp_01__hero-text {
            margin-top: 16px;
            color: var(--gtc-lp-01-muted);
            font-size: 16px;
            line-height: 2;
        }

        .gtc_lp_01__hero-cta {
            margin-top: 34px;
        }

        .gtc_lp_01__hero-figure {
            position: relative;
        }

        .gtc_lp_01__hero-img {
            width: 100%;
            aspect-ratio: 16 / 11;
            object-fit: cover;
            border-radius: 20px;
            box-shadow: 0 20px 40px rgba(21, 84, 138, 0.16);
        }

        /* 写真の下のアクセント */
        .gtc_lp_01__hero-figure::after {
            content: "";
            position: absolute;
            right: -18px;
            bottom: -18px;
            z-index: -1;
            width: 62%;
            height: 62%;
            border-radius: 20px;
            background-image: linear-gradient(135deg, rgba(34, 176, 217, 0.22), rgba(15, 124, 215, 0.1));
        }
    }

    /* ------------------------------------------------------------------
       SECTION 02｜GTConnectの求人掲載について
       ------------------------------------------------------------------ */
    .gtc_lp_01__features {
        padding: 92px 20px;
        background-color: #ffffff;

        .gtc_lp_01__cards {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 28px;
            max-width: var(--gtc-lp-01-width);
            margin: 56px auto 0;
        }

        .gtc_lp_01__card {
            position: relative;
            padding: 42px 32px 38px;
            border: 1px solid var(--gtc-lp-01-border);
            border-radius: var(--gtc-lp-01-radius);
            background-image: linear-gradient(180deg, var(--gtc-lp-01-light-2) 0%, #ffffff 62%);
            box-shadow: var(--gtc-lp-01-shadow);
            overflow: hidden;
            transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;

            &:hover {
                transform: translateY(-4px);
                border-color: rgba(15, 124, 215, 0.35);
                box-shadow: var(--gtc-lp-01-shadow-hover);
            }
        }

        /* 大きな番号（背景装飾） */
        .gtc_lp_01__card-num {
            position: absolute;
            top: 14px;
            right: 20px;
            color: rgba(15, 124, 215, 0.1);
            font-size: 56px;
            font-weight: 700;
            line-height: 1;
            letter-spacing: 0.02em;
            pointer-events: none;
        }

        .gtc_lp_01__card-icon {
            display: grid;
            place-items: center;
            width: 62px;
            height: 62px;
            border-radius: 16px;
            background-image: linear-gradient(135deg, var(--gtc-lp-01-blue) 0%, var(--gtc-lp-01-cyan) 100%);
            color: #ffffff;
            box-shadow: 0 10px 20px rgba(15, 124, 215, 0.22);

            svg {
                width: 30px;
                height: 30px;
                display: block;
            }
        }

        .gtc_lp_01__card-title {
            margin-top: 24px;
            color: var(--gtc-lp-01-text);
            font-size: 20px;
            font-weight: 700;
            line-height: 1.6;
        }

        .gtc_lp_01__card-text {
            margin-top: 12px;
            color: var(--gtc-lp-01-muted);
            font-size: 15px;
            line-height: 1.95;
        }
    }

    /* ------------------------------------------------------------------
       SECTION 03｜私たちの想い（Our Vision）
       ------------------------------------------------------------------ */
    .gtc_lp_01__vision {
        padding: 92px 20px;
        background-image: linear-gradient(180deg, #ffffff 0%, #f3faff 100%);

        .gtc_lp_01__vision-lead {
            margin-top: 20px;
            color: var(--gtc-lp-01-blue-dark);
            font-size: 17px;
            font-weight: 700;
            line-height: 1.9;
        }

        .gtc_lp_01__vision-inner {
            display: grid;
            grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
            align-items: center;
            gap: 56px;
            max-width: var(--gtc-lp-01-width);
            margin: 56px auto 0;
        }

        .gtc_lp_01__vision-text {
            p {
                color: var(--gtc-lp-01-muted);
                font-size: 16px;
                line-height: 2.1;

                +p {
                    margin-top: 22px;
                }
            }
        }

        /* 写真コラージュ（横長1枚＋正方形2枚） */
        .gtc_lp_01__vision-gallery {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 16px;
        }

        .gtc_lp_01__vision-photo {
            overflow: hidden;
            border-radius: 18px;
            background-color: var(--gtc-lp-01-light);
            box-shadow: var(--gtc-lp-01-shadow);

            img {
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 1 / 1;
                object-fit: cover;
                object-position: center;
            }
        }

        /* 横幅いっぱいに広がる横長写真 */
        .gtc_lp_01__vision-photo--wide {
            grid-column: 1 / -1;

            img {
                aspect-ratio: 16 / 10;
            }
        }

        .gtc_lp_01__vision-close {
            max-width: 760px;
            margin: 56px auto 0;
            padding: 26px 32px;
            border: 1px solid var(--gtc-lp-01-border);
            border-radius: var(--gtc-lp-01-radius);
            background-color: rgba(255, 255, 255, 0.85);
            color: var(--gtc-lp-01-blue-dark);
            font-size: 18px;
            font-weight: 700;
            line-height: 1.9;
            text-align: center;
            box-shadow: var(--gtc-lp-01-shadow);
        }
    }

    /* ------------------------------------------------------------------
       SECTION 04｜求人掲載までの流れ
       ------------------------------------------------------------------ */
    .gtc_lp_01__flow {
        padding: 92px 20px;
        background-color: var(--gtc-lp-01-light-2);
        border-top: 1px solid var(--gtc-lp-01-border);
        border-bottom: 1px solid var(--gtc-lp-01-border);

        .gtc_lp_01__steps {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 32px;
            max-width: 1040px;
            margin: 60px auto 0;
        }

        .gtc_lp_01__step {
            position: relative;
            text-align: center;
            padding: 0 8px;

            /* ステップ間をつなぐ線 */
            &::before {
                content: "";
                position: absolute;
                top: 38px;
                left: calc(50% + 56px);
                width: calc(100% - 112px + 32px);
                height: 2px;
                background-image: linear-gradient(90deg, rgba(15, 124, 215, 0.35), rgba(34, 176, 217, 0.2));
            }

            &:last-child::before {
                display: none;
            }

            @media (max-width:991.98px) {
                &::before {
                    display: none;
                }
            }
        }

        .gtc_lp_01__step-num {
            position: relative;
            z-index: 1;
            display: grid;
            place-items: center;
            width: 78px;
            height: 78px;
            margin: 0 auto 20px;
            border: 2px solid rgba(15, 124, 215, 0.22);
            border-radius: 50%;
            background-color: #ffffff;
            color: var(--gtc-lp-01-blue);
            font-size: 30px;
            font-weight: 700;
            line-height: 1;
            letter-spacing: 0.04em;
            box-shadow: 0 8px 18px rgba(15, 124, 215, 0.12);
        }

        .gtc_lp_01__step-label {
            color: var(--gtc-lp-01-cyan);
            font-size: 12px;
            font-weight: 700;
            letter-spacing: 0.2em;
            text-transform: uppercase;
        }

        .gtc_lp_01__step-title {
            margin-top: 8px;
            color: var(--gtc-lp-01-text);
            font-size: 20px;
            font-weight: 700;
            line-height: 1.6;
            text-align: center;
        }

        .gtc_lp_01__step-text {
            margin-top: 10px;
            color: var(--gtc-lp-01-muted);
            font-size: 15px;
            line-height: 1.95;
        }
    }

    /* ------------------------------------------------------------------
       SECTION 05｜よくあるご質問
       ------------------------------------------------------------------ */
    .gtc_lp_01__faq-section {
        padding: 92px 20px;
        background-color: #ffffff;

        .gtc_lp_01__faq {
            max-width: 860px;
            margin: 52px auto 0;
            border-top: 1px solid var(--gtc-lp-01-border);
        }

        .gtc_lp_01__faq-item {
            padding: 28px 4px 30px;
            border-bottom: 1px solid var(--gtc-lp-01-border);
        }

        .gtc_lp_01__faq-q {
            display: flex;
            align-items: flex-start;
            gap: 16px;
            color: var(--gtc-lp-01-text);
            font-size: 17px;
            font-weight: 700;
            line-height: 1.8;
        }

        .gtc_lp_01__faq-a {
            display: flex;
            align-items: flex-start;
            gap: 16px;
            margin-top: 14px;
            color: var(--gtc-lp-01-muted);
            font-size: 15px;
            line-height: 1.95;
        }

        .gtc_lp_01__faq-mark {
            flex: 0 0 auto;
            display: grid;
            place-items: center;
            width: 34px;
            height: 34px;
            border-radius: 50%;
            font-size: 15px;
            font-weight: 700;
            line-height: 1;
        }

        .gtc_lp_01__faq-q .gtc_lp_01__faq-mark {
            background-image: linear-gradient(135deg, var(--gtc-lp-01-blue) 0%, var(--gtc-lp-01-cyan) 100%);
            color: #ffffff;
        }

        .gtc_lp_01__faq-a .gtc_lp_01__faq-mark {
            background-color: var(--gtc-lp-01-light);
            color: var(--gtc-lp-01-blue-dark);
        }
    }

    /* ------------------------------------------------------------------
       SECTION 06｜お問い合わせ誘導
       ------------------------------------------------------------------ */
    .gtc_lp_01__cta-section {
        position: relative;
        padding: 92px 20px 96px;
        background-image: linear-gradient(160deg, #e9f5fe 0%, #ddeffb 100%);
        overflow: hidden;

        &::before {
            content: "";
            position: absolute;
            inset: 0;
            background-image: radial-gradient(rgba(15, 124, 215, 0.12) 1.5px, rgba(15, 124, 215, 0) 1.5px);
            background-size: 24px 24px;
            -webkit-mask-image: radial-gradient(circle at 50% 40%, #000000 0%, rgba(0, 0, 0, 0) 68%);
            mask-image: radial-gradient(circle at 50% 40%, #000000 0%, rgba(0, 0, 0, 0) 68%);
            pointer-events: none;
        }

        .gtc_lp_01__cta-inner {
            position: relative;
            z-index: 1;
            max-width: 720px;
            margin: 0 auto;
            text-align: center;
        }

        .gtc_lp_01__cta-title {
            margin-top: 14px;
            color: #1d2b38;
            font-size: 30px;
            font-weight: 700;
            line-height: 1.6;
        }

        .gtc_lp_01__cta-text {
            margin-top: 18px;
            color: var(--gtc-lp-01-muted);
            font-size: 16px;
            line-height: 2;
        }

        .gtc_lp_01__cta-button {
            margin-top: 34px;
        }

        .gtc_lp_01__btn {
            min-width: 340px;
            padding: 21px 48px;
            font-size: 18px;
        }
    }

    /* ------------------------------------------------------------------
       レスポンシブ
       ------------------------------------------------------------------ */
    @media (max-width: 1080px) {
        .gtc_lp_01__hero {
            padding: 72px 20px 68px;

            .gtc_lp_01__hero-inner {
                gap: 36px;
            }

            .gtc_lp_01__hero-title {
                font-size: 38px;
            }
        }

        .gtc_lp_01__vision {
            .gtc_lp_01__vision-inner {
                gap: 40px;
            }
        }

        .gtc_lp_01__vision,
        .gtc_lp_01__features,
        .gtc_lp_01__flow,
        .gtc_lp_01__faq-section,
        .gtc_lp_01__cta-section {
            padding-top: 76px;
            padding-bottom: 78px;
        }
    }

    @media (max-width: 900px) {
        .gtc_lp_01__vision {
            .gtc_lp_01__vision-inner {
                grid-template-columns: 1fr;
                gap: 36px;
                max-width: 620px;
                margin-top: 44px;
            }

            .gtc_lp_01__vision-close {
                margin-top: 44px;
            }
        }

        .gtc_lp_01__features {
            .gtc_lp_01__cards {
                grid-template-columns: 1fr;
                max-width: 620px;
                gap: 22px;
                margin-top: 44px;
            }

            .gtc_lp_01__card {
                padding: 34px 26px 32px;
            }
        }

        .gtc_lp_01__flow {
            .gtc_lp_01__steps {
                grid-template-columns: 1fr;
                max-width: 560px;
                gap: 0;
                margin-top: 40px;
            }

            .gtc_lp_01__step {
                padding: 0 0 34px;

                /* スマートフォンでは縦につなぐ線に切り替え */
                &::before {
                    top: 78px;
                    left: 50%;
                    width: 2px;
                    height: calc(100% - 78px);
                    transform: translateX(-50%);
                    background-image: linear-gradient(180deg, rgba(15, 124, 215, 0.32), rgba(34, 176, 217, 0.16));
                }

                &:last-child {
                    padding-bottom: 0;
                }
            }
        }
    }

    @media (max-width: 767px) {
        font-size: 15.5px;
        line-height: 1.85;

        .gtc_lp_01__sub {
            font-size: 12px;
            letter-spacing: 0.2em;
        }

        .gtc_lp_01__title {
            font-size: 25px;
        }

        .gtc_lp_01__lead {
            font-size: 15px;
            line-height: 1.95;
        }

        .gtc_lp_01__btn {
            width: 100%;
            min-width: 0;
            padding: 17px 24px;
            font-size: 16px;
        }

        .gtc_lp_01__hero {
            padding: 52px 20px 56px;

            .gtc_lp_01__hero-inner {
                grid-template-columns: 1fr;
                gap: 34px;
            }

            .gtc_lp_01__hero-title {
                margin-top: 12px;
                font-size: 29px;
            }

            .gtc_lp_01__hero-catch {
                margin-top: 18px;
                font-size: 17px;
            }

            .gtc_lp_01__hero-text {
                font-size: 15px;
                line-height: 1.95;
            }

            .gtc_lp_01__hero-cta {
                margin-top: 28px;
            }

            .gtc_lp_01__hero-img {
                aspect-ratio: 4 / 3;
                border-radius: 16px;
            }

            .gtc_lp_01__hero-figure::after {
                right: -10px;
                bottom: -10px;
            }
        }

        .gtc_lp_01__vision,
        .gtc_lp_01__features,
        .gtc_lp_01__flow,
        .gtc_lp_01__faq-section,
        .gtc_lp_01__cta-section {
            padding: 58px 20px 62px;
        }

        .gtc_lp_01__vision {
            .gtc_lp_01__vision-lead {
                font-size: 15.5px;
            }

            .gtc_lp_01__vision-inner {
                gap: 30px;
                margin-top: 36px;
            }

            .gtc_lp_01__vision-text {
                p {
                    font-size: 15px;
                    line-height: 2;

                    +p {
                        margin-top: 18px;
                    }
                }
            }

            .gtc_lp_01__vision-gallery {
                gap: 12px;
            }

            .gtc_lp_01__vision-photo {
                border-radius: 14px;
            }

            .gtc_lp_01__vision-close {
                margin-top: 36px;
                padding: 22px 20px;
                font-size: 16px;
            }
        }

        .gtc_lp_01__features {
            .gtc_lp_01__card-num {
                top: 16px;
                right: 18px;
                font-size: 46px;
            }

            .gtc_lp_01__card-title {
                font-size: 18px;
            }
        }

        .gtc_lp_01__flow {
            .gtc_lp_01__step-num {
                width: 68px;
                height: 68px;
                margin-bottom: 16px;
                font-size: 26px;
            }

            .gtc_lp_01__step {
                &::before {
                    top: 68px;
                    height: calc(100% - 68px);
                }
            }

            .gtc_lp_01__step-title {
                font-size: 18px;
            }
        }

        .gtc_lp_01__faq-section {
            .gtc_lp_01__faq {
                margin-top: 40px;
            }

            .gtc_lp_01__faq-item {
                padding: 22px 0 24px;
            }

            .gtc_lp_01__faq-q {
                gap: 12px;
                font-size: 16px;
            }

            .gtc_lp_01__faq-a {
                gap: 12px;
                font-size: 14.5px;
            }

            .gtc_lp_01__faq-mark {
                width: 30px;
                height: 30px;
                font-size: 14px;
            }
        }

        .gtc_lp_01__cta-section {
            .gtc_lp_01__cta-title {
                font-size: 23px;
            }

            .gtc_lp_01__cta-text {
                font-size: 15px;
            }

            .gtc_lp_01__cta-button {
                margin-top: 28px;
            }

            .gtc_lp_01__btn {
                min-width: 0;
                padding: 18px 24px;
                font-size: 17px;
            }
        }
    }

    /* アニメーションを抑制する設定への配慮 */
    @media (prefers-reduced-motion: reduce) {

        .gtc_lp_01__card,
        .gtc_lp_01__btn {
            transition: none;
        }

        .gtc_lp_01__card:hover,
        .gtc_lp_01__btn:hover {
            transform: none;
        }
    }
}