/* Explain: Styles for the public appointment request page. */
/* Página pública de solicitação de consulta */
[hidden] { display: none !important; }

.sol-topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    background: var(--surface-color);
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.sol-topbar__inner {
    max-width: 68rem;
    margin: 0 auto;
    padding: 0.7rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.sol-brand { display: flex; align-items: center; gap: 0.65rem; text-decoration: none; min-width: 0; }
.sol-brand__logo { height: 2.6rem; width: auto; max-width: 100%; object-fit: contain; display: block; }
.sol-brand__text { display: flex; flex-direction: column; min-width: 0; }
.sol-brand__text strong { font-family: var(--font-heading); font-size: 1.05rem; font-weight: 800; color: var(--primary-color); line-height: 1.2; }
.sol-brand__text span { font-size: 0.68rem; color: var(--text-muted); }
@media (max-width: 479px) { .sol-brand__text span { display: none; } }

.sol-hero { background: linear-gradient(180deg, var(--primary-soft) 0%, var(--background-color) 100%); }
.sol-hero__inner {
    max-width: 68rem;
    margin: 0 auto;
    padding: 2.25rem 1rem 1.75rem;
    display: grid;
    gap: 0.9rem;
    justify-items: center;
    text-align: center;
}
.sol-hero h1 { font-size: clamp(1.55rem, 5vw, 2.4rem); font-weight: 800; color: var(--primary-color); max-width: 42rem; }
.sol-hero__lead { font-size: 0.94rem; color: var(--text-muted); line-height: 1.65; max-width: 44rem; }

.sol-benefits { list-style: none; margin: 0.6rem 0 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: 1fr; width: 100%; max-width: 54rem; }
@media (min-width: 720px) { .sol-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sol-benefit { display: flex; align-items: flex-start; gap: 0.6rem; text-align: left; padding: 0.9rem; background: var(--surface-color); border: 1px solid var(--border-color); border-radius: 0.85rem; }
.sol-benefit i { color: var(--primary-color); margin-top: 0.15rem; flex-shrink: 0; }
.sol-benefit__body strong { display: block; font-size: 0.84rem; }
.sol-benefit__txt { display: block; font-size: 0.75rem; color: var(--text-muted); line-height: 1.5; margin-top: 0.15rem; }

.sol-main { max-width: 68rem; margin: 0 auto; padding: 0 1rem 3rem; }
.sol-layout { display: grid; gap: 1.25rem; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 1024px) { .sol-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 19rem); } }

.sol-aside { display: grid; gap: 1.25rem; align-content: start; }

.sol-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; }
.sol-step { display: flex; align-items: flex-start; gap: 0.65rem; }
.sol-step__num { width: 1.6rem; height: 1.6rem; flex-shrink: 0; border-radius: 50%; background: var(--primary-soft); color: var(--primary-hover); display: grid; place-items: center; font-size: 0.72rem; font-weight: 700; }
.sol-step__body strong { display: block; font-size: 0.83rem; }
.sol-step__txt { display: block; font-size: 0.75rem; color: var(--text-muted); line-height: 1.5; margin-top: 0.1rem; }

.sol-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.sol-contact a,
.sol-contact__static {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--border-color);
    border-radius: 0.65rem;
    text-decoration: none;
    color: var(--text-color);
    font-size: 0.8rem;
}
.sol-contact a { transition: border-color 0.18s ease, background 0.18s ease; }
.sol-contact a:hover { border-color: var(--primary-color); background: var(--primary-soft); }
.sol-contact i { color: var(--primary-color); font-size: 1rem; flex-shrink: 0; }
.sol-contact__body strong { display: block; font-size: 0.8rem; }
.sol-contact__body span { display: block; font-size: 0.76rem; color: var(--text-muted); overflow-wrap: anywhere; }

.sol-erro { margin-top: 1rem; padding: 0.7rem 0.9rem; border-radius: 0.7rem; font-size: 0.8rem; font-weight: 600; background: var(--danger-soft); color: var(--danger-color); }

.sol-success { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.6rem; padding: 1.5rem 1rem; }
.sol-success__icon { width: 3.4rem; height: 3.4rem; border-radius: 50%; display: grid; place-items: center; background: #dcfce7; color: var(--success-color); font-size: 1.6rem; }
.sol-success h3 { font-size: 1.1rem; font-weight: 800; color: var(--primary-color); }
.sol-success p { font-size: 0.86rem; color: var(--text-muted); line-height: 1.6; max-width: 34rem; }
.sol-success .btn-ghost-clinic { margin-top: 0.5rem; }

.sol-foot {
    border-top: 1px solid var(--border-color);
    background: var(--surface-color);
    padding: 1.25rem 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    align-items: center;
    justify-content: space-between;
    font-size: 0.76rem;
    color: var(--text-muted);
}
.sol-foot p { margin: 0; }
.sol-foot a { color: var(--primary-color); font-weight: 600; text-decoration: none; }
.sol-foot a:hover { text-decoration: underline; }