/* Compact presentation with strong typography and product photography. */
.public-site { background: #f6f8fb; }
.public-site .page-title {
    margin-top: calc(var(--header-height, 80px) + 28px);
    margin-bottom: 24px;
    font-size: 30px;
    line-height: 1.4;
    font-weight: 700;
    color: #172033;
    letter-spacing: -0.025em;
}
.public-site .text-gradient {
    background: none !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: currentColor !important;
    color: #172033;
}
.public-site .section,
.public-site .dist-section { padding: 32px 0 !important; }
.public-site .page-title + .section,
.public-site .page-title + .dist-section,
.public-site .page-title + .policy-wrap,
.public-site .page-title + .terms-wrap { padding-top: 0 !important; }
.public-site .section-header {
    text-align: left;
    margin-bottom: 20px;
}
.public-site .section-title,
.public-site .section-header h2 {
    font-size: 25px;
    line-height: 1.4;
    margin-bottom: 12px;
}
.public-site .section-header p { font-size: 14px; }
.public-site .page-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.public-site .btn { border-radius: 8px; padding: 10px 18px; box-shadow: none !important; }
.public-site .btn:hover { transform: none; }
.public-site :is(.philosophy-card, .vision-item, .product-card, .contact-item, .resource-item, .news-item, .dist-card) {
    box-shadow: 0 3px 12px rgba(15, 23, 42, 0.04) !important;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    transform: none !important;
}
.public-site .philosophy-card { padding: 24px; text-align: center; }
.public-site .card-icon { margin-bottom: 16px; }
.public-site .dist-cards { margin-top: 20px; }
.public-site .document-date,
.public-site .tool-note { color: #64748b; font-size: 13px; margin-bottom: 16px; }
.public-site .policy-content,
.public-site .terms-content { max-width: var(--container-width, 1200px); }
.public-site .news-detail { padding-top: 0; }
.public-site .news-meta { margin-bottom: 24px; }
.public-site .article-content-section { padding-top: calc(var(--header-height, 80px) + 28px) !important; }
.public-site .bm-head-actions { margin-bottom: 16px; }
.public-site .section[style*="padding-top: 140px"],
.public-site .section[style*="padding-top: 120px"] {
    padding-top: calc(var(--header-height, 80px) + 28px) !important;
}
.public-site .auth-container { background: #f6f8fb; }
.public-site .auth-box { border-radius: 10px; box-shadow: none; }

/* Bright surfaces and the site's blue accent. */
.public-site .photo-title,
.public-site .product-feature {
    position: relative;
    background: #fff;
    color: #172033;
    border: 1px solid #e2eaf3;
    border-left: 4px solid var(--primary, #007aff);
    border-radius: 10px;
    overflow: hidden;
}
.public-site .photo-title {
    max-width: calc(var(--container-width, 1200px) - 40px);
    width: calc(100% - 40px);
    padding: 46px 24px 22px;
    min-height: 124px;
    font-size: 32px;
    letter-spacing: -0.035em;
}
.public-site .photo-title::before {
    content: attr(data-eyebrow);
    position: absolute;
    top: 19px;
    left: 24px;
    font-size: 11px;
    letter-spacing: 0.14em;
    font-weight: 700;
    color: #0070d9;
}
.public-site .photo-title.calculator-title { max-width: 1360px; }
.public-site .simulator-container { padding-top: 0; }
.public-site .simulator-container .search-input { min-width: 0; }
.public-site .simulator-container .btn-search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 0 0 auto;
    white-space: nowrap;
}
.public-site .product-feature { padding: 20px 24px; margin-bottom: 24px; }
.public-site .product-feature .feature-label {
    display: block;
    color: #0070d9;
    font-size: 11px;
    letter-spacing: 0.14em;
    font-weight: 700;
    margin-bottom: 10px;
}
.public-site .product-feature .section-title { font-size: 32px; color: #172033; margin-bottom: 10px; }
.public-site .product-feature p { color: #64748b; font-size: 14px; line-height: 1.6; }

@media (max-width: 768px) {
    .public-site .page-title { font-size: 24px; margin-top: calc(var(--header-height, 80px) + 20px); margin-bottom: 20px; }
    .public-site .section, .public-site .dist-section { padding: 24px 0 !important; }
    .public-site .section-title, .public-site .section-header h2 { font-size: 20px; }
    .public-site .page-title + .section, .public-site .page-title + .dist-section { padding-top: 0 !important; }
    .public-site .photo-title { font-size: 25px; min-height: 114px; padding: 42px 18px 18px; }
    .public-site .photo-title::before { left: 18px; top: 16px; }
    .public-site .product-feature { padding: 18px; }
    .public-site .product-feature .section-title { font-size: 26px; }
    .public-site .product-feature p { font-size: 13px; }
    .public-site .simulator-container .search-container { padding: 20px; }
    .public-site .simulator-container .btn-search { padding: 12px 14px; }
}
