/* ─────────────────────────────────────────────────────────────────
   Panel Licence — Public Website
   Marketing shell: header, hero, catalogue, product detail, pricing,
   docs, FAQ, legal and the footer.

   Builds on the tokens in app.css, which is always loaded first.
   ───────────────────────────────────────────────────────────────── */

/* ── Layout ──────────────────────────────────────────────────── */
.public-body {
    background: var(--pl-bg);
}

.container {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 22px;
    width: 100%;
}

.public-main { min-height: 62vh; }

.section { padding: 64px 0; }
.section-alt {
    background: var(--pl-surface);
    border-top: 1px solid var(--pl-border);
    border-bottom: 1px solid var(--pl-border);
}

/* ── Announcement bar ────────────────────────────────────────── */
.announcement-bar {
    background: var(--pl-primary);
    color: #fff;
    font-size: .85rem;
    padding: 9px 0;
}
.announcement-bar .container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    text-align: center;
}
.announcement-bar a { color: #fff; text-decoration: underline; font-weight: 600; }

/* ── Header ──────────────────────────────────────────────────── */
.public-header {
    position: sticky;
    top: 0;
    z-index: 60;
    background: var(--pl-surface);
    border-bottom: 1px solid var(--pl-border);
    transition: box-shadow var(--pl-transition);
}
.public-header.is-scrolled { box-shadow: var(--pl-shadow); }

.header-inner {
    height: 68px;
    display: flex;
    align-items: center;
    gap: 22px;
}

.public-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--pl-text);
    font-weight: 700;
    font-size: 1.02rem;
    flex: 0 0 auto;
}
.public-brand:hover { text-decoration: none; color: var(--pl-text); }
.public-brand .brand-mark { background: linear-gradient(135deg, var(--pl-primary), var(--pl-accent)); }
.public-brand .brand-logo { max-height: 46px; width: auto; max-width: 240px; object-fit: contain; display: block; }
.public-brand .brand-logo-dark { display: none !important; }
.public-brand .brand-logo-light { display: block !important; }
[data-theme="dark"] .public-brand .brand-logo-dark { display: block !important; }
[data-theme="dark"] .public-brand .brand-logo-light { display: none !important; }
.public-brand .brand-text { white-space: nowrap; }

.public-nav {
    display: flex;
    align-items: center;
    gap: 3px;
    flex: 1 1 auto;
}
.public-nav a {
    padding: 8px 13px;
    border-radius: var(--pl-radius-sm);
    color: var(--pl-text-muted);
    font-size: .9rem;
    font-weight: 520;
    white-space: nowrap;
}
.public-nav a:hover {
    background: var(--pl-surface-alt);
    color: var(--pl-text);
    text-decoration: none;
}
.public-nav a.is-active {
    color: var(--pl-primary);
    background: var(--pl-primary-soft);
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

/* Cart link with a live count badge. */
.cart-link {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 38px; height: 38px;
    border-radius: var(--pl-radius-sm);
    color: var(--pl-text-muted);
}
.cart-link:hover { background: var(--pl-surface-alt); color: var(--pl-text); text-decoration: none; }
.cart-badge {
    position: absolute;
    top: 3px; right: 3px;
    min-width: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--pl-danger);
    color: #fff;
    font-size: .66rem;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
}

.nav-toggle {
    display: none;
    background: none;
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius-sm);
    padding: 7px;
    color: var(--pl-text);
    cursor: pointer;
}
.nav-toggle:hover { background: var(--pl-surface-alt); }

.nav-mobile-actions { display: none; }

/* ── Buttons local to the public site ────────────────────────── */
.btn-outline {
    background: transparent;
    border-color: var(--pl-border-strong);
    color: var(--pl-text);
}
.btn-outline:hover { border-color: var(--pl-primary); color: var(--pl-primary); background: var(--pl-primary-soft); }

/* ── Hero ────────────────────────────────────────────────────── */
.hero {
    padding: 72px 0 64px;
    background:
        radial-gradient(880px 420px at 12% -12%, var(--pl-primary-soft), transparent 62%),
        radial-gradient(680px 360px at 94% 6%, var(--pl-success-soft), transparent 58%);
    border-bottom: 1px solid var(--pl-border);
}

.hero-inner {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 52px;
    align-items: center;
}

.hero-eyebrow {
    display: inline-block;
    margin-bottom: 16px;
    padding: 4px 13px;
    border-radius: 999px;
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    color: var(--pl-primary);
    font-size: .77rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.hero-copy h1 {
    font-size: 2.65rem;
    line-height: 1.14;
    letter-spacing: -.023em;
    margin-bottom: 19px;
    font-weight: 750;
}
.gradient-text {
    background: linear-gradient(120deg, var(--pl-primary), var(--pl-accent));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.hero-lead {
    font-size: 1.07rem;
    color: var(--pl-text-muted);
    max-width: 570px;
    margin-bottom: 27px;
}

.hero-actions { display: flex; gap: 11px; flex-wrap: wrap; margin-bottom: 30px; }

.hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: .885rem;
    color: var(--pl-text-muted);
}
.hero-trust li { display: flex; align-items: center; gap: 7px; }
.hero-trust svg { color: var(--pl-success); flex: 0 0 auto; }

.hero-visual { display: grid; gap: 13px; }

/* The license/maintenance split, shown rather than described. */
.visual-card {
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius-lg);
    box-shadow: var(--pl-shadow-lg);
    overflow: hidden;
}
.visual-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 15px;
    border-bottom: 1px solid var(--pl-border);
    background: var(--pl-surface-alt);
    font-size: .82rem;
    color: var(--pl-text-muted);
}
.visual-title { font-weight: 650; color: var(--pl-text); font-size: .85rem; }
.visual-badge {
    margin-left: auto;
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--pl-success-soft);
    color: var(--pl-success);
    font-size: .72rem;
    font-weight: 700;
}
.visual-code {
    padding: 16px;
    font-family: var(--pl-mono);
    font-size: .8rem;
    line-height: 1.85;
    overflow-x: auto;
    white-space: pre;
    color: var(--pl-text-muted);
}
.c-key  { color: var(--pl-primary); }
.c-val  { color: var(--pl-text); }
.c-ok   { color: var(--pl-success); font-weight: 600; }
.c-warn { color: var(--pl-warning); font-weight: 600; }
.c-dim  { color: var(--pl-text-faint); }
.c-comment { color: var(--pl-text-faint); font-style: italic; }

/* ── Stats row ───────────────────────────────────────────────── */
.stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
}
.stat {
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    padding: 19px 20px;
    box-shadow: var(--pl-shadow-sm);
    text-align: center;
}
.stat-value {
    font-size: 1.85rem;
    font-weight: 750;
    letter-spacing: -.02em;
    line-height: 1.15;
    color: var(--pl-primary);
}
.stat-label {
    margin-top: 3px;
    font-size: .79rem;
    color: var(--pl-text-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* ── Section headings ────────────────────────────────────────── */
.section-head {
    max-width: 680px;
    margin: 0 auto 42px;
    text-align: center;
}
.section-head h2 {
    font-size: 1.9rem;
    letter-spacing: -.016em;
    margin-bottom: 12px;
}
.section-lead {
    color: var(--pl-text-muted);
    font-size: 1rem;
    margin: 0;
}
.section-head .section-lead { margin: 0 auto; }

/* ── Feature cards ───────────────────────────────────────────── */
.feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
    gap: 20px;
}

.feature-card {
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    padding: 22px;
    box-shadow: var(--pl-shadow-sm);
    transition: box-shadow var(--pl-transition), transform var(--pl-transition);
}
.feature-card:hover { box-shadow: var(--pl-shadow); transform: translateY(-2px); }
.feature-card h3 { font-size: .99rem; margin-bottom: 7px; }
.feature-card p { font-size: .885rem; color: var(--pl-text-muted); margin: 0; }

.feature-icon {
    width: 44px; height: 44px;
    display: grid;
    place-items: center;
    border-radius: var(--pl-radius-sm);
    background: var(--pl-primary-soft);
    color: var(--pl-primary);
    margin-bottom: 14px;
}

/* ── Product cards ───────────────────────────────────────────── */
.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(292px, 1fr));
    gap: 20px;
}

.product-card {
    display: flex;
    flex-direction: column;
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    box-shadow: var(--pl-shadow-sm);
    overflow: hidden;
    transition: box-shadow var(--pl-transition), transform var(--pl-transition);
}
.product-card:hover { box-shadow: var(--pl-shadow-lg); transform: translateY(-2px); }

.product-card-media {
    position: relative;
    aspect-ratio: 16 / 9;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--pl-primary-soft), var(--pl-surface-alt));
    overflow: hidden;
}
.product-card-media img { width: 100%; height: 100%; object-fit: cover; }

.product-initials {
    font-size: 1.85rem;
    font-weight: 750;
    letter-spacing: -.03em;
    color: var(--pl-primary);
    opacity: .55;
}

.version-chip {
    position: absolute;
    top: 10px; right: 10px;
    padding: 2px 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: var(--pl-text);
    font-family: var(--pl-mono);
    font-size: .72rem;
    font-weight: 600;
}
[data-theme="dark"] .version-chip { background: rgba(23, 29, 44, .9); color: var(--pl-text); }

.product-card-body {
    padding: 16px;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
.product-category {
    font-size: .73rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--pl-primary);
    margin-bottom: 6px;
}
.product-card-body h3 { font-size: 1.01rem; margin-bottom: 6px; }
.product-card-body h3 a { color: inherit; }
.product-card-body h3 a:hover { color: var(--pl-primary); text-decoration: none; }

.product-tagline {
    font-size: .865rem;
    color: var(--pl-text-muted);
    margin: 0 0 13px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.product-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 13px;
}
.meta-chip {
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--pl-surface-alt);
    border: 1px solid var(--pl-border);
    font-size: .73rem;
    color: var(--pl-text-muted);
}

.product-card-foot {
    margin-top: auto;
    padding-top: 13px;
    border-top: 1px solid var(--pl-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.price-label {
    display: block;
    font-size: .72rem;
    color: var(--pl-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.product-price {
    font-size: 1.08rem;
    font-weight: 750;
    letter-spacing: -.01em;
}
.price-currency { font-size: .78rem; font-weight: 600; vertical-align: super; }
.price-value-muted { color: var(--pl-text-muted); font-weight: 600; font-size: .88rem; }

/* ── Catalogue ───────────────────────────────────────────────── */
.catalogue-layout {
    display: grid;
    grid-template-columns: 248px 1fr;
    gap: 28px;
    align-items: start;
}
.catalogue-sidebar { position: sticky; top: 90px; }
.catalogue-main { min-width: 0; }

.filter-block {
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    padding: 17px;
    margin-bottom: 16px;
}
.filter-block h3 {
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--pl-text-muted);
    margin-bottom: 12px;
}

.category-list { list-style: none; margin: 0; padding: 0; }
.category-list li { margin-bottom: 2px; }
.category-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 11px;
    border-radius: var(--pl-radius-sm);
    color: var(--pl-text-muted);
    font-size: .875rem;
}
.category-list a:hover { background: var(--pl-surface-alt); color: var(--pl-text); text-decoration: none; }
.category-list a.is-active { background: var(--pl-primary-soft); color: var(--pl-primary); font-weight: 600; }
.category-list .count {
    font-size: .76rem;
    color: var(--pl-text-faint);
    font-variant-numeric: tabular-nums;
}

.catalogue-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.result-count { font-size: .87rem; color: var(--pl-text-muted); }

.search-form { flex: 1 1 260px; max-width: 380px; }
.input-with-icon { position: relative; }
.input-with-icon .input { padding-left: 38px; }
.input-with-icon > svg {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--pl-text-faint);
    pointer-events: none;
}

.sort-form { flex: 0 0 auto; }
.sort-form .select { min-width: 185px; }

/* ── Page hero (interior pages) ──────────────────────────────── */
.page-hero {
    padding: 54px 0 42px;
    background: var(--pl-surface);
    border-bottom: 1px solid var(--pl-border);
}
.page-hero-sm { padding: 36px 0 28px; }
.page-hero h1 {
    font-size: 2.15rem;
    letter-spacing: -.02em;
    margin-bottom: 11px;
}
.page-lead {
    font-size: 1.02rem;
    color: var(--pl-text-muted);
    max-width: 660px;
    margin: 0;
}

.breadcrumbs {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 15px;
    font-size: .82rem;
    color: var(--pl-text-faint);
}
.breadcrumbs a { color: var(--pl-text-muted); }
.breadcrumbs a:hover { color: var(--pl-primary); }
.breadcrumbs .sep { color: var(--pl-text-faint); }

/* ── Release timeline (docs, product detail) ─────────────────── */
.release-timeline { display: grid; gap: 12px; }

.release-item {
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    padding: 15px 17px;
}
.release-item.is-current { border-color: var(--pl-primary); }

.release-date {
    font-family: var(--pl-mono);
    font-size: .78rem;
    font-weight: 650;
    color: var(--pl-primary);
    margin-bottom: 7px;
}
.release-body { font-size: .875rem; color: var(--pl-text-muted); }
.release-body > :last-child { margin-bottom: 0; }
.release-body h4 { color: var(--pl-text); font-size: .89rem; margin: 11px 0 5px; }
.release-body ul { margin: 0; padding-left: 19px; }

.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--pl-text-faint); }
.dot-green { background: var(--pl-success); }
.dot-amber { background: var(--pl-warning); }
.dot-red   { background: var(--pl-danger); }

/* ── CTA band ────────────────────────────────────────────────── */
.section-cta { padding: 0 0 64px; }

.cta-card {
    background: linear-gradient(135deg, var(--pl-primary), #5f3dc4);
    color: #fff;
    border-radius: var(--pl-radius-lg);
    padding: 46px 36px;
    text-align: center;
}
.cta-card h2 { color: #fff; font-size: 1.75rem; margin-bottom: 12px; }
.cta-card p {
    color: rgba(255, 255, 255, .84);
    max-width: 560px;
    margin: 0 auto 24px;
    font-size: 1rem;
}
.cta-actions { display: flex; gap: 11px; justify-content: center; flex-wrap: wrap; }

.cta-card .btn-primary {
    background: #fff;
    border-color: #fff;
    color: var(--pl-primary);
    font-weight: 650;
}
.cta-card .btn-primary:hover { background: rgba(255, 255, 255, .9); color: var(--pl-primary); }
.cta-card .btn-outline {
    background: transparent;
    border-color: rgba(255, 255, 255, .5);
    color: #fff;
}
.cta-card .btn-outline:hover { background: rgba(255, 255, 255, .14); border-color: #fff; color: #fff; }
.cta-card .btn-ghost { color: rgba(255, 255, 255, .86); }
.cta-card .btn-ghost:hover { background: rgba(255, 255, 255, .12); color: #fff; }

/* ── Empty state (shared with the dashboard) ─────────────────── */
.empty-state { padding: 54px 24px; text-align: center; color: var(--pl-text-muted); }
.empty-icon {
    width: 58px; height: 58px;
    margin: 0 auto 15px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--pl-surface-alt);
    color: var(--pl-text-faint);
}
.empty-state h3 { margin: 0 0 6px; color: var(--pl-text); font-size: 1.02rem; }
.empty-state p { margin: 0 auto 17px; max-width: 420px; font-size: .885rem; }

/* ── FAQ ─────────────────────────────────────────────────────── */
.faq-item {
    background: var(--pl-surface);
    border: 1px solid var(--pl-border);
    border-radius: var(--pl-radius);
    overflow: hidden;
    margin-bottom: 9px;
}
.faq-item summary {
    padding: 15px 18px;
    font-weight: 600;
    font-size: .93rem;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 13px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: "+";
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1;
    color: var(--pl-text-muted);
    flex: 0 0 auto;
}
.faq-item[open] summary::after { content: "\2212"; }
.faq-item[open] summary { border-bottom: 1px solid var(--pl-border); }

/* ── Legal / long-form prose ─────────────────────────────────── */
.prose { font-size: .925rem; line-height: 1.78; }
.prose h2 { margin-top: 34px; font-size: 1.24rem; }
.prose h3 { margin-top: 25px; font-size: 1.03rem; }
.prose ul, .prose ol { padding-left: 22px; }
.prose li { margin-bottom: 7px; }
.prose code {
    font-family: var(--pl-mono);
    font-size: .85em;
    padding: 2px 5px;
    border-radius: 4px;
    background: var(--pl-surface-alt);
    border: 1px solid var(--pl-border);
}
.prose blockquote {
    margin: 19px 0;
    padding: 13px 18px;
    border-left: 3px solid var(--pl-primary);
    background: var(--pl-primary-soft);
    border-radius: 0 var(--pl-radius-sm) var(--pl-radius-sm) 0;
}
.prose blockquote > :last-child { margin-bottom: 0; }
.prose table { width: 100%; border-collapse: collapse; margin: 19px 0; font-size: .875rem; }
.prose th, .prose td { padding: 9px 13px; border: 1px solid var(--pl-border); text-align: left; }
.prose th { background: var(--pl-surface-alt); font-weight: 650; }

/* ── Footer ──────────────────────────────────────────────────── */
.public-footer {
    background: var(--pl-surface);
    border-top: 1px solid var(--pl-border);
    padding: 46px 0 22px;
    margin-top: auto;
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.7fr repeat(4, 1fr);
    gap: 32px;
    margin-bottom: 32px;
}
.footer-brand p {
    font-size: .865rem;
    color: var(--pl-text-muted);
    max-width: 310px;
    margin: 13px 0 0;
}
.footer-contact {
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
    font-size: .84rem;
}
.footer-contact li { display: flex; align-items: center; gap: 7px; color: var(--pl-text-muted); }
.footer-contact a { color: var(--pl-text-muted); }
.footer-contact a:hover { color: var(--pl-primary); }

.footer-col h4 {
    font-size: .77rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--pl-text-faint);
    margin-bottom: 12px;
}
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.footer-col a { font-size: .87rem; color: var(--pl-text-muted); }
.footer-col a:hover { color: var(--pl-primary); text-decoration: none; }

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding-top: 20px;
    border-top: 1px solid var(--pl-border);
    font-size: .81rem;
    color: var(--pl-text-faint);
}
.footer-bottom p { margin: 0; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 1080px) {
    .footer-grid { grid-template-columns: 1.6fr repeat(2, 1fr); gap: 26px; }
}

@media (max-width: 940px) {
    .hero { padding: 52px 0 44px; }
    .hero-inner { grid-template-columns: 1fr; gap: 36px; }
    .hero-copy h1 { font-size: 2.1rem; }

    .catalogue-layout { grid-template-columns: 1fr; }
    .catalogue-sidebar { position: static; }

    /* Collapse the nav into a dropdown driven by the layout's x-data. */
    .public-nav {
        display: none;
        position: absolute;
        top: 68px; left: 0; right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 10px;
        background: var(--pl-surface);
        border-bottom: 1px solid var(--pl-border);
        box-shadow: var(--pl-shadow);
    }
    .public-nav.is-open { display: flex; }
    .public-nav a { padding: 11px 13px; }
    .header-inner { position: relative; }
    .nav-toggle { display: inline-grid; }

    /* Sign-in buttons move into the drawer so the bar is not crowded. */
    .header-actions .btn { display: none; }
    .nav-mobile-actions {
        display: grid;
        gap: 8px;
        margin-top: 10px;
        padding-top: 10px;
        border-top: 1px solid var(--pl-border);
    }
}

@media (max-width: 620px) {
    .container { padding: 0 16px; }
    .section { padding: 46px 0; }
    .page-hero { padding: 38px 0 30px; }
    .page-hero h1 { font-size: 1.65rem; }
    .section-head h2 { font-size: 1.5rem; }
    .hero-copy h1 { font-size: 1.75rem; }
    .cta-card { padding: 34px 20px; }
    .cta-card h2 { font-size: 1.38rem; }
    .product-grid, .feature-grid { grid-template-columns: 1fr; }
    .stats-row { grid-template-columns: 1fr 1fr; }
    .footer-grid { grid-template-columns: 1fr; gap: 26px; }
    .catalogue-toolbar { flex-direction: column; align-items: stretch; }
    .search-form, .sort-form { max-width: none; flex-basis: auto; }
    .sort-form .select { width: 100%; min-width: 0; }
    .hero-trust { gap: 7px 16px; font-size: .85rem; }
}

/* ── Print: keep marketing pages readable on paper ───────────── */
@media print {
    .public-header, .public-footer, .cta-card, .nav-toggle { display: none !important; }
    .hero, .page-hero, .section-alt { background: none; border: 0; }
    .product-card, .feature-card, .release-item { break-inside: avoid; box-shadow: none; }
}