        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: 'Noto Sans JP', sans-serif;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            font-weight: 400;
        }

        .gradient-text {
            background: linear-gradient(45deg, #F97316, #EC4899);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .gradient-text-strong {
            background: linear-gradient(45deg, #EF4444, #D946EF);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .swiper-button-next,
        .swiper-button-prev {
            color: #F97316;
        }

        .font-responsive-h1 {
            font-size: clamp(2.25rem, 8vw, 3.35rem);
        }

        .font-responsive-h2 {
            font-size: clamp(1.85rem, 6vw, 2.75rem);
        }

        .font-responsive-h3 {
            font-size: clamp(1.5rem, 5vw, 2.25rem);
        }

        .animate-blob {
            animation: blob 7s infinite;
        }

        @keyframes blob {
            0% {
                transform: translate(0px, 0px) scale(1);
            }

            33% {
                transform: translate(30px, -50px) scale(1.1);
            }

            66% {
                transform: translate(-20px, 20px) scale(0.9);
            }

            100% {
                transform: translate(0px, 0px) scale(1);
            }
        }

        .course-card-clickable.is-active {
            box-shadow: 0 0 0 3px #F97316;
            transform: translateY(-2px);
        }

        .shadow-heavy {
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.05);
        }

        .border-heavy {
            border-width: 2px;
        }

        .feature-point-card {
            background-color: white;
            border-radius: 1rem;
            padding: 2rem;
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), 0 3px 6px rgba(0, 0, 0, 0.05);
            border: 1px solid #e5e7eb;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .feature-point-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.12), 0 5px 10px rgba(0, 0, 0, 0.08);
        }

        .feature-point-card img {
            border-radius: 10px;
        }

        .reskill {
            display: flex;
            align-items: center;
            width: 100%;
            margin: 20px auto;
        }

        .reskill-logo {
            width: 60%;
            margin-bottom: 10px;
        }

        .reskill-max {
            width: 40%;

        }


        /* フォーム */

        .contact-form {
            background-color: #FFF;
            border-top: 8px solid #cc0a0a;
        }

        .contact-form-inner {
            max-width: 1000px;
            margin: 0 auto;
            padding: 60px 4% 80px 4%;
        }

        .contact-form-title {
            font-weight: bold;
            font-size: 52px;
            letter-spacing: 0.05em;
            text-align: center;
            color: #cc0a0a;
            margin-bottom: 10px;
        }

        .contact-form-subtitle {
            font-weight: bold;
            font-size: 15px;
            line-height: 44px;
            text-align: center;
            color: #cc0a0a;
            margin-bottom: 40px;
        }

        /* タブ切換え */

        .contact-form .form-content {
            display: none;
        }

        .contact-form .form-content.hidden {
            display: none;
        }

        .contact-form .form-content:not(.hidden) {
            display: block;
        }

        .contact-form .tab {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 20px;
            margin-bottom: 55px;
        }

        .contact-form .tab-item {
            width: 430px;
            height: 53px;
            border-radius: 26.5px;
            font-weight: bold;
            font-size: 18px;
            text-align: center;
            background: #fff;
            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.25);
            box-sizing: border-box;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .contact-form .tab-experience.active {
            background: linear-gradient(to right, #c879fc 0%, #006cd8 100%);
            color: #fff;
        }

        .contact-form .tab-document.active {
            background: linear-gradient(to right, #f88733 0%, #cb0f0e 100%);
            color: #fff;
        }

        .contact-form .tab-item:hover {
            opacity: 0.5;
        }


        /* フォームの入力画面と共通設定 */
        .contact-form input {
            width: 100%;
            height: 56px;
            border-radius: 6px;
            background: #fff;
            border: 1px solid #aaa;
            font-size: 18px;
            line-height: 44px;
            padding: 15px;
            box-sizing: border-box;
            position: relative;
            font-family: "游ゴシック体", "游ゴシック", "Yu Gothic", sans-serif;
        }

        .contact-form input::placeholder {
            color: #CECECE;
            font-weight: normal;
        }

        .input-wide {
            width: 100% !important;
        }

        .input-max {
            width: 100% !important;
        }

        .input-short {
            width: 100% !important;
        }

        input[type="date"] {
            width: 100%;
            height: 56px;
            border-radius: 6px;
            background: #fff;
            border: 1px solid #aaa;
            font-size: 18px;
            line-height: 44px;
            padding: 15px;
            box-sizing: border-box;
            font-family: "游ゴシック体", "游ゴシック", "Yu Gothic", sans-serif;
            position: relative;
        }

        input[type="date"]::-webkit-calendar-picker-indicator {
            position: absolute;
            width: 100%;
            height: 100%;
            opacity: 0;
        }

        input[type="date"]::-webkit-inner-spin-button {
            -webkit-appearance: none;
        }

        input[type="date"]::-webkit-clear-button {
            -webkit-appearance: none;
        }

        input[type="date"]:focus {
            border-color: #4d90fe;
            outline: none;
        }

        input[type="date"]::after {
            content: '';
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%);
            width: 22px;
            height: 22px;
            background-image: url(../images/content/input_date_icon.svg);
            background-repeat: no-repeat;
            background-size: 22px 21px;
            pointer-events: none;
        }

        /* iPhone向けの調整 (input[type="date"]関連) */
        @media screen and (max-width: 820px) {

            input[type="date"],
            input[type="time"],
            input[type="datetime-local"] {
                -webkit-appearance: none;
            }

            input[type="date"]::-webkit-date-and-time-value,
            input[type="time"]::-webkit-date-and-time-value {
                text-align: left;
            }
        }

        .contact-form select {
            width: 100%;
            height: 56px;
            border-radius: 6px;
            background: #fff;
            border: 1px solid #aaa;
            padding: 15px;
            font-size: 18px;
            box-sizing: border-box;
            line-height: 22px;
            appearance: none;
            -webkit-appearance: none;
            -moz-appearance: none;
            background-image: url(../images/content/select_icon.svg);
            background-repeat: no-repeat;
            background-position: right 22px center;
            background-size: 22px 22px;
            padding-right: 30px;
        }

        .contact-form h3 {
            margin-top: 20px;
        }

        .contact-form h3,
        th,
        label {
            font-weight: bold;
            font-size: 18px;
            line-height: 44px;
            text-align: left;
        }

        .contact-form-wrapper {
            display: flex;
            gap: 15px;
            flex-wrap: wrap;
            justify-content: center;
        }

        .contact-form-unit {
            width: 100%;
        }

        .contact-form-unit-harf {
            width: calc(calc(100% - 15px) / 2);
        }

        .contact-form-group {
            display: block;
            width: 100%;
            flex-wrap: wrap;
            margin-bottom: 20px;
        }

        @media (min-width: 820px) {
            .contact-form-group {
                display: flex;
                margin-bottom: 20px;
            }
        }

        .contact-form-group:last-child {
            margin-bottom: 0;
        }

        .contact-form-wrapper label {
            flex-shrink: 0;
        }

        @media (min-width: 820px) {
            .contact-form-wrapper label {
                flex-shrink: 0;
            }
        }



        .contact-form table {
            width: 100%;
            table-layout: fixed;
            max-width: 1000px;
            border-collapse: collapse;
        }

        .contact-form td {
            width: 100%;
            font-size: 18px;
            line-height: 44px;
        }

        .contact-form td label {
            margin-right: 15px;
        }

        .contact-form td .contact-form-wrapper {
            display: flex;
            gap: 0;
        }

        .contact-form td .contact-form-wrapper-row {
            display: flex;
            gap: 15px;
        }

        @media (min-width: 1050px) {
            .contact-form td .contact-form-wrapper {
                gap: 20px;
                margin-bottom: 20px;
                flex-wrap: nowrap;
            }
        }

        .contact-form td .contact-form-container {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            width: 100%;
        }

        .contact-form td .contact-form-container-harf {
            width: calc(calc(100% - 15px) / 2);
        }

        .contact-form textarea {
            font-family: "游ゴシック体", "游ゴシック", "Yu Gothic", sans-serif;
            width: 100%;
            max-width: 1000px;
            height: 100px;
            font-size: 18px;
            line-height: 21px;
            border-radius: 6px;
            background: #fff;
            border: 1px solid #aaa;
            padding: 15px;
            box-sizing: border-box;
        }

        .contact-form textarea::placeholder {
            font-family: "游ゴシック体", "游ゴシック", "Yu Gothic", sans-serif;
            color: #CECECE;
            font-weight: normal;
            font-size: 16px;
        }

        .contact-form-policy {
            height: 222px;
            border-radius: 6px;
            background: #FFF;
            border: 1px solid #aaa;
            overflow-y: scroll;
            font-size: 14px;
            line-height: 21px;
            padding: 15px;
            font-family: "游ゴシック体", "游ゴシック", "Yu Gothic", sans-serif;
        }

        .contact-form-policy::-webkit-scrollbar {
            width: 15px;
            border-radius: 0 6px 6px 0;
            background-color: #FAFAFA;
        }

        .contact-form-policy::-webkit-scrollbar-thumb {
            width: 8px;
            height: 44px;
            background-color: #AAAAAA;
            border-radius: 20px;
            border: 4px solid #FAFAFA;
        }

        .contact-form-policy::-webkit-scrollbar-button {
            display: none;
        }

        .contact-form-policy * {
            scrollbar-width: thin;
            scrollbar-color: #AAAAAA #FAFAFA;
        }

        .contact-form-policy .policy-title-red {
            font-size: 16px;
            font-weight: bold;
            line-height: 21px;
            color: #CC0A0A;
            margin-bottom: 1em;
        }

        .contact-form-policy h4 {
            font-size: 16px;
            line-height: 21px;
            font-weight: bold;
            margin: 0;
        }

        .contact-form-policy p {
            line-height: 21px;
            font-size: 16px;
            font-weight: normal;
            margin: 0 0 1em 0;
        }

        .contact-form .form-btn {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 20px;
            flex-wrap: wrap;
        }

        .contact-form .form-btn-red {
            display: inline-block;
            background-color: #CC0A0A;
            color: #FFFFFF;
            border: none;
            border-radius: 7px;
            padding: 5px 5% 10px 5%;
            font-size: 22px;
            text-align: center;
            line-height: 1.3;
            cursor: pointer;
            position: relative;
            transition: all 0.3s;
            margin: 0 auto;
        }

        .contact-form .form-btn-red span {
            font-size: 13px;
            display: inline-block;
            line-height: 1.8;
            margin-bottom: 5px;
        }

        .contact-form .form-btn-red::after {
            content: '';
            position: absolute;
            bottom: 5%;
            right: 40px;
            transform: translateY(-50%);
            width: 20px;
            height: 20px;
            background-image: url(../images/content/btn_form_icon1.svg);
            background-repeat: no-repeat;
            background-size: contain;
        }

        .contact-form .form-btn-red:hover {
            transform: scale(1.05);
        }

        .contact-form .form-btn-red:hover::after {
            transform: translateY(-50%) scale(1.1);
        }

        .contact-form .form-btn-white {
            display: inline-block;
            background-color: #FFFFFF;
            color: #CC0A0A;
            border: 1px solid #CC0A0A;
            border-radius: 7px;
            padding: 0px 40px 10px 40px;
            font-size: 22px;
            text-align: center;
            line-height: 1.5;
            cursor: pointer;
            position: relative;
            transition: all 0.3s;
            margin: 0 auto;
        }

        .contact-form .form-btn-white::after {
            content: '';
            position: absolute;
            bottom: 15%;
            left: 40px;
            transform: translateY(-50%);
            width: 16px;
            height: 14px;
            background-image: url(../images/content/btn_form_icon2.svg);
            background-repeat: no-repeat;
            background-size: contain;
        }

        .contact-form .form-btn-white:hover {
            transform: scale(1.05);
        }

        .contact-form .form-btn-white:hover::after {
            transform: translateY(-50%) scale(1.1);
        }

        .contact-form .required {
            border-radius: 3px;
            background: #cc0a0a;
            color: #FFF;
            display: inline-block;
            font-size: 11px;
            line-height: 15px;
            vertical-align: middle;
            padding: 3.5px 7px 3px 7px;
            margin: 0 8px 4px 8px;
        }

        .contact-form .non-required {
            border-radius: 3px;
            background: #b2b2b2;
            color: #FFF;
            display: inline-block;
            font-size: 11px;
            line-height: 15px;
            vertical-align: middle;
            padding: 3.5px 7px 3px 7px;
            margin: 0 8px 4px 8px;
        }

        .contact-form .form-btn-br-sp {
            display: block;
        }

        @media (min-width: 450px) {
            .contact-form .form-btn-br-sp {
                display: none;
            }
        }

        /* ページ内リンク用の調整 */
        .experience-form {
            padding-top: 500px;
            margin-top: -500px;
        }

        .document-form {
            padding-top: 500px;
            margin-top: -500px;
        }

        /* 確認画面用の差分 */
        .contact-form-confirm {
            border-top: none;
            border-bottom: 18px solid #CC0A0A;
        }

        .contact-form-confirm-title {
            font-weight: bold;
            font-size: 40px;
            letter-spacing: 0.05em;
            text-align: center;
            color: #cc0a0a;
            margin-top: 40px;
            margin-bottom: 10px;
        }

        .contact-form-confirm label {
            line-height: 28px;
        }

        .contact-form-confirm .input-value {
            width: 100%;
            margin-bottom: 0;
        }

        .contact-form-confirm .input-wide {
            width: 100%;
        }

        .contact-form-confirm .input-short {
            width: 100%;
        }

        .contact-form-confirm .input-textarea {
            width: 100%;
        }

        .contact-form-confirm .form-btn-red {
            border-radius: 7px;
            padding: 10px 40px;
            width: 330px;
            height: 60px;
            margin: 0;
        }

        .contact-form-confirm .form-btn-red::after {
            content: '';
            position: absolute;
            bottom: 50%;
            right: 30px;
        }

        .contact-form-confirm .form-btn-white {
            border-radius: 7px;
            padding: 10px 40px;
            width: 330px;
            height: 60px;
            margin: 0;
        }

        .contact-form-confirm .form-btn-white::after {
            content: '';
            position: absolute;
            bottom: 50%;
            right: 30px;
        }

        /* 完了画面用の差分 */
        .contact-form-thanks .form-btn-red {
            display: flex;
            align-items: center;
            justify-content: center;
            margin-top: 20px;
        }

        a[href*="tel:"] {
            pointer-events: none;
            cursor: default;
        }

        @media (min-width: 1050px) {
            .contact-form-inner {
                padding: 60px 0 80px 0;
            }

            .contact-form-wrapper {
                gap: 15px;
                margin-bottom: 20px;
            }

            .contact-form-margin {
                margin-bottom: 40px !important;
            }

            .contact-form-group:last-child {
                margin-bottom: 0;
            }

            .contact-form h3 {
                line-height: 44px;
                margin-top: 0;
            }

            .contact-form td .contact-form-container {
                width: auto;
                max-width: 489px;
            }

            .contact-form-container {
                width: auto;
            }

            .contact-form td .contact-form-wrapper {
                gap: 20px;
                margin-bottom: 20px;
            }

            .contact-form-margin .contact-form-wrapper {
                margin-bottom: 0 !important;
            }

            .contact-form-unit {
                width: auto;
            }

            .contact-form input {
                width: 456px;
            }

            .input-wide {
                width: 489px !important;
            }

            .input-max {
                width: 100% !important;
            }

            .input-short {
                width: 400px !important;
            }

            .contact-form select {
                width: 421px;
            }

            *
            /* プロパティがないため無効なCSSルールですが、リクエストに基づき残します。 */

            /* ページ内リンク用の調整 */
            .experience-form {
                padding-top: 300px;
                margin-top: -300px;
            }

            .document-form {
                padding-top: 300px;
                margin-top: -300px;
            }

            /* 確認画面の差分 */
            .contact-form-confirm .input-value {
                width: 456px;
            }

            .contact-form-confirm .input-wide {
                width: 489px;
            }

            .contact-form-confirm .input-short {
                width: 400px;
            }

            .contact-form-confirm .input-textarea {
                width: 100%;
            }
        }