body {
    background-color: #EAFFF4;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-weight: 300;
}

h2,
h3 {
    color: #445752;
}

h2 {
    font-size: 60px;
}

h3 {
    font-size: 30px;
}

h4 {
    font-size: 28px;
}

h5 {
    font-size: 24px;
}

p {
    color: #000;
}

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

a {
    background-color: transparent;
    text-decoration: none;
    color: inherit;
}

body button {
    font-size: 20px;
    font-weight: bold;
}

main {
    transform: translateY(-150px);
}

.return_btn {
    width: 350px;
    height: 70px;
    margin: 0 auto;
    color: #445752;
    background-color: #fff;
    border: 1px solid #445752;
    border-radius: 50px;
    margin-top: 100px;
    margin-bottom: 150px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    font-weight: bold;
    transition: 0.2s;
}

.return_btn:hover {
    color: #fff;
    background-color: #445752;
    transition: 0.2s;
}

.title {
    text-align: center;
}

/* nav */
.hamburger-wrapper {
    position: fixed;
    top: 0;
    right: 0;
    width: 150px;
    height: 150px;
    z-index: 100;
    /* 繝翫ン繧医ｊ縺ｯ蠕後ｍ */
    cursor: pointer;
}

/* 邱壹�繝�じ繧､繝ｳ */
.hamburger-lines {
    position: absolute;
    top: 50px;
    right: 35px;
    z-index: 2;
    /* 閭梧勹繧医ｊ謇句燕 */
    pointer-events: none;
    /* 邱夊�菴薙�繧ｯ繝ｪ繝�け蛻､螳壹ｒ豸医＠縺ｦ隕ｪ縺ｫ莉ｻ縺帙ｋ */
}

.hamburger-lines span {
    display: block;
    width: 60px;
    height: 3px;
    background: #fff;
    margin-bottom: 12px;
    transition: all 0.4s ease;
    border-radius: 2px;
    transform-origin: center;
}

.hamburger-lines span:nth-child(3) {
    width: 35px;
    margin-left: auto;
}

/* ﾃ怜魂縺ｮ繧｢繝九Γ繝ｼ繧ｷ繝ｧ繝ｳ */
.hamburger-wrapper.is-active .hamburger-lines span:nth-child(1) {
    transform: translateY(15px) rotate(45deg);
}

.hamburger-wrapper.is-active .hamburger-lines span:nth-child(2) {
    opacity: 0;
}

.hamburger-wrapper.is-active .hamburger-lines span:nth-child(3) {
    width: 60px;
    transform: translateY(-15px) rotate(-45deg);
}

/* --- 2. 閭梧勹縺ｮ荳ｸ�医�繧ｿ繝ｳ縺ｮ荳ｭ縺ｫ縺ゅｋ�� --- */
.menu-bg {
    position: absolute;
    /* 隕ｪ(wrapper)縺ｫ蟇ｾ縺励※驟咲ｽｮ */
    top: 0;
    right: 0;
    width: 150px;
    height: 150px;
    background-color: #4D5854;
    border-bottom-left-radius: 100%;
    transform-origin: top right;
    z-index: 1;
    /* 邱�(2)繧医ｊ蠕後ｍ */
}

/* --- 3. 繝｡繝九Η繝ｼ縺ｮ譁�ｭ暦ｼ井ｸ逡ｪ謇句燕縺ｫ陦ｨ遉ｺ�� --- */
.global-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;

    /* 笘�％縺薙′隗｣豎ｺ縺ｮ骰ｵ�� */
    z-index: 101;
    /* 繝懊ち繝ｳ(100)繧医ｊ謇句燕縺ｫ蜃ｺ縺� */
    pointer-events: none;
    /* 騾乗�縺ｪ驛ｨ蛻��繧ｯ繝ｪ繝�け繧定ｲｫ騾壹＆縺帙ｋ�� */

    opacity: 0;
    visibility: hidden;
}

.menu_list {
    list-style: none;
    padding: 0;
    text-align: center;
}

.nuv_item {
    margin-bottom: 20px;
    font-family: "Miriam Libre", sans-serif;

}

.nuv_item a {
    display: block;
    font-size: 2rem;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    letter-spacing: 0.1em;
    transition: color 0.3s;

    /* 笘�㍾隕�ｼ壹Μ繝ｳ繧ｯ縺�縺代�繧ｯ繝ｪ繝�け縺ｧ縺阪ｋ繧医≧縺ｫ謌ｻ縺� */
    pointer-events: auto;
}

.nuv_item a span {
    display: block;
    font-size: 0.8rem;
    font-weight: normal;
    margin-top: 5px;
    opacity: 0.7;
}

.nuv_item a:hover {
    color: #5CC9A4;
}

.stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 40px;
    gap: 24px;
    /* 六角形が大きくなった分、少し広げる */
}

/* ===== 六角形 ===== */
.step {
    width: 150px;
    height: 150px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    color: #445752;
}

/* 背景用の大きな六角形（線のように見せる） */
.step::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #445752;
    /* 線の色 */
    clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
    z-index: 0;
    /* 背面 */
}

/* 内側の白い六角形 */
.step-inner {
    width: 142px;
    /* 外枠より少し小さめ */
    height: 142px;
    background: #fff;
    clip-path: polygon(50% 0%, 93.3% 25%, 93.3% 75%, 50% 100%, 6.7% 75%, 6.7% 25%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    z-index: 1;
}

/* 数字とラベル */
.step-num {
    font-size: 20px;
    font-weight: bold;
    line-height: 1;
}

.step-label {
    font-size: 28px;
    font-weight: bold;
    line-height: 1;
}

/* 進行済み・現在地 */
.step.done .step-inner,
.step.active .step-inner {
    background: #445752;
    color: #fff;
}

/* 現在地 */
.step.active {
    clip-path: polygon(50% 0%, 93.3% 25%, 93.3% 75%, 50% 100%, 6.7% 75%, 6.7% 25%);
    background: #445752;
    color: #fff;
}

/* ===== dots ===== */
.dots {
    display: flex;
    gap: 8px;
}

/* 点 */
.dots span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #445752;
}

/* 進行済み dots */
.dots.done span {
    background: #445752;
}

/* footer */
.footer {
    position: relative;
    padding: 100px 0 50px;
    background-color: #7AA08F;
    width: 100%;
    height: 100%;
    z-index: 1;
}

footer p {
    color: #fff;
}

.tree_wrap {
    position: absolute;

    max-width: 800px;
    height: 800px;
    left: 0;
    right: 0;
    margin: 0 auto;
    z-index: 1;
    bottom: 675px;
}

.tree_wrap img {
    width: 100%;
    height: auto;
}

.footer_cont_wrap {
    max-width: 1200px;
    margin: 0 auto;
    margin-top: 100px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

.fc_left p {
    font-size: 20px;
    color: #fff;
    line-height: 30px;
}

.fc_left span {
    font-size: 36px;
    color: #fff;
}

.school_name {
    margin-bottom: 35px;
}

.fc_right .sitemap {
    font-size: 20px;
    color: #fff;
}

.fc_right .sitemap p {
    margin-bottom: 30px;
}

.sitemap_items {
    display: flex;
    justify-content: space-around;
    gap: 50px;
    margin-bottom: 50px;
}

.sitemap_items li {
    transition: .3s;
}

.sitemap_items li:hover {
    color: #445752;
}

.link_wrap a {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #F7FFEE;
    color: #445752;
    font-size: 20px;
    font-weight: bold;
    width: 350px;
    height: 50px;
    border-radius: 25px;
    margin: 30px auto;
    transition: .3s;
}

.link_wrap a:hover {
    background-color: #7AA08F;
    color: #F7FFEE;
    border: #F7FFEE solid 1px;
}

small {
    display: block;
    text-align: center;
    font-size: 20px;
    color: #fff;
    margin-top: 100px;
}

/* form */
.form_title {
    width: 900px;
    margin: 0 auto;
    margin-top: 50px;
    padding: 30px;
    background-color: #fff;
}

.form_title h3 {
    margin-top: 0;
    text-align: left;
}

.form_title p {
    margin-top: 30px;
    line-height: 30px;
    text-align: left;
}

.form_title span {
    color: #36B68A;
}

.lined-title {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0px 40px;
    margin-top: 100px;
}

.lined-title::before,
.lined-title::after {
    content: "";
    flex: 1;
    border-bottom: 1px solid #445752;
    margin: 0 12px;
}

/* フィルターcss */
.filter {
    margin: 50px 0 50px 150px;
}

.form_grade,
.form_type {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 25px;
}

.hex-btn {
    position: relative;
    width: 150px;
    height: 50px;
    font-weight: bold;
    border: none;
    cursor: pointer;
    clip-path: polygon(15% 0%, 85% 0%, 100% 50%, 85% 100%, 15% 100%, 0% 50%);
    display: flex;
    justify-content: center;
    align-items: center;
    transition: 0.2s;
}

/* 枠線SVG */
.hex-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background-size: cover;
    background-repeat: no-repeat;
    pointer-events: none;
}

/* 背景色・枠線色 */
.hex-btn:nth-child(1) {
    background-color: rgba(48, 147, 163, 0.1);
    color: #3093A3;
}

.hex-btn:nth-child(2) {
    background-color: rgba(92, 201, 164, 0.1);
    color: #5CC9A4;
}

.hex-btn:nth-child(3) {
    background-color: rgba(64, 166, 255, 0.1);
    color: #40A6FF;
}

.hex-btn:nth-child(1)::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50"><polygon points="22.5,0 127.5,0 150,25 127.5,50 22.5,50 0,25" fill="none" stroke="%233093A3" stroke-width="2" vector-effect="non-scaling-stroke"/></svg>');
}

.hex-btn:nth-child(2)::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50"><polygon points="22.5,0 127.5,0 150,25 127.5,50 22.5,50 0,25" fill="none" stroke="%235CC9A4" stroke-width="2" vector-effect="non-scaling-stroke"/></svg>');
}

.hex-btn:nth-child(3)::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50"><polygon points="22.5,0 127.5,0 150,25 127.5,50 22.5,50 0,25" fill="none" stroke="%2340A6FF" stroke-width="2" vector-effect="non-scaling-stroke"/></svg>');
}

/* 選択状態の反転 */
.hex-btn.selected {
    color: #fff !important;
}

.hex-btn.selected:nth-child(1) {
    background-color: #3093A3;
}

.hex-btn.selected:nth-child(2) {
    background-color: #5CC9A4;
}

.hex-btn.selected:nth-child(3) {
    background-color: #40A6FF;
}

.type-hex-btn {
    position: relative;
    width: 200px;
    height: 50px;
    font-weight: bold;
    border: none;
    cursor: pointer;
    clip-path: polygon(15% 0%, 85% 0%, 100% 50%, 85% 100%, 15% 100%, 0% 50%);
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(68, 87, 82, 0.1);
    color: #445752;
    transition: 0.2s;
}

.type-hex-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 50"><polygon points="30,0 170,0 200,25 170,50 30,50 0,25" fill="none" stroke="%23445752" stroke-width="2" vector-effect="non-scaling-stroke"/></svg>');
    background-size: cover;
    background-repeat: no-repeat;
    pointer-events: none;
}

/* クリック時に反転 */
.type-hex-btn.selected {
    background-color: #445752;
    color: #fff;
}

/* 擬似要素のSVGも反転色に変更 */
.type-hex-btn.selected::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 50"><polygon points="30,0 170,0 200,25 170,50 30,50 0,25" fill="none" stroke="%23FFFFFF" stroke-width="2" vector-effect="non-scaling-stroke"/></svg>');
}

/* work.html */
.change-btn-wrap {
    display: flex;
    justify-content: center;
    width: 1240px;
    margin: 0 auto;
    margin-top: 70px;
    gap: 50px;
    border-bottom: 1px solid #7A7A7A;
}

.change-btn {
    width: 400px;
    padding: 30px;
    border-radius: 10px 10px 0 0;
    background: #fff;
    color: #3093A3;
    font-size: 30px;
}

.change-btn.selected {
    background: #3093A3;
    color: #fff;
}

#students {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.student {
    width: 400px;
    height: 350px;
    display: flex;
    flex-direction: column;
    border-radius: 20px;
    position: relative;
    transition: 0.2s;
}

.student:hover {
    transform: scale(1.05);
    transition: 0.2s;
}

.student,
.student-card {
    cursor: pointer;
}

.works-title {
    display: flex;
    justify-content: center;
    text-align: center;
    align-items: center;
    margin: 50px 0 24px;
    font-size: 24px;
    font-weight: bold;
    padding-left: 12px;
}

.works-list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 24px;
}

.grade {
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 5px;
    background-color: #40A6FF;
    color: #fff;
    clip-path: polygon(50% 0%,
            93% 25%,
            93% 75%,
            50% 100%,
            7% 75%,
            7% 25%);
    margin: 5px;
}

.thumb {
    width: 350px;
    height: 200px;
    object-fit: cover;
    align-self: center;
    margin: 20px;
}

.face {
    width: 40px;
    margin-right: 10px;
}

.student-info strong {
    display: flex;
    justify-content: center;
    text-align: left;
    padding: 0px 5px 10px 10px;
    font-size: 18px;
}

.student-img {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: absolute;
    bottom: 10px;
    right: 20px;
}

/* 学生一覧css */
.students-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin: 0 auto;
    width: fit-content;
    padding: 10px;
    gap: 30px;
}

/* 1行のラッパー */
.honey-row {
    display: flex;
    justify-content: flex-start;
    gap: 80px;
}

.honey-row.offset {
    margin-left: 150px;
}

/* 学生カード */
.student-card {
    position: relative;
    width: 250px;
    height: 250px;
    z-index: 1;
    transition: 0.3s;
}

.student-card:hover {
    transition: 0.3;
}

/* 背景の六角形 */
.student-card .hex-bg {
    position: absolute;
    top: 40px;
    left: 40px;
    width: 260px;
    height: 260px;
    background-color: rgba(150, 150, 150, 0.25);
    clip-path:
        polygon(50% 0%,
            93.3% 25%,
            93.3% 75%,
            50% 100%,
            6.7% 75%,
            6.7% 25%);
    z-index: -1;
}

.diagonal-text {
    position: absolute;
    color: #fff;
    bottom: -16px;
    right: -40px;
    text-align: center;
    display: inline-block;
    transform: rotate(-30deg);
    width: 150px;
    font-weight: normal;
    font-family: "Noto Sans JP", sans-serif;
}

/* 学年ごとに色分けしたい場合 */
.student-card.grade-1 .hex-bg {
    background-color: rgba(92, 201, 164);
}

.student-card.grade-2 .hex-bg {
    background-color: rgba(64, 166, 255);
}

.student-card img {
    width: 100%;
    display: block;
}

/* カードホバー時の拡大 */
.student-card:hover {
    transform: scale(1.05);
    transition: 0.2s;
}

/* student.html */
.student-info-area {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 95%;
    margin: 0 auto;
}

.info-left {
    position: relative;
    width: 50%;
    height: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.info-left img {
    width: 400px;
    object-fit: cover;
    margin-right: 20px;
}

.hex-name {
    position: absolute;
    width: 300px;
    aspect-ratio: 0.866 / 1;
    bottom: -60%;
    right: 0%;
    clip-path: polygon(50% 0%,
            100% 25%,
            100% 75%,
            50% 100%,
            0% 75%,
            0% 25%);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
}

.hex-name .hex-name-area {
    margin-bottom: 30px;
}

.hex-name-area,
.hex-job {
    color: #fff;
    width: 300px;
    margin: 0 auto;
    text-align: center;
}

.hex-name .hex-name-area p,
.hex-job p {
    font-size: 30px;
    font-weight: bold;
    color: #fff;
}

.hex-job p {
    font-size: 20px;
}

.info-right {
    width: 50%;
    margin: 50px;
}

.is-hidden {
    visibility: hidden;
}

.text-block {
    margin-top: 20px;
}

.link-title {
    display: flex;
    align-items: center;
}

.link-title label {
    color: #445752;
    font-size: 24px;
    font-weight: bold;
    margin-left: 20px;
}

.info-right p {
    margin-top: 10px;
    font-size: 20px;
    font-weight: 200;
    line-height: 2;
}

.link-title:nth-of-type(2) {
    margin-top: 20px;
}

.info-right p:nth-of-type(1) {
    margin-left: 40px;
}

.info-right a {
    width: 350px;
    height: 70px;
    display: flex;
    justify-content: space-around;
    align-items: center;
    text-align: center;
    margin: 0 auto;
    margin-top: 35px;
    padding: 10px;
    font-size: 20px;
    font-weight: bold;
    color: #445752;
    background-color: #fff;
    border: 1px solid #445752;
    border-radius: 50px;
}

.student-works-info img {
    width: 600px;
    height: auto;
    object-fit: contain;
    border: 1px solid #d4d4d4;
}

.student-works-wrapper {
    margin-top: 100px;
}

.student-works-title {
    text-align: center;
    margin-bottom: 10px;
}

.title-position {
    position: relative;
}

.title-position h2 {
    position: relative;
    z-index: 1;
    font-family: "Miriam Libre", sans-serif;
    color: #EAFFF4;
    font-size: 60px;
    text-shadow:
        -1px -1px 0 #445752,
        1px -1px 0 #445752,
        -1px 1px 0 #445752,
        1px 1px 0 #445752;
    opacity: 30%;
}

.title-position h3 {
    position: absolute;
    top: 70%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    font-size: 40px;
    font-weight: normal;
}

.student-works-wrapper .student-works-info {
    display: flex;
    justify-content: center;
}

.student-works {
    margin-top: 50px;
}

.student-works-product {
    display: flex;
    justify-content: flex-start;
    flex-direction: column;
    width: 620px;
    margin-left: 50px;
}

.no-link {
    cursor: default;
}

.student-works-info a img {
    cursor: pointer;
}

.student-works-product strong {
    color: #445752;
    font-size: 30px;
    font-weight: 600;
}

.student-works-product p {
    margin-top: 40px;
    font-size: 20px;
    line-height: 1.75;
    color: #445752;
    font-weight: 200;
}

.survey-button {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    width: 400px;
    height: 100px;
    margin: 0 auto;
    margin-top: 100px;
    border-radius: 50px;
    background-color: #445752;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    transition: 0.2s;
}

.survey-button span {
    font-size: 20px;
}

.survey-button:hover {
    background-color: #fff;
    color: #445752;
    border: 1px solid #445752;
    transition: 0.2s;
}

/* survey.php */
.subheading {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}

.subheading svg {
    margin-right: 10px;
    width: 40px;
    height: 40px;
}

.subheading label {
    flex: 1;
    /* labelを残りの幅にフィットさせる */
    word-wrap: break-word;
    /* 長い単語は折り返し */
    white-space: normal;
    /* テキストが折り返されるように設定 */
}

.survey_work {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    margin: 100px 0 100px 0;
}

.survey_work_info {
    width: 450px;
    display: flex;
    justify-content: center;
    flex-direction: column;
    margin: 0px 40px;
}

.survey_work_info .subheading label {
    font-size: 24px;
    margin-bottom: 10px;
}

.survey_work_info img {
    width: 450px;
}

.survey_work_info p {
    font-size: 28px;
    margin: 40px 0 60px 0;
    text-align: none;
}

.survey_work_info button,
.thanks_content button {
    width: 300px;
    height: 60px;
    border-radius: 60px;
    border: 1px solid #3F8B98;
    background-color: #fff;
    color: #3F8B98;
    font-size: 20px;
    font-weight: bold;
    font-family: "Noto Sans JP", sans-serif
}

.survey_work_info button:hover {
    background-color: #3F8B98;
    color: #fff;
    transition: 0.2s;
}

.thanks_content button:hover {
    background-color: #3F8B98;
    color: #fff;
    transition: 0.2s;
}

#surveyForm,
.confirm-item {
    display: flex;
    flex-direction: column;
    width: 1000px;
    margin: 0 auto;
    background-color: #fff;
    padding-bottom: 50px;
}

.form-item,
.confirm-item-list {
    align-self: center;
    width: 900px;
    padding-top: 50px;
}

.form-item:nth-last-of-type(1) {
    padding-top: 0;
}

.form-item label {
    font-size: 24px;
}

.form-item p {
    margin: 10px 0;
}

.required {
    color: red;
    font-size: 14px;
}

#surveyForm input,
#surveyForm select {
    background-color: #EFEFEF;
    border: 1px solid #7A7A7A;
    width: 900px;
    padding: 20px;
    margin-top: 10px;
}

.custom-select {
    appearance: none;
    /* デフォルトの矢印を非表示 */
    -webkit-appearance: none;
    /* Safari用 */
    -moz-appearance: none;
    /* Firefox用 */
    display: flex;
    align-items: c;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: url('data:image/svg+xml;utf8,<svg fill="%23333" height="10" viewBox="0 0 10 10" width="10" xmlns="http://www.w3.org/2000/svg"><polygon points="0,0 10,0 5,5"/></svg>') no-repeat right 10px center;
    background-size: 10px;
}

.star-rating span {
    font-size: 60px;
    color: #ccc;
    /* 灰色の星 */
    cursor: pointer;
    transition: color 0.2s;
}

.star-rating span.active {
    color: #FFD966;
    /* 点灯している星の色 */
}

.options {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 10px;
}

.options label {
    font-size: 18px;
}

/* 六角形ラベル */
.hex-label {
    position: relative;
    width: 200px;
    height: 50px;
    gap: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    clip-path: polygon(15% 0%, 85% 0%, 100% 50%, 85% 100%, 15% 100%, 0% 50%);
    cursor: pointer;
    font-weight: bold;
    transition: 0.2s;
    color: #fff;
    background-color: rgba(0, 0, 0, 0.05);
}

/* 枠線を SVG で表現 */
.hex-label::before {
    content: '';
    position: absolute;
    inset: 0;
    background-size: cover;
    background-repeat: no-repeat;
    pointer-events: none;
}

/* 透明化してクリック対象にする */
.hex-label input {
    display: none;
}

/* 六角形ごとの色と枠線 */
.hex-label:nth-child(1),
.hex-label.is-people {
    background-color: rgba(203, 125, 79, 0.1);
    color: #CB7D4F;
}

.hex-label:nth-child(2),
.hex-label.is-learning {
    background-color: rgba(190, 99, 116, 0.1);
    color: #BE6374;
}

.hex-label:nth-child(3),
.hex-label.is-future {
    background-color: rgba(65, 154, 170, 0.1);
    color: #419AAA;
}

.hex-label:nth-child(4),
.hex-label.is-society {
    background-color: rgba(107, 160, 88, 0.1);
    color: #6BA058;
}

/* 修正したSVG（下の線をぴったり合わせた） */
.hex-label:nth-child(1)::before,
.hex-label.is-people::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 50"><polygon points="30,0 170,0 200,25 170,49.5 30,49.5 0,25" fill="none" stroke="%23CB7D4F" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
}

.hex-label:nth-child(2)::before,
.hex-label.is-learning::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 50"><polygon points="30,0 170,0 200,25 170,49.5 30,49.5 0,25" fill="none" stroke="%23BE6374" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
}

.hex-label:nth-child(3)::before,
.hex-label.is-future::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 50"><polygon points="30,0 170,0 200,25 170,49.5 30,49.5 0,25" fill="none" stroke="%23419AAA" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
}

.hex-label:nth-child(4)::before,
.hex-label.is-society::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 50"><polygon points="30,0 170,0 200,25 170,49.5 30,49.5 0,25" fill="none" stroke="%236BA058" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
}

/* 選択状態 */
.hex-label input:checked+span {
    color: #fff;
    /* JSで背景色反映も可能 */
}

/* 選択状態（反転色） */
.hex-label.selected:nth-child(1) {
    background-color: #CB7D4F;
    color: #fff;
}

.hex-label.selected:nth-child(2) {
    background-color: #BE6374;
    color: #fff;
}

.hex-label.selected:nth-child(3) {
    background-color: #419AAA;
    color: #fff;
}

.hex-label.selected:nth-child(4) {
    background-color: #6BA058;
    color: #fff;
}

.form-item textarea {
    width: 900px;
    height: 300px;
    background-color: #EFEFEF;
    border: 1px solid #7A7A7A;
    padding: 20px;
}

.survey_comment {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 50px;
}

.survey_comment img {
    width: 100px;
}

#surveyForm button {
    width: 350px;
    height: 70px;
    margin: 0 auto;
    border-radius: 50px;
    background-color: #3093A3;
    color: #fff;
    font-size: 18px;
    margin-top: 100px;
    font-family: "Noto Sans JP", sans-serif;
    transition: 0.2s;
}

#surveyForm button:hover {
    background-color: #fff;
    color: #3093A3;
    border: 1px solid #3093A3;
    transition: 0.2s;
}

/* confirm.php */
.confirm-item-list label,
.confirm-item-list p {
    font-size: 24px;
}

.confirm-item-list p {
    margin: 5px 0 0 60px;
}

#confirmStars span {
    color: #ccc;
    /* 灰色の星 */
    font-size: 60px;
    margin-right: 2px;
}

#confirmStars span.active {
    color: #FFD966;
    /* 点灯した星の色 */
}

.confirm-buttons,
.confirm-buttons form {
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-family: "Noto Sans JP", sans-serif
}

.confirm-buttons form button {
    width: 350px;
    height: 70px;
    margin: 0 auto;
    border: 1px solid #fff;
    border-radius: 50px;
    margin-top: 40px;
    background-color: #FF728A;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    transition: 0.2s;
}

.confirm-buttons form button:hover {
    background-color: #fff;
    color: #FF728A;
    border: 1px solid #FF728A;
    transition: 0.2s;
}

.confirm-buttons button {
    width: 350px;
    height: 70px;
    margin: 0 auto;
    margin-top: 40px;
    margin-bottom: 100px;
    border: 1px solid #3B95A5;
    border-radius: 50px;
    background-color: #fff;
    color: #3B95A5;
    transition: 0.2s;
}

.confirm-buttons button:hover {
    color: #fff;
    background-color: #3093A3;
    border: #fff;
    transition: 0.2s;
}

*/

/* thanks.php */
.thanks_content {
    text-align: center;
}

.thanks_content h3,
h5 {
    text-align: center;
    margin: 50px;
}

.thanks_content button {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 auto;
}

.thanks_content button {
    margin-top: 30px;
    font-family: "Noto Sans JP", sans-serif;
}

/* レスポンシブ */
@media (max-width: 600px) {
    h2 {
        font-size: 50px;
    }

    h3 {
        font-size: 21px;
    }

    h5 {
        font-size: 17px;
    }

    main {
        transform: translateY(0px);
    }

    svg {
        width: 50vw;
        height: auto;
        transform-origin: top left;
    }

    .hamburger-wrapper {
        width: 80px;
        height: 80px;
    }

    .menu-bg {
        width: 80px;
        height: 80px;
    }

    .hamburger-lines {
        top: 20px;
        right: 15px;
    }

    .hamburger-lines span {
        width: 40px;
        height: 2px;
    }

    .hamburger-lines span:nth-child(3) {
        width: 20px;
    }

    .hamburger-wrapper.is-active .hamburger-lines span:nth-child(3) {
        width: 40px;
    }

    footer {
        padding: 50px 0 30px;
        background-color: #7AA08F;
        height: 100%;
    }

    .tree_wrap {
        max-width: 355px;
        height: 500px;
        bottom: 543px;
    }

    .footer_cont_wrap {
        max-width: 90vw;
        margin: 0 auto;
        margin-top: 50px;
        display: block;
    }

    .fc_left p {
        font-size: 20px;
        color: #fff;
        line-height: 30px;
    }

    .fc_left span {
        font-size: 36px;
        color: #fff;
    }

    .school_name {
        margin-bottom: 35px;
    }

    .fc_right .sitemap {
        font-size: 20px;
    }

    .fc_right .sitemap p {
        margin-top: 30px;
        margin-bottom: 18px;
    }

    .sitemap_items {
        flex-wrap: wrap;
        justify-content: left;
        gap: 20px;
        margin-bottom: 50px;
    }

    .link_wrap a {
        margin: 20px auto;
    }

    small {
        display: block;
        text-align: center;
        font-size: 14px;
        color: #fff;
        margin-top: 50px;
    }

    /* form.html */
    .stepper {
        gap: 0px;
    }

    .step {
        width: 85px;
        height: 85px;
    }

    .step-inner {
        width: 80px;
        height: 80px;
        clip-path: polygon(50% 0%, 90% 25%, 90% 75%, 50% 100%, 10% 75%, 10% 25%);
    }

    .step-num {
        font-size: 16px;
    }

    .step-label {
        font-size: 20px;
    }

    .form_title {
        width: 390px;
        padding: 10px;
        margin-top: 30px;
    }

    .form_title p {
        margin-top: 20px;
    }

    .lined-title {
        margin: 30px 0 20px 0;

    }

    .form_grade,
    .form_type {
        justify-content: center;
    }

    .hex-btn {
        width: 100px;
        height: 50px;
    }

    .hex-btn:nth-child(1)::before {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'><polygon points='15,0 85,0 100,25 85,50 15,50 0,25' fill='none' stroke='%233093A3' stroke-width='2' vector-effect='non-scaling-stroke'/></svg>");
    }

    .hex-btn:nth-child(2)::before {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'><polygon points='15,0 85,0 100,25 85,50 15,50 0,25' fill='none' stroke='%235CC9A4' stroke-width='2' vector-effect='non-scaling-stroke'/></svg>");
    }

    .hex-btn:nth-child(3)::before {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'><polygon points='15,0 85,0 100,25 85,50 15,50 0,25' fill='none' stroke='%2340A6FF' stroke-width='2' vector-effect='non-scaling-stroke'/></svg>");
    }

    .type-hex-btn {
        width: 100px;
        height: 50px;
        font-size: 12px;
    }

    .type-hex-btn::before {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 50"><polygon points="15,0 85,0 100,25 85,50 15,50 0,25" fill="none" stroke="%23445752" stroke-width="2" vector-effect="non-scaling-stroke"/></svg>');
    }

    .type-hex-btn.selected::before {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 50"><polygon points="15,0 85,0 100,25 85,50 15,50 0,25" fill="none" stroke="%23FFFFFF" stroke-width="2" vector-effect="non-scaling-stroke"/></svg>');
    }

    /* work.html */
    .works-title {
        margin: 30px 0 20px 0;
    }

    #students {
        gap: 5px
    }

    .student {
        width: 350px;
    }

    .thumb {
        width: 300px;
    }

    .filter {
        margin: 15px;
    }

    /* 学生一覧情報 */
    .change-btn {
        width: 150px;
        padding: 15px;
        font-size: 20px;
    }

    .students-list {
        gap: 0px;
    }

    .student-card {
        width: 150px;
        height: auto;
    }

    .student-card img {
        width: 150px;
    }

    .student-card .hex-bg {
        top: 20px;
        left: 15px;
        width: 160px;
        height: 160px;
    }

    .diagonal-text {
        width: 100px;
        font-size: 10px;
        bottom: -10px;
        right: -25px;
    }

    .honey-row {
        height: 150px;
        gap: 30px;
    }

    .honey-row.offset {
        margin-left: 100px;
    }

    .student-info strong {
        margin: 0;
    }

    .change-btn-wrap {
        width: 370px;
    }

    /* student.html */
    .student-info-area {
        display: block;
    }

    .info-left {
        width: 350px;
    }

    .info-left img {
        width: 300px;
    }

    .hex-name {
        width: 170px;
        bottom: -45%;
        right: 0%;
    }

    .hex-name-area,
    .hex-job {
        width: 150px;
    }

    .hex-job {
        margin-bottom: 5px;
    }

    .hex-name .hex-name-area {
        margin-bottom: 5px;
    }

    .hex-name .hex-name-area p,
    .hex-job p {
        font-size: 18px;
    }

    .hex-name .hex-name-area span,
    .hex-job span {
        font-size: 14px;
    }

    .info-right {
        width: 350px;
        margin: 0 auto;
        margin-top: 200px;
    }

    .info-right p {
        font-size: 18px;
        line-height: 1.7;
    }

    .info-right p:nth-of-type(1) {
        margin-left: 0;
    }

    .link-title label {
        font-size: 18px;
        margin-left: 10px;
    }

    .link-title svg {
        width: 30px;
        height: 30px;
    }

    .student-works-wrapper .student-works-info {
        flex-direction: column;
        align-items: center;
    }

    .student-works {
        margin-top: 30px;
    }

    .student-works-info img {
        width: 370px;
        height: auto;
    }

    .student-works-wrapper {
        margin-top: 50px;
    }

    .title-position h2 {
        font-size: 50px;
    }

    .title-position h3 {
        font-size: 35px;
    }

    .student-works-product {
        width: 350px;
        margin: 0 auto;
    }

    .student-works-product strong {
        margin-top: 10px;
        text-align: center;
        font-size: 24px;
    }

    .student-works-product p {
        margin-top: 5px;
        font-size: 18px;
    }

    .no-link {
        pointer-events: none;
    }

    .survey-button {
        width: 350px;
        height: 100px;
        margin-top: 50px;
    }

    /* survey.php */
    .subheading {
        align-items: center;
    }

    .subheading svg {
        margin: 10px;
    }

    .survey_work {
        margin: 50px 0 50px 0;
        flex-direction: column;
    }

    .survey_work_info {
        width: 370px;
        margin: 25px 0;
    }

    .survey_work_info:nth-last-of-type(1) {
        text-align: center;
    }

    .survey_work_info button,
    .thanks_content button {
        margin: 0 auto;
    }

    .survey_work_info .subheading label {
        margin-bottom: 0;
    }

    .survey_work_info p {
        margin: 20px 0;
    }

    #surveyForm,
    .confirm-item {
        padding: 30px 0;
    }

    #surveyForm,
    .survey_work_info img,
    .confirm-item,
    .confirm-item-list {
        width: 370px;
        margin: 0 auto;
    }


    .form-item,
    #surveyForm input,
    #surveyForm select,
    .form-item textarea {
        width: 360px;
        margin: 0 auto;
    }

    .subheading {
        gap: 0;
    }

    .return_btn {
        margin-bottom: 100px;
    }

    .form-item,
    .confirm-item-list {
        padding-top: 0;
        margin: 10px 0;
    }

    .form-item label {
        font-size: 18px;
    }

    .options {
        margin-top: 20px;
    }

    .options label {
        font-size: 15px;
    }

    .hex-label {
        width: 150px;
        height: 50px;
        /* 高さはそのままでもOK */
        gap: 15px;
        /* 元は20pxなので比率に合わせて調整 */
    }

    /* SVG 枠線も幅150pxに合わせて縮小 */
    .hex-label:nth-child(1)::before,
    .hex-label.is-people::before {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50"><polygon points="22.5,0 127.5,0 150,25 127.5,49.5 22.5,49.5 0,25" fill="none" stroke="%23CB7D4F" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
    }

    .hex-label:nth-child(2)::before,
    .hex-label.is-learning::before {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50"><polygon points="22.5,0 127.5,0 150,25 127.5,49.5 22.5,49.5 0,25" fill="none" stroke="%23BE6374" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
    }

    .hex-label:nth-child(3)::before,
    .hex-label.is-future::before {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50"><polygon points="22.5,0 127.5,0 150,25 127.5,49.5 22.5,49.5 0,25" fill="none" stroke="%23419AAA" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
    }

    .hex-label:nth-child(4)::before,
    .hex-label.is-society::before {
        background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 50"><polygon points="22.5,0 127.5,0 150,25 127.5,49.5 22.5,49.5 0,25" fill="none" stroke="%236BA058" stroke-width="3" vector-effect="non-scaling-stroke"/></svg>');
    }

    .survey_comment img {
        width: 80px;
    }

    #surveyForm button {
        margin-top: 50px;
    }

    .confirm-item-list p {
        margin-left: 20px;
    }

    .thanks_content {
        margin: 100px 0;
    }
}