:root{
  --green:#31843a;
  --green-soft:#eef6ee;
  --border:#d9e2d6;
  --text:#243042;
  --muted:#667085;
  --bg:#ffffff;
  --card:#fff;
  --shadow: 0 1px 0 rgba(0,0,0,.02);
}

*{box-sizing:border-box}

.container-booking {
  display:grid;
  grid-template-columns: minmax(0, 1fr) 440px;
  gap:24px;
  padding: 8px 5px 24px;
  align-items:start;
}
.card-title {
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--green);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding-bottom: 3px;
}
.container-booking section > .card,
.container-booking aside.card,
.container-booking .card {
  background:var(--card);
  border:1px solid var(--border);
  border-radius:24px;
  padding:24px;
  box-shadow: var(--shadow);
}

.container-booking .card + .card {
  margin-top: 18px;
}

.container-booking .small {
  color:var(--muted);
  font-size:14px;
  line-height:1.4;
  margin-top:12px;
}

.container-booking .options, .container-booking .agents {
  display:grid;
  gap:14px;
}
.container-booking .options {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.container-booking .agents {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.container-booking .option, .container-booking .agent {
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px 16px;
  cursor:pointer;
  transition:.18s ease;
  background:#fff;
  min-height:84px;
  text-align: center;
}
.container-booking .option:hover, .container-booking .agent:hover, .container-booking .extra-card:hover {
  transform: translateY(-1px);
  border-color:#b9c9b2;
}
.container-booking .option.active, .container-booking .agent.active {
  border-color: var(--green);
  background: var(--green-soft);
  box-shadow: inset 0 0 0 1px rgba(49,132,58,.08);
}
.container-booking .badge {
  display:inline-block;
  font-size:12px;
  padding:4px 8px;
  border-radius:999px;
  background:#eaf4ea;
  color:var(--green);
  margin-bottom:8px;
  font-weight:700;
}

.container-booking .agent-photo {
  width:42px;
  height:42px;
  border-radius:50%;
  background:#f1f5f9;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  margin-bottom:10px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 10px;
}

.container-booking .counter {
  display:flex;
  align-items:center;
  gap:20px;
  margin: 8px 0 4px;
}
.container-booking .counter button {
  width:52px;
  height:52px;
  border-radius:50%;
  border:1px solid var(--border);
  background:#fff;
  font-size:28px;
  cursor:pointer;
  line-height:1;
  color:#253042;
}
.container-booking .hours {
  font-size:22px;
  font-weight:700;
  min-width:110px;
  text-align:center;
}

.container-booking .extras-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:18px;
  margin-top:4px;
}

.container-booking .extra-card {
  position:relative;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  text-align: center;
  background: #fff;
  cursor: pointer;
}

.container-booking .extra-card input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.container-booking .extra-card .icon {
  font-size:28px;
  line-height:1;
  margin-bottom:12px;
}

.container-booking .extra-card .title {
  font-size:21px;
  line-height:1.2;
  font-weight:500;
  color:#16253d;
  margin-bottom:8px;
}

.container-booking .extra-card .desc {
  color:#667085;
  font-size:15px;
  line-height:1.3;
  font-weight:600;
}

.container-booking .extra-card.active,
.container-booking .extra-card:has(input:checked) {
  border-color: var(--green);
  background: var(--green-soft);
  box-shadow: inset 0 0 0 1px rgba(49,132,58,.08);
}

.container-booking .booking-card .form-grid {
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}

.container-booking label {
  display:block;
  font-size:14px;
  color:#344054;
  font-weight:700;
}
.container-booking label input,
.container-booking label select,
.container-booking textarea {
  width:100%;
  margin-top:6px;
  padding:14px 14px;
  border:1px solid var(--border);
  border-radius:14px;
  font-size:15px;
  font-family:inherit;
  outline:none;
  background:#fff;
}
.container-booking textarea {
  min-height:110px;
  resize:vertical;
  grid-column:1 / -1;
}

.container-booking .summary {
  position:sticky;
  top:14px;
}

.container-booking .summary h2 {
  font-size:30px;
  margin-bottom:18px;
}
.container-booking .summary-row {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding:15px 0;
  border-bottom:1px solid #eef0ea;
  font-size:18px;
  line-height:1.25;
}
.container-booking .summary-row span {
  color:#344054;
  flex: 1 1 auto;
}
.container-booking .summary-row strong {
  text-align:right;
  flex: 0 0 auto;
  font-weight:700;
}
.container-booking .summary-row strong#sumExtras {
  display: contents;
}

.container-booking .total{
  margin: 22px 0 18px;
  color: var(--green);
  font-size:26px;
  font-weight:800;
  line-height:1.05;
}

.container-booking .btn{
  width:100%;
  border:0;
  border-radius:16px;
  background:var(--green);
  color:#fff;
  font-size:22px;
  font-weight:800;
  padding:18px 22px;
  cursor:pointer;
}

.container-booking .eco-note {
  margin-top:18px;
  padding:16px 18px;
  border-radius:16px;
  background:var(--green-soft);
  color:#294136;
  font-size:17px;
  line-height:1.35;
}

.container-booking .rate-table {
  width:100%;
  border-collapse:collapse;
  margin-top:4px;
  font-size:16px;
}
.container-booking .rate-table th,
.container-booking .rate-table td {
  border-bottom:1px solid #e5e7eb;
  padding:12px 10px;
}
.container-booking .rate-table th {
  text-align:center;
  font-size:17px;
  font-weight:700;
  color:#1f2937;
}
.container-booking .rate-table th:first-child,
.container-booking .rate-table td:first-child {
  text-align:left;
}

@media (max-width: 1080px) {
  .container-booking .container-booking {
    grid-template-columns: 1fr;
  }
  .container-booking .summary {
    position:static;
  }
}

@media (max-width: 860px) {
  .container-booking .options,
  .container-booking .agents,
  .container-booking .extras-grid,
  .container-booking .booking-card .form-grid{
    grid-template-columns: 1fr;
  }

  .container-booking {
    padding-left: 5px;
    padding-right: 5px;
  }

  .container-booking .summary h2 {
    font-size:24px;
  }
  .container-booking .total{
    font-size:22px;
  }
}