/* Novavia — component stylesheet (extends the design system in style.css). */

/* Archive headers */
.novavia-archive-header { text-align: center; max-width: 720px; margin: 0 auto 56px; }
.novavia-archive-header .novavia-lead { margin-left: auto; margin-right: auto; }

/* Doctor: single */
.novavia-doctor-layout {
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 56px;
    align-items: start;
    margin-bottom: 48px;
}
.novavia-doctor-photo img {
    border-radius: var(--novavia-radius);
    box-shadow: var(--novavia-shadow-lg);
    width: 100%;
}
.novavia-doctor-specialty {
    font-family: var(--novavia-font-head);
    font-size: 19px;
    font-weight: 600;
    color: var(--novavia-primary);
    margin-bottom: 6px;
}
.novavia-doctor-credentials { color: var(--novavia-muted); }
.novavia-doctor-availability {
    background: var(--novavia-primary-soft);
    border-radius: var(--novavia-radius-sm);
    padding: 14px 18px;
    margin: 20px 0;
}
.novavia-doctor-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.novavia-doctor-bio { max-width: 800px; }

/* Doctor: archive grid (cards share the .novavia-doctor-card BEM design
   with the Novavia Core Elementor widget; its stylesheet is enqueued
   on doctor archives/singles — see novavia_enqueue()). */
.novavia-doctor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 28px;
}
.novavia-doctor-card { transition: transform 0.25s ease, box-shadow 0.25s ease; }
.novavia-doctor-card:hover { transform: translateY(-6px); box-shadow: var(--novavia-shadow-lg); }
a.novavia-doctor-card__photo { display: block; }
.novavia-doctor-card__name a { color: inherit; text-decoration: none; }
.novavia-doctor-card__name a:hover { color: var(--novavia-primary); }

/* Service: single */
.novavia-service-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 56px;
    align-items: start;
}
.novavia-service-photo { margin: 24px 0 32px; }
.novavia-service-photo img { border-radius: var(--novavia-radius); width: 100%; }
.novavia-service-facts { padding: 30px; position: sticky; top: calc(var(--novavia-header-h) + 24px); }
.novavia-service-facts h3 { font-size: 19px; margin-bottom: 16px; }
.novavia-service-facts ul { list-style: none; margin: 0 0 8px; padding: 0; }
.novavia-service-facts li {
    padding: 12px 0;
    border-bottom: 1px solid var(--novavia-border);
    display: flex;
    justify-content: space-between;
    gap: 12px;
}
.novavia-service-facts li:last-child { border-bottom: 0; }

/* Service: archive grid */
.novavia-service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 28px;
}
.novavia-service-card { transition: transform 0.25s ease, box-shadow 0.25s ease; display: flex; flex-direction: column; }
.novavia-service-card:hover { transform: translateY(-6px); box-shadow: var(--novavia-shadow-lg); }
.novavia-service-card-photo { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.novavia-service-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.novavia-service-card:hover .novavia-service-card-photo img { transform: scale(1.05); }
.novavia-service-card-body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.novavia-service-card-body h3 { font-size: 20px; }
.novavia-service-card-body h3 a { color: var(--novavia-ink); text-decoration: none; }
.novavia-service-card-body h3 a:hover { color: var(--novavia-primary); }
.novavia-service-meta { display: flex; gap: 16px; margin: 12px 0 18px; align-items: center; }
.novavia-service-price {
    font-family: var(--novavia-font-head);
    font-weight: 700;
    font-size: 19px;
    color: var(--novavia-primary);
}
.novavia-service-duration { color: var(--novavia-muted); font-size: 14px; }
.novavia-service-card-body .novavia-btn { margin-top: auto; align-self: flex-start; padding: 10px 22px; font-size: 14px; }

/* Pagination */
.pagination { margin-top: 48px; text-align: center; }
.pagination .nav-links { display: inline-flex; gap: 8px; }
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    border: 1px solid var(--novavia-border);
    border-radius: var(--novavia-radius-sm);
    text-decoration: none;
    color: var(--novavia-ink);
    font-weight: 600;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
    background: var(--novavia-primary);
    border-color: var(--novavia-primary);
    color: #fff;
}

/* Footer contact list */
.novavia-footer-contact { list-style: none; margin: 0; padding: 0; }
.novavia-footer-contact li { margin-bottom: 10px; }
.novavia-footer .site-title { font-size: 22px; }

/* Hero (fallback when no page builder) */
.novavia-hero {
    background: linear-gradient(135deg, var(--novavia-primary-dark), var(--novavia-primary));
    color: #fff;
    padding: 96px 0;
    text-align: center;
}
.novavia-hero h1 { color: #fff; font-size: clamp(34px, 5vw, 54px); margin-bottom: 16px; }
.novavia-hero p { color: rgba(255, 255, 255, 0.85); font-size: 18px; max-width: 620px; margin: 0 auto 28px; }

/* Responsive: templates */
@media (max-width: 900px) {
    .novavia-doctor-layout,
    .novavia-service-layout { grid-template-columns: 1fr; gap: 36px; }
    .novavia-doctor-photo { max-width: 420px; }
    .novavia-service-facts { position: static; }
}
