/* 全体のスタイル */
body {
    line-height: 1.6;
    color: #333;
    margin: 0;
    padding: 0;
    font-family: 'Noto Sans JP', 'M PLUS 1p', 'Zen Kaku Gothic New', 'Kosugi Maru', 'Sawarabi Gothic', sans-serif;
}

/* 見出し用のフォントを設定する場合 */
h1, h2, h3, h4, h5, h6 {
    font-family: 'M PLUS 1p', 'Zen Kaku Gothic New', 'Noto Sans JP', 'Kosugi Maru', 'Sawarabi Gothic', sans-serif;
}

header {
    position: fixed;  /* 画面上部に固定 */
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;  /* 他の要素より前面に表示 */
    padding: 1rem 0;
    overflow: visible !important; /* この行を追加 */
}

nav {
    display: flex;
    justify-content: space-between;  /* 両端に配置 */
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
    z-index: 1001; /* ドロップダウンより下に */
    position: relative;
    margin-top: 30px;
    overflow: visible !important; /* この行を追加 */
}

/* メインコンテンツ */
main {
    max-width: 100%;
    margin: 0 auto;
}

section {
    margin-bottom: 3rem;
}

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

nav ul li {
    margin: 0 0.5rem;
}

nav ul li a {
    color: white;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;  /* アイコンとテキストの間隔 */
}

nav ul li a i {
    font-size: 1.2em;  /* アイコンのサイズ */
}

#hero {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    cursor: none; /* デフォルトのカーソルを非表示 */
    background: radial-gradient(
        circle at center,
        rgba(255, 255, 255, 1) 0%,
        rgba(240, 240, 255, 1) 100%
    );
}

.hero-content {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1;
}

.hero-text-top {
    position: absolute;
    top: 15%;
    left: 10%;
    text-align: left;
    z-index: 1; /* z-indexを下げる */
}

.hero-text-top .en {
    font-size: 2.4em;  /* 2emから2.8emに変更 */
    color: #ffffff;
    margin-bottom: 0.8rem;  /* マージンも少し広げる */
    font-weight: bold;
    line-height: 1.2;  /* 行間を調整 */
    opacity: 0;  /* 初期状態は非表示 */
    animation: slideInFromLeft 1.5s ease-out forwards;
    animation-delay: 1s;  /* 1秒後に開始 */
}

.hero-text-top .jp {
    font-size: 1.8em;  /* 1.5emから2emに変更 */
    color: white;
    margin-top: 0;
    line-height: 1.4;  /* 行間を調整 */
    opacity: 0;
    animation: fadeInUp 1.5s ease-out forwards;
    animation-delay: 2.2s;  /* 2.2秒後に開始 */
}

.hero-text-bottom {
    position: absolute;
    bottom: 15%;
    right: 10%;
    text-align: right;
    z-index: 1; /* z-indexを下げる */
}

.hero-text-bottom .company-name {
    font-size: 1.9em;
    color: white;
    font-weight: bold;
    opacity: 0;
    animation: fadeInRight 1.5s ease-out forwards;
    animation-delay: 3.4s;  /* 3.4秒後に開始 */
}

/* テキストにホバーエフェクトを追加 */
.hero-text-top .en,
.hero-text-top .jp,
.hero-text-bottom .company-name {
    transition: transform 0.3s ease;
}

.hero-text-top .en:hover,
.hero-text-top .jp:hover,
.hero-text-bottom .company-name:hover {
    transform: scale(1.02);
}

/* テキストに微妙な影を追加 */
.hero-text-top .en,
.hero-text-top .jp,
.hero-text-bottom .company-name {
    text-shadow: 4px 4px 6px rgba(0, 0, 0, 0.45);
}

/* アニメーションの定義 */
@keyframes slideInFromLeft {
    0% {
        transform: translateX(-100px);
        opacity: 0;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes fadeInUp {
    0% {
        transform: translateY(20px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

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

/* 球体のスタイルを追加 */
.floating-bubbles {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 2; /* z-indexを上げる */
}

.bubble {
    position: absolute;
    background: radial-gradient(
        circle at 30% 30%,
        rgba(255, 255, 255, 0.9) 0%,
        rgba(0, 149, 255, 0.8) 20%,
        rgba(0, 123, 255, 0.6) 40%,
        rgba(64, 190, 255, 0.4) 60%,
        rgba(0, 149, 255, 0) 100%
    );
    border-radius: 50%;
    pointer-events: none;
    opacity: 0.8;
    z-index: 2; /* z-indexを上げる */
}

/* 異なる動きパターンを持つ球体を生成 */
.bubble:nth-child(1) { width: 80px; height: 80px; top: 10%; left: 10%; animation: float1 18s ease-in-out infinite; }
.bubble:nth-child(2) { width: 60px; height: 60px; top: 20%; left: 20%; animation: float2 22s ease-in-out infinite; }
.bubble:nth-child(3) { width: 40px; height: 40px; top: 80%; left: 35%; animation: float3 15s ease-in-out infinite; }
.bubble:nth-child(4) { width: 70px; height: 70px; top: 15%; left: 50%; animation: float4 21s ease-in-out infinite; }
.bubble:nth-child(5) { width: 50px; height: 50px; top: 90%; left: 65%; animation: float5 16s ease-in-out infinite; }
.bubble:nth-child(6) { width: 45px; height: 45px; top: 40%; left: 80%; animation: float1 19s ease-in-out infinite; }
.bubble:nth-child(7) { width: 55px; height: 55px; top: 70%; left: 25%; animation: float2 24s ease-in-out infinite; }
.bubble:nth-child(8) { width: 65px; height: 65px; top: 5%; left: 40%; animation: float3 18s ease-in-out infinite; }
.bubble:nth-child(9) { width: 35px; height: 35px; top: 85%; left: 60%; animation: float4 14s ease-in-out infinite; }
.bubble:nth-child(10) { width: 75px; height: 75px; top: 30%; left: 75%; animation: float5 21s ease-in-out infinite; }
.bubble:nth-child(11) { width: 45px; height: 45px; top: 95%; left: 15%; animation: float1 17s ease-in-out infinite; }
.bubble:nth-child(12) { width: 55px; height: 55px; top: 25%; left: 30%; animation: float2 20s ease-in-out infinite; }
.bubble:nth-child(13) { width: 40px; height: 40px; top: 75%; left: 45%; animation: float3 23s ease-in-out infinite; }
.bubble:nth-child(14) { width: 60px; height: 60px; top: 45%; left: 55%; animation: float4 18s ease-in-out infinite; }
.bubble:nth-child(15) { width: 50px; height: 50px; top: 8%; left: 70%; animation: float5 15s ease-in-out infinite; }
.bubble:nth-child(16) { width: 70px; height: 70px; top: 60%; left: 85%; animation: float1 21s ease-in-out infinite; }
.bubble:nth-child(17) { width: 45px; height: 45px; top: 88%; left: 5%; animation: float2 17s ease-in-out infinite; }
.bubble:nth-child(18) { width: 65px; height: 65px; top: 35%; left: 90%; animation: float3 20s ease-in-out infinite; }
.bubble:nth-child(19) { width: 35px; height: 35px; top: 92%; left: 95%; animation: float4 24s ease-in-out infinite; }
.bubble:nth-child(20) { width: 55px; height: 55px; top: 3%; left: 3%; animation: float5 18s ease-in-out infinite; }
.bubble:nth-child(21) { width: 48px; height: 48px; top: 50%; left: 8%; animation: float1 19s ease-in-out infinite; }
.bubble:nth-child(22) { width: 62px; height: 62px; top: 12%; left: 45%; animation: float2 23s ease-in-out infinite; }
.bubble:nth-child(23) { width: 38px; height: 38px; top: 65%; left: 92%; animation: float3 16s ease-in-out infinite; }
.bubble:nth-child(24) { width: 72px; height: 72px; top: 82%; left: 28%; animation: float4 22s ease-in-out infinite; }
.bubble:nth-child(25) { width: 52px; height: 52px; top: 18%; left: 88%; animation: float5 17s ease-in-out infinite; }
.bubble:nth-child(26) { width: 58px; height: 58px; top: 78%; left: 15%; animation: float1 20s ease-in-out infinite; }
.bubble:nth-child(27) { width: 42px; height: 42px; top: 28%; left: 62%; animation: float2 15s ease-in-out infinite; }
.bubble:nth-child(28) { width: 68px; height: 68px; top: 55%; left: 78%; animation: float3 21s ease-in-out infinite; }
.bubble:nth-child(29) { width: 44px; height: 44px; top: 98%; left: 38%; animation: float4 18s ease-in-out infinite; }
.bubble:nth-child(30) { width: 56px; height: 56px; top: 1%; left: 82%; animation: float5 24s ease-in-out infinite; }

/* 複数の異なる浮遊パターン */
@keyframes float1 {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(200px, -250px);
    }
    50% {
        transform: translate(300px, 100px);
    }
    75% {
        transform: translate(-200px, 200px);
    }
    100% {
        transform: translate(0, 0);
    }
}

@keyframes float2 {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(-250px, 200px);
    }
    50% {
        transform: translate(-300px, -250px);
    }
    75% {
        transform: translate(250px, -200px);
    }
    100% {
        transform: translate(0, 0);
    }
}

@keyframes float3 {
    0% {
        transform: translate(0, 0);
    }
    33% {
        transform: translate(250px, 200px);
    }
    66% {
        transform: translate(-250px, -200px);
    }
    100% {
        transform: translate(0, 0);
    }
}

@keyframes float4 {
    0% {
        transform: translate(0, 0);
    }
    20% {
        transform: translate(-200px, -250px);
    }
    40% {
        transform: translate(250px, -200px);
    }
    60% {
        transform: translate(300px, 200px);
    }
    80% {
        transform: translate(-250px, 150px);
    }
    100% {
        transform: translate(0, 0);
    }
}

@keyframes float5 {
    0% {
        transform: translate(0, 0);
    }
    30% {
        transform: translate(250px, -200px);
    }
    50% {
        transform: translate(-200px, -250px);
    }
    70% {
        transform: translate(200px, 250px);
    }
    100% {
        transform: translate(0, 0);
    }
}

.hero-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

.hero-logo .logo-image {
    width: auto;
    height: 100vh; /* ビューポートの高さの80%に設定 */
    max-height: 380px; /* 最大高さを制限 */
    object-fit: contain;
    opacity: 0;  /* 初期状態は非表示 */
    animation: fadeIn 4s ease-out forwards;  /* 5秒かけてフェードイン */
    animation-delay: 0.5s;  /* 0.5秒後に開始 */
    z-index: 10;
}

/* フェードインアニメーションの定義 */
@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.custom-cursor {
    width: 30px;
    height: 30px;
    background: rgba(135, 206, 235, 0.8); /* 水色に変更（skyblue） */
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    transform: translate(-50%, -50%);
    z-index: 9999;
    transition: width 0.2s, height 0.2s;
}

.ripple-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: all;
    z-index: 10;
    cursor: none; /* デフォルトのカーソルを非表示 */
}

.ripple {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.ripple-1 {
    border: 3px solid rgba(135, 206, 235, 0.9); /* 水色に変更 */
    animation: rippleEffect1 1.5s ease-out;
}

.ripple-2 {
    border: 2.5px solid rgba(135, 206, 235, 0.7); /* 水色に変更 */
    animation: rippleEffect2 1.5s ease-out 0.2s;
}

.ripple-3 {
    border: 2px solid rgba(135, 206, 235, 0.5); /* 水色に変更 */
    animation: rippleEffect3 1.5s ease-out 0.4s;
}

@keyframes rippleEffect1 {
    0% {
        width: 0;
        height: 0;
        opacity: 0.9; /* 開始時の透明度を0.9に */
        transform: translate(-50%, -50%);
    }
    100% {
        width: 300px;
        height: 300px;
        opacity: 0;
        transform: translate(-50%, -50%);
    }
}

@keyframes rippleEffect2 {
    0% {
        width: 0;
        height: 0;
        opacity: 0.7; /* 開始時の透明度を0.7に */
        transform: translate(-50%, -50%);
    }
    100% {
        width: 400px;
        height: 400px;
        opacity: 0;
        transform: translate(-50%, -50%);
    }
}

@keyframes rippleEffect3 {
    0% {
        width: 0;
        height: 0;
        opacity: 0.5; /* 開始時の透明度を0.5に */
        transform: translate(-50%, -50%);
    }
    100% {
        width: 500px;
        height: 500px;
        opacity: 0;
        transform: translate(-50%, -50%);
    }
}

@keyframes zoomIn {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.1);
    }
}

@keyframes fadeInOut {
    0%, 100% { opacity: 0; }
    25%, 75% { opacity: 0.7; }
}


@keyframes slideShow {
    0%, 33% {
        transform: translateX(0);
    }
    33.33%, 66% {
        transform: translateX(-33.333%);
    }
    66.66%, 100% {
        transform: translateX(-66.666%);
    }
}

.hero-image-container {
    position: relative;
    width: 50%;
    height: 100%;
    display: flex;
    animation: slideShow 15s infinite;
}

.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1s ease-out, transform 1s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes slideShow {
    0%, 33% {
        transform: translateX(0);
    }
    33.33%, 66% {
        transform: translateX(-33.333%);
    }
    66.66%, 100% {
        transform: translateX(-66.666%);
    }
}

/* 新しいメインナビゲーションのスタイル */
#main-nav-wrapper {
    position: relative;
    background-color: rgb(1, 168, 180);
    padding: 0.6rem 0;
    margin-top: -50px;
    overflow: visible;
    width: 100%;
    transition: background-color 0.3s ease; /* 追加 */
    z-index: 999; /* ドロップダウンより下に */
}

/* ヒーローセクション内での背景透明化 */
#main-nav-wrapper.transparent {
    background-color: transparent;
}

/* 縦線を非表示にするクラス */
#main-nav.hide-lines ul li:not(:last-child)::after,
#main-nav.hide-lines ul::before,
#main-nav.hide-lines ul::after {
    opacity: 0;
    transition: opacity 0.3s ease;
    background-color: transparent;
}

/* 通常時の縦線表示 */
#main-nav ul li:not(:last-child)::after,
#main-nav ul::before,
#main-nav ul::after {
    opacity: 1;
    transition: opacity 0.3s ease;
}

#main-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

#main-nav ul {
    display: flex;
    justify-content: center;
    align-items: stretch;
    padding: 0;
    margin: 0;
    list-style-type: none;
    width: 100%;
    max-width: 1400px;
    height: 60px; /* ナビゲーションの高さを設定 */
}

#main-nav ul li {
    position: relative;
    margin: 0;
    padding: 0;
    height: 100%;
    display: flex;
    align-items: center;
    flex: 0 1 auto; /* 各項目を均等な幅に設定 */
}

#main-nav ul li:not(:last-child)::after,
#main-nav ul::before,
#main-nav ul::after {
    content: '';
    position: absolute;
    top: -15%; /* 上に少し伸ばす */
    right: 0;
    height: 130%; /* 線の長さを調整 */
    width: 1px;
    background-color: #d4d4d4; /* 線の色 */
    pointer-events: none; /* 線がホバー効果を妨げないようにする */
}

#main-nav ul::before,
#main-nav ul::after {
    content: '';
    position: absolute;
    top: -15%;
    height: 130%;
    width: 1px;
    background-color: #d4d4d4;
}

#main-nav ul::before {
    left: 30px;
}

#main-nav ul::after {
    right: 30px;
}

#main-nav ul li a {
    color: #000000;
    text-decoration: none;
    padding: 10px 50px; /* 左右のパディングを増やす */
    transition: background-color 0.3s ease;
    justify-content: center; /* テキストを中央揃え */
    display: flex;
    align-items: center;
    height: 100%; /* リンクの高さをli要素いっぱいに */
    width: 100%; /* リンクの幅をli要素いっぱいに */
    white-space: nowrap; /* テキストの折り返しを防ぐ */
    font-size: 20px; /* フォントサイズを小さくする（必要に応じて調整） */
    font-weight: bold; /* この行を追加 */
}

#main-nav ul li a.spaced-item {
    padding: 10px 40px; /* 左右のマージンを追加 */
    font-weight: bold; /* この行を追加 */
}

#main-nav ul li a:hover {
    color: #ffffff;
    background-color: rgb(0, 122, 131);
}

/* 縦線を非表示にするクラス */
#main-nav.hide-lines ul li:not(:last-child)::after,
#main-nav.hide-lines ul::before,
#main-nav.hide-lines ul::after {
    opacity: 0;
    transition: opacity 0.3s ease;
    background-color: transparent; /* 完全に非表示にする */
}

/* 通常時の縦線表示（既存のスタイルを拡張） */
#main-nav ul li:not(:last-child)::after,
#main-nav ul::before,
#main-nav ul::after {
    content: '';
    position: absolute;
    top: -15%;
    height: 130%;
    width: 1px;
    background-color: #d4d4d4;
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.3s ease, background-color 0.3s ease;
}

/* 言語切り替えボタンのスタイル */
.lang-switcher {
    position: relative;
    margin-left: 20px;
    z-index: 100001 !important; /* この行を追加 */
    display: none; /* 言語切り替えボタンを非表示に設定！！！！ */
}

.lang-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    color: #333;
    cursor: pointer;
    border: 1px solid rgba(51, 51, 51, 0.3);
    border-radius: 4px;
    transition: all 0.3s ease;
    background-color: rgba(255, 255, 255, 0.9);
    position: relative; /* この行を追加 */
    z-index: 100001 !important; /* この行を追加 */
    display: none; /* 言語切り替えボタンを非表示に設定！！！！ */
}

.lang-btn:hover {
    background: rgba(255, 255, 255, 1);
}

.current-flag {
    width: 20px;
    height: 15px;
    object-fit: cover;
    border-radius: 2px;
}

.lang-dropdown {
    position: absolute;
    top: 100%; /* この行を変更 */
    left: 0;   /* この行を変更 */
    background: white;
    border-radius: 4px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    padding: 8px 0;
    min-width: 160px;
    display: none;
    z-index: 100001 !important;
}

.lang-dropdown.show {
    display: block !important; /* !importantを追加 */
}

.lang-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    text-decoration: none;
    color: #333;
    transition: background-color 0.3s ease;
}

.lang-option:hover {
    background-color: #f5f5f5;
}

.lang-option img {
    width: 20px;
    height: 15px;
    object-fit: cover;
    border-radius: 2px;
}

#about {
    position: relative;
    overflow: hidden;
    padding-top: 50px;
    padding-bottom: 0; /* 下部のパディングを削除 */
    margin-bottom: 0; /* 下部のマージンを削除 */
}

/* PC・モバイルでの表示制御 */
.pc-only {
    display: block;
}
.sp-only {
    display: none;
}

.sp-br {
    display: none;  /* PC版では非表示 */
}

.about-content {
    position: relative;
    z-index: 4; /* 画像の上にコンテンツを配置 */
    padding: 2rem;
}

.about-item {
    margin-bottom: 0.1rem;
    text-align: center; /* 中央揃えから左揃えに変更 */
    max-width: 800px; /* コンテンツの最大幅を設定 */
    margin-left: auto; /* 左右のマージンを自動に設定 */
    margin-right: auto;
    padding-left: 20px; /* 左側に少しパディングを追加 */
}

.about-content-top h1 {
    font-size: 2.3em;
    text-align: center; /* 右寄せにする */
    color: #000000;
}

.about-content-top h2 {
    font-size: 1.8em;
    margin-bottom: 5px;
    text-align: center; /* 右寄せにする */
}

.about-content-top h3 {
    font-size: 1.2em; /* 現在のサイズの2倍に設定 */
    text-align: center;
}

.about-content-top p {
    color: #333;
    text-align: center;
    font-size: 1.1em;
}

.about-item h4 {
    border-bottom: 2px solid #333;; /* 下線を追加 */
    display: inline-block; /* 下線をテキストの幅に合わせる */
    padding-bottom: 0;
    margin-bottom: 0; 
    font-size: 1.2em;
    color: #333;
}

.about-item p {
    margin-top: 10px; /* pタグの上部マージンを削除 */
}

.slide-in {
    opacity: 0;
    transform: translateX(100%);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.slide-in.visible {
    opacity: 1;
    transform: translateX(0);
}

.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 2s ease-out, transform 2s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* アニメーション定義 */
@keyframes fade-in {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

/* ローダーのスタイル */
.loader {
    width: 100vw;
    height: 300px;
    position: relative;
    text-align: center;
    line-height: 120px;
    color: #ffffff;
    margin-bottom: 0;
    overflow: hidden; /* 追加：はみ出た部分を隠す */
    margin-left: calc(-50vw + 50%); /* 左端まで広げる */
    margin-right: calc(-50vw + 50%); /* 右端まで広げる */
    z-index: 1;
}

.loader h1 {
    position: relative;
    z-index: 3;
    color: #000000;
    margin: 0;
    padding-top: 50px;
    z-index: 1;
}

.loader-bg {
    position: absolute;
    left: 0;
    right: 0;
    top: 100px;
    background: transparent repeat-x 0 100px/150px 300px url('data:image/png;base64,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'); 
    z-index: 2;
    bottom: -50px;
    animation: wave 18s linear infinite; /* アニメーションを線形で無限ループ */
    z-index: 1;
}

.drops {
    -webkit-filter: url('#liquid');
    filter: url('#liquid');
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: -1000;
}

.drop1, .drop2 {
    position: absolute;
    width: 100px;
    height: 100px;
    background: rgb(1, 168, 180);
    border-radius: 50%;
    z-index: -1000;
}

/* 固定される水滴 */
.drop1 {
    right: 47.5%;
    top: 5%;
    z-index: -1000;
    /* アニメーションなし - 固定位置 */
}

/* 落下する水滴 */
.drop2 {
    right: 47.5%;
    top: 5%;
    align-items: center;
    animation: dropVertical 3s linear infinite;
    animation-delay: 2s;
    z-index: -1000;
}

@keyframes dropVertical {
    0% {
        top: 5%; /* 画面上から開始 */
        opacity: 1;
    }
    100% {
        top: 120%; /* 画面下まで落下 */
        opacity: 1;
    }
}

/* 波のアニメーション調整 */
@keyframes wave {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 3000px 0; /* 横方向のみ移動 */
    }
}

/* 水滴のアニメーション調整 */
@keyframes drop {
    0% {
        bottom: 100%;
        opacity: 1;
    }
    80% {
        opacity: 1;
    }
    100% {
        bottom: -20%;
        opacity: 1;
    }
}

/* 水滴の横方向アニメーション */
@keyframes dropSideways {
    0% {
        right: -20px;
        transform: translateY(0);
    }
    50% {
        transform: translateY(20px);
    }
    100% {
        right: 100%;
        transform: translateY(0);
    }
}

/* 製品セクション */
#products {
    text-align: center;
    background: white;
    overflow: hidden;
    margin-top: -60px;
    margin-bottom: 0;
}

#products h2 {
    margin-bottom: 1rem;
    font-size: 2.2em;
    color: #000;
    margin-top: 100px;  /* 上部マージンを追加 */
}

#products h3 {
    max-width: 800px;
    margin: 0 auto 0.1rem;
    font-size: 1.4em;
    color: #000;
    margin-bottom: 1rem;
}

.product-carousel {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 40px;
    width: 100%;
    max-width: 1400px; /* コンテンツの最大幅を設定 */
    margin-left: auto;
    margin-right: auto;
}

/* 基本的な製品アイテムのスタイル */
.product-item {
    position: relative;
    width: 100vw;  /* ビューポートの幅いっぱいに設定 */
    margin-left: calc(-50vw + 50%);  /* 左端まで広げる */
    margin-right: calc(-50vw + 50%);  /* 右端まで広げる */
    padding: 60px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    position: relative;
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    transform: translateX(-50px);
    transition: all 1.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.product-item.animate {
    opacity: 1;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    transform: translateX(0);
}

/* グラデーションの設定 */
.product-item:nth-child(1) {
    background: linear-gradient(45deg, #067c4b, #125599); /* スティールブルーからスレートグレー */
}

.product-item:nth-child(2) {
    background: linear-gradient(45deg, #708090, #3CB371); /* スレートグレーからミディアムシーグリーン */
}

.product-item:nth-child(3) {
    background: linear-gradient(45deg, #3CB371, #5F9EA0); /* ミディアムシーグリーンからカデットブルー */
}

.product-item:nth-child(4) {
    background: linear-gradient(45deg, #28806d, #4682B4); /* カデットブルーからスティールブルー */
}

/* 偶数/奇数での配置変更 */
.product-item:nth-child(odd) {
    flex-direction: row;
}

.product-item:nth-child(even) {
    flex-direction: row-reverse;
}

/* 画像のスタイル */
.product-item img {
    width: 400px;
    height: auto;
    object-fit: cover;
    border-radius: 10px;
    transition: all 0.5s ease;
    backface-visibility: hidden;
}

.product-item:first-child img {
    transform: rotate(90deg);  /* 90度右に回転 */
    object-fit: contain;  /* 画像の比率を維持 */
    width: auto;  /* 必要に応じて幅を調整 */
    height: 190px;  /* 必要に応じて高さを調整 */
}

.product-item:first-child {
    padding-top: 100px;    /* 上の余白を増やす */
    padding-bottom: 100px; /* 下の余白を増やす */
}

/* テキストのスタイル */
.product-text {
    flex: 1;
    max-width: 600px;
    padding: 0 40px;
    color: #000;;
}

.product-text h4 {
    font-size: 1.6em;
    margin-bottom: 20px;
}

.product-text p {
    font-size: 1.1em;
    line-height: 1.6;
}

#message {
    position: relative;
    background-size: cover;
    background-position: center;
    background-attachment: fixed; /* パララックス効果を追加（オプション） */
    padding: 4rem 0;
    color: #000000; /* テキストの色を白に設定 */
    margin-bottom: 0;
    padding-top: 5rem;
    padding-bottom: 100px;
    z-index: 1; /* 他の要素の上に表示されるようにする */
}

#message::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.5); /* 背景画像の上に半透明の黒いオーバーレイを追加 */
}

.message-content {
    position: relative;
    z-index: 1; /* テキストを背景オーバーレイの上に配置 */
    max-width: 1300px;
    margin: 0 auto;
    text-align: center;
}

#message h2 {
    font-size: 2.5em;
    margin-bottom: 1.8rem;
    color: #000000;
}

#message h3 {
    font-size: 1.5em;
    margin-bottom: 1.5rem;
    color: #000000;
}

#message p {
    font-size: 1.0em;
    line-height: 1.6;
    margin-bottom: 1.5rem;
    color: #000000;
}

/* 会社情報、メッセージセクション */
#company {
    padding: 4rem 0;
    background-color: #f5f5f5;
    margin-bottom: 80px;
    padding-bottom: 200px;
    padding-top: 150px;
    background-image: url('image/company.png');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

#company h2 {
    text-align: center;
    margin-bottom: 2rem;
    font-size: 2.2em;
    color: white;
}

.company-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.company-info {
    width: 45%;
    border-collapse: collapse;
    color: #000000; /* 表のテキストを黒に */
}

.company-info th,
.company-info td {
    padding: 1rem;
    border-bottom: 1px solid #ddd;
}

.company-info th {
    width: 18%;
    text-align: center;
    font-weight: bold;
    background-color: rgba(199, 199, 199, 0.8); /* 表の背景を半透明の白に */
}

.company-info td {
    width: 60%;
    text-align: center;
    background-color: rgba(255, 255, 255, 0.8); /* 表の背景を半透明の白に */
}

.company-logo {
    width: 45%;
    text-align: center;
}

.company-logo img {
    max-width: 100%;
    height: auto;
    padding-top: 80px;
}

/* お問い合わせフォーム */
#contact {
    background-color: #D3D3D3;
    padding: 2rem 0;
    margin-top: -80px;
    padding-bottom: 100px;
    padding-top: 120px;
}

#contact h2 {
    text-align: center;
    margin-bottom: 1.5rem;
    font-size: 2em;
    color: #000000;
}

#contact-form {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 1rem;
}

.form-container {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
}

.form-section {
    flex: 1;
    background-color: #f0f0f0;
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    flex-direction: column;
    align-items: center; /* 内容を左揃えに */
}

.form-header {
    background-color: rgb(1, 168, 180);
    color: #ffffff;
    padding: 0.75rem;
    margin: -1.5rem -1.5rem 1.5rem -1.5rem;
    border-radius: 8px 8px 0 0;
    text-align: center; /* テキストを中央揃えに */
}

.form-header h3 {
    margin: 0;
    font-size: 1.1em;
    color: #ffffff;
}

.form-group {
    margin-bottom: 1rem;
    max-width: 100%; /* コンテナの幅を制限 */
    width: 100%;
}

.form-group label {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.9em;
}

.form-group input,
.form-group textarea {
    width: 97%;
    padding: 0.5rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9em;
}

.form-group textarea {
    width: 100%;
    height: 150px;
    margin-top: 1.5rem; /* この行を追加 */
    vertical-align: top; /* この行を追加 */
    line-height: 1.5;
}

.form-group textarea::placeholder {
    position: static;
    line-height: 1.5;
}

.required {
    color: #ff0000;
}

button[type="submit"] {
    display: block;
    width: 200px;
    margin: 2rem auto 0;
    background-color: rgb(1, 168, 180);
    color: #ffffff;
    border: none;
    padding: 0.95rem 1.5rem;
    font-size: 1em;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    margin-bottom: 60px;
}

button[type="submit"]:hover {
    background-color: #2727c9;
}

#privacy-policy {
    background-color: #f0f0f0;
    padding: 1.5rem;
    margin-top: 2rem;
    border-radius: 8px;
}

#privacy-policy h3 {
    margin-bottom: 1rem;
}

.policy-content {
    max-height: 200px;
    overflow-y: auto;
    background-color: #ffffff;
    padding: 1rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.consent-checkbox {
    margin-top: 1rem;
}

#submit-button:disabled {
    background-color: #acacac;
    cursor: not-allowed;
}

/* フッター */
footer {
    background-color: rgb(1, 168, 180);
    color: white;
    padding: 2rem 0;
    margin-top: -60px;
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
    height: 30px;
}

.footer-logo {
    flex: 0 0 auto;
}

.footer-logo-policy img {
    max-width: 150px;
}

.footer-nav {
    flex: 0 1 auto;
    margin-left: auto;
}

.footer-nav ul {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    gap: 2rem;
}

.footer-nav ul li {
    margin-bottom: 0;
}

.footer-nav ul li a {
    color: white;
    text-decoration: none;
    transition: opacity 0.3s ease;
    display: inline-block;
    padding: 5px 0;
}

.footer-nav ul li a:hover {
    opacity: 0.8;
    color: #007bff; /* ホバー時の色を調整 */
}

.footer-bottom {
    text-align: center;
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-logo-policy {
    display: flex;
    align-items: center;
    gap: 1rem; /* ロゴとリンクの間隔 */
}

.privacy-policy-link {
    color: white; /* リンクの色を調整 */
    text-decoration: none;
    font-size: 0.9em; /* フォントサイズを調整 */
    transition: color 0.3s ease;
    margin-left: auto;
    padding-left: 110px;
}

.privacy-policy-link:hover {
    color: #007bff; /* ホバー時の色を調整 */
}

@media (max-width: 768px) {
    /* ヘッダーを非表示 */
    header {
        display: none;
    }

    /* ヒーローセクションのロゴサイズ調整 */
    .hero-logo img {
        width: 100px;  /* または希望のサイズ */
        height: auto;  /* アスペクト比を維持 */
    }

    .logo {
        justify-content: center;
        padding-right: 0%;
        margin-bottom: 1rem;
    }

    .hero-text-top {
        top: 5%;
        left: 5%;
    }

    .hero-text-top .en {
        font-size: 1.5em;  /* モバイル用のサイズも調整 */
    }

    .hero-text-top .jp {
        font-size: 1.2em;  /* モバイル用のサイズも調整 */
    }

    .hero-text-bottom {
        bottom: 15%;
        right: 5%;
    }

    .hero-text-bottom .company-name {
        font-size: 1.4em;
    }

    .hero-inner {
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }

    .hero-left, .hero-right {
        width: 100%;
        padding: 1rem;
    }

    .hero-left h1, .hero-right p {
        font-size: 4vw; /* モバイル表示時のフォントサイズ */
    }

    /* Aboutセクションの青い円の位置調整 */
    .drops {
        right: 107px;  /* 右側への移動距離（必要に応じて調整） */
        transform: translateY(-70px);  /* Y軸方向の移動 */
    }

    /* 個別の円の位置も必要に応じて調整可能 */
    .drop1 {
        right: 20px;  /* 止まっている青い円の位置 */
    }

    .drop2 {
        right: 20px;  /* 落ちる青い円の開始位置 */
    }

    /* Aboutセクションのコンテンツ幅調整 */
    .about-content,
    .about-content-top {
        width: 100%;
        max-width: 90%;  /* テキスト幅を少し狭めに設定 */
        margin: 0 auto;
        padding: 0;
    }

    .pc-only {
        display: none;
    }
    .sp-only {
        display: block;
    }

    .sp-only .line1 {
        display: block;
        text-align: left;
    }

    .sp-only .line2 {
        display: block;
        text-align: right;
        margin-top: 5px;  /* 行間の調整（必要に応じて） */
    }

    .sp-br {
        display: block;  /* モバイル版では改行として表示 */
    }

    /* テキストブロックの設定 */
    .about-item {
        width: 100%;
        max-width: 90%;  /* コンテンツエリアと同じ幅に統一 */
        margin: 15px auto;  /* 中央揃えに変更 */
        padding: 0;
        position: relative;
        transform: none;
    }

    /* 全てのテキスト要素の共通設定 */
    .about-content h2,
    .about-content h3,
    .about-content p,
    .about-item h4,
    .about-item p {
        width: 100%;
        max-width: 100%;  /* 親要素の幅いっぱいに */
        margin: 10px 0;
        padding: 0;
        text-align: left;
    }

    .single-line.slide-in {
        font-size: 1.1rem;  /* または具体的なピクセル値: 14px など */
        line-height: 1.6;   /* 行間の調整 */
        text-align: center;  /* 右揃え */
        padding-right: 20px;  /* 右側の余白 */
    }

    /* スライドインアニメーションのある要素の幅調整 */
    .slide-in {
        width: 100%;
    }

    #products h2 {
        margin-top: 20px;     /* タイトルの上マージンを調整 */
    }

    #products h3 {
        font-size: 1.1em;  /* テキストサイズを小さく */
        line-height: 1.6;  /* 行間を調整 */
        width: 90%;  /* 幅を調整 */
        margin: 0 auto;  /* 中央揃え */
        padding: 0 10px;  /* 左右の余白 */
    }

    /* カルーセル自体のレイアウトを変更 */
    .product-carousel {
        display: block;         /* flexを解除 */
        width: 100%;
    }

    /* 商品アイテムのレイアウト調整 */
    .product-item {
        display: block;          /* flexを解除 */
        width: 100%;
        text-align: center;      /* 中央揃え */
    }

    .product-item img {
        width: 90%;
        margin: 0 auto 20px;     /* 中央揃えと下マージン */
        display: block;          /* ブロック要素に */
    }

    .product-text {
        width: 90%;
        margin: 0 auto;          /* 中央揃え */
        padding-left: 20px;
    }

    .product-text h4 {
        font-size: 1.2em;      /* 見出しのサイズ */
        margin-bottom: 15px;   /* 見出しの下の余白 */
    }

    .product-text p {
        font-size: 0.9em;      /* 本文のサイズ */
        line-height: 1.6;      /* 行間 */
    }

    /* 浄水器製造の画像とテキストの間隔を調整 */
    .product-item:first-child img {
        margin-bottom: 90px;  /* 下マージンを増やして間隔を広げる */
    }

    #message {
        background-size: 800px auto;     /* 幅を80%に、高さは自動調整 */
        background-position: 55% 80%;   /* 横方向20%（左寄り）、縦方向80% */
        position: relative;            /* 位置の基準点を設定 */
        padding-top: 60px;             /* 上部の余白を追加 */
        padding-bottom: 60px;          /* 下部の余白を追加 */
        min-height: 400px;             /* 最小の高さを設定 */
        display: flex;                 /* フレックスボックスを使用 */
        align-items: center;           /* 縦方向の中央揃え */
    }

    /* MESSAGEセクションの改行を無効化 */
    #message .message-content p br {
        display: none;  /* 改行を無効化 */
    }

    /* メッセージコンテンツの調整 */
    #message .message-content {
        width: 90%;             /* コンテンツ幅を設定 */
        margin: 0 auto;         /* 中央揃え */
    }

    /* メッセージ本文の調整 */
    #message .message-content p {
        margin-bottom: 15px;  /* 段落間の余白を確保 */
        line-height: 1.6;     /* 行間を調整 */
        width: 100%;          /* 幅を調整 */
        margin-left: auto;    /* 左右中央揃え */
        margin-right: auto;
    }

    #message h2 {
        font-size: 2em;
    }

    #message p {
        font-size: 1em;
    }

    /* COMPANYセクションの背景画像調整 */
    #company {
        background-size: cover;          /* 画面全体をカバー */
        background-position: 40% center;  /* 横位置を調整 */
        background-repeat: no-repeat;     /* 繰り返しなし */
        background-attachment: scroll;     /* スクロール時の動作 */
        padding: 2rem 0;                 
        padding-bottom: 100px;           
        padding-top: 80px;               
    }

    .company-container {
        flex-direction: column;
        align-items: center;       /* 中央揃え */
    }

    /* 会社情報テーブルの位置調整 */
    .company-info {
        width: 90%;              /* 幅を設定 */
        margin-left: -25px;       /* 左マージンで位置を調整 */
        transform: translateY(-50px);
    }

    .company-info,
    .company-logo {
        width: 100%;
    }

    .company-info th,
    .company-info td {
        display: block;
        width: 100%;
    }

    .company-info th {
        border-bottom: none;
    }

    .company-logo {
        width: 100%;               /* 幅を調整 */
        order: -1;               /* 要素の順序を最初に */
        transform: translateY(-50px);
    }

    .company-logo img {
        padding-top: 0;          /* 既存のパディングをリセット */
        max-width: 100%;          /* 画像の最大幅を設定 */
    }

    #contact {
        padding-top: 80px;        /* 上部パディングを減らす */
    }

    /* お問い合わせフォームの調整 */
    #contact .form-group textarea,
    #contact form textarea {
        height: 120px !important;     /* !important で優先度を上げる */
        min-height: 120px !important; /* 最小の高さも設定 */
        max-height: 120px !important; /* 最大の高さも設定 */
        width: 100%;
        margin-top: 1.5rem;
        vertical-align: top;
        line-height: 1.5;
        resize: none;               /* リサイズ機能を無効化 */
    }

    .form-container {
        flex-direction: column;
    }

    /* フッターのナビゲーションのみ非表示 */
    footer .footer-nav {
        display: none;
    }

    /* 個人情報保護方針の位置調整 */
    .footer-logo-policy {
        width: 100%;              /* 幅を100%に */
    }

    .footer-logo-policy a {
        white-space: nowrap;      /* 1行に表示 */
        padding-left: 30px;
    } 
}

@media (max-width: 1200px) {
    .about-content-right {
        width: 50%;
        right: 2%;
    }
}