@charset "utf-8";

:root {
    --primary-color: #005bac;
    --secondary-color: #f0f6fa;
    --accent-color: #ffc107;
    --text-color: #333;
    --base-font-family: 'Noto Sans JP', sans-serif;
}

body {
    font-family: var(--base-font-family);
    color: var(--text-color);
    background-color: #fff;
}

/* ★★★ ここを修正しました ★★★ */
.navbar { 
    background-color: #401f0f; /* byod2サイトのヘッダー色 */
    box-shadow: 0 2px 4px rgba(0,0,0,0.05); 
}
.nsu-logo { 
    height: 40px; 
}

/* (以降のCSSは変更ありません) */
.hero-section {
    background: url('img/img_white.jpg') no-repeat center center;
    background-size: cover;
    padding: 6rem 1rem;
}
.hero-title { 
    font-size: 3.5rem; 
    font-weight: 700; 
    color: var(--primary-color);
    text-shadow: 1px 1px 3px rgba(255,255,255,0.7);
}
.hero-subtitle { 
    font-size: 1.5rem; 
    color: var(--primary-color);
    text-shadow: 1px 1px 3px rgba(255,255,255,0.7);
}
.section-title {
    font-size: 2.2rem;
    font-weight: 700;
    margin-bottom: 1rem;
    text-align: center;
}
.navigator-section {
    background-color: var(--secondary-color);
    padding: 4rem 0;
}
.step-card {
    background-color: #fff;
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 2px solid transparent;
    transition: border-color 0.3s ease-in-out;
}
.step-card:hover {
    border-color: var(--accent-color);
}
.step-number {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 0.5rem;
}
.step-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
}
.step-text {
    margin-bottom: 1.5rem;
    flex-grow: 1;
}
.step-card .btn {
    width: 100%;
    padding: 0.75rem;
    font-weight: 700;
}
.btn-primary { background-color: var(--primary-color); border-color: var(--primary-color); }
.btn-success { font-size: 1.1rem; }
.content-section { padding: 4rem 0; border-bottom: 1px solid #eee; }
.content-title { font-size: 2rem; font-weight: 700; text-align: center; margin-bottom: 3rem; }
.lead { max-width: 800px; margin: 0 auto 2rem auto; }
.table thead { background-color: var(--secondary-color); }
.table-bordered { border-color: #ddd; }
.card { border: 1px solid #ddd; }
.card-title { font-weight: 700; color: var(--primary-color); }
.card-body { display: flex; flex-direction: column; }
.video-card a { text-decoration: none; color: var(--text-color); }
.video-card-body { padding: 1rem; font-weight: 700; }

#faqAccordion .card {
    border-color: #e0c7b2;
    border-radius: 0;
    margin-bottom: -1px;
}
#faqAccordion .card-header {
    background-color: #fff;
    padding: 0;
    border-bottom-color: #e0c7b2;
}
#faqAccordion .btn-link {
    display: block;
    width: 100%;
    text-align: left;
    padding: 1.25rem;
    color: #401f0f;
    text-decoration: none;
    font-weight: bold;
    position: relative;
}
#faqAccordion .btn-link:hover {
    background-color: #fbfbf2;
}
#faqAccordion .btn-link:after {
    content: '▼';
    position: absolute;
    right: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    transition: transform .3s;
}
#faqAccordion .btn-link[aria-expanded="true"]:after {
     transform: translateY(-50%) rotate(180deg);
}
#faqAccordion .card-body {
    background-color: #fbfbf2;
}

.footer {
    background-color: #343a40;
    color: #fff;
    padding: 2rem 0;
    font-size: 0.9rem;
}
.footer p { margin-bottom: 0.25rem; }
.footer .copyright { margin-top: 1rem; color: #aaa; }