/* ==========================================================================
   Responsive Styles — All Breakpoints
   Consolidated from all 10 source HTML files
   Breakpoints: 1024px, 768px, 480px
   ========================================================================== */

/* ==========================================================================
   1024px — Tablet Landscape
   ========================================================================== */
@media (max-width: 1024px) {

    /* Hide top bar on tablet and mobile */
    .top-bar {
        display: none;
    }

    /* Global / Shared */
    .container,
    .container-narrow {
        padding: 0 24px;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }

    /* Homepage (front-page) */
    /* Hero layout: stack on tablet, supporting articles stay as horizontal rows */
    .edition-hero-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .edition-hero h3 {
        font-size: 28px;
    }

    .experts-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Article (single) */
    .article-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .article-sidebar {
        position: static;
    }

    .more-articles-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Category (archive) */
    .category-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .category-sidebar {
        position: static;
    }

    /* Author */
    .header-inner,
    .breadcrumb-inner,
    .main-content,
    .footer-inner {
        padding: 0 24px;
    }

    .main-content {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .author-hero-inner {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 0 24px;
    }

    .author-photo-wrapper {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .author-info {
        text-align: center;
        padding-top: 32px;
    }

    .author-bio {
        margin: 0 auto 32px;
    }

    .author-stats {
        justify-content: center;
    }

    .author-social {
        justify-content: center;
    }

    /* Search — no unique 1024 rules beyond shared */

    /* Subscribe */
    .pricing-grid {
        max-width: 100%;
    }

    .value-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
    }

    /* Account */
    .account-layout {
        grid-template-columns: 1fr;
    }

    .account-sidebar {
        position: static;
    }

    /* About */
    .mission-content {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px;
    }

    .team-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .values-grid {
        grid-template-columns: 1fr;
    }

    /* Previous Reports */
    .reports-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .reports-sidebar {
        position: static;
    }

    /* Partner Funds */
    body.page-partner-funds .fund-grid {
        grid-template-columns: 1fr;
    }

    body.page-partner-funds .featured-fund {
        grid-template-columns: 1fr;
        padding: 40px;
    }
}


/* ==========================================================================
   768px — Tablet Portrait
   ========================================================================== */
@media (max-width: 768px) {

    body {
        font-size: 16px;
    }

    /* --- Shared Components (Top Bar, Header, Nav, Footer) --- */

    .top-bar {
        display: none;
    }

    header {
        padding: 20px 0;
    }

    .masthead, .masthead-sub {
        font-size: 48px;
    }

    .tagline {
        font-size: 11px;
        letter-spacing: 2px;
    }

    nav {
        flex-wrap: wrap;
        gap: 12px 20px;
        justify-content: center;
    }

    nav a {
        font-size: 12px;
    }

    .nav-account {
        width: 100%;
        text-align: center;
        margin-top: 8px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-logo, .footer-logo-sub {
        font-size: 32px;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }

    /* --- Homepage (front-page) --- */

    .content-box-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding: 16px 20px;
    }

    .content-box-header-right {
        width: 100%;
        justify-content: space-between;
    }

    .content-box-body {
        padding: 20px;
    }

    .content-box-title {
        font-size: 24px;
    }

    .edition-supporting-image {
        width: 100px;
    }

    .edition-hero h3 {
        font-size: 26px;
    }

    .full-width-button {
        padding: 16px;
        font-size: 13px;
    }

    .experts-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .expert-card {
        padding: 20px;
    }

    .expert-photo {
        width: 80px;
        height: 80px;
    }

    .expert-photo-placeholder {
        font-size: 26px;
    }

    .expert-name {
        font-size: 20px;
    }

    .two-column-categories {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .category-article h4 {
        font-size: 20px;
    }

    .category-grid {
        grid-template-columns: 1fr;
    }

    .media-section {
        padding: 40px 24px;
    }

    .media-section-header h2 {
        font-size: 32px;
    }

    .media-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .media-card h3 {
        font-size: 24px;
    }

    .subscribe-cta-banner {
        flex-direction: column;
        padding: 32px 24px;
        text-align: center;
    }

    .subscribe-cta-banner h3 {
        font-size: 32px;
    }

    .subscribe-cta-banner-actions {
        flex-direction: column;
        width: 100%;
    }

    .subscribe-cta-banner .btn-trial,
    .subscribe-cta-banner .btn-learn {
        width: 100%;
    }

    .qa-header {
        flex-direction: column;
        gap: 12px;
    }

    .qa-header-center {
        order: 2;
    }

    /* --- Article (single) --- */

    .article-header {
        padding: 40px 0 32px;
    }

    .article-title {
        font-size: 32px;
    }

    .article-excerpt {
        font-size: 18px;
    }

    .article-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .meta-divider {
        display: none;
    }

    .share-buttons {
        margin-left: 0;
    }

    .article-hero {
        height: 300px;
    }

    .article-layout {
        padding: 40px 0;
    }

    .article-content p {
        font-size: 16px;
    }

    .article-content h2 {
        font-size: 26px;
    }

    .article-content h3 {
        font-size: 22px;
    }

    .article-content p:first-of-type::first-letter {
        font-size: 60px;
    }

    .pull-quote {
        padding: 28px;
    }

    .pull-quote p {
        font-size: 22px;
    }

    .stock-table {
        font-size: 12px;
    }

    .stock-table th,
    .stock-table td {
        padding: 10px;
    }

    .author-bio-box {
        flex-direction: column;
        padding: 28px;
    }

    .author-bio-photo {
        width: 80px;
        height: 80px;
        font-size: 28px;
    }

    .more-articles-grid {
        grid-template-columns: 1fr;
    }

    .more-from-section h2 {
        font-size: 24px;
    }

    /* --- Category (archive) --- */

    .category-hero {
        padding: 48px 0;
    }

    .category-hero h1 {
        font-size: 40px;
    }

    .category-hero p {
        font-size: 16px;
    }

    .filter-bar {
        flex-direction: column;
        gap: 16px;
        align-items: flex-start;
    }

    .filter-tabs {
        flex-wrap: wrap;
    }

    .featured-category-article {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .featured-category-image {
        height: 220px;
    }

    .featured-category-content h2 {
        font-size: 26px;
    }

    .article-list-item {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .article-list-image {
        height: 180px;
    }

    .article-list-content h3 {
        font-size: 20px;
    }

    /* --- Author --- */

    .header-top {
        flex-direction: column;
        gap: 16px;
    }

    .logo, .logo-sub {
        font-size: 32px;
    }

    .nav {
        flex-wrap: wrap;
        gap: 12px 20px;
        justify-content: center;
    }

    .nav a {
        font-size: 11px;
    }

    .author-hero {
        padding: 48px 0;
    }

    .author-photo {
        width: 180px;
        height: 180px;
    }

    .author-info h1 {
        font-size: 36px;
    }

    .author-title {
        font-size: 14px;
    }

    .author-bio {
        font-size: 16px;
    }

    .author-stats {
        flex-wrap: wrap;
        gap: 24px 40px;
    }

    .author-stat-value {
        font-size: 28px;
    }

    .featured-article-card {
        grid-template-columns: 1fr;
    }

    .featured-article-content {
        padding: 32px;
    }

    .featured-article-title {
        font-size: 26px;
    }

    .article-card {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .article-image {
        height: 180px;
    }

    .section-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .footer-legal {
        justify-content: center;
    }

    /* --- Search --- */

    .search-header {
        padding: 32px 0;
    }

    .search-header h1 {
        font-size: 28px;
    }

    .search-form {
        flex-direction: column;
    }

    .search-submit {
        width: 100%;
    }

    .search-result {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .result-image {
        height: 180px;
    }

    .result-title {
        font-size: 20px;
    }

    /* --- Subscribe --- */

    .subscribe-hero {
        padding: 48px 0;
    }

    .subscribe-hero h1 {
        font-size: 36px;
    }

    .subscribe-hero p {
        font-size: 16px;
    }

    .hero-stats {
        flex-direction: column;
        gap: 24px;
    }

    .hero-stat-value {
        font-size: 32px;
    }

    .pricing-section, .value-section, .experts-section, .testimonials-section, .faq-section {
        padding: 48px 0;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .pricing-card.featured {
        transform: none;
    }

    .pricing-header h2, .value-header h2, .experts-header h2, .testimonials-header h2, .faq-header h2 {
        font-size: 28px;
    }

    .guarantee-content {
        flex-direction: column;
        text-align: center;
    }

    .guarantee-text h3 {
        font-size: 24px;
    }

    .final-cta {
        padding: 60px 0;
    }

    .final-cta h2 {
        font-size: 32px;
    }

    .final-cta-buttons {
        flex-direction: column;
    }

    /* --- Account --- */

    .account-layout {
        padding: 32px 0;
    }

    .subscription-card {
        flex-direction: column;
    }

    .subscription-actions {
        flex-direction: row;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .action-cards {
        grid-template-columns: 1fr;
    }

    /* --- About --- */

    .about-hero {
        padding: 60px 0;
    }

    .about-hero h1 {
        font-size: 36px;
    }

    .about-hero p {
        font-size: 18px;
    }

    .mission-section, .story-section, .team-section, .values-section {
        padding: 48px 0;
    }

    .mission-text h2 {
        font-size: 28px;
    }

    .mission-image {
        height: 280px;
    }

    .stats-grid {
        grid-template-columns: 1fr 1fr;
    }

    .stat-value {
        font-size: 40px;
    }

    .story-header h2, .team-header h2, .values-header h2 {
        font-size: 28px;
    }

    .story-content p {
        font-size: 16px;
    }

    .story-quote p {
        font-size: 22px;
    }

    .team-grid {
        grid-template-columns: 1fr;
    }

    .cta-section {
        padding: 60px 0;
    }

    .cta-section h2 {
        font-size: 32px;
    }

    .cta-buttons {
        flex-direction: column;
    }

    /* --- Previous Reports --- */

    .page-hero {
        padding: 48px 0;
    }

    .page-hero h1 {
        font-size: 40px;
    }

    .page-hero p {
        font-size: 16px;
    }

    body.page-previous-reports .date-filter-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    body.page-previous-reports .date-filter-controls {
        width: 100%;
        flex-wrap: wrap;
    }

    body.page-previous-reports .date-filter-select {
        flex: 1;
        min-width: 120px;
    }

    body.page-previous-reports .date-group-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    body.page-previous-reports .date-group-date {
        font-size: 24px;
    }

    body.page-previous-reports .report-item {
        grid-template-columns: 60px 1fr;
        gap: 16px;
    }

    body.page-previous-reports .report-author-image {
        width: 60px;
        height: 60px;
    }

    body.page-previous-reports .report-title {
        font-size: 18px;
    }

    body.page-previous-reports .quick-stats {
        grid-template-columns: 1fr;
    }

    /* --- Partner Funds --- */

    body.page-partner-funds .partner-hero {
        padding: 48px 0;
    }

    body.page-partner-funds .partner-hero h1 {
        font-size: 36px;
    }

    body.page-partner-funds .partner-hero p {
        font-size: 16px;
    }

    body.page-partner-funds .partner-logos {
        flex-direction: column;
        gap: 24px;
    }

    body.page-partner-funds .intro-section {
        padding: 40px 0;
    }

    body.page-partner-funds .intro-content h2 {
        font-size: 26px;
    }

    body.page-partner-funds .intro-content p {
        font-size: 16px;
    }

    body.page-partner-funds .funds-section {
        padding: 40px 0;
    }

    body.page-partner-funds .featured-fund {
        padding: 28px;
        border-radius: 16px;
    }

    body.page-partner-funds .featured-fund-content h2 {
        font-size: 28px;
    }

    body.page-partner-funds .featured-fund-content p {
        font-size: 15px;
    }

    body.page-partner-funds .featured-highlights {
        flex-direction: column;
        gap: 8px;
    }

    body.page-partner-funds .featured-fund-actions {
        flex-direction: column;
    }

    body.page-partner-funds .btn-featured-primary,
    body.page-partner-funds .btn-featured-secondary {
        width: 100%;
        text-align: center;
    }

    body.page-partner-funds .featured-fund-stats {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }

    body.page-partner-funds .featured-stat {
        padding: 16px;
    }

    body.page-partner-funds .featured-stat-value {
        font-size: 24px;
    }

    body.page-partner-funds .fund-category {
        margin-bottom: 40px;
    }

    body.page-partner-funds .fund-category-header {
        flex-wrap: wrap;
        gap: 12px;
    }

    body.page-partner-funds .fund-category-title {
        font-size: 26px;
    }

    body.page-partner-funds .fund-category-link {
        width: 100%;
        justify-content: flex-start;
        margin-left: 0;
    }

    body.page-partner-funds .fund-card-header {
        padding: 20px;
    }

    body.page-partner-funds .fund-card-name {
        font-size: 20px;
    }

    body.page-partner-funds .fund-card-body {
        padding: 20px;
    }

    body.page-partner-funds .fund-stats {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 12px;
    }

    body.page-partner-funds .fund-stat-value {
        font-size: 18px;
    }

    body.page-partner-funds .fund-actions {
        flex-direction: column;
    }

    body.page-partner-funds .fund-card-coming-soon {
        min-height: 300px;
        padding: 32px 24px;
    }

    body.page-partner-funds .fund-card-coming-soon h3 {
        font-size: 22px;
    }

    body.page-partner-funds .cta-section {
        padding: 48px 0;
    }

    body.page-partner-funds .cta-section h2 {
        font-size: 28px;
    }

    body.page-partner-funds .cta-section p {
        font-size: 16px;
    }

    body.page-partner-funds .cta-contact {
        flex-direction: column;
        gap: 16px;
    }
}


/* ==========================================================================
   480px — Mobile
   ========================================================================== */
@media (max-width: 480px) {

    /* --- Shared --- */
    .container,
    .container-narrow {
        padding: 0 16px;
    }

    .masthead, .masthead-sub {
        font-size: 36px;
    }

    nav {
        gap: 10px 16px;
    }

    nav a {
        font-size: 11px;
        letter-spacing: 0;
    }

    /* --- Homepage --- */

    .content-box-title {
        font-size: 22px;
    }

    .edition-hero h3 {
        font-size: 24px;
    }

    .edition-hero-excerpt {
        font-size: 15px;
    }

    .edition-supporting-image {
        width: 80px;
    }

    .edition-supporting-content h4 {
        font-size: 18px;
    }

    .edition-article-author {
        font-size: 13px;
    }

    .edition-supporting-excerpt {
        -webkit-line-clamp: 2;
        font-size: 13px;
    }

    .edition-hero-excerpt {
        -webkit-line-clamp: 3;
    }

    .media-section-header h2 {
        font-size: 28px;
    }

    .subscribe-cta-banner h3 {
        font-size: 28px;
    }

    .subscribe-cta-banner p {
        font-size: 16px;
    }

    .experts-grid {
        grid-template-columns: 1fr;
    }

    /* --- Article --- */

    .article-title {
        font-size: 26px;
    }

    .article-excerpt {
        font-size: 16px;
    }

    .article-hero {
        height: 220px;
        margin: 24px 0;
    }

    .article-content p {
        font-size: 15px;
    }

    .article-content h2 {
        font-size: 22px;
    }

    .article-content h3 {
        font-size: 18px;
    }

    .pull-quote p {
        font-size: 18px;
    }

    .stock-table-wrapper {
        overflow-x: auto;
    }

    .stock-table {
        min-width: 500px;
    }

    /* --- Category --- */

    .category-hero h1 {
        font-size: 32px;
    }

    .category-hero p {
        font-size: 14px;
    }

    .featured-category-content h2 {
        font-size: 22px;
    }

    .article-list-content h3 {
        font-size: 18px;
    }

    .article-list-content p {
        font-size: 14px;
    }

    .pagination a, .pagination span {
        padding: 8px 12px;
        font-size: 12px;
    }

    /* --- Author --- */

    .header-inner,
    .breadcrumb-inner,
    .main-content,
    .footer-inner,
    .author-hero-inner {
        padding: 0 16px;
    }

    .logo, .logo-sub {
        font-size: 26px;
    }

    .nav {
        gap: 10px 16px;
    }

    .nav a {
        font-size: 10px;
        letter-spacing: 0;
    }

    .author-photo {
        width: 140px;
        height: 140px;
    }

    .author-info h1 {
        font-size: 28px;
    }

    .author-stats {
        flex-direction: column;
        gap: 20px;
    }

    .featured-article-content {
        padding: 24px;
    }

    .featured-article-title {
        font-size: 22px;
    }

    .article-title {
        font-size: 18px;
    }

    .subscribe-cta-sidebar {
        padding: 24px;
    }

    .subscribe-cta-sidebar h3 {
        font-size: 22px;
    }

    /* --- Search --- */

    .search-header h1 {
        font-size: 24px;
    }

    .search-input {
        padding: 14px 16px 14px 44px;
        font-size: 14px;
    }

    .result-title {
        font-size: 18px;
    }

    /* --- Subscribe --- */

    .subscribe-hero h1 {
        font-size: 28px;
    }

    .pricing-card {
        padding: 28px;
    }

    .pricing-amount {
        font-size: 48px;
    }

    .final-cta h2 {
        font-size: 26px;
    }

    .btn-cta-primary, .btn-cta-secondary {
        padding: 16px 32px;
        width: 100%;
    }

    /* --- Account --- */

    .account-sidebar {
        padding: 24px;
    }

    .account-section-header {
        padding: 20px;
    }

    .account-section-body {
        padding: 20px;
    }

    .subscription-actions {
        flex-direction: column;
    }

    .form-actions {
        flex-direction: column;
    }

    .btn-submit, .btn-outline {
        width: 100%;
    }

    /* --- About --- */

    .about-hero h1 {
        font-size: 28px;
    }

    .about-hero p {
        font-size: 16px;
    }

    .mission-text h2, .story-header h2, .team-header h2, .values-header h2 {
        font-size: 24px;
    }

    .stat-value {
        font-size: 36px;
    }

    .story-content p:first-of-type::first-letter {
        font-size: 56px;
    }

    .story-quote {
        padding: 24px;
    }

    .story-quote p {
        font-size: 18px;
    }

    .value-card {
        padding: 28px 24px;
    }

    .cta-section h2 {
        font-size: 26px;
    }

    /* --- Previous Reports --- */

    .page-hero h1 {
        font-size: 32px;
    }

    .page-hero p {
        font-size: 14px;
    }

    body.page-previous-reports .report-item {
        grid-template-columns: 1fr;
    }

    body.page-previous-reports .report-author-image {
        width: 50px;
        height: 50px;
    }

    body.page-previous-reports .report-title {
        font-size: 17px;
    }

    body.page-previous-reports .archive-months {
        grid-template-columns: repeat(2, 1fr);
    }

    /* --- Partner Funds --- */

    body.page-partner-funds .partner-hero h1 {
        font-size: 28px;
    }

    body.page-partner-funds .partner-hero p {
        font-size: 14px;
    }

    body.page-partner-funds .intro-content h2 {
        font-size: 22px;
    }

    body.page-partner-funds .featured-fund-content h2 {
        font-size: 24px;
    }

    body.page-partner-funds .featured-fund-stats {
        grid-template-columns: 1fr;
    }

    body.page-partner-funds .fund-category-title {
        font-size: 22px;
    }

    body.page-partner-funds .fund-card-name {
        font-size: 18px;
    }

    body.page-partner-funds .fund-stats {
        grid-template-columns: 1fr;
        text-align: left;
    }

    body.page-partner-funds .fund-stat {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0;
        border-bottom: 1px solid var(--border-light);
    }

    body.page-partner-funds .fund-stat:last-child {
        border-bottom: none;
    }

    body.page-partner-funds .fund-stat-label {
        margin-top: 0;
    }

    body.page-partner-funds .cta-section h2 {
        font-size: 24px;
    }

    body.page-partner-funds .disclaimer-content {
        font-size: 11px;
    }
}
