/* =====================================================================
   L2HP – Ajustes responsivos
   Ordem: ecrãs grandes (2K/4K) → portáteis → tablets → smartphones
   ===================================================================== */

/* ---------- Monitores 2K / 4K ---------- */
@media (min-width: 1920px) {
    :root { --container: 1440px; }
    html { font-size: 17px; }
}
@media (min-width: 2560px) {
    :root { --container: 1640px; }
    html { font-size: 19px; }
}

/* ---------- Portáteis ---------- */
@media (max-width: 1280px) {
    .main-nav { gap: 1.2rem; }
    .nav-link { padding-inline: .6rem; letter-spacing: .06em; }
    .nav-link::after { left: .6rem; right: .6rem; }
}
@media (max-width: 1180px) {
    .services-grid { grid-template-columns: repeat(2, 1fr); }
    .process--6 { grid-template-columns: repeat(3, 1fr); row-gap: 2.5rem; }
    .process--6::before { display: none; }
    .footer-grid { grid-template-columns: 1.4fr 1fr 1.3fr; }
    .footer-grid .footer-col--areas { display: none; }
    .sector-list { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Navegação mobile/tablet ---------- */
@media (max-width: 1080px) {
    .nav-toggle { display: inline-block; }
    /* backdrop-filter criaria um novo contexto para elementos "fixed": desativado em mobile */
    .site-header.is-scrolled, .site-header.menu-open { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(255,255,255,.98); }
    .header-cta { display: none; }
    .main-nav {
        position: fixed; top: var(--header-h-compact); right: 0; bottom: 0; width: min(420px, 100%);
        flex-direction: column; align-items: stretch; gap: 0;
        background: var(--surface-color); border-left: 1px solid var(--line-color);
        padding: 1.2rem var(--gutter) 2rem; overflow-y: auto;
        transform: translateX(100%); visibility: hidden;
        transition: transform .4s var(--ease-out), visibility .4s;
        box-shadow: -20px 0 40px -30px rgba(30,30,33,.5);
    }
    .menu-open .main-nav { transform: none; visibility: visible; }
    .nav-backdrop { position: fixed; inset: var(--header-h-compact) 0 0 0; background: rgba(30,30,33,.45); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility .3s; z-index: -1; }
    .menu-open .nav-backdrop { opacity: 1; visibility: visible; }
    .nav-list { flex-direction: column; align-items: stretch; gap: 0; }
    .nav-list > li { border-bottom: 1px solid var(--line-color); }
    .nav-link, .is-scrolled .nav-link, .menu-open .nav-link { width: 100%; justify-content: space-between; padding: 1.1rem .2rem; font-size: 1rem; color: var(--primary-color); min-height: 56px; }
    .nav-link::after { left: .2rem; right: auto; width: 28px; bottom: .7rem; }
    .nav-item-row .nav-link { flex: 1; }
    .nav-item-row > .nav-link::after { right: auto; }
    .submenu-toggle, .is-scrolled .submenu-toggle, .menu-open .submenu-toggle { width: 52px; height: 56px; margin: 0; color: var(--primary-color); border-left: 1px solid var(--line-color); border-radius: 0; }
    .submenu { position: static; width: auto; transform: none; opacity: 1; visibility: visible; box-shadow: none; border: 0; padding: 0 0 .8rem; display: none; grid-template-columns: 1fr; }
    .submenu::before { display: none; }
    .has-submenu.is-open .submenu { display: grid; transform: none; }
    .submenu a { padding: .6rem .3rem; }
    .main-nav .mobile-cta { display: grid; gap: .8rem; margin-top: 1.6rem; }
    .main-nav .mobile-cta .btn { width: 100%; }
}
@media (min-width: 1081px) {
    .mobile-cta, .nav-backdrop { display: none; }
}

/* ---------- Tablets ---------- */
@media (max-width: 960px) {
    :root { --header-h: 76px; }
    .hero { min-height: auto; padding-top: calc(var(--header-h) + 3.5rem); }
    .hero__grid { grid-template-columns: 1fr; }
    .hero__visual { justify-self: center; max-width: 400px; margin-top: 1rem; }
    .scroll-cue { display: none; }
    .split, .page-hero__grid { grid-template-columns: 1fr; }
    .page-hero__deco { opacity: .35; width: 380px; right: -120px; }
    .page-hero__media { max-width: 640px; }
    .about__badge { left: 1rem; bottom: -1.2rem; }
    .diff-grid { grid-template-columns: repeat(2, 1fr); }
    .process { grid-template-columns: repeat(2, 1fr); row-gap: 2.5rem; }
    .process::before { display: none; }
    .svc-layout { grid-template-columns: 1fr; }
    .svc-aside { position: static; grid-template-columns: 1fr 1fr; }
    .contact-layout { grid-template-columns: 1fr; }
    .contact-info { grid-template-columns: 1fr 1fr; }
    .mv-grid { grid-template-columns: 1fr; }
    .values-grid, .benefits, .related-grid { grid-template-columns: repeat(2, 1fr); }
    .cta__inner { grid-template-columns: 1fr; }
    .section-head--row { flex-direction: column; align-items: flex-start; }
    .service-card--featured, .service-tile.service-card--featured { flex-direction: column; }
    .service-card--featured .sc-media { margin: 0 calc(-1 * clamp(1.6rem, 2.4vw, 2.1rem)) calc(-1 * clamp(1.6rem, 2.4vw, 2.1rem)); min-height: 220px; order: 2; }
    .service-tile.service-card--featured .st-media { min-height: 0; aspect-ratio: 16 / 9; }
}

/* ---------- Smartphones ---------- */
@media (max-width: 680px) {
    body { font-size: 1rem; }
    .brand img { height: 44px; }
    .is-scrolled .brand img, .menu-open .brand img { height: 38px; }
    .services-grid, .values-grid, .benefits, .related-grid, .diff-grid { grid-template-columns: 1fr; }
    .service-card--featured { grid-column: auto; }
    .feature-list, .capabilities, .form-grid { grid-template-columns: 1fr; }
    .process, .process--6 { grid-template-columns: 1fr; }
    .process li { padding-top: 0; padding-left: 4.4rem; min-height: 56px; }
    .svc-aside, .contact-info { grid-template-columns: 1fr; }
    .sector-list { grid-template-columns: 1fr; }
    .hero__actions .btn, .cta__actions .btn { width: 100%; }
    .hero__tags { gap: .6rem 1rem; }
    .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
    .footer-bottom { flex-direction: column; }
    .about__badge { position: relative; left: 0; bottom: 0; margin-top: -2rem; margin-left: 1rem; margin-right: 1rem; max-width: none; }
    .back-to-top { right: .9rem; bottom: .9rem; width: 46px; height: 46px; }
    .filter-bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .4rem; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scrollbar-width: thin; }
    .filter-btn { flex: none; }
}
@media (max-width: 380px) {
    .brand img { height: 38px; }
}

/* ---------- Impressão ---------- */
@media print {
    .site-header, .back-to-top, .nav-toggle, .scroll-cue, .hero__visual, .cta__deco, .footer-deco, .page-hero__deco { display: none !important; }
    .hero, .page-hero, .section--dark, .site-footer { background: #fff !important; color: #000 !important; }
    .hero h1, .page-hero h1, .section--dark h2, .site-footer h2 { color: #000 !important; }
    .js .reveal { opacity: 1 !important; transform: none !important; }
}
