/* --- 日本語フォントを使用するすべての要素に font-weight: 500 を適用 (一括上書き) --- */

/* 1. 全称セレクタで一括指定 */
#thu-about-content * {
    font-weight: 500;
}

/* 2. ファイル内で使われている主要なテキストクラスを強制的に500で上書き */
#thu-about-content .text,
#thu-about-content .title,
#thu-about-content .right-container-text,
#thu-about-content .btn-text,
#thu-about-content .card-content h2 span,
#thu-about-content .card-text,
#thu-about-content .message,
#thu-about-content .tuition-right-text,
#thu-about-content .tuition-right-btn-container,
#thu-about-content .campus-life-btn,
#thu-about-content .column-right-content-container-text,
#thu-about-content .about-us-content,
#thu-about-content .faq-answer {
    font-weight: 500 !important;
}

/* 3. 見出しなどで太字（Bold）を維持したい要素を個別に指定 */
#thu-about-content h1, 
#thu-about-content h2, 
#thu-about-content h3, 
#thu-about-content h4,
#thu-about-content h5,
#thu-about-content h6,
#thu-about-content strong, 
#thu-about-content b,
#thu-about-content .hero-title,
#thu-about-content .hero-subtitle,
#thu-about-content .section-title,
#thu-about-content .ranks-title,
#thu-about-content .pratical-title,
#thu-about-content .pratical-card-title,
#thu-about-content .career-support-title,
#thu-about-content .campus-intro-title,
#thu-about-content .video-center .video-placeholder h3,
#thu-about-content .faq-header-title,
#thu-about-content .faq-header-subtitle,
#thu-about-content .faq-title {
    font-weight: bold !important;
}
/* ---------------- ここまで追加 ---------------- */

/* ==========================================================================
   FONT IMPORTS
   ========================================================================== */

/* English font - Saira Condensed */
@import url(https://db.onlinewebfonts.com/c/2bde541412c22560cc00e877296db4ac?family=Saira+Condensed);

/* Japanese font - Tazugane Gothic HondaMKTA Med */
@import url(https://db.onlinewebfonts.com/c/7c7b079cf59c70d55d0b33eae89f1f38?family=Tazugane+Gothic+HondaMKTA+Med);


/* ==========================================================================
   CSS CUSTOM PROPERTIES (VARIABLES)
   ========================================================================== */

:root {
    /* Color palette */
    --white: #ffffff;
    --black: #000000;
    --blue: #1B2D73;
    --light-steel-blue: #D3DDF0;
    --grey: #F2F4FC;
    --turquoise: #4cdbac;
    --aqua: #57f9c4;
    --vidvid-azure: #18cde5;
    --vidvid-red: #f62723;
    --peach: #ffbd59;
    --sky-blue: #97c5e6;

    /* Typography */
    --font-japanese: 'Tazugane Gothic HondaMKTA Med', sans-serif;
    --font-english: 'Saira Condensed', sans-serif;
}

/* ==========================================================================
   FONTS & TYPOGRAPHY
   ========================================================================== */

#thu-about-content .text,
#thu-about-content .title,
#thu-about-content .right-container-text,
#thu-about-content .btn-text,
#thu-about-content .card-content h2 span,
#thu-about-content .card-text,
#thu-about-content .message,
#thu-about-content .tuition-right-text,
#thu-about-content .tuition-right-btn-container,
#thu-about-content .campus-life-btn,
#thu-about-content .column-right-content-container-text {
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro",
        "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic",
        "メイリオ", Meiryo, sans-serif !important;
}

#thu-about-content .title {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
}

#thu-about-content .hero-title {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
}

#thu-about-content .section-title {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
}

#thu-about-content .info-box {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
}

#thu-about-content h1,
#thu-about-content h2,
#thu-about-content h3,
#thu-about-content h4,
#thu-about-content h5,
#thu-about-content h6 {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
}

#thu-about-content p {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
}

#thu-about-content a {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
}

#thu-about-content .fontbold {
    /* font-weight: bold; */
}

/* ==========================================================================
   ANIMATIONS & TRANSITIONS
   ========================================================================== */

/* Keyframe animations are global, but applied via ID-scoped classes */
@keyframes fadeInFromTop {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes burstIn {
  0% {
    opacity: 0;
    transform: scale(0.3) rotate(-10deg);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.1) rotate(5deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(0);
  }
}

@keyframes slideInFromLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes marquee {
    from {
        transform: translateX(0%);
    }

    to {
        transform: translateX(-50%);
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* Animation Classes scoped to #thu-about-content */
#thu-about-content .animate-burst {
  animation: burstIn 1s ease-out forwards;
  opacity: 0;
}

#thu-about-content .animate-slide {
  animation: slideInFromLeft 0.8s ease-out forwards;
  opacity: 0;
}

#thu-about-content .left {
  animation: fadeInFromTop 1s ease-out forwards;
}

#thu-about-content .ani-title {
    opacity: 0;
    transform: translateX(-50px);
    transition: all 0.5s ease-in-out;
}

#thu-about-content .ani-title.visible {
    opacity: 1;
    transform: translateX(0);
}

#thu-about-content .delay-2 {
    transition-delay: 0.2s;
}

#thu-about-content .custom-fade-bounce {
    display: grid;
}

#thu-about-content .custom-fade-bounce .dot {
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    position: relative;
}

/* ==========================================================================
   UTILITY CLASSES
   ========================================================================== */

#thu-about-content .bg-light-steel-blue {
    background-color: var(--light-steel-blue);
}

#thu-about-content .bg-grey {
    background-color: var(--grey);
}

#thu-about-content .bg-sky-blue {
    background-color: var(--sky-blue);
}

#thu-about-content .mobile-view{
    display: none !important;
}

/* Show mobile view on mobile devices */
@media (max-width: 768px) {
    #thu-about-content .mobile-view {
        display: block !important;
    }
}

#thu-about-content .container {
    width: 100%;
    max-width: 1020px; /* 85vw at 1200px */
    margin: 0 auto;
}

@media (max-width: 768px) {
    #thu-about-content .container {
        width: 382.5px; /* 85vw at 450px */
    }
    
    /* Specific fix for exactly 1025px resolution */
    @media (width: 769px) {
        #thu-about-content .container {
            width: 980px;
        }
    }
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */

#thu-about-content .btn {
    color: var(--white);
    background: linear-gradient(var(--turquoise), var(--aqua));
    /* text-decoration: underline; */
    font-size: 19.2px; /* 1.6vw at 1200px */
    padding: 7.2px 14.4px; /* 0.6vw 1.2vw at 1200px */
    border-radius: 24px; /* 2vw at 1200px */
    display: inline-block;
    transition: transform 0.2s ease;
}

#thu-f-content .btn { /* Note: keeping original selector if needed, but adding scoped context */
    background: linear-gradient(to right, #5be9b9, #5ee7c6) !important;
    border-radius: 50px;
    color: var(--white) !important;
    /* max-width: 130px; */
    height: 48px;
    font-size: 17px !important;
    position: relative;
    white-space: nowrap;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
    font-weight: bold;
    display: block;
    /* margin-left: auto; */
    /* margin-right: auto; */
    text-align: center;
    padding: 11px 15px;
}

#thu-about-content .btn-2 {
    color: var(--white);
    background: linear-gradient(var(--turquoise), var(--aqua));
    /* text-decoration: underline; */
    font-size: 15px;
    padding: 10px 34px;
    border-radius: 30px;
    display: inline-block;
    transition: transform 0.2s  ease;
}

#thu-about-content .btn-2::after {
    content: '\3000\3009';
    display: inline-block;
    text-decoration: none !important;
}

#thu-about-content .btn-3 {
    color: var(--white);
    background: linear-gradient(var(--turquoise), var(--aqua));
    /* text-decoration: underline; */
    font-size: 15px;
    padding: 10px 68px;
    border-radius: 30px;
    display: inline-block;
    transition: transform 0.2s  ease;
}

#thu-about-content .btn-3::after {
    content: '\3000\3009';
    display: inline-block;
    text-decoration: none !important;
}

#thu-about-content .card-btn {
  padding: 10px 0px;
  background: #4FE2B1;
  border-radius: 50px;
  display: block;
  text-align: center;
  color: var(--white);
  position: relative;
  text-decoration: none !important;
}

#thu-about-content .card-btn span {
  position: relative;
  display: inline-block;
}

#thu-about-content .card-btn:hover span::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 5px;
  width: 100%;
  height: 1px;
  background-color: currentColor;
}

#thu-about-content .access-btn {
    text-decoration: none;
}

#thu-about-content .access-btn span:first-child {
    text-decoration: none;
    position: relative;
}

#thu-about-content .access-btn:hover span:first-child {
    /* text-decoration: underline; */
    text-underline-offset: 3px;
}

#thu-about-content .access-btn span:last-child {
    text-decoration: none;
}

#thu-about-content .acb-container.button .card-btn span {
    position: relative;
    display: inline-block;
    padding-bottom: 5px; /* Add space below text for the underline */
}

#thu-about-content .acb-container.button .card-btn:hover span::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 10px !important; /* Align with the bottom of the text */
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

#thu-about-content .campus-life-btn {
    text-decoration: none;
}

#thu-about-content .campus-life-btn span {
    position: relative;
    display: inline-block;
}

#thu-about-content .campus-life-btn:hover span::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 5px;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* Hover Effects */
#thu-about-content .btn:hover {
    transform: translateY(-1px);
}

#thu-about-content .btn:hover,
#thu-about-content .btn-2:hover,
#thu-about-content .btn-3:hover,
#thu-about-content .card-btn:hover {
    transform: translateY(-1px);
    text-decoration: underline !important;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
}

#thu-about-content .btn:hover::after,
#thu-about-content .btn-2:hover::after,
#thu-about-content .btn-3:hover::after {
    text-decoration: none !important;
}

/* Button Media Queries */
@media (max-width: 768px) {
    #thu-about-content .btn {
        font-size: 7.2px; /* 1.6vw at 450px */
        padding: 2.7px 5.4px; /* 0.6vw 1.2vw at 450px */
        border-radius: 9px; /* 2vw at 450px */
    }
    
    /* Override with important if specific selector needed */
    #thu-about-content .btn {
        font-size: 9px !important;
        padding: 2px 15px !important;
        border-radius: 15px !important;
    }
    
    #thu-about-content .btn-22 {
        /* margin-left: -68px; */
    }
}

/* ==========================================================================
   BASE STYLES
   ========================================================================== */

/* Scoping body styles inside ID might not work as intended for body tag itself, 
   but applying styles to elements within the ID container */
#thu-about-content {
    font-family: var(--font-japanese);
    color: var(--blue);
    line-height: 1.6;
    overflow-x: hidden;
}

/* ==========================================================================
   REUSABLE COMPONENTS
   ========================================================================== */

#thu-about-content .circle-title {
    width: 120px; /* 10vw at 1200px */
    height: 120px; /* 10vw at 1200px */
    margin-bottom: 12px; /* 1vw at 1200px */
}

@media (max-width: 768px) {
    #thu-about-content .circle-title {
        width: 100px; /* clamp min */
        height: 100px; /* clamp min */
        margin-bottom: 4.5px; /* 1vw at 450px */
    }
}

#thu-about-content .circle-rotate {
    transform-origin: 100px 100px;
    /* Center of SVG */
    animation: spin 10s linear infinite;
}

#thu-about-content .circle-title-text {
    font-family: var(--font-japanese);
    fill: var(--blue);
    font-weight: bold;
}

#thu-about-content .circle-title .center-number {
    font-size: 72px; /* 6vw at 1200px */
    text-anchor: middle;
    dominant-baseline: middle;
    font-weight: 900;
}

@media (max-width: 768px) {
    #thu-about-content .circle-title .center-number {
        font-size: 80px; /* clamp min */
    }
}

#thu-about-content .fonts9zse{
    visibility: hidden;
}

/* ==========================================================================
   HEADER SECTION
   ========================================================================== */

#thu-about-content header img {
    width: 100%;
    height: auto;
    display: block;
}

#thu-about-content .header-mobile-img {
    display: none;
}

@media (max-width: 768px) {
    #thu-about-content .header-pc-img {
        display: none;
    }

    #thu-about-content .header-mobile-img {
        display: block;
    }
}

/* ==========================================================================
   HERO SECTION
   ========================================================================== */

#thu-about-content .hero {
    padding: 24px 0 36px; /* 2vw 0 3vw at 1200px */
    /*background: url('../img/about/banner1.webp');*/
    /*background-position: right;*/
    /*background-size: 140%;*/
    /*background-repeat: no-repeat;*/
    overflow-x: hidden;
}

@media (max-width: 768px) {
    #thu-about-content .hero {
        padding: 9px 0 13.5px; /* 2vw 0 3vw at 450px */
        /*background-position: -36rem -10rem;*/
        /*background-size: 82rem;*/
    }
}

#thu-about-content .marquee {
    width: 100%;
    overflow: hidden;
    color: var(--white);
    font-size: 48px; /* 4vw at 1200px */
    font-weight: 600;
    margin-bottom: 36px; /* 3vw at 1200px */
    white-space: nowrap;
}

@media (max-width: 768px) {
    #thu-about-content .marquee {
        font-size: 19px; /* clamp min */
        margin-bottom: 13.5px; /* 3vw at 450px */
    }
}

#thu-about-content .marquee-inner {
    display: inline-flex;
    animation: marquee 15s linear infinite;
}

#thu-about-content .marquee-inner span {
    padding-right: 4rem;
}

#thu-about-content .hero-title {
    text-align: start;
    font-size: 72px; /* 6vw at 1200px */
    font-weight: 900;
    line-height: 1px; /* 6.2vw at 1200px */
    margin-bottom: 24px; /* 2vw at 1200px */
    text-shadow:4px 3px 4px rgba(0, 0, 0, 0.4); 
}

#thu-about-content .hero-subtitle {
    text-align: start;
    font-size: 47px; /* clamp max */
    font-weight: 900;
    line-height: 50px; /* clamp max */
    text-shadow:4px 3px 4px rgba(0, 0, 0, 0.4); 
}

@media (max-width: 768px) {
    #thu-about-content .hero-title {
        font-size: 48px; /* clamp min */
        line-height: 50px; /* clamp min */
        margin-bottom: 9px; /* 2vw at 450px */
        text-align: center;
    }

    #thu-about-content .hero-subtitle {
        font-size: 24px; /* clamp min */
        line-height: 28px; /* clamp min */
        text-align: center;
    }
}

#thu-about-content .hero-subtitle span,
#thu-about-content .hero-title span {
    color: var(--white);
}

#thu-about-content .hero-body {
    width: 100%;
    max-width: 1020px; /* 85vw at 1200px */
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

#thu-about-content .hero-left-title{
    width: 50%;
}

#thu-about-content .hero-body .slider{
    width: 40%;
    padding: 96px 0; /* 8vw at 1200px */
}

#thu-about-content .hero-body .slider .slide {
    width: 100%;
    aspect-ratio: 4/5;
    margin: 0 auto;
    display: none;
    border: 20px solid var(--white); /* clamp max */
}

#thu-about-content .hero-body .slider .slide.active {
    display: block;
width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 30%;
    display: block;
}

#thu-about-content .hero-body .slider .slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 30%;
    display: block;
}

#thu-about-content .hero-student-img {
    width: 336px; /* 28vw at 1200px */
    height: 420px; /* 35vw at 1200px */
    object-fit: cover;
    border: 20px solid var(--white); /* clamp max */
    margin-top: 144px; /* 12vw at 1200px */
}

@media (max-width: 768px) {
    #thu-about-content .hero-body {
        width: 315px; /* 70vw at 450px */
        flex-direction: column;
    }

    #thu-about-content .hero-body .slider {
        padding: 36px 0; /* 8vw at 450px */
        width: 100%;
    }

    #thu-about-content .hero-body .slider .slide {
        /* border: 14px solid var(--white);
        display: block; */
    }
    
    #thu-about-content .hero-left-title {
        width: 100%;
        padding: 0;
    }

    #thu-about-content .hero-student-img {
        width: 126px; /* 28vw at 450px */
        height: 157.5px; /* 35vw at 450px */
        border: 14px solid var(--white); /* clamp min */
        margin-top: 54px; /* 12vw at 450px */
        display: none; /* Hide on mobile based on original CSS */
    }
    
    /* Specific fix for exactly 1025px */
    @media (width: 769px) {
        #thu-about-content .hero-body .slider {
            display: block !important;
        }
        
        #thu-about-content .hero-body .slider .slide {
            display: block !important;
        }
    }
}

/* ==========================================================================
   RANKS SECTION
   ========================================================================== */

#thu-about-content .ranks {
    padding: 12px 0 24px 0; /* 1vw 0 2vw at 1200px */
}

#thu-about-content .ranks-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 50px; /* 1vw at 1200px */
}

#thu-about-content .ranks-title {
    font-size: 57.6px; /* 4.8vw at 1200px */
    font-weight: 900;
    margin: 0 24px; /* 0 2vw at 1200px */
}

#thu-about-content .ranks-body {
    width: 600px; /* 50vw at 1200px */
    margin: 0 auto;
}

#thu-about-content .ranks-body .number {
    line-height: 1;
}

#thu-about-content .ranks-body .in-number-est img {
    margin-left: auto;
    margin-right: auto;
}

#thu-about-content .ranks-placeholder-mobile {
    display: none;
}

@media (max-width: 768px) {
    #thu-about-content .ranks {
        padding: 4.5px 0 9px 0; /* 1vw 0 2vw at 450px */
    }

    #thu-about-content .ranks-header {
        margin-bottom: 40px; /* 1vw at 450px */
    }

    #thu-about-content .ranks-title {
        font-size: 37px; /* clamp min */
        margin: 0 9px; /* 0 2vw at 450px */
    }

    #thu-about-content .ranks-body {
        width: 405px; /* 90vw at 450px */
    }

    #thu-about-content .ranks-placeholder-mobile {
        display: block;
    }

    #thu-about-content .ranks-placeholder {
        display: none;
    }
}

/* ==========================================================================
   PRACTICAL SECTION
   ========================================================================== */

#thu-about-content .pratical {
    padding: 60px 0; /* 5vw at 1200px */
}

#thu-about-content .pratical-points-animation {
    width: 1080px; /* 90vw at 1200px */
    display: flex;
    justify-content: flex-end;
    margin-bottom: 24px; /* 2vw at 1200px */
}

#thu-about-content .pratical-body {
    width: 1080px; /* 90vw at 1200px */
    margin: 0 auto 60px; /* 0 auto 5vw at 1200px */
}

#thu-about-content .pratical-body-top{
    display: flex;
    gap: 72px; /* 6vw at 1200px */
}

#thu-about-content .pratical-circle-title {
    display: flex;
    justify-content: flex-end;
}

#thu-about-content .pratical-title-section{
    width: 37%;
    display: flex;
    flex-direction: column;
}

#thu-about-content .pratical-image-section {
    width: 60%;
}

#thu-about-content .pratical-image-section img {
    width: 90%;
    aspect-ratio: 16/9;
    height: auto;
    display: block;
}

#thu-about-content .pratical-title {
    font-size: 48px; /* 4vw at 1200px */
    font-weight: bold;
    margin-bottom: 12px; /* 1vw at 1200px */
    letter-spacing: 5px;
    line-height: 48px; /* 4vw at 1200px */
}

#thu-about-content .pratical-title span {
    font-size: 36px; /* 3vw at 1200px */
}

#thu-about-content .pratical-subtitle
#thu-about-content .pratical-content {
    font-size: 16.68px; /* 1.39vw at 1200px */
}

#thu-about-content .pratical-content {
    width: 26.5%;
    letter-spacing: 2px;
    margin-top: -96px; /* -8vw at 1200px */
    font-weight: 500;
}

#thu-about-content .pratical-content-section {
    width: 100%;
}

#thu-about-content .pratical-cards {
    width: 100%;
    max-width: 1020px; /* 85vw at 1200px */
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 24px; /* 2vw at 1200px */
}

#thu-about-content .pratical-card {
    width: 100%;
    height: 240px !important; /* 20vw at 1200px */
    display: block;
    opacity: 1 !important;
    padding: 18px; /* 1.5vw at 1200px */
}

#thu-about-content .pratical-card-title {
    font-size: 19.2px; /* 1.6vw at 1200px */
    font-weight: bold;
    margin-bottom: 6px; /* 0.5vw at 1200px */
}

#thu-about-content .pratical-card-img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    margin-bottom: 18px; /* 1.5vw at 1200px */
}

#thu-about-content .pratical-card-btn-box {
    display: flex;
    justify-content: center;
}

#thu-about-content .pratical-card-btn-box .btn {
    font-size: 14.4px; /* 1.2vw at 1200px */
    padding: 6px 18px; /* 0.5vw 1.5vw at 1200px */
    border-radius: 14.4px; /* 1.2vw at 1200px */
}

@media (max-width: 768px) {
    #thu-about-content .pratical {
        padding: 22.5px 0; /* 5vw at 450px */
    }

    #thu-about-content .pratical-points-animation {
        width: 405px; /* 90vw at 450px */
        margin-bottom: 9px; /* 2vw at 450px */
        display: none;
    }

    #thu-about-content .pratical-body {
        width: 405px; /* 90vw at 450px */
        margin: 0 auto 22.5px; /* 0 auto 5vw at 450px */
    }

    #thu-about-content .pratical-body-top {
        gap: 27px; /* 6vw at 450px */
        flex-direction: column;
    }

    #thu-about-content .pratical-title-section {
        flex-direction: row;
        gap: 9px; /* 2vw at 450px */
        margin-bottom: -63px; /* -14vw at 450px */
        z-index: 3;
        width: 100%;
    }

    #thu-about-content .pratical-image-section{
        width: 96%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    #thu-about-content .pratical-title {
        font-size: 34px; /* clamp min */
        margin-bottom: 4.5px; /* 1vw at 450px */
        line-height: 34px; /* clamp min */
    }

    #thu-about-content .pratical-title span {
        font-size: 26px; /* clamp min */
    }

    #thu-about-content .pratical-subtitle
    #thu-about-content .pratical-content {
        font-size: 14px; /* clamp min */
    }
    
    #thu-about-content .pratical-subtitle,
    #thu-about-content .pratical-content {
        width: 100%;
    }

    #thu-about-content .pratical-content {
        margin-top: 0;
    }
    
    #thu-about-content .pratical-content-section {
        padding: 28px;
        margin-left: -11px;
        margin-top: -20px;
    }

    #thu-about-content .pratical-cards {
        width: 382.5px; /* 85vw at 450px */
        gap: 9px; /* 2vw at 450px */
        display: block;
    }

    #thu-about-content .pratical-card {
        width: auto;
        height: 230px !important;
        aspect-ratio: 16/9;
        margin: 0 auto;
        overflow: hidden;
        border: none;
        padding: 6.75px; /* 1.5vw at 450px */
    }

    #thu-about-content .pratical-card-title {
        font-size: 21px; /* clamp min */
        margin-bottom: 2.25px; /* 0.5vw at 450px */
    }

    #thu-about-content .pratical-card-img {
        margin-bottom: 6.75px; /* 1.5vw at 450px */
    }

    #thu-about-content .pratical-card-btn-box .btn {
    background: linear-gradient(to right, #5be9b9, #5ee7c6) !important;
    border-radius: 50px;
    color: var(--white) !important;
    /* max-width: 130px; */
    /* height: 48px; */
    font-size: 10px !important;
    position: relative;
    white-space: nowrap;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
    font-weight: bold;
    display: block;
    /* margin-left: auto; */
    /* margin-right: auto; */
    text-align: center;
    padding: 11px 15px;
    }
    
    /* Slick carousel styles for mobile */
    #thu-about-content .pratical-cards .slick-list {
        padding-bottom: 35px !important;
        margin: 0 -10px;
        overflow: visible !important;
    }

    #thu-about-content .pratical-cards .slick-slide {
        margin: 0 10px;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        opacity: 0.6;
        transform: scale(0.9);
    }

    #thu-about-content .pratical-cards .slick-center {
        transform: scale(1.1);
        opacity: 1;
        z-index: 2;
    }
    
    /* Specific fix for exactly 1025px */
    @media (width: 769px) {
        #thu-about-content .pratical-cards {
            width: 980px;
        }
        
        #thu-about-content .pratical-card {
            height: 200px !important;
            padding: 15px;
        }
        
        #thu-about-content .pratical-card-title {
            font-size: 16px;
        }
        
        #thu-about-content .pratical-card-img {
            margin-bottom: 15px;
            width: 355px;
            height: 124px;
        }
        
        #thu-about-content .pratical-cards .slick-track {
            display: flex !important;
            align-items: center;
        }
        
        #thu-about-content .pratical-cards .slick-slide {
            opacity: 1 !important;
            transform: scale(0.95) !important;
        }
        
        #thu-about-content .pratical-cards .slick-slide.slick-center {
            transform: scale(1) !important;
            opacity: 1 !important;
        }
        
        #thu-about-content .pratical-cards .slick-slide:not(.slick-center) {
            opacity: 0.8 !important;
        }
        
        #thu-about-content .pratical-cards .slick-dots {
            bottom: -40px !important;
        }
        
        #thu-about-content .pratical-cards .slick-dots li button:before {
            font-size: 8px !important;
        }
    }
}

/* ==========================================================================
   CAREER SUPPORT SECTION
   ========================================================================== */

#thu-about-content .career-support {
    padding: 48px 0 120px; /* 4vw 0 10vw at 1200px */
    position: relative;
    overflow-x: hidden;
    z-index: 1;
}

#thu-about-content .career-support .animation-1 {
    width: 600px; /* 50vw at 1200px */
    position: absolute;
    top: 30%;
}

#thu-about-content .career-support .animation-2 {
    width: 600px; /* 50vw at 1200px */
    position: absolute;
    top: 5%;
    right: -30%;
    z-index: 2;
}

#thu-about-content .career-support-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 24px; /* 2vw at 1200px */
    z-index: 1000;
}

#thu-about-content .career-support-title-box {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#thu-about-content .career-support-title {
    color: var(--white);
    font-size: 60px; /* 5vw at 1200px */
    font-weight: 800;
}

#thu-about-content .career-support-subtitle {
    color: var(--white);
    font-size: 19.2px; /* 1.6vw at 1200px */
    font-weight: bold;
    line-height: 1;
}

#thu-about-content .career-support-body {
    width: 720px; /* 60vw at 1200px */
    margin: 0 auto 18px; /* 0 auto 1.5vw at 1200px */
    position: relative;
    z-index: 100;
}

#thu-about-content .career-support-body .slide .slider-img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border: 12px solid transparent; /* 1vw at 1200px */
    background:
        linear-gradient(white, white) padding-box,
        linear-gradient(90deg, #2D4a95, #0078a6) border-box;
    margin-bottom: 24px; /* 2vw at 1200px */
}

#thu-about-content .career-support-body .slide .slide-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px; /* 2vw at 1200px */
}

#thu-about-content .career-support-body .slide .slide-content .content {
    color: var(--white);
    font-size: 18px; /* 1.8vw at 1200px */
    font-weight: bold;
}

#thu-about-content .career-support-footer {
    width: 1080px; /* 90vw at 1200px */
    margin: 0 auto;
    display: flex;
    justify-content: flex-end;
}

#thu-about-content .career-support-footer .btn-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px; /* 1.5vw at 1200px */
}

@media (max-width: 768px) {
    #thu-about-content .career-support {
        padding: 18px 0 45px; /* 4vw 0 10vw at 450px */
    }

    #thu-about-content .career-support .animation-1 {
        width: 225px; /* 50vw at 450px */
    }

    #thu-about-content .career-support .animation-2 {
        width: 225px; /* 50vw at 450px */
    }

    #thu-about-content .career-support-header {
        width: 405px; /* 90vw at 450px */
        flex-direction: row;
        margin: 0 auto -16px; /* 0 auto -6vw at 450px */
        position: relative;
        z-index: 200;
    }

    #thu-about-content .career-support-title-box {
        align-items: flex-start;
    }

    #thu-about-content .career-support-title {
        font-size: 26px; /* clamp min */
        color: var(--blue);
    }

    #thu-about-content .career-support-subtitle {
        font-size: 15px; /* clamp min */
        color: var(--blue);
    }

    #thu-about-content .career-support-body {
        width: 405px; /* 90vw at 450px */
        /* width: 270px;  */
        margin: 0 auto 6.75px; /* 0 auto 1.5vw at 450px */
    }

    #thu-about-content .career-support-body .slide .slider-img {
        border: 10px solid transparent;
        margin-bottom: 9px;
        margin-left: 8px;
        width: 92%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    #thu-about-content .career-support-body .slide .slide-content {
        flex-direction: column-reverse;
        padding: 28px;
        margin-left: -19px;
        margin-top: -20px;
        gap: 9px; /* 2vw at 450px */
    }

    #thu-about-content .career-support-body .slide .slide-content .content {
        font-size: 16px; /* clamp min */
        color: var(--blue);
    }
    
    #thu-about-content .career-support-body .slide .btn {
        background: linear-gradient(to right, #5be9b9, #5ee7c6) !important;
        border-radius: 50px;
        color: var(--white) !important;
        /* max-width: 130px; */
        height: 19px;
        font-size: 11px !important;
        position: relative;
        white-space: nowrap;
        font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
        font-weight: bold;
        display: block;
        /* margin-left: auto; */
        /* margin-right: auto; */
        text-align: center;
        padding: 11px 15px;
    }

    #thu-about-content .career-support-footer {
        width: 420px; /* 90vw at 450px */
    }

    #thu-about-content .career-support-footer .btn-box {
        gap: 6.75px; /* 1.5vw at 450px */
    }
    
    #thu-about-content .career-support-footer .btn {
        font-size: 11px;
    }
}

/* ==========================================================================
   CAMPUS INTRODUCTION SECTION
   ========================================================================== */

#thu-about-content .campus-intro {
    padding: 12px 0 36px 0; /* 1vw 0 3vw at 1200px */
    overflow-x: hidden;
}

#thu-about-content .campus-intro-header {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#thu-about-content .campus-intro-header text {
    fill: var(--white);
}

#thu-about-content .campus-intro-header .campus-intro-title {
    color: var(--white);
    font-size: 60px; /* 5vw at 1200px */
    font-weight: 800;
    line-height: 1;
}

#thu-about-content .campus-intro-subtitle {
    color: var(--white);
    font-size: 14.4px; /* 1.2vw at 1200px */
    font-weight: bold;
}

#thu-about-content .campus-intro-body {
    width: 100%;
    position: relative;
    overflow-x: hidden;
}

#thu-about-content .campus-intro-body .slider {
    display: flex;
    align-items: center;
    scroll-snap-type: x mandatory;
    overflow-x: auto;
    gap: 96px; /* 8vw at 1200px */
    margin-bottom: 24px; /* 2vw at 1200px */
    padding: 24px 0; /* Remove horizontal padding to fix centering */
    /* scroll-behavior: smooth; */
    /* Prevent duplication by ensuring no wrapping */
    flex-wrap: nowrap;
    /* Ensure proper scroll boundaries */
    overscroll-behavior-x: contain;
    /* Add scroll padding to center cards properly */
    /* Formula: (viewport width - card width) / 2 */
    scroll-padding-inline: calc((100vw - 660px) / 2);
}

#thu-about-content .campus-intro-body .slider::-webkit-scrollbar {
    width: 10px;
}

#thu-about-content .campus-intro-body .slider::-webkit-scrollbar-track{
    background-color: var(--white);
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 276px solid transparent; /* 23vw at 1200px */
    border-right: 276px solid transparent; /* 23vw at 1200px */
    background-clip: padding-box;
}

#thu-about-content .campus-intro-body .slider::-webkit-scrollbar-thumb {
    background-color: var(--white);
    border-left: 210px  solid transparent; /* 23vw at 1200px */
    border-right: 210px  solid transparent; /* 23vw at 1200px */
    background-clip: padding-box;
}

#thu-about-content .campus-intro .slider .slider-card {
    width: 660px; /* 55vw at 1200px */
    height: 420px; /* 35vw at 1200px */
    flex: 0 0 660px; /* Explicitly set flex-basis to card width */
    scroll-snap-align: center;
    scroll-snap-stop: always; /* Force snap to stop at each card */
    transition: transform 0.3s, border 0.3s;
    display: flex;
    justify-content: center;
    align-items: center;
    /* Prevent overflow from scaled content */
    overflow: visible;
    /* Ensure proper spacing for scaled cards */
    position: relative;
}

/* Add padding to first and last cards so they can scroll to center */
#thu-about-content .campus-intro .slider .slider-card:first-child {
    margin-left: calc((100vw - 660px) / 2);
}

#thu-about-content .campus-intro .slider .slider-card:last-child {
    margin-right: calc((100vw - 660px) / 2);
}

#thu-about-content .campus-intro .slider .slide-content{
    width: 90%;
    transition: all .3s;
    /* Prevent overlap during scaling */
    transform-origin: center center;
}

#thu-about-content .campus-intro .slider .slider-card.active .slide-content{
    scale: 1.2;
    /* Remove negative margins that cause duplication */
}

/* Remove the problematic negative margin rules that cause visual duplication */
#thu-about-content .campus-intro .slider .slider-card:nth-child(1).active .slide-content {
    /* margin-right: -330px; REMOVED - causes duplication */
}

#thu-about-content .campus-intro .slider .slider-card:nth-child(2).active .slide-content {
    margin-left: 0;
}

#thu-about-content .campus-intro .slider .slider-card:nth-child(3).active .slide-content {
    /* margin-left: -332px; REMOVED - causes duplication */
}

#thu-about-content .campus-intro .slider .slider-card .img-box {
    width: 100%;
}

#thu-about-content .campus-intro .slider .slider-card.active .img-box {
    border: 18px solid var(--white); /* 1.5vw at 1200px */
    position: relative;
}

#thu-about-content .campus-intro .slider .slider-card .slider-img {
    width: 100%;
    height: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
}

#thu-about-content .campus-intro .slider .slider-card.active .img-box::before {
    content: "";
    width: 36px; /* 3vw at 1200px */
    height: 36px; /* 3vw at 1200px */
    border: 2px solid var(--blue);
    border-top: none;
    border-right: none;
    position: absolute;
    bottom: -4%;
    left: -2.5%;
    z-index: 100;
}

#thu-about-content .campus-intro .slider .slider-card.active .img-box::after {
    content: "";
    width: 36px; /* 3vw at 1200px */
    height: 36px; /* 3vw at 1200px */
    border: 2px solid var(--blue);
    border-left: none;
    border-bottom: none;
    position: absolute;
    top: -4%;
    right: -2.5%;
    z-index: 100;
}

#thu-about-content .campus-intro .slider .slider-card .slider-title {
    color: var(--white);
    font-weight: 900;
    padding: 3.6px 24px; /* 0.3vw 2vw at 1200px */
}

#thu-about-content .campus-intro .slider-indicator {
    display: flex;
    justify-content: center;
}

#thu-about-content .campus-intro .slider-indicator .range {
    width: 300px; /* 25vw at 1200px */
    height: 12px; /* 1vw at 1200px */
    position: relative;
}

#thu-about-content .campus-intro .slider-indicator .range::before {
    content: "";
    width: 100%;
    height: 3.6px; /* 0.3vw at 1200px */
    background-color: var(--white);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

#thu-about-content .campus-intro .slider-indicator .range .point {
    width: 30px; /* 2.5vw at 1200px */
    height: 100%;
    background-color: var(--white);
    position: absolute;
    left: 10%;
}

@media (max-width: 768px) {
    #thu-about-content .campus-intro {
        padding: 4.5px 0 13.5px 0; /* 1vw 0 3vw at 450px */
    }

    #thu-about-content .campus-intro-header .campus-intro-title {
        font-size: 44px; /* clamp min */
    }

    #thu-about-content .campus-intro-subtitle {
        font-size: 11px; /* clamp min */
    }

    #thu-about-content .campus-intro-body .slider {
        gap: 36px; /* 8vw at 450px */
        margin-bottom: 9px; /* 2vw at 450px */
    }

    #thu-about-content .campus-intro-body .slider::-webkit-scrollbar-track {
        border-left: 103.5px solid transparent; /* 23vw at 450px */
        border-right: 103.5px solid transparent; /* 23vw at 450px */
    }

    #thu-about-content .campus-intro-body .slider::-webkit-scrollbar-thumb {
        border-left: 103.5px solid transparent; /* 23vw at 450px */
        border-right: 103.5px solid transparent; /* 23vw at 450px */
    }

    #thu-about-content .campus-intro .slider .slider-card {
        width: 247.5px; /* 55vw at 450px */
        height: 157.5px; /* 35vw at 450px */
        flex: 0 0 247.5px;
    }
    
    /* Mobile: Add padding to first and last cards for centering */
    #thu-about-content .campus-intro .slider .slider-card:first-child {
        margin-left: calc((100vw - 247.5px) / 2);
    }

    #thu-about-content .campus-intro .slider .slider-card:last-child {
        margin-right: calc((100vw - 247.5px) / 2);
    }

    #thu-about-content .campus-intro .slider .slider-card.active .img-box {
        border: 6.75px solid var(--white); /* 1.5vw at 450px */
    }

    #thu-about-content .campus-intro .slider .slider-card.active .img-box::before {
        width: 13.5px; /* 3vw at 450px */
        height: 13.5px; /* 3vw at 450px */
    }

    #thu-about-content .campus-intro .slider .slider-card.active .img-box::after {
        width: 13.5px; /* 3vw at 450px */
        height: 13.5px; /* 3vw at 450px */
    }

    #thu-about-content .campus-intro .slider .slider-card .slider-title {
        padding: 1.35px 9px; /* 0.3vw 2vw at 450px */
    }

    #thu-about-content .campus-intro .slider-indicator .range {
        width: 112.5px; /* 25vw at 450px */
        height: 4.5px; /* 1vw at 450px */
    }

    #thu-about-content .campus-intro .slider-indicator .range::before {
        height: 1.35px; /* 0.3vw at 450px */
    }

    #thu-about-content .campus-intro .slider-indicator .range .point {
        width: 11.25px; /* 2.5vw at 450px */
    }
}

/* Tablet responsive design (1025px and below) */
@media (max-width: 768px) {
    #thu-about-content .campus-intro-body .slider .slick-track {
        position: relative !important;
        display: flex !important;
        width: auto !important;
    }

    #thu-about-content .campus-intro-body .slider .slick-slide {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
    }

    #thu-about-content .campus-intro-body .slider .slick-slide:not(.slick-center) .slider-card {
        width: 450px; /* Adjusted for tablet */
        margin: 0 auto;
    }

    #thu-about-content .campus-intro-body .slider .slick-slide:not(.slick-center) .img-box {
        opacity: 0.7;
        transform: scale(0.95);
        border: none;
    }

    #thu-about-content .campus-intro-body .slider .slick-center .slider-card {
        width: 550px; /* Adjusted for tablet */
        margin: 0 auto;
    }

    #thu-about-content .campus-intro-body .slider .slick-center .img-box {
        border: 12px solid var(--white); /* Adjusted for tablet */
        opacity: 1;
        transform: scale(1);
    }

    #thu-about-content .campus-intro-body .slider .slick-center .img-box::before {
        width: 30px; /* Adjusted for tablet */
        height: 30px; /* Adjusted for tablet */
        border-width: 2px;
        top: 85%;
        left: -2%;
    }

    #thu-about-content .campus-intro-body .slider .slick-center .img-box::after {
        width: 30px; /* Adjusted for tablet */
        height: 30px; /* Adjusted for tablet */
        border-width: 2px;
        top: -5%;
        right: -2%;
    }
    
    /* Specific fix for 1025px */
    @media (width: 769px) {
        #thu-about-content .campus-intro-body .slider .slick-slide:not(.slick-center) .slider-card {
            width: 480px;
        }
        
        #thu-about-content .campus-intro-body .slider .slick-center .slider-card {
            width: 580px;
        }
    }
}

/* Mobile responsive design */
@media (max-width: 768px) {
    #thu-about-content .campus-intro-body .slider .slick-track {
        position: relative !important;
        display: flex !important;
        width: auto !important;
    }

    #thu-about-content .campus-intro-body .slider .slick-slide {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
    }

    #thu-about-content .campus-intro-body .slider .slick-slide:not(.slick-center) .slider-card {
        width: 315px; /* 70vw at 450px */
        margin: 0 auto;
    }

    #thu-about-content .campus-intro-body .slider .slick-slide:not(.slick-center) .img-box {
        opacity: 0.5;
        transform: scale(0.9);
        border: none;
    }

    #thu-about-content .campus-intro-body .slider .slick-center .slider-card {
        width: 405px; /* 90vw at 450px */
        margin: 0 auto;
    }

    #thu-about-content .campus-intro-body .slider .slick-center .img-box {
        border: 9px solid var(--white); /* 2vw at 450px */
        opacity: 1;
        transform: scale(1);
    }

    #thu-about-content .campus-intro-body .slider .slick-center .img-box::before {
        width: 27px; /* 6vw at 450px */
        height: 27px; /* 6vw at 450px */
        border-width: 3px;
        top: 88%;
        left: -3%;
    }

    #thu-about-content .campus-intro-body .slider .slick-center .img-box::after {
        width: 27px; /* 6vw at 450px */
        height: 27px; /* 6vw at 450px */
        border-width: 3px;
        top: -6%;
        right: -3%;
    }
}

/* ==========================================================================
   VIDEO SECTION
   ========================================================================== */

#thu-about-content .video {
    width: 100%;
    max-width: 1020px; /* 85vw at 1200px */
    margin: 0 auto;
    padding: 60px 0; /* 5vw at 1200px */
    display: flex;
    justify-content: center;
    position: relative;
}

#thu-about-content .video-center {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

#thu-about-content .video-left {
    padding: 60px 0; /* 5vw at 1200px */
    position: absolute;
    left: 0;
    top: 0;
}

#thu-about-content .video-right {
    position: absolute;
    right: 0;
    bottom: 0;
}

#thu-about-content .video .star-animation{
    display: block;
}

#thu-about-content .video-center .video-placeholder {
    width: 480px; /* 40vw at 1200px */
    height: 300px; /* 25vw at 1200px */
    color: var(--white);
    background-color: #d7deeb;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 100;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#thu-about-content .video-center .video-placeholder:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

#thu-about-content .video-center .video-placeholder svg {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.2s ease;
}

#thu-about-content .video-center .video-placeholder:hover svg {
    transform: translate(-50%, -50%) scale(1.1);
}

#thu-about-content .video-center .video-placeholder p {
    font-size: 18px; /* 1.5vw at 1200px */
    z-index: 200;
    margin: 0;
    text-align: center;
}

#thu-about-content .video-center .video-placeholder h3 {
    font-weight: 900;
    font-size: 21.6px; /* 1.8vw at 1200px */
    z-index: 200;
    margin: 6px 0 0 0; /* 0.5vw at 1200px */
    text-align: center;
}

@media (max-width: 768px) {
    #thu-about-content .video {
        width: 405px; /* 90vw at 450px */
        gap: 13.5px; /* 3vw at 450px */
        padding: 36px 0; /* 8vw at 450px */
        position: relative;
        background: #FAFEFF;
    }

    #thu-about-content .video-left {
        padding: 22.5px 0; /* 5vw at 450px */
        left: -22.5px; /* -5vw at 450px */
    }

    #thu-about-content .video-right {
        right: -40.5px; /* -9vw at 450px */
        bottom: -36px; /* -8vw at 450px */
    }

    #thu-about-content .video-center .video-placeholder {
        width: 405px; /* 90vw at 450px */
        height: 225px; /* 50vw at 450px */
        /* width: 180px; 40vw at 450px */
        /* height: 112.5px; 25vw at 450px */
    }

    #thu-about-content .video-center .video-placeholder p {
        font-size: 14px;
    }

    #thu-about-content .video-center .video-placeholder h3 {
        font-size: 18px;
    }
}

/* ==========================================================================
   TEACHER DISTANCE SECTION
   ========================================================================== */

#thu-about-content .teacher-distance {
    padding: 60px 0; /* 5vw at 1200px */
    background-color: #F7F9FB;
}

#thu-about-content .teacher-distance-header {
    width: 100%;
    max-width: 1020px; /* 85vw at 1200px */
    margin: 0 auto 48px; /* 0 auto 4vw at 1200px */
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 48px; /* 4vw at 1200px */
}

#thu-about-content .teacher-distance-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px; /* 2vw at 1200px */
}

#thu-about-content .teacher-distance-circle {
    align-self: flex-end;
    margin-bottom: -10%;
}

#thu-about-content .teacher-distance-text {
    max-width: 90%;
}

#thu-about-content .teacher-distance-title {
    font-size: 48px; /* 4vw at 1200px */
    font-weight: 900;
    line-height: .7;
    margin-bottom: 12px; /* 1vw at 1200px */
    color: var(--blue);
}

#thu-about-content .teacher-distance-subtitle {
    font-size: 15.6px; /* 1.3vw at 1200px */
    font-weight: bold;
    color: var(--blue);
    margin-bottom: 18px; /* 1.5vw at 1200px */
    line-height: 1.4;
    width: 70%;
}

#thu-about-content .teacher-distance-image {
    flex: 0 0 auto;
    width: 40%;
}

#thu-about-content .teacher-distance-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
    border-radius: 36px; /* 3vw at 1200px */
    margin-top:106px;
}

#thu-about-content .teacher-distance-body {
    width: 100%;
    max-width: 1020px; /* 85vw at 1200px */
    margin: 0 auto 24px; /* 0 auto 2vw at 1200px */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 36px; /* 3vw at 1200px */
}

#thu-about-content .teacher-distance-description {
    width: 480px; /* 40vw at 1200px device width */
    align-self: flex-start;
    font-size: 20px;
    line-height: 1.6;
    color: var(--blue);
    /* margin-top: -108px; */
    font-weight: normal;
}

#thu-about-content .teacher-distance-feature {
    width: 100%;
    text-align: center;
}

#thu-about-content .teacher-distance-feature-img {
    width: 100%;
    height: 300px; /* 25vw at 1200px */
    object-fit: cover;
    display: block;
    margin: 0 auto;
    border-radius: 36px; /* 3vw at 1200px */
}

#thu-about-content .teacher-distance-actions {
    display: flex;
    gap: 24px; /* 2vw at 1200px */
    justify-content: center;
    flex-wrap: wrap;
}

#thu-about-content .teacher-distance-btn {
    white-space: nowrap;
}

@media (max-width: 768px) {
    #thu-about-content .teacher-distance {
        padding: 36px 0; /* 8vw at 450px */
        background-color: var(--white);
    }

    #thu-about-content .teacher-distance-header {
        width: 405px; /* 90vw at 450px */
        margin: 0 auto 18px; /* 0 auto 4vw at 450px */
        flex-direction: column;
        gap: 27px; /* 6vw at 450px */
    }

    #thu-about-content .teacher-distance-content {
        width: 100%;
        gap: 9px; /* 2vw at 450px */
    }

    #thu-about-content .teacher-distance-circle {
        align-self: center;
        margin-bottom: 0;
    }

    #thu-about-content .teacher-distance-text {
        max-width: 100%;
        text-align: center;
    }

    #thu-about-content .teacher-distance-title {
        font-size: 34px; /* clamp min */
        margin-bottom: 4.5px; /* 1vw at 450px */
    }

    #thu-about-content .teacher-distance-subtitle {
        font-size: 16px; /* clamp min */
        margin-bottom: 6.75px; /* 1.5vw at 450px */
        width: 100%;
    }

    #thu-about-content .teacher-distance-image {
        display: none;
    }
    
    #thu-about-content .teacher-distance-img {
        border-radius: 13.5px; /* 3vw at 450px */
    }

    #thu-about-content .teacher-distance-body {
        width: 405px;
        margin: 0 auto 9px; /* 0 auto 2vw at 450px */
        gap: 18px;
        flex-direction: column-reverse;
        font-size: 9px !important;
        padding: 2px 15px !important;
        border-radius: 15px !important;
    }

    #thu-about-content .teacher-distance-description {
        width: 100%;
        font-size: 14px;
        margin-top: 0;
    }

    #thu-about-content .teacher-distance-feature-img {
        height: 225px; /* 50vw at 450px */
        /* height: 112.5px; 25vw at 450px */
        border-radius: 13.5px; /* 3vw at 450px */
    }

    #thu-about-content .teacher-distance-actions {
        gap: 9px; /* 2vw at 450px */
    }

    #thu-about-content .teacher-distance-btn {
    background: linear-gradient(to right, #5be9b9, #5ee7c6) !important;
    border-radius: 50px;
    color: var(--white) !important;
    /* max-width: 130px; */
    height: 31px;
    font-size: 17px !important;
    position: relative;
    white-space: nowrap;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
    font-weight: bold;
    display: block;
    /* margin-left: auto; */
    /* margin-right: auto; */
    text-align: center;
    padding: 11px 15px;
    }
}

/* ==========================================================================
   ABOUT US SECTION
   ========================================================================== */

#thu-about-content .about-us {
    padding: 60px 0; /* 5vw at 1200px */
}

#thu-about-content .about-us-header {
    /* width: 720px; */
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 auto 48px; /* 0 auto 4vw at 1200px */
}

#thu-about-content .about-us-title-box {
    margin-bottom: 24px; /* 2vw at 1200px */
}

#thu-about-content .about-us-title {
    font-size: 48px; /* 4vw at 1200px */
    font-weight: 900;
    line-height: 1.2;
    color: var(--blue);
}

#thu-about-content .about-us-subtitle {
    font-size: 24px; /* 2vw at 1200px */
    font-weight: bold;
    color: var(--blue);
    margin-bottom: 18px; /* 1.5vw at 1200px */
}

#thu-about-content .about-us-content {
    font-size: 16.8px; /* 1.4vw at 1200px */
    font-weight: 500;
    line-height: 1.6;
    text-align: start;
    color: var(--blue);
}

#thu-about-content .about-us-body {
    width: 100%;
    max-width: 1020px; /* 85vw at 1200px */
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin: 0 auto;
    gap: 0;
}

#thu-about-content .about-us-card-left-container,
#thu-about-content .about-us-card-right-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

#thu-about-content .about-us-card-right-container {
    border-left: 3px solid var(--blue);
}

#thu-about-content .about-us-card {
    width: 100%;
    min-height: 215px; /* 16vw at 1200px */
    border-right: 3px solid var(--blue);
    border-bottom: 3px solid var(--blue);
    display: flex;
    flex-direction: column;
    background-color: var(--white);
    transition: background-color 0.3s ease;
}

#thu-about-content .about-us-card:hover {
    background-color: var(--grey);
}

/* Remove right border for last column items */
#thu-about-content .about-us-card:nth-child(2n) {
    border-right: none;
}

#thu-about-content .about-us-card .svg-card {
    width: 100%;
    height: 70%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 24px; /* 2vw at 1200px */
    box-sizing: border-box;
}

#thu-about-content .about-us-card .svg-card .about-us-icon {
    width: 100px;
    vertical-align: middle;
    transition: all .3s ease-in-out;
}

#thu-about-content .about-us-card:hover .svg-card .about-us-icon {
    transform: rotateY(-180deg);
}

#thu-about-content .about-us-card a {
    display: block;
    text-align: center;
    padding: 12px 6px; /* 1vw 0.5vw at 1200px */
    font-size: 14.4px; /* 1.2vw at 1200px */
    font-weight: bold;
    color: var(--blue);
    text-decoration: none;
    line-height: 1.3;
    transition: color 0.3s ease;
    height: 30%;
    display: flex;
    align-items: center;
    justify-content: center;
}

#thu-about-content .about-us-card a:hover {
    color: var(--turquoise);
}

#thu-about-content .about-us-card:empty {
    min-height: 60px; /* 5vw at 1200px */
}

#thu-about-content .about-us-card-left-container .about-us-card:nth-last-of-type(1),
#thu-about-content .about-us-card-left-container .about-us-card:nth-last-of-type(2),
#thu-about-content .about-us-card-right-container .about-us-card:nth-last-of-type(1),
#thu-about-content .about-us-card-right-container .about-us-card:nth-last-of-type(2) {
    border-bottom: none;
}

#thu-about-content .about-us-card .text-underline {
    /* text-decoration: underline; */
}

@media (max-width: 768px) {
    #thu-about-content .about-us {
        padding: 36px 0; /* 8vw at 450px */
        /* padding: 22.5px 0; 5vw at 450px */
    }

    /* #thu-about-content .about-us-header {
        width: 405px;
        margin: 0 auto 18px;
        gap: 18px;
        flex-direction: column-reverse;
        font-size: 9px !important;
        padding: 2px 15px !important;
        border-radius: 15px !important;
    } */

    #thu-about-content .about-us-title-box {
        margin-bottom: 9px; /* 2vw at 450px */
    }

    #thu-about-content .about-us-title {
        font-size: 30px; /* clamp min */
    }

    #thu-about-content .about-us-subtitle {
        font-size: 16px; /* clamp min */
        margin-bottom: 6.75px; /* 1.5vw at 450px */
    }

    #thu-about-content .about-us-content {
        font-size: 14px; /* clamp min */
    }

    #thu-about-content .about-us-body {
        width: 405px; /* 90vw at 450px */
        /* width: 382.5px; 85vw at 450px */
        grid-template-columns: repeat(1, 1fr);
        border-top: none;
    }

    #thu-about-content .about-us-card-right-container {
        border: none;
    }

    #thu-about-content .about-us-card {
        min-height: 180px; /* 40vw at 450px */
        /* min-height: 72px; 16vw at 450px */
        border: none;
    }

    #thu-about-content .about-us-card:nth-of-type(odd) {
        border-right: 3px solid var(--blue);
    }

    #thu-about-content .about-us-card .svg-card {
        height: 65%;
        padding: 13.5px; /* 3vw at 450px */
        /* padding: 9px; 2vw at 450px */
    }

    #thu-about-content .about-us-card a {
        font-size: 14px;
        /* font-size: 12px; clamp min */
        padding: 9px 4.5px; /* 2vw 1vw at 450px */
        /* padding: 4.5px 2.25px; 1vw 0.5vw at 450px */
        height: 35%;
    }

    #thu-about-content .about-us-card:empty {
        display: none;
        /* min-height: 22.5px; 5vw at 450px */
    }

    #thu-about-content .about-us-card .text-underline{
        text-decoration: none;
    }
}

/* ==========================================================================
   PRESIDENT MESSAGE SECTION
   ========================================================================== */

#thu-about-content .message-president {
    background: url('../img/about/message_from_president_bg.png') top/cover no-repeat;
    padding: 20px 0;
}

#thu-about-content .message-president-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 60px; /* 5vw at 1200px */
}

#thu-about-content .message-president-title {
    color: var(--aqua);
    font-family: var(--font-english);
    font-size: 60px; /* 5vw at 1200px */
    font-weight: 800;
    line-height: 60px; /* 5vw at 1200px */
    margin-bottom: 12px; /* 1vw at 1200px */
}

#thu-about-content .message-president-subtitle {
    color: var(--white);
    font-size: 19px;
    font-weight: bold;
    margin-bottom: 1vw;
}

#thu-about-content .message-president-img-box {
    width: 480px; /* 40vw at 1200px */
    aspect-ratio: 4/3;
    position: relative;
}

#thu-about-content .message-president-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#thu-about-content .img-label-box {
    width: 420px; /* 35vw at 1200px */
    background-color: var(--white);
    padding: 12px 24px 12px 12px; /* 1vw 2vw 1vw 1vw at 1200px */
    position: absolute;
    right: -20%;
    bottom: -15%;
    display: flex;
    justify-content: space-between;
    gap: 24px; /* 2vw at 1200px */
}

#thu-about-content .president-info .position {
    font-size: 24px; /* 2vw at 1200px */
    font-weight: normal;
    line-height: 1;
    margin: 0;
}

#thu-about-content .president-info .name {
    font-size: 38.4px; /* 3.2vw at 1200px */
    letter-spacing: 8.4px; /* 0.7vw at 1200px */
    font-weight: bold;
    line-height: 1;
    margin: 0;
    white-space: nowrap; 
}

#thu-about-content .president-name-romaji {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

#thu-about-content .name-romaji {
    font-size: 20px; /* 2vw at 1200px */
    margin: 0;
}

#thu-about-content .message-president-body {
    width: 960px; /* 80vw at 1200px */
    margin: 0 auto 24px; /* 0 auto 2vw at 1200px */
    border: 0.5px solid #ccc;
    padding: 2px;
}

#thu-about-content .message-box {
    background-color: var(--white);
    padding: 42px 24px 12px 24px; /* 3.5vw 2vw 1vw 2vw at 1200px */
}

#thu-about-content .message,
#thu-about-content .sign {
    font-size: 22px; /* clamp max */
    letter-spacing: 2px;
    color: var(--black);
    margin: 0;
}

@media (min-width: 1026px) {
#thu-about-content .message {
/* 1. 重要な設定: 枠線を下だけに適用 */
    border-bottom: 1px dotted #1B2D73; /* 例: 1pxの青い実線 */
    
    /* 2. 要素をブロックレベルにする (幅いっぱいに広がるようにする) */
    display: block; 

    /* 3. 文字と下線の間に隙間を設ける */
    /* padding-bottom: 5px; */
}
}
#thu-about-content .message.sp{
    display: none;
}

#thu-about-content .sign {
    font-weight: bold;
    display: flex;
    justify-content: end;
}

#thu-about-content .message-president-footer {
    display: flex;
    justify-content: center;
}

@media (max-width: 768px) {
    #thu-about-content .message-president-header {
        margin-bottom: 54px; /* 12vw at 450px */
        /* margin-bottom: 22.5px; 5vw at 450px */
    }

    #thu-about-content .message-president-title {
        font-size: 30px;
        line-height: 37.5px;
        margin-bottom: 4.5px;
    }

    #thu-about-content .message-president-img-box {
        width: 405px; /* 90vw at 450px */
        /* width: 180px; 40vw at 450px */
    }

    #thu-about-content .img-label-box {
        width: 300px; /* clamp min */
        padding: 4.5px 9px 4.5px 4.5px; /* 1vw 2vw 1vw 1vw at 450px */
        gap: 9px; /* 2vw at 450px */
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }

    #thu-about-content .president-info .position {
        font-size: 17px; /* clamp min */
    }

    #thu-about-content .president-info .name {
        font-size: 34px; /* clamp min */
        letter-spacing: 3.15px; /* 0.7vw at 450px */
    }

    #thu-about-content .name-romaji {
        font-size: 17px; /* clamp min */
    }

    #thu-about-content .message-president-body {
        width: 405px; /* 90vw at 450px */
        /* width: 360px; 80vw at 450px */
        margin: 0 auto 9px; /* 0 auto 2vw at 450px */
    }

    #thu-about-content .message-box {
        padding: 15.75px 9px 4.5px 9px; /* 3.5vw 2vw 1vw 2vw at 450px */
    }

    #thu-about-content .message,
    #thu-about-content .sign {
        font-size: 17px; /* clamp min */
        
    }

    #thu-about-content .message-president .btn {
    background: linear-gradient(to right, #5be9b9, #5ee7c6) !important;
    border-radius: 50px;
    color: var(--white) !important;
    /* max-width: 130px; */
    height: 32px;
    font-size: 17px !important;
    position: relative;
    white-space: nowrap;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, sans-serif;
    font-weight: bold;
    display: block;
    /* margin-left: auto; */
    /* margin-right: auto; */
    text-align: center;
    padding: 11px 15px;
    }

    #thu-about-content .message.pc{
        display: none;
    }

    #thu-about-content .message.sp{
        display: block;
    }
}

/* ==========================================================================
   FAQ SECTION
   ========================================================================== */

#thu-about-content .faq{
    width: 660px; /* 55vw at 1200px */
    margin: 0 auto;
    padding: 48px 0; /* 4vw at 1200px */
}

#thu-about-content .faq-header-title{
    text-align: center;
    color: var(--aqua);
    font-family: var(--font-english);
    font-size: 72px; /* 6vw at 1200px */
    line-height: 1;
    font-weight: bold;
}

#thu-about-content .faq-header-subtitle{
    text-align: center;
    font-size: 24px; /* 2vw at 1200px */
    font-weight: bold;
    margin-bottom: 72px; /* 6vw at 1200px */
}

#thu-about-content .faq-answer a{
    text-decoration: underline ;
    text-decoration-color: var(--blue);
}

#thu-about-content .faq-item {
    margin-bottom: 24px; /* 2vw at 1200px */
}

#thu-about-content .faq-question {
    width: 100%;
    cursor: pointer;
    font-size: 18px; /* 1.5vw at 1200px */
    line-height: 1;
    display: flex;
    align-items: center;
    border-bottom: 2px solid var(--blue);
}

#thu-about-content .faq-label{
    color: var(--white);
    font-size: 14.6px; /* 1.3vw at 1200px */
    background-color: var(--blue);
    padding: 4.8px 12px; /* 0.4vw 1vw at 1200px */
    margin-right: 12px; /* 1vw at 1200px */
    /* font-weight: bold; */
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, sans-serif !important;
}

#thu-about-content .faq-title{
    font-size: 24px; /* 2vw at 1200px */
    text-align: left;
    flex: 1;
    font-weight: bold;
}

#thu-about-content .faq-toggle {
    font-size: 24px; /* 2vw at 1200px */
    margin-left: 12px; /* 1vw at 1200px */
}

#thu-about-content .faq-answer{
    max-height: 0;
    overflow: hidden;
    transition:  max-height 0.3s ease;
    font-size: 15.6px; /* 1.3vw at 1200px */
    padding: 12px 0 0 60px; /* 1vw 0 0 5vw at 1200px */
}

#thu-about-content .faq-item.active .faq-answer{
    max-height: 200px;
}

#thu-about-content .faq-item.active .faq-toggle{
    content: "-";
}

@media (max-width: 768px) {
    #thu-about-content .faq {
        width: 405px; /* 90vw at 450px */
        /* width: 247.5px; 55vw at 450px */
        /* padding: 18px 0; 4vw at 450px */
    }

    #thu-about-content .faq-header-title {
        font-size: 76px; /* clamp min */
    }

    #thu-about-content .faq-header-subtitle {
        font-size: 17px; /* clamp min */
        margin-bottom: 27px; /* 6vw at 450px */
    }

    #thu-about-content .faq-item {
        margin-bottom: 27px; /* 6vw at 450px */
        /* margin-bottom: 9px; 2vw at 450px */
    }

    #thu-about-content .faq-question {
        font-size: 6.75px; /* 1.5vw at 450px */
    }

    #thu-about-content .faq-label {
        font-size: 13px; /* clamp min */
        padding: 1.8px 4.5px; /* 0.4vw 1vw at 450px */
        margin-right: 4.5px; /* 1vw at 450px */
    }

    #thu-about-content .faq-title {
        font-size: 16px; /* clamp min */
    }

    #thu-about-content .faq-toggle {
        font-size: 17px; /* clamp min */
        margin-left: 4.5px; /* 1vw at 450px */
        margin-right: 17px;
    }

    #thu-about-content .faq-answer {
        font-size: 13px; /* clamp min */
        padding: 4.5px 0 0 22.5px; /* 1vw 0 0 5vw at 450px */
    }
}

/* ==========================================================================
   RESPONSIVE BASE ADJUSTMENTS
   ========================================================================== */

@media (max-width: 768px) {
  #thu-about-content html {
    background-color: #f5f5f5;
    /* Light gray background for side spaces */
  }

  #thu-about-content body {
    max-width: 450px;
    width: 100%;
    margin: 0 auto !important;
    background-color: #ffffff;
  }
}