/* Perfil público do profissional */

.profile-card { overflow: hidden; }
.profile-banner { background: linear-gradient(to right, var(--primary-600), var(--accent-600)); height: 8rem; }
.profile-body { padding: 0 1.5rem 1.5rem; }
.profile-header { display: flex; flex-direction: column; gap: 1rem; margin-top: -3rem; margin-bottom: 1.5rem; }
@media (min-width: 640px) { .profile-header { flex-direction: row; align-items: flex-end; } }
.profile-name-block h1 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); }
.profile-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.25rem; font-size: 0.875rem; color: var(--gray-500); }
.profile-tags .tag-item { display: inline-flex; align-items: center; gap: 0.25rem; }

.profile-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 640px) { .profile-stats { grid-template-columns: repeat(4, 1fr); } }
.profile-stat { background: var(--gray-50); border-radius: var(--radius-md); padding: 0.75rem; text-align: center; }
.profile-stat .value { font-size: 1.125rem; font-weight: 700; color: var(--gray-900); }
.profile-stat .label { font-size: 0.75rem; color: var(--gray-500); }

.profile-layout { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-top: 1.5rem; }
@media (min-width: 1024px) { .profile-layout { grid-template-columns: repeat(12, 1fr); } }
.profile-main { display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 1024px) { .profile-main { grid-column: span 8 / span 8; } }
.profile-sidebar { }
@media (min-width: 1024px) { .profile-sidebar { grid-column: span 4 / span 4; align-self: start; } }
.profile-section h2 { font-size: 0.875rem; font-weight: 600; color: var(--gray-900); margin-bottom: 0.5rem; }
.profile-section .body { font-size: 0.875rem; color: var(--gray-600); line-height: 1.625; white-space: pre-line; }
.profile-reviews-summary { display: flex; align-items: center; gap: 0.5rem; }

/* Calendário de agendamento */
.booking-panel { background: var(--gray-50); border-radius: var(--radius-lg); padding: 0.75rem; }
.cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; }
.cal-nav-btn { width: 1.5rem; height: 1.5rem; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; background: none; border: none; color: var(--gray-700); flex-shrink: 0; transition: background-color .15s; }
.cal-nav-btn:hover:not(:disabled) { background: var(--gray-200); }
.cal-nav-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.cal-month-label { font-size: 0.75rem; font-weight: 600; color: var(--gray-900); text-transform: capitalize; }
.cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.125rem; margin-bottom: 0.125rem; text-align: center; font-size: 0.625rem; color: var(--gray-400); font-weight: 500; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.125rem; }
.cal-day { aspect-ratio: 1; border-radius: var(--radius-sm); font-size: 0.75rem; font-weight: 500; display: flex; align-items: center; justify-content: center; transition: background-color .15s, color .15s; }
.cal-day.available { background: #fff; color: var(--gray-900); border: 1px solid var(--gray-200); }
.cal-day.available:hover { background: var(--primary-50); }
.cal-day.available.selected { background: var(--primary-600); color: #fff; }
.cal-day.unavailable { color: var(--gray-300); cursor: not-allowed; }

.booking-note { background: var(--amber-50); border: 1px solid var(--amber-200); color: #92400e; border-radius: var(--radius-md); padding: 1rem; font-size: 0.875rem; }
.booking-note p:first-child { font-weight: 500; margin-bottom: 0.25rem; }
.booking-note a { font-weight: 600; text-decoration: underline; }
