* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Noto Sans JP', sans-serif;
background-color: #000;
color: #333333;
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.wrapper {
position: relative;
background-color: white;
}

/* ヘッダー */
.portal-header {
background-color: #000;
color: #ffffff;
position: relative;
z-index: 50;
}
.header-container {
max-width: 1150px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
overflow: hidden;
}

.portal-header img {
display: block !important;
width: auto;
height: auto;
}

/* ハンバーガーボタン（スマホ用） */
.menu-toggle {
    display: none;
    background: none;
    background-color: rgba(0, 0, 0, 0.7);border-radius: 8px; 
    border: none;
    color: #ffffff;
    font-size: 24px;
    cursor: pointer;
    padding-left: 8px;padding-right:8px ;padding-top:8px ;
    position: fixed;
    top: 30px; 
    right: 16px; 
    z-index: 100;
}

.site-nav {
background-color: #000000;
box-shadow: 0 4px 10px rgba(0,0,0,0.2);
border-top: 1px solid #222222;
}
.site-nav-inner {
max-width: 1150px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(4, 1fr);
text-align: center;
}
.nav-item {
padding: 16px 8px;
color: #ffffff;
text-decoration: none;
border-right: 1px solid #222222;
transition: background 0.2s;
position: relative;
}
.nav-item:last-child {
border-right: none;
}
.nav-item:hover {
background-color: rgba(255, 255, 255, 0.1);
color: #ffb7c5;
}
.nav-en {
font-size: 18px;
font-weight: bold;
letter-spacing: 1px;
display: block !important;
}
.nav-jp {
font-size: 11px;
color: #94a3b8;
margin-top: 2px;
display: block !important;
}

.cherry-bg {
background-color: white;
border-bottom: 4px solid #000000;
}
.hero {
background: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0)), url('../images/topimage.jpg');
background-repeat: no-repeat;
background-position: center;
height: 290px;
}

/* メインコンテンツエリア */
main {
background-color: white;
max-width: 1000px;
margin: 0 auto;
padding: 32px 24px;
width: 100%;
}
.section-box {
margin-bottom: 48px;
}
h1 {
border-left: 8px solid #c22;
padding-left: 8px;
font-size: 24px;
font-weight: 900;
color: #1a1a1a;
margin-bottom: 8px;
}        
h2 {
border-left: 8px solid #c72;
padding-left: 8px;
font-size: 20px;
font-weight: 900;
color: #1a1a1a;
margin-bottom: 8px;
margin-top: 24px;
}     
h3 {
border-left: 8px solid #cc2;
padding-left: 8px;
font-size: 18px;
font-weight: 900;
color: #1a1a1a;
margin-bottom: 8px;
margin-top: 24px;
}     
h4 {
border-left: 8px solid rgb(125, 204, 34);
padding-left: 8px;
font-size: 16px;
font-weight: 900;
color: #1a1a1a;
margin-bottom: 8px;
margin-top: 24px;
}     

.content-card {
background-color: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 16px;
padding: 24px;
margin-bottom: 20px;
box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}
.content-card p {
font-size: 14px;
color: #334155;
line-height: 1.8;
}
p{
margin-bottom: 12px;

}

.content-card p:last-child {
margin-bottom: 0;
}
.note-text {
font-size: 12px;
color: #64748b;
font-style: italic;
}

footer {
background-color: #000000;
color: #94a3b8;
font-size: 12px;
padding: 32px 20px;
text-align: center;
border-top: 1px solid #222222;
}
footer .footer-inner {
max-width: 1000px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 12px;
}
footer .footer-title {
font-weight: bold;
color: #ffffff;
letter-spacing: 1px;
}

@media (max-width: 767px) {
    .menu-toggle {
        display: block !important;
    }
    .portal-header {
        position: relative;
    }
    .site-nav {/*open menu*/
        display: none;
        position: fixed;
        top: 100px;z-index: 100;
        left: 0px;
        right: 0px;
        background-color: rgba(0, 0, 0, 0.95);
        box-shadow: 0 10px 20px rgba(0,0,0,0.5);
    }
    .site-nav.active {
        display: block !important;
    }
    .site-nav-inner {
        grid-template-columns: 1fr;
    }
    .nav-item {
        border-right: none;
        border-bottom: 1px solid #222222;
        padding: 14px;
    }
}

@media (min-width: 768px) {
    .menu-toggle {
        display: none;
    }
    .site-nav {
        display: block !important;
        position: static !important;
    }
}

.basetable { width: 100%; min-width: 100%; border-collapse: collapse; border: 1px solid #333333; text-align: center;} 
.basetable th, .basetable td { border: 1px solid #333333;  }

.tbox{background-color: #eee;padding: 1em;border: 1px solid #ccc;border-radius: 16px;}
.ofxa{overflow-x: auto;}
.flexbox { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.xbox{border: 1px solid #ccc;border-radius: 12px;padding: 16px;margin: 10px 0;max-width: 480px;width: 100%;overflow-x: auto;}
a{word-break: break-all;}
