/* =========================================================
   Mr Ribs — Reservations page
   ========================================================= */

.res-container {
    max-width: var(--maxw);
    margin: 3.5rem auto 5rem;
    padding: 0 1.5rem;
}

.res-layout {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 3rem;
    align-items: start;
}

/* Sidebar */
.res-info h2 {
    font-size: 1.5rem;
    color: var(--gold-soft);
    margin-bottom: 1.5rem;
}

.res-info-item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.2rem 1.4rem;
    background: var(--ink-card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    margin-bottom: .9rem;
    transition: border-color .3s;
}
.res-info-item:hover { border-color: var(--gold); }
.res-info-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: .1rem; }
.res-info-item strong { display: block; font-family: var(--f-sans); font-size: .75rem; letter-spacing: .15em; text-transform: uppercase; color: var(--gold); margin-bottom: .3rem; }
.res-info-item p, .res-info-item a { color: var(--cream-dim); font-size: .95rem; line-height: 1.6; }
.res-info-item a:hover { color: var(--gold-soft); }

.res-note {
    margin-top: 1.5rem;
    padding: 1rem 1.2rem;
    border-left: 3px solid var(--gold);
    background: rgba(201, 168, 76, .06);
    border-radius: 0 4px 4px 0;
    font-size: .88rem;
    color: var(--cream-dim);
    line-height: 1.6;
}

/* Form */
.res-form-wrap h2 {
    font-size: 1.5rem;
    color: var(--gold-soft);
    margin-bottom: 1.5rem;
}

.res-error {
    padding: .9rem 1.2rem;
    background: rgba(200, 50, 50, .15);
    border: 1px solid rgba(200, 50, 50, .3);
    border-radius: 4px;
    color: #e88;
    margin-bottom: 1.5rem;
    font-size: .9rem;
}

.res-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem;
}
.res-row.triple { grid-template-columns: 1fr 1fr 1fr; }

.res-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.2rem;
}

.res-group label {
    font-family: var(--f-sans);
    font-size: .76rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--cream-dim);
    margin-bottom: .5rem;
}
.res-group label .opt { text-transform: none; letter-spacing: 0; opacity: .5; font-size: .8rem; }

.res-group input,
.res-group select,
.res-group textarea {
    background: var(--ink-card);
    border: 1px solid var(--line);
    border-radius: 4px;
    color: var(--cream);
    padding: .8rem 1rem;
    font-size: .95rem;
    font-family: var(--f-sans);
    transition: border-color .2s;
    outline: none;
}
.res-group input:focus,
.res-group select:focus,
.res-group textarea:focus { border-color: var(--gold); }
.res-group select { cursor: pointer; }
.res-group textarea { resize: vertical; min-height: 100px; }
.res-group input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(.6); cursor: pointer; }

.btn-res-submit {
    width: 100%;
    padding: 1rem;
    background: var(--gold);
    color: var(--ink);
    border: none;
    border-radius: 50px;
    font-family: var(--f-sans);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, transform .2s;
    margin-top: .5rem;
}
.btn-res-submit:hover { background: var(--gold-soft); transform: translateY(-2px); }

/* Success state */
.res-success {
    text-align: center;
    max-width: 500px;
    margin: 4rem auto;
    padding: 3rem 2rem;
    background: var(--ink-card);
    border: 1px solid var(--gold);
    border-radius: 8px;
}
.res-success-icon {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: var(--gold);
    color: var(--ink);
    font-size: 1.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
}
.res-success h2 { font-size: 1.8rem; color: var(--cream); margin-bottom: .8rem; }
.res-success p { color: var(--cream-dim); line-height: 1.7; }

/* Responsive */
@media (max-width: 900px) {
    .res-layout { grid-template-columns: 1fr; }
    .res-info { order: 2; }
    .res-form-wrap { order: 1; }
}
@media (max-width: 600px) {
    .res-row, .res-row.triple { grid-template-columns: 1fr; }
}
