/* Shared compact spacing for public pages and the support console. */
body { line-height: 1.5; }
h1 { margin-bottom: 16px; }
h2 { margin-bottom: 14px; }
h3 { margin-bottom: 8px; }
p { margin-bottom: 12px; }
main p:last-child { margin-bottom: 0; }
.eyebrow { margin-bottom: 8px; }
.section { padding: 24px 0; }
.page-heading { padding: 16px 0; }
.page-heading .eyebrow { font-size: 10px; line-height: 1.4; margin-bottom: 6px; }
.page-heading h1 { font-size: clamp(28px, 2.8vw, 36px); line-height: 1.12; margin-bottom: 10px; }
.page-heading p { font-size: 15px; line-height: 1.45; }
.page-heading .contact-report-link { margin-top: 12px; }
.header-inner { min-height: 72px; }
.button { min-height: 44px; padding: 12px 18px; gap: 16px; }
.button-small { padding: 10px 14px; }
.actions { gap: 18px; }
.hero-grid { gap: 32px; }
.home-hero { padding: 28px 0 24px; }
.hero-copy p { line-height: 1.6; }
.hero-footnote { margin-top: 20px; padding-top: 14px; }
.visual-kicker { padding-bottom: 12px; }
.visual-caption { padding: 12px 0; }
.principles > .container { padding-top: 16px; padding-bottom: 16px; }
.intro-grid, .services-grid, .contact-grid, .resource-grid { gap: 32px; }
.section-heading { gap: 24px; margin-bottom: 20px; }
.product-art { padding: 24px; min-height: 260px; }
.product-art > .icon { margin-top: 24px; }
.product-copy { padding: 24px; }
.product-copy h2 { margin-bottom: 12px; }
.tags { margin: 16px 0; }
.tags-dark { margin-top: 20px; }
.service-list article { padding: 12px 0; gap: 14px; }
.service-list article:first-child { padding-top: 0; }
.service-list h3 { margin-bottom: 5px; }
.cta { padding: 24px 28px; gap: 24px; }
.company-logo { padding: 14px; }
.contact-panel { padding: 18px 20px; }
.contact-panel article { padding: 10px 0; gap: 12px; align-items: center; }
.contact-panel article > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); column-gap: 12px; align-items: baseline; flex: 1; min-width: 0; }
.contact-panel h3 { margin-bottom: 0; line-height: 1.4; }
.contact-panel p, .contact-panel a { font-size: 14px; line-height: 1.45; margin: 0; }
.contact-grid .small { margin-top: 12px; }
.contact-report-link { margin-top: 18px; }
.product-hero { padding: 18px 0 28px; }
.breadcrumbs { margin-bottom: 24px; }
.product-hero .hero-grid { gap: 32px; }
.product-intro { max-width: 900px; }
.product-intro .hero-copy p { max-width: 720px; }
.product-intro .tags { margin-bottom: 0; }
.resource-downloads { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.resource-downloads h2 { margin-bottom: 10px; }
.resource-downloads p { margin-bottom: 10px; }
.flyer-downloads { display: flex; flex-wrap: wrap; gap: 12px; flex-shrink: 0; }
.application-grid { gap: 18px; }
.application-card { padding: 20px; }
.card-top { margin-bottom: 16px; }
.application-card .eyebrow { margin-bottom: 8px; }
.application-card h3 { min-height: 0; }
.application-card p { margin-bottom: 16px; }
.app-link { padding-top: 14px; }
.access-note { margin-top: 16px; }
.feature-grid { gap: 20px 28px; }
.feature-grid article { padding-top: 16px; }
.feature-grid .icon-box { margin-bottom: 12px; }
.benefits li { padding: 10px 0; gap: 14px; }
.payment-section { padding: 28px 0; }
.payment-grid { gap: 32px; }
.payment-channels > div { padding: 24px 10px; gap: 12px; }
.workflow { margin-top: 18px; gap: 14px; }
.workflow li { padding: 12px 0; }
.workflow h3 { margin-top: 8px; }
.packages { gap: 14px; }
.packages article { padding: 20px; }
.packages h3 { min-height: 0; }
.package-infra { padding: 14px 0; gap: 6px; }
.packages + .small { margin-top: 12px; }
.trial { margin-top: 18px; padding: 22px; gap: 20px; }
.resource-flyers { gap: 18px; }
.resource-flyers span { padding: 10px 12px; }
.faq details { padding: 12px 0; }
.faq details:first-child { padding-top: 0; }
.faq details p { margin-top: 12px; }
.faq-subtitle { margin-top: 8px; }
.faq-search { margin: 16px 0; }
.support-grid { gap: 32px; }
.support-panel { padding: 24px; }
.support-form label { margin-bottom: 6px; }
.support-form input, .support-form select, .support-form textarea { margin-bottom: 14px; }
.form-row { gap: 16px; }
.notice { padding: 16px; margin-bottom: 18px; }

/* Footer links have their own spacing; section padding alone cannot tighten them. */
.site-footer { padding-top: 24px; }
.footer-grid { gap: 24px; }
.footer-grid h2 { margin-bottom: 10px; line-height: 1.4; }
.footer-grid > div > a { margin-bottom: 4px; line-height: 1.4; }
.footer-grid p { margin: 8px 0; line-height: 1.5; }
.footer-grid > div > :last-child { margin-bottom: 0; }
.footer-grid .footer-brand { line-height: 1.1; margin-bottom: 10px; }
.footer-brand span { margin-top: 5px; margin-bottom: 0; }
.footer-bottom { margin-top: 16px; padding: 12px 0; line-height: 1.4; }

/* Keep admin rows and forms consistent with the public website. */
.admin-header { padding: 14px 0; }
.admin-main { padding-top: 24px; padding-bottom: 32px; }
.login-panel { margin: 12px auto; }
.ticket-stats { gap: 14px; margin: 18px 0; }
.ticket-stats a { padding: 16px 20px; }
.ticket-filters { gap: 14px; margin: 18px 0; }
.ticket-filters input, .ticket-filters select { margin-bottom: 0; }
.ticket-table caption { padding: 12px 18px; }
.ticket-table th, .ticket-table td { padding: 12px 18px; }
.ticket-table small { margin-top: 4px; }
.ticket-pagination { margin-top: 16px; gap: 16px; }
.ticket-heading { margin: 20px 0; }
.ticket-heading p { margin-top: 10px; }
.ticket-detail-grid { gap: 20px; }
.ticket-detail-grid .support-panel { margin-bottom: 18px; }
.sender-info dt { margin-top: 12px; }
.sender-info dd { margin-top: 4px; }
.attachment-item { padding: 16px 0; }
.attachment-item:last-child { padding-bottom: 0; }
.pdf-label { padding: 14px; margin-bottom: 12px; }
.updated-time { margin-top: 12px; }

@media (max-width: 800px) {
    .resource-downloads { flex-direction: column; align-items: flex-start; gap: 18px; }
    .flyer-downloads { flex-shrink: 1; }
    .header-inner { min-height: 68px; }
    .section { padding: 20px 0; }
    .page-heading { padding: 16px 0; }
    .home-hero { padding: 24px 0 20px; }
    .intro-grid, .services-grid, .contact-grid, .resource-grid, .support-grid { gap: 20px; }
    .section-heading { gap: 12px; margin-bottom: 18px; }
    .hero-visual { margin-top: 12px; }
    .hero-footnote { margin-top: 20px; }
    .principles > .container { gap: 12px 24px; }
    .product-art { min-height: 240px; }
    .product-copy { padding: 22px; }
    .contact-panel { padding: 16px 18px; }
    .cta { padding: 22px; gap: 20px; }
    .feature-grid { gap: 18px; }
    .payment-grid { gap: 20px; }
    .trial { padding: 20px; }
    .footer-grid { gap: 20px 24px; }
    .ticket-filters { gap: 12px; }
    .ticket-stats { gap: 12px; }
}

@media (max-width: 520px) {
    .section { padding: 18px 0; }
    .page-heading { padding: 14px 0; }
    .page-heading h1 { font-size: 28px; line-height: 1.12; margin-bottom: 8px; }
    .page-heading p { font-size: 14px; }
    .product-copy, .support-panel { padding: 20px; }
    .contact-panel { padding: 14px 16px; }
    .contact-panel article { gap: 10px; }
    .contact-panel article > div { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
    .product-art { min-height: 220px; }
    .product-art > .icon { margin-top: 18px; }
    .application-card, .packages article { padding: 18px; }
    .cta, .trial { padding: 20px; }
    .form-row { gap: 0; }
    .breadcrumbs { margin-bottom: 20px; }
    .payment-channels > div { padding: 20px 8px; }
    .footer-grid { gap: 18px 20px; }
    .footer-grid > div > a:not(.footer-brand) { min-height: 32px; padding: 5px 0; margin-bottom: 0; }
    .footer-bottom { gap: 4px; }
}
