/* Halaman Janji Temu: tampilan mandiri agar tidak bertabrakan dengan halaman lain. */
.cm-booking {
    padding: 54px 0 78px;
    background: linear-gradient(180deg, #fff8f7 0, #f6f8f8 360px);
    color: #29343b;
    font-family: Poppins, Arial, sans-serif;
}

.cm-booking,
.cm-booking * { box-sizing: border-box; }

.cm-booking .cm-booking-wrap {
    width: min(1040px, calc(100% - 36px));
    margin: 0 auto;
}

.cm-booking .cm-booking-head {
    display: block;
    max-width: 730px;
    margin: 0 0 30px;
    text-align: left;
}

.cm-booking .cm-booking-head p {
    display: block;
    margin: 0 0 10px;
    color: #c53830;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.6px;
    line-height: 1.4;
    text-transform: uppercase;
}

.cm-booking .cm-booking-head h1 {
    display: block;
    max-width: none;
    margin: 0;
    color: #26313a;
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
    line-height: 1.15;
}

.cm-booking .cm-booking-head span {
    display: block;
    max-width: 660px;
    margin-top: 12px;
    color: #637079;
    font-size: 15px;
    line-height: 1.7;
}

.cm-booking .cm-booking-card {
    display: grid;
    grid-template-columns: minmax(260px, .7fr) minmax(0, 1.45fr);
    overflow: hidden;
    border: 1px solid #f1d9d7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(96, 36, 32, .1);
}

.cm-booking .cm-booking-aside {
    padding: 34px 30px;
    background: linear-gradient(150deg, #b81818, #8e1518);
    color: #fff;
}

.cm-booking .cm-booking-aside h2 {
    margin: 0 0 13px;
    color: #fff;
    font-size: 22px;
    font-weight: 800;
}

.cm-booking .cm-booking-aside > p {
    margin: 0;
    color: rgba(255, 255, 255, .87);
    font-size: 14px;
    line-height: 1.7;
}

.cm-booking .cm-booking-aside hr {
    margin: 27px 0;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .25);
}

.cm-booking .cm-booking-note { display: flex; gap: 12px; margin: 19px 0; }
.cm-booking .cm-booking-note i { flex: 0 0 20px; color: #ffd9a7; font-size: 17px; text-align: center; }
.cm-booking .cm-booking-note strong,
.cm-booking .cm-booking-note span { display: block; }
.cm-booking .cm-booking-note strong { margin-bottom: 4px; color: #fff; font-size: 13px; }
.cm-booking .cm-booking-note span { color: rgba(255, 255, 255, .82); font-size: 12px; line-height: 1.55; }

.cm-booking .cm-booking-form { padding: 36px 38px; }
.cm-booking .cm-booking-form h2 { margin: 0 0 25px; color: #26313a; font-size: 23px; font-weight: 800; }
.cm-booking .cm-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cm-booking .cm-field { margin-bottom: 17px; }
.cm-booking .cm-field label { display: block; margin-bottom: 7px; color: #7b5554; font-size: 11px; font-weight: 800; letter-spacing: .55px; }
.cm-booking .cm-field input,
.cm-booking .cm-field select {
    display: block;
    width: 100%;
    height: 46px;
    padding: 0 13px;
    border: 1px solid #e3d7d6;
    border-radius: 8px;
    background: #fff;
    color: #29343b;
    font: inherit;
    font-size: 14px;
    outline: 0;
}

.cm-booking .cm-field input:focus,
.cm-booking .cm-field select:focus {
    border-color: #c53830;
    box-shadow: 0 0 0 3px rgba(197, 56, 48, .12);
}

.cm-booking .cm-date-row { display: grid; grid-template-columns: 1fr 1.25fr 1fr; gap: 8px; }
.cm-booking .cm-captcha { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 12px; align-items: center; }
.cm-booking .cm-captcha img { display: block; width: 100%; height: 46px; border: 1px solid #e3d7d6; border-radius: 8px; object-fit: cover; }
.cm-booking .cm-booking-submit { width: 100%; min-height: 48px; border: 0; border-radius: 8px; color: #fff; background: #c81010; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; transition: background .2s, transform .2s; }
.cm-booking .cm-booking-submit:hover { background: #9f0b0b; transform: translateY(-1px); }
.cm-booking .cm-booking-footer { margin: 17px 0 0; color: #69767b; font-size: 12px; line-height: 1.7; text-align: center; }
.cm-booking .cm-booking-footer a { color: #b70808; font-weight: 800; text-decoration: none; }

@media (max-width: 760px) {
    .cm-booking { padding: 37px 0 58px; }
    .cm-booking .cm-booking-wrap { width: min(100% - 28px, 1040px); }
    .cm-booking .cm-booking-head { margin-bottom: 22px; }
    .cm-booking .cm-booking-head span { font-size: 14px; }
    .cm-booking .cm-booking-card { grid-template-columns: 1fr; }
    .cm-booking .cm-booking-aside { padding: 27px 23px; }
    .cm-booking .cm-booking-form { padding: 28px 22px; }
}

@media (max-width: 520px) {
    .cm-booking .cm-form-row,
    .cm-booking .cm-captcha { grid-template-columns: 1fr; gap: 0; }
    .cm-booking .cm-date-row { grid-template-columns: 1fr 1fr; }
    .cm-booking .cm-date-row select:last-child { grid-column: 1 / -1; margin-top: 8px; }
    .cm-booking .cm-captcha { gap: 10px; }
    .cm-booking .cm-captcha img { width: 170px; }
}
