/* All styles consolidated into this file */

/* Font Face Declarations */
@font-face {
    font-family: 'BankGothic Md BT';
    src: url('../Assets/fonts/BankGothic Md BT.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'BankGothic Md BT';
    src: url('../Assets/fonts/BankGothicMediumBT.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'BankGothic Md BT';
    src: url('../Assets/fonts/BankGothic Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'BankGothic';
    src: url('../Assets/fonts/Bank Gothic Light Regular.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
}

/* Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Updated Figma Color Palette */
    --primary-bg: rgb(0, 0, 0);
    /* #0A120A */
    --hero-bg: rgb(255, 255, 255);
    /* #FFFFFF */
    --accent-gradient-start: rgb(0, 255, 87);
    /* #00FF57 - More vibrant green from Figma */
    --accent-gradient-end: rgb(0, 219, 92);
    /* #00DB5C */
    --text-primary: rgb(255, 255, 255);
    /* #FFFFFF */
    --text-dark: rgb(0, 0, 0);
    /* #000000 */
    --text-secondary: rgba(255, 255, 255, 0.8);
    --border-color: rgba(255, 255, 255, 0.1);
    --card-bg: rgba(255, 255, 255, 0.05);
    --card-border: rgba(255, 255, 255, 0.1);

    /* Font Families */
    --font-english: 'BankGothic Md BT', 'BankGothic', monospace;
    --font-japanese: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mixed: var(--font-japanese);

    /* Typography Scale from Figma */
    --font-size-12: 12px;
    --font-size-14: 14px;
    --font-size-16: 16px;
    --font-size-18: 18px;
    --font-size-20: 20px;
    --font-size-24: 24px;
    --font-size-28: 28px;
    --font-size-32: 32px;
    --font-size-48: 48px;

    /* Line Heights from Figma */
    --line-height-auto: auto;
    --line-height-26: 26px;
    --line-height-32: 32px;
    --line-height-38: 38px;

    /* Page Dimensions */
    --page-width: 1366px;
    --hero-height: 768px;
}

/* Font Loading */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=BankGothic:wght@400;500&display=swap');

body {
    background-color: #000;
    color: white;
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    position: relative;
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

/* Fixed Header Compensation for Non-Homepage Pages */
body:not(.homepage) {
    padding-top: 60px;
}

/* Fixed Header Compensation for Homepage */
body.homepage {
    padding-top: 40px;
}

/* Mobile Header Compensation */
@media (max-width: 768px) {
    body:not(.homepage) {
        padding-top: 70px;
    }
    
    body.homepage {
        padding-top: 70px;
    }
}

/* English/Numeric text styling */
.en-text,
.numeric-text {
    font-family: var(--font-english);
}

/* Japanese text styling */
.jp-text {
    font-family: var(--font-japanese);
}

/* Container Styles */
.section-container {
    max-width: var(--page-width);
    margin: 0 auto;
    position: relative;
}

.main-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    text-align: center;
    padding: 100px 0;
}

.title-section {
    width: 100%;
}

.main-title {
    display: flex;
    flex-direction: column;
    color: #FFF;
    text-align: center;
    font-family: 'BankGothic Md BT', sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    margin-bottom: 4px;
}

.sub-title {
    color: #FFF;
    text-align: center;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.content-sections {
    text-align: left;
}

/* .content-section {
    margin-bottom: 60px;
} */

.linecse-title {
    align-self: stretch;
    color: #FFF;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    margin-bottom: 16px;
}

.linecse-description {
    align-self: stretch;
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 26px;
    /* 162.5% */
}

.email-link {
    color: #109A4A;
    text-decoration: none;
}

.content-pageback {
    color: #109A4A;
    text-align: center;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
    font-family: 'BankGothic Md BT', sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 30px;
    /* 187.5% */
    text-decoration: none;
}

/* News page styles */
.news-container {
    width: 100%;
    max-width: var(--page-width);
    margin-bottom: 60px;
}

.news-list {
    margin-bottom: 40px;
}

.news-lists {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 90px;
}

.news-item {
    width: 100%;
}

.news-mainframe {
    display: block;
    text-decoration: none;
    color: inherit;
    width: 100%;
}

.news-mainframe:hover {
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

.news-line {
    width: 100%;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.2);
    margin: 0;
}

.news-content {
    display: flex;
    align-items: center;
    padding: 12px 2.5px;
    height: 40px;
}

.news-date {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-weight: 400;
    width: 88px;
    flex-shrink: 0;
}

.news-title {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-weight: 400;
    margin-left: 46px;
    flex: 1;
}

.news-button {
    margin-left: auto;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-button img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.new-button {
    margin-left: auto;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pagination-section {
    margin-bottom: 40px;
}

.pagination-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 50px;
}

.nav-button {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #FFF;
    text-align: center;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
    font-family: 'BankGothic Md BT', sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 30px;
    /* 187.5% */
}

.nav-button img {
    width: 40px;
    height: 40px;
}

.pagination {
    display: flex;
    align-items: center;
    gap: 16px;
}

.page-number {
    width: 50px;
    height: 50px;
    border-radius: 8px;
    background-color: rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 16px;
    font-weight: 400;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.page-number.active {
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    color: var(--text-dark);
}

.page-number:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.page-number.active:hover {
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
}

.page-dots {
    display: flex;
    align-items: center;
    gap: 12px;
}

.dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.4);
}

/* News Details page styles */
.news-detail-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    text-align: center;
    padding: 100px 250px;
}

.news-detail-frame {
    width: 100%;
    max-width: 833px;
    margin: 0 auto;
}

.news-detail-header {
    text-align: left;
    margin-bottom: 64px;
}

.news-detail-title-section {
    width: 100%;
}

.news-detail-main-title {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin-bottom: 4px;
    display: flex;
    flex-direction: column;
}

.news-detail-sub-title {
    color: #FFF;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.news-detail-content {
    text-align: left;
    margin-bottom: 90px;
}

.news-detail-article-header {
    margin-bottom: 40px;
}

.news-detail-date {
    color: #ccc;
    font-family: Inter;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 32px;
    margin-bottom: 10px;
}

.news-detail-article-title {
    color: #109A4A;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 32px;
    margin: 0;
}

.news-detail-article-content {
    margin-top: 40px;
}

.news-detail-article-text {
    color: #ccc;
    font-family: Inter;
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: 36px;
    margin: 0;
}

.news-detail-back-section {
    margin-top: 60px;
    text-align: center;
}

.news-detail-page-back {
    color: #109A4A;
    text-align: center;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 30px;
    text-decoration: none;
    display: inline-block;
}

.faq-page-frame {
    padding: 100px 0;
}

.page-back-section {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 40px;
}



/* Header */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(20px);
    z-index: 100;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    transition: all 0.3s ease;
}

.header.scrolled {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.95);
    border-bottom-color: rgba(0, 255, 87, 0.1);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
    z-index: 100;
}

.navbar {
    padding: 16px 0;
}

.nav-container {
    max-width: 100%;
    margin: 0;
    padding: 0 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 60px;
    width: 100%;
    box-sizing: border-box;
}

.nav-logo {
    margin-left: 0;
}

.nav-logo .logo {
    height: 56px;
    width: auto;
    filter: brightness(1.1);
    transition: all 0.3s ease;
}

.nav-logo:hover .logo {
    transform: scale(1.05);
    filter: brightness(1.3);
}

.nav-menu {
    display: flex;
    gap: 32px;
    align-items: center;
}

.nav-link {
    color: rgba(255, 255, 255);
    text-decoration: none;
    font-family: var(--font-english);
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 8px 16px;
    position: relative;
    text-align: right;
}

.footer-links .nav-link:not([href*="contact"]) {
    text-align: center;
    display: block;
}

/* Desktop CONTACT button styles */
@media (min-width: 769px) {
    .nav-link[href*="contact"],
    .nav-contact-btn {
        border-radius: 24px;
        border: 2px solid #109A4A;
        background: #0A391B;
        width: 114px !important;
        height: 32px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        padding: 0 !important;
        margin: 0;
        box-sizing: border-box;
        line-height: 1;
        vertical-align: middle;
    }
}

/* PC Header Contact Button - Force correct size - Desktop only */
@media (min-width: 769px) {
    .nav-menu .nav-link[href*="contact"] {
        width: 114px !important;
        height: 32px !important;
    }
}

.nav-link:hover {
    color: var(--accent-gradient-start);
    transform: translateY(-1px);
}

.nav-link:hover::before {
    content: '';
    position: absolute;
    left: -20px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    background-image: url('../Assets/svg/Polygon 4.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 1;
}

.mobile-menu-btn {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #0a391b;
    border: 1px solid #109a4a;
    cursor: pointer;
    padding: 10px 8px 8px 8px;
    width: 52px;
    height: 49px;
    border-radius: 5px;
    transition: all 0.3s ease;
    gap: 3px;
}

.mobile-menu-btn:hover {
    background: rgba(0, 255, 87, 0.1);
}

.mobile-menu-btn .hamburger-lines {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 2px;
}

.mobile-menu-btn .hamburger-lines span {
    display: block;
    width: 32px;
    height: 2px;
    background-color: #109a4a;
    margin: 0;
    transition: all 0.3s ease;
    border-radius: 1.5px;
}

.mobile-menu-btn .menu-text {
    display: block;
    color: white;
    font-family: 'BankGothic Md BT', sans-serif;
    font-size: 8px;
    font-weight: 400;
    line-height: 1;
    width: auto;
    height: auto;
    background: none;
    margin: 0;
    letter-spacing: 0.5px;
}

/* Active state - X icon */
.mobile-menu-btn.active {
    background: transparent;
    border: none;
    padding: 12px;
}

.mobile-menu-btn.active .hamburger-lines {
    position: relative;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mobile-menu-btn.active .hamburger-lines span {
    position: absolute;
}

.mobile-menu-btn.active .hamburger-lines span:nth-child(1) {
    transform: rotate(45deg);
    background-color: #109a4a;
}

.mobile-menu-btn.active .hamburger-lines span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-btn.active .hamburger-lines span:nth-child(3) {
    transform: rotate(-45deg);
    background-color: #109a4a;
}

.mobile-menu-btn.active .menu-text {
    display: none;
}

/* Hide mobile menu footer on desktop */
.mobile-menu-footer {
    display: none;
}

/* Mobile menu expanded state */
@media screen and (max-width: 768px) {
    .nav-menu.active {
        display: flex !important;
        position: fixed;
        top: 70px;
        left: 0;
        width: 100%;
        height: calc(100vh - 70px);
        background-color: #000;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        padding: 30px 20px 20px 20px;
        gap: 15px;
        z-index: 999;
        margin: 0;
        border: none;
    }
    
    .nav-menu.active .nav-link {
        display: block;
        text-align: left;
        border: none;
        background: none;
        width: 175px;
        height: auto;
        margin: 0;
        border-radius: 0;
    }
    
    /* Override contact button styles in mobile menu */
    .nav-menu.active .nav-link[href*="contact"] {
        width: 175px;
        height: 48px;
        margin-top: 20px;
        border-radius: 23px;
        border: 1px solid #109A4A;
        background: #0A391B;
        text-align: center !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
    }

    .footer-links .nav-link[href*="contact"] {
        width: 114px !important;
        height: 32px !important;
        border: 2px solid #109A4A !important;
        background: #0A391B !important;
        border-radius: 24px !important;
        padding: 0 !important;
        flex-shrink: 0 !important;
        min-width: 114px !important;
        max-width: 114px !important;
    }
    
    /* Mobile menu footer */
    .mobile-menu-footer {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 20px;
        margin-top: 30px;
    }
    
    .mobile-footer-links {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        width: 175px;
    }
    
    .mobile-footer-link {
        color: white;
        font-family: 'Inter', 'Noto Sans JP', sans-serif;
        font-size: 12px;
        font-weight: 500;
        text-decoration: none;
        line-height: 26px;
        text-align: left;
        width: 100%;
    }
    
    .mobile-footer-link:hover {
        color: var(--accent-gradient-start);
    }
    
    .mobile-appstore-btn {
        display: block;
    }
    
    .mobile-appstore-image {
        width: 175px;
        height: auto;
        border-radius: 8px;
    }
}

/* Hero Section */
.pc-hero {
    width: 100%;
    height: 100%;
    display: block;
}

.sp-hero {
    width: 100%;
    height: auto;
    display: none;
    flex-direction: column;
}

.sp-fv-bottom {
    display: none;
    width: 100vw;
    height: 480px;
    overflow: hidden;
}

.sp-fv-bottom-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 600px;
    background: linear-gradient(135deg, rgba(10, 18, 10, 0.8), rgba(0, 0, 0, 0.6)), var(--hero-bg);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
    margin-top: -40px;
    padding: 70px 0 0 0;
    box-sizing: border-box;
}

.hero-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.hero-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.7;
    z-index: 0;
    position: relative;
    transform: translateX(0%);
}

.hero-container {
    position: relative;
    z-index: 10;
    width: 100%;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    height: 100%;
    background: linear-gradient(to right, #080600, rgba(66, 48, 0, 0.36));
}

.hero-content {
    color: var(--text-primary);
    max-width: 700px;
    height: 100%;
    padding: 30px 75px;
    position: relative;
    text-align: left;
    margin-left: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 36px;
}

.hero-main-content {
    margin-top: 80px;
}

.hero-brand {
    margin-bottom: 16px;
}

.brand-logo {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 38px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.hero-title {
    font-family: Inter;
    font-size: 24px;
    font-style: normal;
    font-weight: 900;
    line-height: 36px;
    /* 158.333% */
    margin-bottom: 16px;
    background: linear-gradient(276deg, #00DB5C 47.8%, #00FFAE 79.8%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    letter-spacing: -1px;
}

.hero-subtitle {
    display: block;
    font-size: var(--font-size-32);
    font-weight: 600;
    margin-top: 10px;
}

.hero-description {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 28px;
    /* 187.5% */
    margin-bottom: 100px;
}

.hero-tagline {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.tagline-text {
    font-family: var(--font-english);
    font-size: 18px;
    font-weight: 600;
    font-style: italic;
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: none;
}

.hero-appstore-image {
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    padding: 10px 0;
}

.hero-bottom-image {
    display: none;
}

.stats-graph {
    max-width: 250px;
    width: 100%;
    height: auto;
    display: block;
    margin-left: 0;
}

.hero-side-image {
    width: 681px;
    max-height: 90vh;
    height: auto;
    flex-shrink: 1;
    aspect-ratio: 187/173;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.side-image {
    max-width: 600px;
    width: 100%;
    height: auto;
    position: relative;
    right: 100px;
}

.overlay-image {
    position: absolute;
    width: 230px;
    height: 240px;
    object-fit: contain;
    z-index: 2;
    top: 30%;
    left: 39%;
}

.image-background{
    position: absolute;
    width: 130%;
    height: 130%;
    top: -15%;
    left: -10%;
    background-color: #fff;
    border-radius: 100%;
    opacity: 0.05;
    z-index: -2;
}

.left-image {
    position: absolute;
    /* 1730pxで-71% (≈-1228px) をベースに、画面幅変化で微調整 */
    /* (100vw - 1730px) の10%程度を追加で左に移動 */
    left: calc(-500px - (91vw - 1730px) * 0.6);
    top: 20%;
    transform: translateY(-50%);
    width: auto;
    height: auto;
    z-index: 3;
}

.left-image img {
    position: absolute;
    top: 0;
    left: 0;
}

.left-image-top {
    animation: blink 2s infinite;
}

@keyframes blink {
    0% { opacity: 1; }
    50% { opacity: 0; }
    100% { opacity: 1; }
}

.left-side-image {
    position: absolute;
    left: calc(-100px + (1200px - 83vw) * 0.6);
    top: 48%;
    transform: rotate(-3deg)translateY(-50%);
    width: clamp(200px, calc(40vw - 200px), 950px);
    height: auto;
    z-index: 1;
    transform-origin: right center;
    object-fit: cover;
    object-position: right center;
}

.hero-scroll {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 11px;
}

.scroll-button {
    font-family: "BankGothic Md BT", sans-serif, sans-serif;
    background: none;
    border: none;
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: uppercase;
    line-height: normal;
    padding: 0;
}

.scroll-button:hover {
    opacity: 0.8;
}

.carousel-arrow-right {
    transform: rotate(180deg);
}

.scroll-indicator-line {
    width: 25%;
    height: 100%;
    background: rgb(1, 221, 96, 100);
    position: absolute;
    left: 0px;
    transition: left 0.3s ease-in-out;
}

.scroll-indicator {
    width: 20.571px;
    height: 30px;
    background: transparent;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    visibility: visible;
    z-index: 10;
}

/* Problem Section */
.problem-section {
    background: var(--primary-bg);
}

.section-title {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: 42px;
    text-align: center;
    margin-bottom: 16px;
    position: relative;
    z-index: 10;
    margin-top: 130px;
}

.highlight-text {
    text-align: center;
    font-family: Inter;
    font-size: 26px;
    font-style: normal;
    font-weight: 900;
    line-height: 42px;
    /* 161.538% */
    padding: 0 5px;
    background: linear-gradient(90deg, #00FFAE 0%, #00DB5C 43.27%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.problem-grid {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 1200px;
    margin: 80px auto;
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
}

.problem-row-top {
    display: grid;
    grid-template-columns: repeat(3, 300px);
    gap: 50px;
    justify-content: center;
}

.problem-row-bottom {
    display: grid;
    grid-template-columns: repeat(2, 300px);
    gap: 50px;
    justify-content: center;
}

.problem-item {
    width: 300px;
    height: 378px;
    background: #08180C;
    border-radius: 16px;
    border: 1px solid var(--card-border);
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
    position: relative;
    overflow: hidden;
    box-shadow: 0 0 6px 0 rgba(40, 236, 40, 0.80);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.problem-content-wrapper {
    width: 170px;
    height: 293px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    z-index: 2;
}

.problem-number {
    text-align: center;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: 32px;
    /* 200% */
    background: linear-gradient(276deg, #00DB5C 47.8%, #00FFAE 79.8%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 20px;
    padding: 0;
}

.pn-No {
    text-align: center;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 800;
    line-height: 32px;
    /* 200% */
}

.problem-decoration {
    position: absolute;
    bottom: 0px;
    right: 0px;
    width: 140px;
    height: auto;
    z-index: 1;
}

.problem-item:hover {
    transform: translateY(-10px);
    border-color: var(--accent-gradient-start);
    box-shadow: 0 20px 40px rgba(0, 255, 87, 0.2);
    background: #08180C;
}

.problem-icon {
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    flex-shrink: 0;
}

.problem-icon img {
    width: 120px;
    height: 120px;
    object-fit: contain;
}

.problem-text {
    color: #FFF;
    text-align: center;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 26px;
    /* 162.5% */
    width: 100%;
    margin: 0;
}

.Move-image {
    color: #FFF;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 800;
    line-height: 40px;
    text-align: center;
    margin-bottom: 80px;
    position: relative;
}

.move-svg {
    display: block;
    margin: 0 auto;
    width: 100%;
    height: auto;
}

/* PC and SP Problem Section Display Control */
.pc-problem {
    display: block;
}

.sp-problem {
    display: none;
}

/* PC and SP Solution Section Display Control */
.pc-solution {
    display: block;
}

.sp-solution {
    display: none;
}

/* Solution Section */
.solution-section {
    overflow: hidden;
    padding: 100px 0;
    background: var(--primary-bg);
}

.solution-title {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: 32px;
    text-align: center;
    margin-bottom: 32px;
    position: relative;
    z-index: 10;
}

.solution-section {
    padding-bottom: 0px;
}

.solution-section .section-title {
    color: var(--text-primary);
    margin-bottom: 60px;
}

.brand-name {
    font-family: Inter;
    font-size: 30px;
    font-style: normal;
    font-weight: 900;
    line-height: 40px;
    background: linear-gradient(276deg, #00DB5C 47.8%, #00FFAE 79.8%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.section-titel-color {
    text-align: center;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 800;
    line-height: 32px;
    /* 160% */
    background: linear-gradient(276deg, #00DB5C 47.8%, #00FFAE 79.8%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.section-futuer-color {
    color: #109A4A;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.section-no-color {
    text-align: center;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 800;
    line-height: 32px;
    /* 160% */
    background: linear-gradient(276deg, #00DB5C 47.8%, #00FFAE 79.8%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    padding: 0 10px 0 0;
}

.solution-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    position: relative;
    z-index: 1;
    padding-top: 280px;
}

.solution-content .futuer {
    align-self: center;
    width: 100%;
}

.solution-image {
    text-align: center;
    position: absolute;
    top: -15%;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.solution-image svg {
    position: relative;
    z-index: 2;
}

.solution-image .product-img {
    position: relative;
    z-index: 1;
}

.circle-animation {
    position: relative;
    width: 430px;
    height: 430px;
}

.circle-animation circle {
    position: relative;
    fill: none;
    stroke-width: 2;
    stroke: rgba(1, 221, 96, 0.40);
    stroke-dasharray: 1351;
    stroke-dashoffset: 0;
    stroke-linecap: butt;
}

.line {
    animation: circleAnim 60s linear forwards infinite;
}

@keyframes circleAnim {
    0% {
        stroke-dasharray: 0 1351;
    }

    100%,
    to {
        stroke-dasharray: 1352 1351;
    }
}

.solution-image .percent {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
}

.solution-image .percent .cricle-point {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 430px;
    height: 430px;
    transform: translate(-50%, -50%);
    z-index: 4;
    animation: rotate-clockwise 60s linear infinite;
}

.solution-image .percent .cricle-point .circle-point-img {
    position: absolute;
    top: -28px;
    left: 50%;
    transform: translateX(-50%);
}

@keyframes rotate-clockwise {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes rotate-clockwise-svg {
    from {
        transform: rotate(-90deg);
    }
    to {
        transform: rotate(270deg);
    }
}

.solution-image .percent svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-90deg);
    z-index: 3;
}

.cricle-seconds {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 500px;
    height: 500px;
    transform: translate(-50%, -50%);
    z-index: 5;
}

.cs-00 {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
}

.cs-15 {
    position: absolute;
    top: 50%;
    right: -70px;
    transform: translateY(-50%);
}

.cs-30 {
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
}

.cs-45 {
    position: absolute;
    top: 50%;
    left: -70px;
    transform: translateY(-50%);
}

.second-text {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #FFF;
    text-align: center;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.cs-15, .cs-45 {
    display: flex;
    align-items: center;
    gap: 10px;
}

.second-image-00 {
    transform: rotate(90deg);
}

.second-image-15 {
    transform: rotate(180deg);
    display: flex;
}

.second-image-30 {
    transform: rotate(270deg);
}

.second-image-45 {
    transform: rotate(0deg);
    display: flex;
}

.cs-00 {
    animation: fadeInOut-00 60s infinite;
}

.cs-15 {
    animation: fadeInOut-15 60s infinite;
}

.cs-30 {
    animation: fadeInOut-30 60s infinite;
}

.cs-45 {
    animation: fadeInOut-45 60s infinite;
}

@keyframes fadeInOut-00 {
    0% {
        opacity: 0;
    }
    1% {
        opacity: 1;
    }
    4% {
        opacity: 1;
    }
    5% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}

@keyframes fadeInOut-15 {
    0%, 24% {
        opacity: 0;
    }
    25% {
        opacity: 1;
    }
    29% {
        opacity: 1;
    }
    30%, 100% {
        opacity: 0;
    }
}

@keyframes fadeInOut-30 {
    0%, 49% {
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    54% {
        opacity: 1;
    }
    55%, 100% {
        opacity: 0;
    }
}

@keyframes fadeInOut-45 {
    0%, 74% {
        opacity: 0;
    }
    75% {
        opacity: 1;
    }
    79% {
        opacity: 1;
    }
    80%, 100% {
        opacity: 0;
    }
}

.circle-animation circle.line {
    stroke-dashoffset: calc(1382 - (1382 * 100) / 100);
    stroke: #109A4A;
}

.title-image-2 {
    display: block;
    margin: 0 auto 20px auto;
    max-width: 100px;
    height: auto;
    position: relative;
    z-index: 10;
}

.section-content {
    color: #FFF;
    text-align: center;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;
    line-height: 30px;
    /* 187.5% */
    margin-bottom: 40px;
    position: relative;
    z-index: 10;
}

.futuer {
    position: relative;
    text-align: center;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 60px;
    padding: 0 100px;
}

.futuer-titel {
    color: #CCC;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    text-align: left;
}

.fimage-size {
    width: 200px;
    height: auto;
    margin: 0 auto;
    display: block;
}

.futuer-image {
    display: flex;
    justify-content: center;
    gap: 40px;
}

.futuer-image-frame {
    flex: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.fsentence {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.fcase {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: 30px;
    /* 187.5% */
    text-align: left;
}

.Horizontal.scrolling {
    padding-bottom: 100px;
}

.HSrolling {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scroll-behavior: smooth;
    padding: 0 20px;
}

.scroll-indicator-container {
    position: relative;
    display: block;
    width: 100%;
    height: 2px;
    background: rgb(1, 221, 96, 0.20);
    border-radius: 9999px;
}

.scroll-indicator-container-pc {
    position: relative;
    display: block;
    width: 100%;
    height: 2px;
    background: rgb(1, 221, 96, 0.20);
    border-radius: 9999px;
}

.scroll-indicator-line-pc {
    width: 25%;
    height: 100%;
    background: rgb(1, 221, 96, 100);
    position: absolute;
    left: 0px;
}

.hsroll-image.scroll-track {
    width: 100%;
    max-width: none;
}

.scroll-track {
    display: block;
    width: 100%;
}

.scroll-thumb {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    width: auto;
    overflow: hidden;
}

.training-gear {
    width: 1120px;
    height: 556px;
    text-align: center;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    border-radius: 14px;
    background: rgba(0, 0, 0, 0.90);
    box-shadow: 0 0 6px 0 rgba(40, 236, 40, 0.80);
    padding: 100px 0;
    margin: 0 auto;
}

.tg-frame {
    width: 100%;
    height: 100%;
    padding: 0px 100px;
}

.tg-frame .tg-displaycontents {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
    width: 100%;
    height: 100%;
    flex-direction: column;
}

.tg-frame .dc-banner {
    width: 737px;
    flex-shrink: 0;
    border-radius: 10px;
    background: #0A391B;
    color: #FFF;
    text-align: center;
    font-family: Inter;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    margin: 0 auto;
    line-height: 32px;
    /* 228.571% */
    white-space: nowrap;
    padding: 0 16px;
    margin-top: 0;
    align-self: center;
}

.tg-frame .dc-name {
    color: #FFF;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    margin-top: 16px;
    margin-bottom: 31px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.dc-english {
    color: #FFF;
    text-align: center;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.20);
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 28px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.dc-name-english {
    color: #FFF;
    text-align: center;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.20);
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 28px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.tg-frame .dc-pic-points {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
}

.tg-frame .dc-picture {}

.tg-frame .dc-points {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex-grow: 1;
}
@media (min-width: 768px) {
    .sp-fv-bottom-image-overlay {
        display: none;
    }
}
.point1,
.point2,
.point3,
.point4 {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-start;
}

.p-point {
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 32px;
    /* 200% */
    background: linear-gradient(274deg, #00DB5C 45.65%, #00FFAE 78.39%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.p-No {
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 32px;
    background: linear-gradient(274deg, #00DB5C 45.65%, #00FFAE 78.39%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.pexplanation {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 26px;
    /* 162.5% */
    text-align: left;
}

.dc-buynow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 25px;
    border: 2px solid #109A4A;
    background: #0A391B;
    padding: 12px 24px;
    color: white;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    width: 50%;
    height: auto;
    align-self: flex-end;
    text-decoration: none;
}

.dc-poc-size {
    width: 265px;
    height: 290px;
    border-radius: 6px;
}

.Notes {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.notes-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 2px;
}

.notes-text {
    color: #FFF;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 32px;
    /* 266.667% */
    text-align: center;
}

.hsroll-image {
    height: auto;
    width: auto;
    max-width: 200px;
    flex-shrink: 0;
    display: block;
}

.fexplanation {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 30px;
    /* 187.5% */
    width: 100%;
    height: auto;
    margin: 0 auto;
    text-align: left;
}

.solution-subtitle {
    font-family: var(--font-japanese);
    font-size: var(--font-size-20);
    margin-bottom: 20px;
    color: rgba(0, 0, 0, 0.8);
}

.product-name {
    font-family: var(--font-japanese);
    font-size: var(--font-size-24);
    font-weight: 700;
    margin-bottom: 40px;
    color: var(--text-dark);
}

.buy-button {
    font-family: var(--font-english);
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    border: none;
    color: white;
    padding: 16px 40px;
    font-size: var(--font-size-16);
    font-weight: 700;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.buy-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(0, 219, 92, 0.3);
}

.product-img {
    max-width: 700px;
    height: auto;
    border-radius: 20px;
}

/* Features Section */
.features-section {
    padding: 100px 0;
    background: var(--primary-bg);
    background-image: url('../Assets/image/Group 1239.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
}

/* PC and SP Features Section Display Control */
.pc-features {
    display: block;
}

.sp-features {
    display: none;
}



/* App Preview Section */
.app-preview {
    padding: 80px 0;
    background: #0B1C0B;
    text-align: center;
}

/* PC and SP Preview Section Display Control */
.pc-preview {
    display: block;
}

.sp-preview {
    display: none;
}

.how-to-uses {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 100px;
}

.how-to-use {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

.htu-titel {
    margin-top: 100px;
    text-align: center;
    color: #CCC;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.htu-english {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.htu-subtitel {
    text-align: center;
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
}

.htu-st-color {
    text-align: center;
    font-family: Inter;
    font-size: 20px;
    font-style: normal;
    font-weight: 800;
    line-height: 32px;
    /* 160% */
    background: linear-gradient(279deg, #00DB5C 70.2%, #00FFAE 87.8%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.htu-explanation {
    color: #FFF;
    text-align: center;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 30px;
    /* 187.5% */
    margin-top: -20px;
}

.htu-sf-stapNo {
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 28px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    background: linear-gradient(273deg, #00DB5C 83.49%, #00FFAE 93.67%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: flex;
    align-items: center;
}

.htu-sf-no {
    background: linear-gradient(273deg, #00DB5C 83.49%, #00FFAE 93.67%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.htu-sf-stapname {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.12px;
}

.htu-steps {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

/* デスクトップ版のみ適用 */
@media (min-width: 769px) {
    .htu-stap-frame {
        width: 700px;
        height: 380px;
        flex-shrink: 0;
        border-radius: 14px;
        background: #000;
        box-shadow: 0 0 20px 0 rgba(40, 236, 40, 0.25);
        opacity: 0;
        transform: translateX(100px);
        transition: opacity 0.8s ease-out, transform 0.8s ease-out;
        overflow: hidden;
        box-sizing: border-box;
    }
}

@media (min-width: 769px) {
    .htu-stap-frame.animate {
        animation: fadeInFromRight 0.8s ease-out forwards;
    }

    .htu-stap-frame.animate:nth-child(1) {
        animation-delay: 0s;
    }

    .htu-stap-frame.animate:nth-child(3) {
        animation-delay: 0.2s;
    }

    .htu-stap-frame.animate:nth-child(5) {
        animation-delay: 0.4s;
    }

    .htu-stap-frame.animate:nth-child(7) {
        animation-delay: 0.6s;
    }

    .htu-stap-frame.animate:nth-child(9) {
        animation-delay: 0.8s;
    }

    @keyframes fadeInFromRight {
        0% {
            opacity: 0;
            transform: translateX(100px);
        }
        100% {
            opacity: 1;
            transform: translateX(0);
        }
    }
}

.htu-sf-padding {
    display: flex;
    justify-content: center;
    /* align-items: center; */
    margin: 25px;
    gap: 80px;
}

.htu-sf-sentence {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: left;
    gap: 12px;
    max-width: 300px;
    flex-shrink: 1;
}

.htu-sf-stapname {
    margin-bottom: -2px;
}

.htu-sf-staptitel {
    margin-top: 8px;
    color: #FFF;
    font-family: Inter;
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
    margin-bottom: 8px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.htu-sf-st-colot {
    background: linear-gradient(90deg, #00FFAE 0%, #00DB5C 72.6%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
}

.htu-sf-explanation {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 26px;
    /* 162.5% */
}

.htu-info-text {
    color: #FFF;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 32px;
    /* 266.667% */
}

.articles-title {
    color: #FFF;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    margin-bottom: 64px;
}

.at-english {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.faq-title {
    color: #FFF;
    text-align: center;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    margin-bottom: 72px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
}

.faq-title-english {
    color: #FFF;
    text-align: center;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.news-titel {
    color: #FFF;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.news-title-english {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.contact-titel {
    color: #FFF;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    text-align: center;
}

.contact-title-english {
    color: #FFF;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.htu-sf-picture {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 6px;
    overflow: hidden;
}

.htu-sf-picture img {
    border-radius: 6px;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.htu-info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.htu-info-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 2px;
}

.screen-group {
    display: flex;
    gap: 40px;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.app-screen {
    width: 250px;
    height: auto;
    border-radius: 25px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
    border: 3px solid rgba(255, 255, 255, 0.1);
}

.app-screen:hover {
    transform: translateY(-10px) scale(1.03);
    box-shadow: 0 25px 50px rgba(0, 255, 87, 0.2);
    border-color: rgba(0, 255, 87, 0.3);
}

/* About Section */
.about-section {
    padding: 100px 0;
    background: var(--primary-bg);
    text-align: center;
}

.section-label {
    font-size: var(--font-size-18);
    font-weight: 500;
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    display: block;
    margin-bottom: 10px;
}

.articles {
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.articles-banner {
    display: flex;
    align-items: center;
    gap: 20px;
}

.ab-frame {
    position: relative;
    width: 340px;
    height: 494px;
}

.ab-picture {
    width: 100%;
    height: 400px;
    background-size: cover;
    background-position: center;
    border-radius: 14px;
}

.ab-gradient {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 13px;
    background: linear-gradient(0deg, #0A120A 18.1%, rgba(10, 18, 10, 0.00) 51.72%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 20px;
    text-align: left;
    gap: 8px;
}

.ab-titel {
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 24px;
    /* 150% */
}

.ab-preamble {
    color: #F0F0F0;
    font-family: Inter;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    /* 157.143% */
    margin-bottom: 8px;
}

.ab-name {
    color: #FFF;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 24px;
    /* 200% */
}

.ab-tags {
    display: flex;
    gap: 8px;
}

.ab-tag {
    display: flex;
    height: 20px;
    padding: 4px 13px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 6px;
    border: 1px solid #FFF;
    color: #FFF;
    font-family: Inter;
    font-size: 10px;
    font-style: normal;
    font-weight: 500;
    line-height: 24px;
    /* 240% */
}

.ab-HSrolling {
    position: relative;
    width: 100%;
    height: 60px;
    margin-top: 40px;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.about-text {
    max-width: 800px;
    margin: 0 auto;
}

.about-text p {
    font-family: var(--font-japanese);
    font-size: var(--font-size-18);
    line-height: var(--line-height-32);
    color: var(--text-secondary);
}

/* Voices Section */
.voices {
    padding: 80px 0;
    background: var(--hero-bg);
    text-align: center;
}

.voices-header {
    margin-bottom: 60px;
}

.voices-title-img {
    max-height: 60px;
    width: auto;
}

.voices-img {
    max-width: 100%;
    height: auto;
    border-radius: 20px;
}

/* FAQ Section */
.faq {
    padding: 100px 0;
    background: #0B1C0B;
}

.faq .section-title {
    text-align: center;
    margin-bottom: 60px;
}

.category-selection {
    width: 488px;
    height: 78px;
    flex-shrink: 0;
    border-radius: 39px;
    border: 2px solid #109A4A;
    background: #000;
    box-shadow: 0 0 6px 0 rgba(40, 236, 40, 0.80);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin: 0 auto 40px auto;
    padding: 0 10px;
}

.cs-name {
    display: flex;
    width: 148px;
    height: 54px;
    padding: 17px 19px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 35px;
    background: transparent;
    color: #FFF;
    font-family: Inter;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}

.cs-name.active {
    background: #109A4A;
    box-shadow: 0 0 6px 0 rgba(40, 236, 40, 0.80);
}

.cs-name:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
}

.cs-name.active {
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    border-color: transparent;
    color: #000;
}

.faq-items {
    max-width: 800px;
    margin: 0 auto;
}

.faq-items .faq-item:nth-child(n+5) {
    display: none;
}

.faq-item {
    display: flex;
    /* width: 832px; */
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;

}

.faq-question {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 18px;
}

.faq-question h3 {
    font-size: var(--font-size-14);
    font-weight: 600;
}

.faq-toggle {
    font-size: var(--font-size-24);
    font-weight: bold;
    transition: transform 0.3s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.faq-answer {
    width: 100%;
    padding: 22px;
    border-radius: 14px;
    border: 1px solid #109A4A;
    background: #08180C;
    margin-bottom: 20px;
    overflow: hidden;
    display: flex;
    align-items: start;
    gap: 18px;
}

.faq-answer p {
    color: var(--text-secondary);
    line-height: var(--line-height-26);
    flex-grow: 1;
    margin-right: 4px;
}

.viewall {
    color: #109A4A;
    text-align: center;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 30px;
    /* 187.5% */
    margin-top: 40px;
    cursor: pointer;
    transition: color 0.3s ease;
    display: block;
    width: 100%;
    text-decoration: none;
}

.viewall:hover {
    color: var(--accent-gradient-start);
}

.news {
    padding: 100px 0;
    background: #000000;
    text-align: center;
}

.news .section-container {
    display: flex;
    flex-direction: column;
    gap: 64px;
}

.news-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 250px;
}

.news-mainframe {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    position: relative;
}

.news-frame {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 46px;
    text-decoration: none;
    color: inherit;
}

.news-frame:hover {
    opacity: 0.8;
}

.new-date {
    color: #CCC;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 32px;
    /* 200% */
}

.new-titel {
    width: 554px;
    color: #FFF;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 32px;
    /* 200% */
    text-align: left;
}

/* NEWS PAGE STYLES */
.news-page-body {
    margin: 0;
    padding: 0;
    background-color: #1a1a1a;
    color: #fff;
    font-family: Inter, sans-serif;
}

/* News Header */
.news-header {
    width: 100%;
    height: 85px;
    background-color: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    z-index: 1000;
}

.news-navbar {
    width: 100%;
    max-width: 1366px;
    padding: 0 40px;
}

.news-nav-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

.news-nav-logo {
    display: flex;
    align-items: center;
}

.news-logo {
    height: 56px;
    width: 47px;
}

.news-nav-menu {
    display: flex;
    align-items: center;
    gap: 40px;
}

.news-nav-link {
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 400;
    transition: color 0.3s ease;
    position: relative;
}

.news-nav-link:hover {
    color: #109A4A;
}

.news-nav-link.active {
    color: #109A4A;
}

.news-nav-link.contact-btn {
    background-color: #109A4A;
    color: #fff;
    padding: 8px 24px;
    border-radius: 16px;
    font-weight: 500;
}

.news-nav-link.contact-btn:hover {
    background-color: #0d8a3f;
    color: #fff;
}

/* News Main Content */
.news-main {
    margin-top: 85px;
    min-height: calc(100vh - 85px);
    background-color: #1a1a1a;
    padding-top: 60px;
}

.news-content {
    width: 100%;
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 40px;
}

.news-container {
    width: 100%;
    max-width: 833px;
    margin: 0 auto;
}

/* News Page Title */
.news-page-title {
    text-align: center;
    margin-bottom: 60px;
}

.news-title-english {
    font-size: 32px;
    font-weight: 700;
    color: #fff;
    margin: 0;
    letter-spacing: 2px;
}

.news-title-japanese {
    font-size: 16px;
    font-weight: 400;
    color: #fff;
    margin: 8px 0 0 0;
}

/* News List Section */
.news-list-section {
    width: 100%;
}

.news-list {
    width: 100%;
    margin-bottom: 50px;
}

.news-line-top {
    width: 100%;
    height: 1px;
    background-color: #109A4A;
    margin-bottom: 22px;
}

.news-item {
    width: 100%;
    margin-bottom: 22px;
}

.news-item-content {
    display: flex;
    align-items: center;
    padding: 4px 2.5px;
    height: 40px;
}

.news-date {
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    width: 88px;
    margin-right: 46px;
    line-height: 32px;
}

.news-item-title {
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    line-height: 32px;
    width: 554px;
    margin-right: 102px;
}

.news-arrow {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-arrow img {
    width: 100%;
    height: 100%;
}

.news-line {
    width: 100%;
    height: 1px;
    background-color: #109A4A;
}

/* Pagination */
.news-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 50px;
    margin-bottom: 30px;
}

.pagination-back {
    display: flex;
    align-items: center;
    gap: 18px;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
}

.pagination-back img {
    width: 40px;
    height: 40px;
}

.pagination-numbers {
    display: flex;
    align-items: center;
    gap: 16px;
}


.page-dots {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #666;
    font-size: 12px;
}

.pagination-next {
    display: flex;
    align-items: center;
    gap: 18px;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
}

.pagination-next img {
    width: 40px;
    height: 40px;
}

/* Page Back Link */
.page-back-link {
    text-align: center;
    margin-bottom: 60px;
}

.page-back-link a {
    color: #109A4A;
    text-decoration: none;
    font-size: 14px;
    font-weight: 400;
}

.page-back-link a:hover {
    color: #0d8a3f;
}

/* News Footer */
.news-footer {
    background-color: #000;
    padding: 60px 0 40px 0;
    margin-top: 80px;
}

.news-footer-container {
    width: 100%;
    max-width: 1366px;
    margin: 0 auto;
    padding: 0 40px;
}

.news-footer-content {
    margin-bottom: 60px;
}

.news-footer-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    margin-bottom: 40px;
}

.news-footer-link {
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 400;
    transition: color 0.3s ease;
}

.news-footer-link:hover {
    color: #109A4A;
}

.news-footer-link.active {
    color: #109A4A;
}

.news-footer-link.contact-btn {
    background-color: #109A4A;
    color: #fff;
    padding: 8px 24px;
    border-radius: 16px;
    font-weight: 500;
}

.news-footer-link.contact-btn:hover {
    background-color: #0d8a3f;
    color: #fff;
}

.news-footer-bottom {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    max-width: 262px;
    margin: 0 auto;
}

.news-footer-policies {
    display: flex;
    align-items: center;
    gap: 26px;
}

.policy-link {
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 400;
}

.policy-link:hover {
    color: #109A4A;
}

.policy-divider {
    width: 1px;
    height: 24px;
    background-color: #333;
}

.news-footer-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-footer-logo img {
    width: 184px;
    height: auto;
}

.news-footer-copyright {
    text-align: center;
}

.news-footer-copyright p {
    color: #fff;
    font-size: 12px;
    font-weight: 400;
    margin: 0;
}

/* Responsive Design */
@media (max-width: 768px) {
    .news-nav-menu {
        display: none;
    }

    .news-content {
        padding: 0 20px;
    }

    .news-item-content {
        flex-direction: column;
        align-items: flex-start;
        height: auto;
        padding: 10px 0;
    }

    .news-date {
        width: 100%;
        margin-right: 0;
        margin-bottom: 5px;
    }

    .news-item-title {
        width: 100%;
        margin-right: 0;
        margin-bottom: 10px;
    }

    .news-arrow {
        align-self: flex-end;
    }

    .news-pagination {
        flex-direction: column;
        gap: 20px;
        height: auto;
    }

    .pagination-numbers {
        order: -1;
    }

    .news-footer-nav {
        flex-direction: column;
        gap: 20px;
    }

    .news-footer-policies {
        flex-direction: column;
        gap: 10px;
    }

    .policy-divider {
        display: none;
    }
}

.news-Line {
    width: 100%;
    height: 1px;
    background: #109A4A;
}

/* Contact Section */
.contact {
    padding: 100px 0;
    background: #0B1C0B;
    color: var(--text-dark);
}

.contact-header {
    text-align: center;
    margin-bottom: 60px;
}

.contact-title-img {
    max-height: 60px;
    width: auto;
}

.contact-content {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto;
}

.contact-info h3 {
    font-size: var(--font-size-24);
    margin-bottom: 20px;
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.contact-info p {
    color: rgba(0, 0, 0, 0.7);
    margin-bottom: 30px;
    line-height: var(--line-height-26);
}

.contact-details {
    margin-bottom: 20px;
}

.contact-item {
    margin-bottom: 15px;
    color: rgba(0, 0, 0, 0.7);
}

.contact-item strong {
    color: var(--text-dark);
}

.contact-form {
    display: flex;
    flex-direction: column;
    width: 832px;
    height: 968px;
    padding: 78px 125px;
    justify-content: center;
    align-items: center;
    gap: 100px;
    flex-shrink: 0;
    border-radius: 14px;
    border: 1px solid #109A4A;
    background: #000;
    box-shadow: 0 0 6px 0 rgba(40, 236, 40, 0.80);
    color: #ffffff;
}

.form-groups-container {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    align-items: flex-end;
}

.form-group {
    width: 100%;
    height: auto;
}

.form-group label {
    display: block;
    margin-bottom: 10px;
    font-weight: 600;
    color: #ffffff;
}

.required {
    color: #FF5858;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #109A4A;
    background: #08180C;
    box-shadow: 0 0 4px 0 rgba(40, 236, 40, 0.20);
    color: #ffffff;
    font-family: inherit;
    transition: border-color 0.3s ease;
}

.form-group select option {
    color: #ffffff;
    background: #08180C;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: var(--accent-gradient-start);
}

.form-group textarea {
    resize: vertical;
}

.cta-button.primary {
    font-family: var(--font-english);
    width: 152px;
    height: 50px;
    border-radius: 25px;
    border: 2px solid #109A4A;
    background: #0A391B;
    color: white;
    font-size: var(--font-size-16);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
}

.cta-button.primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(0, 219, 92, 0.3);
}

.fimage-size-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 37px;
    width: 100%;
}


/* Main Content */
main {
    flex: 1;
    background: var(--primary-bg);
}

.main-content {
    max-width: 843px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    padding: 0 20px;
}

.page-header {
    width: 488px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    margin: 100px auto 80px auto;
}

.title-section {
    text-align: center;
    position: relative;
}

.main-title {
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    color: white;
    margin-bottom: 12px;
    line-height: normal;
    font-weight: 400;
}

.sub-title {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 12px;
    color: white;
    line-height: normal;
}

/* Content Sections */
.content-sections {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.content-section {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
}

.section-title {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    color: white;
    line-height: normal;
    text-align: center;
}

.section-content p {
    margin-bottom: 0;
    text-align: left;
}

.email-link {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 500;
    color: #109a4a;
    text-decoration: none;
}

.page-back-section {
    margin-top: 60px;
    text-align: center;
}

.content-pageback {
    color: #109A4A;
    text-align: center;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 30px;
    /* 187.5% */
    text-decoration: none;
    display: inline-block;
    cursor: pointer;
    transition: color 0.3s ease;
}

.content-pageback:hover {
    color: #00FF57;
}

/* Footer */
.footer {
    background: var(--primary-bg);
    padding: 60px 0 80px;
    margin-top: auto;
}

.footer-container {
    max-width: var(--page-width);
    margin: 0 auto;
    padding: 0 40px;
}

.footer-content {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 40px;
}

.footer-logo .logo {
    height: 40px;
    width: auto;
}

.footer-links {
    display: flex;
    flex-direction: row;
    gap: 30px;
    justify-content: center;
    align-items: center;
    margin-bottom: 30px;
    width: 100%;
    max-width: none;
}

.footer-links a {
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.3s ease;
    white-space: nowrap;
}

.footer-links a:hover {
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.footer-bottom {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding-top: 30px;
    color: rgba(255, 255, 255, 0.6);
}

.footer-privacypolicy {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
}

.footer-privacypolicy .fp-privacypolicy-link {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 14px;
}

.footer-privacypolicy .fp-link {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 14px;
    white-space: nowrap;
}

.footer-privacypolicy .fp-link:first-child {
    margin-right: 15px;
}

.footer-privacypolicy .fp-link:last-child {
    margin-left: 15px;
}

.footer-privacypolicy .footer-line {
    width: 1px;
    height: 16px;
    background-color: rgba(255, 255, 255, 0.6);
    margin: 0 15px;
}

.footer-bottom-image {
    width: 100%;
    height: auto;
    display: block;
}

.footer-bottom > a {
    width: 20%;
    display: inline-block;
    position: relative;
    z-index: 10;
}

/* Responsive Design */
@media (max-width: 1400px) {
    :root {
        --page-width: 100%;
    }


    .section-container {
        padding: 0 20px;

    }

    .nav-container {
        padding: 0 20px;
    }

    .footer-container {
        padding: 0 20px;
    }
}

.fg-textsize {
    color: #FFF;
    font-family: Inter;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

.fg-input-textsize {
    color: #CCC;
    font-family: Inter;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

/* PC/SP Version Display Control */
.pc {
    display: block;
}

.sp {
    display: none;
}

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

    .sp {
        display: block;
    }

    .main-content {
        padding: 60px 0;
    }

    .page-header {
        width: 100%;
        padding: 0 20px;
    }

    .content-sections {
        padding: 0 20px;
    }

    .license-content {
        word-wrap: break-word;
        word-break: break-word;
        overflow-wrap: break-word;
    }

    .main-title {
        margin-bottom: 12px;
    }

    .linecse-title {
        font-size: 14px;
        font-weight: 400;
        margin-bottom: 10px;
    }

    .linecse-description {
        font-size: 10px;
        line-height: 18px;
        /* 180% */
    }

    .notes-icon {
        width: 20px;
        height: 20px;
        flex-shrink: 0;
        margin-top: 0;
    }

    /* .news-container {
        max-width: 100%;
        width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    } */

    .news-lists {
        width: 100%;
        max-width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
    }

    .news-page-frame {
        width: 100%;
    }

    .pagination-nav {
        width: 50%;
        height: auto;
    }

    .page-number {
        width: 36px;
        height: 36px;
    }

    .nav-button.back-button {}

    /* News Details page SP styles */
    .news-detail-container {
        padding: 60px 30px;
    }

    .news-detail-main-title {
        margin-bottom: 12px;
    }

    .news-detail-content {
        margin-bottom: 60px;
    }

    .news-detail-article-header {
        margin-bottom: 20px;
    }

    .news-detail-date {
        font-size: 14px;
        line-height: 32px;
        margin-bottom: 0;
    }

    .news-detail-article-title {
        font-size: 14px;
        line-height: 32px;
        font-weight: 600;
    }

    .news-detail-article-content {
        margin-top: 24px;
    }

    .news-detail-article-text {
        font-size: 14px;
        line-height: 18px;
    }

    .news-detail-back-section {
        margin-top: 40px;
    }

    .sp .footer-links {
        flex-direction: column;
        gap: 30px;
        text-align: center;
    }
    
    .sp .footer-links .nav-link[href*="contact"] {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        margin: 0 auto;
    }

    .sp .footer-privacypolicy {
        flex-direction: column;
        gap: 0;
    }

    .sp .footer-privacypolicy .fp-link:first-child {
        margin-right: 0;
        margin-bottom: 20px;
    }

    .sp .footer-privacypolicy .fp-link:last-child {
        margin-left: 0;
        margin-top: 20px;
    }

    .sp .footer-privacypolicy .footer-line {
        display: none;
    }

    .sp .footer-bottom-image {
        width: 100%;
    }
    
    .sp .footer-bottom > a {
        width: 50%;
        position: relative;
        z-index: 10;
    }

    .mobile-menu-btn {
        display: flex;
    }

    .nav-menu {
        display: none;
    }

    .pc-hero {
        display: none;
    }

    .sp-hero {
        display: flex;
        flex-direction: column;
        position: relative;
        width: 100%;
        height: auto;
        background-color: #000;
        overflow: hidden;
    }

    .sp-hero-main {
        position: relative;
        width: 100%;
        height: 100vh;
    }

    .sp-fv-bottom {
        display: block;
        width: 100vw;
        height: 517px;
        overflow: hidden;
        margin: 0;
        border: none;
    }

    .sp-fv-bottom-image {
        width: 100%;
        height: 520px;
        object-fit: cover;
        object-position: center top;
        transform: scale(1);
        display: block;
        margin: 0;
        border: none;
        position: relative;
        z-index: 1000;
    }

    .sp-fv-bottom-image-overlay {
        position: absolute;
        top: 52%;
        left: 0;
        width: 100%;
        height: calc(54vh + 150px);
        object-fit: cover;
        object-position: center top;
        z-index: 500;
        pointer-events: none;
    }

    .sp-hero-background {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 0;
    }

    .sp-hero-background::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.8) 100%);
        z-index: 1;
        pointer-events: none;
    }

    .sp-hero-bg-image {
        position: absolute;
        left: 57%;
        top: 46%;
        transform: translate(-50%, -50%) translateY(17.6vh);
        width: auto;
        height: 72.71vh;
        object-fit: cover;
    }

    .sp-hero-content {
        position: relative;
        z-index: 1;
        height: 100vh;
        padding: 10.5vh 12.27vw 14.99vh;
        display: flex;
        flex-direction: column;
        gap: 6vw;
    }

    .sp-hero-text {
        position: absolute;
        flex-direction: column;
        gap: 1.8vh;
    }

    .sp-hero-brand {
        color: #FFF;
        font-family: "BankGothic Md BT", sans-serif;
        font-size: 6.93vw;
        font-weight: 400;
        line-height: normal;
        margin-bottom: 1.8vh;
    }

    .sp-hero-title {
        font-family: Inter, 'Noto Sans JP', sans-serif;
        font-size: 4.27vw;
        font-weight: 900;
        line-height: 3.3vh;
        margin-bottom: 1.8vh;
        background: linear-gradient(276deg, #00DB5C 47.8%, #00FFAE 79.8%);
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    .sp-hero-description {
        color: #FFF;
        font-family: Inter, 'Noto Sans JP', sans-serif;
        font-size: 3.2vw;
        font-weight: 600;
        line-height: 3.3vh;
        margin-bottom: 6.9vh;
    }

    .sp-hero-tagline {
        color: #FFF;
        font-family: "BankGothic Md BT", sans-serif;
        font-size: 3.2vw;
        font-weight: 400;
        line-height: normal;
    }

    .sp-hero-images {
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 6vh 0;
        position: absolute;
        bottom: 23%;
        left: 18%;
    }

    .sp-hero-tracking-image {
        position: relative;
        width: 59.73vw;
        height: 33.43vh;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .sp-tracking-top {
        position: absolute;
        width: 100%;
        height: auto;
        z-index: 2;
    }

    .sp-tracking-bottom {
        position: absolute;
        width: 100%;
        height: auto;
        z-index: 1;
    }

    .sp-hero-scroll {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2.1vh;
        position: absolute;
        bottom: 5%;
        left: 38%;
    }

    .sp-scroll-text {
        color: #FFF;
        font-family: "BankGothic Md BT", sans-serif;
        font-size: 3.73vw;
        font-weight: 400;
        letter-spacing: 0.53vw;
    }

    .sp-scroll-line {
        position: relative;
        width: 0.53vw;
        height: 15vh;
        background: rgba(255, 255, 255, 0.2);
        overflow: hidden;
    }
    
    .sp-scroll-line::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: var(--scroll-progress, 0%);
        background: linear-gradient(180deg, #00DB5C 0%, #00FF57 100%);
        transition: height 0.1s ease-out;
        transform-origin: top;
    }

    .htu-sf-stapNo {
        font-size: 20px;
        font-weight: 500;
    }

    .htu-sf-no {
        font-size: 25px;
    }

    .htu-sf-explanation {
        font-size: 14px;
        line-height: 27px;
        /* 192.857% */
        text-align: left;
    }

    .hero {
        min-height: 100vh;
        height: auto;
        justify-content: flex-start;
        padding-top: 0;
        position: relative;
        overflow: visible;
    }

    .hero-container {
        flex-direction: column;
        justify-content: flex-start;
        text-align: center;
        background: none;
        padding-bottom: 80px;
        position: relative;
        width: 100%;
        height: 100%;
    }

    .hero-content {
        padding: 0;
        padding-top: 93px;
        text-align: left;
        max-width: 100%;
        background: linear-gradient(180deg, #080600 23.59%, rgba(66, 48, 0, 0.36) 89.3%), url('../Assets/image/ChatGPT Image 2025年7月23日 16_07_29 1.png');
        background-size: 80%;
        background-position: center;
        width: 100%;
        min-height: 100vh;
        position: relative;
        z-index: 1;
    }

    .hero-brand {
        margin-bottom: 12px;
    }

    .brand-logo {
        font-size: 26px;
        color: #fff !important;
        line-height: normal;
    }

    .hero-title {
        font-size: 16px;
        line-height: 22px;
        margin-bottom: 12px;
        font-weight: 900;
        background: linear-gradient(276deg, #00DB5C 47.8%, #00FFAE 79.8%) !important;
        background-clip: text !important;
        -webkit-background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
    }

    .hero-description {
        font-size: 12px;
        line-height: 22px;
        margin-bottom: 0;
        color: #fff !important;
        font-weight: 600 !important;
    }

    .hero-tagline {
        font-size: 12px;
        color: #fff !important;
        line-height: normal;
    }

    .sp-hero-left-image {
        padding: 0 0 350px 35px;
        position: relative;
    }

    .left-image {
        position: relative;
        transform: none;
        top: 0;
        left: 0;
        margin-bottom: 23px;
        align-self: center;
    }

    .hero-brand {
        margin-bottom: 12px;
    }

    .header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 100 !important;
    }

    .header.scrolled {
        position: fixed !important;
    }

    .hero-bottom-image {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 74px;
        padding: 10px 16px !important;
        background: #0A391B !important;
        box-shadow: 0 -4px 6px 0 rgba(0, 0, 0, 0.40) !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 14px !important;
        z-index: 999 !important;
        opacity: 0 !important;
        visibility: hidden !important;
        transition: all 0.3s ease !important;
    }

    .hero-bottom-image.show {
        opacity: 1 !important;
        visibility: visible !important;
    }

    .hero-bottom-image.hidden {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .stats-graph {
        width: 100%;
        max-width: 250px;
        height: auto;
        flex-shrink: 0;
    }
    
    .stats-graph-link{
        width: 150px;
    }

    .hero-appstore-image a {
        width: 80%;
        max-width: 250px;
        margin-left: -14px;
    }
    
    .hero-banner-new a {
        width: 80%;
        max-width: 250px;
    }

    .side-image {
        width: 55%;
        right: 0;
    }

    .pc-problem {
        display: none;
    }

    .sp-problem {
        display: block;
        position: relative;
        z-index: 1;
        margin-top: 0;
        border: none;
    }

    .pc-solution {
        display: none;
    }

    .sp-solution {
        display: block;
        position: relative;
        z-index: 1;
    }

    .pc-features {
        display: none;
    }

    .sp-features {
        display: block;
        position: relative;
        z-index: 1;
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
    }
    
    .sp-features .section-container {
        width: 100% !important;
        max-width: 375px !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .pc-preview {
        display: none;
    }

    .sp-preview {
        display: block;
        position: relative;
        z-index: 1;
    }

    .features-section {
        background-image: none;
    }

    .training-gear {
        background-image: url('../Assets/image/Group 1239.png');
        border-radius: 0px;
        box-shadow: none;
        padding: 50px 0;
    }

    .tg-frame {
        padding: 0px 30px;
    }

    .tg-frame .dc-banner {
        border-radius: 0px;
        font-size: 10px;
    }

    .tg-frame .dc-name {
        font-size: 15px;
    }

    .dc-name-english {
        font-size: 18px;
    }

    .tg-frame .dc-pic-points {
        flex-direction: column;
    }

    .dc-buynow {
        align-self: center;
        width: 100%;
    }

    .dc-poc-size {
        width: 100%;
        border-radius: 15px;
    }

    .dc-buynow {
        position: relative;
    }

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

    .htu-subtitel {
        font-size: 14px;
        font-weight: 700;
    }

    .htu-st-color {
        font-size: 16px;
    }

    .htu-explanation {
        font-size: 12px;
        line-height: 24px;
        /* 200% */
    }

    /* HTU Steps Carousel - Futureカルーセルの仕組みを使用 */
    .htu-steps {
        position: relative;
        width: 100vw;
        margin-left: 0px;
        overflow: hidden;
        box-sizing: border-box;
    }

    .htu-steps-carousel {
        display: flex;
        transition: transform 0.3s ease-out;
        gap: 0;
    }
    
    .htu-steps .carousel-arrow-container {
        position: absolute;
        top: 46%;
        transform: translateY(-50%);
        width: 100%;
        z-index: 50;
        pointer-events: none;
    }
    
    .htu-steps .carousel-arrow-box {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 10px;
        pointer-events: none;
    }
    
    .htu-steps .carousel-arrow-items {
        pointer-events: auto;
        cursor: pointer;
    }
    
    .htu-scroll-indicator {
        margin-top: 20px;
        width: 100%;
        display: flex;
        justify-content: center;
    }
    
    .htu-scroll-indicator .scroll-indicator-container {
        width: 100px;
        height: 4px;
        background: rgba(255, 255, 255, 0.2);
        border-radius: 2px;
        position: relative;
    }
    
    .htu-scroll-indicator .scroll-indicator-line {
        width: 25%;
        height: 100%;
        background: #01DD60;
        border-radius: 2px;
        position: absolute;
        left: 0;
        transition: left 0.3s ease-in-out;
    }

    .htu-sf-padding {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        padding: 30px 20px;
        gap: 20px;
        box-sizing: border-box;
        margin: 20px;
        border-radius: 14px;
        background: #000;
        box-shadow: 0 0 20px 0 rgba(40, 236, 40, 0.25);
    }

    .htu-sf-sentence {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        text-align: center;
        width: 230px;
        gap: 12px;
    }

    .htu-sf-stapNo {
        font-family: "BankGothic Md BT", sans-serif;
        font-size: 25px;
        font-weight: 500;
        color: #28EC28;
        letter-spacing: 0.12px;
        display: flex;
        align-items: center;
        gap: 4px;
    }

    .htu-sf-no {
        color: #28EC28;
    }

    .htu-sf-stapname {
        font-family: "BankGothic Md BT", sans-serif;
        font-size: 3.2vw;
        font-weight: 500;
        color: #FFFFFF;
        letter-spacing: 0.12px;
    }

    .htu-sf-staptitel {
        font-family: 'Inter', 'Noto Sans JP', sans-serif;
        font-size: 14px;
        font-weight: 700;
        text-align: center;
        line-height: 1.5;
        color: #FFFFFF;
    }

    .htu-sf-st-colot {
        background: linear-gradient(90deg, #01FEAE 0%, #01DB5C 23.558%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    .htu-sf-picture {
        width: 100%;
        max-width: 230px;
        height: auto;
        aspect-ratio: 230 / 264;
        border-radius: 6px;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(33, 24, 0, 0.1);
    }

    .htu-sf-picture img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        border-radius: 6px;
    }

    .htu-sf-explanation {
        font-family: 'Inter', 'Noto Sans JP', sans-serif;
        font-size: 14px;
        font-weight: 400;
        line-height: 27px;
        text-align: left;
        color: #FFFFFF;
        width: 230px;
        padding: 0 10px;
        box-sizing: border-box;
    }

    .htu-info-text {
        font-size: 10px;
        line-height: 20px;
        text-align: left;
        /* 200% */
    }

    .htu-info-icon {
        width: 20px;
        height: 20px;
        flex-shrink: 0;
        margin-top: 0;
    }

    .htu-info {
        align-items: flex-start;
    }

    .articles {
        width: 100%;
    }

    .faq-title-english {
        font-size: 18px;
    }

    .faq-title {
        margin-bottom: 50px;
    }

    .faq-items {
        max-width: 316px;
    }

    .faq-items .faq-item:nth-child(n+5) {
        display: none;
    }

    .faq-item {
        width: 100%;
    }

    .faq-question h3 {
        color: #FFF;
        font-family: Inter;
        font-size: var(--font-size-14);
        font-style: normal;
        font-weight: 500;
        line-height: 22px;
        /* 157.143% */
    }

    .faq-answer p {
        font-family: Inter;
        font-size: 14px;
        font-style: normal;
        font-weight: 500;
        line-height: var(--line-height-22);
    }

    .news-frame {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }

    .news-mainframe {
        align-items: flex-start;
        text-align: left;
    }

    .news-list {
        justify-content: center;
        align-items: center;
        padding: 0 20px;
    }

    .new-date {
        font-size: 14px;
    }

    .new-titel {
        font-size: 14px !important;
        line-height: 20px !important;
        width: 100% !important;
    }

    .form-group input,
    .form-group textarea,
    .form-group select {
        background: #000;
    }

    .fg-textsize {
        font-size: 14px;
    }

    .fg-input-textsize {
        font-size: 14px;
        font-weight: 400;
    }

    .cta-button.primary {
        width: 100%;
    }

    /* Voices Carousel - Futureカルーセルの仕組みを使用 */
    .articles-banner {
        position: relative;
        width: 100vw;
        margin-left: 0px;
        overflow: hidden;
    }

    .voices-carousel-arrow-container {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 100%;
        z-index: 50;
        pointer-events: none;
    }

    .voices-carousel-arrow-container .carousel-arrow-box {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 10px;
        pointer-events: none;
    }

    .voices-carousel-arrow-container .carousel-arrow-items {
        pointer-events: auto;
        cursor: pointer;
    }

    .articles-carousel {
        display: flex;
        transition: transform 0.3s ease-out;
        gap: 0;
    }

    .articles-banner .ab-frame {
        /* Futureカルーセルと同じ仕組み：min-width 100%で1画面1枚 */
        min-width: 100%;
        width: 100%;
        flex-shrink: 0;
        box-sizing: border-box;

        /* カード内容を中央に配置 */
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .articles-banner .ab-frame .ab-gradient {
        width: 84.27vw;
        max-width: 360px;
    }

    .voices-scroll-indicator {
        margin-top: 20px;
        width: 100%;
        display: flex;
        justify-content: center;
        position: relative;
    }

    .voices-scroll-indicator .scroll-indicator-container {
        width: 100px;
        height: 4px;
        background: rgba(255, 255, 255, 0.2);
        border-radius: 2px;
        position: relative;
        bottom: -20px;
    }

    .voices-scroll-indicator .voices-indicator-line {
        width: 33.33%;
        height: 100%;
        background: #01DD60;
        border-radius: 2px;
        position: absolute;
        left: 0;
        transition: left 0.3s ease-in-out;
    }

    .htu-steps-carousel .htu-stap-frame {
        /* Futureカルーセルと同じ仕組み：min-width 100%で1画面1枚 */
        min-width: 100%;
        width: 100%;
        height: 714px;
        flex-shrink: 0;
        box-sizing: border-box;

        /* レイアウト：カード自体は透明で全画面、中身を中央配置 */
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        padding: 0;
        background: transparent;
        border: none;
    }

    /* カードの実際の表示部分 */
    .htu-steps-carousel .htu-stap-frame .htu-sf-padding {
        width: 84.27vw;
        max-width: 360px;
        height: calc(100% - 40px);
        background: rgba(0, 0, 0, 0.85);
        backdrop-filter: blur(20px);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 20px;
        margin: 20px auto;
    }

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

    .carousel-dot {
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background-color: rgba(255, 255, 255, 0.3);
        cursor: pointer;
        transition: background-color 0.3s ease;
    }

    .carousel-dot.active {
        background-color: #28EC28;
    }

    /* Carousel Container */
    .SP-futuer-image {
        position: relative;
        overflow: visible;
        /* padding: 0 80px; */
        display: flex;
        align-items: center;
    }

    .futuer-image {
        display: flex;
        transition: transform 0.3s ease-in-out;
        overflow: hidden;
    }

    .futuer-image-frame {
        min-width: 100%;
        flex-shrink: 0;
    }

    /* Carousel Arrow Buttons */
    .carousel-arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.2);
        width: 60px;
        height: 60px;
        border-radius: 50%;
        cursor: pointer;
        z-index: 10;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.3s ease;
    }

    .carousel-arrow:hover {
        background: rgba(255, 255, 255, 0.2);
        transform: translateY(-50%) scale(1.1);
    }

    .carousel-arrow.prev {
        left: 10px;
    }

    .carousel-arrow.next {
        right: 10px;
    }

    .carousel-arrow img {
        width: 24px;
        height: 24px;
        opacity: 0.8;
    }


    .highlight-text {
        font-size: 18px;
        line-height: 28px;
        /* 155.556% */
    }

    .section-container {
        display: flex;
        flex-direction: column;
    }

    .hero-scroll {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        position: relative;
        bottom: 0;
        left: 0;
        padding-bottom: 30px;
    }

    .scroll-button {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .scroll-indicator {
        display: none;
        justify-content: center;
        align-items: center;
        transform: rotate(-90deg);
    }

    .batu-mark {
        width: 32px;
        height: 32px;
        flex-shrink: 0;
        cursor: pointer;
    }

    .hb-titel {
        color: #FFF;
        font-family: "BankGothic Md BT", sans-serif;
        font-size: 14px;
        font-style: normal;
        font-weight: 400;
        /* 228.571% */
    }

    .hb-sentence {
        color: #FFF;
        text-shadow: 0 0 4px rgba(255, 255, 255, 0.25);
        font-family: Inter;
        font-size: 10px;
        font-style: normal;
        font-weight: 300;
        line-height: 14px;
        /* 140% */
    }

    .hb-arrow {
        width: 22px;
        height: 22px;
        flex-shrink: 0;
    }

    .hero-bottom-sentence {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .scroll-indicator {
        width: 5.33vw;
        height: 2.1vh;
        transform: rotate(270deg);
        flex-shrink: 0;
    }

    .hero-main-content {
        position: absolute;
        top: 19.49vh;
        left: 12.27vw;
        width: 62.4vw;
        z-index: 2;
        display: flex;
        flex-direction: column;
        gap: 6.9vh;
    }

    .solution-content {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 40px;
    }


    .contact-content {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .footer-content {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .problem-grid {
        display: flex;
        flex-direction: column;
        gap: 40px;
        margin: 60px auto;
        width: 100%;
        box-sizing: border-box;
    }

    .screen-group {
        flex-direction: column;
    }

    .futuer-titel {
        margin-bottom: 30px;
    }
}

@media (max-width: 480px) {
    .hero-title {
        font-size: var(--font-size-16);
        line-height: 22px;
    }

    .section-title {
        margin-top: 0px;
        margin-bottom: 10px;
        font-size: 18px;
    }

    .nav-menu {
        gap: 20px;
    }

    .problem-item {
        padding: 20px;
        z-index: 1;
    }

    .sp-problem {
        position: relative;
        z-index: 1;
    }

    .problem-text {
        font-size: 14px;
    }

    .Move-image {
        font-size: 12px;
        line-height: 28px;
    }

    .brand-name {
        font-size: 18px;
        line-height: 28px;
    }

    .solution-title {
        font-size: 14px;
        font-weight: 700;
    }

    .section-titel-color {
        font-size: 16px;
    }

    .section-content {
        font-size: 12px;
        line-height: 24px;
        /* 200% */
    }


    .futuer {
        padding: 0 10px;
        gap: 0px;
    }

    .section-futuer-color {
        font-size: 26px;
    }

    .futuer-image {
        display: flex;
        flex-direction: row;
        /* カルーセル化にあわせて横スクロールは親に依存させない */
        gap: 20px;
        padding-bottom: 10px;
        justify-content: flex-start;
        overflow: visible;
    }

    .carousel-arrow-items {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 30px;
        height: 30px;
        border-radius: 9999px;
        border: 1px solid rgba(255, 255, 255, 0.3);
        background-color: rgba(255, 255, 255, 0.2);
    }

    .carousel-arrow-box {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .futuer-image-frame {
        /* min-width: 250px; */
        flex-shrink: 0;
    }

    .SP-futuer-image {
        position: relative;
        /* カルーセルコンテナ */
        display: block;
        overflow: hidden;
    }

    .carousel-arrow-container {
        position: absolute;
        top: 31%;
        width: 100%;
        z-index: 50;
    }

    /* SP版 FUTUER のカルーセル化 */
    .SP-futuer-image .futuer-image {
        display: flex;
        gap: 30px;
        /* スライド間の空白は無し */
        transition: transform 0.3s ease-in-out;
        will-change: transform;
        width: 70%;
    }

    .SP-futuer-image .futuer-image-frame {
        width: 100%;
        flex-shrink: 0;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .hsroll-image {
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 0 auto;
    }

    .fimage-size {
        width: 100%;
        margin: 0 auto;
        display: block;
    }

    .fsentence {
        gap: 14px;
    }

    .fcase {
        font-size: 14px;
        line-height: 30px;
    }

    .section-no-color {
        font-size: 14px;
    }

    .fexplanation {
        font-size: 14px;
        font-weight: 500;
        line-height: 24px;
        /* 171.429% */
    }

    .notes-text {
        font-size: 10px;
        line-height: 20px;
        text-align: left;
        /* 200% */
    }

    .Notes {
        align-items: flex-start;
    }

    .Horizontal.scrolling {
        padding: 34px 0 0 0;
    }

    .contact-form {
        gap: 50px;
        padding: 20px;
        background: none;
        border: none;
        box-shadow: none;
    }

}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.faq-answer.fade-in-up {
    animation: fadeInUp 0.6s ease forwards;
}

.faq-answer.fade-in-up {
    animation: none;
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
    overflow-x: hidden;
    width: 100%;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--primary-bg);
}

::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--accent-gradient-start);
}

.faq-active .faq-answer-text-mask {
    display: none;
}

.faq-active .faq-answer-text-container {
    white-space: normal;
    height: fit-content;
}

.faq-answer-text-container {
    width: 100%;
    padding-top: 8px;
    padding-bottom: 8px;
    overflow: hidden;
    position: relative;
    display: flex;
    justify-content: start;
    align-items: center;
    white-space: nowrap;
}

.faq-answer-text-mask {
    position: absolute;
    width: 10%;
    top: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to right, transparent, var(--primary-bg));
    pointer-events: none;
}

#faq .pc {
    padding-left: 227px;
    padding-right: 227px;
}

.faq-icon-answer {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 48px;
}

.plus-icon {
    display: block;
    width: 48px;
    height: 48px;
    pointer-events: none;
}

.plus-icon circle,
.plus-icon path {
    pointer-events: none;
}

.faq-active .plus-icon {
    display: none;
}

.minus-icon {
    display: none;
    width: 48px;
    height: 48px;
    pointer-events: none;
}

.minus-icon circle,
.minus-icon path {
    pointer-events: none;
}

.faq-active .minus-icon {
    display: block;
}

.faq-question-text {
    font-size: 14px;
}

/* SP版 - Point要素を縦並びで表示 */
@media (max-width: 768px) {
    .dc-points {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .point {
        display: flex;
        flex-direction: column;
        gap: 15px;
        align-items: flex-start;
    }

    .p-pns {
        display: flex;
        flex-direction: row;
        gap: 10px;
        align-items: center;
    }

    .p-point {
        font-size: 14px;
    }

    .p-No {
        font-size: 18px;
        align-items: center;
    }

    .pexplanation {
        font-size: 14px;
        line-height: 22px;
        /* 157.143% */
    }

    .dc-points-duynow .dc-points {
        margin-bottom: 60px;
    }

    .st-titel {
        font-size: 26px;
        padding-bottom: 12px;
    }

    .st-subtitel {
        font-size: 10px;
    }

    .solution-titels {
        padding-bottom: 30px;
    }

    .htu-english,
    .at-english,
    .news-title-english {
        font-size: 26px;
    }

    .circle-animation {
        width: 150px;
        height: 150px;
    }

    .circle-animation circle {
        /* SP版用のスタイルを追加 */
        stroke-dasharray: 471;
    }

    .circle-animation circle.line {
        stroke-dashoffset: calc(471 - (471 * 100) / 100);
    }

    @keyframes circleAnim {
        /* SP版用のキーフレームを追加 */
        0% {
            stroke-dasharray: 0 471;
        }

        100%,
        to {
            stroke-dasharray: 471 471;
        }
    }

    .solution-image .percent .cricle-point {
        /* SP版用のスタイルを追加 */
        width: 150px;
        height: 150px;
    }

    .cricle-seconds {
        /* SP版用のスタイルを追加 */
        width: 200px;
        height: 200px;
    }

    .cs-00 {
        /* SP版用のスタイルを追加 */
        width: 50%;
        height: auto;
    }

    .cs-15 {
        /* SP版用のスタイルを追加 */
        width: 50%;
        height: auto;
    }

    .cs-30 {
        /* SP版用のスタイルを追加 */
        width: 100%;
        height: auto;
    }

    .cs-45 {
        /* SP版用のスタイルを追加 */
        width: 10%;
        height: auto;
    }
}

.solution-titels {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-bottom: 46px;
}

.st-titel {
    color: #FFF;
    text-align: center;
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    padding-bottom: 4px;
}

.st-subtitel {
    color: #CCC;
    text-align: center;
    font-family: Inter;
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
}

/* Privacy Policy Styles */
.privacy-main-content {
    max-width: 843px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    padding: 60px 20px 0;
}

.privacy-page-header {
    width: 488px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
}

.privacy-main-title {
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 32px;
    color: white;
    margin-bottom: 12px;
    line-height: normal;
}

.privacy-sub-title {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 12px;
    color: white;
    line-height: normal;
}

.privacy-content-sections {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

.privacy-content-section {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 60px;
}

.privacy-section-title {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    color: white;
    line-height: normal;
}

.privacy-section-content {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 16px;
    color: white;
    line-height: 26px;
}

.privacy-section-content p {
    margin-bottom: 0;
}

.privacy-email-link {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 500;
    color: #109a4a;
    text-decoration: none;
}

@media (max-width: 1400px) {
    .privacy-main-content {
        width: 90%;
        max-width: 843px;
    }

    .privacy-content-section {
        width: 100%;
        gap: 8px;
    }
}

@media (max-width: 768px) {
    .privacy-main-content {
        width: 100%;
        padding: 70px 30px 0;
    }

    .privacy-page-header {
        width: 100%;
    }

    .privacy-main-title {
        font-size: 28px;
    }

    .privacy-sub-title {
        font-size: 10px;
    }

    .privacy-section-title {
        font-size: 14px;
        font-weight: 400;
    }

    .privacy-section-content {
        font-size: 10px;
        line-height: 18px;
    }

    .privacy-content-sections {
        gap: 20px;
    }

    .privacy-content-section {
        padding-bottom: 26px;
    }
}
/* =================================================================
   CONSOLIDATED STYLES FROM OTHER FILES
   ================================================================= */

/* =================================================================
   PAGINATION STYLES (from pagination_styles.css)
   ================================================================= */
/* ページネーション用のスタイル - Figmaデザインに準拠 */
.pagination-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 130px;
    margin: 40px 0;
}

.pagination {
    display: flex;
    align-items: center;
    gap: 16px;
}

.page-number {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-family: 'BankGothic', sans-serif;
    font-size: 20px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
}

/* 非アクティブなページ番号 */
.page-number:not(.active) {
    background: #000000;
    border: 1px solid #ffffff;
    color: #ffffff;
}

.page-number:not(.active):hover {
    background: rgba(255, 255, 255, 0.1);
}

/* アクティブなページ番号 - 最高優先度 */
.pagination-section .pagination-nav .pagination .page-number.active,
.pagination-section .pagination .page-number.active,
.pagination-nav .pagination .page-number.active,
.pagination .page-number.active,
.page-number.active,
div.page-number.active {
    background: linear-gradient(135deg, #00FF57, #00DB5C) !important;
    border: 2px solid #109a4a !important;
    color: #000000 !important;
    font-weight: bold !important;
    transform: scale(1.1) !important;
}

/* ドット表示 */
.page-dots {
    display: flex;
    align-items: center;
    gap: 4px;
    width: 28px;
    height: 4px;
}

.page-dots .dot {
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
}

/* ナビゲーションボタン */
.nav-button {
    display: flex;
    align-items: center;
    gap: 18px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.nav-button.disabled {
    opacity: 0.4;
    pointer-events: none;
    cursor: not-allowed;
}

.nav-button a {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 18px;
}

.nav-button span {
    font-family: 'BankGothic', sans-serif;
    font-size: 16px;
    font-weight: 500;
    text-shadow: rgba(0, 0, 0, 0.25) 0px 0px 4px;
    line-height: 30px;
}

.nav-button.back-button span {
    color: rgba(255, 255, 255, 0.4);
}

.nav-button.next-button span {
    color: #ffffff;
}

.nav-button img {
    width: 40px;
    height: 40px;
}

.nav-button:hover:not(.disabled) span {
    color: var(--accent-gradient-start);
}

.nav-button:hover:not(.disabled) img {
    filter: brightness(1.2);
}

/* ニュース詳細ページ用スタイル */
.news-detail-container {
    min-height: 80vh;
    padding: 80px 20px 40px;
}

.news-detail-frame {
    max-width: 800px;
    margin: 0 auto;
}

.news-detail-header {
    text-align: center;
    margin-bottom: 40px;
}

.news-detail-main-title {
    font-size: 3rem;
    font-weight: 900;
    color: var(--accent-gradient-start);
    margin-bottom: 8px;
}

.news-detail-sub-title {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.7);
}

.news-detail-content {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 40px;
    backdrop-filter: blur(10px);
}

.news-detail-date {
    color: var(--accent-gradient-start);
    font-size: 0.9rem;
    margin-bottom: 16px;
}

.news-detail-title {
    font-size: 1.8rem;
    font-weight: 700;
    color: white;
    margin-bottom: 16px;
    line-height: 1.4;
}

.news-detail-summary {
    background: rgba(0, 255, 87, 0.1);
    border-left: 4px solid var(--accent-gradient-start);
    padding: 16px 20px;
    margin-bottom: 32px;
    border-radius: 0 8px 8px 0;
}

.news-detail-summary p {
    color: rgba(255, 255, 255, 0.9);
    font-style: italic;
    margin: 0;
    line-height: 1.6;
}

.news-detail-body {
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.8;
    font-size: 1rem;
}

.news-detail-body h3 {
    color: var(--accent-gradient-start);
    font-size: 1.3rem;
    margin: 32px 0 16px;
}

.news-detail-body ul {
    margin: 16px 0;
    padding-left: 20px;
}

.news-detail-body li {
    margin-bottom: 8px;
}

.news-detail-back {
    margin-top: 40px;
    text-align: center;
}

.back-to-news {
    display: inline-block;
    padding: 12px 24px;
    background: linear-gradient(135deg, var(--accent-gradient-start), var(--accent-gradient-end));
    color: var(--bg-primary);
    text-decoration: none;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.back-to-news:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 255, 87, 0.3);
}

/* ニュース一覧のサマリー表示スタイル */
.new-summary {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.4;
    margin-top: 8px;
    margin-bottom: 12px;
}

/* モバイル版ページネーション */
.mobile-pagination {
    display: flex;
    justify-content: center;
    width: 100%;
}

.mobile-pagination .pagination-nav {
    gap: 60px !important;
    justify-content: center;
}

.mobile-pagination .nav-button span {
    display: none; /* モバイルではテキストを非表示 */
}

.mobile-pagination .nav-button img {
    width: 30px !important;
    height: 30px !important;
}

.mobile-pagination .page-number {
    width: 40px !important;
    height: 40px !important;
    font-size: 16px !important;
}

/* ニュースアイテムのレイアウト - Figmaデザインに準拠 */
.news-item-wrapper {
    width: 100%;
}

.news-item-link {
    display: block;
    text-decoration: none;
    color: inherit;
    width: 100%;
}

.news-item-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 24px 0;
    gap: 46px;
}

.news-date {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 16px;
    color: #CCCCCC;
    white-space: nowrap;
    flex-shrink: 0;
}

.news-title {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: #FFFFFF;
    flex: 1;
    text-align: left;
    line-height: 1.5;
}

.news-icon {
    margin-left: 100px;
    flex-shrink: 0;
}

.news-icon img {
    width: 40px;
    height: 40px;
    transition: transform 0.3s ease;
}

.news-item-link:hover .news-icon img {
    transform: translateX(4px);
}

.news-separator {
    width: 100%;
    height: 1px;
    background-color: #109a4a;
}

/* モバイル版のニュースアイテム */
.news-item-content.mobile {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 10px 0;
    text-align: left;
}

.news-item-content.mobile .news-date {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #CCCCCC;
    line-height: 32px;
}

.news-item-content.mobile .news-title {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 14px;
    color: #FFFFFF;
    line-height: 32px;
    margin: 0;
}

.news-item-content.mobile .news-icon {
    display: none;
}

@media (max-width: 768px) {
    .new-summary {
        font-size: 0.8rem;
        margin-top: 6px;
        margin-bottom: 10px;
    }
    
    .pagination-section {
        display: flex;
        justify-content: center;
        width: 100%;
    }
    
    .pagination-nav {
        gap: 40px !important;
        margin: 20px 0;
        justify-content: center;
    }
    
    .pagination {
        gap: 12px;
    }
    
    .page-number {
        width: 40px !important;
        height: 40px !important;
        font-size: 16px !important;
    }
    
    .nav-button span {
        font-size: 14px;
    }
    
    .nav-button img {
        width: 30px !important;
        height: 30px !important;
    }
}

/* =================================================================
   FAQ STYLES (from faq-new-styles.css)
   ================================================================= */
/* 新しいFAQトグルボタン - Figmaデザイン準拠 */

/* FAQトグルボタンのベーススタイル */
.faq-toggle-new {
    width: 30px;
    height: 30px;
    border-radius: 18px;
    background: linear-gradient(135deg, #109A4A, #01FAAA);
    box-shadow: 0px 0px 6px 0px rgba(40, 236, 40, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 10;
}

.faq-toggle-new:hover {
    box-shadow: 0px 0px 8px 0px rgba(40, 236, 40, 0.8);
    transform: scale(1.05);
}

/* プラスアイコン（デフォルト表示） */
.faq-toggle-new .plus-icon-new {
    width: 12px;
    height: 12px;
    display: block;
}

/* マイナスアイコン（アクティブ時表示） */
.faq-toggle-new .minus-icon-new {
    width: 12px;
    height: 12px;
    display: none;
}

/* FAQアクティブ状態 */
.faq-item.faq-active .faq-toggle-new .plus-icon-new {
    display: none;
}

.faq-item.faq-active .faq-toggle-new .minus-icon-new {
    display: block;
}

/* FAQ回答テキストの省略/展開 */
.faq-answer-text-container {
    position: relative !important;
    overflow: hidden !important;
    height: 22px !important; /* 1行分の高さ */
    transition: height 0.3s ease !important;
    white-space: nowrap !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.faq-item.faq-active .faq-answer-text-container {
    height: auto !important; /* 全文表示 */
    white-space: normal !important;
}

/* テキストマスク（省略時のグラデーション効果） */
.faq-answer-text-mask {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 30% !important;
    height: 100% !important;
    background: linear-gradient(to right, transparent, #08180c) !important;
    pointer-events: none !important;
    transition: opacity 0.3s ease !important;
    display: block !important;
}

.faq-item.faq-active .faq-answer-text-mask {
    opacity: 0 !important; /* 展開時はマスクを非表示 */
    display: none !important;
}

/* モバイル版のFAQレイアウト調整 */
@media (max-width: 768px) {
    .faq-item {
        position: relative;
    }
    
    .faq-question {
        padding-right: 50px; /* トグルボタンのスペースを確保 */
    }
    
    .faq-toggle-new {
        top: 15px;
        right: 15px;
    }
}
/* =================================================================
   LOADING SCREEN & INLINE STYLES (from index.php)
   ================================================================= */

/* Loading Screen Styles */
.loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #000000;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    transition: opacity 0.5s ease-out, visibility 0.5s ease-out;
}

.loading-screen.hide {
    opacity: 0;
    visibility: hidden;
}

.loading-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 40px;
    width: 146px;
}

.loading-logo-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    height: 148px;
    width: 100%;
}

.loading-logo {
    width: 57.991px;
    height: 90.991px;
    position: relative;
}

.loading-logo img {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 0 15px rgba(40, 237, 40, 0.4));
}

.loading-title {
    font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif;
    font-size: 24px;
    font-weight: 500;
    color: #FFFFFF;
    text-align: center;
    line-height: normal;
    white-space: nowrap;
}

.loading-spinner {
    width: 67.879px;
    height: 67.879px;
    position: relative;
}

.loading-spinner img {
    width: 100%;
    height: 100%;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* Hide main content during loading */
body.loading main,
body.loading header {
    display: none;
}

.faq-toggle svg {
    filter: drop-shadow(0 0 6px rgba(40, 236, 40, 0.6));
}

/* =================================================================
   FAQ SECTION STYLES (consolidated from index.php and faq.php)
   ================================================================= */

/* FAQ Page Specific Styles */
.faq-page-frame {
    background: #000000;
    min-height: 100vh;
    padding: 120px 0 80px;
}

/* FAQ Section Styles - Same as FAQ Page */
.faq-container {
    max-width: 832px;
    margin: 0 auto;
    padding: 0 20px;
}

.faq-header {
    text-align: center;
    margin-bottom: 64px;
}

.faq-main-title {
    font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif;
    font-weight: 500;
    font-size: 32px;
    color: #FFFFFF;
    margin: 0 0 8px 0;
    letter-spacing: 0px;
}

.faq-sub-title {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 12px;
    color: #FFFFFF;
    margin: 0;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 34px;
    width: 100%;
}

.faq-item {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.faq-question-row {
    display: flex;
    align-items: center;
    gap: 18px;
}

.faq-q-label {
    font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif;
    font-weight: 500;
    font-size: 32px;
    color: #109A4A;
    flex-shrink: 0;
}

.faq-question-text {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: #FFFFFF;
    margin: 0;
}

.faq-answer-container {
    position: relative;
    background: #000000;
    border: 1px solid #109A4A;
    border-radius: 14px;
    box-shadow: 0px 0px 6px 0px rgba(40, 236, 40, 0.8);
    height: 78px;
    width: 832px;
    overflow: hidden;
    transition: height 0.3s ease;
}

.faq-answer-container.expanded {
    height: auto;
    min-height: 78px;
}

.faq-answer-container.faq-multiline {
    height: 78px;
    width: 832px;
}

.faq-answer-container.faq-multiline.expanded {
    height: auto;
    min-height: 78px;
    width: 832px;
}

.faq-multiline .faq-answer-text {
    white-space: nowrap !important;
}

.faq-multiline.expanded .faq-answer-text {
    white-space: normal !important;
}

.faq-answer-content {
    position: relative;
    padding: 21px 22px;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    height: 100%;
}

.faq-a-label {
    font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif;
    font-weight: 500;
    font-size: 32px;
    color: #109A4A;
    flex-shrink: 0;
    margin-top: 0px;
    line-height: 1;
}

.faq-answer-text {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #FFFFFF;
    line-height: 24px;
    margin: 0;
    flex: 1;
    position: relative;
    z-index: 1;
    max-width: 676px;
    padding-right: 60px;
}

.faq-answer-container.expanded .faq-answer-text {
    max-width: none;
    padding-right: 60px;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    -webkit-text-fill-color: #FFFFFF !important;
    white-space: normal !important;
    overflow: visible !important;
}

.faq-answer-container:not(.expanded) .faq-answer-text {
    background: linear-gradient(90deg, #ffffff 81.509%, transparent 98.151%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    white-space: nowrap !important;
    overflow: hidden !important;
}

.faq-toggle-btn {
    position: absolute;
    top: 21px;
    right: 22px;
    width: 36px;
    height: 36px;
    background: linear-gradient(135deg, #109A4A, #01FAAA);
    border-radius: 18px;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
    z-index: 2;
}

.faq-toggle-btn:hover {
    transform: scale(1.05);
}

.faq-toggle-btn img {
    width: 12px;
    height: 12px;
    transition: opacity 0.3s ease;
    display: block;
}

.faq-toggle-btn .minus-icon {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 12px;
    height: 12px;
}

.faq-toggle-btn .plus-icon {
    opacity: 1;
    position: relative;
    display: block;
}

.faq-answer-container.expanded .faq-toggle-btn .plus-icon {
    opacity: 0 !important;
}

.faq-answer-container.expanded .faq-toggle-btn .minus-icon {
    opacity: 1 !important;
}

/* =================================================================
   CUSTOM SELECT BOX & FORM STYLES 
   ================================================================= */

/* Custom Select Box Styles - Figma Design */
.form-group select.fg-input-textsize {
    background-color: #08180C;
    border: 1px solid #109A4A !important;
    border-radius: 12px !important;
    color: #CCCCCC !important;
    font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    padding: 14.5px 48px 14.5px 24px !important;
    box-shadow: 0px 0px 4px 0px rgba(40, 236, 40, 0.2) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='12' height='7' viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M0.264139 0.267679C0.433317 0.0962844 0.662742 0 0.901961 0C1.14118 0 1.37061 0.0962844 1.53978 0.267679L6.00545 4.7932L10.4711 0.267679C10.6413 0.101142 10.8691 0.00899045 11.1057 0.0110735C11.3422 0.0131565 11.5685 0.109307 11.7358 0.278816C11.903 0.448325 11.9979 0.677629 12 0.917342C12.002 1.15705 11.9111 1.388 11.7468 1.56042L6.64327 6.73232C6.47409 6.90372 6.24467 7 6.00545 7C5.76623 7 5.5368 6.90372 5.36762 6.73232L0.264139 1.56042C0.0950107 1.38898 0 1.15648 0 0.914052C0 0.671626 0.0950107 0.439126 0.264139 0.267679Z' fill='%23109A4A'/%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 20px center !important;
    background-size: 12px 7px !important;
    cursor: pointer !important;
}

.form-group select.fg-input-textsize:focus {
    outline: none !important;
    box-shadow: 0px 0px 6px 0px rgba(40, 236, 40, 0.4) !important;
}

.form-group select.fg-input-textsize option {
    background-color: #08180C !important;
    color: #CCCCCC !important;
    padding: 10px !important;
}

.form-group select.fg-input-textsize option:hover {
    background-color: #109A4A !important;
}

/* BUY NOW Button Position & Design Fix - Figma Design */
.dc-pic-points {
    position: relative !important;
}

.dc-buynow {
    position: absolute !important;
    bottom: 0px !important;
    right: 20px !important;
    width: 224px !important;
    height: 50px !important;
    align-self: unset !important;
    z-index: 10;

    /* Figma Design Styles - Exact Match */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 25px !important;
    border: 2px solid #109A4A !important;
    background: #0A391B !important;
    color: #FFFFFF !important;
    font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 30px !important;
    text-align: center !important;
    text-shadow: rgba(0, 0, 0, 0.25) 0px 0px 4px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    padding: 0 !important;
}

.dc-buynow:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0px 4px 8px 0px rgba(16, 154, 74, 0.3) !important;
}

.dc-buynow img {
    position: absolute !important;
    right: 25px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 9px !important;
    height: 14px !important;
    filter: brightness(0) invert(1) !important;
    /* Make arrow white */
}

/* Contact Form Success Popup - Figma Design */
.contact-success-popup {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.8);
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}

.contact-success-popup.show {
    display: flex !important;
    flex-direction: column;
}

.popup-content {
    position: relative;
    background: #000000;
    border: 1px solid #109A4A;
    border-radius: 14px;
    box-shadow: 0px 0px 6px 0px rgba(40, 236, 40, 0.8);
    width: 1000px;
    max-width: 90vw;
    height: 524px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 70px;
    padding: 40px;
}

.popup-main-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    width: 100%;
}

.popup-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    width: 419px;
    max-width: 100%;
}

.popup-logo {
    width: 90px;
    height: 107px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.popup-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.popup-title {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 600;
    font-size: 20px;
    color: #FFFFFF;
    text-align: center;
    text-shadow: rgba(0, 0, 0, 0.2) 0px 0px 5px;
    margin: 0;
}

.popup-message {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: #FFFFFF;
    text-align: center;
    line-height: 26px;
    margin: 0;
}

.popup-close-btn {
    position: relative;
    width: 224px;
    height: 50px;
    background: #0A391B;
    border: 2px solid #109A4A;
    border-radius: 25px;
    color: #FFFFFF;
    font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif;
    font-size: 18px;
    font-weight: 500;
    text-shadow: rgba(0, 0, 0, 0.25) 0px 0px 4px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.popup-close-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0px 4px 8px 0px rgba(16, 154, 74, 0.3);
}

.popup-close-btn .close-icon {
    font-size: 20px;
    line-height: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: -1px;
}

.popup-close-btn .close-text {
    font-size: 18px;
    line-height: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "BankGothic Md BT", sans-serif;
    font-weight: 500;
}

/* =================================================================
   MOBILE RESPONSIVE STYLES
   ================================================================= */

@media (max-width: 768px) {
    /* FAQ Mobile Styles */
    .faq-page-frame {
        padding: 57px 0 80px;
    }
    
    .faq-container {
        max-width: 100%;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .faq-list {
        gap: 50px;
    }

    .faq-item {
        gap: 24px;
    }

    .faq-main-title {
        font-size: 28px;
    }

    .faq-question-row {
        gap: 10px;
    }

    .faq-q-label {
        font-size: 20px;
    }

    .faq-a-label {
        font-size: 20px;
    }

    .faq-question-text {
        font-size: 14px;
        line-height: 22px;
        width: 285px;
    }

    .faq-answer-container {
        width: 100%;
        height: 70px;
    }

    .faq-answer-container.faq-multiline {
        height: 70px;
        width: 100%;
    }

    .faq-answer-container.faq-multiline.expanded {
        height: auto;
        min-height: 70px;
        width: 100%;
    }

    .faq-answer-content {
        padding: 20px;
        gap: 10px;
    }

    .faq-answer-text {
        font-size: 14px;
        line-height: 22px;
        width: 200px;
        margin-right: 50px;
    }

    .faq-answer-container.expanded .faq-answer-text {
        width: calc(100% - 60px);
        margin-right: 0px;
        padding-right: 50px;
        background: none !important;
        -webkit-background-clip: initial !important;
        background-clip: initial !important;
        -webkit-text-fill-color: #FFFFFF !important;
        white-space: normal !important;
        overflow: visible !important;
    }

    .faq-toggle-btn {
        top: 20px;
        right: 20px;
        width: 30px;
        height: 30px;
    }

    .faq-toggle-btn img {
        width: 12px;
        height: 12px;
    }

    .faq-toggle-btn .minus-icon {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 12px;
        height: 12px;
    }

    .form-group select.fg-input-textsize {
        background-color: #000000;
        font-size: 14px !important;
        padding: 12px 40px 12px 16px !important;
        background-position: right 16px center !important;
        background-size: 16px 16px !important;
    }

    /* SP版フォーム専用スタイル - Figma Frame 1381デザイン */
    .sp .contact {
        background: #000000 !important;
        width: 100% !important;
        padding: 0px 29px 60px 29px !important;
        position: relative !important;
    }

    .sp .section-container {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
    }

    .sp .contact-form {
        width: 316px !important;
        margin: 0 auto !important;
        padding: 0 !important;
        position: relative !important;
    }

    .sp .contact-titel {
        width: 195px !important;
        height: 40.5px !important;
        text-align: center !important;
        margin: 0 auto 50px auto !important;
        padding: 0 !important;
        position: relative !important;
    }

    .sp .contact-title-english {
        font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif !important;
        font-size: 24px !important;
        font-weight: 500 !important;
        color: #FFFFFF !important;
        margin-bottom: 12px !important;
        line-height: 13.5px !important;
        height: 13.5px !important;
        text-align: center !important;
    }

    .sp .contact-titel .japanese-text {
        font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        color: #FFFFFF !important;
        line-height: 15px !important;
        height: 15px !important;
        text-align: center !important;
    }

    .sp .form-groups-container {
        width: 316px !important;
        height: 574px !important;
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
    }

    .sp .form-group {
        width: 316px !important;
        height: 77px !important;
        margin-bottom: 24px !important;
        position: relative !important;
    }

    .sp .form-group:nth-child(5) {
        height: 170px !important;
        margin-bottom: 0 !important;
    }

    .sp .fg-textsize {
        font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
        font-size: 14px !important;
        font-weight: 400 !important;
        color: #FFFFFF !important;
        display: block !important;
        margin-bottom: 12px !important;
        line-height: 17px !important;
    }

    .sp .required {
        color: #FF4444 !important;
        margin-left: 6px !important;
    }

    .sp .fg-input-textsize {
        border: 1px solid #109A4A !important;
        border-radius: 8px !important;
        color: #FFFFFF !important;
        font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
        font-size: 14px !important;
        padding: 15px 12px !important;
        width: 100% !important;
        height: 48px !important;
        margin: 0 !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
    }

    .sp .fg-input-textsize::placeholder {
        color: rgba(255, 255, 255, 0.6) !important;
    }

    .sp .fg-input-textsize:focus {
        outline: none !important;
        border-color: #01FAAA !important;
        box-shadow: 0px 0px 4px 0px rgba(1, 250, 170, 0.3) !important;
    }

    .sp select.fg-input-textsize {
        appearance: none !important;
        -webkit-appearance: none !important;
        -moz-appearance: none !important;
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='12' height='7' viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M0.264139 0.267679C0.433317 0.0962844 0.662742 0 0.901961 0C1.14118 0 1.37061 0.0962844 1.53978 0.267679L6.00545 4.7932L10.4711 0.267679C10.6413 0.101142 10.8691 0.00899045 11.1057 0.0110735C11.3422 0.0131565 11.5685 0.109307 11.7358 0.278816C11.903 0.448325 11.9979 0.677629 12 0.917342C12.002 1.15705 11.9111 1.388 11.7468 1.56042L6.64327 6.73232C6.47409 6.90372 6.24467 7 6.00545 7C5.76623 7 5.5368 6.90372 5.36762 6.73232L0.264139 1.56042C0.0950107 1.38898 0 1.15648 0 0.914052C0 0.671626 0.0950107 0.439126 0.264139 0.267679Z' fill='%23109A4A'/%3e%3c/svg%3e") !important;
        background-repeat: no-repeat !important;
        background-position: right 16px center !important;
        background-size: 12px 7px !important;
        padding-right: 40px !important;
    }

    .sp select.fg-input-textsize option {
        background: #000000 !important;
        color: #FFFFFF !important;
    }

    .sp textarea.fg-input-textsize {
        height: 120px !important;
        width: 100% !important;
        padding: 12px !important;
        resize: none !important;
        box-sizing: border-box !important;
    }

    .sp .cta-button.primary {
        background: #0A391B !important;
        border: 1px solid #109A4A;
        border-radius: 24px !important;
        color: #FFFFFF !important;
        font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif !important;
        font-size: 16px !important;
        font-weight: 500 !important;
        width: 316px !important;
        height: 48px !important;
        position: absolute !important;
        top: 695px !important;
        left: 0 !important;
        margin: 0 !important;
        display: block !important;
        cursor: pointer !important;
        transition: all 0.3s ease !important;
        text-transform: uppercase !important;
        letter-spacing: 1px !important;
        box-sizing: border-box !important;
    }

    .sp .cta-button.primary:hover {
        transform: translateY(-2px) !important;
        box-shadow: 0px 4px 12px 0px rgba(16, 154, 74, 0.4) !important;
    }

    /* Mobile responsive for BUY NOW button */
    /* SP Background and Overlay Effects - Updated Figma Design */
    .sp-features .training-gear {
        position: relative !important;
        height: 670px !important;
        overflow: hidden !important;
        background: none !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 375px !important;
        margin: 0 auto !important;
    }
    
    .sp-features .background-image-container {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        z-index: 1 !important;
    }
    
    .sp-features .background-image {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
    }
    
    .sp-features .background-overlay {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background: rgba(33, 24, 0, 0.6) !important;
        z-index: 2 !important;
    }
    
    .sp-features .tg-frame {
        position: relative !important;
        z-index: 10 !important;
        background: none !important;
        padding: 76px 26px 30px !important;
        border-radius: 0 !important;
        height: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 30px !important;
    }
    
    .sp-features .mask-shape {
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 670px !important;
        z-index: 1 !important;
        pointer-events: none !important;
    }
    
    .sp-features .mask-svg {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .sp-features .tg-frame::before {
        content: '' !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        background: rgba(33, 24, 0, 0.6) !important;
        z-index: 1 !important;
    }

    .sp-features .tg-frame>* {
        position: relative !important;
        z-index: 2 !important;
    }

    .sp-features .dc-banner {
        background: #0A391B !important;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.4) !important;
        padding: 12px 41px !important;
        font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
        font-weight: 600 !important;
        font-size: 10px !important;
        line-height: 32px !important;
        width: 282px !important;
        height: 40px !important;
        margin: 0 !important;
        text-align: center !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: white !important;
        white-space: nowrap !important;
        border: none !important;
        border-radius: 0 !important;
        position: relative !important;
        z-index: 15 !important;
    }

    .sp-features .dc-name {
        text-shadow: rgba(0, 0, 0, 0.8) 0px 0px 20px !important;
        text-align: center !important;
        margin: 0 !important;
        position: relative !important;
        z-index: 15 !important;
        font-size: 14px !important;
        font-family: 'Inter', sans-serif !important;
        font-weight: 600 !important;
        color: white !important;
    }

    .sp-features .dc-name-english {
        font-size: 20px !important;
        display: inline !important;
        font-family: 'BankGothic Md BT', sans-serif !important;
        font-weight: 500 !important;
    }

    .sp-features .dc-pic-points {
        flex-direction: column !important;
        gap: 40px !important;
        position: relative !important;
        z-index: 15 !important;
        width: 100% !important;
        max-width: 282px !important;
    }

    /* Hide POINT sections in SP version to match Figma design */
    .sp-features .dc-points {
        display: none !important;
    }

    .sp-features .dc-buynow {
        position: relative !important;
        bottom: unset !important;
        right: unset !important;
        align-self: center !important;
        width: 282px !important;
        height: 48px !important;
        margin-top: 0px !important;
        background: #0A391B !important;
        border: 1px solid #109A4A !important;
        border-radius: 25px !important;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.6) !important;
        font-size: 14px !important;
        z-index: 15 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: white !important;
        font-family: 'BankGothic Md BT', sans-serif !important;
        font-weight: 500 !important;
        text-shadow: rgba(0, 0, 0, 0.25) 0px 0px 4px !important;
    }

    /* Change text to VIEW MORE on mobile */
    .sp-features .dc-buynow {
        color: transparent !important;
    }

    .sp-features .dc-buynow::before {
        content: "VIEW MORE" !important;
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        color: #FFFFFF !important;
        font-family: "BankGothic Md BT", sans-serif, 'BankGothic', sans-serif !important;
        font-size: 18px !important;
        font-weight: 500 !important;
        text-shadow: rgba(0, 0, 0, 0.25) 0px 0px 4px !important;
    }

    .sp-features .dc-picture {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        position: relative !important;
        z-index: 15 !important;
        border-radius: 6px !important;
        overflow: hidden !important;
        max-width: 280px !important;
        height: 308px !important;
        margin: 0 auto !important;
    }

    .sp-features .dc-poc-size {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        border-radius: 6px !important;
    }

    /* Mobile responsive for popup */
    .popup-content {
        width: 315px;
        max-width: 90vw;
        height: 400px;
        max-height: 90vh;
        gap: 30px;
        padding: 60px 30px 30px;
        justify-content: flex-start;
    }

    .popup-main-content {
        gap: 40px;
        text-align: center;
    }

    .popup-header {
        width: 100%;
        gap: 20px;
    }

    .popup-logo {
        width: 60px;
        height: 71px;
        margin: 0 auto;
    }

    .popup-title {
        font-size: 14px;
        line-height: 1.2;
        font-weight: 600;
    }

    .popup-message {
        font-size: 12px;
        line-height: 20px;
        font-weight: 400;
        max-width: 240px;
        margin: 0 auto;
    }

    .popup-close-btn {
        /* SP版でもCLOSEボタンを表示 */
        width: 200px;
        height: 45px;
        font-size: 16px;
        margin-top: 20px;
    }

    /* SP版では背景クリックまたはタップで閉じる */
    .contact-success-popup::after {
        content: '';
        position: absolute;
        bottom: 20px;
        left: 50%;
        transform: translateX(-50%);
        font-size: 12px;
        color: rgba(255, 255, 255, 0.7);
        text-align: center;
    }

    /* App Preview Section */
    .app-preview {
        padding: 0;
    }
}

/* End of consolidated styles */

/* SVG Hidden Class for symbol definitions */
.svg-hidden {
    display: none;
}

/* Pagination Icon Classes */
.back-arrow-icon {
    transform: rotate(180deg);
}

.mobile-arrow {
    width: 30px;
    height: 30px;
}

.mobile-nav-gap {
    gap: 60px;
}

.mobile-page-number {
    width: 40px;
    height: 40px;
    font-size: 16px;
}

/* Hero Banners Overlay Styles */
.hero-banners {
    position: fixed;
    bottom: 40px;
    right: 40px;
    width: 554px;
    height: 98px;
    border-radius: 14px;
    border: 2px solid #109A4A;
    background: #08180C;
    z-index: 1000;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    pointer-events: all;
    transition: all 0.3s ease;
    isolation: isolate;
    opacity: 0;
    visibility: hidden;
}

.hero-banners.show {
    opacity: 1;
    visibility: visible;
}

.hero-banners.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

@media (max-width: 768px) {
    .hero-banners {
        display: none !important;
    }
}

/* Hero Banners Child Elements */
.hb-titels {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    color: white;
}

.hbt-titel {
    color: #FFF;
    text-shadow: 0 0 4px rgba(255, 255, 255, 0.25);
    font-family: "BankGothic Md BT", sans-serif;
    font-size: 26px;
    font-style: normal;
    font-weight: 400;
    line-height: 32px;
    margin-bottom: 4px;
}

.hbt-sentence {
    color: #FFF;
    text-shadow: 0 0 4px rgba(255, 255, 255, 0.25);
    font-family: Inter;
    font-size: 10px;
    font-style: normal;
    font-weight: 900;
    line-height: 14px;
    max-width: 300px;
}

.hb-scroll-icon {
    width: 8%;
    height: auto;
    margin: 0 15px;
    transform: rotate(-90deg);
}

.hb-stats-graph {
    width: 100%;
    height: auto;
    cursor: pointer;
    display: block;
}

.hero-banners a,
.hero-appstore-image a,
.hero-banner-new a {
    display: inline-block;
}

.hero-banners a {
    width: 35%;
}

.hero-appstore-image a {
    max-width: 250px;
    width: 55%;
    margin-left: -14px;
}

.hero-banner-new a {
    width: 35%;
}

.hb-closebutton {
    width: 22px;
    height: 22px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    bottom: 65px;
    right: 11px;
}

.close-button {
    width: 100%;
    height: 100%;
}

/* Page Back Button Styles */
.page-back-button {
    margin: 50px 0;
    text-align: center;
}

.back-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    background: transparent;
    border: none;
    color: #109A4A;
    text-decoration: none;
    font-family: 'BankGothic Md BT', sans-serif;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.3s ease;
}

.back-btn:hover {
    opacity: 0.7;
    transform: translateX(-2px);
}

.back-arrow {
    width: 16px;
    height: 16px;
    transform: rotate(180deg);
}
