/* ANPAI typography — PP Neue Montreal system measured from augen.pro.
   Captured 2026-08-06: Book 350 / Light 300, -0.02em tracking,
   1.2 line-height. The files are kept local so every route renders the same
   system without a late third-party font request. */
@font-face {
  font-family: 'PP Neue Montreal';
  font-style: normal;
  font-weight: 350;
  font-display: swap;
  src: url(../fonts/pp-neue-montreal/PPNeueMontreal-Book.woff2) format('woff2');
}

@font-face {
  font-family: 'PP Neue Montreal';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/pp-neue-montreal/PPNeueMontreal-Light.woff2) format('woff2');
}

:root {
  --anpai-font-ui: 'PP Neue Montreal';
  --anpai-font-display: 'PP Neue Montreal';
  --anpai-navy: #002758;
  --anpai-navy-soft: #0b3a71;
  --anpai-cobalt: #2456bf;
  --anpai-ice: #e8f0fa;
  --anpai-paper: #f5f8fc;
  --anpai-white: #ffffff;
  --anpai-ink: #071a31;
  --anpai-line: rgba(0, 39, 88, 0.14);
  --anpai-tracking-text: -0.02em;
  --anpai-tracking-display: -0.02em;
  --anpai-tracking-secondary: -0.02em;
  --anpai-tracking-navigation: -0.02em;
  --anpai-tracking-interface: -0.02em;
  --anpai-tracking-label: -0.02em;
  --anpai-tracking-page-title: -0.02em;
  --anpai-tracking-monumental: 0.008em;
  --anpai-weight-copy: 350;
  --anpai-weight-navigation: 350;
  --anpai-weight-interface: 350;
  --anpai-leading-copy: 1.2;
  --anpai-leading-display: 1.2;
}

html,
body,
body :where(*) {
  font-family: var(--anpai-font-ui) !important;
  font-synthesis: none;
  font-optical-sizing: auto;
}

svg :is(text, tspan),
button,
input,
select,
textarea,
option,
::placeholder {
  font-family: var(--anpai-font-ui) !important;
}

body {
  letter-spacing: var(--anpai-tracking-text) !important;
}

/* The source templates compressed tracking on many nested elements. Reset the
   inherited Webflow values first, then rebuild the hierarchy below with calm,
   readable institutional spacing. */
body :where(*) {
  letter-spacing: var(--anpai-tracking-text) !important;
  font-weight: var(--anpai-weight-copy) !important;
  line-height: var(--anpai-leading-copy) !important;
}

body :is(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .h1,
  .h2,
  .h3,
  .h4,
  .md_txt,
  .md_txt_about,
  .md_partners,
  .md_ch,
  .product_title_card,
  .article_title,
  .highlight_title,
  .title_news_bot,
  .title_next,
  .title_next_article,
  .title_subscribe,
  .title_active,
  .title_point,
  .title_point_ab,
  .position_title,
  .mission_txt,
  .quote_testimonial,
  .card_title,
  .number_count,
  .number_card,
  .point_number,
  .op_p,
  .p_specific_about
) {
  font-family: var(--anpai-font-display) !important;
  font-weight: var(--anpai-weight-copy) !important;
  letter-spacing: var(--anpai-tracking-display) !important;
  line-height: var(--anpai-leading-display) !important;
}

/* Secondary editorial titles need less visual density than hero and section
   statements. Keep the same family, but relax the tracking so they read as
   institutional hierarchy rather than bold marketing copy. */
body :is(
  .md_txt,
  .md_txt_about,
  .md_partners,
  .md_ch,
  .h2.about_spec,
  .h2.small,
  .h2.people_spec,
  .heading_means .h2
) {
  font-weight: var(--anpai-weight-copy) !important;
  letter-spacing: var(--anpai-tracking-secondary) !important;
}

body :is(
  p,
  .p_gen,
  .text_desc,
  .p_ch,
  .p_about_ch,
  .p_partners_gen,
  .desc_point,
  .desc_point_ab,
  .mission_content,
  .paragraph_last,
  .text_news
) {
  font-family: var(--anpai-font-ui) !important;
  font-weight: var(--anpai-weight-copy) !important;
  letter-spacing: var(--anpai-tracking-text) !important;
  line-height: var(--anpai-leading-copy) !important;
}

body :is(
  .caption,
  .tag_txt,
  .tagline_product,
  .news_tag,
  .tagline_active,
  .name_desc,
  .member_name,
  .member_info,
  .name_sub,
  .list_education,
  .title_info_list,
  .right_capt,
  .left_capt,
  .list_title,
  .title_card_temp,
  .desc_card_temp,
  .caption_box,
  .title_menu,
  .title_side,
  .footer_last_link,
  .tagline_active,
  .cta-cap
) {
  font-family: var(--anpai-font-ui) !important;
  font-weight: var(--anpai-weight-interface) !important;
  letter-spacing: var(--anpai-tracking-label) !important;
  line-height: 1.2 !important;
}

body :is(
  .link_header,
  .mobile_link,
  .link_sub,
  .footer_link,
  .button,
  .button_primary,
  .subscribe_button,
  .chip_box,
  .fixed_button,
  button,
  input,
  select,
  textarea
) {
  font-family: var(--anpai-font-ui) !important;
  font-weight: var(--anpai-weight-interface) !important;
  letter-spacing: var(--anpai-tracking-interface) !important;
  line-height: 1.2 !important;
}

/* Navigation lists are reference material, not calls to action. A light weight
   keeps long institutional menus calm and lets section labels provide the
   hierarchy. Header navigation and buttons retain a firmer interface weight. */
body :is(
  .link_header,
  .mobile_link,
  .link_sub,
  .footer_link,
  .footer_last_link,
  .last_cap_link
) {
  font-weight: var(--anpai-weight-navigation) !important;
  letter-spacing: var(--anpai-tracking-navigation) !important;
}

body :is(.title_menu, .title_side) {
  letter-spacing: var(--anpai-tracking-navigation) !important;
}

body :is(
  .products_heading .h1,
  .legals_heading .h1,
  .cards_about_heading .h2,
  .heading_means .h2,
  .heading_open .h2,
  .h_people .h2
) {
  letter-spacing: var(--anpai-tracking-page-title) !important;
}

/* Augen uses its Light cut only for rare monumental editorial statements. */
body :is(
  .products_heading .h1,
  .news_heading .h1,
  .blog_heading .h1
) {
  font-weight: 300 !important;
  letter-spacing: var(--anpai-tracking-monumental) !important;
}

@media (max-width: 991px) {
  :root {
    --anpai-leading-display: 1.2;
  }
}

/* Shared ANPAI identity. The mirrored templates keep their original geometry;
   this layer gives every route the same institutional surface system. */
.header .logotype {
  width: clamp(7.75rem, 11vw, 9.5rem) !important;
  height: 2.85rem !important;
}

.header .svg_logo {
  width: 100% !important;
  height: 100% !important;
  background-image: url("/anpai-logo-lockup-transparent.png") !important;
  background-position: left center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  filter: none !important;
  mix-blend-mode: multiply;
}

/* Match the Ecosistema navigation treatment whenever the fixed header crosses
   an ANPAI-blue surface. The stronger selector intentionally wins over the
   light-theme inversions embedded in individual mirrored pages. */
@media (min-width: 992px) {
  .header {
    transition:
      background-color 420ms cubic-bezier(0.22, 1, 0.36, 1),
      border-color 420ms cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  .header .menu,
  .header .right_menu {
    transition:
      background-color 420ms cubic-bezier(0.22, 1, 0.36, 1),
      border-color 420ms cubic-bezier(0.22, 1, 0.36, 1),
      -webkit-backdrop-filter 420ms cubic-bezier(0.22, 1, 0.36, 1),
      backdrop-filter 420ms cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  .header:not(.is-dark-surface) {
    background-color: var(--anpai-white) !important;
    border-bottom-color: rgba(0, 39, 88, 0.08) !important;
    color: var(--anpai-navy) !important;
  }

  .header:not(.is-dark-surface) :is(.menu, .right_menu) {
    background-color: rgba(0, 39, 88, 0.07) !important;
    border-color: rgba(0, 39, 88, 0.08) !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  .header:not(.is-dark-surface) .link_header {
    background-color: transparent !important;
    color: var(--anpai-navy) !important;
  }

  .header:not(.is-dark-surface) .link_header.w--current {
    background-color: var(--anpai-white) !important;
    color: var(--anpai-navy) !important;
  }

  .header:not(.is-dark-surface) .button_primary {
    background-color: var(--anpai-navy) !important;
    color: var(--anpai-white) !important;
  }

  .header:not(.is-dark-surface) .button_primary .text_header {
    color: var(--anpai-white) !important;
  }

  .header:not(.is-dark-surface) .button_primary .icon_arrow {
    background-color: var(--anpai-white) !important;
  }

  .header:not(.is-dark-surface) .button_primary .arrow_primary {
    background-image: url("/cdn.prod.website-files.com/697b3b78220c15e1a8ecaeb2/69e8ea07f220044019b7fd03_arrow-blue.svg") !important;
    filter: none !important;
  }

  .header:not(.is-dark-surface) .svg_logo {
    filter: none !important;
    mix-blend-mode: multiply !important;
  }

  .header.is-dark-surface {
    --blue: #002758;
    --white: #ffffff;
    background-color: transparent !important;
    border-bottom-color: transparent !important;
    color: #ffffff !important;
  }

  .header.is-dark-surface .wrapper_header {
    color: #ffffff !important;
  }

  .header.is-dark-surface .menu,
  .header.is-dark-surface .right_menu {
    background-color: rgba(0, 0, 0, 0.28) !important;
    border-color: transparent !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: blur(7px) !important;
    backdrop-filter: blur(7px) !important;
  }

  .header.is-dark-surface .link_header {
    background-color: transparent !important;
    color: #ffffff !important;
  }

  .header.is-dark-surface .link_header.w--current {
    background-color: #ffffff !important;
    color: #002758 !important;
  }

  .header.is-dark-surface .button_primary {
    background-color: #ffffff !important;
    color: #002758 !important;
  }

  .header.is-dark-surface .button_primary .text_header {
    color: #002758 !important;
  }

  .header.is-dark-surface .button_primary .icon_arrow {
    background-color: #002758 !important;
  }

  .header.is-dark-surface .button_primary .arrow_primary {
    background-image: url("/cdn.prod.website-files.com/69e74ca8162801f4b950053a/69e74fc05884ed1de7bac5d3_arrow.png") !important;
    filter: none !important;
  }

  .header.is-dark-surface .svg_logo {
    filter: brightness(0) invert(1) !important;
    mix-blend-mode: normal !important;
  }
}

/* White institutional footer shared by the complete site. */
.footer,
.footer .wrapper_footer {
  background-color: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
}

.footer :is(
  .title_subscribe,
  .title_menu,
  .footer_link,
  .footer_last_link,
  .caption_box,
  .last_cap_link,
  .low_op,
  .thanks_footer
) {
  color: var(--anpai-navy) !important;
}

.footer .input_field {
  background-color: var(--anpai-white) !important;
  border-color: rgba(0, 39, 88, 0.55) !important;
  color: var(--anpai-navy) !important;
}

.footer .input_field::placeholder {
  color: rgba(0, 39, 88, 0.65) !important;
}

.footer .input_field:focus-visible {
  border-color: var(--anpai-navy) !important;
  outline: 2px solid var(--anpai-navy) !important;
  outline-offset: 3px;
}

.footer .subscribe_button {
  background-color: var(--anpai-navy) !important;
  color: var(--anpai-white) !important;
}

.footer .last_line {
  border-color: var(--anpai-line) !important;
}

.footer :is(.caption_box, .footer_last_link) {
  opacity: 0.72 !important;
}

.footer .caption_box :is(.all_rights, .low_op, .last_cap_link) {
  opacity: 1 !important;
}

.footer .logo_footer .image {
  content: url("/anpai-logo-lockup-transparent.png");
  display: block;
  width: min(100%, 34rem) !important;
  height: auto !important;
  filter: none !important;
  mix-blend-mode: multiply;
  object-fit: contain;
  object-position: left center;
}

/* Associazione: replaces the inherited black chapter with an editorial field
   and restrained institutional cards. */
.black_cards {
  background-color: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
}

.black_cards :is(
  .h2,
  .p_specific_about,
  .title_point_ab,
  .desc_point_ab,
  .p_gen,
  .tag_txt,
  .mission_txt
) {
  color: var(--anpai-navy) !important;
}

.black_cards .point_about {
  background-color: var(--anpai-paper) !important;
  border: 1px solid var(--anpai-line) !important;
}

.black_cards .tag_white {
  background-color: var(--anpai-navy) !important;
  color: var(--anpai-white) !important;
}

.black_cards :is(.cube_tag, .cube_career) {
  background-color: var(--anpai-navy) !important;
}

.black_cards .mission_part {
  border-color: var(--anpai-line) !important;
}

/* Aree di attivita: white editorial canvas, blue programme cards. */
body.products_page,
.products_page .products_scroll,
.products_page .product_transition {
  background-color: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
}

.products_page .products_heading {
  color: var(--anpai-navy) !important;
}

.products_page .tricks-slider_wrap {
  border: 1px solid rgba(0, 39, 88, 0.12) !important;
  box-shadow: 0 1.5rem 4rem rgba(0, 39, 88, 0.1) !important;
}

.products_page .bar_active {
  background-color: var(--anpai-navy) !important;
}

.products_page .bar_back {
  background-color: rgba(0, 39, 88, 0.18) !important;
}

/* Individual activity pages: light information architecture followed by the
   existing ANPAI-blue principles chapter. */
.hero_section.product_template_page {
  background-color: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
}

.hero_section.product_template_page :is(
  .h1,
  .p_gen,
  .left_capt,
  .right_capt,
  .title_cap,
  .text_cap
) {
  color: var(--anpai-navy) !important;
}

.hero_section.product_template_page .box_short {
  background-color: var(--anpai-paper) !important;
  border: 1px solid var(--anpai-line) !important;
}

.opertional {
  background-color: var(--anpai-paper) !important;
  color: var(--anpai-navy) !important;
}

.opertional :is(
  .tag_txt,
  .h2,
  .op_p,
  .list_title
) {
  color: var(--anpai-navy) !important;
}

.opertional :is(.cube_tag, .cube_career) {
  background-color: var(--anpai-navy) !important;
}

.opertional .list_capabilities {
  border-color: var(--anpai-line) !important;
}

/* Legal information is a reading surface, never a campaign surface. */
.legals {
  background-color: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
}

.legals :is(
  .h1,
  .h2,
  .p_gen,
  .md_txt,
  .update_date,
  .body_legals,
  .content_legals
) {
  color: var(--anpai-navy) !important;
}

.legals .update_date {
  color: rgba(0, 39, 88, 0.64) !important;
}

.legals .legals_part {
  border-color: var(--anpai-line) !important;
}

/* The source template carried logos of organisations that are not declared
   ANPAI partners. Keep the kinetic grids, but turn them into honest categories
   of institutional interlocution. */
#built-for .partner_logo.partners_home,
.partners_main .partners_logos {
  display: none !important;
}

#built-for .partner_box,
.partners_main .partner_box_logo {
  position: relative;
  display: flex !important;
  align-items: flex-end;
  justify-content: flex-start;
  min-width: 0;
  padding: clamp(1rem, 1.8vw, 1.75rem) !important;
  overflow: hidden;
}

#built-for .partner_link_external,
.partners_main .partner_link {
  text-decoration: none !important;
}

#built-for .partner_box::before,
.partners_main .partner_box_logo::before {
  position: relative;
  z-index: 1;
  max-width: 92%;
  color: var(--anpai-white);
  font-family: var(--anpai-font-display) !important;
  font-size: clamp(1rem, 1.55vw, 1.7rem);
  font-weight: 300;
  letter-spacing: var(--anpai-tracking-page-title) !important;
  line-height: 1.05;
  text-decoration: none !important;
}

#built-for .partner_box::after,
.partners_main .partner_box_logo::after {
  content: "AMBITO DI INTERLOCUZIONE";
  position: absolute;
  top: clamp(0.9rem, 1.4vw, 1.35rem);
  left: clamp(1rem, 1.8vw, 1.75rem);
  color: rgba(255, 255, 255, 0.68);
  font-family: var(--anpai-font-ui) !important;
  font-size: clamp(0.52rem, 0.52vw, 0.68rem);
  font-weight: var(--anpai-weight-interface);
  letter-spacing: 0.09em;
  line-height: 1;
}

#built-for .partner_item:nth-child(1) .partner_box::before,
.partners_main .partner_item_page:nth-child(1) .partner_box_logo::before {
  content: "ISTITUZIONI PUBBLICHE";
}

#built-for .partner_item:nth-child(2) .partner_box::before,
.partners_main .partner_item_page:nth-child(2) .partner_box_logo::before {
  content: "UNIVERSITÀ";
}

#built-for .partner_item:nth-child(3) .partner_box::before,
.partners_main .partner_item_page:nth-child(3) .partner_box_logo::before {
  content: "CENTRI DI RICERCA";
}

#built-for .partner_item:nth-child(4) .partner_box::before,
.partners_main .partner_item_page:nth-child(4) .partner_box_logo::before {
  content: "PROFESSIONISTI";
}

#built-for .partner_item:nth-child(5) .partner_box::before,
.partners_main .partner_item_page:nth-child(5) .partner_box_logo::before {
  content: "IMPRESE";
}

#built-for .partner_item:nth-child(6) .partner_box::before,
.partners_main .partner_item_page:nth-child(6) .partner_box_logo::before {
  content: "PUBBLICA AMMINISTRAZIONE";
}

#built-for .partner_item:nth-child(7) .partner_box::before,
.partners_main .partner_item_page:nth-child(7) .partner_box_logo::before {
  content: "ENTI DI FORMAZIONE";
}

#built-for .partner_item:nth-child(8) .partner_box::before,
.partners_main .partner_item_page:nth-child(8) .partner_box_logo::before {
  content: "ASSOCIAZIONI";
}

.partners_main .partner_item_page:nth-child(9) .partner_box_logo::before {
  content: "TERRITORI";
}

.partners_main .partner_item_page:nth-child(10) .partner_box_logo::before {
  content: "SOCIETÀ CIVILE";
}

#built-for .partner_link_external:focus-visible,
.partners_main .partner_link:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 3px !important;
}

/* Shared keyboard and carousel states. */
.splide__pagination__page:not(.is-active) {
  opacity: 0.55 !important;
}

.splide__arrow:focus-visible,
.flickity-button:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 3px !important;
}

@media (max-width: 991px) {
  .header {
    border-bottom: 1px solid rgba(0, 39, 88, 0.08) !important;
    transition:
      background-color 420ms cubic-bezier(0.22, 1, 0.36, 1),
      border-color 420ms cubic-bezier(0.22, 1, 0.36, 1),
      -webkit-backdrop-filter 420ms cubic-bezier(0.22, 1, 0.36, 1),
      backdrop-filter 420ms cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  .header:not(.is-dark-surface) {
    background-color: var(--anpai-white) !important;
    border-bottom-color: rgba(0, 39, 88, 0.08) !important;
    color: var(--anpai-navy) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  .header:not(.is-dark-surface) .svg_logo {
    filter: none !important;
    mix-blend-mode: multiply !important;
  }

  .header:not(.is-dark-surface) :is(.open_txt, .close_txt) {
    color: var(--anpai-navy) !important;
  }

  .header:not(.is-dark-surface) .cube_hamb {
    background-color: var(--anpai-navy) !important;
  }

  .header.is-dark-surface {
    background-color: rgba(0, 39, 88, 0.78) !important;
    border-bottom-color: rgba(255, 255, 255, 0.14) !important;
    color: var(--anpai-white) !important;
    -webkit-backdrop-filter: blur(14px) saturate(125%) !important;
    backdrop-filter: blur(14px) saturate(125%) !important;
  }

  .header.is-dark-surface .svg_logo {
    filter: brightness(0) invert(1) !important;
    mix-blend-mode: normal !important;
  }

  .header.is-dark-surface :is(.open_txt, .close_txt) {
    color: var(--anpai-white) !important;
  }

  .header.is-dark-surface .cube_hamb {
    background-color: var(--anpai-white) !important;
  }

  .header .logotype {
    width: 8.4rem !important;
    height: 2.75rem !important;
  }

  .footer .logo_footer .image {
    width: min(100%, 17rem) !important;
  }
}
