@charset "utf-8";
/* Register CSS 20260529 */
.error{color:red;}
.success{color:green;font-weight:bolder;}
.msginfo{clear:both; line-height:1.2em}
#messageBox span{margin-right:20px;margin-bottom:15px;display:inline-block;padding:10px;font-size:85%;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;color:#721c24;background-color:#f8d7da;}

.swal-overlay{background-color:rgba(31,31,31,1);}
.swal-footer{text-align:center;}
.swal-button--confirm{color:#fff;background-color:#5cb85c;border-color:#4cae4c;}
.swal-button--confirm:not([disabled]):hover{color:#fff;background-color:#449d44;border-color:#398439;}
.swal-button--confirm:not([disabled]):focus{color:#fff;background-color:#449d44;border-color:#255625;}
.swal-button--confirm:not([disabled]):active{color:#fff;background-color:#449d44;border-color:#ac2925;}
.swal-button--cancel{color:#fff;background-color:#d9534f;border-color:#d43f3a;}
.swal-button--cancel:not([disabled]):hover{color:#fff;background-color:#c9302c;border-color:#ac2925;}
.swal-button--cancel:not([disabled]):focus{color:#fff;background-color:#c9302c;border-color:#761c19;}
.swal-button--cancel:not([disabled]):active{color:#fff;background-color:#c9302c;border-color:#ac2925;}

ul{margin:0;padding:0;}
li{list-style:none;line-height:25px;}
.table>tbody>tr>td{border-top:0;}

/* 进度条样式 */
.registration-progress {
margin: 20px 0;
}
.progress-steps {
display: flex;
justify-content: space-between;
position: relative;
margin-bottom: 30px;
}
.progress-steps::before {
content: "";
position: absolute;
top: 50%;
left: 0;
right: 0;
height: 3px;
background-color: #e0e0e0;
z-index: 1;
}
.step {
position: relative;
z-index: 2;
text-align: center;
flex: 1;
}
.step-number {
width: 40px;
height: 40px;
border-radius: 50%;
background-color: #e0e0e0;
color: #666;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 10px;
font-weight: bold;
transition: all 0.3s ease;
}
.step.active .step-number {
background-color: #007bff;
color: white;
}
.step.completed .step-number {
background-color: #28a745;
color: white;
}
.step-label {
font-size: 12px;
color: #666;
}
.step.active .step-label {
color: #007bff;
font-weight: bold;
}
.step.completed .step-label {
color: #28a745;
font-weight: bold;
}

/* 表单区域样式 */
.form-step {
display: none;width:100%;
}
.form-step.active {
display: block;
}

/* 按钮组样式 */
.nav-buttons {
margin-top: 20px;
display: flex;
justify-content: space-between;
}
.nav-buttons button {
min-width: 120px;
}

/* 卡片样式 */
.form-card {
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
border-radius: 10px;
overflow: hidden;
margin-bottom: 20px;
}
#tab_train .card,#tab_train .card-header{background-color:#fff;border:0px;}
#tab_train .card-header{padding:.25rem .25rem;line-height:2em;font-size:14px;}
#tab_train .card-body{margin:0.25rem;padding:.25rem .95rem;background-color:#e3f2fd!important;line-height:1.5em;border-radius:0.25rem;font-size:14px;border-left: 4px solid #2196f3;}
/* 美化活动选择区域 */
.activity-section {
    /*background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);*/
	background: #f5f7fa;
    border-radius:10px;
    padding:.5rem .5rem 0 .5rem;
    margin-bottom:0;
    box-shadow:0 4px 6px rgba(0,0,0,0.1);

}
.activity-item {
    display: flex;
    align-items: center;
    padding: 0.75rem;
    background: white;
    border-radius: 8px;
    margin-bottom: .5rem;
    transition: all 0.3s ease;
    border-left: 4px solid #007bff;
}
.activity-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.activity-title {
    font-weight: bold;
    color: #333;
    margin-bottom: 0.5rem;
}
.activity-details {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 0.5rem;
}
.radio-group {
    display: flex;
    gap: 1rem;
}
.radio-option {
    display: flex;
    align-items: center;
    cursor: pointer;
}
.radio-option input[type="radio"] {
    margin-right: 0.5rem;
}
.radio-option label {
    margin: 0;
    font-weight: normal;
}
/* 美化票种选择区域 */
.ticket-section {
    margin-top: 1.5rem;
}
.ticket-card {
    transition: all 0.3s ease;
    border: 2px solid transparent;
    overflow: hidden;
    position: relative;
	cursor: pointer;
}
.ticket-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.2);
    border-color: #007bff;
}
.ticket-card.selected {
    border-color: #28a745;
    box-shadow: 0 8px 15px rgba(40, 167, 69, 0.3);
}
.ticket-card-header {
    /*background: linear-gradient(180deg, #007bff 0%, #0056b3 100%);*/
    background: #007bff;
    color: white;
    border-bottom: 1px solid rgba(0,0,0,.125);
    padding: 1rem;
    text-align: center;
}
.ticket-card-price {
    font-size: 1.5rem;
    font-weight: bold;
    color: #28a745;
}
.ticket-card-body {
    padding: 1.5rem;
}
.ticket-card-footer {
    padding: 1rem;
    background-color: #f8f9fa;
    text-align: center;
}
.ticket-description {
    margin-bottom: 1rem;
    line-height: 1.6;
	font-size:.75rem;
}
.ticket-select-btn {
    width: 100%;
    padding: 0.75rem;
    font-weight: bold;
}
.alert{padding:.75rem .75rem;}
.hotel-rating{color: #ffc107;margin-right: 0.3rem;font-size: 0.9rem;}
/*跑马灯*/
.marquee-container-purple {
    background: linear-gradient(90deg, #6a11cb, #2575fc, #bc4e9c, #f80759, #bc4e9c);
    background-size: 400% 400%;
    animation: gradientShift 6s ease infinite;
    padding:14px 0;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(106, 17, 203, 0.4);
    border: 2px solid rgba(255,255,255,0.1);
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.marquee-content {
    display: flex;
    animation: marquee 20s linear infinite;
}
/* 鼠标悬停时暂停动画 */
.marquee-container:hover .marquee-content {
    animation-play-state: paused;
}

@keyframes marquee {
    0% { transform: translateX(100%); }
    100% { transform: translateX(-100%); }
}

.marquee-text {
    white-space: nowrap;
    padding: 0 20px;
    font-weight: 600;
    color: #ffffff;
    font-size: 1.0rem; /* 更大的字体 */
    display: flex;
    align-items: center;
    gap: 15px;
    letter-spacing: 0.8px;
    text-shadow: 0 3px 6px rgba(0,0,0,0.4);
}

/**/
.marquee-container-orange {
    background: linear-gradient(90deg, #ff416c, #ff4b2b, #f7971e, #ffd200, #f7971e);
    background-size: 400% 400%;
    animation: gradientShift 5s ease infinite;
    padding:14px 0;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(255, 65, 108, 0.5);
    border: 3px solid rgba(255,255,255,0.15);
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.marquee-content {
    display: flex;
    animation: marquee 20s linear infinite;
}

@keyframes marquee {
    0% { transform: translateX(100%); }
    100% { transform: translateX(-100%); }
}

.marquee-text {
    white-space: nowrap;
    padding: 0 20px;
    font-weight: 600; /* 更粗的字体 */
    color: #ffffff;
    font-size: 1.0rem; /* 最大的字体 */
    display: flex;
    align-items: center;
    gap: 18px;
    letter-spacing: 1px;
    text-shadow: 0 4px 8px rgba(0,0,0,0.5);
}