@charset "UFT-8";

/* General Styles */

:root {
    --scale-factor: 1;
}

* {
    max-width: 100%;
    box-sizing: border-box; /* ボックスサイズを適切に計算 */
}

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    height: 100%;
    box-sizing: border-box;
    line-height: 1.6;
    overflow-x: hidden;
    font-size: 16px; /* 基本のフォントサイズ */
    transform: scale(var(--scale-factor));
    transform-origin: top left;
}
    
img {
  max-width: 100%;
  height: auto;
  display: block;
}

.section {
  margin: 0 auto;
  padding: 20px;
  width: 100%; /* 固定値を避ける */
  max-width: 1200px; /* レスポンシブデザイン用に上限を設定 */
}
    
/* Navbar Styles */
.logo img{
    width: 200px;
    margin-top: 0.5rem;
}

.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.7);
    padding: 0rem 2rem;
    color: #1A1A40;
    position: fixed; /* Changed from fixed to absolute */
    top: 0;
    width: 100%;
    height: 80px;
    z-index: 10;
    box-sizing: border-box;
    /* アニメーションの命令 */
    animation: scrollAnime linear;
    /* 一番上から一番下までスクロールする間にアニメーションさせる */
    animation-timeline: scroll();
}

@keyframes scrollAnime {
    0% {
        background-color: rgba(255, 255, 255, 0.7);
        color: #1A1A40;
    }

    1% {
        background-color: rgba(255, 255, 255, 0.8);
        color: #1A1A40;
    }

    100% {
        background-color: rgba(255, 255, 255, 1);
        color: #1A1A40;
    }
}

.nav-links {
    list-style: none;
    display: flex;
    gap: 3rem;
}

.nav-links a {
    text-decoration: none;
    color: #1A1A40;
    transition: color 0.3s;
}

.nav-links a:hover {
    color: #dc5f25;
}

.navbar ul{
    margin-right: 1rem;
    font-size: 120%;
}

.hamburger{
    display: none;
}
/* Hero Section */
.hero {
    position: relative;
    height: 90vh;
    display: flex;
    justify-content: left;
    color: white;
    text-align: center;
    font-family: "Copperplate";
    font-weight: lighter;
}

.hero-image {
    position: absolute;
    left: 0;
    width: 100%;
    height: 120%;
    object-fit: cover;
    z-index: -1;
    margin-top: -50px; 
}

.hero-content {
    position: relative;
    z-index: 1;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
    margin-left: 5rem;
    margin-top: 13rem;
}

/* 初期状態の設定 */
.hero h1 {
    position: relative;
    opacity: 0; /* 初期は透明 */
    transform: translateY(-50px); /* 初期位置を上に設定 */
    animation: fadeInDown 1s ease-out forwards; /* アニメーション適用 */
    animation-delay: 0.3s; /* 遅延時間を設定 */
    font-size: 50px;
}

/* 上から下にフェードインするアニメーション */
@keyframes fadeInDown {
    0% {
        opacity: 0;
        transform: translateY(-50px); /* 上に50px移動 */
    }
    100% {
        opacity: 1;
        transform: translateY(0); /* 元の位置に戻る */
    }
}




/* About Section */
.about {
    padding: 4rem 10rem 4rem 10rem;
    background-color: #1A1A40;
    text-align: left;
    margin-top: 0;

}

.about h1 {
    display: absolute;
    justify-content: left;
    font-size: 4rem;
    color: lightgoldenrodyellow;
    margin: -1rem 0 0 -7rem;
    opacity: 0.15;
    z-index: 2;
}

.about h2 {
    position: relative;
    opacity: 0; /* 初期状態は透明 */
    transform: translateX(-50px); /* 初期位置を左に設定 */
    transition: transform 1s ease-out, opacity 1s ease-out; /* アニメーション設定 */
    position: relative;
    margin-top: -4.5rem;
    font-size: 4rem;
    color: #dc5f25;
    font-family: Baskerville;
    z-index: 1;
}

.about h2.visible {
    opacity: 1;
    transform: translateX(0); /* 元の位置に戻る */
}

.about p {
    margin-top: -2rem;
    color: #f8f8f8;
    font-size: 18px;
    margin-bottom: 2rem;
}

.about h3 {
    color: #dc5f25;
    font-size: 3rem;
}

.about table {
    color: #f8f8f8;
    font-size: 18px;
    border-collapse: collapse;
    margin: auto;
}

.about th {
    border-bottom: 1px solid #f8f8f8;
    padding-top: 2rem;
    padding-bottom: 1rem;
}

.about td {
    padding-left: 3rem;
    border-bottom: 1px solid #f8f8f8;
    padding-top: 2rem;
    padding-bottom: 1rem;
}

/* Services Section */
.services {
    background-color: #f8f8f8; /* 背景色を明示 */
    padding-bottom: 0; /* 必要に応じて余白を調整 */
    position: relative; /* h1のabsolute配置基準 */
    padding-top: 10rem;  高さの余白を確保 
    z-index: 1;
}

.services h1 {
    position: absolute; /* 絶対配置 */
    top: -1.8rem; /* 上方向に移動 */
    left: 10rem; /* 右寄せに移動 */
    font-size: 4rem;
    color: #dc5f25;
    opacity: 0.15;
    margin: 5rem 0 0 -7rem;
    text-align: left;
    z-index: 2;
}

.services h2 {
    position: relative;
    opacity: 0; /* 初期状態は透明 */
    transform: translateX(-50px); /* 初期位置を左に設定 */
    transition: transform 1s ease-out, opacity 1s ease-out; /* アニメーション設定 */
    padding: 0 10rem;
    font-size: 4rem;
    color: #dc5f25;
    font-family: Baskerville;
    z-index: 1;
    margin-top: -4.5rem;
    margin-bottom: -0.2rem;
}

/* スクロールでアニメーションを適用 */
.services h2.visible {
    opacity: 1;
    transform: translateX(0); /* 元の位置に戻る */
}


.service-card{
    padding-bottom: 3rem;
    background-color: #f8f8f8;
    display: flex;
    flex-wrap: wrap; /* 折り返しを許可 */
    justify-content: space-between; /* 子要素の間隔を均等に配置 */
    gap: 1rem; /* カード間のスペース */
}

.service-card-box {
    margin-top: 1.5rem;
    color: #1A1A40;
    background-color: #f8f8f8;
}

.service-card-title {
    display: inline-block;
    position: relative;
    height: 60px;
    background: #1A1A40;
    box-sizing: border-box;
    font-size: calc(1.4rem + 0.5vw); /* 画面幅に応じて動的にフォントサイズを調整 */
}

.service-card h3 {
    display: inline-block;
    position: relative;
    line-height: 0px;
    text-align: left;
    padding: 0 10rem;
    font-size: 2vw;
    color: #FFF;
}

.service-card-title:after {
  position: absolute;
  content: '';
  width: 0px;
  height: 0px;
  z-index: 1;
}

.service-card-title:after {
  top: 0;
  right: 0;
  border-width: 30px 0px 30px 15px;
  border-color: #f8f8f8 transparent  #f8f8f8 transparent;
  border-style: solid;
}

/*
.service-card p {
    margin: 3rem 10rem;
    color: #1A1A40;
    font-size: 18px;
    background-color: #f8f8f8;
}
*/

.services table{
    display: inline-block;
    position: relative;
    padding: 2rem 10rem 0 10rem;
    width: 100%; /* テーブル全体の幅を統一 */
    table-layout: fixed; /* 各列の幅を固定 */
}

.services th {
    text-align: left;
    width: 70%;
    font-size: 1.2vw;
    color: #1A1A40;
    font-weight: normal; /* 太字を解除 */
}

.services td {
    padding-left: 20px;
}


.services table td img {
    width: 300px; /* 画像の横幅を統一 */
    object-fit: cover; /* 画像の比率を維持しながらトリミング */
    display: block;
}

/* Choose Section */
.choose {
    padding: 5rem 10rem 5rem 10rem;
    background-color: #1A1A40;
    text-align: left;
    padding-bottom: 3rem;
}

.choose h1 {
    display: flex;
    position: absolute;
    justify-content: left;
    font-size: 4rem;
    color: lightgoldenrodyellow;
    margin: -1rem 0 0 -7rem;
    opacity: 0.15;
    z-index: 1;
}

.choose h2 {
    position: relative;
    opacity: 0; /* 初期状態は透明 */
    transform: translateX(-50px); /* 初期位置を左に設定 */
    transition: transform 1s ease-out, opacity 1s ease-out; /* アニメーション設定 */
    position: relative;
    margin-top: 0.3em;
    font-size: 4rem;
    color: #dc5f25;
    font-family: Baskerville;
    z-index: 2;
}

.choose h2.visible {
    opacity: 1;
    transform: translateX(0); /* 元の位置に戻る */
}


.choose table {
    display: flex;
    justify-content: center;
    width: 100%; /* テーブル全体の幅を統一 */
    table-layout: fixed; /* 各列の幅を固定 */
    margin: auto;
    
}

.choose td {
    width: 90%;
    color: #f8f8f8;
    font-size: 18px;
    padding-left: 1.5rem;
    padding-bottom: 4rem;
}

.choose img {
    width: 100px;
    padding-bottom: 4rem;
    
}

.choose h3 {
    color: white;
    font-size: 2vw;
    margin: 0 0 2rem 0;
}

.choose p {
    margin: 0;
}

/* Banking Section */
.banking {
    background-color: #f8f8f8;
    position: relative; /* h1のabsolute配置基準 */
    padding-top: 10rem;  高さの余白を確保 
    padding-bottom: 7rem; 
    z-index: 1;
}

.banking h1 {
    position: absolute; /* 絶対配置 */
    top: 0rem; /* 上方向に移動 */
    left: 10rem; /* 右寄せに移動 */
    font-size: 4rem;
    color: #dc5f25;
    opacity: 0.15;
    margin: 3rem 0 0 -7rem;
    text-align: left;
    z-index: 2;
}

.banking h2 {
    position: relative;
    opacity: 0; /* 初期状態は透明 */
    transform: translateX(-50px); /* 初期位置を左に設定 */
    transition: transform 1s ease-out, opacity 1s ease-out; /* アニメーション設定 */
    padding: 0 10rem;
    font-size: 4rem;
    color: #dc5f25;
    font-family: Baskerville;
    z-index: 1;
    margin-top: -4.5rem;
    margin-bottom: -0.2rem;
}

.banking h2.visible {
    opacity: 1;
    transform: translateX(0); /* 元の位置に戻る */
}

.banking-card {
    display: flex;
    flex-wrap: wrap; /* flexアイテムを折り返す（複数行に配置する） */
    justify-content: center;
    column-gap: 40px;
    align-items: center;
    padding-top: 3rem;
    padding-bottom: 7rem;
}

.banking-card-item {
    background-color: white;
    border-radius: 20px; /* 角丸にする */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 軽い影を追加 */
    display: flex; /* Flexboxで画像とテキストを横並び */
    flex-wrap: wrap;
    align-items: center; /* 中央揃え */
    padding: 1rem;
    width: 500px; /* カード幅を調整 */
    box-sizing: border-box; /* ボックスのサイズをpadding含めて計算 */
}

.banking-card img {
    border-radius: 50%; /* 丸い画像 */
    width: 100px;
    margin-left: 1.5rem;
    margin-right: 4rem; /* テキストとの隙間 */
    border: solid 1px gray;
}

.banking-card a {
    text-decoration: none;
    font-size: 1.2rem;
    color: #1A1A40;
    font-weight: bold;
    position:relative;
}

a::before {
    display: block;
    position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
}

/* Contact */
.contact {
    position: relative;
    width: 100%; /* セクションの幅を画面幅に制限 */
    height: 500px; /* 必要に応じて高さを調整 */
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    background: url('image/top_bottom.png') no-repeat center center;
    background-size: cover; /* セクション全体を埋めるように調整 */
    margin: 0;
    padding: 0;
    overflow: hidden; /* セクション外の部分を非表示 */
}

.contact .overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.contact h2 {
    font-size: 5rem;
    margin: 0;
    color: white;
}

.contact p {
    margin: 0.5rem 0 0;
    font-size: 2.5rem;
    color: white;
}



/* Footer */
footer {
    text-align: center;
    background-color: darkgray;
    padding-top: 0.3rem;
    padding-bottom: 1.5rem;
}
