.booking-content{max-width:1140px;padding-top:56px;padding-bottom:68px}
.booking-card{padding:28px;margin-bottom:24px;border:1px solid #d8e6e8;border-radius:16px;box-shadow:0 8px 24px #1c2b350a;background:#fff}
.booking-card h2{font-size:24px;font-weight:700;color:#1c2b35}
.booking-card label{display:block;margin:16px 0 6px;font-weight:600}
.booking-card input:not([type=hidden]),.booking-card select,.booking-card textarea{width:100%;padding:12px;border:1px solid #aabfc4;border-radius:8px;background:#fff;color:#1c2b35;min-width:0}
.booking-card input:focus,.booking-card select:focus,.booking-card textarea:focus{outline:3px solid #15757a44;border-color:#15757a}
.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.booking-inline,.booking-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.booking-inline input{flex:1}.booking-actions{margin-bottom:16px}
.booking-card .appointment-btn{margin:0;border:0;padding:12px 20px;cursor:pointer}
.booking-secondary{padding:12px 20px;border:1px solid #15757a;border-radius:4px;color:#15757a;background:#fff;cursor:pointer}
.booking-fee{margin:24px 0;font-size:20px}#booking-status{margin-top:16px;color:#154c53}
.booking-card fieldset:disabled{opacity:.55}button:disabled{cursor:wait;opacity:.6}
[hidden]{display:none!important}
@media(max-width:600px){.booking-grid{grid-template-columns:1fr}.booking-card{padding:20px}.booking-actions>*{width:100%}}

/* Preserve the original appointment introduction and guidance panel. */
.appointment-page {
    background: #f6fbfb;
    color: #1c2b35;
}

.appointment-hero {
    position: relative;
    overflow: hidden;
    padding: 64px 0 44px;
    background: linear-gradient(120deg, rgba(21, 117, 122, .94), rgba(28, 43, 53, .88)), url('/assets/img/frontview.jpg') center/cover no-repeat;
    color: #fff;
}

.appointment-hero .container {
    position: relative;
    z-index: 1;
}

.appointment-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.appointment-hero h1 {
    max-width: 740px;
    margin: 18px 0 14px;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.05;
    font-weight: 800;
    color: #fff;
}

.appointment-hero p {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 255, 255, .9);
    font-size: 18px;
    line-height: 1.65;
}

.appointment-quick-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
    max-width: 820px;
}

.appointment-quick-item {
    min-height: 84px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 8px;
    background: rgba(255, 255, 255, .12);
    backdrop-filter: blur(6px);
}

.appointment-quick-item strong {
    display: block;
    font-size: 18px;
    color: #fff;
}

.appointment-quick-item span {
    display: block;
    margin-top: 4px;
    color: rgba(255, 255, 255, .82);
    font-size: 13px;
    line-height: 1.45;
}

.appointment-layout {
    display: grid;
    grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.appointment-side {
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(28, 43, 53, .08);
}

.appointment-side img {
    width: 100%;
    height: 230px;
    object-fit: cover;
}

.appointment-side-body {
    padding: 24px;
}

.appointment-side-body h2 {
    margin: 0 0 12px;
    color: #1c2b35;
    font-size: 24px;
    font-weight: 800;
}

.appointment-side-body p {
    margin: 0 0 18px;
    color: #5f6f78;
    line-height: 1.7;
}

.appointment-help-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.appointment-help-list li {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-top: 1px solid #edf2f3;
    color: #38505c;
    line-height: 1.45;
}

.appointment-help-list i {
    margin-top: 2px;
    color: #3fbbc0;
    font-size: 20px;
}

.booking-forms { min-width: 0; }
@media (max-width: 991px) {
.appointment-layout, .appointment-quick-list { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
.appointment-hero { padding: 44px 0 34px; }
.appointment-side-body { padding-left: 20px; padding-right: 20px; }
}
