.fushi-page{
  background:#f5f7fb;
}

.fushi-shell{
  max-width:1380px;
  margin:0 auto;
  padding:36px 20px 72px;
}

.fushi-hero{
  padding:110px 0 50px;
  text-align:center;
}

.fushi-hero__inner{
  background:#0f3b82;
  border-radius:56px;
  padding:88px 70px;
  box-shadow:0 30px 80px rgba(15,59,130,.18);
}

.fushi-hero__badge{
  color:rgba(255,255,255,.58);
  font-weight:700;
  display:block;
  margin-bottom:20px;
  letter-spacing:.18em;
}

.fushi-hero h1{
  margin:0 0 24px;
  font-size:60px;
  line-height:1.08;
  letter-spacing:-.04em;
  color:#fff;
}

.fushi-hero p{
  margin:0 auto;
  max-width:860px;
  color:rgba(255,255,255,.85);
  font-size:20px;
  line-height:1.9;
}

.fushi-form-wrap{
  background:#fff;
  border-radius:48px;
  padding:70px 64px;
  box-shadow:0 20px 60px rgba(0,0,0,.05);
}

.fushi-head{
  margin-bottom:36px;
}

.fushi-head h2{
  margin:0 0 12px;
  font-size:36px;
  font-weight:800;
}

.fushi-head p{
  margin:0;
  color:#86868b;
  line-height:1.8;
}

.fushi-section{
  margin-top:34px;
  padding-top:30px;
  border-top:1px solid #eef1f5;
}

.fushi-section:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:none;
}

.fushi-section h3{
  margin:0 0 18px;
  font-size:28px;
  font-weight:800;
  color:#0f3b82;
}

.fushi-booking-grid{
  display:grid;
  grid-template-columns:1.35fr .95fr;
  gap:22px;
}

.fushi-card{
  border:1px solid #e8edf5;
  border-radius:28px;
  background:#fbfcfe;
  padding:22px;
}

.fushi-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}

.fushi-card__head strong{
  font-size:26px;
  color:#1d1d1f;
}

.fushi-nav{
  display:flex;
  gap:10px;
}

.fushi-nav a{
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid #e5e7eb;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:#0f3b82;
  background:#fff;
  font-size:20px;
  font-weight:700;
}

.fushi-week,
.fushi-calendar{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:10px;
}

.fushi-week{
  margin-bottom:10px;
}

.fushi-week div{
  text-align:center;
  color:#667085;
  font-size:13px;
  font-weight:700;
}

.fushi-day{
  min-height:112px;
  border:1px solid #dbe3ef;
  border-radius:20px;
  background:#fff;
  text-decoration:none;
  padding:12px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.fushi-day strong{
  font-size:22px;
  line-height:1;
  color:#1d2939;
}

.fushi-day small{
  font-size:12px;
  color:#667085;
  line-height:1.5;
}

.fushi-day span{
  display:inline-flex;
  align-self:flex-start;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  font-weight:700;
  background:#eef4ff;
  color:#103b80;
}

.fushi-day.is-empty{
  border-style:dashed;
  background:#fafcff;
  pointer-events:none;
}

.fushi-day.is-open.is-selected{
  border-color:#103b80;
  background:#eaf1ff;
  box-shadow:0 0 0 2px rgba(16,59,128,.10) inset;
}

.fushi-day.is-closed,
.fushi-day.is-full{
  background:#f8fafc;
}

.fushi-day.is-closed strong,
.fushi-day.is-closed small,
.fushi-day.is-full strong,
.fushi-day.is-full small{
  color:#98a2b3;
}

.fushi-day.is-closed span,
.fushi-day.is-full span{
  background:#eef2f6;
  color:#98a2b3;
}

.fushi-meta{
  margin-bottom:16px;
}

.fushi-meta label,
.fushi-item label,
.fushi-choice > label{
  display:block;
  font-size:14px;
  font-weight:700;
  color:#1d1d1f;
  margin-bottom:10px;
}

.fushi-value,
.fushi-item input,
.fushi-item textarea{
  width:100%;
  border:1.5px solid #e8edf5;
  border-radius:20px;
  box-sizing:border-box;
  background:#fff;
  padding:18px 22px;
  font-size:16px;
}

.fushi-value{
  min-height:58px;
  display:flex;
  align-items:center;
  color:#0f3b82;
  font-weight:700;
  background:#f8fbff;
}

.fushi-item textarea{
  line-height:1.7;
}

.fushi-slot-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.fushi-slot{
  min-height:74px;
  border:1px solid #dbe3ef;
  border-radius:18px;
  background:#fff;
  padding:12px 14px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  cursor:pointer;
}

.fushi-slot input{display:none}

.fushi-slot span{
  font-size:16px;
  font-weight:800;
  color:#1d2939;
}

.fushi-slot small{
  color:#667085;
  font-size:12px;
}

.fushi-slot.is-open.is-selected{
  border-color:#103b80;
  background:#eaf1ff;
  box-shadow:0 0 0 2px rgba(16,59,128,.10) inset;
}

.fushi-slot.is-closed{
  background:#fff3f2;
  border-color:#fecdca;
  cursor:not-allowed;
}

.fushi-slot.is-closed span{
  color:#b42318;
}

.fushi-slot.is-full{
  background:#f8fafc;
  cursor:not-allowed;
}

.fushi-slot.is-full span,
.fushi-slot.is-full small{
  color:#98a2b3;
}

.fushi-empty{
  padding:14px 16px;
  border:1px dashed #dbe3ef;
  border-radius:16px;
  color:#667085;
  background:#fafcff;
}

.fushi-grid{
  display:grid;
  gap:18px;
}

.fushi-grid.two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.fushi-choice{
  border:1px solid #e8edf5;
  border-radius:24px;
  background:#fbfcfe;
  padding:18px;
}

.fushi-options,
.fushi-radio{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.fushi-options label,
.fushi-radio label{
  min-height:58px;
  padding:0 14px;
  border:1px solid #e8edf5;
  border-radius:18px;
  background:#fff;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:15px;
  color:#1d2939;
  margin:0;
}

.fushi-submit{
  margin-top:34px;
  text-align:center;
}

.fushi-submit button{
  background:#0f3b82;
  color:#fff;
  border:none;
  padding:20px 60px;
  border-radius:999px;
  font-weight:700;
  font-size:18px;
  cursor:pointer;
  box-shadow:0 10px 30px rgba(15,59,130,.2);
}

.fushi-error{
  display:block;
  margin-top:8px;
  color:#b42318;
  font-size:14px;
}

@media (max-width: 1100px){
  .fushi-booking-grid,
  .fushi-grid.two,
  .fushi-options,
  .fushi-radio{
    grid-template-columns:1fr;
  }

  .fushi-form-wrap{
    padding:42px 24px;
  }

  .fushi-hero__inner{
    padding:60px 28px;
    border-radius:36px;
  }

  .fushi-hero h1{
    font-size:42px;
  }
}
