@font-face{font-family:"Lora";src:url("../fonts/lora/Lora-VLS-Latin.woff2") format("woff2");font-style:normal;font-weight:400 700;font-display:swap}
:root{
  --vls-blue:#004AAD;
  --vls-blue-dark:#00377F;
  --vls-orange:#FF5C00;
  --vls-ivory:#F7F1E8;
  --vls-sky:#EAF4FF;
  --vls-white:#FFFFFF;
  --vls-ink:#12233F;
  --vls-muted:#5D6878;
  --vls-line:rgba(18,35,63,.16);
  --vls-success:#167548;
  --vls-warning:#9A5A00;
  --vls-danger:#B42318;
  --vls-radius-sm:.65rem;
  --vls-radius:1.15rem;
  --vls-radius-lg:1.8rem;
  --vls-section:clamp(4.75rem,8vw,8rem);
  --vls-container:1280px;
  --vls-shadow:0 1.25rem 3.5rem rgba(18,35,63,.12);
  --vls-shadow-soft:0 .75rem 2rem rgba(18,35,63,.08);
  --vls-display-font:"Lora",Georgia,"Times New Roman",serif;
  --vls-zh-display-font:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;
}
html{scroll-padding-top:88px}
*,*::before,*::after{box-sizing:border-box}
body{overflow-x:hidden;background:var(--vls-white);color:var(--vls-ink);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.65}
.container{max-width:var(--vls-container)}
.section-pad{padding:var(--vls-section) 0}
h1,h2,.display-serif{font-family:var(--vls-display-font);font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.035em}
[lang="zh"] h1,[lang="zh"] h2,[lang="zh"] .display-serif{font-family:var(--vls-zh-display-font);font-weight:800;letter-spacing:-.045em}
.eyebrow{margin:0;color:var(--vls-blue);font-size:.73rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.btn{min-height:46px;border-radius:.65rem;padding:.68rem 1.15rem;font-weight:800}
.btn-lg{min-height:54px;padding:.86rem 1.45rem}
.btn-primary{--bs-btn-bg:var(--vls-blue);--bs-btn-border-color:var(--vls-blue);--bs-btn-hover-bg:var(--vls-blue-dark);--bs-btn-hover-border-color:var(--vls-blue-dark);--bs-btn-active-bg:var(--vls-blue-dark);--bs-btn-active-border-color:var(--vls-blue-dark);--bs-btn-disabled-bg:var(--vls-blue);--bs-btn-disabled-border-color:var(--vls-blue)}
.btn-outline-primary{--bs-btn-color:var(--vls-blue);--bs-btn-border-color:var(--vls-blue);--bs-btn-hover-bg:var(--vls-blue);--bs-btn-hover-border-color:var(--vls-blue)}
.btn-warning{--bs-btn-bg:var(--vls-blue);--bs-btn-border-color:var(--vls-blue);--bs-btn-hover-bg:var(--vls-blue-dark);--bs-btn-hover-border-color:var(--vls-blue-dark);color:#fff}
.form-control,.form-select{min-height:50px;border-color:rgba(18,35,63,.24);border-radius:.65rem;background-color:#fff;color:var(--vls-ink)}
.form-control:focus,.form-select:focus,.form-check-input:focus,.btn:focus-visible,a:focus-visible,button:focus-visible{border-color:var(--vls-blue);box-shadow:0 0 0 .23rem rgba(0,74,173,.2);outline:0}
.form-label{color:var(--vls-ink);font-weight:750}
.form-text{color:var(--vls-muted)}
.alert{border:0;border-left:4px solid currentColor;border-radius:.65rem}
.booking-panel,.form-card{border:1px solid var(--vls-line);border-radius:var(--vls-radius);padding:clamp(1.2rem,3vw,2.35rem);background:#fff;box-shadow:var(--vls-shadow-soft)}
.summary-card{position:sticky;top:6.5rem;border:1px solid var(--vls-line);border-radius:var(--vls-radius);padding:1.5rem;background:var(--vls-ivory);box-shadow:var(--vls-shadow-soft)}
.summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--vls-line)}
.summary-total{color:var(--vls-blue);font-size:1.22rem;font-weight:900}
.progress-steps,.booking-progress{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem;padding:0;margin:1.5rem 0;list-style:none}
.progress-steps li,.progress-steps span,.booking-progress span{padding:.62rem .35rem;border-radius:.5rem;background:#E9EDF2;color:#687486;text-align:center;font-size:.73rem;font-weight:850}
.progress-steps .active,.booking-progress .active{background:var(--vls-blue);color:#fff}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.slot-option{position:relative}
.slot-option input{position:absolute;opacity:0}
.slot-option label{display:block;padding:.9rem;border:1px solid rgba(18,35,63,.25);border-radius:.6rem;background:#fff;text-align:center;cursor:pointer}
.slot-option input:checked+label{border-color:var(--vls-blue);background:var(--vls-sky);color:var(--vls-blue);font-weight:850;box-shadow:inset 0 0 0 1px var(--vls-blue)}
.slot-option input:disabled+label{opacity:.48;cursor:not-allowed;text-decoration:line-through}
.status-pill{display:inline-flex;align-items:center;min-height:28px;padding:.25rem .6rem;border-radius:99px;background:#E9EDF2;color:var(--vls-ink);font-size:.72rem;font-weight:850}
.table-responsive{overflow:hidden;border:1px solid var(--vls-line);border-radius:.75rem;background:#fff}
.table>:not(caption)>*>*{padding:.85rem .8rem}
@media (max-width:991.98px){.summary-card{position:static}.slot-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:575.98px){.progress-steps,.booking-progress{grid-template-columns:repeat(3,1fr)}.slot-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
