/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — Tutti i @media queries
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
    .highlights-grid   { grid-template-columns: 1fr; }
    .approach-grid     { grid-template-columns: 1fr; }
    .services-grid     { grid-template-columns: repeat(2, 1fr); }
    .hiw-steps         { grid-template-columns: repeat(2, 1fr); }
    .hiw-step::after   { display: none; }
    .stats-grid        { grid-template-columns: repeat(2, 1fr); }
    .trust-grid        { grid-template-columns: 1fr; }
    .about-skills-grid { grid-template-columns: repeat(2, 1fr); }

    h2 { font-size: 2rem; }
    .home-highlights h2,
    .approach-section h2,
    .trust-section h2,
    .cta-dark h2 { font-size: 2rem; }
}
@media (max-width: 560px) {
    .about-skills-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .about-intro      { grid-template-columns: 1fr; }
    .about-intro .about-card { order: -1; max-width: 360px; margin: 0 auto; }
    .contact-grid     { grid-template-columns: 1fr; }
    .footer-grid      { grid-template-columns: 1fr 1fr; }
    .pricing-grid     { grid-template-columns: 1fr; }
    .profile-page-grid { grid-template-columns: 1fr; }
    .profile-page-left { position: static; }
    .hero-inner        { grid-template-columns: 1fr; gap: 2.5rem; }
    /* Code-window solo su schermi grandi (quando sta a fianco del testo): sotto i 900px si nasconde */
    .hero-visual       { display: none; }
}

@media (max-width: 768px) {
    /* Burger visible on mobile */
    .nav-burger { display: block; }
    .nav-links {
        display: none; position: absolute; top: 100%; left: 0; right: 0;
        flex-direction: column; padding: 1rem 1.5rem 1.25rem;
        background: rgba(255,255,255,.97); backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
        border-bottom: 1px solid var(--g200);
        box-shadow: var(--sh-lg); gap: .2rem;
    }
    .nav.nav-dark .nav-links,
    .site-dark .nav .nav-links {
        background: rgba(9,9,11,.97);
        border-bottom-color: rgba(255,255,255,.06);
    }
    .nav-links.open { display: flex; }
    .nav-links a { padding: .6rem .5rem; font-size: .9rem; }
    .nav-links .btn { width: 100%; justify-content: center; margin-top: .5rem; }

    .nav-right { gap: .35rem; }
    .nav-divider--bar { display: none; }
    .nav-lang-dd--public .nav-lang-btn { padding: .3rem .4rem; }

    /* Hero */
    .hero { min-height: auto; }
    .hero-inner { grid-template-columns: 1fr; gap: 2rem; padding: 3rem 1.5rem; }
    .hero-visual { display: none; }

    /* Page intro */
    .page-intro { padding: 4rem 0 2.5rem; }
    .page-intro h1 { font-size: 2rem; }
    .page-intro h2 { font-size: 1.75rem; }

    /* Section headings — must be smaller than page-intro h1 (2rem) */
    h2 { font-size: 1.5rem; }
    .home-highlights h2,
    .approach-section h2,
    .trust-section h2,
    .cta-dark h2 { font-size: 1.5rem; }

    /* Console hero: center icon + text when stacked */
    .con-hero-inner { flex-direction: column; align-items: center; text-align: center; }
    .con-icon { margin-bottom: .75rem; }
    .con-metrics { justify-content: center; }

    /* Grids */
    .services-grid     { grid-template-columns: 1fr; }
    .hiw-steps         { grid-template-columns: 1fr; }
    .admin-grid        { grid-template-columns: 1fr; }
    .field-row         { grid-template-columns: 1fr; }
    .stats-grid        { grid-template-columns: 1fr 1fr; }
    .con-hero-inner    { flex-direction: column; }
    .nav               { padding: 0 1rem; }

    /* App nav — burger menu on mobile (burger on right, matching public nav) */
    .app-nav-burger { display: block; order: 10; margin-left: .35rem; }
    .app-nav-burger svg { width: 26px; height: 26px; }
    .nav-lang-dd--console { order: 9; margin-left: auto; }
    .app-nav-in { flex-wrap: nowrap; height: 54px; padding: 0 1rem; }
    .app-nav .logo { font-size: 1.1rem; }
    .app-nav-links {
        display: none; position: absolute; top: 100%; left: 0; right: 0;
        flex-direction: column; padding: .75rem 1rem;
        background: rgba(24,24,27,.97); backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border-bottom: 1px solid rgba(255,255,255,.08);
        box-shadow: 0 8px 24px rgba(0,0,0,.4); z-index: 299; gap: .15rem;
    }
    .app-nav-links.open { display: flex; }
    .app-nav-a { font-size: .95rem; padding: .6rem .7rem; white-space: nowrap; }
    .app-nav-right { display: flex; flex-direction: row; align-items: center; gap: .6rem; margin-left: 0; padding-top: .5rem; border-top: 1px solid rgba(255,255,255,.08); margin-top: .5rem; flex-wrap: wrap; }
    .app-nav-exit-mobile { display: none; }

    /* Mobile-hide columns */
    .mobile-hide { display: none !important; }

    /* Profile */
    .prof-grid { grid-template-columns: 1fr; }
    .pp-content-grid { grid-template-columns: 1fr; }
    .pp-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .pp-header { flex-direction: column; text-align: center; }

    /* Console cards & stat grids — compact, not stacked */
    .dash-stats-row    { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
    .admin-stats-row   { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
    .admin-stats-row > :last-child { grid-column: 1 / -1; }
    .con-stat-grid     { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
    .panels-grid       { grid-template-columns: 1fr; gap: .75rem; }
    .con-examples      { grid-template-columns: 1fr; }
    .pricing-grid      { grid-template-columns: 1fr; }

    /* Dashboard billing cards: shorter labels on mobile */
    .dash-stat-card small { display: block; }
    .dash-stat-card .label-full { display: inline; }
    .dash-stat-card .label-short { display: none; }

    /* Card text & padding — readable on phone */
    .dash-stat-card, .admin-stat-card, .con-stat {
        padding: 1rem .75rem;
    }
    .dash-stat-card b, .admin-stat-card b, .con-stat b {
        font-size: 1.25rem;
    }
    .dash-stat-card small, .admin-stat-card small, .con-stat small {
        font-size: .82rem;
    }
    .panel-card {
        padding: 1.25rem;
    }
    .panel-card h2 { font-size: 1rem; }
    .panel-card p  { font-size: .88rem; margin-bottom: .5rem; }
    .panel-cta     { font-size: .88rem; }
    .panel-type-label { font-size: .78rem; }

    .con-card { padding: 1.15rem; }
    .con-card h3 { font-size: 1.05rem; }
    .about-card { padding: 1.5rem; }
    .contact-form-col { padding: 1.25rem; }
    .admin-card, .admin-section { padding: 1.15rem; }
    .admin-card h2, .admin-section h2 { font-size: 1rem; margin-bottom: .75rem; }

    /* Dashboard: readable body text on mobile */
    .app-main p { font-size: .95rem; }
    .app-main h1 { font-size: 1.3rem; }
    .dash-section h2 { font-size: 1.08rem; }
    .con-hero h1 { font-size: 1.25rem; }
    .con-hero p { font-size: .92rem; }
    .con-section h2 { font-size: 1.05rem; }

    /* Console cards: prevent overflow */
    .con-card, .admin-card, .admin-section,
    .dash-stat-card, .admin-stat-card, .con-stat,
    .panel-card, .pp-card {
        min-width: 0;
        overflow-wrap: break-word;
        word-break: break-word;
    }

    /* Console tabs: horizontal scroll */
    .con-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .con-tab  { white-space: nowrap; flex-shrink: 0; padding: .5rem .8rem; font-size: .78rem; }

    /* App main: tighter padding */
    .app-main { padding: 1.5rem 1rem; }
    .con-body { padding: 1.5rem 1rem; }

    /* ECB rate date: hide on mobile */
    .ecb-date { display: none; }

    /* Billing tables: layout nativo, solo totali su mobile (niente card).
       Le colonne di dettaglio si nascondono, il testo resta grande e leggibile. */
    .billing-table { min-width: 0; }
    .billing-table .col-detail { display: none; }
    .billing-table th { font-size: .78rem; padding: .5rem .6rem; white-space: nowrap; }
    .billing-table td { font-size: .92rem; padding: .55rem .6rem; white-space: nowrap; }
    .billing-table td[data-label="Servizio"] { white-space: normal; min-width: 110px; }
    .billing-table .btn-sm { font-size: .8rem; }

    /* Admin tables (many columns): keep scroll */
    .admin-table { font-size: .82rem; }
    .admin-table th { font-size: .72rem; padding: .5rem .6rem; }
    .admin-table td { padding: .5rem .6rem; font-size: .8rem; }

    /* Legal tables: scroll orizzontale su schermi piccoli */
    .legal-table { display: block; overflow-x: auto; }
    .legal-table th, .legal-table td { min-width: 110px; }

    /* Larger touch targets for action controls on phones */
    .btn-icon { width: 38px; height: 38px; }
    .btn-icon svg { width: 17px; height: 17px; }
    .btn-action { padding: .45rem .7rem; font-size: .76rem; }
    .admin-actions { gap: .5rem; }
    .fav-btn { width: 34px; height: 34px; }

    /* Status pills: prevent overflow on mobile */
    .status-pill { font-size: .7rem; padding: .15rem .45rem; white-space: nowrap; }
    /* Admin tables: horizontal scroll on mobile */
    .admin-section { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .admin-table { min-width: 600px; }
}

@media (max-width: 520px) {
    .footer-grid { grid-template-columns: 1fr; }
    .footer-bottom-inner { flex-direction: column; align-items: flex-start; }
    .hero-cta { flex-direction: column; }
    .hero-cta .btn { width: 100%; }
    .stats-grid { grid-template-columns: 1fr; }

    /* Profile stats: single column on small phones */
    .pp-stats-grid { grid-template-columns: 1fr; }

    /* Console metrics: full width */
    .con-metrics { flex-direction: column; }
    .con-met { min-width: 0; width: 100%; }

    /* Dashboard billing cards: shorter labels on very small screens */
    .dash-stat-card .label-full, .admin-stat-card .label-full { display: none; }
    .dash-stat-card .label-short, .admin-stat-card .label-short { display: inline; }

    /* Field row in console forms */
    .app-page .field-row { grid-template-columns: 1fr; }

    /* Stat cards: compact but readable */
    .dash-stats-row, .admin-stats-row { gap: .5rem; }
    .dash-stat-card, .admin-stat-card, .con-stat {
        padding: .75rem .5rem;
    }
    .dash-stat-card b, .admin-stat-card b, .con-stat b {
        font-size: 1.1rem;
    }
    .dash-stat-card small, .admin-stat-card small, .con-stat small {
        font-size: .75rem;
    }

    /* Panels grid single column */
    .panels-grid { grid-template-columns: 1fr; }
    .panel-card { padding: 1.1rem; }
    .panel-card h2 { font-size: .95rem; }
    .panel-card p  { font-size: .82rem; }

    /* App main minimal padding */
    .app-main { padding: 1.25rem .75rem; }
    .con-body { padding: 1.25rem .75rem; }

    /* Page titles */
    .app-main h1 { font-size: 1.2rem; }
    .con-hero h1 { font-size: 1.15rem; }
    .con-section h2, .dash-section h2 { font-size: 1rem; }

    /* Filter bar: stack on phones */
    .filter-bar { flex-direction: column; gap: .5rem; }
    .filter-bar .field { width: 100%; }
    .filter-bar select, .filter-bar input[type="date"] { width: 100%; }
}

