/*
 * ANPAI Premium V2
 * Additive visual-system layer for the mirrored ANPAI/Webflow runtime.
 * Load after every page-level and Webflow stylesheet.
 *
 * Designer's intent: retain the existing technical motion grammar while
 * shifting the reading toward a contemporary Italian institution: clear,
 * calm, editorial and evidence-led.
 */

:root {
  color-scheme: light;
  --anpai-navy: #002758;
  --anpai-navy-deep: #001d43;
  --anpai-navy-soft: #0e3a6d;
  --anpai-blue: #1859a6;
  --anpai-focus: #6aa9ff;
  --anpai-paper: #fbfcfe;
  --anpai-white: #ffffff;
  --anpai-mist: #f1f5fa;
  --anpai-line: rgba(0, 39, 88, 0.14);
  --anpai-line-strong: rgba(0, 39, 88, 0.24);
  --anpai-muted: #496583;
  --anpai-on-dark-muted: rgba(255, 255, 255, 0.74);
  --anpai-font: "PP Neue Montreal";
  --anpai-type-12: 12px;
  --anpai-type-14: 14px;
  --anpai-type-16: 16px;
  --anpai-type-18: 18px;
  --anpai-type-25: 25px;
  --anpai-type-35: 35px;
  --anpai-type-display: 9.722vw;
  --anpai-weight-book: 350;
  --anpai-weight-light: 300;
  --anpai-tracking: -0.02em;
  --anpai-display-tracking: 0.008em;
  --anpai-leading: 1.2;
  --anpai-radius-xs: 2px;
  --anpai-radius-sm: 4px;
  --anpai-shadow-1: 0 1px 0 rgba(0, 39, 88, 0.08),
    0 10px 28px rgba(0, 39, 88, 0.055);
  --anpai-shadow-2: 0 1px 0 rgba(0, 39, 88, 0.1),
    0 18px 52px rgba(0, 39, 88, 0.09);
  --anpai-content: 92rem;
  --anpai-reading: 68ch;
  --anpai-header-height: 4.5rem;
  --anpai-section-space: clamp(5rem, 8vw, 9rem);
  --anpai-gutter: clamp(1.25rem, 3.4vw, 3.75rem);
  --anpai-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

html {
  scroll-padding-top: calc(var(--anpai-header-height) + 1rem);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html,
body {
  max-width: 100%;
  overflow-x: clip !important;
}

body {
  background: var(--anpai-paper);
  color: var(--anpai-navy);
  font-family: var(--anpai-font);
  /* Preserve ANPAI's em-based layout and ScrollTrigger geometry. Text leaf
     sizes are set explicitly below, while 1vw keeps spacing, cards and pin
     travel identical to the source at every desktop width. */
  font-size: 1vw;
  font-weight: var(--anpai-weight-book);
  line-height: var(--anpai-leading);
  letter-spacing: var(--anpai-tracking);
  font-synthesis: none;
}

/* Augen.pro parity: one family, two weights, one ordinary text rhythm. */
body *,
body *::before,
body *::after,
button,
input,
textarea,
select,
option,
svg text,
svg tspan {
  font-family: var(--anpai-font) !important;
  font-weight: var(--anpai-weight-book) !important;
  line-height: var(--anpai-leading) !important;
  letter-spacing: var(--anpai-tracking) !important;
}

::selection {
  background: var(--anpai-navy);
  color: var(--anpai-white);
}

img,
video,
svg,
canvas {
  max-width: 100%;
}

/* Typography ------------------------------------------------------------ */

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,
    .news_title_outside,
    .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
  ),
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,
    .news_title_outside,
    .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) !important;
  font-weight: var(--anpai-weight-light) !important;
  line-height: var(--anpai-leading) !important;
  letter-spacing: var(--anpai-tracking);
  text-wrap: balance;
}

.h1 {
  font-size: var(--anpai-type-35);
}

.h2 {
  font-size: var(--anpai-type-35);
}

body :is(
    .hero .h1,
    .heading_contact .h1,
    .news_page > .wrapper_gen .h1,
    .articles > .wrapper_gen .h1,
    .hero_about .h1,
    .hero_partners .h1,
    .hero_career .h1
  ),
body :is(
    .hero .h1,
    .heading_contact .h1,
    .news_page > .wrapper_gen .h1,
    .articles > .wrapper_gen .h1,
    .hero_about .h1,
    .hero_partners .h1,
    .hero_career .h1
  ) * {
  font-size: var(--anpai-type-35) !important;
  font-weight: var(--anpai-weight-light) !important;
  line-height: var(--anpai-leading) !important;
  letter-spacing: var(--anpai-tracking) !important;
}

/* Fixed Augen scale. The source templates express much of their type in em;
   these leaf-level assignments stop that inherited scale from multiplying at
   narrow breakpoints while leaving layout and animation wrappers untouched. */
body :is(p, li, dt, dd, figcaption) {
  font-size: var(--anpai-type-16) !important;
}

body :is(h1, .h1, h2, .h2) {
  font-size: var(--anpai-type-35) !important;
}

body :is(h3, .h3, h4, .h4) {
  font-size: var(--anpai-type-25) !important;
}

/* Augen reserves its 9.722vw display for deliberately monumental editorial
   moments. ANPAI uses it only on the large section/page markers, never on the
   hero statement or navigation. */
body :is(
    .h1.bigger,
    .h1.newsrooms_external,
    .h1.articles_all,
    .h2.products_heading,
    .h2.partners_main_heading
  ),
body :is(
    .h1.bigger,
    .h1.newsrooms_external,
    .h1.articles_all,
    .h2.products_heading,
    .h2.partners_main_heading
  ) * {
  font-size: clamp(4.5rem, var(--anpai-type-display), 8.75rem) !important;
  font-weight: var(--anpai-weight-light) !important;
  line-height: var(--anpai-leading) !important;
  letter-spacing: var(--anpai-display-tracking) !important;
}

body :is(
    .caption,
    .tag_txt,
    .tagline_product,
    .news_tag,
    .tagline_active,
    .tag_link,
    .tag_white,
    .area_label,
    .name_desc,
    .member_name,
    .member_info,
    .name_sub,
    .list_education,
    .title_info_list,
    .right_capt,
    .left_capt,
    .list_title,
    .caption_box,
    .title_menu,
    .title_side,
    .footer_last_link,
    .last_cap_link,
    .all_rights,
    .low_op,
    .thanks_footer,
    .share_txt,
    .sub_caption,
    .count_items,
    .cta-cap
  ),
body :is(.caption_box, .title_menu, .title_side, .sub_caption, .count_items) * {
  font-size: var(--anpai-type-12) !important;
}

body :is(
    .link_header,
    .link_sub,
    .footer_link,
    .button,
    .button_primary,
    .subscribe_button,
    .submit_button,
    .fixed_button,
    .filters_button,
    .plus_button,
    .arrow_link,
    .open_txt,
    .close_txt,
    .text_header,
    .floating_label,
    .checkbox_form,
    .checkbox,
    .checkbox_txt
  ),
body :is(
    .link_header,
    .link_sub,
    .footer_link,
    .button,
    .button_primary,
    .fixed_button,
    .filters_button,
    .plus_button,
    .arrow_link,
    .open_txt,
    .close_txt,
    .text_header,
    .checkbox_form
  ) * {
  font-size: var(--anpai-type-14) !important;
}

body :is(
    button,
    input,
    textarea,
    select,
    option,
    label,
    .p_gen,
    .p_ch,
    .p_about_ch,
    .p_partners_gen,
    .text_desc,
    .product_desc,
    .desc_point,
    .desc_point_ab,
    .mission_content,
    .paragraph_last,
    .text_news,
    .text_news_link,
    .title_filters,
    .location,
    .form_input,
    .input_field,
    .title_card_temp,
    .title_cap
  ) {
  font-size: var(--anpai-type-16) !important;
}

body :is(.desc_card_temp, .text_cap) {
  font-size: var(--anpai-type-14) !important;
}

body :is(
    .title_cap,
    .text_cap,
    .title_card_temp,
    .desc_card_temp,
    .list_title,
    .text_desc,
    .product_desc,
    .p_gen
  ),
body :is(
    .title_cap,
    .text_cap,
    .title_card_temp,
    .desc_card_temp,
    .list_title,
    .text_desc,
    .product_desc,
    .p_gen
  ) * {
  text-transform: none !important;
}

body :is(.text_news_link) {
  font-size: var(--anpai-type-14) !important;
}

body :is(
    .product_title_card,
    .article_title,
    .news_title_outside,
    .contact_link,
    .title_point,
    .number_card,
    .point_number,
    .op_p,
    .p_specific_about
  ) {
  font-size: var(--anpai-type-18) !important;
}

body .contact_link * {
  font-size: var(--anpai-type-18) !important;
}

body .news_title_outside * {
  font-size: var(--anpai-type-18) !important;
}

body :is(
    .title_active,
    .title_next,
    .title_next_article,
    .position_title,
    .card_title,
    .title_form,
    .title_point_ab,
    .md_ch
  ) {
  font-size: var(--anpai-type-25) !important;
}

body :is(
    .md_txt,
    .md_txt_about,
    .md_partners,
    .highlight_title,
    .mission_txt,
    .quote_testimonial,
    .txt_title,
    .title_contact,
    .title_get,
    .title_subscribe,
    .number_count
  ) {
  font-size: var(--anpai-type-35) !important;
}

body :is(
    .title_card_temp,
    .title_cap,
    .title_active,
    .title_next,
    .title_next_article,
    .title_form,
    .title_contact,
    .title_get,
    .txt_title
  ) {
  font-weight: var(--anpai-weight-light) !important;
}

.h2.small,
.h2.smaller,
.h2.smallest,
.h2.super-super,
.h2.legals_small {
  letter-spacing: var(--anpai-tracking);
  line-height: var(--anpai-leading);
}

.h2.smallest,
.h2.legals_small {
  font-size: var(--anpai-type-25) !important;
}

.h2.super_small {
  font-size: var(--anpai-type-18) !important;
  letter-spacing: var(--anpai-tracking);
}

:where(
    .p_gen,
    .md_txt,
    .p_ch,
    .desc_point,
    .desc_point_ab,
    .text_desc,
    .product_desc,
    .paragraph_last,
    .article_content,
    .location
  ) {
  font-family: var(--anpai-font);
  font-size: var(--anpai-type-16);
  font-weight: var(--anpai-weight-book);
  line-height: var(--anpai-leading);
  letter-spacing: var(--anpai-tracking);
}

:where(.tag_txt, .news_tag, .tagline_product, .tag_link, .area_label) {
  font-family: var(--anpai-font);
  font-size: var(--anpai-type-12);
  font-weight: var(--anpai-weight-book);
  line-height: var(--anpai-leading);
  letter-spacing: var(--anpai-tracking);
  text-transform: uppercase;
}

.article_content {
  max-width: var(--anpai-reading);
  color: var(--anpai-navy-deep);
}

.article_content :where(p, li) {
  font-size: var(--anpai-type-18) !important;
  line-height: var(--anpai-leading);
}

.article_content :is(em, strong) {
  font-size: inherit !important;
}

.article_content :where(h2, h3) {
  margin-block: 2.8em 0.75em;
  color: var(--anpai-navy);
}

.article_content h2 {
  font-size: var(--anpai-type-25) !important;
}

.article_content h3 {
  font-size: var(--anpai-type-18) !important;
}

.article_content blockquote {
  margin-block: clamp(2rem, 4vw, 4.5rem);
  padding: 0.25rem 0 0.25rem clamp(1.25rem, 2.4vw, 2.5rem);
  border-left: 2px solid var(--anpai-blue);
  color: var(--anpai-navy);
  font-family: var(--anpai-font);
  font-size: var(--anpai-type-35) !important;
  font-weight: var(--anpai-weight-light) !important;
  line-height: var(--anpai-leading);
  letter-spacing: var(--anpai-tracking);
}

.article_content a,
.body_legals a,
.p_gen a {
  color: inherit;
  text-decoration-color: rgba(0, 39, 88, 0.42);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

/* Article share bar lives on a navy control surface. */
.social_share .share_txt,
.social_share .share_txt * {
  color: var(--anpai-white) !important;
}

/* Focus, target size and skip-link readiness ---------------------------- */

:where(a, button, input, textarea, select, [role="button"], [tabindex]):focus-visible {
  outline: 3px solid var(--anpai-focus) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px var(--anpai-white), 0 0 0 6px var(--anpai-navy) !important;
}

.skip-link,
.skip-to-content {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 10000;
  min-height: 2.75rem;
  padding: 0.75rem 1rem;
  font-size: var(--anpai-type-14) !important;
  background: var(--anpai-white);
  color: var(--anpai-navy);
  border: 1px solid var(--anpai-navy);
  border-radius: var(--anpai-radius-xs);
  transform: translateY(-160%);
  transition: transform 160ms var(--anpai-ease);
}

.skip-link:focus,
.skip-to-content:focus {
  transform: translateY(0);
}

:where(.button_primary, .button, .arrow_link, .submit_button, .subscribe_button) {
  min-height: 2.75rem;
  border-radius: var(--anpai-radius-xs);
}

/* Header: a single dependable paper-glass state on every surface -------- */

body :is(
    .header,
    .header.is-dark-surface,
    .header.is-light-section,
    .header.is-dark-surface.is-light-section
  ) {
  min-height: var(--anpai-header-height);
  background: rgba(251, 252, 254, 0.9) !important;
  color: var(--anpai-navy) !important;
  border-bottom: 1px solid var(--anpai-line) !important;
  box-shadow: 0 5px 24px rgba(0, 39, 88, 0.045);
  -webkit-backdrop-filter: blur(18px) saturate(128%);
  backdrop-filter: blur(18px) saturate(128%);
}

body :is(
    .header,
    .header.is-dark-surface,
    .header.is-light-section,
    .header.is-dark-surface.is-light-section
  ) .wrapper_header {
  padding-inline: var(--anpai-gutter);
  color: var(--anpai-navy) !important;
}

body :is(
    .header,
    .header.is-dark-surface,
    .header.is-light-section,
    .header.is-dark-surface.is-light-section
  ) :is(.menu, .right_menu) {
  gap: 0.1rem;
  background: rgba(0, 39, 88, 0.045) !important;
  border: 1px solid rgba(0, 39, 88, 0.09) !important;
  border-radius: var(--anpai-radius-sm);
  box-shadow: none !important;
}

body :is(
    .header,
    .header.is-dark-surface,
    .header.is-light-section,
    .header.is-dark-surface.is-light-section
  ) :is(.link_header, .hamburger_link, .open_txt, .close_txt) {
  min-height: 2.75rem;
  color: var(--anpai-navy) !important;
  font-family: var(--anpai-font);
  font-size: var(--anpai-type-14);
  font-weight: var(--anpai-weight-book);
  letter-spacing: var(--anpai-tracking);
}

.header .link_header {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding-inline: 0.9rem;
  border-radius: var(--anpai-radius-xs);
  transition: color 180ms ease, background-color 180ms ease;
}

.header .link_header > div,
.header .button_primary .text_header {
  overflow: hidden !important;
  white-space: nowrap;
}

.header .link_header:hover {
  background: rgba(0, 39, 88, 0.07);
}

.header .link_header.w--current {
  background: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
  box-shadow: 0 1px 0 rgba(0, 39, 88, 0.08);
}

body :is(
    .header,
    .header.is-dark-surface,
    .header.is-light-section,
    .header.is-dark-surface.is-light-section
  ) .button_primary {
  background: var(--anpai-navy) !important;
  color: var(--anpai-white) !important;
  border: 1px solid var(--anpai-navy) !important;
}

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

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

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

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

.header .cube_hamb {
  background: var(--anpai-navy) !important;
}

.mobile_menu {
  background: rgba(251, 252, 254, 0.985) !important;
  color: var(--anpai-navy) !important;
  -webkit-backdrop-filter: blur(20px) saturate(125%);
  backdrop-filter: blur(20px) saturate(125%);
}

.mobile_menu :where(.mobile_link, .link_sub, .title_side) {
  color: var(--anpai-navy) !important;
}

.mobile_menu .splitter_mobile {
  background: var(--anpai-line-strong) !important;
}

/* Remove the last source-black surfaces without flattening the intended
   paper/navy alternation of the ANPAI adaptation. */
.black_cards,
.hero_section {
  background-color: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
}

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

.product_transition,
.products_scroll {
  background-color: var(--anpai-navy) !important;
}

/* Shared surfaces and controls ----------------------------------------- */

.light--theme,
body.white,
.news_page,
.articles,
.legals,
.products_page {
  background-color: var(--anpai-paper);
}

/* Dark institutional hero: preserve the intended white-on-navy contrast. */
.partners_hero .hero_partners :is(.h1, .p_gen),
.partners_hero .hero_partners :is(.h1, .p_gen) * {
  color: var(--anpai-white) !important;
}

/* The baseline placed these blocks on blue. ANPAI moves their reading
   surfaces to paper, so only the local foregrounds need to follow. */
.hero_about .about_ANPAI .small_heading,
.hero_about .about_ANPAI .small_heading * {
  color: var(--anpai-navy) !important;
}

#partners-main .partners_main_heading,
#partners-main .partners_main_heading * {
  color: var(--anpai-navy) !important;
}

#partners-main .partner_box_logo::before {
  color: var(--anpai-navy) !important;
}

#partners-main .partner_box_logo::after {
  color: var(--anpai-muted) !important;
}

:where(.card_box, .product_card, .article_item, .newsroom_item, .point_item) {
  border-color: var(--anpai-line) !important;
  border-radius: var(--anpai-radius-xs);
}

/* Navy content cards inherited light-page text colours from the source
   template. Keep their internal hierarchy consistently white-on-navy. */
.properties :is(
    .number_card,
    .title_card_temp,
    .desc_card_temp
  ),
.properties :is(
    .number_card,
    .title_card_temp,
    .desc_card_temp
  ) *,
.partners_cards_flex .card_partner :is(.number_card, .card_title, .p_gen),
.partners_cards_flex .card_partner :is(.number_card, .card_title, .p_gen) * {
  color: var(--anpai-white) !important;
}

.properties :is(.properties_heading, .properties_heading *, .h2, .h2 *) {
  color: var(--anpai-white) !important;
}

/* The number sits on its own white tile, unlike the remaining card copy. */
.properties .number_card,
.properties .number_card * {
  color: var(--anpai-navy) !important;
}

.partners_cards_flex .card_partner .number_card,
.partners_cards_flex .card_partner .number_card * {
  color: var(--anpai-navy) !important;
}

.articles .highlight_title,
.articles .highlight_title * {
  color: var(--anpai-white) !important;
}

.points_list .point_number,
.points_list .point_number * {
  color: var(--anpai-white) !important;
}

.contact :is(.contact_link, .contact_link *) {
  color: var(--anpai-navy) !important;
}

:where(.article_item, .newsroom_item, .card_box):hover {
  box-shadow: var(--anpai-shadow-2);
}

:where(.article_link, .next_link, .link_product, .partner_link, .position_item) {
  transition: box-shadow 240ms var(--anpai-ease),
    border-color 240ms var(--anpai-ease), background-color 240ms var(--anpai-ease);
}

:where(.news_tag, .tag_link, .tagline_product) {
  border-radius: 0;
}

:where(input, textarea, select, .form_input, .input_field) {
  min-height: 3rem;
  border: 1px solid var(--anpai-line-strong) !important;
  border-radius: var(--anpai-radius-xs) !important;
  font-family: var(--anpai-font);
  font-size: var(--anpai-type-16);
  line-height: var(--anpai-leading);
}

:where(.form_input, .input_field) {
  background: var(--anpai-white) !important;
  color: var(--anpai-navy) !important;
}

.floating_label,
.form_input::placeholder,
.input_field::placeholder {
  color: var(--anpai-muted) !important;
}

.checkbox_form {
  background: var(--anpai-mist) !important;
  color: var(--anpai-navy) !important;
  border: 1px solid var(--anpai-line-strong) !important;
}

.checkbox_form:has(input:checked) {
  background: var(--anpai-navy) !important;
  color: var(--anpai-white) !important;
}

.checkbox_form:has(input:focus-visible),
.chip_box:has(input:focus-visible) {
  outline: 3px solid var(--anpai-focus) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px var(--anpai-white), 0 0 0 6px var(--anpai-navy) !important;
}

.contact .checkbox_form .checkbox_txt {
  color: var(--anpai-navy) !important;
}

.contact .checkbox_form:has(input[type="checkbox"]:checked) .checkbox_txt {
  color: var(--anpai-white) !important;
}

.contact :is(.form_input, .checkbox_form) {
  border-color: rgba(0, 39, 88, 0.5) !important;
}

textarea,
.form_field_wrap--area .form_input {
  min-height: 11rem;
}

::placeholder {
  color: var(--anpai-muted);
  opacity: 1;
}

.checkbox_item,
.position_item {
  border-color: var(--anpai-line) !important;
}

.checkbox_item:has(input:checked) {
  outline: 2px solid var(--anpai-focus);
  outline-offset: 1px;
}

/* Editorial pages ------------------------------------------------------- */

.news_hero_article .news_heading {
  max-width: 18ch;
  font-size: var(--anpai-type-35);
  line-height: var(--anpai-leading);
}

.wrapper_article {
  max-width: var(--anpai-content);
  margin-inline: auto;
  padding-inline: var(--anpai-gutter);
}

.article_body {
  padding-block: clamp(4rem, 7vw, 7rem);
}

.active_article,
.next_box {
  border-color: var(--anpai-line) !important;
}

.legals {
  color: var(--anpai-navy);
}

.legals_wrapper {
  max-width: var(--anpai-content);
  margin-inline: auto;
  padding-inline: var(--anpai-gutter);
}

.legals .content_legals {
  padding-block: clamp(3.5rem, 6vw, 6.5rem);
}

.legals .body_legals {
  width: min(100%, 72ch);
}

.legals .legals_part {
  margin-bottom: clamp(2.75rem, 5vw, 5.25rem);
}

.legals .legals_md {
  font-family: var(--anpai-font);
  font-size: var(--anpai-type-25) !important;
  font-weight: var(--anpai-weight-light) !important;
  line-height: var(--anpai-leading);
  letter-spacing: var(--anpai-tracking);
}

.legals .p_gen,
.legals li {
  font-size: var(--anpai-type-16);
  line-height: var(--anpai-leading);
}

/* Page rhythm ----------------------------------------------------------- */

@media (min-width: 992px) {
  .wrapper_general,
  .wrapper_gen,
  .wrapper_footer,
  .wrapper_cta,
  .wrapper_news_blog {
    max-width: var(--anpai-content);
    margin-inline: auto;
  }

  .news_page,
  .articles,
  .contact,
  .legals {
    padding-top: calc(var(--anpai-header-height) + 3rem);
  }

  .newsroom .article_title,
  .articles .article_title,
  .product_title_card {
    font-size: var(--anpai-type-18);
    line-height: var(--anpai-leading);
  }
}

/* Footer ---------------------------------------------------------------- */

.footer {
  background: var(--anpai-paper);
  color: var(--anpai-navy);
  border-top: 1px solid var(--anpai-line);
}

.footer .title_subscribe {
  font-family: var(--anpai-font);
  font-size: var(--anpai-type-35);
  font-weight: var(--anpai-weight-light) !important;
  line-height: var(--anpai-leading);
  letter-spacing: var(--anpai-tracking);
}

.footer :where(.title_menu, .footer_link, .footer_last_link, .caption_box) {
  color: var(--anpai-navy);
}

.footer .title_menu {
  margin-bottom: 0.85rem;
  color: var(--anpai-muted);
  font-size: var(--anpai-type-12);
  font-weight: var(--anpai-weight-book);
  letter-spacing: var(--anpai-tracking);
  text-transform: uppercase;
}

.footer .footer_link,
.footer .footer_last_link {
  font-size: var(--anpai-type-14);
  font-weight: var(--anpai-weight-book);
  line-height: var(--anpai-leading);
  text-underline-offset: 0.2em;
}

.footer .footer_link:hover,
.footer .footer_last_link:hover {
  text-decoration: underline;
}

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

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

/* Tablet and mobile ----------------------------------------------------- */

@media (max-width: 991px) {
  :root {
    --anpai-header-height: 4.5rem;
    --anpai-section-space: clamp(4.25rem, 12vw, 7rem);
    --anpai-gutter: clamp(1rem, 4vw, 2rem);
  }

  .header .wrapper_header {
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-left: max(1rem, env(safe-area-inset-left));
    width: 100% !important;
  }

  .header,
  .header .wrapper_header,
  .header .flexbox_header {
    overflow: visible !important;
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  .header .hamburger_link {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-end;
    min-width: 4.75rem;
    min-height: 2.75rem;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--anpai-navy) !important;
    position: relative !important;
    z-index: 20;
    top: auto !important;
    right: auto !important;
    margin: 0 0 0 auto !important;
    transform: none !important;
    width: 7.25rem !important;
    height: 2.75rem !important;
    padding: 0 0.65rem !important;
    background: rgba(251, 252, 254, 0.96) !important;
    border: 1px solid var(--anpai-line) !important;
    border-radius: var(--anpai-radius-sm) !important;
  }

  .header .hamburger_link > .open_txt {
    display: block !important;
    color: var(--anpai-navy) !important;
  }

  .header .hamburger_link > .close_txt {
    display: none !important;
  }

  .header .hamburger_link[aria-expanded="true"] > .open_txt {
    display: none !important;
  }

  .header .hamburger_link[aria-expanded="true"] > .close_txt {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--anpai-navy) !important;
  }

  .header .hamburger_link .open_txt {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--anpai-navy) !important;
  }

  .header .hamburger_link .hamburger {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .header .hamburger_link .cube_hamb {
    background: var(--anpai-navy) !important;
  }

  .mobile_menu .mobile_link {
    display: flex;
    align-items: center;
    min-height: 3rem;
    font-family: var(--anpai-font);
    font-size: var(--anpai-type-25) !important;
    font-weight: var(--anpai-weight-light) !important;
    line-height: var(--anpai-leading);
    letter-spacing: var(--anpai-tracking);
  }

  .mobile_menu .link_sub {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    font-size: var(--anpai-type-16);
  }

  .mobile_menu :is(.sub_caption, .sub_caption *, sup) {
    font-size: var(--anpai-type-14) !important;
  }

  .mobile_menu {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    padding-top: env(safe-area-inset-top);
    padding-right: env(safe-area-inset-right);
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
    padding-left: env(safe-area-inset-left);
    -webkit-overflow-scrolling: touch;
  }

  .mobile_menu[aria-hidden="true"] {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .mobile_menu[aria-hidden="false"] {
    visibility: visible !important;
    pointer-events: auto !important;
  }

  html.anpai-menu-open,
  html.anpai-filter-open,
  body.anpai-menu-open,
  body.anpai-filter-open {
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  .filters_button .fixed_button,
  .filters_button .fixed_button * {
    color: var(--anpai-white) !important;
  }

  .h1 {
    font-size: var(--anpai-type-25);
    line-height: var(--anpai-leading);
  }

  body :is(
      .hero .h1,
      .heading_contact .h1,
      .news_page > .wrapper_gen .h1,
      .articles > .wrapper_gen .h1,
      .hero_about .h1,
      .hero_partners .h1,
      .hero_career .h1
    ),
  body :is(
      .hero .h1,
      .heading_contact .h1,
      .news_page > .wrapper_gen .h1,
      .articles > .wrapper_gen .h1,
      .hero_about .h1,
      .hero_partners .h1,
      .hero_career .h1
    ) * {
    font-size: var(--anpai-type-25) !important;
  }

  .h2 {
    font-size: var(--anpai-type-35);
    line-height: var(--anpai-leading);
  }

  .p_gen,
  .md_txt,
  .text_desc,
  .desc_point,
  .article_content :where(p, li) {
    font-size: var(--anpai-type-16) !important;
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
  }

  body :is(
      .p_ch,
      .p_partners_gen,
      .paragraph_last,
      .product_desc,
      .desc_template,
      .content_bottom,
      .middle_p,
      .heading_side
    ) {
    width: 100% !important;
    max-width: 100% !important;
  }

  body :is(
      .p_ch,
      .p_partners_gen,
      .paragraph_last,
      .product_desc,
      .desc_template
    ),
  body :is(
      .p_ch,
      .p_partners_gen,
      .paragraph_last,
      .product_desc,
      .desc_template
    ) * {
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
  }

  .legals .body_legals {
    width: min(100%, 38rem) !important;
    max-width: 38rem !important;
  }

  .product_template_page .desc_template {
    width: min(100%, 42rem) !important;
    max-width: 42rem !important;
  }

  body :is(
      .h1.bigger,
      .h1.newsrooms_external,
      .h1.articles_all,
      .h2.products_heading,
      .h2.partners_main_heading
    ),
  body :is(
      .h1.bigger,
      .h1.newsrooms_external,
      .h1.articles_all,
      .h2.products_heading,
      .h2.partners_main_heading
    ) * {
    font-size: clamp(3rem, 12vw, 4.5rem) !important;
    line-height: 1.05 !important;
  }

  :where(
      .splide__arrow,
      .arrow_testimonials,
      .last_cap_link,
      .text_news_link,
      .contact_link,
      .footer_link,
      .footer_last_link,
      .fixed_button
    ) {
    min-width: 2.75rem !important;
    min-height: 2.75rem !important;
    touch-action: manipulation;
  }

  :where(.last_cap_link, .text_news_link, .contact_link) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center;
    min-width: 2.75rem !important;
    min-height: 2.75rem !important;
  }

  .reset_all {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 2.75rem !important;
    min-height: 2.75rem !important;
  }

  .slider_controls {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.5rem !important;
  }

  .slider_controls .splide__arrows {
    order: 1;
    margin-left: auto !important;
  }

  .splide__pagination {
    order: 2;
    flex: 1 0 100% !important;
    width: 100% !important;
    justify-content: center !important;
    gap: 0.125rem;
  }

  .splide__pagination__page {
    position: relative;
    flex: 0 0 2.75rem !important;
    width: 2.75rem !important;
    height: 2.75rem !important;
    margin: 0 !important;
    background: transparent !important;
  }

  .splide__pagination__page::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background: rgba(0, 39, 88, 0.35);
    transform: translate(-50%, -50%);
  }

  .splide__pagination__page.is-active::after {
    background: var(--anpai-navy);
  }

  .newsroom .splide__pagination__page::after {
    background: rgba(255, 255, 255, 0.48);
  }

  .newsroom .splide__pagination__page.is-active::after {
    background: var(--anpai-white);
  }

  .pagination_testimonials {
    display: flex;
    align-items: center;
    gap: 0.125rem;
  }

  .pagination_testimonials .pag_dot {
    position: relative;
    flex: 0 0 2.75rem !important;
    width: 2.75rem !important;
    height: 2.75rem !important;
    margin: 0 !important;
    background: transparent !important;
  }

  .pagination_testimonials .pag_dot::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: rgba(0, 39, 88, 0.28);
    transform: translate(-50%, -50%);
  }

  .pagination_testimonials .pag_dot.active::after {
    background: var(--anpai-navy);
  }

  .filters_button .fixed_button {
    cursor: pointer;
  }

  .filters_button .fixed_button[aria-expanded="true"] .plus_button {
    transform: rotate(45deg);
  }

  .filters_box .checkbox_hidden {
    display: block !important;
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    opacity: 0 !important;
    pointer-events: none;
  }

  .filters_box .chip_box {
    min-height: 2.75rem !important;
    touch-action: manipulation;
  }

  .filters_wrapper[aria-hidden="false"] {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
    -webkit-overflow-scrolling: touch;
  }

  .article_content blockquote {
    font-size: var(--anpai-type-25) !important;
    line-height: var(--anpai-leading);
  }

  .footer .footer_link,
  .footer .footer_last_link {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
  }

  .footer :is(.caption_box, .caption_box *, .last_cap_link, .low_op) {
    font-size: var(--anpai-type-14) !important;
  }

}

@media (max-width: 767px) {
  .wrapper_general,
  .wrapper_gen,
  .wrapper_footer,
  .wrapper_cta,
  .wrapper_news_blog,
  .wrapper_article,
  .legals_wrapper {
    padding-inline: var(--anpai-gutter);
  }

  .hero .heading_hero {
    top: auto !important;
    right: var(--anpai-gutter) !important;
    bottom: clamp(2.25rem, 6svh, 4rem) !important;
    left: var(--anpai-gutter) !important;
    width: auto !important;
    max-width: none;
    margin: 0 !important;
    transform: none !important;
  }

  .hero .heading_hero .button_wrap {
    width: min(100%, 18rem);
  }

  .hero .heading_hero .button {
    width: 100%;
  }

  .hero .caption {
    display: none;
  }

  .hero .strings-viewport {
    --strings-scale: 0.55 !important;
  }

  .hero #strings-wrap {
    transform: translate3d(18vw, -22svh, 0) scale(var(--strings-scale)) !important;
    transform-origin: center center !important;
  }

  .hero_career {
    position: relative;
  }

  .hero_career .career_heading {
    position: absolute !important;
    top: 44% !important;
    right: var(--anpai-gutter) !important;
    left: var(--anpai-gutter) !important;
    z-index: 3;
    width: auto !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
  }

  .hero_career .h1,
  .hero_career .h1 * {
    color: var(--anpai-navy) !important;
  }

  /* Association page: collapse the inherited desktop offsets into a single
     readable institutional column. */
  .hero_about {
    height: auto !important;
    min-height: 100svh;
    overflow: visible !important;
  }

  .hero_about .about_hero {
    height: auto !important;
    padding-top: clamp(8rem, 18svh, 10rem) !important;
    padding-bottom: 5rem !important;
  }

  .hero_about .about_flex {
    display: flex !important;
    flex-direction: column !important;
    gap: 2.5rem;
  }

  .hero_about :is(.part_right, .md_ch, .right_gap, .ch_about, .p_about_ch) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }

  .hero_about .part_right {
    margin-top: 0 !important;
  }

  .hero_about .md_txt_about {
    width: min(100%, 28ch);
  }

  .hero_about .about_ANPAI {
    margin-top: 4.5rem !important;
  }

  .hero_about .box_about {
    gap: 1rem;
  }

  .hero_about .small_heading,
  .hero_about .small_heading * {
    color: var(--anpai-navy) !important;
  }

  /* Individual activity pages: no inherited 50% columns or 86ch measures. */
  .hero_section.product_template_page {
    height: auto !important;
    min-height: 100svh;
    overflow: visible !important;
  }

  .product_template_page .template_product {
    height: auto !important;
    min-height: 100svh;
    padding: 8rem var(--anpai-gutter) 4rem !important;
    flex-direction: column !important;
  }

  .product_template_page :is(
      .left_side_template,
      .heading_template,
      .desc_template,
      .box_short,
      .right_visual
    ) {
    width: 100% !important;
    max-width: 100% !important;
  }

  .product_template_page .desc_template {
    max-width: 42rem !important;
  }

  .product_template_page .box_short {
    margin-top: 3.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2.5rem !important;
    padding: 1.25rem !important;
  }

  .product_template_page :is(.left_capt, .right_capt) {
    width: 100% !important;
    padding-right: 0 !important;
  }

  .product_template_page .right_visual {
    height: min(72vw, 28rem) !important;
    margin: 2rem 0 0 !important;
  }

  .news_hero_article .news_heading {
    max-width: 22ch;
    font-size: var(--anpai-type-35);
  }

  .article_body,
  .legals .content_legals {
    padding-block: 3.5rem;
  }

  .article_content {
    width: 100% !important;
    max-width: 100% !important;
  }

  .legals .legals_part {
    margin-bottom: 3rem;
  }

  .legals .legals_md {
    font-size: var(--anpai-type-18) !important;
    line-height: var(--anpai-leading);
  }

  .subscribe_form {
    gap: 0.5rem;
  }

  .footer .menu_grid {
    row-gap: 2rem;
  }

  .partners_cards_flex {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .partners_cards_flex .card_partner {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .position_item .rest_info {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 2.75rem !important;
    align-items: start !important;
    gap: 1rem !important;
  }

  .position_item .location.no_position {
    width: 100% !important;
    margin-left: 0 !important;
  }

  .position_item .arrow_link.no_positions {
    position: static !important;
    width: 45px !important;
    height: 45px !important;
    padding: 0.65rem !important;
  }
}

@media (max-width: 767px) and (max-height: 600px) {
  .hero .strings-viewport {
    min-height: 0 !important;
    height: 100svh !important;
  }

  .partners_hero {
    height: auto !important;
    min-height: 32rem !important;
    overflow: visible !important;
  }

  .partners_hero .hero_partners {
    height: auto !important;
    min-height: 32rem !important;
    padding: 6.5rem var(--anpai-gutter) 4rem !important;
  }

  .partners_hero .bottom_p {
    margin-top: 2.5rem !important;
  }

  .cta_box {
    height: auto !important;
    min-height: 30rem !important;
    overflow: visible !important;
  }

  .cta_box .wrapper_cta {
    height: auto !important;
    min-height: 30rem !important;
    padding-top: 4.5rem !important;
    padding-bottom: 4.5rem !important;
  }

  .cta_box :is(.flex_cta, .heading_cta, .paragraph_last) {
    width: 100% !important;
    max-width: 100% !important;
  }

  body :is(
      .h1.bigger,
      .h1.newsrooms_external,
      .h1.articles_all,
      .h2.products_heading,
      .h2.partners_main_heading
    ),
  body :is(
      .h1.bigger,
      .h1.newsrooms_external,
      .h1.articles_all,
      .h2.products_heading,
      .h2.partners_main_heading
    ) * {
    font-size: clamp(2.65rem, 9vw, 3.6rem) !important;
  }
}

@media (max-width: 479px) {
  :root {
    --anpai-gutter: 1rem;
  }

  .header .logotype,
  .header .svg_logo {
    max-width: 8.5rem;
  }

  .h1 {
    font-size: var(--anpai-type-25);
  }

  .h2 {
    font-size: var(--anpai-type-35);
  }

  :where(input, textarea, select, .form_input, .input_field) {
    font-size: var(--anpai-type-16);
  }

  .card_box,
  .article_item,
  .newsroom_item,
  .point_item {
    box-shadow: none;
  }
}

@media (max-width: 350px) {
  .header .logotype,
  .header .svg_logo {
    width: min(42vw, 7.75rem) !important;
  }

  .header .hamburger_link {
    width: auto !important;
    min-width: 6.5rem !important;
  }

  .footer .subscribe_form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .footer :is(.input_field, .subscribe_button) {
    width: 100% !important;
  }

  .footer .menu_grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Sparse transitions must read as separate pixels, not as merged panels.
   The source enlarged every cell by one pixel and pulled it over its neighbour;
   that seam-hiding technique caused the visible clusters reported in review. */
.pixel-transition[data-sparse="true"] .pixel {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  transform: scale(0.8) !important;
  transform-origin: 50% 50%;
}

.pixel-transition[data-sparse="true"].is-solid .pixel {
  transform: scale(1) !important;
}

/* Motion policy --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }

  .cube_tag,
  .cta-pulse-path,
  .c8-flow-pulse,
  .shrimp-pulse,
  .contact-line-pulse,
  .corner-line-pulse {
    animation: none !important;
  }

  .background_webgl canvas,
  .strings-viewport canvas {
    visibility: hidden !important;
  }

  .background_webgl::before,
  .strings-viewport::before {
    content: "";
    position: absolute;
    inset: 16% 12%;
    border: 1px solid rgba(0, 39, 88, 0.18);
    border-radius: 50%;
    background:
      radial-gradient(circle at center, rgba(0, 39, 88, 0.12) 0 1px, transparent 2px),
      repeating-conic-gradient(from 0deg, rgba(0, 39, 88, 0.16) 0 0.35deg, transparent 0.35deg 9deg);
    opacity: 0.72;
    pointer-events: none;
  }

  video[autoplay] {
    filter: none !important;
  }
}

@media (forced-colors: active) {
  .header,
  .mobile_menu,
  .footer,
  .card_box,
  .article_item,
  .newsroom_item {
    border: 1px solid CanvasText !important;
  }

  :where(a, button, input, textarea, select, [role="button"]):focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
}

@media print {
  .header,
  .mobile_menu,
  .cta_box,
  .footer,
  .social_share,
  .pixel-transition {
    display: none !important;
  }

  body,
  body.white,
  body.blue {
    background: #ffffff !important;
    color: #000000 !important;
  }

  .article_content,
  .body_legals {
    max-width: none;
    width: 100%;
  }
}

/* Mobile composition correction ---------------------------------------
   Keep the original ANPAI mobile geometry: a full, contextual radial
   field, a full-width hero action and navigation centred in the viewport. */

/* Institutional media colour treatment --------------------------------
   The original card posters and videos contain ANPAI's electric blue in
   the pixels themselves. Recolour their luminance over the ANPAI navy so
   animated diagrams stay legible without reintroducing the legacy hue. */
.visual_card,
.product_template_page .video_visual {
  isolation: isolate;
  background-color: var(--anpai-navy) !important;
}

.visual_card > .video,
.product_template_page .video_visual > .video {
  filter: grayscale(1) contrast(1.25) brightness(0.5) !important;
  mix-blend-mode: luminosity !important;
}

@media (max-width: 767px) {
  .hero .strings-viewport {
    --strings-scale: 0.94 !important;
  }

  .hero #strings-wrap {
    transform: translate3d(0, -7svh, 0) scale(var(--strings-scale)) !important;
    transform-origin: center center !important;
  }

  .hero .heading_hero {
    right: var(--anpai-gutter) !important;
    bottom: max(1.5rem, env(safe-area-inset-bottom)) !important;
    left: var(--anpai-gutter) !important;
  }

  .hero .h1,
  .hero .h1 * {
    font-size: clamp(1.75rem, 7.55vw, 1.95rem) !important;
    line-height: 1.06 !important;
  }

  .hero .heading_hero .button_wrap,
  .hero .heading_hero .button,
  .hero .heading_hero .flex_button_general {
    width: 100% !important;
    max-width: none !important;
  }

  .hero .heading_hero .flex_button_general {
    justify-content: space-between !important;
  }

  .hero .heading_hero .arrow_button {
    flex: 0 0 auto;
    margin-left: auto !important;
  }

  .header .hamburger_link {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 0.625rem;
    align-items: center !important;
    justify-content: stretch !important;
  }

  .header .hamburger_link > :is(.open_txt, .close_txt) {
    align-items: center !important;
    align-self: stretch;
    justify-content: center;
    height: 100%;
    margin: 0 !important;
    line-height: 1 !important;
    text-align: center;
    transform: none !important;
  }

  .header .hamburger_link > .open_txt {
    display: flex !important;
  }

  .header .hamburger_link > .close_txt {
    display: none !important;
  }

  .header .hamburger_link[aria-expanded="true"] > .open_txt {
    display: none !important;
  }

  .header .hamburger_link[aria-expanded="true"] > .close_txt {
    display: flex !important;
  }

  .mobile_menu {
    inset: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    max-height: 100svh !important;
  }

  .mobile_menu .wrapper_mobile_menu {
    display: grid !important;
    grid-template-rows: minmax(24rem, 1fr) auto;
    align-content: stretch !important;
    gap: clamp(1.25rem, 4svh, 2rem) !important;
    width: 100% !important;
    min-height: 100svh !important;
    height: auto !important;
    padding:
      calc(var(--anpai-header-height) + max(1rem, env(safe-area-inset-top)))
      max(var(--anpai-gutter), env(safe-area-inset-right))
      max(1.5rem, env(safe-area-inset-bottom))
      max(var(--anpai-gutter), env(safe-area-inset-left)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .mobile_menu .menu_links {
    display: flex !important;
    flex-direction: column;
    justify-content: center !important;
    gap: 0.125rem !important;
    width: 100% !important;
    min-height: 24rem;
    height: auto !important;
  }

  .mobile_menu .mobile_link {
    justify-content: center !important;
    min-height: 3rem;
    text-align: center;
  }

  .mobile_menu .bottom_side {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.25rem, 6vw, 2rem) !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
  }

  .mobile_menu :is(.box_sub, .sub_links) {
    width: 100% !important;
    height: auto !important;
  }

  .mobile_menu .link_sub {
    width: 100%;
  }

  .mobile_menu .sub_caption sup {
    display: inline !important;
    position: static !important;
    top: auto !important;
    margin-left: 0.2em;
    font-size: inherit !important;
    line-height: inherit !important;
    vertical-align: baseline !important;
    transform: none !important;
  }

  .slider1 .slider_controls .splide__pagination {
    flex: 0 0 calc(100% + (2 * var(--anpai-gutter))) !important;
    width: calc(100% + (2 * var(--anpai-gutter))) !important;
    margin-right: calc(-1 * var(--anpai-gutter)) !important;
    margin-left: calc(-1 * var(--anpai-gutter)) !important;
    justify-content: space-between !important;
    gap: 0 !important;
  }

  #partners-main .heading_cms,
  #partners-main .heading_partners,
  #partners-main .partners_main_heading,
  #partners-main .p_partners_gen {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    transform: none !important;
  }

  #partners-main .partners_main_heading,
  #partners-main .partners_main_heading * {
    font-size: 35px !important;
    line-height: 1.05 !important;
    text-align: center !important;
  }

  #partners-main .p_partners_gen {
    text-align: center;
  }

  #partners-main .grid_partners_gen {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
    width: 100% !important;
  }

  #partners-main :is(
      .partner_item_page,
      .partner_link,
      .box_logo,
      .partner_box_logo
    ) {
    width: 100% !important;
    min-width: 0 !important;
  }

  #partners-main .partner_item_page,
  #partners-main .partner_link,
  #partners-main .box_logo {
    height: 7.5rem !important;
  }

  #partners-main .partner_link {
    display: block !important;
    overflow: hidden;
    border: 1px solid var(--anpai-line) !important;
    border-radius: var(--anpai-radius-xs);
    background: rgba(0, 39, 88, 0.035) !important;
  }

  #partners-main .partner_box_logo {
    height: 100% !important;
    padding: 0.875rem !important;
  }

  #partners-main .partner_box_logo::before {
    max-width: 100% !important;
    font-size: 14px !important;
    line-height: 1.05 !important;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  #partners-main .partner_box_logo::after {
    top: 0.875rem !important;
    left: 0.875rem !important;
    font-size: 8px !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .header .hamburger_link {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 0.625rem;
    align-items: center !important;
    justify-content: stretch !important;
  }

  .header .hamburger_link > :is(.open_txt, .close_txt) {
    align-items: center !important;
    align-self: stretch;
    justify-content: center;
    height: 100%;
    margin: 0 !important;
    line-height: 1 !important;
    text-align: center;
    transform: none !important;
  }

  .header .hamburger_link > .open_txt {
    display: flex !important;
  }

  .header .hamburger_link > .close_txt {
    display: none !important;
  }

  .header .hamburger_link[aria-expanded="true"] > .open_txt {
    display: none !important;
  }

  .header .hamburger_link[aria-expanded="true"] > .close_txt {
    display: flex !important;
  }

  .mobile_menu {
    inset: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    max-height: 100svh !important;
  }

  .mobile_menu .wrapper_mobile_menu {
    display: grid !important;
    grid-template-rows: minmax(24rem, 1fr) auto;
    align-content: stretch !important;
    gap: clamp(1.25rem, 4svh, 2rem) !important;
    width: 100% !important;
    min-height: 100svh !important;
    height: auto !important;
    padding:
      calc(var(--anpai-header-height) + max(1rem, env(safe-area-inset-top)))
      max(var(--anpai-gutter), env(safe-area-inset-right))
      max(1.5rem, env(safe-area-inset-bottom))
      max(var(--anpai-gutter), env(safe-area-inset-left)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .mobile_menu .menu_links {
    display: flex !important;
    flex-direction: column;
    justify-content: center !important;
    gap: 0.125rem !important;
    width: 100% !important;
    min-height: 24rem;
    height: auto !important;
  }

  .mobile_menu .mobile_link {
    justify-content: center !important;
    min-height: 3rem;
    text-align: center;
  }

  .mobile_menu .bottom_side {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.25rem, 6vw, 2rem) !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
  }

  .mobile_menu :is(.box_sub, .sub_links) {
    width: 100% !important;
    height: auto !important;
  }

  .mobile_menu .link_sub {
    width: 100%;
  }

  .mobile_menu .sub_caption sup {
    display: inline !important;
    position: static !important;
    top: auto !important;
    margin-left: 0.2em;
    font-size: inherit !important;
    line-height: inherit !important;
    vertical-align: baseline !important;
    transform: none !important;
  }
}

@media (max-width: 479px) and (max-height: 700px) {
  .hero .strings-viewport {
    --strings-scale: 0.86 !important;
  }

  .hero #strings-wrap {
    transform: translate3d(0, -9svh, 0) scale(var(--strings-scale)) !important;
  }

  .mobile_menu .wrapper_mobile_menu {
    padding-top: calc(var(--anpai-header-height) + 3.5rem) !important;
  }
}

@media (max-width: 479px) and (max-height: 600px) {
  .hero .strings-viewport {
    --strings-scale: 0.82 !important;
  }

  .hero #strings-wrap {
    transform: translate3d(0, -11svh, 0) scale(var(--strings-scale)) !important;
  }

  .mobile_menu .wrapper_mobile_menu {
    grid-template-rows: minmax(18rem, auto) auto;
  }

  .mobile_menu .menu_links {
    min-height: 18rem;
  }
}

@media (min-width: 480px) and (max-width: 767px) and (max-height: 600px) {
  .hero .strings-viewport {
    --strings-scale: 0.52 !important;
  }

  .hero #strings-wrap {
    transform: translate3d(23vw, -12svh, 0) scale(var(--strings-scale)) !important;
  }

  .hero .heading_hero {
    top: 50% !important;
    right: 52% !important;
    bottom: auto !important;
    transform: translateY(-44%) !important;
  }

  .hero .h1,
  .hero .h1 * {
    font-size: 20px !important;
    line-height: 1.05 !important;
  }

  .mobile_menu .wrapper_mobile_menu {
    grid-template-rows: minmax(18rem, auto) auto;
  }

  .mobile_menu .menu_links {
    min-height: 18rem;
  }
}

@media (max-width: 350px) {
  .mobile_menu .bottom_side {
    grid-template-columns: minmax(0, 1fr);
  }
}
