body {
    font-family: 'Inter', sans-serif;
    background-color: #f8fafc;
    color: #1e293b; /* 黒 */
}
.container {
    max-width: 1200px;
}
.section-title {
    position: relative;
    display: inline-block;
    padding-bottom: 0.5rem;
    margin-bottom: 2rem;
    font-size: 2.25rem;
    font-weight: 700;
    color: #1e293b;
}
.section-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 60px;
    height: 4px;
    background-color: #f97316;
    border-radius: 9999px;
}

/* ボタンのカスタムカラー */
.btn-orange {
    background-color: #f97316;
    color: #fff;
}
.btn-orange:hover {
    background-color: #fb923c;
    color: #fff;
}
.btn-blue {
    background-color: #2563eb;
    color: #fff;
}
.btn-blue:hover {
    background-color: #1d4ed8;
    color: #fff;
}
.btn-black {
    background-color: #1e293b;
    color: #fff;
}
.btn-black:hover {
    background-color: #111827;
    color: #fff;
}
button.btn-red {
    background-color: #ef4444 !important;
    color: #fff !important;
}
button.btn-red:hover {
    background-color: #dc2626 !important;
    color: #fff !important;
}

/* 強調テキスト */
.text-orange {
    color: #f97316 !important;
}
.text-blue {
    color: #2563eb !important;
}
.text-black {
    color: #1e293b !important;
}

/* プラン枠やコース枠の色も調整 */
.border-orange-200 {
    border-color: #fed7aa;
}
.border-blue-200 {
    border-color: #bfdbfe;
}
.bg-orange-50 {
    background-color: #fff7ed;
}
.bg-blue-50 {
    background-color: #eff6ff;
}
.bg-black {
    background-color: #1e293b;
}

/* 追加: すべてのテキスト要素を黒に */
h1, h2, h3, h4, h5, h6, p, ul, ol, li, label, input, textarea, select, a, div, span {
    color: #1e293b;
}

/* 例外: ボタンやロゴなどは個別指定 */
.btn-orange, .btn-blue, .btn-black, .text-orange, .text-blue {
    color: #fff !important;
} 

.hero-scale-hover {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.hero-scale-hover:hover,
.hero-scale-hover:focus {
  transform: scale(1.15);
  box-shadow: 0 0 40px 10px #f97316, 0 0 60px 20px #2563eb55;
  z-index: 2;
} 

.law-container {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 4px 24px 0 rgba(0,0,0,0.07);
    border: 1.5px solid #f3f4f6;
    max-width: 640px;
    margin: 7rem auto 0 auto;
    padding: 48px 32px 32px 32px;
  }
.law-title {
font-size: 2.1rem;
font-weight: 800;
letter-spacing: 0.04em;
text-align: center;
margin-bottom: 2.5rem;
border-bottom: 2px solid #e5e7eb;
padding-bottom: 1.2rem;
}
.law-label {
font-size: 1.08rem;
font-weight: 700;
color: #222;
border-bottom: 1px solid #f3f4f6;
padding-bottom: 0.3em;
margin-bottom: 0.5em;
display: flex;
align-items: flex-end;
gap: 0.5em;
}
.law-label span {
font-size: 0.8rem;
color: #bdbdbd;
font-weight: 400;
margin-left: 0.5em;
}
.law-value {
font-size: 1.05rem;
color: #444;
margin-bottom: 1.2em;
margin-left: 0.2em;
line-height: 1.7;
}
.law-date {
text-align: right;
color: #bdbdbd;
font-size: 0.95rem;
margin-top: 2.5em;
}
@media (max-width: 600px) {
.law-container { padding: 24px 8px 16px 8px; }
.law-title { font-size: 1.3rem; }
}