:root {
	--hi-green: #2e7d5e;
	--hi-green-light: #e8f5e9;
	--hi-green-dark: #1b5e3b;
	--hi-accent: #6bbea3;
	--hi-bg-light: #f8faf9;
	--hi-gold: #F6BE00;
}
body { font-family: 'Inter', sans-serif; color: #333; }

/* Navbar */
.navbar { background: #fff; box-shadow: 0 2px 20px rgba(0,0,0,0.06); }
.navbar .nav-link { font-weight: 500; padding: 0.5rem 1rem !important; color: #333; transition: color 0.2s; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--hi-green) !important; }
.navbar .dropdown-menu { border: none; box-shadow: 0 10px 40px rgba(0,0,0,0.1); border-radius: 0.75rem; }
.navbar .dropdown-item:hover { background-color: var(--hi-green-light); color: var(--hi-green); }

/* Hero */
.page-hero {
	position: relative;
	padding: 8rem 0 4rem;
	background: linear-gradient(135deg, var(--hi-green-dark) 0%, var(--hi-green) 60%, var(--hi-accent) 100%);
	color: #fff;
	overflow: hidden;
}
.page-hero::before {
	content: '';
	position: absolute;
	top: -40%;
	right: -10%;
	width: 500px;
	height: 500px;
	border-radius: 50%;
	background: rgba(255,255,255,0.05);
}
.page-hero::after {
	content: '';
	position: absolute;
	bottom: -30%;
	left: -5%;
	width: 350px;
	height: 350px;
	border-radius: 50%;
	background: rgba(255,255,255,0.04);
}
.breadcrumb-item a { color: rgba(255,255,255,0.7); text-decoration: none; }
.breadcrumb-item a:hover { color: #fff; }
.breadcrumb-item.active { color: rgba(255,255,255,0.9); }
.breadcrumb-divider { color: rgba(255,255,255,0.5); }

/* Section */
.section-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: var(--hi-green);
	color: #fff;
	font-weight: 800;
	font-size: 1.2rem;
	flex-shrink: 0;
}
.training-section {
	border: 1px solid #e8e8e8;
	border-radius: 1.25rem;
	background: #fff;
	overflow: hidden;
	transition: box-shadow 0.3s;
}
.training-section:hover {
	box-shadow: 0 10px 40px rgba(0,0,0,0.06);
}
.training-header {
	padding: 2rem 2rem 1.5rem;
	border-bottom: 1px solid #f0f0f0;
}
.training-body { padding: 1.5rem 2rem 2rem; }

/* Badge */
.badge-duration {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: var(--hi-green-light);
	color: var(--hi-green);
	font-weight: 600;
	font-size: 0.8rem;
	padding: 0.35rem 0.85rem;
	border-radius: 50px;
}
.badge-jp {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: #fff8e1;
	color: #b8860b;
	font-weight: 600;
	font-size: 0.8rem;
	padding: 0.35rem 0.85rem;
	border-radius: 50px;
}
.badge-bnsp {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: #e3f2fd;
	color: #1565c0;
	font-weight: 600;
	font-size: 0.8rem;
	padding: 0.35rem 0.85rem;
	border-radius: 50px;
}
.badge-online {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: #f3e5f5;
	color: #7b1fa2;
	font-weight: 600;
	font-size: 0.8rem;
	padding: 0.35rem 0.85rem;
	border-radius: 50px;
}

/* Schedule list */
.schedule-list { list-style: none; padding: 0; margin: 0; }
.schedule-item {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.85rem 1.25rem;
	border: 1px solid #eee;
	border-radius: 0.75rem;
	margin-bottom: 0.6rem;
	transition: all 0.2s;
	text-decoration: none;
	color: #333;
}
.schedule-item:hover {
	border-color: var(--hi-green);
	background: var(--hi-green-light);
	color: var(--hi-green-dark);
	transform: translateX(4px);
}
.schedule-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	flex-shrink: 0;
}
.schedule-icon.green { background: var(--hi-green-light); color: var(--hi-green); }
.schedule-icon.gold { background: #fff8e1; color: #b8860b; }
.schedule-date {
	font-size: 0.82rem;
	color: #888;
	margin: 0;
}
.schedule-title {
	font-weight: 600;
	font-size: 0.92rem;
	margin: 0;
}
.schedule-arrow {
	margin-left: auto;
	color: #ccc;
	transition: color 0.2s;
}
.schedule-item:hover .schedule-arrow { color: var(--hi-green); }

/* Sub-section */
.sub-section {
	background: var(--hi-bg-light);
	border-radius: 1rem;
	padding: 1.75rem;
	margin-bottom: 1.25rem;
	border-left: 4px solid var(--hi-accent);
}
.sub-section h5 {
	font-weight: 700;
	font-size: 1.05rem;
	margin-bottom: 0.5rem;
}

/* Method card */
.method-card {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 1rem;
	padding: 1.5rem;
	height: 100%;
	transition: all 0.3s;
}
.method-card:hover {
	box-shadow: 0 8px 30px rgba(0,0,0,0.06);
	border-color: var(--hi-accent);
}
.method-icon {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
	margin-bottom: 1rem;
}

/* Info box */
.info-box {
	background: #fff3cd;
	border: 1px solid #ffe69c;
	border-radius: 0.75rem;
	padding: 1rem 1.25rem;
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}
.info-box i { color: #b8860b; font-size: 1.2rem; margin-top: 2px; }

/* Not available */
.not-available {
	background: #f5f5f5;
	border: 1px dashed #ccc;
	border-radius: 1rem;
	padding: 2rem;
	text-align: center;
	color: #999;
}

/* CTA */
.cta-section {
	background: linear-gradient(135deg, var(--hi-green-dark) 0%, var(--hi-green) 100%);
	border-radius: 1.25rem;
	padding: 3rem;
	color: #fff;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.cta-section::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -20%;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: rgba(255,255,255,0.06);
}

/* Footer */
.site-footer { background: #1a1a1a; color: #aaa; }
.site-footer a { color: #aaa; text-decoration: none; transition: color 0.2s; }
.site-footer a:hover { color: var(--hi-accent); }
.footer-social a {
	width: 40px; height: 40px; border-radius: 50%;
	background: rgba(255,255,255,0.08);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 1.1rem; margin: 0 0.3rem; transition: all 0.3s;
}
.footer-social a:hover { background: var(--hi-green); color: #fff; }

/* Back to top */
.back-to-top {
	position: fixed; bottom: 2rem; right: 2rem;
	width: 45px; height: 45px; border-radius: 50%;
	background: var(--hi-green); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.2rem; text-decoration: none;
	opacity: 0; visibility: hidden; transition: all 0.3s; z-index: 999;
	box-shadow: 0 4px 15px rgba(46,125,94,0.3);
}
.back-to-top.show { opacity: 1; visibility: visible; }
.back-to-top:hover { background: var(--hi-green-dark); color: #fff; transform: translateY(-3px); }