/* Extracted from public-redesign.css lines 23-181. Keep load order in components/head.php. */

body.public-site.homepage {
    background: #0b0c10;
}

body.public-site.homepage::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        linear-gradient(var(--public-on-dark-05) 1px, transparent 1px),
        linear-gradient(90deg, var(--public-on-dark-05) 1px, transparent 1px);
    background-size: 54px 54px;
    background-position: 0 0;
}

/* Shell scuro condiviso: ai-adoption (.percorso-page) usava queste regole via
   la classe .homepage. Disaccoppiata dalla home (Fase 6B), le replico qui 1:1
   così la pagina mantiene sfondo scuro + griglia + stacking del main. */
body.public-site.percorso-page {
    background: #0b0c10;
}

body.public-site.percorso-page::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        linear-gradient(var(--public-on-dark-05) 1px, transparent 1px),
        linear-gradient(90deg, var(--public-on-dark-05) 1px, transparent 1px);
    background-size: 54px 54px;
    background-position: 0 0;
}

body.public-site.percorso-page main {
    position: relative;
    background: transparent;
    overflow: hidden;
}

body.public-site.percorso-page main::before {
    display: none;
}

body.public-site.percorso-page main > .public-section {
    position: relative;
    z-index: 1;
}

body.public-site.percorso-page main,
body.public-site.percorso-page .site-footer {
    position: relative;
    z-index: 1;
}

body.public-site,
body.public-site main,
body.public-site section,
body.public-site footer {
    overflow-x: clip;
}

body.public-site.homepage main {
    position: relative;
    background: transparent;
    overflow: hidden;
}

body.public-site.homepage main::before {
    display: none;
}

body.public-site.homepage main > .public-section {
    position: relative;
    z-index: 1;
}

body.public-site.homepage main,
body.public-site.homepage .site-footer {
    position: relative;
    z-index: 1;
}

body.public-site > header {
    position: fixed;
    z-index: 1000;
}

body.public-site h1,
body.public-site h2,
body.public-site h3,
body.public-site h4,
body.public-site h5,
body.public-site h6 {
    font-family: var(--public-font-heading);
    font-weight: 600;
    letter-spacing: 0;
}

body.public-site > header {
    background: rgba(7, 8, 11, 0.78);
    border-bottom: 1px solid var(--public-on-dark-08);
    backdrop-filter: blur(22px) saturate(150%);
    -webkit-backdrop-filter: blur(22px) saturate(150%);
}

/* accent line sopra navbar rimossa */

body.public-site .navbar {
    max-width: 1240px;
    padding: 16px 32px;
}

body.public-site .logo img {
    height: 32px;
}

body.public-site .nav-links {
    gap: 26px;
}

body.public-site .nav-links a:not(.public-button) {
    color: var(--public-on-dark-62);
    font-size: 0.94rem;
    font-weight: var(--public-type-nav-weight);
}

body.public-site .nav-links a:not(.public-button)::after {
    background: linear-gradient(90deg, var(--public-orange) 0%, rgba(var(--public-orange-rgb), 0.22) 100%);
    height: 1px;
}

body.public-site .nav-links a:not(.public-button):hover,
body.public-site .nav-links a.is-active:not(.public-button) {
    color: #ffffff;
}

/* Override compatto della CTA navbar: lo stile blu arriva da
   .public-button--primary; qui solo la dimensione ridotta per la barra. */
body.public-site .nav-links .public-button {
    min-height: 42px;
    padding: 10px 18px;
}

body.public-site .site-footer {
    padding: 24px 0 36px;
    background: var(--public-dark);
    color: var(--public-on-dark-82);
}

body.public-site.homepage .site-footer,
body.public-site.percorso-page .site-footer {
    background: #050505;
    border-top: 1px solid var(--public-on-dark-08);
}

body.public-site .footer-container {
    width: min(1240px, calc(100% - 48px));
    margin: 0 auto;
    padding: 0;
}

body.public-site .footer-nav a,
body.public-site .footer-legal a,
body.public-site .footer-legal__button,
body.public-site .footer-copyright {
    color: var(--public-on-dark-66);
    font-weight: 300;
}

body.public-site .footer-nav a:hover,
body.public-site .footer-nav a.is-active,
body.public-site .footer-legal a:hover,
body.public-site .footer-legal__button:hover,
body.public-site .footer-legal__button:focus-visible {
    color: #ffffff;
}

/* Griglia footer: col1=logo+copyright | col2=contatti(centro) | col3=nav+legal */
body.public-site .footer-container {
    grid-template-columns: auto 1fr auto;
    grid-template-rows: auto auto;
    row-gap: 10px;
}

body.public-site .footer-logo {
    grid-column: 1;
    grid-row: 1;
    align-self: end;
}

body.public-site .footer-copyright {
    grid-column: 1;
    grid-row: 2;
    align-self: start;
    margin: 0;
    font-size: 0.75rem;
    font-weight: 300;
    color: var(--public-on-dark-40);
}

body.public-site .footer-contacts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 20px;
    justify-content: center;
    grid-column: 2;
    grid-row: 1 / -1;
    justify-self: center;
    align-self: center;
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

body.public-site .footer-nav {
    gap: 20px;
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    align-self: end;
}

body.public-site .footer-bottom {
    grid-column: 3;
    grid-row: 2;
    justify-self: end;
    align-self: start;
    border-top: none;
    margin-top: 0;
    padding-top: 0;
}

body.public-site .footer-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.88rem;
    color: var(--public-on-dark-55);
    text-decoration: none;
    transition: color 0.2s ease;
}

body.public-site .footer-contact-link svg {
    flex-shrink: 0;
}

body.public-site .footer-contact-link--linkedin {
    padding: 2px 4px;
    line-height: 0;
}

body.public-site .footer-contact-link:hover {
    color: var(--public-on-dark-85);
}
